diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..e465085 --- /dev/null +++ b/Makefile @@ -0,0 +1,29 @@ +all : kernel7.img + +kernel.o : kernel.c + arm-none-eabi-gcc -mcpu=cortex-a7 -ffreestanding -std=gnu99 -c -O2 -Wall -Wextra $^ -o $@ + +boot.o : boot.S + arm-none-eabi-as -mcpu=cortex-a7 boot.S -o boot.o + +kernel.elf : boot.o kernel.o + arm-none-eabi-gcc -T linker.ld -o $@ -ffreestanding -O2 -nostdlib boot.o kernel.o -lgcc + +kernel_padded.img : kernel.elf + arm-none-eabi-objcopy $^ -O binary $@ + +# objcopy pads 0x0000 to 0x8000 with zeros, we need to get rid of them +kernel7.img : kernel_padded.img + -rm $@ + dd bs=4096 skip=8 if=$^ of=$@ + +qemu-elf : kernel.elf + qemu-system-arm -m 256 -M raspi2 -serial stdio -kernel $^ + +qemu-bin : kernel7.img + qemu-system-arm -m 256 -M raspi2 -serial stdio -kernel $^ + +clean : + -rm kernel7.img kernel_padded.img kernel.elf boot.o kernel.o + +.PHONY: all qemu-elf qemu-bin clean |