ia64/xen-unstable

changeset 17956:20215b87d0f3

Support building of out-of-tree merged qemu from git

This provides support for building the new merged qemu from
qemu-xen.git, or from a local checkout.

The default is still to use the in-tree version, because the patchman
infrastructure for testing, and propagation from staging to
xen-unstable, needs a small amount of work to cope with git.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Thu Jul 03 10:44:13 2008 +0100 (2008-07-03)
parents 52a388ec09f8
children 7dee3b001d9f
files .hgignore Config.mk config/StdGNU.mk tools/Makefile
line diff
     1.1 --- a/.hgignore	Thu Jul 03 10:27:12 2008 +0100
     1.2 +++ b/.hgignore	Thu Jul 03 10:44:13 2008 +0100
     1.3 @@ -248,6 +248,8 @@
     1.4  ^tools/xm-test/lib/XmTestLib/config.py$
     1.5  ^tools/xm-test/lib/XmTestReport/xmtest.py$
     1.6  ^tools/xm-test/tests/.*\.test$
     1.7 +^tools/ioemu-remote
     1.8 +^tools/ioemu-dir$
     1.9  ^xen/\.banner.*$
    1.10  ^xen/BLOG$
    1.11  ^xen/System.map$
     2.1 --- a/Config.mk	Thu Jul 03 10:27:12 2008 +0100
     2.2 +++ b/Config.mk	Thu Jul 03 10:44:13 2008 +0100
     2.3 @@ -78,6 +78,14 @@ XSM_ENABLE ?= n
     2.4  FLASK_ENABLE ?= n
     2.5  ACM_SECURITY ?= n
     2.6  
     2.7 +QEMU_REMOTE=http://www.chiark.greenend.org.uk/~ijackson/qemu-xen.git
     2.8 +
     2.9 +# Specify which qemu-dm to use. This may be `ioemu' to use the old
    2.10 +# Mercurial in-tree version, or a local directory, or a git URL.
    2.11 +CONFIG_QEMU     ?= ioemu
    2.12 +# CONFIG_QEMU   ?= ../qemu-xen.git
    2.13 +# CONFIG_QEMU   ?= $(QEMU_REMOTE)
    2.14 +
    2.15  # Optional components
    2.16  XENSTAT_XENTOP     ?= y
    2.17  VTPM_TOOLS         ?= n
     3.1 --- a/config/StdGNU.mk	Thu Jul 03 10:27:12 2008 +0100
     3.2 +++ b/config/StdGNU.mk	Thu Jul 03 10:44:13 2008 +0100
     3.3 @@ -13,6 +13,9 @@ SIZEUTIL   = $(CROSS_COMPILE)size
     3.4  MSGFMT     = msgfmt
     3.5  MSGMERGE   = msgmerge
     3.6  
     3.7 +# Allow git to be wrappered in the environment
     3.8 +GIT        ?= git
     3.9 +
    3.10  INSTALL      = install
    3.11  INSTALL_DIR  = $(INSTALL) -d -m0755 -p
    3.12  INSTALL_DATA = $(INSTALL) -m0644 -p
     4.1 --- a/tools/Makefile	Thu Jul 03 10:27:12 2008 +0100
     4.2 +++ b/tools/Makefile	Thu Jul 03 10:44:13 2008 +0100
     4.3 @@ -22,7 +22,12 @@ SUBDIRS-y += libaio
     4.4  SUBDIRS-y += blktap
     4.5  SUBDIRS-y += libfsimage
     4.6  SUBDIRS-$(LIBXENAPI_BINDINGS) += libxen
     4.7 +
     4.8 +ifeq (ioemu,$(CONFIG_QEMU))
     4.9  SUBDIRS-$(CONFIG_IOEMU) += ioemu
    4.10 +else
    4.11 +SUBDIRS-$(CONFIG_IOEMU) += ioemu-dir
    4.12 +endif
    4.13  
    4.14  # These don't cross-compile
    4.15  ifeq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH))
    4.16 @@ -62,3 +67,27 @@ subdir-all-ioemu subdir-install-ioemu: i
    4.17  subdir-clean-ioemu:
    4.18  	$(MAKE) -C ioemu distclean
    4.19  
    4.20 +ioemu-dir-find:
    4.21 +	set -ex; \
    4.22 +	if test -d $(CONFIG_QEMU); then \
    4.23 +		rm -f ioemu-dir; \
    4.24 +		ln -sf $(CONFIG_QEMU) ioemu-dir; \
    4.25 +	else \
    4.26 +		if [ ! -d ioemu-remote ]; then \
    4.27 +			rm -rf ioemu-remote ioemu-remote.tmp; \
    4.28 +			mkdir ioemu-remote.tmp; rmdir ioemu-remote.tmp; \
    4.29 +			$(GIT) clone $(CONFIG_QEMU) ioemu-remote.tmp; \
    4.30 +			mv ioemu-remote.tmp ioemu-remote; \
    4.31 +		fi; \
    4.32 +		ln -sf ioemu-remote ioemu-dir; \
    4.33 +	fi
    4.34 +	set -e; \
    4.35 +		case "$XEN_ROOT" in \
    4.36 +		/*)	XEN_ROOT=$(XEN_ROOT) ;; \
    4.37 +		*)	XEN_ROOT=`pwd`/$(XEN_ROOT) ;; \
    4.38 +		esac; \
    4.39 +		export XEN_ROOT; \
    4.40 +		cd ioemu-dir; \
    4.41 +		./xen-setup
    4.42 +
    4.43 +subdir-all-ioemu-dir subdir-install-ioemu-dir: ioemu-dir-find