Files
nub-os/makefile
nub31 751a182122 ...
2025-08-23 22:45:59 +02:00

42 lines
1.3 KiB
Makefile

CC = x86_64-elf-gcc
LD = x86_64-elf-ld
CFLAGS = -ffreestanding -m64
all: .build/nub-os.iso
clean:
@rm -r .build 2>/dev/null || true
build-dir:
mkdir .build 2>/dev/null || true
.build/nub-os.iso: build-dir .build/kernel.bin
mkdir -p .build/iso/boot/grub
cp grub.cfg .build/iso/boot/grub
cp .build/kernel.bin .build/iso/boot/
grub-mkrescue -o .build/nub-os.iso .build/iso/
.build/kernel.bin: build-dir .build/boot.o .build/kernel.o .build/print.o .build/idt.o .build/keyboard.o .build/exceptions.o .build/interrupts.o
$(LD) -Ttext 0x100000 -o .build/kernel.bin .build/boot.o .build/kernel.o .build/print.o .build/idt.o .build/keyboard.o .build/exceptions.o .build/interrupts.o
.build/kernel.o: build-dir src/kernel.c
$(CC) $(CFLAGS) -c -o .build/kernel.o src/kernel.c
.build/print.o: build-dir src/print.c
$(CC) $(CFLAGS) -c -o .build/print.o src/print.c
.build/idt.o: build-dir src/idt.c
$(CC) $(CFLAGS) -c -o .build/idt.o src/idt.c
.build/keyboard.o: build-dir src/keyboard.c
$(CC) $(CFLAGS) -c -o .build/keyboard.o src/keyboard.c
.build/exceptions.o: build-dir src/exceptions.c
$(CC) $(CFLAGS) -c -o .build/exceptions.o src/exceptions.c
.build/interrupts.o: build-dir src/interrupts.asm
nasm -f elf64 -o .build/interrupts.o src/interrupts.asm
.build/boot.o: build-dir src/boot.asm
nasm -f elf64 -o .build/boot.o src/boot.asm