GUIX_SUBSTITUTE_FLAG = --substitute-urls='https://ci.guix.gnu.org https://substitutes.nonguix.org' GUIX_LIB_FLAGS ?= -L ./ LIBVIRT_GROUP ?= libvirt LIBVIRT_USER ?= $ (USER) GUIX_IMAGE_CMD ?= guix system image $ (GUIX_SUBSTITUTE_FLAG) --image-type=qcow2 $ (GUIX_LIB_FLAGS) VM_RAM ?= 4000 VM_CPU ?= 4 %.qcow2: %.scm $ (eval RO := $ (shell $ (GUIX_IMAGE_CMD) $<)) install -C -m 666 -o $ (LIBVIRT_USER) -g $ (LIBVIRT_GROUP) $ (RO) $@ %: %.qcow2 $ (eval OVMF := $ (shell guix build $ (GUIX_SUBSTITUTE_FLAG) ovmf)) qemu-system-x86_64 -nic user,model=virtio-net-pci -enable-kvm -hda $< -m $ (VM_RAM) -smp $ (VM_CPU) -bios $ (OVMF) /share/firmware/ovmf_x64.bin .PHONY: % %-ro: %.scm $ (eval VM_SCRIPT := $ (shell guix system $ (GUIX_LIB_FLAGS) $ (GUIX_SUBSTITUTE_FLAG) vm $< --expose=$ (PWD) /pki=/var/lib/openvpn)) $ (VM_SCRIPT) -m $ (VM_RAM) -smp $ (VM_CPU) -nic user,model=virtio-net-pci