summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2014-01-30 13:04:56 +0000
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2014-02-03 16:35:24 +0000
commitc86536f3b5fcc21eac60a836954d1aa002b67cc0 (patch)
treeba075a3d81083b4e99adf6ac862d947b71ea922f
parentd4471ccad3163ee33fe5b5bd5947ca47ad01158a (diff)
codegen: avoid generating more than one thing in the same command
As with telepathy-glib commit 36c2a545c9, a rule like this: _gen/x.c _gen/x.h: prerequisites $(AM_V_GEN)x-generator doesn't consider x.c and x.h together. Instead, it expands to two rules, one to generate x.c and one to generate x.h, which happen to run the same commands. This means that in the worst case, you can end up running x-generator twice in parallel, and they'll race with each other and overwrite or delete each other's output. Updated version of a patch from Ross Burton, taking into account that we now generate a separate header for the gtk-doc. I use the gtk-doc header as the one that "matters", because it's the last to be generated. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=69446 Reviewed-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
-rw-r--r--src/Makefile.am24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index c51a58ad..fe81e97f 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -275,7 +275,13 @@ _gen/interfaces-body.h: _gen/mcd.xml \
$(tools_dir)/glib-interfaces-body-generator.xsl \
$< > $@
-_gen/gtypes.h _gen/gtypes-body.h: _gen/mcd.xml \
+_gen/gtypes.h: _gen/gtypes-gtk-doc.h
+ @: # generated as a side-effect
+
+_gen/gtypes-body.h: _gen/gtypes-gtk-doc.h
+ @: # generated as a side-effect
+
+_gen/gtypes-gtk-doc.h: _gen/mcd.xml \
$(top_srcdir)/tools/glib-gtypes-generator.py
$(AM_V_GEN)$(PYTHON) $(top_srcdir)/tools/glib-gtypes-generator.py \
$< _gen/gtypes mc
@@ -296,7 +302,13 @@ _gen/%.xml: %.xml $(wildcard $(top_srcdir)/xml/*.xml) Makefile.am
$(AM_V_GEN)$(XSLTPROC) $(XSLTPROCFLAGS) --xinclude $(tools_dir)/identity.xsl \
$< > $@
-_gen/cli-%-body.h _gen/cli-%.h: _gen/%.xml \
+_gen/cli-%-body.h: _gen/cli-%-gtk-doc.h
+ @: # generated as a side-effect
+
+_gen/cli-%.h: _gen/cli-%-gtk-doc.h
+ @: # generated as a side-effect
+
+_gen/cli-%-gtk-doc.h: _gen/%.xml \
$(tools_dir)/glib-client-gen.py Makefile.am
$(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-client-gen.py \
--group=`echo $* | tr x- x_` \
@@ -304,7 +316,13 @@ _gen/cli-%-body.h _gen/cli-%.h: _gen/%.xml \
--tp-proxy-api=0.7.6 \
$< Mc_Cli _gen/cli-$*
-_gen/svc-%.c _gen/svc-%.h: _gen/%.xml \
+_gen/svc-%.c: _gen/svc-%-gtk-doc.h
+ @: # generated as a side-effect
+
+_gen/svc-%.h: _gen/svc-%-gtk-doc.h
+ @: # generated as a side-effect
+
+_gen/svc-%-gtk-doc.h: _gen/%.xml \
$(tools_dir)/glib-ginterface-gen.py Makefile.am
$(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-ginterface-gen.py \
--filename=_gen/svc-$* \