X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=Makefile;h=c812dccc9bb2933bd480bb73c5bfa14d351c3af5;hb=5224cfbc1856cd2f4c786f73223b1182acbc96cc;hp=786399fbd158040dbb6245e66cf43c73a0616dfb;hpb=c4dd16293a71e782e36f795d302bf944056ffd4c;p=rrq%2Fjonasforth.git diff --git a/Makefile b/Makefile index 786399f..c812dcc 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,26 @@ -.PHONY: run -run: main - cat sys.f - | ./main +.PHONY: qemu +qemu: out/main 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 -main: main.asm impl.asm - fasm $< $@ +# 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: main.asm impl.asm bootstrap.asm sys.f os/uefi.asm + mkdir -p out + OS_INCLUDE=os/uefi.asm fasm $< $@ + +main: main.asm impl.asm bootstrap.asm sys.f os/linux.asm + OS_INCLUDE=os/linux.asm fasm $< $@ .PHONY: clean clean: - rm -f main + rm -rf out OVMF_CODE.fd OVMF_VARS.fd