From 14a3ffac9723f237ff7085a7a5b470f4567b339b Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Thu, 11 Feb 2021 16:16:11 +0200 Subject: Generate target dependency files --- makefile | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/makefile b/makefile index 724c57b..f65e699 100644 --- a/makefile +++ b/makefile @@ -1,8 +1,3 @@ -# https://www.gnu.org/software/make/manual/html_node/Setting.html -# := expanded variable, right-hand side can contain variables -# ?= only set if it doesn't have a value -# != execute a shell script on the right-hand side and assign its result to the left-hand side - include toolchain.makefile OBJ_DIR := build @@ -10,14 +5,11 @@ include src/makefile include libk/makefile AS_OBJ := $(addprefix $(OBJ_DIR)/, $(AS_OBJ)) CXX_OBJ := $(addprefix $(OBJ_DIR)/, $(CXX_OBJ)) +CXX_DEP = $(CXX_OBJ:%o=%.d) CXX_TEST_OBJ := $(addprefix $(OBJ_DIR)/, $(CXX_TEST_OBJ)) CXX_INCLUDE := $(addprefix -I, $(CXX_INCLUDE)) CXX_SYSTEM_INCLUDE := $(addprefix -isystem, $(CXX_SYSTEM_INCLUDE)) -# $@ is target -# $< is first dependency -# $^ is all dependencies - .PHONY: default clean test check-grub run default: glitch.elf @@ -30,13 +22,14 @@ $(AS_OBJ): $(OBJ_DIR)/%.o: %.s @echo " AS $^" @$(AS) -target $(TARGET) -nostdlib -Wall -Wextra -c $^ -o $@ +-include $(CXX_DEP) $(CXX_OBJ) $(CXX_TEST_OBJ): $(OBJ_DIR)/%.o : %.cc @mkdir -p $(@D) @echo " CXX $^" - @$(CXX) -target $(TARGET) $(CXX_FLAGS) $(CXX_INCLUDE) $(CXX_SYSTEM_INCLUDE) -c $^ -o $@ + @$(CXX) -target $(TARGET) $(CXX_FLAGS) $(CXX_INCLUDE) $(CXX_SYSTEM_INCLUDE) -MMD -c $^ -o $@ clean: - rm -rf $(AS_OBJ) $(CXX_OBJ) $(CXX_TEST_OBJ) glitch.elf isodir + rm -rf $(AS_OBJ) $(CXX_OBJ) $(CXX_DEP) $(CXX_TEST_OBJ) glitch.elf isodir # testing test: $(CXX_TEST_OBJ) check-grub -- cgit v1.2.1