[aspectc-user] Problem compiling Puma

Jérôme Cornet Jerome.Cornet at imag.fr
Mon Nov 29 15:15:49 CET 2004


Hello,

i am trying to compile aspect-c++ under Linux with gcc.

When i try to compile ac-0.9-Source-Woven, I get the following error :

Compiling PUMA for TARGET=linux

Making tools.
Making library.
Generating.
Weaving.
Copying sources not to weave.
Compiling.
Compiling PreAssertionEvaluator.cc.

...

Compiling MatchCollector.cc.
In file included 
from /home/matthias/Projekte/Cvsdir/Puma/gen/step1/inc/Puma/Syntax.h:27,
                 from /home/matthias/Projekte/Cvsdir/Puma/gen/step1/inc/Puma/Parser.h:23,
                 from /home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/MatchCollector.h:29,
                 from /home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/src/MatchCollector.cc:19:
/home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/TraceSyntax.ah:38: 
error: syntax
   error before `:' token
/home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/TraceSyntax.ah: 
In
   function `void trace_rule(const char*)':
/home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/TraceSyntax.ah:53: 
error: `
   trace' undeclared (first use this function)
/home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/TraceSyntax.ah:53: 
error: (Each
   undeclared identifier is reported only once for each function it appears
   in.)
/home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/TraceSyntax.ah: 
At
   global scope:
/home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/TraceSyntax.ah:56: 
error: syntax
   error before `private'

etc. etc. (full error message available on request).

If I look at TraceSyntax.ah line 38, i get : 

aspect TraceSyntax : public Tracing {
  int skipping;

How can the compiler encounter the "aspect" keyword in sources supposed to be 
already woven?

Then i tried to compile the "unwoven" sources (ac-0.9-Sources) on a linux 
machine allowing the linux ac++ binary to work. I get the following error :

Compiling PUMA for TARGET=linux

Making tools.
Making library.
Generating.
Calling Orange on cpp/PreDirectiveTab.ora.
Calling Orange on cpp/PreExprTab.ora.
Calling Orange on cpp/PreTokenTab.ora.
Calling Orange on scanner/ACCKeywordTab.ora.
Calling Orange on scanner/CCKeywordTab.ora.
Calling Orange on scanner/CCommentTab.ora.
Calling Orange on scanner/CCoreTab.ora.
Calling Orange on scanner/CDirectiveTab.ora.
Calling Orange on scanner/CIdentifierTab.ora.
Calling Orange on scanner/CKeywordTab.ora.
Calling Orange on scanner/CMLCommentTab.ora.
Calling Orange on scanner/CSLCommentTab.ora.
Calling Orange on scanner/CStringTab.ora.
Calling Orange on scanner/CWhitespaceTab.ora.
Calling Orange on scanner/CWildcardTab.ora.
Calling Lemon on cpp/PreExprParser.lem.
Calling Lemon on cpp/PreParser.lem.
Calling Lemon on manip/CMatchParser.lem.
Weaving.
Copying sources not to weave.
Calling ac++ on PreFileIncluder.cc.
/home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/ListElement.h:29: 
error: assert.h: No such file or directory
/home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/Printable.h:23: 
error: iostream: No such file or directory
/home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/Array.h:24: error: 
assert.h: No such file or directory
/home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/VoidPtrArray.h:24: 
error: assert.h: No such file or directory
/home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/Token.h:27: error: 
stdlib.h: No such file or directory
/home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/Chain.h:28: error: 
iostream: No such file or directory
/home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/StrHashTable.h:25: 
error: assert.h: No such file or directory
/home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/DString.h:25: error: 
assert.h: No such file or directory
/home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/Token.h:33: error: 
assert.h: No such file or directory

ac++ is the static binary for linux. Can someone help?

By the way, it would be great to include a README file explaining how to 
compile aspectc++ (the problem of mutual dependencies between ac++ and ac++) 
in the source tarball and also specific informations about the differences 
between woven/unwoven sources. The current README just explain you have to 
type "make", which is a bit short for newbies like me.

Thanks for your help!

Jérôme Cornet



More information about the aspectc-user mailing list