LLVM_CXXFLAGS=`llvm-config --cppflags core jit native` LLVM_LDFLAGS=`llvm-config --ldflags --libs core jit native` #LLVM_CXXFLAGS=`llvm-config --cppflags all` #LLVM_LDFLAGS=`llvm-config --ldflags --libs all` COMMON_FLAGS=-fPIC COMMON_FLAGS+=-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 all: builddir build/resp builddir: mkdir -p build OBJECTS = \ build/c.o \ build/compile.o \ build/constrain.o \ build/cps.o \ build/gc.o \ build/lex.o \ build/lift.o \ build/parse.o \ build/pprint.o \ build/repl.o \ build/tlsf.o \ build/resp.o \ build/unify.o \ build/resp_gc.o LLVM_OBJECTS = build/llvm.o #LLVM_OBJECTS = build/resp: $(OBJECTS) $(LLVM_OBJECTS) g++ -o $@ $(OBJECTS) $(LLVM_OBJECTS) $(LDFLAGS) $(LLVM_LDFLAGS) build/%.o: src/%.cpp src/resp.hpp g++ $(CXXFLAGS) -o $@ -c $< build/tlsf.o: src/tlsf.c src/tlsf.h gcc $(CFLAGS) -o $@ -c $< build/llvm.o: src/llvm.cpp src/resp.hpp g++ $(CXXFLAGS) $(LLVM_CXXFLAGS) -o $@ -c src/llvm.cpp build/%.so: src/%.cpp src/resp.hpp g++ -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