LLVM_CXXFLAGS=`llvm-config --cppflags core jit native`
LLVM_LDFLAGS=`llvm-config --ldflags --libs core jit native`

CXXFLAGS=-O0 -g -Wall -Wextra -Wno-unused-parameter $(LLVM_CXXFLAGS)
LDFLAGS=$(LLVM_LDFLAGS) -lm 

all: builddir build/tuplr
	mkdir -p build

builddir:
	mkdir -p build

build/tuplr: build/tuplr.o build/typing.o build/llvm.o build/gclib.so build/write.o build/gc.o
	g++ -o $@ $^ $(LDFLAGS)

build/%.o: %.cpp tuplr.hpp
	g++ $(CXXFLAGS) -o $@ -c $<

build/%.so: %.cpp tuplr.hpp
	g++ -fPIC -dPIC -shared $(CXXFLAGS) -o $@ $<

clean:
	rm -rf build