-default: mbr vbr-fat32 LOADER.BIN
+BOOTLOADER_OBJ = mbr vbr-fat32
+ASFLAGS_BASE = -w-zeroing
-all: mbr vbr-fat32 LOADER.BIN disk.img
+default: $(BOOTLOADER_OBJ) stage3
-mbr: mbr.s
- $(AS) $(ASFLAGS) -w-zeroing -o $@ $<
+stage3:
+ $(MAKE) -C stage3
-vbr-fat32: vbr-fat32.s fat32.s fat32-structs.s
- $(AS) $(ASFLAGS) -o $@ $<
-
-LOADER.BIN: loader.s
- $(AS) $(ASFLAGS) -o $@ $<
-
-disk.img: mbr vbr-fat32 LOADER.BIN disk.dump
- truncate -s100M disk.img
- sfdisk disk.img < disk.dump
- mkfs.fat -F 32 --offset 2048 disk.img
- dd if=mbr of=disk.img bs=440 count=1 conv=notrunc
- dd if=vbr-fat32 of=disk.img bs=1 skip=90 seek=1048666 conv=notrunc
- mcopy -i disk.img@@1M LOADER.BIN ::.
+vbr-fat32: vbr-fat32.s fat32/*.s
clean:
- -rm mbr vbr-fat32 LOADER.BIN disk.img
+ -rm mbr vbr-fat32 disk.img
+ $(MAKE) -C stage3 clean
+
+# Implicit rules
+%: %.s
+ $(AS) $(ASFLAGS_BASE) -f bin $< -o $@
-.PHONY : default all clean
+.PHONY : default clean stage3