From cf19cc71835e287e58a2d4261a52aceff22f15f6 Mon Sep 17 00:00:00 2001 From: dvdrw Date: Mon, 25 Nov 2024 13:52:40 +0100 Subject: [PATCH] ci: add automatic header file deps to Makefile --- .gitignore | 1 + Makefile | 15 +++++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 1af29d2..15a5f2f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .clangd *.o bin/swarm +obj/ diff --git a/Makefile b/Makefile index 3b5ea7b..48cf34e 100644 --- a/Makefile +++ b/Makefile @@ -6,19 +6,16 @@ OBJ_DIR = ./obj HEADERS = $(wildcard $(INC_DIR)/*.hpp) SRC_FILES = $(wildcard $(SRC_DIR)/*.cpp) +DEP_FILES = $(OBJ_FILES:.o=.d) OBJ_FILES = $(addprefix $(OBJ_DIR)/,$(notdir $(SRC_FILES:.cpp=.o))) -CXXFLAGS += -Wall -std=c++20 -O2 +CXXFLAGS += -Wall -std=c++20 -O2 -I $(INC_DIR) all: bin/swarm -$(OBJ_DIR)/%.o: src/%.cpp - $(CXX) -I $(INC_DIR) $(CXXFLAGS) -c -o $@ $^ - bin/swarm: $(OBJ_FILES) - @mkdir -p $(OBJ_DIR) @mkdir -p bin - $(CXX) -I $(INC_DIR) $(CXXFLAGS) -o $@ $^ + $(CXX) $(CXXFLAGS) -o $@ $^ .PHONY: debug debug: CXXFLAGS += -O0 -g @@ -28,3 +25,9 @@ debug: clean bin/swarm clean: $(RM) obj/*.o $(RM) bin/swarm + +-include $(DEP_FILES) + +$(OBJ_DIR)/%.o : src/%.cpp + mkdir -p $(@D) + $(CXX) $(CXXFLAGS) -MMD -c $< -o $@