Clone and build upstream Qemu by default
author <stefano.stabellini@eu.citrix.com> <>
Tue, 24 Jan 2012 15:09:30 +0000 (15:09 +0000)
committer <stefano.stabellini@eu.citrix.com> <>
Tue, 24 Jan 2012 15:09:30 +0000 (15:09 +0000)
From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
.hgignore
Config.mk
Makefile
tools/Makefile

index 4b773c39b86856478d03a442e7c15934897d9770..cbcc0f52180853bb1ba19626ca3e6de6d08fb238 100644 (file)
--- a/.hgignore
+++ b/.hgignore
 ^tools/xm-test/tests/.*\.test$
 ^tools/qemu-xen-traditional-dir-remote
 ^tools/qemu-xen-traditional-dir$
+^tools/qemu-xen-dir-remote
+^tools/qemu-xen-dir$
 ^tools/ocaml/.*/.*\.annot$
 ^tools/ocaml/.*/.*\.cmx?a$
 ^tools/ocaml/.*/META$
index 7dcb267baa4b315c0099af41bc2fe14e9ea895e7..5f67a9f997f3998bd0aef5c6af49a2bd6a9c7886 100644 (file)
--- a/Config.mk
+++ b/Config.mk
@@ -207,6 +207,13 @@ else
 QEMU_REMOTE=git://xenbits.xensource.com/qemu-xen-unstable.git
 endif
 
+ifeq ($(GIT_HTTP),y)
+QEMU_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/qemu-upstream-unstable.git
+else
+QEMU_UPSTREAM_URL ?= git://xenbits.xen.org/qemu-upstream-unstable.git
+endif
+QEMU_UPSTREAM_REVISION ?= master
+
 # 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 ?= `pwd`/$(XEN_ROOT)/../qemu-xen.git
index c0197a5ed68fb25802bf1892486aa335ad59c66a..edc5e3d92efd0c1421e8b418d7bc0ace096ad19d 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -70,7 +70,7 @@ install-tools:
        $(MAKE) -C tools install
 
 ifeq ($(CONFIG_IOEMU),y)
-install-tools: tools/qemu-xen-traditional-dir
+install-tools: tools/qemu-xen-traditional-dir tools/qemu-xen-dir
 endif
 
 .PHONY: install-kernels
@@ -91,6 +91,13 @@ tools/qemu-xen-traditional-dir:
 tools/qemu-xen-traditional-dir-force-update:
        $(MAKE) -C tools qemu-xen-traditional-dir-force-update
 
+tools/qemu-xen-dir:
+       $(MAKE) -C tools qemu-xen-dir-find
+
+.PHONY: tools/qemu-xen-dir-force-update
+tools/qemu-xen-dir-force-update:
+       $(MAKE) -C tools qemu-xen-dir-force-update
+
 .PHONY: install-docs
 install-docs:
        sh ./docs/check_pkgs && $(MAKE) -C docs install || true
index 3ff1ed1a3497a06d4224bbc678c5e5666aa1e32c..03ac66f855bb6b23ecfe9b804e1b3497212cd7d8 100644 (file)
@@ -36,6 +36,7 @@ SUBDIRS-y += libvchan
 # do not recurse in to a dir we are about to delete
 ifneq "$(MAKECMDGOALS)" "distclean"
 SUBDIRS-$(CONFIG_IOEMU) += qemu-xen-traditional-dir
+SUBDIRS-$(CONFIG_IOEMU) += qemu-xen-dir
 endif
 
 SUBDIRS-y += xenpmd
@@ -76,6 +77,7 @@ clean: subdirs-clean
 .PHONY: distclean
 distclean: subdirs-distclean
        rm -rf qemu-xen-traditional-dir qemu-xen-traditional-dir-remote
+       rm -rf qemu-xen-dir qemu-xen-dir-remote
 
 ifneq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH))
 IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TARGET_ARCH) \
@@ -97,6 +99,14 @@ qemu-xen-traditional-dir-find:
                $(XEN_ROOT)/scripts/git-checkout.sh $(CONFIG_QEMU) $(QEMU_TAG) qemu-xen-traditional-dir; \
        fi
 
+qemu-xen-dir-find:
+       if test -d $(QEMU_UPSTREAM_URL) ; then \
+               mkdir -p qemu-xen-dir; \
+       else \
+               export GIT=$(GIT); \
+               $(XEN_ROOT)/scripts/git-checkout.sh $(QEMU_UPSTREAM_URL) $(QEMU_UPSTREAM_REVISION) qemu-xen-dir ; \
+       fi
+
 .PHONY: qemu-xen-traditional-dir-force-update
 qemu-xen-traditional-dir-force-update:
        set -ex; \
@@ -119,6 +129,40 @@ subdir-clean-qemu-xen-traditional-dir:
                $(MAKE) -C qemu-xen-traditional-dir clean; \
        fi
 
+.PHONY: qemu-xen-dir-force-update
+qemu-xen-dir-force-update:
+       set -ex; \
+       if [ "$(QEMU_UPSTREAM_REVISION)" ]; then \
+               cd qemu-xen-dir-remote; \
+               $(GIT) fetch origin; \
+               $(GIT) reset --hard $(QEMU_UPSTREAM_REVISION); \
+       fi
+
+subdir-all-qemu-xen-dir subdir-install-qemu-xen-dir: qemu-xen-dir-find
+       if test -d $(QEMU_UPSTREAM_URL) ; then \
+               source=$(QEMU_UPSTREAM_URL); \
+       else \
+               source=.; \
+       fi; \
+       cd qemu-xen-dir; \
+       $$source/configure --enable-xen --target-list=i386-softmmu \
+               --source-path=$$source \
+               --extra-cflags="-I$(XEN_ROOT)/tools/include \
+               -I$(XEN_ROOT)/tools/libxc \
+               -I$(XEN_ROOT)/tools/xenstore" \
+               --extra-ldflags="-L$(XEN_ROOT)/tools/libxc \
+               -L$(XEN_ROOT)/tools/xenstore" \
+               --bindir=$(LIBEXEC) \
+               --disable-kvm \
+               $(IOEMU_CONFIGURE_CROSS); \
+       $(MAKE) install
+
+subdir-clean-qemu-xen-dir:
+       set -e; if test -d qemu-xen-dir/.; then \
+               $(buildmakevars2shellvars); \
+               $(MAKE) -C qemu-xen-dir clean; \
+       fi
+
 subdir-clean-debugger/gdbsx subdir-distclean-debugger/gdbsx: .phony
        $(MAKE) -C debugger/gdbsx clean