Package: automake;
Reported by: Jack Kelly <jack <at> jackkelly.name>
Date: Thu, 24 Feb 2011 02:02:02 UTC
Severity: normal
Tags: patch
Done: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Bug is archived. No further changes may be made.
Message #8 received at 8104 <at> debbugs.gnu.org (full text, mbox):
From: Stefano Lattarini <stefano.lattarini <at> gmail.com> To: automake-patches <at> gnu.org Cc: 8104 <at> debbugs.gnu.org, Jack Kelly <jack <at> jackkelly.name> Subject: Re: bug#8104: automake suggests use of AC_PROG_LIBTOOL, this has been replaced by LT_INIT Date: Thu, 24 Feb 2011 10:45:11 +0100
[Message part 1 (text/plain, inline)]
On Thursday 24 February 2011, Jack Kelly wrote: > Version: 1.11.1 (ubuntu 10.10). I have inspected the most recent > master and it appears to also have this bug. > > configure.ac: > AC_INIT([a], [b], [c]) > AM_INIT_AUTOMAKE([foreign]) > dnl no LT_INIT -- on purpose > AC_PROG_CC > AC_CONFIG_FILES([Makefile]) > AC_OUTPUT > > Makefile.am: > lib_LTLIBRARIES = libfoo.la > > Run autoreconf -i: > $ autoreconf -i > Makefile.am:1: Libtool library used but `LIBTOOL' is undefined > Makefile.am:1: The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL' > Makefile.am:1: to `configure.ac' and run `aclocal' and `autoconf' again. > Makefile.am:1: If `AC_PROG_LIBTOOL' is in `configure.ac', make sure > Makefile.am:1: its definition is in aclocal's search path. > autoreconf: automake failed with exit status: 1 > > See the libtool manual ( > http://www.gnu.org/software/libtool/manual/html_node/LT_005fINIT.html > ): > AC_PROG_LIBTOOL and AM_PROG_LIBTOOL are deprecated names for older > versions of this macro; autoupdate will upgrade your configure.ac > files. > > It appears that automake's message is out of date. > I agree with Jack that advertising the use of LT_INIT would be better, since, according to Libtool NEWS file, that has obsoleted AC_PROG_LIBTOOL since version 1.9b (2004-08-29). What about the attached patch (for maint)? Regards, Stefano
[0001-libtool-suggest-LT_INIT-if-LTLIBRARIES-primary-is-us.patch (text/x-patch, inline)]
From f61bfa70a40c5f29fa4fa9eb3ce7435f13aeb479 Mon Sep 17 00:00:00 2001 From: Stefano Lattarini <stefano.lattarini <at> gmail.com> Date: Thu, 24 Feb 2011 10:21:19 +0100 Subject: [PATCH] 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. --- ChangeLog | 17 +++++++++++++ lib/Automake/Variable.pm | 2 +- tests/Makefile.am | 1 + tests/Makefile.in | 1 + tests/libtool4.test | 9 ++++++- tests/ltinit.test | 61 ++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 89 insertions(+), 2 deletions(-) create mode 100755 tests/ltinit.test diff --git a/ChangeLog b/ChangeLog index 8d03512..acd71bb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2011-02-24 Stefano Lattarini <stefano.lattarini <at> 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 <at> gmail.com> tests: tempdirs with restrictive permissions are cleaned correctly diff --git a/lib/Automake/Variable.pm b/lib/Automake/Variable.pm index cb9d182..686847d 100644 --- a/lib/Automake/Variable.pm +++ b/lib/Automake/Variable.pm @@ -162,7 +162,7 @@ my %_am_macro_for_var = 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', diff --git a/tests/Makefile.am b/tests/Makefile.am index 047bc7b..cd564fa 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -481,6 +481,7 @@ ltcond.test \ ltcond2.test \ ltconv.test \ ltdeps.test \ +ltinit.test \ ltinstloc.test \ ltlibobjs.test \ ltlibsrc.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index fe6238b..f56ff21 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -751,6 +751,7 @@ ltcond.test \ ltcond2.test \ ltconv.test \ ltdeps.test \ +ltinit.test \ ltinstloc.test \ ltlibobjs.test \ ltlibsrc.test \ diff --git a/tests/libtool4.test b/tests/libtool4.test index bcc9b0f..9f6a730 100755 --- a/tests/libtool4.test +++ b/tests/libtool4.test @@ -20,10 +20,17 @@ 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 + +: diff --git a/tests/ltinit.test b/tests/ltinit.test new file mode 100755 index 0000000..d646bc9 --- /dev/null +++ b/tests/ltinit.test @@ -0,0 +1,61 @@ +#!/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 +LT_PREREQ([2.0]) +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 +$ACLOCAL + +$AUTOCONF || { if $? -eq 63; then Exit 77; else Exit 1; fi; } +$EGREP '^LT_(INIT|PREREQ)' configure && Exit 77 + +$AUTOMAKE -a + +cwd=`pwd` +./configure --prefix="$cwd/inst" >stdout || { cat stdout; Exit 1; } +cat stdout +grep '^checking.*dlopen' stdout + +$MAKE +$MAKE install +$MAKE distcheck + +: -- 1.7.2.3
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.