From de73851481695a89c942e78723211fd34d586fe0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Lov=C3=A9n?= Date: Tue, 24 Oct 2017 22:42:29 +0200 Subject: [PATCH] Dependency file generation - rebuild if a header file is updated --- src/kernel/Makefile | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/kernel/Makefile b/src/kernel/Makefile index 82c142e..4a4d99b 100644 --- a/src/kernel/Makefile +++ b/src/kernel/Makefile @@ -6,6 +6,7 @@ CC := x86_64-elf-gcc SRC := $(wildcard **/*.[cS]) OBJ := $(patsubst %, %.o, $(basename $(SRC))) +DEP := $(OBJ:.o=.d) CFLAGS ?= -Wall -Wextra CFLAGS += -ffreestanding @@ -17,6 +18,13 @@ kernel: LDFLAGS += -n -nostdlib -T Link.ld kernel: $(OBJ) $(LINK.c) $^ -o $@ +DEPFLAGS = -MT $@ -MMD -MP -MF $*.d +%.o: %.c $.d + $(COMPILE.c) $(DEPFLAGS) -o $@ $< +%.o: %.S %.d + $(COMPILE.S) $(DEPFLAGS) -o $@ $< +%.d: ; + # Copy kernel to sysroot /opt/sysroot/kernel: kernel @@ -26,6 +34,8 @@ kernel: $(OBJ) install: /opt/sysroot/kernel clean: - rm -rf $(OBJ) kernel + rm -rf $(OBJ) $(DEP) kernel .PHONY: install + +include $(DEP)