TARGET := kernel CC = zig cc -target x86_64-freestanding CFLAGS = -O2 LD = ld -m elf_x86_64 QEMU = qemu-system-x86_64 QEMUFLAGS = -m 1G -enable-kvm -cpu host LDINTERNALFLAGS := -Tlinker.ld INTERNALCFLAGS := -I../ext/limine/stivale -mcmodel=kernel CFILES := $(shell find src -type f -name '*.c') HFILES := $(shell find src -type f -name '*.h') OBJ := $(patsubst src/%.c,obj/%.o,$(CFILES)) .PHONY: all clean obj all: $(TARGET) $(TARGET): $(OBJ) $(LD) $(LDINTERNALFLAGS) $(OBJ) -o $@ obj/%.o: src/%.c $(HFILES) mkdir -p obj $(CC) $(CFLAGS) $(INTERNALCFLAGS) -c $< -o $@ clean: rm -rf $(TARGET) obj zig-cache