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:23:25 +0000
commit8083503553ee039f7a203c9a5db00b61c0bda3a9 (patch)
tree3653219f811902cba8a37e80d81f300281aa2930
parent79f0081b0a50ab59794827dd5af79f8671870fcd (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 b89b9734..22b1bbfa 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -222,7 +222,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
@@ -243,7 +249,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_` \
@@ -251,7 +263,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-$* \