Improve Makefile #15

Merged
xamidev merged 5 commits from furtest/pepperOS:makefile into main 2026-03-15 21:17:44 +01:00
Showing only changes of commit 9fc55f98d8 - Show all commits

View File

@@ -1,3 +1,6 @@
BUILDDIR := build
ELFFILE := pepperk
SOURCES = src/sched/spinlock.c src/debug/misc.c src/io/term/flanterm_backends/fb.c src/io/term/flanterm.c src/debug/panic.c src/debug/stacktrace.c src/boot/boot.c src/sched/scheduler.c src/sched/process.c src/mem/heap/kheap.c src/mem/paging/vmm.c src/mem/paging/paging.c src/mem/paging/pmm.c src/string/string.c src/io/kbd/ps2.c src/io/serial/serial.c src/io/term/term.c src/idt/idt.c src/mem/gdt/gdt.c src/mem/misc/utils.c src/time/timer.c src/kmain.c SOURCES = src/sched/spinlock.c src/debug/misc.c src/io/term/flanterm_backends/fb.c src/io/term/flanterm.c src/debug/panic.c src/debug/stacktrace.c src/boot/boot.c src/sched/scheduler.c src/sched/process.c src/mem/heap/kheap.c src/mem/paging/vmm.c src/mem/paging/paging.c src/mem/paging/pmm.c src/string/string.c src/io/kbd/ps2.c src/io/serial/serial.c src/io/term/term.c src/idt/idt.c src/mem/gdt/gdt.c src/mem/misc/utils.c src/time/timer.c src/kmain.c
CC := x86_64-elf-gcc CC := x86_64-elf-gcc
@@ -8,17 +11,17 @@ LD := x86_64-elf-ld
.PHONY: build build-iso debug debug2 run clean .PHONY: build build-iso debug debug2 run clean
build: $(ELFFILE):
mkdir -p build mkdir -p $(BUILDDIR)
rm -f *.o build/*.o rm -f *.o $(BUILDDIR)/*.o
$(CC) -g -c -Isrc $(SOURCES) $(CC_PROBLEMATIC_FLAGS) $(CC_FLAGS) $(CC) -g -c -Isrc $(SOURCES) $(CC_PROBLEMATIC_FLAGS) $(CC_FLAGS)
mv *.o build/ mv *.o $(BUILDDIR)/
nasm -f elf64 src/idt/idt.S -o build/idt_stub.o nasm -f elf64 src/idt/idt.S -o $(BUILDDIR)/idt_stub.o
$(LD) -o pepperk -T linker.ld build/*.o $(LD) -o $(ELFFILE) -T linker.ld $(BUILDDIR)/*.o
nm -n pepperk | awk '$$2 ~ /[TtDdBbRr]/ {print $$1, $$3}' > symbols.map nm -n $(ELFFILE) | awk '$$2 ~ /[TtDdBbRr]/ {print $$1, $$3}' > symbols.map
python3 symbols.py python3 symbols.py
nasm -f elf64 symbols.S -o build/symbols.o nasm -f elf64 symbols.S -o $(BUILDDIR)/symbols.o
$(LD) -o pepperk -T linker.ld build/*.o $(LD) -o $(ELFFILE) -T linker.ld $(BUILDDIR)/*.o
limine/limine: limine/limine:
rm -rf limine rm -rf limine
@@ -28,7 +31,7 @@ limine/limine:
build-iso: limine/limine build build-iso: limine/limine build
rm -rf iso_root rm -rf iso_root
mkdir -p iso_root/boot mkdir -p iso_root/boot
cp -v pepperk iso_root/boot cp -v $(ELFFILE) iso_root/boot
mkdir -p iso_root/boot/limine mkdir -p iso_root/boot/limine
cp -v limine.conf iso_root/boot/limine cp -v limine.conf iso_root/boot/limine
mkdir -p iso_root/EFI/BOOT mkdir -p iso_root/EFI/BOOT
@@ -44,14 +47,14 @@ build-iso: limine/limine build
debug: debug:
/usr/bin/qemu-system-x86_64 -drive file=pepper.iso -s -S -d int -D qemu.log -no-reboot -no-shutdown & /usr/bin/qemu-system-x86_64 -drive file=pepper.iso -s -S -d int -D qemu.log -no-reboot -no-shutdown &
gdb pepperk --command=debug.gdb gdb $(ELFFILE) --command=debug.gdb
debug2: debug2:
/usr/bin/qemu-system-x86_64 -drive file=pepper.iso -s -S -d int -no-reboot -no-shutdown & /usr/bin/qemu-system-x86_64 -drive file=pepper.iso -s -S -d int -no-reboot -no-shutdown &
pwndbg pepperk --command=debug.gdb pwndbg $(ELFFILE) --command=debug.gdb
run: build-iso run: build-iso
/usr/bin/qemu-system-x86_64 -cdrom pepper.iso -serial stdio /usr/bin/qemu-system-x86_64 -cdrom pepper.iso -serial stdio
clean: clean:
rm -rf *.o symbols.map symbols.S pepperk iso_root pepper.iso limine build/*.o rm -rf *.o symbols.map symbols.S $(ELFFILE) iso_root pepper.iso limine $(BUILDDIR)/*.o