# Makefile for VM tests

.PHONY: vm-build-all vm-clean-all

IMAGES := freebsd netbsd openbsd centos fedora
ifneq ($(GENISOIMAGE),)
IMAGES += ubuntu.i386 centos
endif

IMAGES_DIR := $(HOME)/.cache/qemu-vm/images
IMAGE_FILES := $(patsubst %, $(IMAGES_DIR)/%.img, $(IMAGES))

.PRECIOUS: $(IMAGE_FILES)

# 'vm-help' target was historically named 'vm-test'
vm-help vm-test:
	@echo "vm-help: Test QEMU in preconfigured virtual machines"
	@echo
	@echo "  vm-build-freebsd                - Build QEMU in FreeBSD VM"
	@echo "  vm-build-netbsd                 - Build QEMU in NetBSD VM"
	@echo "  vm-build-openbsd                - Build QEMU in OpenBSD VM"
	@echo "  vm-build-fedora                 - Build QEMU in Fedora VM"
ifneq ($(GENISOIMAGE),)
	@echo "  vm-build-centos                 - Build QEMU in CentOS VM, with Docker"
	@echo "  vm-build-ubuntu.i386            - Build QEMU in ubuntu i386 VM"
else
	@echo "  (install genisoimage to build centos/ubuntu images)"
endif
	@echo ""
	@echo "  vm-build-all                    - Build QEMU in all VMs"
	@echo "  vm-clean-all                    - Clean up VM images"
	@echo
	@echo "For trouble-shooting:"
	@echo "  vm-boot-serial-<guest>          - Boot guest, serial console on stdio"
	@echo "  vm-boot-ssh-<guest>             - Boot guest and login via ssh"
	@echo
	@echo "Special variables:"
	@echo "    BUILD_TARGET=foo		 - Override the build target"
	@echo "    TARGET_LIST=a,b,c    	 - Override target list in builds"
	@echo '    EXTRA_CONFIGURE_OPTS="..."'
	@echo "    J=[0..9]*            	 - Override the -jN parameter for make commands"
	@echo "    DEBUG=1              	 - Enable verbose output on host and interactive debugging"
	@echo "    V=1				 - Enable verbose ouput on host and guest commands"
	@echo "    QEMU_LOCAL=1                 - Use QEMU binary local to this build."
	@echo "    QEMU=/path/to/qemu		 - Change path to QEMU binary"
	@echo "    QEMU_IMG=/path/to/qemu-img	 - Change path to qemu-img tool"

vm-build-all: $(addprefix vm-build-, $(IMAGES))

vm-clean-all:
	rm -f $(IMAGE_FILES)

$(IMAGES_DIR)/%.img:	$(SRC_PATH)/tests/vm/% \
			$(SRC_PATH)/tests/vm/basevm.py \
			$(SRC_PATH)/tests/vm/Makefile.include
	@mkdir -p $(IMAGES_DIR)
	$(call quiet-command, \
		$(PYTHON) $< \
		$(if $(V)$(DEBUG), --debug) \
		$(if $(GENISOIMAGE),--genisoimage $(GENISOIMAGE)) \
		$(if $(QEMU_LOCAL),--build-path $(BUILD_DIR)) \
		--image "$@" \
		--force \
		--build-image $@, \
		"  VM-IMAGE $*")


# Build in VM $(IMAGE)
vm-build-%: $(IMAGES_DIR)/%.img
	$(call quiet-command, \
		$(PYTHON) $(SRC_PATH)/tests/vm/$* \
		$(if $(V)$(DEBUG), --debug) \
		$(if $(DEBUG), --interactive) \
		$(if $(J),--jobs $(J)) \
		$(if $(V),--verbose) \
		$(if $(QEMU_LOCAL),--build-path $(BUILD_DIR)) \
		--image "$<" \
		$(if $(BUILD_TARGET),--build-target $(BUILD_TARGET)) \
		--snapshot \
		--build-qemu $(SRC_PATH) -- \
		$(if $(TARGET_LIST),--target-list=$(TARGET_LIST)) \
		$(if $(EXTRA_CONFIGURE_OPTS),$(EXTRA_CONFIGURE_OPTS)), \
		"  VM-BUILD $*")

vm-boot-serial-%: $(IMAGES_DIR)/%.img
	qemu-system-x86_64 -enable-kvm -m 4G -smp 2 -nographic \
		-drive if=none,id=vblk,cache=writeback,file="$<" \
		-netdev user,id=vnet \
		-device virtio-blk-pci,drive=vblk \
		-device virtio-net-pci,netdev=vnet \
	|| true

vm-boot-ssh-%: $(IMAGES_DIR)/%.img
	$(call quiet-command, \
		$(PYTHON) $(SRC_PATH)/tests/vm/$* \
		$(if $(J),--jobs $(J)) \
		$(if $(V)$(DEBUG), --debug) \
		$(if $(QEMU_LOCAL),--build-path $(BUILD_DIR)) \
		--image "$<" \
		--interactive \
		false, \
		"  VM-BOOT-SSH $*") || true
