X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=bootcensus;a=blobdiff_plain;f=Makefile;h=0722ce4d6f5a5cd0ea4dc8c0dd357e5bcc9cc6d0;hp=7fa61b9bb058acad8cd4bda6a59ef86a56553fbe;hb=559dd7c3c836a69eac46bd12c7ef61bb5de8882c;hpb=eb934abaf0dcfa48589c6ac15f2a2ff235c5aea0 diff --git a/Makefile b/Makefile index 7fa61b9..0722ce4 100644 --- a/Makefile +++ b/Makefile @@ -20,12 +20,20 @@ ifneq ($(shell uname -m), i386) ldarch = -m elf_i386 endif -floppy.img: $(bin) +floppy.img: boot.img dd if=/dev/zero of=$@ bs=512 count=2880 dd if=$< of=$@ conv=notrunc +boot.img: bootldr.bin $(bin) + cat bootldr.bin $(bin) >$@ + +# bootldr.bin will contain only .boot and .boot2 +bootldr.bin: $(elf) + objcopy -O binary -j '.boot*' $< $@ + +# the main binary will contain every section *except* .boot and .boot2 $(bin): $(elf) - objcopy -O binary $< $@ + objcopy -O binary -R '.boot*' $< $@ $(elf): $(obj) $(LD) -o $@ $(obj) -Map link.map $(LDFLAGS) @@ -37,12 +45,21 @@ $(elf): $(obj) .PHONY: clean clean: - rm -f $(obj) $(bin) floppy.img + rm -f $(obj) $(bin) boot.img floppy.img link.map .PHONY: cleandep cleandep: rm -f $(dep) +.PHONY: disasm +disasm: bootldr.disasm $(elf).disasm + +bootldr.disasm: $(elf) + objdump -d $< -j .boot -j .boot2 -m i8086 >$@ + +$(elf).disasm: $(elf) + objdump -d $< -j .startup -j .text -m i386 >$@ + .PHONY: run run: $(bin) qemu-system-i386 -fda floppy.img -serial file:serial.log