.PHONY: all all: disk.img bootx64.efi: efitest.bin hdr.asm nasm -o $@ -f bin hdr.asm efitest.bin: efitest.asm nasm -o $@ -f bin $< part.img: bootx64.efi dd if=/dev/zero of=$@ bs=1024 count=2080 mkfs -t vfat $@ mmd -i $@ ::/EFI mmd -i $@ ::/EFI/BOOT mcopy -i $@ $< ::/EFI/BOOT disk.img: part.img dd if=/dev/zero of=$@ bs=1024 count=2048 echo start=2048 type=ef | sfdisk $@ dd if=$< of=$@ bs=512 seek=2048 conv=notrunc .PHONY: clean clean: rm -f bootx64.efi efitest.bin .PHONY: run run: disk.img qemu-system-x86_64 -bios /usr/share/ovmf/OVMF.fd -hda $< -net none -serial stdio .PHONY: debug debug: disk.img qemu-system-x86_64 -bios /usr/share/ovmf/OVMF.fd -S -s -hda $< -net none -serial stdio disasm: bootx64.efi ndisasm -b 64 -o 0x1000 -e 4096 $< >$@ disasm16: bootx64.efi ndisasm -b 16 -o 0x1000 -e 4096 $< >$@