summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile15
1 files changed, 12 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index aed2e52..0b1a81a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,12 @@
-TEST_SRC := test/main.c
SRC_DIR := src
OBJ_DIR := build
BIN_DIR := dist
LIB_DIR := lib
+TEST_SRC_DIR := test
+TEST_SRC := $(wildcard $(TEST_SRC_DIR)/*.c)
+TEST_OBJ := $(TEST_SRC:$(TEST_SRC_DIR)/%.c=$(OBJ_DIR)/%.o)
+
TEST_EXE := $(BIN_DIR)/lizfcm.test
EXE := $(BIN_DIR)/lizfcm
LIBRARY := $(LIB_DIR)/lizfcm.a
@@ -18,20 +21,26 @@ LDFLAGS := -lm
all: $(TEST_EXE)
-$(TEST_EXE): $(BIN_DIR) | $(LIBRARY)
- $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(TEST_SRC) $(LIBRARY) -o $@
+$(TEST_EXE): $(TEST_OBJ) $(LIBRARY) | $(BIN_DIR)
+ $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $^ -o $@
$(LIBRARY): $(OBJ) | $(LIB_DIR)
ar rcs $(LIBRARY) $(OBJ_DIR)/*.o
ranlib $(LIBRARY)
+$(OBJ_DIR)/%.o: $(TEST_SRC_DIR)/%.c | $(OBJ_DIR)
+ $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
+
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(OBJ_DIR)
$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
$(BIN_DIR) $(OBJ_DIR) $(LIB_DIR):
mkdir -p $@
+print-% : ; @echo $* = $($*)
+
clean:
@$(RM) -r $(BIN_DIR) $(OBJ_DIR) $(LIB_DIR)
-include $(OBJ:.o=.d)
+-include $(TEST_OBJ:.o=.d)