summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Cardona <remi@gentoo.org>2014-11-30 22:10:59 +0100
committerMichael Catanzaro <mcatanzaro@gnome.org>2016-07-21 21:15:00 -0500
commitfd624644340af9e14435f66d09979a6ed0f4c7a8 (patch)
tree3b97ef6d42c740a91aafb1d18085e1ba16814818
parent746b5b52c8469d5156a0a94fff4361ec3378246c (diff)
downloadempathy-fd624644340af9e14435f66d09979a6ed0f4c7a8.tar.gz
Fix parallel build in extensions/
GNU Make manual says: A rule with multiple targets is equivalent to writing many rules, each with one target, and all identical aside from that. In other words, make may very well call glib-gtypes-generator.py twice (once for each generated header). And hell breaks loose because the python code assumes it will run once (it should be using the tempfile module, but that's another bug). On a fast multi-core machine, make -j4 will easily reproduce this bug. The solution is hidden in the same manual [1] : %.tab.c %.tab.h: %.y bison -d $< This tells make that the recipe ‘bison -d x.y’ will make both x.tab.c and x.tab.h. So by using '%' to replace the 'y' in the targets, I'm telling make that running the recipe once will generate both files. [1] http://www.gnu.org/software/make/manual/make.html#Pattern-Examples https://bugs.gentoo.org/show_bug.cgi?id=515894 https://bugzilla.gnome.org/show_bug.cgi?id=685837 Signed-off-by: Gilles Dartiguelongue <eva@gentoo.org>
-rw-r--r--extensions/Makefile.am4
1 files changed, 2 insertions, 2 deletions
diff --git a/extensions/Makefile.am b/extensions/Makefile.am
index 79622d48a..9082496c4 100644
--- a/extensions/Makefile.am
+++ b/extensions/Makefile.am
@@ -66,7 +66,7 @@ extensions.html: _gen/all.xml $(tools_dir)/doc-generator.xsl
$(tools_dir)/doc-generator.xsl \
$< > $@
-_gen/gtypes.h _gen/gtypes-body.h: _gen/all.xml \
+_gen/gt%pes.h _gen/gt%pes-body.h: _gen/all.xml \
$(top_srcdir)/tools/glib-gtypes-generator.py
$(AM_V_GEN)$(PYTHON) $(top_srcdir)/tools/glib-gtypes-generator.py \
$< _gen/gtypes Emp
@@ -82,7 +82,7 @@ _gen/enums.h: _gen/all.xml \
Emp \
$< _gen/enums
-_gen/interfaces-body.h _gen/interfaces.h: _gen/all.xml \
+_gen/int%rfaces-body.h _gen/int%rfaces.h: _gen/all.xml \
$(tools_dir)/glib-interfaces-gen.py
$(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-interfaces-gen.py \
Emp _gen/interfaces-body.h _gen/interfaces.h $<