+2011-02-26 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ libtool: suggest LT_INIT if LTLIBRARIES primary is used
+ When the LTLIBRARIES primary was used, but $(LIBTOOL) wasn't
+ defined, automake suggested to add a call to AC_PROG_LIBTOOL
+ in configure.ac. But that macro is deprecated since Libtool
+ version 1.9b (2004-08-29), in favor of the newer LT_INIT. So
+ suggest the use of this latter macro instead.
+ * lib/Automake/Variable.pm (%_am_macro_for_var): Pair 'LIBTOOL'
+ with 'LT_INIT', not with 'AC_PROG_LIBTOOL'.
+ * libtool4.test: Adjust and extend. Also, add a call to macro
+ AC_PROG_CC in configure.in, to help ensuring that automake does
+ not fail for the wrong reasons.
+ * ltinit.test: New test, ensure that automake's libtool support
+ works with LT_INIT-based interface.
+ Thanks to Jack Kelly for the suggestion.
+
2011-02-20 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: tempdirs with restrictive permissions are cleaned correctly
EMACS => 'AM_PATH_LISPDIR',
GCJ => 'AM_PROG_GCJ',
LEX => 'AM_PROG_LEX',
- LIBTOOL => 'AC_PROG_LIBTOOL',
+ LIBTOOL => 'LT_INIT',
lispdir => 'AM_PATH_LISPDIR',
pkgpyexecdir => 'AM_PATH_PYTHON',
pkgpythondir => 'AM_PATH_PYTHON',
ltcond2.test \
ltconv.test \
ltdeps.test \
+ltinit.test \
ltinstloc.test \
ltlibobjs.test \
ltlibsrc.test \
ltcond2.test \
ltconv.test \
ltdeps.test \
+ltinit.test \
ltinstloc.test \
ltlibobjs.test \
ltlibsrc.test \
set -e
+cat >> configure.in <<'END'
+AC_PROG_CC
+END
+
cat > Makefile.am << 'END'
EXTRA_LTLIBRARIES = liblib.la
END
$ACLOCAL
AUTOMAKE_fails
-grep AC_PROG_LIBTOOL stderr
+grep '[Ll]ibtool library .*LIBTOOL.* undefined' stderr
+grep 'define .*LIBTOOL.* add .*LT_INIT' stderr
+
+:
--- /dev/null
+#!/bin/sh
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Test that libtool support works correctly when "newer" libtool
+# interface (with LT_INIT etc.) is used (this interface has been
+# present since libtool 1.9b, circa 2004).
+
+required='libtoolize'
+. ./defs || Exit 1
+
+set -e
+
+cat >>configure.in <<'END'
+AC_PROG_CC
+dnl Older libtool versions don't define LT_PREREQ :-(
+m4_ifdef([LT_PREREQ],
+ [LT_PREREQ([2.0])],
+ [m4_fatal([Libtool version too old], [63])])
+LT_INIT([dlopen])
+AC_OUTPUT
+END
+
+cat >Makefile.am <<'END'
+lib_LTLIBRARIES = libfoo.la
+END
+
+cat > libfoo.c <<'END'
+int foo (void)
+{
+ return 1;
+}
+END
+
+libtoolize
+# Skip if older libtool (pre-2.0) is used.
+{ $ACLOCAL && $AUTOCONF; } || {
+ if test $? -eq 63; then Exit 77; else Exit 1; fi
+}
+$EGREP 'LT_(INIT|PREREQ)' configure && Exit 1 # Sanity check.
+$AUTOMAKE -a
+
+cwd=`pwd`
+./configure --prefix="$cwd/inst" >stdout || { cat stdout; Exit 1; }
+cat stdout
+grep '^checking.*dlopen' stdout
+
+$MAKE
+$MAKE install
+$MAKE distcheck
+
+: