-#LLVM_SRC=llvm
-
-include config.local
# Use our version of clang (even without installing)
LLVM_BIN= $(CURDIR)/_install/bin
-LLVM_CONFIG := $(shell $(LLVM_BIN)/llvm-config --cxxflags --ldflags --libs jit core)
+LLVM_CONFIG := $(LLVM_BIN)/llvm-config
+
+export LLVM_CONFIG
+
+all: llvm src examples
+
+.PHONY: llvm src examples
+
+llvm: _install/lib/libclang.so
+
+_install/lib/libclang.so:
+ $(MAKE) -C llvm/_build install
+
+src: llvm
+ $(MAKE) -C src
+
+examples: src
+ $(MAKE) -C examples
\ No newline at end of file
cd $(dirname $0)
TOP=$PWD
-ln -sf ../../clang llvm/tools/clang
-mkdir -p llvm/_build
-cd llvm/_build
-../configure --prefix=$TOP/_install
-
-cat <<EOF
-To compile LLVM run the following comands:
-cd $PWD
-make install
+if [ -x llvm/configure ]; then
+ echo "Will build llvm and clang from sources"
+ ln -sf ../../clang llvm/tools/clang
+ mkdir -p llvm/_build
+ (
+ cd llvm/_build
+ ../configure --prefix=$TOP/_install --disable-optimized --enable-debug-runtime --enable-debug-symbols
+ )
+ LLVM_CONFIG=$TOP/_install/bin/llvm-config
+else
+ echo "Using system-wide llvm and clang"
+ LLVM_CONFIG=llvm-config
+fi
+
+cat <<EOF > $TOP/Makefile.config
+LLVM_CONFIG := $LLVM_CONFIG
EOF
+
+echo "Now run make to compile everything"
-LLVM_CONFIG := $(shell llvm-config --cxxflags --ldflags --libs jit core)
+include ../Makefile.config
+
+LLVM_FLAGS := $(shell $(LLVM_CONFIG) --cxxflags --ldflags --libs jit core)
visualizer: visualizer.cpp commandlineopt.h stringoper.h
- $(CXX) $< -o $@ -g -lclangParse -lclangFrontend -lclangSerialization \
+ $(CXX) $< -o $@ -g -O0 -lclangParse -lclangFrontend -lclangSerialization \
-lclangDriver -lclangCodeGen -lclangSema -lclangChecker \
-lclangAnalysis -lclangRewrite -lclangAST -lclangLex -lclangBasic \
- $(LLVM_CONFIG)
+ $(LLVM_FLAGS)