From e737b4333bb287b6134a89edff2bde2a7e048a9e Mon Sep 17 00:00:00 2001 From: Date: Tue, 24 Jan 2012 15:09:30 +0000 Subject: Clone and build upstream Qemu by default From: Stefano Stabellini Signed-off-by: Stefano Stabellini Committed-by: Ian Jackson --- .hgignore | 2 ++ Config.mk | 7 +++++++ Makefile | 9 ++++++++- tools/Makefile | 44 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 61 insertions(+), 1 deletion(-) diff --git a/.hgignore b/.hgignore index 4b773c39b8..cbcc0f5218 100644 --- a/.hgignore +++ b/.hgignore @@ -298,6 +298,8 @@ ^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$ diff --git a/Config.mk b/Config.mk index 7dcb267baa..5f67a9f997 100644 --- 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 diff --git a/Makefile b/Makefile index c0197a5ed6..edc5e3d92e 100644 --- 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 diff --git a/tools/Makefile b/tools/Makefile index 3ff1ed1a34..03ac66f855 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -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 -- cgit v1.2.3