On Sat, Apr 15, 2017 at 11:12:05PM +0200, Hans-Bernhard Bröker wrote: > the recent round of updates to the gnulib stuff triggered what must be > a rather old bug in the tp/maintain/regenerate_docstr.pl script.
I suspect it is the update to the translation files, rather than the gnulib update. > completely fails to work in out-of-tree, a.k.a. VPATH builds. The problem > is that this perl script writes makefile rules into tp/Makefile.docstr which > look like this: > > $(srcdir)/../po_document/'"$lingua.gmo"': > $(srcdir)/../po_document/'"$lingua.po"' > cd $(srcdir)/../po_document/ && $(MAKE) $(AM_MAKEFLAGS) '"$lingua.gmo"' > > But in a VPATH build, there is no makefile in $(srcdir)/../po_document. The > Makefile to be used is in $(builddir)/../po_document instead, or the shorter > version: ../po_document. So the above rule really should become > > $(srcdir)/../po_document/'"$lingua.gmo"': > $(srcdir)/../po_document/'"$lingua.po"' > cd ../po_document/ && $(MAKE) $(AM_MAKEFLAGS) '"$lingua.gmo"' I think that the *.gmo files should be built in the srcdir, because that is where they are in a distribution archive. They are copied from po_document/ to under tp/LocaleData/ when 'make' is run. This is the old problem with generated files being or not being tracked in version control. The *.gmo files are not tracked at the moment. If they had been tracked, they would not have been out-of-date in your SVN checkout. I can think of two possible fixes: * Track the generated *.gmo files under po_document in SVN. * Remove the makefile rules in tp/Makefile.docstr (via the script you mentioned) in order not to regenerate the *.gmo files. They would have to be regenerated at some other time. > Or maybe it should just run a single sub-make in po_document from tp's > $(builddir) and be done with that, instead of one sub-make per out-of-date > .po file target. "make update-gmo" seems to be the commmand to do this.
