Files
nub-os/makefile
2025-08-24 01:04:04 +02:00

31 lines
903 B
Makefile

CC = gcc
LD = ld
CFLAGS = -m32 -ffreestanding -fno-pie -fno-stack-protector -fno-builtin -Wall -Wextra -Werror -Wshadow -std=c23
LDFLAGS = -m elf_i386 -Ttext 0x100000 -nostdlib
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
$(LD) $(LDFLAGS) -Ttext 0x100000 -o .build/kernel .build/boot.o .build/kernel.o .build/vga.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/boot.o: build-dir src/boot.asm
nasm -f elf32 -o .build/boot.o src/boot.asm