@@ -184,28 +184,25 @@ qemu-xen-traditional-dir-force-update: qemu-xen-traditional-dir-find
$(GIT) reset --hard $(QEMU_TRADITIONAL_REVISION); \
fi
-subdir-all-qemu-xen-traditional-dir: qemu-xen-traditional-dir-find
+qemu-traditional-recurse = \
set -e; \
$(buildmakevars2shellvars); \
export CONFIG_BLKTAP1=n; \
cd qemu-xen-traditional-dir; \
- $(QEMU_ROOT)/xen-setup \
- $(IOEMU_EXTRA_LDFLAGS) \
- --cpu=$(IOEMU_CPU_ARCH) \
- $(IOEMU_CONFIGURE_CROSS); \
- $(MAKE) all
+ $(1)
-subdir-install-qemu-xen-traditional-dir: qemu-xen-traditional-dir-find
- set -e; \
- $(buildmakevars2shellvars); \
- export CONFIG_BLKTAP1=n; \
- cd qemu-xen-traditional-dir; \
+subdir-all-qemu-xen-traditional-dir: qemu-xen-traditional-dir-find
+ $(call qemu-traditional-recurse,\
$(QEMU_ROOT)/xen-setup \
--extra-cflags="$(EXTRA_CFLAGS_QEMU_TRADITIONAL)" \
$(IOEMU_EXTRA_LDFLAGS) \
--cpu=$(IOEMU_CPU_ARCH) \
$(IOEMU_CONFIGURE_CROSS); \
- $(MAKE) install
+ $(MAKE) all \
+ )
+
+subdir-install-qemu-xen-traditional-dir: subdir-all-qemu-xen-traditional-dir
+ $(call qemu-traditional-recurse,$(MAKE) install)
subdir-clean-qemu-xen-traditional-dir:
set -e; if test -d qemu-xen-traditional-dir/.; then \
Currently both subdir-all-qemu-traditional-dir and subdir-install-... recurse into qemu-traditional-dir and run xen-setup, but with subtly different options (--extra-cflags was only passed for install). Consolidate these by having the install target depend on the all (build) target and only calling make install. There is a subtlty which is that qemu-trad's build is not completely isolated from xen.git and requires some environment variables etc. To handle this refactor the setup code into a make macro and $(call) it in both cases. Note that this doesn't actually omit a potential double call to configure, since all is still called during install, this is the same for qemu-xen. Note that it doesn't result in a double build in either case, since apparently the qemu configure is idempotent. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> --- tools/Makefile | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-)