diff --git a/Makefile b/Makefile index d7b18e31..a5ebdac0 100644 --- a/Makefile +++ b/Makefile @@ -6,35 +6,8 @@ bootloader.bin: force_look micro_kernel.bin: force_look cd micro_kernel; $(MAKE) -force_look: - true - -KERNEL_FLAGS=-masm=intel -Ikernel/include/ -O1 -std=c++11 -Wall -Wextra -fno-exceptions -fno-rtti -ffreestanding -KERNEL_LINK_FLAGS=-std=c++11 -T linker.ld -ffreestanding -O1 -nostdlib - -KERNEL_O_FILES=kernel.o keyboard.o console.o kernel_utils.o timer.o shell.o - -kernel.o: kernel/src/kernel.cpp - g++ $(KERNEL_FLAGS) -c kernel/src/kernel.cpp -o kernel.o - -keyboard.o: kernel/src/keyboard.cpp - g++ $(KERNEL_FLAGS) -c kernel/src/keyboard.cpp -o keyboard.o - -console.o: kernel/src/console.cpp - g++ $(KERNEL_FLAGS) -c kernel/src/console.cpp -o console.o - -kernel_utils.o: kernel/src/kernel_utils.cpp - g++ $(KERNEL_FLAGS) -c kernel/src/kernel_utils.cpp -o kernel_utils.o - -timer.o: kernel/src/timer.cpp - g++ $(KERNEL_FLAGS) -c kernel/src/timer.cpp -o timer.o - -shell.o: kernel/src/shell.cpp - g++ $(KERNEL_FLAGS) -c kernel/src/shell.cpp -o shell.o - -kernel.bin: $(KERNEL_O_FILES) - g++ $(KERNEL_LINK_FLAGS) -o kernel.bin.o $(KERNEL_O_FILES) - objcopy -R .note -R .comment -S -O binary kernel.bin.o kernel.bin +kernel.bin: force_look + cd kernel; $(MAKE) filler.bin: kernel.bin bash fill.bash @@ -42,7 +15,7 @@ filler.bin: kernel.bin thor.flp: bootloader.bin micro_kernel.bin kernel.bin filler.bin cat bootloader/bootloader.bin > thor.bin cat micro_kernel/micro_kernel.bin >> thor.bin - cat kernel.bin >> thor.bin + cat kernel/kernel.bin >> thor.bin cat filler.bin >> thor.bin dd status=noxfer conv=notrunc if=thor.bin of=thor.flp @@ -52,6 +25,9 @@ qemu: thor.flp bochs: thor.flp bochs -q -f bochsrc.txt +force_look: + true + clean: rm -f *.bin rm -f *.flp diff --git a/fill.bash b/fill.bash index 0c7de7eb..636b3551 100644 --- a/fill.bash +++ b/fill.bash @@ -1,5 +1,5 @@ #!/bin/bash -size=`stat -c%s kernel.bin` +size=`stat -c%s kernel/kernel.bin` let filler_size=8192-$size dd if=/dev/zero of=filler.bin bs=1 count=$filler_size diff --git a/kernel/Makefile b/kernel/Makefile new file mode 100644 index 00000000..b8258bc0 --- /dev/null +++ b/kernel/Makefile @@ -0,0 +1,26 @@ +KERNEL_FLAGS=-masm=intel -Iinclude/ -O1 -std=c++11 -Wall -Wextra -fno-exceptions -fno-rtti -ffreestanding +KERNEL_LINK_FLAGS=-std=c++11 -T linker.ld -ffreestanding -O1 -nostdlib + +KERNEL_O_FILES=kernel.o keyboard.o console.o kernel_utils.o timer.o shell.o + +kernel.bin: $(KERNEL_O_FILES) + g++ $(KERNEL_LINK_FLAGS) -o kernel.bin.o $(KERNEL_O_FILES) + objcopy -R .note -R .comment -S -O binary kernel.bin.o kernel.bin + +kernel.o: src/kernel.cpp + g++ $(KERNEL_FLAGS) -c src/kernel.cpp -o kernel.o + +keyboard.o: src/keyboard.cpp + g++ $(KERNEL_FLAGS) -c src/keyboard.cpp -o keyboard.o + +console.o: src/console.cpp + g++ $(KERNEL_FLAGS) -c src/console.cpp -o console.o + +kernel_utils.o: src/kernel_utils.cpp + g++ $(KERNEL_FLAGS) -c src/kernel_utils.cpp -o kernel_utils.o + +timer.o: src/timer.cpp + g++ $(KERNEL_FLAGS) -c src/timer.cpp -o timer.o + +shell.o: src/shell.cpp + g++ $(KERNEL_FLAGS) -c src/shell.cpp -o shell.o diff --git a/linker.ld b/kernel/linker.ld similarity index 100% rename from linker.ld rename to kernel/linker.ld