aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.hgignore2
-rw-r--r--Config.mk8
-rw-r--r--config/StdGNU.mk3
-rw-r--r--tools/Makefile29
4 files changed, 42 insertions, 0 deletions
diff --git a/.hgignore b/.hgignore
index fa674adcaf..9dcd7e6122 100644
--- a/.hgignore
+++ b/.hgignore
@@ -248,6 +248,8 @@
^tools/xm-test/lib/XmTestLib/config.py$
^tools/xm-test/lib/XmTestReport/xmtest.py$
^tools/xm-test/tests/.*\.test$
+^tools/ioemu-remote
+^tools/ioemu-dir$
^xen/\.banner.*$
^xen/BLOG$
^xen/System.map$
diff --git a/Config.mk b/Config.mk
index 01ed02bd6a..85bb50b841 100644
--- a/Config.mk
+++ b/Config.mk
@@ -78,6 +78,14 @@ XSM_ENABLE ?= n
FLASK_ENABLE ?= n
ACM_SECURITY ?= n
+QEMU_REMOTE=http://www.chiark.greenend.org.uk/~ijackson/qemu-xen.git
+
+# Specify which qemu-dm to use. This may be `ioemu' to use the old
+# Mercurial in-tree version, or a local directory, or a git URL.
+CONFIG_QEMU ?= ioemu
+# CONFIG_QEMU ?= ../qemu-xen.git
+# CONFIG_QEMU ?= $(QEMU_REMOTE)
+
# Optional components
XENSTAT_XENTOP ?= y
VTPM_TOOLS ?= n
diff --git a/config/StdGNU.mk b/config/StdGNU.mk
index c020357654..aaa89a2664 100644
--- a/config/StdGNU.mk
+++ b/config/StdGNU.mk
@@ -13,6 +13,9 @@ SIZEUTIL = $(CROSS_COMPILE)size
MSGFMT = msgfmt
MSGMERGE = msgmerge
+# Allow git to be wrappered in the environment
+GIT ?= git
+
INSTALL = install
INSTALL_DIR = $(INSTALL) -d -m0755 -p
INSTALL_DATA = $(INSTALL) -m0644 -p
diff --git a/tools/Makefile b/tools/Makefile
index ace8a1a46a..4914033997 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -22,7 +22,12 @@ SUBDIRS-y += libaio
SUBDIRS-y += blktap
SUBDIRS-y += libfsimage
SUBDIRS-$(LIBXENAPI_BINDINGS) += libxen
+
+ifeq (ioemu,$(CONFIG_QEMU))
SUBDIRS-$(CONFIG_IOEMU) += ioemu
+else
+SUBDIRS-$(CONFIG_IOEMU) += ioemu-dir
+endif
# These don't cross-compile
ifeq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH))
@@ -62,3 +67,27 @@ subdir-all-ioemu subdir-install-ioemu: ioemu/config-host.mak
subdir-clean-ioemu:
$(MAKE) -C ioemu distclean
+ioemu-dir-find:
+ set -ex; \
+ if test -d $(CONFIG_QEMU); then \
+ rm -f ioemu-dir; \
+ ln -sf $(CONFIG_QEMU) ioemu-dir; \
+ else \
+ if [ ! -d ioemu-remote ]; then \
+ rm -rf ioemu-remote ioemu-remote.tmp; \
+ mkdir ioemu-remote.tmp; rmdir ioemu-remote.tmp; \
+ $(GIT) clone $(CONFIG_QEMU) ioemu-remote.tmp; \
+ mv ioemu-remote.tmp ioemu-remote; \
+ fi; \
+ ln -sf ioemu-remote ioemu-dir; \
+ fi
+ set -e; \
+ case "$XEN_ROOT" in \
+ /*) XEN_ROOT=$(XEN_ROOT) ;; \
+ *) XEN_ROOT=`pwd`/$(XEN_ROOT) ;; \
+ esac; \
+ export XEN_ROOT; \
+ cd ioemu-dir; \
+ ./xen-setup
+
+subdir-all-ioemu-dir subdir-install-ioemu-dir: ioemu-dir-find