aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile22
1 files changed, 14 insertions, 8 deletions
diff --git a/Makefile b/Makefile
index 66ae353..f25b489 100644
--- a/Makefile
+++ b/Makefile
@@ -1,13 +1,14 @@
LLVM_CXXFLAGS=`llvm-config --cppflags core jit native`
LLVM_LDFLAGS=`llvm-config --ldflags --libs core jit native`
-COMMON_FLAGS=-Wextra -Wno-unused-parameter
+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) $(LLVM_CXXFLAGS)
-LDFLAGS=$(LLVM_LDFLAGS) -lm
+CXXFLAGS=$(COMMON_FLAGS) -ansi
+LDFLAGS=-rdynamic -lm -ldl
all: builddir build/tuplr
mkdir -p build
@@ -20,18 +21,20 @@ OBJECTS = \
build/constrain.o \
build/cps.o \
build/gc.o \
- build/tuplr_gc.so \
build/lex.o \
- build/tuplr_llvm.so \
build/parse.o \
build/pprint.o \
build/repl.o \
build/tlsf.o \
build/tuplr.o \
+ build/tuplr_llvm.o \
build/unify.o
-build/tuplr: $(OBJECTS)
- g++ -o $@ $^ $(LDFLAGS)
+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 $<
@@ -39,8 +42,11 @@ build/%.o: src/%.cpp src/tuplr.hpp
build/tlsf.o: src/tlsf.c src/tlsf.h
gcc $(CFLAGS) -o $@ -c $<
+build/tuplr_llvm.o: src/tuplr_llvm.cpp src/tuplr.hpp
+ g++ -c $(CXXFLAGS) $(LLVM_CXXFLAGS) -o $@ src/tuplr_llvm.cpp
+
build/%.so: src/%.cpp src/tuplr.hpp
- g++ -fPIC -dPIC -shared $(CXXFLAGS) -o $@ $<
+ g++ -shared $(CXXFLAGS) -o $@ $^
clean:
rm -rf build