aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefano Stabellini <stefano.stabellini@eu.citrix.com>2011-09-13 10:27:20 +0100
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>2011-09-13 10:27:20 +0100
commit088276d61547773da1840589c708b4202a7cfb10 (patch)
tree1e59063a71b646b4667c7101a3c6d36a0ef0fb5f
parent5b6fdcc0d8817b6b9bd896014784cc89385ed0bb (diff)
downloadxen-088276d61547773da1840589c708b4202a7cfb10.tar.gz
xen-088276d61547773da1840589c708b4202a7cfb10.tar.bz2
xen-088276d61547773da1840589c708b4202a7cfb10.zip
Move the ioemu-dir-find shell script to an external file
Add support for configuring upstream qemu and rename ioemu-remote ioemu-dir-remote. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-rw-r--r--.hgignore2
-rw-r--r--scripts/git-checkout.sh46
-rw-r--r--tools/Makefile35
3 files changed, 51 insertions, 32 deletions
diff --git a/.hgignore b/.hgignore
index cdb6f36f96..0a07c34139 100644
--- a/.hgignore
+++ b/.hgignore
@@ -291,7 +291,7 @@
^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-remote
^tools/ioemu-dir$
^tools/ocaml/.*/.*\.annot$
^tools/ocaml/.*/.*\.cmx?a$
diff --git a/scripts/git-checkout.sh b/scripts/git-checkout.sh
new file mode 100644
index 0000000000..3f3212662b
--- /dev/null
+++ b/scripts/git-checkout.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+TREE=$1
+TAG=$2
+DIR=$3
+
+
+if test -d $TREE; then
+ mkdir -p $DIR
+ ROOT=$TREE
+else
+ if test \! -d $DIR-remote; then
+ rm -rf $DIR-remote $DIR-remote.tmp;
+ mkdir $DIR-remote.tmp; rmdir $DIR-remote.tmp;
+ git clone $TREE $DIR-remote.tmp;
+ if test "$TAG" ; then
+ cd $DIR-remote.tmp
+ git branch -D dummy >/dev/null 2>&1 ||:
+ git checkout -b dummy $TAG
+ cd ..
+ fi
+ mv $DIR-remote.tmp $DIR-remote
+ fi
+ rm -f $DIR
+ ln -sf $DIR-remote $DIR
+ ROOT=.
+fi
+
+set -e
+cd $DIR
+# is this qemu-xen-traditional?
+if test -f $ROOT/xen-setup; then
+ $ROOT/xen-setup $IOEMU_CONFIGURE_CROSS
+# is this qemu-xen?
+elif test -f $ROOT/configure; then
+ cd $ROOT
+ ./configure --enable-xen --target-list=i386-softmmu \
+ --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/libxenstore" \
+ --bindir=/usr/lib/xen/bin \
+ --disable-kvm \
+ $IOEMU_CONFIGURE_CROSS
+fi
diff --git a/tools/Makefile b/tools/Makefile
index df6270c352..fb2758217f 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -70,7 +70,7 @@ clean: subdirs-clean
.PHONY: distclean
distclean: subdirs-distclean
- rm -rf ioemu-dir ioemu-remote
+ rm -rf ioemu-dir ioemu-dir-remote
ifneq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH))
IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TARGET_ARCH) \
@@ -78,41 +78,14 @@ IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TARGET_ARCH) \
--interp-prefix=$(CROSS_SYS_ROOT)
endif
-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 \
- mkdir -p 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; \
- if [ "$(QEMU_TAG)" ]; then \
- cd ioemu-remote.tmp; \
- $(GIT) branch -D dummy >/dev/null 2>&1 ||:; \
- $(GIT) checkout -b dummy $(QEMU_TAG); \
- cd ..; \
- fi; \
- mv ioemu-remote.tmp ioemu-remote; \
- fi; \
- rm -f ioemu-dir; \
- ln -sf ioemu-remote ioemu-dir; \
- fi
- set -e; \
- $(buildmakevars2shellvars); \
- cd ioemu-dir; \
- $(QEMU_ROOT)/xen-setup $(IOEMU_CONFIGURE_CROSS)
-
+ $(XEN_ROOT)/scripts/git-checkout.sh $(CONFIG_QEMU) $(QEMU_TAG) ioemu-dir
+
.PHONY: ioemu-dir-force-update
ioemu-dir-force-update:
set -ex; \
if [ "$(QEMU_TAG)" ]; then \
- cd ioemu-remote; \
+ cd ioemu-dir-remote; \
$(GIT) fetch origin; \
$(GIT) reset --hard $(QEMU_TAG); \
fi