diff options
Diffstat (limited to 'tools/Makefile')
-rw-r--r-- | tools/Makefile | 64 |
1 files changed, 39 insertions, 25 deletions
diff --git a/tools/Makefile b/tools/Makefile index ede96db9b0..df6270c352 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -30,8 +30,7 @@ SUBDIRS-$(LIBXENAPI_BINDINGS) += libxen # 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 +SUBDIRS-$(CONFIG_IOEMU) += ioemu-dir endif SUBDIRS-y += xenpmd @@ -71,8 +70,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 + rm -rf ioemu-dir ioemu-remote ifneq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH)) IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TARGET_ARCH) \ @@ -80,35 +78,51 @@ IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TARGET_ARCH) \ --interp-prefix=$(CROSS_SYS_ROOT) endif -qemu-xen-traditional-dir-find: - $(XEN_ROOT)/scripts/git-checkout.sh $(CONFIG_QEMU) $(QEMU_TAG) qemu-xen-traditional-dir - -qemu-xen-dir-find: - $(XEN_ROOT)/scripts/git-checkout.sh $(QEMU_UPSTREAM_URL) $(QEMU_UPSTREAM_TAG) qemu-xen-dir - -.PHONY: qemu-xen-traditional-dir-force-update -qemu-xen-traditional-dir-force-update: +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) + +.PHONY: ioemu-dir-force-update +ioemu-dir-force-update: set -ex; \ if [ "$(QEMU_TAG)" ]; then \ - cd qemu-xen-traditional-dir-remote; \ + cd ioemu-remote; \ $(GIT) fetch origin; \ $(GIT) reset --hard $(QEMU_TAG); \ fi -subdir-all-qemu-xen-traditional-dir subdir-install-qemu-xen-traditional-dir: qemu-xen-traditional-dir-find - -subdir-clean-qemu-xen-traditional-dir: - set -e; if test -d qemu-xen-traditional-dir/.; then \ - $(buildmakevars2shellvars); \ - $(MAKE) -C qemu-xen-traditional-dir clean; \ - fi - -subdir-all-qemu-xen-dir subdir-install-qemu-xen-dir: qemu-xen-dir-find +subdir-all-ioemu-dir subdir-install-ioemu-dir: ioemu-dir-find -subdir-clean-qemu-xen-dir: - set -e; if test -d qemu-xen-dir/.; then \ +subdir-clean-ioemu-dir: + set -e; if test -d ioemu-dir/.; then \ $(buildmakevars2shellvars); \ - $(MAKE) -C qemu-xen-dir clean; \ + $(MAKE) -C ioemu-dir clean; \ fi subdir-clean-debugger/gdbsx subdir-distclean-debugger/gdbsx: .phony |