Files
RockOS/makefile

40 lines
900 B
Makefile
Raw Normal View History

2026-06-09 23:16:25 -05:00
CC = i686-elf-gcc
LD = i686-elf-ld
OSNAME := rockos
2026-06-09 23:16:25 -05:00
C_SOURCES := $(shell find kernel -type f -name '*.c')
2026-06-13 13:27:39 -05:00
S_SOURCES := $(shell find kernel -type f -name '*.S')
2026-06-10 09:39:37 -04:00
OBJECTS := $(patsubst %, obj/%.o, $(C_SOURCES) $(S_SOURCES))
2026-06-10 09:39:37 -04:00
CFLAGS := -ffreestanding -O2 -Wall -Wextra -Ikernel
LDFLAGS := -T kernel/linker.ld
2026-06-09 23:16:25 -05:00
.PHONY: all run clean
2026-06-10 09:39:37 -04:00
2026-06-12 23:03:00 -04:00
all: $(OSNAME).iso
2026-06-15 18:09:04 -04:00
$(OSNAME).bin: $(OBJECTS) kernel/linker.ld
$(LD) $(LDFLAGS) -o $@ $(OBJECTS)
2026-06-10 09:39:37 -04:00
$(OSNAME).iso: $(OSNAME).bin grub.cfg
mkdir -p isodir/boot/grub
cp $(OSNAME).bin isodir/boot/$(OSNAME)
cp grub.cfg isodir/boot/grub/grub.cfg
grub-mkrescue -o $(OSNAME).iso isodir
2026-06-09 23:16:25 -05:00
obj/%.c.o: %.c
@mkdir -p $(dir $@)
$(CC) -c $< -o $@ $(CFLAGS)
2026-06-09 23:16:25 -05:00
obj/%.S.o: %.S
@mkdir -p $(dir $@)
$(CC) -c $< -o $@ $(CFLAGS)
2026-06-09 23:16:25 -05:00
run: $(OSNAME).iso
qemu-system-i386 -cdrom $(OSNAME).iso
2026-06-09 23:16:25 -05:00
clean:
@echo "Cleaning up build artifacts..."
rm -rf $(OSNAME).iso $(OSNAME).bin obj isodir