Create sub makefile for kernel

This commit is contained in:
Baptiste Wicht 2013-10-28 23:16:48 +01:00
parent 4ca5617bfc
commit 94ff36b850
4 changed files with 33 additions and 31 deletions

View File

@ -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

View File

@ -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

26
kernel/Makefile Normal file
View File

@ -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