diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 39 |
1 files changed, 30 insertions, 9 deletions
@@ -1,18 +1,39 @@ -sonsi: main.o parser.o builtin.o model.o eval.o exc.o consts.o types.o gc.o - g++ -o sonsi $^ -pg -lgmp +CXX = g++ -DGMP_SUPPORT +BUILD_DIR = build -.cpp.o: - g++ $< -c -g -DGMP_SUPPORT -Wall -DGC_INFO +all: release +debug: CXX += -g -pg +gc_debug: CXX += -DGC_INFO -DGC_DEBUG -g -pg + +release: $(BUILD_DIR) $(BUILD_DIR)/sonsi +debug: $(BUILD_DIR) $(BUILD_DIR)/sonsi +gc_debug: $(BUILD_DIR) $(BUILD_DIR)/sonsi + +_OBJS = main.o \ + parser.o builtin.o \ + model.o eval.o exc.o \ + consts.o types.o gc.o + + +OBJS = $(patsubst %, $(BUILD_DIR)/%, $(_OBJS)) + +$(BUILD_DIR)/sonsi: $(OBJS) + $(CXX) -o $(BUILD_DIR)/sonsi $^ -lgmp + +$(BUILD_DIR): + mkdir -p $(BUILD_DIR) + +$(BUILD_DIR)/%.o : %.cpp + $(CXX) -o $@ -c $< -Wall -O2 clean: - rm -f *.o - rm -f sonsi + rm -rf $(BUILD_DIR) db: - gdb sonsi + gdb $(BUILD_DIR)/sonsi cdb: - cgdb sonsi + cgdb $(BUILD_DIR)/sonsi run: - ./sonsi + ./$(BUILD_DIR)/sonsi |