aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile12
1 files changed, 10 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 46e938c..f50b43d 100644
--- a/Makefile
+++ b/Makefile
@@ -6,6 +6,7 @@ FLEX ?= flex
SRC_DIR := src
INC_DIR := include
+TEST_DIR := test
BUILD_DIR := build
PARSER_Y := $(SRC_DIR)/parser.y
@@ -23,11 +24,12 @@ LEXER_O := $(BUILD_DIR)/lex.yy.o
OBJS := $(C_OBJS) $(PARSER_O) $(LEXER_O)
TARGET := $(BUILD_DIR)/imp
+TEST_TARGET := $(BUILD_DIR)/test
-CFLAGS += -I$(INC_DIR) -MMD -MP
+CFLAGS += -I$(INC_DIR) -I. -MMD -MP
DEPS := $(OBJS:.o=.d)
-.PHONY: all clean example repl
+.PHONY: all clean example repl test
all: $(TARGET)
@@ -52,12 +54,18 @@ $(LEXER_C): $(LEXER_L) $(PARSER_H) | $(BUILD_DIR)
$(LEXER_O): $(LEXER_C)
$(CC) $(CFLAGS) -c $< -o $@
+$(TEST_TARGET): $(wildcard $(TEST_DIR)/*.c) $(filter-out $(BUILD_DIR)/main.o, $(OBJS)) | $(BUILD_DIR)
+ $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
+
example: $(TARGET)
./$(TARGET) -i examples/example.imp
repl: $(TARGET)
./$(TARGET)
+test: $(BUILD_DIR)/test
+ ./$(BUILD_DIR)/test
+
clean:
@rm -rf $(BUILD_DIR)