28 lines
682 B
Makefile
28 lines
682 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 -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
|