[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: bug#8104: automake suggests use of AC_PROG_LIBTOOL, this has been re
From: |
Stefano Lattarini |
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 |
User-agent: |
KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; ) |
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
From f61bfa70a40c5f29fa4fa9eb3ce7435f13aeb479 Mon Sep 17 00:00:00 2001
From: Stefano Lattarini <address@hidden>
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 <address@hidden>
+
+ 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 <address@hidden>
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
- Re: bug#8104: automake suggests use of AC_PROG_LIBTOOL, this has been replaced by LT_INIT,
Stefano Lattarini <=
- Re: bug#8104: automake suggests use of AC_PROG_LIBTOOL, this has been replaced by LT_INIT, Ralf Wildenhues, 2011/02/26
- Re: bug#8104: automake suggests use of AC_PROG_LIBTOOL, this has been replaced by LT_INIT, Stefano Lattarini, 2011/02/26
- Re: bug#8104: automake suggests use of AC_PROG_LIBTOOL, this has been replaced by LT_INIT, Ralf Wildenhues, 2011/02/26
- Re: bug#8104: automake suggests use of AC_PROG_LIBTOOL, this has been replaced by LT_INIT, Stefano Lattarini, 2011/02/26
- Re: bug#8104: automake suggests use of AC_PROG_LIBTOOL, this has been replaced by LT_INIT, Ralf Wildenhues, 2011/02/26
- Re: bug#8104: automake suggests use of AC_PROG_LIBTOOL, this has been replaced by LT_INIT, Ralf Hemmecke, 2011/02/26
- Re: bug#8104: automake suggests use of AC_PROG_LIBTOOL, this has been replaced by LT_INIT, Stefano Lattarini, 2011/02/28