diff --git a/GNUmakefile b/GNUmakefile index 8020942..5275b72 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -67,7 +67,7 @@ kernel: $(IMAGE_NAME).iso: limine kernel rm -rf iso_root mkdir -p iso_root - cp -v kernel/kernel.elf \ + cp -v kernel/bin/kernel \ limine.cfg limine/limine-bios.sys limine/limine-bios-cd.bin limine/limine-uefi-cd.bin iso_root/ mkdir -p iso_root/EFI/BOOT cp -v limine/BOOTX64.EFI iso_root/EFI/BOOT/ @@ -87,7 +87,7 @@ $(IMAGE_NAME).hdd: limine kernel ./limine/limine bios-install $(IMAGE_NAME).hdd mformat -i $(IMAGE_NAME).hdd@@1M mmd -i $(IMAGE_NAME).hdd@@1M ::/EFI ::/EFI/BOOT - mcopy -i $(IMAGE_NAME).hdd@@1M kernel/kernel.elf limine.cfg limine/limine-bios.sys ::/ + mcopy -i $(IMAGE_NAME).hdd@@1M kernel/bin/kernel limine.cfg limine/limine-bios.sys ::/ mcopy -i $(IMAGE_NAME).hdd@@1M limine/BOOTX64.EFI ::/EFI/BOOT mcopy -i $(IMAGE_NAME).hdd@@1M limine/BOOTIA32.EFI ::/EFI/BOOT diff --git a/kernel/.gitignore b/kernel/.gitignore index 5eedd3a..a36cd7e 100644 --- a/kernel/.gitignore +++ b/kernel/.gitignore @@ -1,4 +1,3 @@ /src/limine.h +/bin /obj -*.elf -*.o diff --git a/kernel/GNUmakefile b/kernel/GNUmakefile index 7496ab4..bd9fbfc 100644 --- a/kernel/GNUmakefile +++ b/kernel/GNUmakefile @@ -3,7 +3,7 @@ override MAKEFLAGS += -rR # This is the name that our final kernel executable will have. # Change as needed. -override KERNEL := kernel.elf +override KERNEL := bin/kernel # Convenience macro to reliably declare user overridable variables. define DEFAULT_VAR = @@ -99,6 +99,7 @@ src/limine.h: # Link rules for the final kernel executable. $(KERNEL): GNUmakefile linker.ld $(OBJ) + mkdir -p "$$(dirname $@)" $(LD) $(OBJ) $(LDFLAGS) -o $@ # Include header dependencies. @@ -122,7 +123,7 @@ obj/%.asm.o: src/%.asm GNUmakefile # Remove object files and the final executable. .PHONY: clean clean: - rm -rf $(KERNEL) obj + rm -rf bin obj .PHONY: distclean distclean: clean diff --git a/limine.cfg b/limine.cfg index 479345d..e5f0d87 100644 --- a/limine.cfg +++ b/limine.cfg @@ -7,7 +7,7 @@ TIMEOUT=3 PROTOCOL=limine # Path to the kernel to boot. boot:/// represents the partition on which limine.cfg is located. - KERNEL_PATH=boot:///kernel.elf + KERNEL_PATH=boot:///kernel # Same thing, but without KASLR. :Limine Barebones (KASLR off) @@ -16,4 +16,4 @@ TIMEOUT=3 # Disable KASLR (it is enabled by default for relocatable kernels) KASLR=no - KERNEL_PATH=boot:///kernel.elf + KERNEL_PATH=boot:///kernel