LLVM_CXXFLAGS=`llvm-config --cppflags core jit native` LLVM_LDFLAGS=`llvm-config --ldflags --libs core jit native` 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 all: builddir build/tuplr mkdir -p build builddir: mkdir -p build OBJECTS = \ build/compile.o \ build/constrain.o \ build/cps.o \ build/gc.o \ build/lex.o \ build/llvm.o \ build/parse.o \ build/pprint.o \ build/repl.o \ build/tlsf.o \ build/tuplr.o \ build/unify.o LIBS = \ build/tuplr_gc.so build/tuplr: $(OBJECTS) $(LIBS) g++ -o $@ $(OBJECTS) $(LDFLAGS) $(LLVM_LDFLAGS) build/%.o: src/%.cpp src/tuplr.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/tuplr.hpp g++ -c $(CXXFLAGS) $(LLVM_CXXFLAGS) -o $@ src/llvm.cpp build/%.so: src/%.cpp src/tuplr.hpp g++ -shared $(CXXFLAGS) -o $@ $^ clean: rm -rf build check: ./test.sh doc: doxygen ./tuplr.dox install-support: install -d ~/.vim/indent ~/.vim/syntax install -m 644 ./support/vim/indent/tuplr.vim ~/.vim/indent/tuplr.vim install -m 644 ./support/vim/syntax/tuplr.vim ~/.vim/syntax/tuplr.vim