Hi Ralf, > When building this package from git, and in a VPATH build, some gperf > products will be output in the build tree.
Indeed. This situation was not tested, because "gnulib --create-testdir" creates the gperf output files in the source directory. > Note that in a VPATH build, > whether $@ points to the build or the source tree is dependent upon the > make implementation The INSTALL file recommends to use GNU make for this situation. The VPATH support in other 'make' brands is known to be insufficient or inappropriate. > Anyway, one solution is to stick '$(srcdir)/' before every reference of > those files. No, that would require the VPATH build to write those files into the source directory, which defeats the purpose of a VPATH build. > Another is to simply ensure they can be built in the build > tree if needed; done below. Thanks for the patch. I added another part, so that the libunistring build in the situation that you mentioned actually works, and pushed the combined patch: 2009-05-01 Ralf Wildenhues <ralf.wildenh...@gmx.de> Bruno Haible <br...@clisp.org> Make it possible for the first build to be a VPATH build. * modules/unicase/locale-language (configure.ac): Invoke AC_PROG_MKDIR_P. (Makefile.am): When invoking gperf, ensure the destination file's subdirectory exists also in the build tree. * modules/unicase/special-casing (configure.ac): Invoke AC_PROG_MKDIR_P. (Makefile.am): When invoking gperf, ensure the destination file's subdirectory exists also in the build tree. * modules/unictype/property-byname (configure.ac): Invoke AC_PROG_MKDIR_P. (Makefile.am): When invoking gperf, ensure the destination file's subdirectory exists also in the build tree. * modules/unictype/scripts (configure.ac): Invoke AC_PROG_MKDIR_P. (Makefile.am): When invoking gperf, ensure the destination file's subdirectory exists also in the build tree. * modules/uninorm/composition (configure.ac): Invoke AC_PROG_MKDIR_P. (Makefile.am): When invoking gperf, ensure the destination file's subdirectory exists also in the build tree. * lib/uninorm/composition.c: Include "uninorm/composition-table.h", not "composition-table.h". --- lib/uninorm/composition.c.orig 2009-05-01 23:34:28.000000000 +0200 +++ lib/uninorm/composition.c 2009-05-01 23:25:44.000000000 +0200 @@ -24,7 +24,7 @@ struct composition_rule { char codes[4]; unsigned short combined; }; -#include "composition-table.h" +#include "uninorm/composition-table.h" ucs4_t uc_composition (ucs4_t uc1, ucs4_t uc2) --- modules/unicase/locale-language.orig 2009-05-01 23:34:28.000000000 +0200 +++ modules/unicase/locale-language 2009-05-01 23:33:17.000000000 +0200 @@ -11,11 +11,13 @@ gperf configure.ac: +AC_PROG_MKDIR_P Makefile.am: lib_SOURCES += unicase/locale-language.c unicase/locale-languages.h: $(srcdir)/unicase/locale-languages.gperf + @MKDIR_P@ unicase $(GPERF) -m 10 $(srcdir)/unicase/locale-languages.gperf > $...@-t mv $...@-t $@ BUILT_SOURCES += unicase/locale-languages.h --- modules/unicase/special-casing.orig 2009-05-01 23:34:28.000000000 +0200 +++ modules/unicase/special-casing 2009-05-01 23:33:20.000000000 +0200 @@ -10,11 +10,13 @@ gperf configure.ac: +AC_PROG_MKDIR_P Makefile.am: lib_SOURCES += unicase/special-casing.c unicase/special-casing-table.h: $(srcdir)/unicase/special-casing-table.gperf + @MKDIR_P@ unicase $(GPERF) -m 10 $(srcdir)/unicase/special-casing-table.gperf > $...@-t mv $...@-t $@ BUILT_SOURCES += unicase/special-casing-table.h --- modules/unictype/property-byname.orig 2009-05-01 23:34:28.000000000 +0200 +++ modules/unictype/property-byname 2009-05-01 23:33:29.000000000 +0200 @@ -89,11 +89,13 @@ gperf configure.ac: +AC_PROG_MKDIR_P Makefile.am: lib_SOURCES += unictype/pr_byname.c unictype/pr_byname.h: unictype/pr_byname.gperf + @MKDIR_P@ unictype $(GPERF) -m 10 $(srcdir)/unictype/pr_byname.gperf > $...@-t mv $...@-t $@ BUILT_SOURCES += unictype/pr_byname.h --- modules/unictype/scripts.orig 2009-05-01 23:34:28.000000000 +0200 +++ modules/unictype/scripts 2009-05-01 23:33:34.000000000 +0200 @@ -11,11 +11,13 @@ gperf configure.ac: +AC_PROG_MKDIR_P Makefile.am: lib_SOURCES += unictype/scripts.c unictype/scripts_byname.h: unictype/scripts_byname.gperf + @MKDIR_P@ unictype $(GPERF) -m 10 $(srcdir)/unictype/scripts_byname.gperf > $...@-t mv $...@-t $@ BUILT_SOURCES += unictype/scripts_byname.h --- modules/uninorm/composition.orig 2009-05-01 23:34:28.000000000 +0200 +++ modules/uninorm/composition 2009-05-01 23:33:38.000000000 +0200 @@ -10,11 +10,13 @@ gperf configure.ac: +AC_PROG_MKDIR_P Makefile.am: lib_SOURCES += uninorm/composition.c uninorm/composition-table.h: $(srcdir)/uninorm/composition-table.gperf + @MKDIR_P@ uninorm $(GPERF) -m 1 $(srcdir)/uninorm/composition-table.gperf > $...@-t mv $...@-t $@ BUILT_SOURCES += uninorm/composition-table.h