libtool-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

more useful installcheck (was: HEAD: cross-compile test new testsuite)


From: Ralf Wildenhues
Subject: more useful installcheck (was: HEAD: cross-compile test new testsuite)
Date: Thu, 6 Oct 2005 17:41:08 +0200
User-agent: Mutt/1.5.11

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
> address@hidden

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]) )
 ])
 
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]