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
)
12 default
: kernel
/kernel.elf bootloader
13 all: default boot
/x86
/disk.img
15 $(QEMU
) boot
/x86
/disk.img
17 $(QEMU
) -s
-S boot
/x86
/disk.img
24 boot
/x86
/disk.img
: bootloader boot
/x86
/disk.dump kernel
/kernel.elf
25 truncate
-s1G boot
/x86
/disk.img
26 sfdisk boot
/x86
/disk.img
< boot
/x86
/disk.dump
27 mkfs.fat
-F
32 --offset
2048 boot
/x86
/disk.img
28 dd if
=boot
/x86
/mbr of
=boot
/x86
/disk.img bs
=440 count
=1 conv
=notrunc
29 dd if
=boot
/x86
/vbr-fat32 of
=boot
/x86
/disk.img bs
=1 skip
=90 seek
=1048666 conv
=notrunc
30 mcopy
-i boot
/x86
/disk.img@@
1M boot
/x86
/stage3
/LOADER.BIN
::.
31 mcopy
-i boot
/x86
/disk.img@@
1M kernel
/kernel.elf
::.
/KERNEL.ELF
34 $(MAKE
) -C boot
/x86
clean
35 $(MAKE
) -C kernel
clean
37 # Even though kernel.elf is a real target, it's considered phony so that the
38 # kernel Makefile is always run. We don't check is the kernel binary up-to-date
39 # here because we want to be more recursive.
40 .PHONY
: default
all clean run debug bootloader kernel
/kernel.elf