Makefile
CXX := g++
LLVMCOMPONENTS := cppbackend
RTTIFLAG := -fno-rtti
LLVMCONFIG := ../build/Debug+Asserts/bin/llvm-config
CXXFLAGS := -I../clang/include \
-I../build/tools/clang/include \
-I../llvm/tools/clang/include \
$(shell $(LLVMCONFIG) --cxxflags) $(RTTIFLAG)
LLVMLDFLAGS := $(shell $(LLVMCONFIG) --ldflags --libs $(LLVMCOMPONENTS))
SOURCES = scaffold.cpp
OBJECTS = $(SOURCES:.cpp=.o)
EXES = $(OBJECTS:.o=)
CLANGLIBS = \
-lclangTooling -lclangFrontendTool -lclangFrontend -lclangDriver \
-lclangSerialization -lclangCodeGen -lclangParse -lclangSema \
-lclangStaticAnalyzerFrontend -lclangStaticAnalyzerCheckers \
-lclangStaticAnalyzerCore -lclangAnalysis -lclangARCMigrate \
-lclangEdit -lclangAST -lclangLex -lclangBasic -lLLVMAsmParser \
-lLLVMInstrumentation -lLLVMLinker -lLLVMArchive -lLLVMBitReader \
-lLLVMDebugInfo -lLLVMJIT -lLLVMipo -lLLVMVectorize -lLLVMBitWriter \
-lLLVMTableGen -lLLVMHexagonCodeGen -lLLVMHexagonDesc \
-lLLVMHexagonAsmPrinter -lLLVMHexagonInfo -lLLVMPTXCodeGen \
-lLLVMPTXDesc -lLLVMPTXInfo -lLLVMPTXAsmPrinter -lLLVMMBlazeCodeGen \
-lLLVMMBlazeAsmParser -lLLVMMBlazeDisassembler -lLLVMMBlazeDesc \
-lLLVMMBlazeAsmPrinter -lLLVMMBlazeInfo -lLLVMCppBackendCodeGen \
-lLLVMCppBackendInfo -lLLVMMSP430CodeGen -lLLVMMSP430Desc \
-lLLVMMSP430Info -lLLVMMSP430AsmPrinter -lLLVMXCoreCodeGen \
-lLLVMXCoreDesc -lLLVMXCoreInfo -lLLVMCellSPUCodeGen -lLLVMCellSPUDesc \
-lLLVMCellSPUInfo -lLLVMMipsDisassembler -lLLVMMipsAsmParser \
-lLLVMMipsCodeGen -lLLVMMipsDesc -lLLVMMipsInfo -lLLVMMipsAsmPrinter \
-lLLVMARMDisassembler -lLLVMARMAsmParser -lLLVMARMCodeGen \
-lLLVMARMDesc -lLLVMARMAsmPrinter -lLLVMARMInfo -lLLVMPowerPCCodeGen \
-lLLVMPowerPCDesc -lLLVMPowerPCAsmPrinter -lLLVMPowerPCInfo \
-lLLVMSparcCodeGen -lLLVMSparcDesc -lLLVMSparcInfo \
-lLLVMX86Disassembler -lLLVMX86CodeGen -lLLVMSelectionDAG \
-lLLVMAsmPrinter -lLLVMX86AsmParser -lLLVMX86Desc -lLLVMX86AsmPrinter \
-lLLVMX86Utils -lLLVMX86Info -lgtest_main -lgtest \
-lLLVMMCDisassembler -lLLVMMCParser -lLLVMInterpreter -lLLVMCodeGen \
-lLLVMScalarOpts -lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa \
-lLLVMAnalysis -lLLVMMCJIT -lLLVMRuntimeDyld -lLLVMExecutionEngine \
-lLLVMTarget -lLLVMMC -lLLVMObject -lLLVMCore -lLLVMSupport
all: $(OBJECTS) $(EXES)
%: %.o
$(CXX) -o $@ $< $(CLANGLIBS) $(LLVMLDFLAGS)
clean:
-rm -f $(EXES) $(OBJECTS) *~