Hi Gary, * Gary V. Vaughan wrote on Wed, Oct 05, 2005 at 03:37:17PM CEST: > Gary V. Vaughan wrote: > >@@ -0,0 +1 @@ > >+libtoolize: $pkgltdldir not a directory: > >`/Users/gary/devel/savannah/libtool/+inst/share/libtool' > >--- expout 2005-10-05 14:24:22.000000000 +0100 > >+++ > > Looks like an automake bug. If I change $(abs_top_srcdir) in Makefile.am > to @abs_top_srcdir@, then everything works as expected. > > If you agree with my diagnosis, please commit a fix, and file a bug on > [EMAIL PROTECTED]
Well, Alexandre is aware of the issue, I believe, as this has been discussed before on bug-automake: http://sourceware.org/ml/bug-automake/2005/msg00572.html In order to be able to fix another couple of items, I propose to go back to my INSTALLCHECK_ENVIRONMENT, and use the workaround described in the thread above, to fix this: - LIBTOOL and LIBTOOLIZE point to the installed scripts during `make installcheck'. - fix installcheck (mostly) for transformed program names. - try to unset both before invoking `make -e', else we won't test the libtool scripts generated by the tests. Strictly speaking, this is orthogonal, as it has been an issue before. It does break down on shells without `unset', none of which are to be found on anything Libtool is reasonably interested in (and even then, we don't fail, we only test less thoroughly). OK to apply? I believe following the `make -e' approach is less error- prone than remembering to set all variables for sub-makes in the Makefile. Cheers, Ralf * configure.ac (abs_top_builddir, abs_top_srcdir): always substitute. * Makefile.am (BUILDCHECK_ENVIRONMENT) (INSTALLCHECK_ENVIRONMENT): New macros. Set _lt_pkgdatadir, LIBTOOL, LIBTOOLIZE accordingly, by using above, and program_transform_name. * tests/testsuite.at (TESTS_PREPARE): Do not set them anymore. Set $unset. (LT_AT_MAKE): Use to unset LIBTOOL and LIBTOOLIZE. Index: Makefile.am =================================================================== RCS file: /cvsroot/libtool/libtool/Makefile.am,v retrieving revision 1.171 diff -u -r1.171 Makefile.am --- Makefile.am 5 Oct 2005 15:02:54 -0000 1.171 +++ Makefile.am 6 Oct 2005 15:13:35 -0000 @@ -493,6 +493,14 @@ FC="$(FC)" FCFLAGS="$(FCFLAGS)" \ GCJ="$(GCJ)" GCJFLAGS="$(GCJFLAGS)" +BUILDCHECK_ENVIRONMENT = _lt_pkgdatadir="$(abs_top_srcdir)" \ + LIBTOOLIZE="$(abs_top_builddir)/libtoolize" \ + LIBTOOL="$(abs_top_builddir)/libtool" + +INSTALLCHECK_ENVIRONMENT = \ + LIBTOOLIZE="$(bindir)/`echo libtoolize | sed '$(program_transform_name)'`" \ + LIBTOOL="$(bindir)/`echo libtool | sed '$(program_transform_name)'`" + check-recursive: $(srcdir)/$(TESTSUITE) # Use `$(srcdir)' for the benefit of non-GNU makes: this is @@ -521,12 +529,12 @@ # Hook the test suite into the check rule check-local: tests/atconfig $(srcdir)/$(TESTSUITE) $(CD_TESTDIR); \ - $(TESTS_ENVIRONMENT) _lt_pkgdatadir="$$abs_srcdir" $(SHELL) $$abs_srcdir/$(TESTSUITE) $(TESTSUITE_FLAGS) + $(TESTS_ENVIRONMENT) $(BUILDCHECK_ENVIRONMENT) $(SHELL) $$abs_srcdir/$(TESTSUITE) $(TESTSUITE_FLAGS) # Run the test suite on the *installed* tree. installcheck-local: $(CD_TESTDIR); \ - $(TESTS_ENVIRONMENT) $(SHELL) $$abs_srcdir/$(TESTSUITE) $(TESTSUITE_FLAGS) AUTOTEST_PATH=$(exec_prefix)/bin + $(TESTS_ENVIRONMENT) $(INSTALLCHECK_ENVIRONMENT) $(SHELL) $$abs_srcdir/$(TESTSUITE) $(TESTSUITE_FLAGS) AUTOTEST_PATH=$(exec_prefix)/bin # We need to remove any file droppings left behind by testsuite clean-local: clean-local-legacy Index: configure.ac =================================================================== RCS file: /cvsroot/libtool/libtool/configure.ac,v retrieving revision 1.73 diff -u -r1.73 configure.ac --- configure.ac 26 Sep 2005 12:04:46 -0000 1.73 +++ configure.ac 6 Oct 2005 15:13:35 -0000 @@ -134,6 +134,9 @@ ## Libtool specific configuration. ## ## ------------------------------- ## +dnl automake-1.9 does not substitute these two by default +AC_SUBST([abs_top_srcdir]) +AC_SUBST([abs_top_builddir]) AC_SUBST([aclocaldir], ["\${datadir}/aclocal"]) AC_SUBST([pkgdatadir], ["\${datadir}/$PACKAGE"]) Index: tests/testsuite.at =================================================================== RCS file: /cvsroot/libtool/libtool/tests/testsuite.at,v retrieving revision 1.24 diff -u -r1.24 testsuite.at --- tests/testsuite.at 5 Oct 2005 15:02:54 -0000 1.24 +++ tests/testsuite.at 6 Oct 2005 15:13:35 -0000 @@ -19,14 +19,12 @@ # 02110-1301, USA. m4_divert_push([PREPARE_TESTS])dnl -: ${LIBTOOLIZE="${abs_top_builddir}/libtoolize"} -: ${LIBTOOL="${abs_top_builddir}/libtool"} : ${ACLOCAL=aclocal} : ${AUTOHEADER=autoheader} : ${AUTOCONF=autoconf} : ${AUTOMAKE=automake} : ${AUTORECONF=autoreconf} -export LIBTOOLIZE LIBTOOL ACLOCAL AUTOHEADER AUTOCONF AUTOMAKE AUTORECONF +export ACLOCAL AUTOHEADER AUTOCONF AUTOMAKE AUTORECONF macrodir="$abs_top_srcdir/libltdl/m4" eval `$LIBTOOL --config | grep ^EGREP=` eval `$LIBTOOL --config | $EGREP '^(host|host_os|host_alias|build|ECHO)='` @@ -34,6 +32,11 @@ if test -n "$host_alias"; then configure_options="--host $host_alias" fi +if (unset FOO) >/dev/null 2>&1; then + unset=unset +else + unset=false +fi m4_divert_pop([PREPARE_TESTS])dnl @@ -83,7 +86,8 @@ # LT_AT_MAKE([TGTS], [VARS]) # -------------------------- m4_define([LT_AT_MAKE], -[AT_CHECK([$2 $MAKE -e $1], [0], [ignore], [ignore]) +[( $unset LIBTOOL LIBTOOLIZE + AT_CHECK([$2 $MAKE -e $1], [0], [ignore], [ignore]) ) ])
