CC = x86_64-elf-gcc LD = x86_64-elf-ld CFLAGS = -m64 -ffreestanding -fno-builtin -Wall -Wextra -Wshadow -std=c23 LDFLAGS = 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 mkdir -p .build/iso/boot/grub cp grub.cfg .build/iso/boot/grub cp .build/kernel .build/iso/boot/ grub-mkrescue -o .build/nub-os.iso .build/iso/ .build/kernel: build-dir .build/boot.o .build/kernel.o .build/vga.o .build/idt.o .build/idt_stub.o $(LD) $(LDFLAGS) -T src/boot.ld -o .build/kernel .build/boot.o .build/kernel.o .build/vga.o .build/idt.o .build/idt_stub.o .build/kernel.o: build-dir src/kernel.c $(CC) $(CFLAGS) -c -o .build/kernel.o src/kernel.c .build/vga.o: build-dir src/vga.c $(CC) $(CFLAGS) -c -o .build/vga.o src/vga.c .build/idt.o: build-dir src/idt.c $(CC) $(CFLAGS) -c -o .build/idt.o src/idt.c .build/idt_stub.o: build-dir src/idt_stub.asm nasm -f elf64 -o .build/idt_stub.o src/idt_stub.asm .build/boot.o: build-dir src/boot.asm nasm -f elf64 -o .build/boot.o src/boot.asm