...
This commit is contained in:
32
makefile
32
makefile
@@ -1,9 +1,16 @@
|
||||
CC = x86_64-elf-gcc
|
||||
LD = x86_64-elf-ld
|
||||
|
||||
CFLAGS = -m64 -ffreestanding -fno-builtin -Wall -Wextra -Wshadow -std=c23
|
||||
CFLAGS = -m64 -ffreestanding -fno-builtin -Wall -Wextra -Wshadow -std=c23
|
||||
LDFLAGS =
|
||||
|
||||
SRC_C := src/kernel.c src/vga.c src/idt.c src/string.c
|
||||
SRC_ASM := src/boot.asm src/idt_stub.asm
|
||||
|
||||
OBJ_C := $(SRC_C:src/%.c=.build/%.o)
|
||||
OBJ_ASM := $(SRC_ASM:src/%.asm=.build/%.o)
|
||||
OBJS := $(OBJ_C) $(OBJ_ASM)
|
||||
|
||||
all: .build/nub-os.iso
|
||||
|
||||
clean:
|
||||
@@ -12,26 +19,17 @@ clean:
|
||||
build-dir:
|
||||
mkdir .build 2>/dev/null || true
|
||||
|
||||
.build/nub-os.iso: build-dir .build/kernel
|
||||
.build/nub-os.iso: .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: $(OBJS)
|
||||
$(LD) $(LDFLAGS) -T src/boot.ld -o $@ $^
|
||||
|
||||
.build/kernel.o: build-dir src/kernel.c
|
||||
$(CC) $(CFLAGS) -c -o .build/kernel.o src/kernel.c
|
||||
.build/%.o: src/%.c | build-dir
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
.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
|
||||
.build/%.o: src/%.asm | build-dir
|
||||
nasm -f elf64 -o $@ $<
|
||||
Reference in New Issue
Block a user