diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2021-02-11 16:16:11 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2021-02-11 16:16:11 +0200 |
commit | 14a3ffac9723f237ff7085a7a5b470f4567b339b (patch) | |
tree | 91cadb64820fd8b1834127a3fdff87b3c3cb2b16 | |
parent | Update VGA cursor position on printk (diff) | |
download | kernel.cpp-14a3ffac9723f237ff7085a7a5b470f4567b339b.tar.xz |
Generate target dependency files
-rw-r--r-- | makefile | 15 |
1 files changed, 4 insertions, 11 deletions
@@ -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 |