diff options
author | Jan Beulich <jbeulich@novell.com> | 2010-11-23 16:43:38 +0000 |
---|---|---|
committer | Jan Beulich <jbeulich@novell.com> | 2010-11-23 16:43:38 +0000 |
commit | 762626dd33b8cded8c19f9d133f196def31684a9 (patch) | |
tree | 2ad87ce9ff167e94a189920c1f1c69b4bda60d27 | |
parent | 3ed6a063d2a5f6197306b030e8c27c36d5f31aa1 (diff) | |
download | xen-762626dd33b8cded8c19f9d133f196def31684a9.tar.gz xen-762626dd33b8cded8c19f9d133f196def31684a9.tar.bz2 xen-762626dd33b8cded8c19f9d133f196def31684a9.zip |
qemu-xen: build adjustments to support out-of-tree builds
QEMU by itself can be built outside of its source directory. With the
qemu repository being separate from the hypervisor/tools one it seems
to make sense to make use of this feature, but doing so requires a
couple of adjustments to the Xen changes to it. Basically, if
CONFIG_QEMU is found to indicate an existing directory, this directory
will be used rather than cloning the git repo into the build tree.
[ This changeset is the xen-unstable part of the patch but also
includes the QEMU_TAG update to pull in the qemu part. -iwj ]
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
-rw-r--r-- | Config.mk | 6 | ||||
-rw-r--r-- | stubdom/Makefile | 14 | ||||
-rw-r--r-- | tools/Makefile | 17 |
3 files changed, 21 insertions, 16 deletions
@@ -185,9 +185,9 @@ endif # CONFIG_QEMU ?= ../qemu-xen.git CONFIG_QEMU ?= $(QEMU_REMOTE) -QEMU_TAG ?= 60766b459c41e429a4b2405124b42512ea362984 -# Fri Nov 19 18:50:43 2010 +0000 -# passthrough: let xen choose the pirq number +QEMU_TAG ?= ad78ccc35617610bc43112788d28a05878fac91f +# Tue Nov 23 16:40:08 2010 +0000 +# qemu-xen: build adjustments to support out-of-tree builds # Optional components XENSTAT_XENTOP ?= y diff --git a/stubdom/Makefile b/stubdom/Makefile index d3af867a23..d1c6b0a5b5 100644 --- a/stubdom/Makefile +++ b/stubdom/Makefile @@ -215,6 +215,9 @@ $(OCAML_STAMPFILE): ocaml-$(XEN_TARGET_ARCH)/.dirstamp .PHONY: $(CROSS_ROOT) $(CROSS_ROOT): cross-newlib cross-zlib cross-libpci +QEMU_ROOT := $(shell if [ -d "$(CONFIG_QEMU)" ]; then echo "$(CONFIG_QEMU)"; else echo .; fi) + +ifeq ($(QEMU_ROOT),.) $(XEN_ROOT)/tools/ioemu-dir: $(CROSS_MAKE) -C $(XEN_ROOT)/tools ioemu-dir-find @@ -231,6 +234,13 @@ ioemu/linkfarm.stamp: $(XEN_ROOT)/tools/ioemu-dir )) | \ while read f; do rm -f "$$f"; ln -s "$$src/$$f" "$$f"; done touch ioemu/linkfarm.stamp +else +export QEMU_ROOT + +ioemu/linkfarm.stamp: + mkdir -p ioemu + touch ioemu/linkfarm.stamp +endif mk-headers-$(XEN_TARGET_ARCH): ioemu/linkfarm.stamp mkdir -p include/xen && \ @@ -287,8 +297,8 @@ ioemu: cross-zlib cross-libpci libxc TARGET_CPPFLAGS="$(TARGET_CPPFLAGS)" \ TARGET_CFLAGS="$(TARGET_CFLAGS)" \ TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \ - ./xen-setup-stubdom ) - $(CROSS_MAKE) -C ioemu + $(QEMU_ROOT)/xen-setup-stubdom ) + $(CROSS_MAKE) -C ioemu -f $(QEMU_ROOT)/Makefile ###### # caml diff --git a/tools/Makefile b/tools/Makefile index b5ca635409..9a97324abd 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -81,20 +81,15 @@ IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TARGET_ARCH) \ --interp-prefix=$(CROSS_SYS_ROOT) endif -ioemu/config-host.mak: - cd ioemu && XEN_TARGET_ARCH=$(XEN_TARGET_ARCH) sh configure \ - --prefix=$(PREFIX) $(IOEMU_CONFIGURE_CROSS) - -subdir-all-ioemu subdir-install-ioemu: ioemu/config-host.mak - -subdir-clean-ioemu: - $(MAKE) -C ioemu distclean +QEMU_ROOT := $(shell if [ -d "$(CONFIG_QEMU)" ]; then echo "$(CONFIG_QEMU)"; else echo .; fi) +ifneq ($(QEMU_ROOT),.) +export QEMU_ROOT +endif ioemu-dir-find: set -ex; \ if test -d $(CONFIG_QEMU); then \ - rm -f ioemu-dir; \ - ln -sf $(CONFIG_QEMU) ioemu-dir; \ + mkdir -p ioemu-dir; \ else \ if [ ! -d ioemu-remote ]; then \ rm -rf ioemu-remote ioemu-remote.tmp; \ @@ -115,7 +110,7 @@ ioemu-dir-find: $(absolutify_xen_root); \ $(buildmakevars2shellvars); \ cd ioemu-dir; \ - ./xen-setup $(IOEMU_CONFIGURE_CROSS) + $(QEMU_ROOT)/xen-setup $(IOEMU_CONFIGURE_CROSS) .PHONY: ioemu-dir-force-update ioemu-dir-force-update: |