1b1fb9a63SFam Zheng# Makefile for VM tests 2b1fb9a63SFam Zheng 3ebe95fa0SFam Zheng.PHONY: vm-build-all vm-clean-all 4b1fb9a63SFam Zheng 51bd26988SFam ZhengIMAGES := ubuntu.i386 freebsd netbsd openbsd centos 6bd1497dcSGerd HoffmannIMAGES_DIR := $(HOME)/.cache/qemu-vm/images 7bd1497dcSGerd HoffmannIMAGE_FILES := $(patsubst %, $(IMAGES_DIR)/%.img, $(IMAGES)) 8b1fb9a63SFam Zheng 9b1fb9a63SFam Zheng.PRECIOUS: $(IMAGE_FILES) 10b1fb9a63SFam Zheng 11b1fb9a63SFam Zhengvm-test: 12b1fb9a63SFam Zheng @echo "vm-test: Test QEMU in preconfigured virtual machines" 13b1fb9a63SFam Zheng @echo 14b1fb9a63SFam Zheng @echo " vm-build-ubuntu.i386 - Build QEMU in ubuntu i386 VM" 15b1fb9a63SFam Zheng @echo " vm-build-freebsd - Build QEMU in FreeBSD VM" 16b1fb9a63SFam Zheng @echo " vm-build-netbsd - Build QEMU in NetBSD VM" 17b1fb9a63SFam Zheng @echo " vm-build-openbsd - Build QEMU in OpenBSD VM" 181bd26988SFam Zheng @echo " vm-build-centos - Build QEMU in CentOS VM, with Docker" 19af7e9168SFam Zheng @echo "" 20af7e9168SFam Zheng @echo " vm-build-all - Build QEMU in all VMs" 21af7e9168SFam Zheng @echo " vm-clean-all - Clean up VM images" 22ddafa31fSAlex Bennée @echo 23ddafa31fSAlex Bennée @echo "Special variables:" 24*eec4b30aSWainer dos Santos Moschetta @echo " BUILD_TARGET=foo - Override the build target" 25*eec4b30aSWainer dos Santos Moschetta @echo " TARGET_LIST=a,b,c - Override target list in builds" 26ddafa31fSAlex Bennée @echo ' EXTRA_CONFIGURE_OPTS="..."' 27*eec4b30aSWainer dos Santos Moschetta @echo " J=[0..9]* - Override the -jN parameter for make commands" 28*eec4b30aSWainer dos Santos Moschetta @echo " DEBUG=1 - Enable verbose output on host and interactive debugging" 29*eec4b30aSWainer dos Santos Moschetta @echo " V=1 - Enable verbose ouput on host and guest commands" 30*eec4b30aSWainer dos Santos Moschetta @echo " QEMU=/path/to/qemu - Change path to QEMU binary" 31b1fb9a63SFam Zheng 32b1fb9a63SFam Zhengvm-build-all: $(addprefix vm-build-, $(IMAGES)) 33b1fb9a63SFam Zheng 34ebe95fa0SFam Zhengvm-clean-all: 35ebe95fa0SFam Zheng rm -f $(IMAGE_FILES) 36ebe95fa0SFam Zheng 37bd1497dcSGerd Hoffmann$(IMAGES_DIR)/%.img: $(SRC_PATH)/tests/vm/% \ 38b1fb9a63SFam Zheng $(SRC_PATH)/tests/vm/basevm.py \ 39b1fb9a63SFam Zheng $(SRC_PATH)/tests/vm/Makefile.include 40bd1497dcSGerd Hoffmann @mkdir -p $(IMAGES_DIR) 41b1fb9a63SFam Zheng $(call quiet-command, \ 42b0040fa1SWainer dos Santos Moschetta $(PYTHON) $< \ 43b1fb9a63SFam Zheng $(if $(V)$(DEBUG), --debug) \ 44b1fb9a63SFam Zheng --image "$@" \ 45b1fb9a63SFam Zheng --force \ 46b1fb9a63SFam Zheng --build-image $@, \ 47b1fb9a63SFam Zheng " VM-IMAGE $*") 48b1fb9a63SFam Zheng 49b1fb9a63SFam Zheng 50b1fb9a63SFam Zheng# Build in VM $(IMAGE) 51bd1497dcSGerd Hoffmannvm-build-%: $(IMAGES_DIR)/%.img 52b1fb9a63SFam Zheng $(call quiet-command, \ 53b0040fa1SWainer dos Santos Moschetta $(PYTHON) $(SRC_PATH)/tests/vm/$* \ 54b1fb9a63SFam Zheng $(if $(V)$(DEBUG), --debug) \ 55b1fb9a63SFam Zheng $(if $(DEBUG), --interactive) \ 56b1fb9a63SFam Zheng $(if $(J),--jobs $(J)) \ 5741e3340aSPeter Maydell $(if $(V),--verbose) \ 58b1fb9a63SFam Zheng --image "$<" \ 59ddafa31fSAlex Bennée $(if $(BUILD_TARGET),--build-target $(BUILD_TARGET)) \ 60ddafa31fSAlex Bennée --build-qemu $(SRC_PATH) -- \ 61ddafa31fSAlex Bennée $(if $(TARGET_LIST),--target-list=$(TARGET_LIST)) \ 62ddafa31fSAlex Bennée $(if $(EXTRA_CONFIGURE_OPTS),$(EXTRA_CONFIGURE_OPTS)), \ 63b1fb9a63SFam Zheng " VM-BUILD $*") 64b1fb9a63SFam Zheng 65