aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorFlavian Kaufmann <flavian@flaviankaufmann.ch>2025-05-25 15:54:50 +0200
committerFlavian Kaufmann <flavian@flaviankaufmann.ch>2025-05-25 15:54:50 +0200
commit330e46236b421ffb8fe263caf91196f4cd1114c5 (patch)
tree09b3df77fca2d23dacef64f6962e9a1afd5b4d29 /Makefile
parentde59dbd1773dff06051b7b604977bcb2803ada4f (diff)
downloadimp-330e46236b421ffb8fe263caf91196f4cd1114c5.tar.gz
imp-330e46236b421ffb8fe263caf91196f4cd1114c5.zip
[cleanup] codebase cleanup
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)