X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=Makefile;h=3f6972b095a456029aa65f9063d12f5e007fced9;hb=66af56e87b98d8a21bc85c426c7475373f899fa2;hp=5832cb65273096360cdc609330febe90d544462d;hpb=2cd770b4f9a46cbc7ff07b26f4851bba1ea36a7d;p=rrq%2Fjonasforth.git diff --git a/Makefile b/Makefile index 5832cb6..3f6972b 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,27 @@ -main: main.asm impl.asm +.PHONY: qemu +qemu: out/main out/startup.nsh OVMF_CODE.fd OVMF_VARS.fd + # Based on https://wiki.osdev.org/UEFI#Emulation_with_QEMU_and_OVMF + qemu-system-x86_64 -cpu qemu64 \ + -drive if=pflash,format=raw,unit=0,file=OVMF_CODE.fd,readonly=on \ + -drive if=pflash,format=raw,unit=1,file=OVMF_VARS.fd \ + -net none \ + -drive format=raw,file=fat:rw:out \ + -display type=gtk,zoom-to-fit=on + +# Assuming 'ovmf' package on Arch Linux is installed. +OVMF_CODE.fd: /usr/share/ovmf/x64/OVMF_CODE.fd + cp $< $@ +OVMF_VARS.fd: /usr/share/ovmf/x64/OVMF_VARS.fd + cp $< $@ + +out/main: src/main.asm src/impl.asm src/bootstrap.asm src/uefi.asm init/sys.f init/uefi.f + mkdir -p out fasm $< $@ +out/startup.nsh: + mkdir -p out + echo 'fs0:main' >out/startup.nsh + .PHONY: clean clean: - rm -f main + rm -rf out OVMF_CODE.fd OVMF_VARS.fd