[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] Fix Makefile targets that generate several files at once
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1267800019 0 # Node ID 8f98581c2dd1b4252fc0348a5d27beaad890a032 # Parent 87ed57b6e4cd60ebd98044d7e84168151e49b135 Fix Makefile targets that generate several files at once In a few places in the tree the Makefiles have constructs like this: one_file another_file: $(COMMAND_WHICH_GENERATES_BOTH_AT_ONCE) This is wrong, because make will run _two copies_ of the same command at once. This generally causes races and hard-to-reproduce build failures. Notably, `make -j4' at the top level will build stubdom libxc twice simultaneously! In this patch we replace the occurrences of this construct with the correct idiom: one_file: another_file another_file: $(COMMAND_WHICH_GENERATES_BOTH_AT_ONCE) Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> --- stubdom/Makefile | 4 +++- tools/flask/policy/Makefile | 6 ++++-- tools/xenstat/libxenstat/Makefile | 6 ++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff -r 87ed57b6e4cd -r 8f98581c2dd1 stubdom/Makefile --- a/stubdom/Makefile Fri Mar 05 14:39:25 2010 +0000 +++ b/stubdom/Makefile Fri Mar 05 14:40:19 2010 +0000 @@ -265,8 +265,10 @@ TARGETS_MINIOS=$(addprefix mini-os-$(XEN .PHONY: libxc libxc: libxc-$(XEN_TARGET_ARCH)/libxenctrl.a libxc-$(XEN_TARGET_ARCH)/libxenguest.a -libxc-$(XEN_TARGET_ARCH)/libxenctrl.a libxc-$(XEN_TARGET_ARCH)/libxenguest.a:: cross-zlib +libxc-$(XEN_TARGET_ARCH)/libxenctrl.a: cross-zlib CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) -C libxc-$(XEN_TARGET_ARCH) + + libxc-$(XEN_TARGET_ARCH)/libxenguest.a: libxc-$(XEN_TARGET_ARCH)/libxenctrl.a ####### # ioemu diff -r 87ed57b6e4cd -r 8f98581c2dd1 tools/flask/policy/Makefile --- a/tools/flask/policy/Makefile Fri Mar 05 14:39:25 2010 +0000 +++ b/tools/flask/policy/Makefile Fri Mar 05 14:40:19 2010 +0000 @@ -166,7 +166,8 @@ load: tmp/load # # Load the binary policy # -reload tmp/load: $(LOADPATH) $(FCPATH) +tmp/load: reload +reload: $(LOADPATH) $(FCPATH) @echo "Loading $(NAME) $(LOADPATH)" $(QUIET) $(LOADPOLICY) $(LOADPATH) @touch tmp/load @@ -205,7 +206,8 @@ tmp/post_te_files.conf: $(POST_TE_FILES) # extract attributes and put them first. extract post te stuff # like genfscon and put last. portcon, nodecon, and netifcon # is delayed since they are generated by m4 -tmp/all_attrs_types.conf tmp/only_te_rules.conf tmp/all_post.conf: tmp/all_te_files.conf tmp/post_te_files.conf +tmp/all_attrs_types.conf tmp/all_post.conf: tmp/only_te_rules.conf +tmp/only_te_rules.conf: tmp/all_te_files.conf tmp/post_te_files.conf $(QUIET) grep ^attribute tmp/all_te_files.conf > tmp/all_attrs_types.conf || true $(QUIET) grep '^type ' tmp/all_te_files.conf >> tmp/all_attrs_types.conf $(QUIET) cat tmp/post_te_files.conf > tmp/all_post.conf diff -r 87ed57b6e4cd -r 8f98581c2dd1 tools/xenstat/libxenstat/Makefile --- a/tools/xenstat/libxenstat/Makefile Fri Mar 05 14:39:25 2010 +0000 +++ b/tools/xenstat/libxenstat/Makefile Fri Mar 05 14:40:19 2010 +0000 @@ -107,7 +107,8 @@ SWIG_FLAGS=-module xenstat -Isrc # Python bindings PYTHON_VERSION=2.3 PYTHON_FLAGS=-I/usr/include/python$(PYTHON_VERSION) -lpython$(PYTHON_VERSION) -$(PYSRC) $(PYMOD): bindings/swig/xenstat.i +$(PYMOD): $(PYSRC) +$(PYSRC): bindings/swig/xenstat.i swig -python $(SWIG_FLAGS) -outdir $(@D) -o $(PYSRC) $< $(PYLIB): $(PYSRC) @@ -128,7 +129,8 @@ endif # Perl bindings PERL_FLAGS=`perl -MConfig -e 'print "$$Config{ccflags} -I$$Config{archlib}/CORE";'` -$(PERLSRC) $(PERLMOD): bindings/swig/xenstat.i +$(PERLMOD): $(PERLSRC) +$(PERLSRC): bindings/swig/xenstat.i swig -perl $(SWIG_FLAGS) -outdir $(@D) -o $(PERLSRC) $< $(PERLLIB): $(PERLSRC) _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |