Separate-build-directory "make check" fails in po/
jralls at ceridwen.us
Sat Feb 6 10:23:29 EST 2016
> On Feb 5, 2016, at 9:04 PM, Eric Siegerman <pub08-gnc at davor.org> wrote:
> - GnuCash 2.6.11 (and many older versions -- basically as far back as
> I can build with my current toolchain)
> - Ubuntu 12.04
> - Ubuntu's intltool 0.50.2-2 package
> I'm getting a "make check" failure when I try to build GnuCash in a
> separate build directory -- but only if the build directory is within
> the source tree (e.g. $HOME/src/gnucash/build). It dies in po/,
> complaining about build-directory files that aren't listed in
> POTFILES.skip. (If the build directory is *not* under the source tree
> (e.g. $HOME/src/gnucash/../build, "make check" passes.)
> N.B.: It's only "make check" that fails; "make" and "make install" are
> The underlying issue seems to be an intltool bug:
> intltool doesn't know to ignore the source(ish) files that get created
> in the build tree, even if the corresponding source-tree file is listed
> in POTFILES.skip.
> Is this a known problem? It's mighty suspicious that it (a) is
> triggered by the very practice that's recommended on the wiki, (b) is
> something that the selftests catch, but even so, (c) seems to have
> been around for a very long time. Makes me wonder whether I'm being
> especially dumb...
> I was going to update the wiki to recommend *against* this specific
> setup (instead of *for* it :-/ ), but wanted to check with others first
> what's known about the situation.
Yup, it's a known problem. Another parallel known problem with building out-of-source is that the paths in the potfile include the relative path between builddir and srcdir.
So if you want to update the wiki say that the recommendation for development builds where you want to run make check is to use a builddir outside of the srcdir, but if you're building for release you need to build inside the srcdir and run make distcheck instead of make check.
I wonder if we can work around this by explicitly listing the subdirs in srcdir that should be checked for translatable strings.
More information about the gnucash-devel