]>
Commit | Line | Data |
---|---|---|
b1fb9a63 FZ |
1 | # Makefile for VM tests |
2 | ||
ebe95fa0 | 3 | .PHONY: vm-build-all vm-clean-all |
b1fb9a63 | 4 | |
39d87c8c AB |
5 | IMAGES := freebsd netbsd openbsd centos fedora |
6 | ifneq ($(GENISOIMAGE),) | |
7 | IMAGES += ubuntu.i386 centos | |
8 | endif | |
9 | ||
bd1497dc GH |
10 | IMAGES_DIR := $(HOME)/.cache/qemu-vm/images |
11 | IMAGE_FILES := $(patsubst %, $(IMAGES_DIR)/%.img, $(IMAGES)) | |
b1fb9a63 FZ |
12 | |
13 | .PRECIOUS: $(IMAGE_FILES) | |
14 | ||
4f2f6276 PMD |
15 | # 'vm-help' target was historically named 'vm-test' |
16 | vm-help vm-test: | |
17 | @echo "vm-help: Test QEMU in preconfigured virtual machines" | |
b1fb9a63 | 18 | @echo |
b1fb9a63 FZ |
19 | @echo " vm-build-freebsd - Build QEMU in FreeBSD VM" |
20 | @echo " vm-build-netbsd - Build QEMU in NetBSD VM" | |
21 | @echo " vm-build-openbsd - Build QEMU in OpenBSD VM" | |
60136e06 | 22 | @echo " vm-build-fedora - Build QEMU in Fedora VM" |
39d87c8c AB |
23 | ifneq ($(GENISOIMAGE),) |
24 | @echo " vm-build-centos - Build QEMU in CentOS VM, with Docker" | |
25 | @echo " vm-build-ubuntu.i386 - Build QEMU in ubuntu i386 VM" | |
26 | else | |
27 | @echo " (install genisoimage to build centos/ubuntu images)" | |
28 | endif | |
af7e9168 FZ |
29 | @echo "" |
30 | @echo " vm-build-all - Build QEMU in all VMs" | |
31 | @echo " vm-clean-all - Clean up VM images" | |
ddafa31f | 32 | @echo |
b1210f02 GH |
33 | @echo "For trouble-shooting:" |
34 | @echo " vm-boot-serial-<guest> - Boot guest, serial console on stdio" | |
35 | @echo " vm-boot-ssh-<guest> - Boot guest and login via ssh" | |
36 | @echo | |
ddafa31f | 37 | @echo "Special variables:" |
eec4b30a WSM |
38 | @echo " BUILD_TARGET=foo - Override the build target" |
39 | @echo " TARGET_LIST=a,b,c - Override target list in builds" | |
ddafa31f | 40 | @echo ' EXTRA_CONFIGURE_OPTS="..."' |
eec4b30a WSM |
41 | @echo " J=[0..9]* - Override the -jN parameter for make commands" |
42 | @echo " DEBUG=1 - Enable verbose output on host and interactive debugging" | |
43 | @echo " V=1 - Enable verbose ouput on host and guest commands" | |
e56c4504 | 44 | @echo " QEMU_LOCAL=1 - Use QEMU binary local to this build." |
eec4b30a | 45 | @echo " QEMU=/path/to/qemu - Change path to QEMU binary" |
1e48931c | 46 | @echo " QEMU_IMG=/path/to/qemu-img - Change path to qemu-img tool" |
b1fb9a63 FZ |
47 | |
48 | vm-build-all: $(addprefix vm-build-, $(IMAGES)) | |
49 | ||
ebe95fa0 FZ |
50 | vm-clean-all: |
51 | rm -f $(IMAGE_FILES) | |
52 | ||
bd1497dc GH |
53 | $(IMAGES_DIR)/%.img: $(SRC_PATH)/tests/vm/% \ |
54 | $(SRC_PATH)/tests/vm/basevm.py \ | |
55 | $(SRC_PATH)/tests/vm/Makefile.include | |
56 | @mkdir -p $(IMAGES_DIR) | |
b1fb9a63 | 57 | $(call quiet-command, \ |
b0040fa1 | 58 | $(PYTHON) $< \ |
b1fb9a63 | 59 | $(if $(V)$(DEBUG), --debug) \ |
92fecad3 | 60 | $(if $(GENISOIMAGE),--genisoimage $(GENISOIMAGE)) \ |
e56c4504 | 61 | $(if $(QEMU_LOCAL),--build-path $(BUILD_DIR)) \ |
b1fb9a63 FZ |
62 | --image "$@" \ |
63 | --force \ | |
64 | --build-image $@, \ | |
65 | " VM-IMAGE $*") | |
66 | ||
67 | ||
68 | # Build in VM $(IMAGE) | |
bd1497dc | 69 | vm-build-%: $(IMAGES_DIR)/%.img |
b1fb9a63 | 70 | $(call quiet-command, \ |
b0040fa1 | 71 | $(PYTHON) $(SRC_PATH)/tests/vm/$* \ |
b1fb9a63 FZ |
72 | $(if $(V)$(DEBUG), --debug) \ |
73 | $(if $(DEBUG), --interactive) \ | |
74 | $(if $(J),--jobs $(J)) \ | |
41e3340a | 75 | $(if $(V),--verbose) \ |
e56c4504 | 76 | $(if $(QEMU_LOCAL),--build-path $(BUILD_DIR)) \ |
b1fb9a63 | 77 | --image "$<" \ |
ddafa31f | 78 | $(if $(BUILD_TARGET),--build-target $(BUILD_TARGET)) \ |
7f71d505 | 79 | --snapshot \ |
ddafa31f AB |
80 | --build-qemu $(SRC_PATH) -- \ |
81 | $(if $(TARGET_LIST),--target-list=$(TARGET_LIST)) \ | |
82 | $(if $(EXTRA_CONFIGURE_OPTS),$(EXTRA_CONFIGURE_OPTS)), \ | |
b1fb9a63 FZ |
83 | " VM-BUILD $*") |
84 | ||
b1210f02 GH |
85 | vm-boot-serial-%: $(IMAGES_DIR)/%.img |
86 | qemu-system-x86_64 -enable-kvm -m 4G -smp 2 -nographic \ | |
87 | -drive if=none,id=vblk,cache=writeback,file="$<" \ | |
88 | -netdev user,id=vnet \ | |
89 | -device virtio-blk-pci,drive=vblk \ | |
90 | -device virtio-net-pci,netdev=vnet \ | |
91 | || true | |
92 | ||
93 | vm-boot-ssh-%: $(IMAGES_DIR)/%.img | |
94 | $(call quiet-command, \ | |
0bc72f90 | 95 | $(PYTHON) $(SRC_PATH)/tests/vm/$* \ |
46313326 | 96 | $(if $(J),--jobs $(J)) \ |
d5326a24 | 97 | $(if $(V)$(DEBUG), --debug) \ |
e56c4504 | 98 | $(if $(QEMU_LOCAL),--build-path $(BUILD_DIR)) \ |
b1210f02 GH |
99 | --image "$<" \ |
100 | --interactive \ | |
101 | false, \ | |
102 | " VM-BOOT-SSH $*") || true |