From 3b5e08951cccf6896adbeeaa5e164ff59f14284f Mon Sep 17 00:00:00 2001 From: nub31 Date: Sat, 23 Aug 2025 14:43:00 +0200 Subject: [PATCH] move stuff aroundd --- makefile | 32 ---------------------- src/{boot.asm => boot/bootloader.asm} | 0 src/boot/makefile | 5 ++++ src/{kernel_entry.asm => kernel/entry.asm} | 0 src/{ => kernel}/kernel.c | 0 src/kernel/makefile | 19 +++++++++++++ src/{ => kernel}/mem.c | 0 src/{ => kernel}/mem.h | 0 src/{ => kernel}/print.c | 0 src/{ => kernel}/print.h | 0 src/makefile | 19 +++++++++++++ 11 files changed, 43 insertions(+), 32 deletions(-) delete mode 100644 makefile rename src/{boot.asm => boot/bootloader.asm} (100%) create mode 100644 src/boot/makefile rename src/{kernel_entry.asm => kernel/entry.asm} (100%) rename src/{ => kernel}/kernel.c (100%) create mode 100644 src/kernel/makefile rename src/{ => kernel}/mem.c (100%) rename src/{ => kernel}/mem.h (100%) rename src/{ => kernel}/print.c (100%) rename src/{ => kernel}/print.h (100%) create mode 100644 src/makefile diff --git a/makefile b/makefile deleted file mode 100644 index 46ea858..0000000 --- a/makefile +++ /dev/null @@ -1,32 +0,0 @@ -build: build/os.bin - @echo "Build succeded" - -run: build/os.bin - qemu-system-x86_64 -drive file=build/os.bin,format=raw,index=0,media=disk - -build/os.bin: build/boot.bin build/kernel.bin build/zeroes.bin - cat build/boot.bin build/kernel.bin build/zeroes.bin > build/os.bin - -build/kernel.bin: build/kernel_entry.o build/kernel.o build/mem.o build/print.o - i386-elf-ld -o build/kernel.bin -Ttext 0x1000 build/kernel_entry.o build/kernel.o build/mem.o build/print.o --oformat binary - -build/kernel.o: src/kernel.c - i386-elf-gcc -ffreestanding -m32 -c -o build/kernel.o src/kernel.c - -build/mem.o: src/mem.c - i386-elf-gcc -ffreestanding -m32 -c -o build/mem.o src/mem.c - -build/print.o: src/print.c - i386-elf-gcc -ffreestanding -m32 -c -o build/print.o src/print.c - -build/kernel_entry.o: src/kernel_entry.asm - nasm -f elf -o build/kernel_entry.o src/kernel_entry.asm - -build/boot.bin: src/boot.asm - nasm -f bin -o build/boot.bin src/boot.asm - -build/zeroes.bin: - dd if=/dev/zero of=build/zeroes.bin bs=1 count=10240 - -clean: - @rm build/* 2>/dev/null || true diff --git a/src/boot.asm b/src/boot/bootloader.asm similarity index 100% rename from src/boot.asm rename to src/boot/bootloader.asm diff --git a/src/boot/makefile b/src/boot/makefile new file mode 100644 index 0000000..c4a5056 --- /dev/null +++ b/src/boot/makefile @@ -0,0 +1,5 @@ +bootloader.bin: bootloader.asm + nasm -f bin -o bootloader.bin bootloader.asm + +clean: + @rm *.o *.bin 2>/dev/null || true diff --git a/src/kernel_entry.asm b/src/kernel/entry.asm similarity index 100% rename from src/kernel_entry.asm rename to src/kernel/entry.asm diff --git a/src/kernel.c b/src/kernel/kernel.c similarity index 100% rename from src/kernel.c rename to src/kernel/kernel.c diff --git a/src/kernel/makefile b/src/kernel/makefile new file mode 100644 index 0000000..745b4d5 --- /dev/null +++ b/src/kernel/makefile @@ -0,0 +1,19 @@ +CC = i386-elf-gcc -ffreestanding -m32 + +kernel.bin: entry.o kernel.o mem.o print.o + i386-elf-ld -o kernel.bin -Ttext 0x1000 entry.o kernel.o mem.o print.o --oformat binary + +entry.o: entry.asm + nasm -f elf -o entry.o entry.asm + +kernel.o: kernel.c + $(CC) -c -o kernel.o kernel.c + +mem.o: mem.c + $(CC) -c -o mem.o mem.c + +print.o: print.c + $(CC) -c -o print.o print.c + +clean: + @rm *.o *.bin 2>/dev/null || true diff --git a/src/mem.c b/src/kernel/mem.c similarity index 100% rename from src/mem.c rename to src/kernel/mem.c diff --git a/src/mem.h b/src/kernel/mem.h similarity index 100% rename from src/mem.h rename to src/kernel/mem.h diff --git a/src/print.c b/src/kernel/print.c similarity index 100% rename from src/print.c rename to src/kernel/print.c diff --git a/src/print.h b/src/kernel/print.h similarity index 100% rename from src/print.h rename to src/kernel/print.h diff --git a/src/makefile b/src/makefile new file mode 100644 index 0000000..2ef10e5 --- /dev/null +++ b/src/makefile @@ -0,0 +1,19 @@ +os.bin: boot/bootloader.bin kernel/kernel.bin zeroes.bin + cat boot/bootloader.bin kernel/kernel.bin zeroes.bin > os.bin + +kernel/kernel.bin: + pushd kernel; make kernel.bin; popd + +boot/bootloader.bin: + pushd boot; make bootloader.bin; popd + +zeroes.bin: + dd if=/dev/zero of=zeroes.bin bs=1 count=10240 + +run: os.bin + qemu-system-x86_64 -drive file=os.bin,format=raw,index=0,media=disk + +clean: + pushd kernel; make clean; popd + pushd boot; make clean; popd + @rm *.o *.bin 2>/dev/null || true