include ../.env C_SRC = $(shell find src -type f -name "*.c" -not -path "src/arch/*") C_SRC += $(shell find src/arch/$(ARCH) -type f -name "*.c") C_OBJ = $(patsubst %.c,bin/%.o, $(C_SRC)) ASM_SRC = $(shell find src -type f -name "*.asm" -not -path "src/arch/*") ASM_SRC += $(shell find src/arch/$(ARCH) -type f -name "*.asm") ASM_OBJ = $(patsubst %.asm,bin/%.asm.o, $(ASM_SRC)) CFLAGS += -Iinclude -Isrc -I../libk/include -std=gnu17 .PHONY: all all: bin/kernel.bin $(C_OBJ): bin/%.o : %.c @mkdir -p $(@D) $(CC) -c $(CFLAGS) -o $@ $< $(ASM_OBJ): bin/%.asm.o : %.asm @mkdir -p $(@D) $(AS) $< -f elf -o $@ bin/kernel.bin: $(C_OBJ) $(ASM_OBJ) @mkdir -p $(@D) $(LD) -o bin/kernel.bin -T arch/$(ARCH)/linker.ld $(C_OBJ) $(ASM_OBJ) ../libk/bin/libk.a $(LDFLAGS) clean: rm -fr bin