diff --git a/kernel/Makefile b/kernel/Makefile index 0538216..b91e351 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -10,7 +10,7 @@ LDSCRIPT = make/$(ARCH)/linker.ld CFLAGS ?= -O2 CFLAGS := $(CFLAGS) $(ARCH_CFLAGS) \ - -Wall -Wextra -pedantic -Wno-language-extension-token -std=gnu11 -I../ext -fPIE + -Wall -Wextra -pedantic -Wno-language-extension-token -std=gnu11 -I../ext -Isrc -fPIE LDFLAGS := $(LDFLAGS) -T $(LDSCRIPT) @@ -21,18 +21,17 @@ ARCHFILES := $(ARCHFILES) $(shell find src/arch/$(ARCH) -type f -name '*.c' -pri HFILES := $(shell find src -type f -name '*.h') OBJ := $(patsubst src/%.c,obj/$(ARCH)/%.o,$(CFILES) $(ARCHFILES)) -.PHONY: all clean obj dirs +.PHONY: all clean obj all: bin/$(TARGET)-$(ARCH) -bin/$(TARGET)-$(ARCH): $(OBJ) dirs +bin/$(TARGET)-$(ARCH): $(OBJ) + @mkdir -p $(@D) $(LD) $(LDFLAGS) $(OBJ) -o $@ -obj/$(ARCH)/%.o: src/%.c $(HFILES) dirs +obj/$(ARCH)/%.o: src/%.c $(HFILES) + @mkdir -p $(@D) $(CC) $(CFLAGS) -c $< -o $@ -dirs: - mkdir -p bin $(patsubst src/%,obj/$(ARCH)/%, $(shell find src/* -type d -print)) - clean: rm -rf bin obj zig-cache