Timo Juhani Lindfors
2009-Oct-12 13:52 UTC
[LLVMdev] current state of building analysis passes out-of-tree with llvm-config?
Hi, what's the current state of being able to build simple analysis passes out-of-tree against only llvm headers and libraries with llvm-config? I see that clang and klee do not use llvm-config but for example rubinius does. Should both approaches be documented? Currently for example docs/WritingAnLLVMPass.html says "you need to create a new directory somewhere in the LLVM source base." while people who only want to experiment with simple passes might feel more comfortable if they didn't need to create directories inside llvm source tree. I ended up with the following Makefile: all: g++ -c -o LLVMHello.o `llvm-config --cxxflags` Hello.cpp gcc -shared -Wl,-soname,LLVMHello.so -o LLVMHello.so LLVMHello.o clean: rm -f LLVMHello.so LLVMHello.o (I can not use Makefile.common since it is not installed by 'make install') best regards, Timo Lindfors
John Criswell
2009-Oct-12 14:27 UTC
[LLVMdev] current state of building analysis passes out-of-tree with llvm-config?
Timo Juhani Lindfors wrote:> Hi, > > what's the current state of being able to build simple analysis passes > out-of-tree against only llvm headers and libraries with llvm-config? >Have you considered using the LLVM Project templates (documented at http://llvm.org/docs/Projects.html)? This is the build system we use for Automatic Pool Allocation. It allows us to reuse all the Makefile machinery within LLVM; we use Makefiles that are nearly identical to those used in LLVM, and things "just work" (more or less). I believe it automatically uses llvm-config. Automatic Pool Allocation is available from LLVM's SVN repository (llvm.org/svn/llvm-project/poolalloc/trunk) if you want an example of a project that uses this build system. It currently builds against LLVM 2.6, but the build system is probably still compatible with LLVM mainline. -- John T.> I see that clang and klee do not use llvm-config but for example > rubinius does. Should both approaches be documented? > > Currently for example docs/WritingAnLLVMPass.html says > > "you need to create a new directory somewhere in the LLVM source > base." > > while people who only want to experiment with simple passes might feel > more comfortable if they didn't need to create directories inside llvm > source tree. I ended up with the following Makefile: > > all: > g++ -c -o LLVMHello.o `llvm-config --cxxflags` Hello.cpp > gcc -shared -Wl,-soname,LLVMHello.so -o LLVMHello.so LLVMHello.o > > clean: > rm -f LLVMHello.so LLVMHello.o > > (I can not use Makefile.common since it is not installed by 'make > install') > > best regards, > Timo Lindfors > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >
Reasonably Related Threads
- [LLVMdev] converting x86 instructions to LLVM instructions
- [LLVMdev] [PATCH] docs/Bugpoint.html: mention -debug-pass=Arguments
- [LLVMdev] [PATCH] docs/WritingAnLLVMPass.html: s/heirarchy/hierarchy/
- Re: libvirt-guests and time sync on autostart vms
- [LLVMdev] strace for whole-program bitcodes