From 3e164f15b77230b0961048893d03ec588fc8ab0e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 11 Apr 2012 18:37:14 +0100 Subject: po-docs: Allow parallel builds in po-docs directory. The first time the directory is checked out from git, there are no *.pod files. In a parallel build, the first thread notices this and runs the 'make -C .. update-po' rule, but the other threads also try to run at the same time and fail. --- .gitignore | 1 + po-docs/ja/Makefile.am | 11 ++++++++--- po-docs/uk/Makefile.am | 11 ++++++++--- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index a31c6ceb..4a5c47dc 100644 --- a/.gitignore +++ b/.gitignore @@ -295,6 +295,7 @@ pod2htm?.tmp /po-docs/*/*.pl /po-docs/po4a.conf /po-docs/*/*.pod +/po-docs/*/stamp-update-po /podwrapper.sh /po/en@boldquot.header /po/en@quot.header diff --git a/po-docs/ja/Makefile.am b/po-docs/ja/Makefile.am index 3f5b89e0..5a1c7e43 100644 --- a/po-docs/ja/Makefile.am +++ b/po-docs/ja/Makefile.am @@ -21,7 +21,7 @@ LINGUA = $(shell basename -- `pwd`) -CLEANFILES = *.1 *.3 +CLEANFILES = *.1 *.3 stamp-update-po MANPAGES = \ guestfs.3 \ @@ -45,12 +45,14 @@ MANPAGES = \ virt-sparsify.1 \ virt-sysprep.1 +podfiles := $(shell for f in `cat ../podfiles`; do basename $$f; done) + # Ship the POD files and the translated manpages in the tarball. This # just simplifies building from the tarball, at a small cost in extra # size. EXTRA_DIST = \ $(MANPAGES) \ - $(shell for f in `cat ../podfiles`; do basename $$f; done) + $(podfiles) all-local: $(MANPAGES) @@ -86,8 +88,11 @@ virt-sysprep.1: virt-sysprep.pod sysprep-extra-options.pod sysprep-operations.po # Ensure that the first time we build from git, since guestfs.pod # hasn't been built yet, build it. -guestfs.pod: +$(podfiles): stamp-update-po + +stamp-update-po: if [ ! -f guestfs.pod ]; then make -C .. update-po; fi + touch $@ # XXX Can automake do this properly? install-data-hook: diff --git a/po-docs/uk/Makefile.am b/po-docs/uk/Makefile.am index 3f5b89e0..5a1c7e43 100644 --- a/po-docs/uk/Makefile.am +++ b/po-docs/uk/Makefile.am @@ -21,7 +21,7 @@ LINGUA = $(shell basename -- `pwd`) -CLEANFILES = *.1 *.3 +CLEANFILES = *.1 *.3 stamp-update-po MANPAGES = \ guestfs.3 \ @@ -45,12 +45,14 @@ MANPAGES = \ virt-sparsify.1 \ virt-sysprep.1 +podfiles := $(shell for f in `cat ../podfiles`; do basename $$f; done) + # Ship the POD files and the translated manpages in the tarball. This # just simplifies building from the tarball, at a small cost in extra # size. EXTRA_DIST = \ $(MANPAGES) \ - $(shell for f in `cat ../podfiles`; do basename $$f; done) + $(podfiles) all-local: $(MANPAGES) @@ -86,8 +88,11 @@ virt-sysprep.1: virt-sysprep.pod sysprep-extra-options.pod sysprep-operations.po # Ensure that the first time we build from git, since guestfs.pod # hasn't been built yet, build it. -guestfs.pod: +$(podfiles): stamp-update-po + +stamp-update-po: if [ ! -f guestfs.pod ]; then make -C .. update-po; fi + touch $@ # XXX Can automake do this properly? install-data-hook: -- cgit