This commit is contained in:
nub31
2025-08-30 20:39:59 +02:00
parent f7342ff6e4
commit bd3137067d
12 changed files with 144 additions and 254 deletions

View File

@@ -1,16 +1,21 @@
CC = x86_64-elf-gcc
LD = x86_64-elf-ld
CC = i386-elf-gcc
AS = i386-elf-as
LD = i386-elf-ld
CFLAGS = -m64 -ffreestanding -fno-builtin -Wall -Wextra -Wshadow -std=c23
CFLAGS = -m32 -ffreestanding -fno-builtin -Wall -Wextra -Wshadow -std=c23
LDFLAGS =
ASFLAGS =
SRC_C := src/kernel.c src/vga.c src/idt.c src/string.c src/keyboard.c
SRC_ASM := src/boot.asm src/idt_stub.asm
SRC_C := src/kernel.c src/string.c src/vga.c
SRC_ASM := src/boot.s
OBJ_C := $(SRC_C:src/%.c=.build/%.o)
OBJ_ASM := $(SRC_ASM:src/%.asm=.build/%.o)
OBJ_ASM := $(SRC_ASM:src/%.s=.build/%.o)
OBJS := $(OBJ_C) $(OBJ_ASM)
kernel: .build/kernel
@echo "Kernel created at '.build/kernel'"
iso: .build/nub-os.iso
@echo "ISO created at '.build/nub-os.iso'"
@@ -20,17 +25,17 @@ clean:
build-dir:
mkdir .build 2>/dev/null || true
.build/nub-os.iso: .build/kernel
.build/nub-os.iso: .build/kernel grub.cfg
mkdir -p .build/nub-os/boot/grub
cp grub.cfg .build/nub-os/boot/grub
cp .build/kernel .build/nub-os/boot/
grub-mkrescue -o .build/nub-os.iso .build/nub-os/
.build/kernel: $(OBJS)
$(LD) $(LDFLAGS) -T src/boot.ld -o $@ $^
.build/kernel: $(OBJS) | linker.ld
$(LD) $(LDFLAGS) -m elf_i386 -T linker.ld -o $@ $^
.build/%.o: src/%.c | build-dir
$(CC) $(CFLAGS) -c -o $@ $<
.build/%.o: src/%.asm | build-dir
nasm -f elf64 -o $@ $<
.build/%.o: src/%.s | build-dir
$(AS) $(ASFLAGS) -o $@ $<