Hi, I'm working on a compiler for a small toy language and I'm using the llvm sample project layout, i.e. the llvm make system. I've got one library (lomo-core) which contains my parser and all that stuff and one tool (lomoc) which is my compiler executable. The tool declares the library as dependency using: USEDLIBS = lomo-core Now that I've started to add IR generation I declared the following dependencies in the library makefile: LINK_COMPONENTS := support system engine This compiles and links the library without problems. Unfortunately no matter what I do to the makefile of the compiler tool it won't compile. I always get errors in llvm/Support/Annotation.h that look like some type declarations are missing. Unfortunately my experience building C/C++ programs, especially with autoconf etc., is very limited if not to say non-existent. I would very much appreciate any hint on what I'm doing wrong. Both makefiles also change the compiler and linker flags after including the Makefile.common if that's of any relevance: CXXFLAGS += -I/usr/local/include LDFLAGS += -L/usr/local/lib -lantlr3c I'm using llvm 2.5 and building with gcc 3.4.5, gnu make 3.81 on, may Stallman forgive me, windows xp using mingw/msys. LLVM itself compiled without problems though so I'm quite sure it's just me doing something wrong rather than my setup. thanks, Stefan
Stefan Oestreicher <stefan.oestreicher at deluxe-design.at> writes: [snip]> Unfortunately no matter what I do to the makefile of the compiler tool > it won't compile. I always get errors in llvm/Support/Annotation.h that > look like some type declarations are missing. Unfortunately my > experience building C/C++ programs, especially with autoconf etc., is > very limited if not to say non-existent. I would very much appreciate > any hint on what I'm doing wrong.It would be useful to see the first error messages and the compile command (do make VERBOSE=1 in case it is hidden) [snip] -- Óscar
Hi, thank you for your response. Óscar Fuentes schrieb:> It would be useful to see the first error messages and the compile > command (do make VERBOSE=1 in case it is hiddenthe first few errors are: f:/dev/projects/llvm-2.5/include/llvm/Support/Annotation.h:42: error: expected unqualified-id before numeric constant f:/dev/projects/llvm-2.5/include/llvm/Support/Annotation.h: In constructor `llvm::AnnotationID::AnnotationID(unsigned int)': f:/dev/projects/llvm-2.5/include/llvm/Support/Annotation.h:47: error: expected identifier before numeric constant f:/dev/projects/llvm-2.5/include/llvm/Support/Annotation.h:47: error: expected `(' before numeric constant f:/dev/projects/llvm-2.5/include/llvm/Support/Annotation.h:47: error: expected `{' before numeric constant f:/dev/projects/llvm-2.5/include/llvm/Support/Annotation.h: In copy constructor `llvm::AnnotationID::AnnotationID(const llvm::AnnotationID&)': and this is the compile command: if g++ -I/f/dev/projects/llvm-2.5/include -I/f/dev/projects/lomo-antlr/include -I/f/dev/projects/lomo-antlr/tools/lomoc -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -g -fno-exceptions -I/usr/local/include -Woverloaded-virtual -pedantic -Wall -W -Wwrite-strings -Wno-long-long -Wunused -Wno-unused-parameter -c -MMD -MP -MF "/f/dev/projects/lomo-antlr/tools/lomoc/Debug/main.d.tmp" -MT "/f/dev/projects/lomo-antlr/tools/lomoc/Debug/main.lo" -MT "/f/dev/projects/lomo-antlr/tools/lomoc/Debug/main.o" -MT "/f/dev/projects/lomo-antlr/tools/lomoc/Debug/main.d" main.cc -o /f/dev/projects/lomo-antlr/tools/lomoc/Debug/main.o ; \ then /bin/mv -f "/f/dev/projects/lomo-antlr/tools/lomoc/Debug/main.d.tmp" "/f/dev/projects/lomo-antlr/tools/lomoc/Debug/main.d"; else /bin/rm "/f/dev/projects/lomo-antlr/tools/lomoc/Debug/main.d.tmp"; exit 1; fi Thanks, Stefan