[empathy/gnome-3-12] Fix parallel build in extensions/



commit fd624644340af9e14435f66d09979a6ed0f4c7a8
Author: Rémi Cardona <remi gentoo org>
Date:   Sun Nov 30 22:10:59 2014 +0100

    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>

 extensions/Makefile.am |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/extensions/Makefile.am b/extensions/Makefile.am
index 79622d4..9082496 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 $<


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]