LLVM_CXXFLAGS=`llvm-config-2.8 --cppflags core jit native codegen ipo` LLVM_LDFLAGS=`llvm-config-2.8 --ldflags --libs core jit native codegen ipo` #LLVM_CXXFLAGS=`llvm-config-2.8 --cppflags all` #LLVM_LDFLAGS=`llvm-config-2.8 --ldflags --libs all` COMMON_FLAGS=-fPIC COMMON_FLAGS+=-Wall -Wextra -Wno-unused-parameter COMMON_FLAGS+=-O0 -g #COMMON_FLAGS+=-O2 -march=nocona -fomit-frame-pointer CFLAGS=$(COMMON_FLAGS) -std=c99 CXXFLAGS=$(COMMON_FLAGS) -ansi LDFLAGS=-rdynamic -lm -ldl # Test coverage #COMMON_FLAGS+=-fprofile-arcs -ftest-coverage #LDFLAGS+=-lgcov CC=gcc CXX=g++ all: builddir build/resp builddir: mkdir -p build #build/c.o OBJECTS = \ build/compile.o \ build/constrain.o \ build/cps.o \ build/expand.o \ build/flatten.o \ build/gc.o \ build/lift.o \ build/parse.o \ build/pprint.o \ build/repl.o \ build/resp.o \ build/simplify.o \ build/tlsf.o \ build/unify.o LLVM_OBJECTS = build/llvm.o build/resp: $(OBJECTS) $(LLVM_OBJECTS) $(CXX) -o $@ $(OBJECTS) $(LLVM_OBJECTS) $(LDFLAGS) $(LLVM_LDFLAGS) build/%.o: src/%.cpp src/resp.hpp $(CXX) $(CXXFLAGS) -o $@ -c $< build/tlsf.o: src/tlsf.c src/tlsf.h $(CC) $(CFLAGS) -o $@ -c $< build/llvm.o: src/llvm.cpp src/resp.hpp $(CXX) $(CXXFLAGS) $(LLVM_CXXFLAGS) -o $@ -c src/llvm.cpp build/%.so: src/%.cpp src/resp.hpp $(CXX) -shared $(CXXFLAGS) -o $@ $^ clean: rm -rf build check: ./test.sh doc: doxygen ./resp.dox install-support: install -d ~/.vim/indent ~/.vim/syntax install -m 644 ./support/vim/indent/resp.vim ~/.vim/indent/resp.vim install -m 644 ./support/vim/syntax/resp.vim ~/.vim/syntax/resp.vim