[aspectc-user] AspectC++ self-dependency for compile

Olaf Spinczyk Olaf.Spinczyk at informatik.uni-erlangen.de
Wed Oct 20 12:34:10 CEST 2004


Hello Antonio,

Antonio S. de A. Terceiro wrote:
> Hello all,
> 
> This discussion started at AspectC++ Bugzilla. Lokk at bug #202 for
> further information:
> http://www.aspectc.org/bugzilla/show_bug.cgi?id=202
> 
> As Matthias asked me, I'm posting here my last additional comment there:
> 
> 
>>I realized that I'd need a precompiled ac++, but my point is that ac++
>>*should not* depend on itself to compile.
>>
>>One example of negative consequences of this self-dependency: one of my goals
>>compiling AspectC++ is to package it for Debian. But if we need a non-basic,
>>precompiled binary to compile AspectC++, it we'll be included only in i386
>>architecture, when it could be included in all 11 architectures! And I'm not
>>sure if Debian policies would permit a package with a self-dependency to
>>compile.

it is common pratice that compilers are implemented in the language they 
implement. gcc is also compiled with gcc. Obviously it is no problem to 
have gcc in Debian Linux.

Regarding your practical problems to port Puma/ac++ to a new platform, 
you can work in two steps:

1. On a supported platform: enter the Puma directory and execute "make 
weave TARGET=..."
2. Copy the woven sources to your target machine and compile with a 
normal "make TARGET=...". If the sources are already woven, the make 
file will not call ac++ on the target platform.
3. After compiling the Puma library, compile ac++. Only the Puma library 
uses aspects. ac++ is pure C++ code.

We could also provide the woven sources on the AspectC++ web page, but 
the woven sources are significantly bigger. If there are people who 
regularly want to port ac++ to platforms, which we don't support 
directly, we would do that. We could also send you these sources 
directly to you or even extend our list of supported platforms. Just 
tell us where you would like to use ac++ and we'll find a solution together.

>>What are the crosscuttin concerns in libPuma? Are they important
>>enough to make a self dependencie like that? is they are not
>>functional (regarding libPuma functionality), could they be moved to
>>another Makefile target, e.g.  `make with-debug`, perhaps using the
>>newly-built ac++ to build a special version of libPuma?

g++ and MS VC++ specific language extensions are implemented by aspects 
in Puma. They are not only used for debugging purposes. Without these 
aspects Puma would only be able to parse 100% ISO C++ compliant code, 
which is difficult to find in the real world ;-).

>>Again: any plans on using GNU auto* tools? ;-)

No, not yet.

Best regards,

Olaf



More information about the aspectc-user mailing list