automake-patches
[Top][All Lists]
Advanced

[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: Mon, 28 Feb 2011 13:24:55 +0100
User-agent: KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; )

On Saturday 26 February 2011, Ralf Wildenhues wrote:
> * Stefano Lattarini wrote on Sat, Feb 26, 2011 at 02:54:09PM CET:
> > Fine with me.  This is the additional squash-in -- on the top of the old
> > one, since I had already commited that locally :-(
> 
> Don't worry, I do such junk commits all the time.  You could
>   git diff address@hidden
> 
> or some similar command, based on 'git reflog' output.
>
Thanks for the suggestion; I keep forgetting the usefulness of the
`reflog' command (or its very existence) ...

> > I will push in 72 hours if there are no further objections.
> 
> Feel free to go ahead.
> 
OK, attached is what I pushed.  Note that it is slightly different
from my last posted version, because also the call to aclocal can
fail with older libtools.  I should have tested better before
submitting the previous diff; sorry for the noise.

Thanks,
  Stefano
From d51e7b79713f909c235c9880f7f62c4b0c0910d0 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        |   64 ++++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 92 insertions(+), 2 deletions(-)
 create mode 100755 tests/ltinit.test

diff --git a/ChangeLog b/ChangeLog
index 8d03512..47bc9fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2011-02-26  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..b4eaad6
--- /dev/null
+++ b/tests/ltinit.test
@@ -0,0 +1,64 @@
+#!/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
+
+:
-- 
1.7.2.3


reply via email to

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