The first three subproject.at tests fail within `make distcheck': - during the `check' (not installcheck!) phase within distcheck, the source tree is readonly, - libtoolize either symlinks or copies with kept permissions the ltdl files (use of tar!), - `autoreconf --force', seeing the sub/ltdl subproject, enters the sub/ltdl directory, in there, aclocal tries to write sub/ltdl/aclocal.m4 (without removing it first). If we remove the `--force', still autoconf fails, because it tries to write to `sub/ltdl/configure'.
I'm not quite sure about the best way to handle this. We could replace autoreconf with calling aclocal, automake, and autoconf by hand to prevent recursing. Proposed patch below ok? Note that the config.h.in workaround is necessary only until Gary's fix to this end is applied to ltdl.m4. Maybe autoreconf should have an option _not_ to enter subprojects? Note that this issue is different from the one Charles reported; there are no readonly trees involved in that one. We'r also reminded that symlinked ltdl/ is a bad idea, but this particular issue is not limited to symlinking. Cheers, Ralf * tests/testsuite.at (LT_AT_AUTOMAKE): New macro. * tests/subproject.at: Use it. Do not call `autoreconf' in tests, since it will try to reconfigure `sub/ltdl', which breaks `make check' during `distcheck' because of a readonly source tree. Index: tests/testsuite.at =================================================================== RCS file: /cvsroot/libtool/libtool/tests/testsuite.at,v retrieving revision 1.25 diff -u -r1.25 testsuite.at --- tests/testsuite.at 7 Oct 2005 08:52:10 -0000 1.25 +++ tests/testsuite.at 11 Oct 2005 16:03:16 -0000 @@ -69,6 +69,13 @@ ]) +# LT_AT_AUTOMAKE([OPTIONS]) +# -------------------------- +m4_define([LT_AT_AUTOMAKE], +[AT_CHECK([$AUTOMAKE $1], [0], [ignore], [ignore]) +]) + + # LT_AT_AUTORECONF([OPTIONS]) # -------------------------- m4_define([LT_AT_AUTORECONF], Index: tests/subproject.at =================================================================== RCS file: /cvsroot/libtool/libtool/tests/subproject.at,v retrieving revision 1.2 diff -u -r1.2 subproject.at --- tests/subproject.at 5 Oct 2005 16:45:09 -0000 1.2 +++ tests/subproject.at 11 Oct 2005 16:03:16 -0000 @@ -51,8 +51,11 @@ AT_SETUP([compiling softlinked libltdl]) _LTDL_SETUP +touch config.h.in LT_AT_LIBTOOLIZE([--ltdl]) -LT_AT_AUTORECONF([--force --verbose --install]) +LT_AT_ACLOCAL([-I sub/ltdl/m4]) +LT_AT_AUTOMAKE([--add-missing --copy]) +LT_AT_AUTOCONF LT_AT_CONFIGURE LT_AT_MAKE @@ -68,8 +71,11 @@ AT_SETUP([compiling copied libltdl]) _LTDL_SETUP +touch config.h.in LT_AT_LIBTOOLIZE([--copy --ltdl]) -LT_AT_AUTORECONF([--force --verbose --install]) +LT_AT_ACLOCAL([-I sub/ltdl/m4]) +LT_AT_AUTOMAKE([--add-missing --copy]) +LT_AT_AUTOCONF LT_AT_CONFIGURE LT_AT_MAKE @@ -87,8 +93,11 @@ prefix=`pwd`/_inst _LTDL_SETUP +touch config.h.in LT_AT_LIBTOOLIZE([--copy --ltdl]) -LT_AT_AUTORECONF([--force --verbose --install]) +LT_AT_ACLOCAL([-I sub/ltdl/m4]) +LT_AT_AUTOMAKE([--add-missing --copy]) +LT_AT_AUTOCONF LT_AT_CONFIGURE([--enable-ltdl-install --prefix=$prefix]) LT_AT_MAKE([all install])