Cleaning up the kernel makefile

This commit is contained in:
Thomas Lovén 2017-10-30 22:16:10 +01:00
parent d7560b775c
commit e016c5dc52

View File

@ -6,24 +6,20 @@ CC := x86_64-elf-gcc
SRC := $(wildcard **/*.[cS]) SRC := $(wildcard **/*.[cS])
OBJ := $(patsubst %, %.o, $(basename $(SRC))) OBJ := $(patsubst %, %.o, $(basename $(SRC)))
DEP := $(OBJ:.o=.d)
CFLAGS ?= -Wall -Wextra CFLAGS := -Wall -Wextra -pedantic -ffreestanding
CFLAGS += -ffreestanding -ggdb -O0 CFLAGS += -ggdb -O0
ASFLAGS += -ggdb ASFLAGS += -ggdb
CPPFLAGS += -I include CPPFLAGS += -I include
LDFLAGS := -n -nostdlib -lgcc -T Link.ld
all: kernel
kernel: LDFLAGS += -n -nostdlib -T Link.ld
kernel: $(OBJ) kernel: $(OBJ)
$(LINK.c) $^ -o $@ $(LINK.c) $^ -o $@
DEP := $(OBJ:.o=.d)
DEPFLAGS = -MT $@ -MMD -MP -MF $*.d DEPFLAGS = -MT $@ -MMD -MP -MF $*.d
%.o: %.c $.d $(OBJ): CPPFLAGS += $(DEPFLAGS)
$(COMPILE.c) $(DEPFLAGS) -o $@ $<
%.o: %.S %.d
$(COMPILE.S) $(DEPFLAGS) -o $@ $<
%.d: ; %.d: ;