gdt idt stuff
This commit is contained in:
8
makefile
8
makefile
@@ -6,6 +6,7 @@ OSNAME := rockos
|
||||
C_SOURCES := $(shell find kernel -type f -name '*.c')
|
||||
S_SOURCES := $(shell find kernel -type f -name '*.s')
|
||||
|
||||
# This correctly generates paths like obj/kernel/main.o
|
||||
OBJECTS := $(patsubst %.c, obj/%.o, $(C_SOURCES)) $(patsubst %.s, obj/%.o, $(S_SOURCES))
|
||||
|
||||
CFLAGS := -ffreestanding -O2 -Wall -Wextra -Ikernel
|
||||
@@ -13,6 +14,8 @@ LDFLAGS := -T kernel/linker.ld
|
||||
|
||||
.PHONY: all run clean
|
||||
|
||||
all: $(OSNAME).iso
|
||||
|
||||
$(OSNAME).bin: $(OBJECTS)
|
||||
$(LD) $(LDFLAGS) -o $@ $(OBJECTS)
|
||||
|
||||
@@ -22,11 +25,12 @@ $(OSNAME).iso: $(OSNAME).bin grub.cfg
|
||||
cp grub.cfg isodir/boot/grub/grub.cfg
|
||||
grub-mkrescue -o $(OSNAME).iso isodir
|
||||
|
||||
obj/%.o: %.c
|
||||
# FIX: Pattern rules now explicitly expect the 'kernel' directory layout
|
||||
obj/kernel/%.o: kernel/%.c
|
||||
@mkdir -p $(dir $@)
|
||||
$(CC) -c $< -o $@ $(CFLAGS)
|
||||
|
||||
obj/%.o: %.s
|
||||
obj/kernel/%.o: kernel/%.s
|
||||
@mkdir -p $(dir $@)
|
||||
$(CC) -c $< -o $@ $(CFLAGS)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user