kornos/kernel/Makefile

30 lines
678 B
Makefile

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 \
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) obj
$(CC) $(CFLAGS) $(INTERNALCFLAGS) -c $< -o $@
obj:
mkdir -p obj
clean:
rm -rf $(TARGET) obj zig-cache