86 lines
3.3 KiB
Diff
86 lines
3.3 KiB
Diff
# HG changeset patch
|
|
# User Keir Fraser <keir.fraser@citrix.com>
|
|
# Date 1221565466 -3600
|
|
# Node ID f03b0cc33576e4fe3ff6adfd0853addf676c105e
|
|
# Parent 087b8b29b6b20165062697305c6651ca2acb7b5b
|
|
stubdom/ioemu link farm creation fixes
|
|
|
|
Replace the stubdom/ioemu link farm creation in stubdom/Makefile,
|
|
with code which arranges that:
|
|
* No symlinks are made for output files - in particular, any
|
|
symlinks for .d files would be written through by the compiler
|
|
and cause damage to the original tree and other strange
|
|
behaviours
|
|
* All subdirectories are made as local subdirectories rather than
|
|
links
|
|
* Any interrupted or half-completed creation of the link farm
|
|
leaves the directory in a state where the link farming will be
|
|
restarted
|
|
* We use make's inherent ability to test for the existence of files
|
|
rather than using [ -f ... ] at the start of the rule's commands
|
|
* The list of files to be excluded from the link farm can be
|
|
easily updated
|
|
etc.
|
|
|
|
This should fix some problems particularly with parallel builds,
|
|
or by-hand builds where directories are entered in other than the
|
|
usual order.
|
|
|
|
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
|
|
|
Index: xen-3.3.1-testing/stubdom/Makefile
|
|
===================================================================
|
|
--- xen-3.3.1-testing.orig/stubdom/Makefile
|
|
+++ xen-3.3.1-testing/stubdom/Makefile
|
|
@@ -164,7 +164,26 @@ lwip-$(XEN_TARGET_ARCH): lwip-$(LWIP_VER
|
|
.PHONY: $(CROSS_ROOT)
|
|
$(CROSS_ROOT): cross-newlib cross-zlib cross-libpci
|
|
|
|
-mk-headers-$(XEN_TARGET_ARCH):
|
|
+ioemu/linkfarm.stamp: $(XEN_ROOT)/tools/ioemu-dir
|
|
+ mkdir -p ioemu
|
|
+ifeq ($(CONFIG_QEMU),ioemu)
|
|
+ [ -h ioemu/Makefile ] || ( cd ioemu && \
|
|
+ ln -sf ../$(XEN_ROOT)/tools/ioemu/* .)
|
|
+else
|
|
+ set -e; \
|
|
+ $(absolutify_xen_root); \
|
|
+ cd ioemu; \
|
|
+ src="$$XEN_ROOT/tools/ioemu-dir"; export src; \
|
|
+ (cd $$src && find * -type d -print) | xargs mkdir -p; \
|
|
+ (cd $$src && find * ! -type l -type f $(addprefix ! -name , \
|
|
+ '*.[oda1]' 'config-*' config.mak qemu-dm qemu-img-xen \
|
|
+ '*.html' '*.pod' \
|
|
+ )) | \
|
|
+ while read f; do rm -f "$$f"; ln -s "$$src/$$f" "$$f"; done
|
|
+endif
|
|
+ touch ioemu/linkfarm.stamp
|
|
+
|
|
+mk-headers-$(XEN_TARGET_ARCH): ioemu/linkfarm.stamp
|
|
mkdir -p include/xen && \
|
|
ln -sf $(addprefix ../../,$(wildcard $(XEN_ROOT)/xen/include/public/*.h)) include/xen && \
|
|
ln -sf $(addprefix ../../$(XEN_ROOT)/xen/include/public/,arch-ia64 arch-x86 hvm io xsm) include/xen && \
|
|
@@ -183,22 +202,6 @@ mk-headers-$(XEN_TARGET_ARCH):
|
|
ln -sf ../$(XEN_ROOT)/tools/libxc/$(XEN_TARGET_ARCH)/*.c . && \
|
|
ln -sf ../$(XEN_ROOT)/tools/libxc/$(XEN_TARGET_ARCH)/*.h . && \
|
|
ln -sf ../$(XEN_ROOT)/tools/libxc/$(XEN_TARGET_ARCH)/Makefile . )
|
|
- mkdir -p ioemu
|
|
-ifeq ($(CONFIG_QEMU),ioemu)
|
|
- [ -h ioemu/Makefile ] || ( cd ioemu && \
|
|
- ln -sf ../$(XEN_ROOT)/tools/ioemu/* .)
|
|
-else
|
|
- [ -h ioemu/Makefile ] || ( cd ioemu && \
|
|
- ln -sf $(CONFIG_QEMU)/* . && \
|
|
- rm -fr i386-dm && \
|
|
- rm -fr i386-stubdom && \
|
|
- mkdir i386-dm && \
|
|
- mkdir i386-stubdom && \
|
|
- ln -sf $(CONFIG_QEMU)/i386-dm/* i386-dm/ && \
|
|
- ln -sf $(CONFIG_QEMU)/i386-stubdom/* i386-stubdom/ )
|
|
-endif
|
|
- [ ! -h ioemu/config-host.h ] || rm -f ioemu/config-host.h
|
|
- [ ! -h ioemu/config-host.mak ] || rm -f ioemu/config-host.mak
|
|
$(MAKE) -C $(MINI_OS) links
|
|
touch mk-headers-$(XEN_TARGET_ARCH)
|
|
|