1 export CROSS_COMPILE
= i686-elf-
4 export QEMU
= qemu-system-i386
-monitor stdio
5 export GIT_REV
= $(shell git describe
--long HEAD
)
6 export REAL_CC
= $(CROSS_COMPILE
)$(CC
)
9 default
: kernel
/kernel.elf bootloader
10 all: default boot
/x86
/disk.img
12 $(QEMU
) boot
/x86
/disk.img
14 $(QEMU
) -s
-S boot
/x86
/disk.img
21 boot
/x86
/disk.img
: bootloader boot
/x86
/disk.dump kernel
/kernel.elf
22 truncate
-s1G boot
/x86
/disk.img
23 sfdisk boot
/x86
/disk.img
< boot
/x86
/disk.dump
24 mkfs.fat
-F
32 --offset
2048 boot
/x86
/disk.img
25 dd if
=boot
/x86
/mbr of
=boot
/x86
/disk.img bs
=440 count
=1 conv
=notrunc
26 dd if
=boot
/x86
/vbr-fat32 of
=boot
/x86
/disk.img bs
=1 skip
=90 seek
=1048666 conv
=notrunc
27 mcopy
-i boot
/x86
/disk.img@@
1M boot
/x86
/stage3
/LOADER.BIN
::.
28 mcopy
-i boot
/x86
/disk.img@@
1M kernel
/kernel.elf
::.
/KERNEL.ELF
31 $(MAKE
) -C boot
/x86
clean
32 $(MAKE
) -C kernel
clean
34 # Even though kernel.elf is a real target, it's considered phony so that the
35 # kernel Makefile is always run. We don't check is the kernel binary up-to-date
36 # here because we want to be more recursive.
37 .PHONY
: default
all clean run debug bootloader kernel
/kernel.elf