libtool-patches
[Top][All Lists]
Advanced

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

FYI: 333-gary-refactor-LTDL_INIT.patch


From: Gary V. Vaughan
Subject: FYI: 333-gary-refactor-LTDL_INIT.patch
Date: Mon, 7 Jan 2008 00:35:30 +0800 (PHT)
User-agent: mailnotify/0.9

Using the 72 day rule... Applied to HEAD. ;-)  I bumped the copyright
years where necessary compared to the original patch while I was there
too.

I'm going to try and roll an alpha release for wider testing over the
next day or two.

  Index: ChangeLog
  from  Gary V. Vaughan  <address@hidden>
  
        Move libltdl build mode options from LT_CONFIG_LTDL_DIR to
        LTDL_INIT.  Accept (optional) new 'convenience' and 'installable'
        options in lieu of LTDL_CONVENIENCE and LTDL_INSTALL macros. And
        also, implement --with-included-ltdl, --with-ltdl-lib and
        --with-ltdl-include configure-time options:
  
        * libltdl/m4/ltoptions.m4: Associate existing option settings with
        LT_INIT.
        (LT_OPTION_DEFINE): Associate options 'nonrecursive', 'recursive',
        'subproject', 'installable' and 'convenience' with LTDL_INIT.
        (_LT_MANGLE_OPTION, _LT_SET_OPTION, _LT_IF_OPTION)
        (_LT_UNLESS_OPTIONS, _LT_SET_OPTIONS): Add MACRO-NAME argument to
        support options to named macros instead of hardcoding only LT_INIT
        options.
        * libltdl/m4/ltdl.m4 (_LTDL_CONVENIENCE): Factor common code from
        LTDL_CONVENIENCE and LTDL_INIT([convenience]).
        (_LTDL_INSTALLABLE): Factor out common code from LTDL_INSTALLABLE
        and LTDL_INIT([installable]).
        (_LTDL_SETUP): Renamed from LTDL_INIT.  Support new configure-time
        options: --with-included-ltdl, --with-ltdl-lib,
        --with-ltdl-include.
        (LTDL_CONVENIENCE, LTDL_INSTALLABLE): Adjust.
        (LT_WITH_LTDL): Removed.
        (LTDL_INIT): Parse caller options.
        * libltdl/m4/libtool.m4 (LT_INIT): Declare that this macro must be
        expanded before LTDL_INIT, and be sure to parse caller options.
        * configure.ac: Call directly into internal _LTDL_SETUP macro.
        * libtoolize.m4sh (func_scan_files): Ltdl mode argument moved from
        LT_CONFIG_LTDL_DIR to LT_INIT.
        * tests/nonrecursive.at, tests/recursive.at: Use new interfaces.
        * tests/configure-iface.at: Test it.
        * Makefile.am (TESTSUITE_AT): Add configure-iface.at.
        * doc/libtool.texi (Distributing libltdl): Document improved.
        LTDL_INIT interfaces.
        * NEWS: Updated.
  
  Index: Makefile.am
  ===================================================================
  RCS file: /sources/libtool/libtool/Makefile.am,v
  retrieving revision 1.227
  diff -u -u -r1.227 Makefile.am
  --- Makefile.am 2 Jan 2008 18:52:08 -0000 1.227
  +++ Makefile.am 6 Jan 2008 16:32:05 -0000
  @@ -458,6 +458,7 @@
                  tests/ctor.at \
                  tests/early-libtool.at \
                  tests/deplibs-ident.at \
  +               tests/configure-iface.at \
                  tests/stresstest.at \
                  tests/cmdline_wrap.at
   
  Index: NEWS
  ===================================================================
  RCS file: /sources/libtool/libtool/NEWS,v
  retrieving revision 1.209
  diff -u -u -r1.209 NEWS
  --- NEWS 2 Jan 2008 18:52:08 -0000 1.209
  +++ NEWS 6 Jan 2008 16:32:05 -0000
  @@ -20,7 +20,9 @@
       break if a different shell is used to execute the libtool script
       than the one it was configured for.
     - The macros AC_ENABLE_SHARED, AC_DISABLE_SHARED, AC_ENABLE_STATIC, and
  -    AC_DISABLE_STATIC have been un-deprecated after deprecation in 1.9b.
  +    AC_DISABLE_STATIC have been un-deprecated after deprecation in
  +    1.9b.
  +  - The macro LT_WITH_LTDL has been renamed to LTDL_INIT.
     - Fixed a branch-1-5/HEAD regression to only link uninstalled libraries
       statically with `-static'.  In order to compensate for this, there
       is a new link flag `-static-libtool-libs' to provide the previous
  @@ -31,6 +33,14 @@
     - Fix installation of libltdl so that it does not need Autoconf and
       Automake installed, in order to be usable in another package.  This
       lifts the restrictions introduced in 1.9b.
  +  - Default convenience or installable libltdl builds can optionally
  +    be declared using new `convenience' or `installable' options to
  +    LTDL_INIT macro (as an alternative to individual LTDL_CONVENIENCE
  +    or LTDL_INSTALLABLE invocations).
  +  - New configure-time options to allow libltdl parent project builder
  +    to choose between installed and shipped libltdl, when invoking
  +    LTDL_INIT: --with-included-ltdl, --with-ltdl-include,
  +    --with-ltdl-lib.
     - New LT_CONFIG_LTDL_DIR macro to specify a different directory name
       for a convenience libltdl.
     - libtoolize has been completely overhauled.
  @@ -40,6 +50,8 @@
       libtoolize.  The new recursive and non-recursive build modes for
       libltdl don't require a subconfigure any more.
       The Libtool package itself builds libltdl nonrecursively.
  +  - The 'nonrecursive', 'recursive' and 'subproject' libltdl build
  +    modes are given as LTDL_INIT options.
     - New multi-module-loader safe libltdl handle iteration APIs:
       lt_dlhandle_iterate, lt_dlhandle_fetch, lt_dlhandle_map.
     - New lt_dlinterface_register to maintain separation of concerns
  Index: configure.ac
  ===================================================================
  RCS file: /sources/libtool/libtool/configure.ac,v
  retrieving revision 1.78
  diff -u -u -r1.78 configure.ac
  --- configure.ac 26 Mar 2007 20:18:43 -0000 1.78
  +++ configure.ac 6 Jan 2008 16:32:05 -0000
  @@ -1,6 +1,6 @@
   # Process this file with autoconf to create configure. -*- autoconf -*-
   
  -#   Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
  +#   Copyright (C) 2001, 2004, 2005, 2008 Free Software Foundation, Inc.
   #   Written by Gary V. Vaughan, 2001
   #
   #   This file is part of GNU Libtool.
  @@ -181,7 +181,7 @@
   ## Libtool initialisation. ##
   ## ----------------------- ##
   LT_INIT([dlopen win32-dll])
  -LTDL_INIT([libltdl])
  +_LTDL_SETUP
   
   # Enable all the language support we can
   LT_LANG(C++)
  Index: libtoolize.m4sh
  ===================================================================
  RCS file: /sources/libtool/libtool/libtoolize.m4sh,v
  retrieving revision 1.63
  diff -u -u -r1.63 libtoolize.m4sh
  --- libtoolize.m4sh 2 Jan 2008 18:52:08 -0000 1.63
  +++ libtoolize.m4sh 6 Jan 2008 16:32:07 -0000
  @@ -415,21 +415,20 @@
           }
        /_LT_CONFIG_LTDL_DIR(/d
        /LT_CONFIG_LTDL_DIR(/ {
  -         s/^.*LT_CONFIG_LTDL_DIR([[   ]*\([^]),]*\)[^,]*/ac_ltdldir=\1%%/
  -         s/%%[[,     ]*\([^])]*\).*$/ ac_ltdl_mode=\1%%/
  -         s/%%.*$//
  +         s,^.*LT_CONFIG_LTDL_DIR([[   ]*\([^])]*\).*$,ac_ltdldir=\1,
            p
        }
        /A[CM]_PROG_LIBTOOL/ {
            s,^.*$,seen_libtool=:,
            p
        }
  -     /LT_INIT/            {
  +     /LT_INIT/                {
            s,^.*$,seen_libtool=:,
            p
        }
        /LTDL_INIT/          {
  -         s,^.*$,seen_ltdl=:,
  +         s,^.*LTDL_INIT([[   ]*\([^])]*\).*$,ltdl_options="\1",
  +         s,^.*LTDL_INIT[     ]*$,seen_ltdl=:,
            p
        }
        /LT_WITH_LTDL/       {
  @@ -456,7 +455,7 @@
   
       # If $configure_ac contains AC_CONFIG_LTDL_DIR, check that its
       # arguments were not given in terms of a shell variable!
  -    case "$ac_ltdldir$ac_ltdl_mode" in
  +    case "$ac_ltdldir" in
         *\$*)
           func_fatal_error "can not handle variables in LT_CONFIG_LTDL_DIR"
           ;;
  @@ -481,9 +480,26 @@
       # Validate ltdl_mode. #
       # ------------------- #
   
  -    test -n "$ac_ltdl_mode" && seen_ltdl=:
  +    test -n "$ltdl_options" && seen_ltdl=:
   
  -    # If neither --ltdl nor LT_CONFIG_LTDL_DIR are specified, default to
  +    # If $configure_ac contains LTDL_INIT, check that its
  +    # arguments were not given in terms of a shell variable!
  +    case "$ltdl_options" in
  +      *\$*)
  +        func_fatal_error "can not handle variables in LTDL_INIT"
  +        ;;
  +    esac
  +
  +    # Extract mode name from ltdl_options
  +    # FIXME: Diagnose multiple conflicting modes in ltdl_options
  +    ac_ltdl_mode=
  +    case " $ltdl_options " in
  +      *" nonrecursive "*)  ac_ltdl_mode=nonrecursive ;;
  +      *" recursive "*)     ac_ltdl_mode=recursive    ;;
  +      *" subproject "*)    ac_ltdl_mode=subproject   ;;
  +    esac
  +
  +    # If neither --ltdl nor an LTDL_INIT mode are specified, default to
       # `subproject'.  If both are specified, they must be the same.  
Otherwise,
       # take the one that is given!
       case x$ac_ltdl_mode,x$ltdl_mode in
  @@ -492,11 +508,10 @@
         x,x*)  ltdl_mode=$ltdl_mode    ;;
         *)
           test x"$ac_ltdl_mode" = x"$ltdl_mode" || \
  -         func_fatal_error "--$ltdl_mode does not match 
LT_CONFIG_LTDL_DIR($ac_ltdldir, $ac_ltdl_mode)"
  +         func_fatal_error "--$ltdl_mode does not match 
LTDL_INIT($ac_ltdl_mode)"
        ;;
       esac
   
  -
       # ---------------- #
       # Validate auxdir. #
       # ---------------- #
  Index: doc/libtool.texi
  ===================================================================
  RCS file: /sources/libtool/libtool/doc/libtool.texi,v
  retrieving revision 1.233
  diff -u -u -r1.233 libtool.texi
  --- doc/libtool.texi 30 Nov 2007 04:18:40 -0000 1.233
  +++ doc/libtool.texi 6 Jan 2008 16:32:10 -0000
  @@ -24,7 +24,7 @@
   @ifnottex
   This file documents GNU Libtool @value{VERSION}
   
  -Copyright (C) 1996-2007 Free Software Foundation, Inc.
  +Copyright (C) 1996-2008 Free Software Foundation, Inc.
   
   Permission is granted to copy, distribute and/or modify this document
   under the terms of the GNU Free Documentation License, Version 1.2
  @@ -51,7 +51,7 @@
   
   @page
   @vskip 0pt plus 1filll
  -Copyright @copyright{} 2007 Free Software Foundation, Inc.
  +Copyright @copyright{} 2008 Free Software Foundation, Inc.
   
   Permission is granted to copy, distribute and/or modify this document
   under the terms of the @sc{gnu} Free Documentation License, Version 1.2
  @@ -1882,7 +1882,7 @@
   @end example
   @end defmac
   
  address@hidden LT_INIT
  address@hidden LT_INIT (@var{OPTIONS})
   @defmacx AC_PROG_LIBTOOL
   @defmacx AM_PROG_LIBTOOL
   Add support for the @option{--enable-shared} and @option{--disable-shared}
  @@ -1891,7 +1891,7 @@
   @file{Makefile.in}.  Automake does this automatically, but Autoconf
   users should set it to the relative path to the top of your build
   directory (@file{../..}, for example).}  @code{AC_PROG_LIBTOOL} and
  address@hidden were names for older versions of this macro;
  address@hidden are deprecated names for older versions of this macro;
   @code{autoupdate} will upgrade your @file{configure.ac} files.
   
   By default, this macro turns on shared libraries if they are available,
  @@ -3867,7 +3867,7 @@
   dlpreopen the module on platforms that do not support dlopening.  If
   the module depends on any other libraries, make sure you specify them
   either when you link the module or when you link programs that dlopen it.
  -If you want to disable @pxref{Versioning} for a specific module
  +If you want to disable versioning (@pxref{Versioning}) for a specific module
   you should link it with the @option{-avoid-version} switch.
   Note that libtool modules don't need to have a "lib" prefix.
   However, Automake 1.4 or higher is required to build such modules.
  @@ -4359,26 +4359,26 @@
   Even though libltdl is installed together with libtool, you may wish
   to include libltdl in the distribution of your package, for the
   convenience of users of your package that don't have libtool or
  -libltdl installed.  In this case, you must decide whether to manually
  -add the @code{ltdl} objects to your package, or else which flavor of
  -libltdl you want to use: a convenience library or an installable
  -libtool library.
  +libltdl installed, or if you are using features of a very new version
  +of libltdl that you don't expect your users to have yet.  In such
  +cases, you must decide which flavor of libltdl you want to use: a
  +convenience library or an installable libtool library.
   
   The most simplistic way to add @code{libltdl} to your package is to
  -copy all the @file{libltdl} source files, to a subdirectory within
  +copy all the @file{libltdl} source files to a subdirectory within
   your package and to build and link them along with the rest of your
   sources.  To help you do this, the m4 macros for Autoconf are
   available in @file{ltdl.m4}.  You must ensure that they are available
   in @file{aclocal.m4} before you run address@hidden@c
   @c
   We used to recommend adding the contents of @file{ltdl.m4} to
  address@hidden, but with modern Automake (1.8 or newer) and this
  -release of libltdl that is not only unnecessary but makes it easy to
  -forget to upgrade @file{acinclude.m4} if you move to a different
  -release of libltdl.
  address@hidden, but with @command{aclocal} from a modern
  +Automake (1.8 or newer) and this release of libltdl that is not only
  +unnecessary but makes it easy to forget to upgrade @file{acinclude.m4}
  +if you move to a different release of libltdl.
   @c
   }.  Having made the macros available, you must add a call to the
  address@hidden macro to your package's @file{configure.ac} to
  address@hidden macro to your package's @file{configure.ac} to
   perform the configure time checks required to build the library
   correctly.  Unfortunately, this method has problems if you then try to
   link the package binaries with an installed libltdl, or a library that
  @@ -4388,21 +4388,91 @@
   is bad.  Ensuring that only one copy of the libltdl sources are linked
   into any program is left as an exercise for the reader.
   
  address@hidden LT_CONFIG_LTDL_DIR (@var{DIRECTORY}. @var{LTDL-MODE})
  address@hidden LT_CONFIG_LTDL_DIR (@var{DIRECTORY})
   Declare @var{DIRECTORY} to be the location of the @code{libltdl}
   source files, for @command{libtoolize --ltdl} to place
   them. @xref{Invoking libtoolize}, for more details.  Provided that you
  -add an appropriate @code{LT_CONFIG_LTDL} call in your
  +add an appropriate @code{LT_CONFIG_LTDL_DIR} call in your
   @file{configure.ac} before calling @command{libtoolize}, the
  -appropriate @code{libltdl} files will be installed automatically without
  -manually specifying the mode to @command{libtoolize} explicitly.
  +appropriate @code{libltdl} files will be installed automatically.
  address@hidden defmac
  +
  address@hidden LTDL_INIT (@var{OPTIONS})
  address@hidden LT_WITH_LTDL
  address@hidden AC_WITH_LTDL
  address@hidden and @code{LT_WITH_LTDL} are deprecated names for
  +older versions of this macro; @command{autoupdate} will update your
  address@hidden file.
  +
  +This macro adds the following options to the @command{configure}
  +script:
  +
  address@hidden @option
  address@hidden --with-ltdl-include @var{INSTALLED-LTDL-HEADER-DIR}
  +The @code{LTDL_INIT} macro will look in the standard header file
  +locations to find the installed @code{libltdl} headers.  If
  address@hidden can't find them by itself, the person who builds
  +your package can use this option to tell @command{configure} where
  +the installed @code{libltdl} headers are.
  +
  address@hidden --with-ltdl-lib @var{INSTALLED-LTDL-LIBRARY-DIR}
  +Similarly, the person building your package can use this option to
  +help @command{configure} find the installed @file{libltdl.la}.
  +
  address@hidden --with-included-ltdl
  +If there is no installed @code{libltdl}, or in any case if the
  +person building your package would rather use the @code{libltdl}
  +sources shipped with the package in the subdirectory named by
  address@hidden, they should pass this option to
  address@hidden
  address@hidden table
  +
  +If the @option{--with-included-ltdl} is not passed at
  +configure time, and an installed @code{libltdl} is not
  address@hidden@c
  address@hidden
  +Even if libltdl is installed, @samp{LTDL_INIT} may fail
  +to detect it if libltdl depends on symbols provided by libraries
  +other than the C library.
  address@hidden
  +}, then @command{configure} will exit immediately with an error that
  +asks the user to either specify the location of an installed
  address@hidden using the @option{--with-ltdl-include} and
  address@hidden options, or to build with the
  address@hidden sources shipped with the package by passing
  address@hidden
  +
  +If an installed @code{libltdl} is found, then @code{LIBLTDL} is set to
  +the link flags needed to use it, and @code{LTDLINCL} to the
  +preprocessor flags needed to find the installed headers.  Note,
  +however, that no version checking is performed.  You should manually
  +check for the @code{libltdl} features you need in @file{configure.ac}:
  +
  address@hidden
  +LT_INIT([dlopen])
  +LTDL_INIT
   
  address@hidden can be either @samp{nonrecursive}, @samp{recursive}, or
  address@hidden depending on how you wish for your project to build
  address@hidden  In order for @command{libtoolize} to detect
  address@hidden correctly, if you supply one of these arguments, they
  -must be given literally (i.e., macros or shell variables that expand to
  -the correct @var{LTDL-MODE} will not work):
  +# The lt_dladvise_init symbol was added with libtool-2.2
  +if test "x$with_included_ltdl" != "xyes"; then
  +  save_CFLAGS="$CFLAGS"
  +  save_LDFLAGS="$LDFLAGS"
  +  CFLAGS="$CFLAGS $LTDLINCL"
  +  LDFLAGS="$LDFLAGS $LIBLTDL"
  +  AC_CHECK_LIB([ltdl], [lt_dladvise_init],
  +             [],
  +     [AC_MSG_ERROR(installed libltdl is too old)])
  +  LDFLAGS="$save_LDFLAGS"
  +  CFLAGS="$save_CFLAGS"
  +fi
  address@hidden example
  +
  address@hidden may include no more than one of the following build
  +modes depending on how you want your project to build @code{libltdl}:
  address@hidden, @samp{recursive}, or @samp{subproject}.  In order
  +for @command{libtoolize} to detect this option correctly, if you
  +supply one of these arguments, they must be given literally (i.e.,
  +macros or shell variables that expand to the correct ltdl mode will not
  +work).
   
   @table @samp
   @item nonrecursive
  @@ -4418,15 +4488,13 @@
   @example
   AM_INIT_AUTOMAKE([subdir-objects])
   AC_CONFIG_HEADERS([config.h])
  -AC_PROG_CC
  -AM_PROG_CC_C_O
  -LT_CONFIG_LTDL_DIR([libltdl], [nonrecursive])
  -LT_WITH_LTDL
  +LT_CONFIG_LTDL_DIR([libltdl])
  +LTDL_INIT([nonrecursive])
   @end example
   
   @noindent
  -You have to use a config header, but it may have a name different than
  address@hidden
  +You @emph{have to} use a config header, but it may have a name different
  +than @file{config.h}.
   
   Also, add the following near the top of your @file{Makefile.am}:
   
  @@ -4448,7 +4516,7 @@
   @end example
   
   @noindent
  -Unless you don't build any other libraries from this @file{Makefile.am},
  +Unless you build no other libraries from this @file{Makefile.am},
   you will also need to change @code{lib_LTLIBRARIES} to assign with
   @samp{+=} so that the @code{libltdl} targets declared in
   @file{Makefile.inc} are not overwritten.
  @@ -4462,14 +4530,14 @@
   @example
   AM_INIT_AUTOMAKE
   AC_CONFIG_HEADERS([config.h])
  -LT_CONFIG_LTDL_DIR([libltdl], [recursive])
  -LT_WITH_LTDL
  +LT_CONFIG_LTDL_DIR([libltdl])
  +LTDL_INIT([recursive])
   AC_CONFIG_FILES([libltdl/Makefile])
   @end example
   
   @noindent
  -You have to use a config header, but it may have a name different than
  address@hidden
  +Again, you @emph{have to} use a config header, but it may have a name
  +different than @file{config.h} if you like.
   
   Also, add this to your @file{Makefile.am}:
   
  @@ -4478,20 +4546,21 @@
   @end example
   
   @item subproject
  -This mode is the default unless you declare otherwise with
  address@hidden, and is the only mode supported by previous
  -releases of libltdl.  If you do not use Autoconf in the parent project,
  -then @samp{subproject} mode @code{libltdl} contains all the necessary
  -files to configure and build itself -- you just need to arrange for your
  -build system to call @file{libltdl/configure} with appropriate options,
  -and then run @code{make} in the @code{libltdl} subdirectory.
  +This mode is the default unless you explicitly add @code{recursive} or
  address@hidden to your @code{LTDL_INIT} options;  @code{subproject}
  +is the only mode supported by previous releases of libltdl.  Even if you
  +do not use Autoconf in the parent project, then, in @samp{subproject}
  +mode, still @code{libltdl} contains all the necessary files to configure
  +and build itself -- you just need to arrange for your build system to
  +call @file{libltdl/configure} with appropriate options, and then run
  address@hidden in the @code{libltdl} subdirectory.
   
   If you @emph{are} using Autoconf and Automake, then you will need to add
   the following to your @file{configure.ac}:
   
   @example
  -LT_CONFIG_LTDL_DIR([libltdl], [subproject])
  -LT_WITH_LTDL
  +LT_CONFIG_LTDL_DIR([libltdl])
  +LTDL_INIT
   @end example
   
   @noindent
  @@ -4501,120 +4570,82 @@
   SUBDIRS = libltdl
   @end example
   @end table
  address@hidden defmac
  -
  address@hidden LT_WITH_LTDL
  address@hidden AC_WITH_LTDL
  -Add the @option{--with-included-ltdl} option to the @file{configure}
  -script.  This option will then allow the person who builds your
  -package to choose between linking against an already installed
  address@hidden (@option{--without-included-ltdl}), or the sources
  -shipped with the package in the subdirectory named by
  address@hidden (@option{--with-included-ltdl}).
   
  address@hidden is a deprecated alias for @code{LT_WITH_LTDL}.
  address@hidden defmac
  +Aside from setting the libltdl build mode, there are other keywords
  +that you can pass to @code{LTDL_INIT} to modify its behavior when
  address@hidden has been given:
   
  address@hidden LTDL_INSTALLABLE
  address@hidden AC_LIBLTDL_INSTALLABLE
  -If there is an installed @code{libltdl}, then set @code{LIBLTDL} to the
  -link flags needed to use it, and @code{LTDLINCL} to the preprocessor
  -flags needed to find the installed headers.  Otherwise, set them to
  -point into an included version of @code{libltdl}, and install that.
  address@hidden @samp
  address@hidden convenience
  +This is the default unless you explicitly add @code{installable} to
  +your @code{LTDL_INIT} options.
   
  -By default, this macro will pass options to the @file{configure}
  +This keyword will cause options to be passed to the @command{configure}
   script in the subdirectory named by @code{LT_CONFIG_LTDL_DIR} in order
  -to cause it to be built as an installable library.  If you're not
  +to cause it to be built as a convenience library.  If you're not
   using automake, you will need to define @code{top_build_prefix},
   @code{top_builddir}, and @code{top_srcdir} in your makefile so that
  address@hidden and @code{LTDLINCL} are expanded properly.
  address@hidden and @code{LTDLINCL} expand correctly.
   
  -If used in conjunction with @code{LT_WITH_LTDL}, this macro must
  -appear @strong{before} the call to @code{LT_WITH_LTDL}.  If you are
  -not using @code{LT_WITH_LTDL}, then you must add a call to
  address@hidden(@var{DIRECTORY})} to your @file{configure.ac}.
  -
  address@hidden is a deprecated alias for
  address@hidden
  address@hidden defmac
  -
  address@hidden LTDL_CONVENIENCE
  address@hidden AC_LIBLTDL_CONVENIENCE
  -Unless you call @code{LTDL_INSTALLABLE} before hand,
  address@hidden calls this macro automatically, so you should only
  -ever need to use it yourself if @code{LT_WITH_LTDL} doesn't do what
  -you want.
  +One advantage of the convenience library is that it is not installed,
  +so the fact that you use @code{libltdl} will not be apparent to the
  +user, and it won't overwrite a pre-installed version of
  address@hidden the system might already have in the installation
  +directory.  On the other hand, if you want to upgrade @code{libltdl}
  +for any reason (e.g.@: a bugfix) you'll have to recompile your package
  +instead of just replacing the shared installed version of
  address@hidden  However, if your programs or libraries are linked
  +with other libraries that use such a pre-installed version of
  address@hidden, you may get linker errors or run-time crashes.
  +Another problem is that you cannot link the convenience library into
  +more than one libtool library, then link a single program with those
  +libraries, because you may get duplicate symbols.  In general you can
  +safely use the convenience library in programs that don't depend on
  +other libraries that might use @code{libltdl} too.
   
  -By default, this macro will pass options to the @file{configure}
  address@hidden installable
  +This keyword will pass options to the @command{configure}
   script in the subdirectory named by @code{LT_CONFIG_LTDL_DIR} in order
  -to cause it to be built as a convenience library.  If you're not
  +to cause it to be built as an installable library.  If you're not
   using automake, you will need to define @code{top_build_prefix},
   @code{top_builddir} and @code{top_srcdir} in your makefile so that
   @code{LIBLTDL} and @code{LTDLINCL} are expanded properly.
   
  address@hidden is a deprecated alias for
  address@hidden
  +Be aware that you could overwrite another @code{libltdl} already
  +installed to the same directory if you use this option.
  address@hidden table
   @end defmac
   
  -One advantage of the convenience library is that it is not installed,
  -so the fact that you use libltdl will not be apparent to the user, and
  -it will not overwrite a pre-installed version of libltdl a user might
  -have.  On the other hand, if you want to upgrade libltdl for any
  -reason (e.g.@: a bugfix) you'll have to recompile your package instead
  -of just replacing an installed version of libltdl.  However, if your
  -programs or libraries are linked with other libraries that use such a
  -pre-installed version of libltdl, you may get linker errors or
  -run-time crashes.  Another problem is that you cannot link the
  -convenience library into more than one libtool library, then link a
  -single program with these libraries, because you may get duplicate
  -symbols.  In general you can safely use the convenience library in
  -programs that don't depend on other libraries that might use libltdl
  -too.  In order to enable this flavor of libltdl, add a call to
  address@hidden to your @file{configure.ac},
  address@hidden @samp{LT_INIT}, or use @samp{LT_WITH_LTDL}.
  -
  -In order to select the installable version of libltdl, you should add a
  -call of the macro @samp{LTDL_INSTALLABLE} to your
  address@hidden @emph{before} @samp{LT_INIT}.  This macro
  -will check whether libltdl is already installed and, if not, request the
  -libltdl embedded in your package to be built and installed.  Note,
  -however, that no version checking is performed.  The user may override
  -the test and determine that the libltdl embedded must be installed,
  -regardless of the existence of another version, using the configure
  -switch @option{--enable-ltdl-install}.
  -
  -Whatever macro you use, it is up to you to ensure that your
  address@hidden will configure libltdl by using
  address@hidden  Both macros define the shell variables
  address@hidden to the link flag that you should use to link with
  -libltdl, and @var{LTDLINCL} to the preprocessor flag that you should
  -use to compile with programs that include @file{ltdl.h}.
  -
  -If you're using the convenience libltdl, @var{LIBLTDL} will be the
  -pathname for the convenience version of libltdl and @var{LTDLINCL} will be
  address@hidden followed by the directory that contains libltdl, starting
  -with @address@hidden@}} if available, otherwise with
  address@hidden@address@hidden/}, and @address@hidden@}/} respectively.
  -
  -If you request an installed version of libltdl and one is
  address@hidden@c
  address@hidden
  -Even if libltdl is installed, @samp{LTDL_INSTALLABLE} may fail
  -to detect it, if libltdl depends on symbols provided by libraries
  -other than the C library.  In this case, it will needlessly build and
  -install libltdl.
  address@hidden
  -}, @var{LIBLTDL} will be set to @option{-lltdl} and @var{LTDLINCL} will
  -be empty (this is just a blind assumption that @file{ltdl.h} is
  -somewhere in the include path if libltdl is in the library path).  If
  -an installable version of libltdl must be built, its pathname,
  -starting with @address@hidden@}} if available, otherwise
  address@hidden@address@hidden/}, will be stored in
  address@hidden, and @var{LTDLINCL} will be set just like in the case of
  -convenience library.  So, when you want to link a program with
  +Whatever method you use, @samp{LTDL_INIT} will define both the shell
  +variable @var{LIBLTDL} to the link flag that you should use to link
  +with @code{libltdl}, and the shell variable @var{LTDLINCL} to the
  +preprocessor flag that you should use to compile programs that
  +include @file{ltdl.h}. So, when you want to link a program with
   libltdl, be it a convenience, installed or installable library, just
  -compile with @samp{$(LTDLINCL)} and link it with @samp{$(LIBLTDL)},
  -using libtool.
  +use @samp{$(LTDLINCL)} for preprocessing and compilation, and
  address@hidden(LIBLTDL)} for linking.
  +
  address@hidden @bullet
  address@hidden
  +If your package is built using an installed version of
  address@hidden, @var{LIBLTDL} will be set to the compiler flags
  +needed to link against the installed library, and
  address@hidden will be set to the compiler flags needed to find
  +the @code{libltdl} header files.
  +
  address@hidden
  +If your package is built using the convenience libltdl, @var{LIBLTDL}
  +will be the pathname for the convenience version of libltdl
  +(starting with @address@hidden@}/}) and @var{LTDLINCL} will be
  address@hidden followed by the directory that contains @file{ltdl.h}
  +(starting with @address@hidden@}/}).
  +
  address@hidden
  +If an installable version of the included @code{libltdl} is being
  +built, its pathname starting with @address@hidden@}/}, will be
  +stored in @var{LIBLTDL}, and @var{LTDLINCL} will be set just like in
  +the case of convenience library.
  address@hidden itemize
   
   You should probably also use the @samp{dlopen} option to @code{LT_INIT}
   in your @file{configure.ac}, otherwise libtool will assume no dlopening
  @@ -4626,8 +4657,8 @@
   for static linking.
   
   The following example shows you how to embed an installable libltdl in
  -your package.  In order to use the convenience variant just replace
  address@hidden with @samp{LTDL_CONVENIENCE}.  We
  +your package.  In order to use the convenience variant, just replace the
  address@hidden option @samp{installable} with @samp{convenience}.  We
   assume that libltdl was embedded using @samp{libtoolize --ltdl}.
   
   configure.ac:
  @@ -4636,14 +4667,11 @@
   # Name the subdirectory that contains libltdl sources
   LT_CONFIG_LTDL_DIR([libltdl])
   
  -## ------------------------------------------ ##
  -## Enable building of the installable library ##
  -## ------------------------------------------ ##
  -LTDL_INSTALLABLE
  -
   # Configure libtool with dlopen support if possible
   LT_INIT([dlopen])
  -LT_WITH_LTDL
  +
  +# Enable building of the installable libltdl library
  +LTDL_INIT([installable])
   ...
   @end example
   
  @@ -4660,6 +4688,18 @@
   ...
   @end example
   
  address@hidden LTDL_INSTALLABLE
  address@hidden AC_LIBLTDL_INSTALLABLE
  +These macros are deprecated, the @samp{installable} option to
  address@hidden should be used instead.
  address@hidden defmac
  +
  address@hidden LTDL_CONVENIENCE
  address@hidden AC_LIBLTDL_CONVENIENCE
  +These macros are deprecated, the @samp{convenience} option to
  address@hidden should be used instead.
  address@hidden defmac
  +
   
   @node Trace interface
   @chapter Libtool's trace interface
  @@ -5927,7 +5967,7 @@
   trick$ libtool --version
   ltmain.sh (GNU @@PACKAGE@@@@TIMESTAMP@@) @@VERSION@@
   
  -Copyright (C) 2007 Free Software Foundation, Inc.
  +Copyright (C) 2008 Free Software Foundation, Inc.
   This is free software; see the source for copying conditions.  There is NO
   warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   trick$
  Index: libltdl/configure.ac
  ===================================================================
  RCS file: /sources/libtool/libtool/libltdl/configure.ac,v
  retrieving revision 1.22
  diff -u -u -r1.22 configure.ac
  --- libltdl/configure.ac 9 Nov 2007 06:47:15 -0000 1.22
  +++ libltdl/configure.ac 6 Jan 2008 16:32:10 -0000
  @@ -1,6 +1,6 @@
   # Process this file with autoconf to create configure. -*- autoconf -*-
   #
  -#    Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
  +#    Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
   #    Written by Gary V. Vaughan, 2004
   #
   #    NOTE: The canonical source of this file is maintained with the
  @@ -65,8 +65,7 @@
   ## Libtool initialisation. ##
   ## ----------------------- ##
   LT_INIT([dlopen win32-dll])
  -LTDL_CONVENIENCE
  -LTDL_INIT
  +_LTDL_SETUP
   
   
   ## -------- ##
  Index: libltdl/m4/libtool.m4
  ===================================================================
  RCS file: /sources/libtool/libtool/libltdl/m4/libtool.m4,v
  retrieving revision 1.124
  diff -u -u -r1.124 libtool.m4
  --- libltdl/m4/libtool.m4 2 Jan 2008 18:52:08 -0000 1.124
  +++ libltdl/m4/libtool.m4 6 Jan 2008 16:32:11 -0000
  @@ -68,6 +68,7 @@
   [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
   AC_BEFORE([$0], [LT_LANG])dnl
   AC_BEFORE([$0], [LT_OUTPUT])dnl
  +AC_BEFORE([$0], [LTDL_INIT])dnl
   AC_REQUIRE([_LT_CHECK_BUILDDIR])dnl
   
   dnl Autoconf doesn't catch unexpanded LT_ macros by default:
  @@ -80,7 +81,9 @@
   AC_REQUIRE([LTVERSION_VERSION])dnl
   AC_REQUIRE([LTOBSOLETE_VERSION])dnl
   m4_require([_LT_PROG_LTMAIN])dnl
  -m4_require([_LT_SET_OPTIONS], [_LT_SET_OPTIONS([$1])])dnl
  +
  +dnl Parse OPTIONS
  +_LT_SET_OPTIONS([$0], [$1])
   
   # This can be used to rebuild libtool when needed
   LIBTOOL_DEPS="$ltmain"
  @@ -617,10 +620,10 @@
         lt_cl_silent=: ;;
   
       -*) AC_MSG_ERROR([unrecognized option: $[1]
  -Try `$[0] --help' for more information.]) ;;
  +Try \`$[0] --help' for more information.]) ;;
   
       *) AC_MSG_ERROR([unrecognized argument: $[1]
  -Try `$[0] --help for more information.]) ;;
  +Try \`$[0] --help' for more information.]) ;;
     esac
     shift
   done
  Index: libltdl/m4/ltdl.m4
  ===================================================================
  RCS file: /sources/libtool/libtool/libltdl/m4/ltdl.m4,v
  retrieving revision 1.34
  diff -u -u -r1.34 ltdl.m4
  --- libltdl/m4/ltdl.m4 16 Nov 2007 07:08:34 -0000 1.34
  +++ libltdl/m4/ltdl.m4 6 Jan 2008 16:32:11 -0000
  @@ -1,20 +1,20 @@
   # ltdl.m4 - Configure ltdl for the target system. -*-Autoconf-*-
   #
  -#   Copyright (C) 1999-2006, 2007 Free Software Foundation, Inc.
  +#   Copyright (C) 1999-2006, 2007, 2008 Free Software Foundation, Inc.
   #   Written by Thomas Tanner, 1999
   #
   # This file is free software; the Free Software Foundation gives
   # unlimited permission to copy and/or distribute it, with or without
   # modifications, as long as this notice is preserved.
   
  -# serial 12 LTDL_INIT
  +# serial 13 LTDL_INIT
   
   # LT_CONFIG_LTDL_DIR(DIRECTORY, [LTDL-MODE])
   # ------------------------------------------
   # DIRECTORY contains the libltdl sources.  It is okay to call this
   # function multiple times, as long as the same DIRECTORY is always given.
   AC_DEFUN([LT_CONFIG_LTDL_DIR],
  -[AC_BEFORE([$0], [LT_WITH_LTDL])
  +[AC_BEFORE([$0], [LTDL_INIT])
   _$0($*)
   ])# LT_CONFIG_LTDL_DIR
   
  @@ -33,16 +33,10 @@
            [],
        [m4_fatal([multiple libltdl directories: `]_LTDL_DIR[', 
`]_ARG_DIR['])])])
   m4_popdef([_ARG_DIR])
  -dnl If not otherwise defined, default to the 1.5.x compatible subproject 
mode:
  -m4_if(_LTDL_MODE, [],
  -     [m4_define([_LTDL_MODE], m4_default([$2], [subproject]))
  -     m4_if([-1], [m4_bregexp(_LTDL_MODE, 
[\(subproject\|\(non\)?recursive\)])],
  -             [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])])
   ])# LT_CONFIG_LTDL_DIR
   
   # Initialise:
   m4_define([_LTDL_DIR], [])
  -m4_define([_LTDL_MODE], [])
   
   
   # _LT_BUILD_PREFIX
  @@ -72,20 +66,35 @@
   # define top_build_prefix, top_builddir, and top_srcdir appropriately
   # in your Makefiles.
   AC_DEFUN([LTDL_CONVENIENCE],
  -[AC_BEFORE([$0], [LT_WITH_LTDL])dnl
  +[AC_BEFORE([$0], [LTDL_INIT])dnl
   dnl Although the argument is deprecated and no longer documented,
   dnl LTDL_CONVENIENCE used to take a DIRECTORY orgument, if we have one
   dnl here make sure it is the same as any other declaration of libltdl's
   dnl location!  This also ensures lt_ltdl_dir is set when configure.ac is
   dnl not yet using an explicit LT_CONFIG_LTDL_DIR.
   m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl
  +_$0()
  +])# LTDL_CONVENIENCE
  +
  +# AC_LIBLTDL_CONVENIENCE accepted a directory argument in older libtools,
  +# now we have LT_CONFIG_LTDL_DIR:
  +AU_DEFUN([AC_LIBLTDL_CONVENIENCE],
  +[_LT_CONFIG_LTDL_DIR([$1])
  +_LTDL_CONVENIENCE])
  +
  +dnl aclocal-1.4 backwards compatibility:
  +dnl AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [])
   
  -case $enable_ltdl_convenience in
  +
  +# _LTDL_CONVENIENCE
  +# -----------------
  +# Code shared by LTDL_CONVENIENCE and LTDL_INIT([convenience]).
  +m4_defun([_LTDL_CONVENIENCE],
  +[case $enable_ltdl_convenience in
     no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
     "") enable_ltdl_convenience=yes
         ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
  -  esac
  -
  +esac
   LIBLTDL='_LT_BUILD_PREFIX'"${lt_ltdl_dir+$lt_ltdl_dir/}libltdlc.la"
   LTDLINCL='-I${top_srcdir}'"${lt_ltdl_dir+/$lt_ltdl_dir}"
   
  @@ -95,16 +104,7 @@
   # For backwards non-gettext consistent compatibility...
   INCLTDL="$LTDLINCL"
   AC_SUBST([INCLTDL])
  -])# LTDL_CONVENIENCE
  -
  -# AC_LIBLTDL_CONVENIENCE accepted a directory argument in older libtools,
  -# now we have LT_CONFIG_LTDL_DIR:
  -AU_DEFUN([AC_LIBLTDL_CONVENIENCE],
  -[_LT_CONFIG_LTDL_DIR([$1])
  -LTDL_CONVENIENCE])
  -
  -dnl aclocal-1.4 backwards compatibility:
  -dnl AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [])
  +])# _LTDL_CONVENIENCE
   
   
   # LTDL_INSTALLABLE
  @@ -120,32 +120,60 @@
   # top_builddir, and top_srcdir appropriately in your Makefiles.
   # In the future, this macro may have to be called after LT_INIT.
   AC_DEFUN([LTDL_INSTALLABLE],
  -[AC_BEFORE([$0], [LT_WITH_LTDL])dnl
  +[AC_BEFORE([$0], [LTDL_INIT])dnl
   dnl Although the argument is deprecated and no longer documented,
   dnl LTDL_INSTALLABLE used to take a DIRECTORY orgument, if we have one
   dnl here make sure it is the same as any other declaration of libltdl's
   dnl location!  This also ensures lt_ltdl_dir is set when configure.ac is
   dnl not yet using an explicit LT_CONFIG_LTDL_DIR.
   m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl
  +_$0()
  +])# LTDL_INSTALLABLE
   
  -AC_CHECK_LIB([ltdl], [lt_dlinit],
  -  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
  -  [if test x"$enable_ltdl_install" = xno; then
  -     AC_MSG_WARN([libltdl not installed, but installation disabled])
  -   else
  -     enable_ltdl_install=yes
  -   fi
  -  ])
  -if test x"$enable_ltdl_install" = x"yes"; then
  -  ac_configure_args="$ac_configure_args --enable-ltdl-install"
  -  LIBLTDL='_LT_BUILD_PREFIX'"${lt_ltdl_dir+$lt_ltdl_dir/}libltdl.la"
  -  LTDLINCL='-I${top_srcdir}'"${lt_ltdl_dir+/$lt_ltdl_dir}"
  -else
  -  ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
  -  LIBLTDL="-lltdl"
  -  LTDLINCL=
  +# AC_LIBLTDL_INSTALLABLE accepted a directory argument in older libtools,
  +# now we have LT_CONFIG_LTDL_DIR:
  +AU_DEFUN([AC_LIBLTDL_INSTALLABLE],
  +[_LT_CONFIG_LTDL_DIR([$1])
  +_LTDL_INSTALLABLE])
  +
  +dnl aclocal-1.4 backwards compatibility:
  +dnl AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [])
  +
  +
  +# _LTDL_INSTALLABLE
  +# -----------------
  +# Code shared by LTDL_INSTALLABLE and LTDL_INIT([installable]).
  +m4_defun([_LTDL_INSTALLABLE],
  +[if test -f $prefix/lib/libltdl.la; then
  +  lt_save_LDFLAGS="$LDFLAGS"
  +  LDFLAGS="-L$prefix/lib $LDFLAGS"
  +  AC_CHECK_LIB([ltdl], [lt_dlinit], [lt_lib_ltdl=yes])
  +  LDFLAGS="$lt_save_LDFLAGS"
  +  if test x"${lt_lib_ltdl-no}" = xyes; then
  +    if test x"$enable_ltdl_install" != xyes; then
  +      # Don't overwrite $prefix/lib/libltdl.la without --enable-ltdl-install
  +      AC_MSG_WARN([not overwriting libltdl at $prefix, force with 
\`--enable-ltdl-install'])
  +      enable_ltdl_install=no
  +    fi
  +  elif test x"$enable_ltdl_install" = xno; then
  +    AC_MSG_WARN([libltdl not installed, but installation disabled])
  +  fi
   fi
   
  +# If configure.ac declared an installable ltdl, and the user didn't override
  +# with --disable-ltdl-install, we will install the shipped libltdl.
  +case $enable_ltdl_install in
  +  no) ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
  +      LIBLTDL="-lltdl"
  +      LTDLINCL=
  +      ;;
  +  *)  enable_ltdl_install=yes
  +      ac_configure_args="$ac_configure_args --enable-ltdl-install"
  +      LIBLTDL='${top_builddir}'"${lt_ltdl_dir+/$lt_ltdl_dir}/libltdl.la"
  +      LTDLINCL='-I${top_srcdir}'"${lt_ltdl_dir+/$lt_ltdl_dir}"
  +      ;;
  +esac
  +
   AC_SUBST([LIBLTDL])
   AC_SUBST([LTDLINCL])
   
  @@ -154,15 +182,6 @@
   AC_SUBST([INCLTDL])
   ])# LTDL_INSTALLABLE
   
  -# AC_LIBLTDL_INSTALLABLE accepted a directory argument in older libtools,
  -# now we have LT_CONFIG_LTDL_DIR:
  -AU_DEFUN([AC_LIBLTDL_INSTALLABLE],
  -[_LT_CONFIG_LTDL_DIR([$1])
  -LTDL_INSTALLABLE])
  -
  -dnl aclocal-1.4 backwards compatibility:
  -dnl AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [])
  -
   
   # _LTDL_MODE_DISPATCH
   # -------------------
  @@ -182,18 +201,22 @@
   ])# _LTDL_MODE_DISPATCH
   
   
  -# LT_WITH_LTDL
  -# ------------
  +# LTDL_INIT([OPTIONS])
  +# --------------------
   # Clients of libltdl can use this macro to allow the installer to
   # choose between a shipped copy of the ltdl sources or a preinstalled
   # version of the library.  If the shipped ltdl sources are not in a
   # subdirectory named libltdl, the directory name must be given by
   # LT_CONFIG_LTDL_DIR.
  -AC_DEFUN([LT_WITH_LTDL],
  -[dnl If neither LT_CONFIG_LTDL_DIR, LTDL_CONVENIENCE nor LTDL_INSTALLABLE
  -dnl was called yet, then for old times' sake, we assume libltdl is in an
  -dnl eponymous directory:
  -AC_PROVIDE_IFELSE([LT_CONFIG_LTDL_DIR], [], [_LT_CONFIG_LTDL_DIR([libltdl])])
  +AC_DEFUN([LTDL_INIT],
  +[dnl Parse OPTIONS
  +_LT_SET_OPTIONS([$0], [$1])
  +
  +dnl If not otherwise defined, default to the 1.5.x compatible subproject 
mode:
  +m4_if(_LTDL_MODE, [],
  +        [m4_define([_LTDL_MODE], m4_default([$2], [subproject]))
  +        m4_if([-1], [m4_bregexp(_LTDL_MODE, 
[\(subproject\|\(non\)?recursive\)])],
  +                [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])])
   
   AC_ARG_WITH([included_ltdl],
       [AS_HELP_STRING([--with-included-ltdl],
  @@ -215,49 +238,91 @@
     )
   fi
   
  -if test "x$enable_ltdl_install" != xyes; then
  -  # If the user did not specify an installable libltdl, then default
  -  # to a convenience lib.
  -  LTDL_CONVENIENCE
  +dnl If neither LT_CONFIG_LTDL_DIR, LTDL_CONVENIENCE nor LTDL_INSTALLABLE
  +dnl was called yet, then for old times' sake, we assume libltdl is in an
  +dnl eponymous directory:
  +AC_PROVIDE_IFELSE([LT_CONFIG_LTDL_DIR], [], [_LT_CONFIG_LTDL_DIR([libltdl])])
  +
  +AC_ARG_WITH([ltdl_include],
  +    [AS_HELP_STRING([--with-ltdl-include=DIR],
  +                    [use the ltdl headers installed in DIR])])
  +
  +if test -n "$with_ltdl_include"; then
  +  if test -f "$with_ltdl_include/ltdl.h"; then :
  +  else
  +    AC_MSG_ERROR([invalid ltdl include directory: \`$with_ltdl_include'])
  +  fi
  +else
  +  with_ltdl_include=no
   fi
   
  -if test "x$with_included_ltdl" = xno; then
  -  # If the included ltdl is not to be used, then use the
  -  # preinstalled libltdl we found.
  -  AC_DEFINE([HAVE_LTDL], [1],
  -    [Define this if a modern libltdl is already installed])
  -  LIBLTDL=-lltdl
  -  LTDLINCL=
  -  INCLTDL=
  +AC_ARG_WITH([ltdl_lib],
  +    [AS_HELP_STRING([--with-ltdl-lib=DIR],
  +                    [use the libltdl.la installed in DIR])])
  +
  +if test -n "$with_ltdl_lib"; then
  +  if test -f "$with_ltdl_lib/libltdl.la"; then :
  +  else
  +    AC_MSG_ERROR([invalid ltdl library directory: \`$with_ltdl_lib'])
  +  fi
  +else
  +  with_ltdl_lib=no
   fi
   
  +case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in
  +  ,yes,no,no,)
  +     m4_case(m4_default(_LTDL_TYPE, [convenience]),
  +         [convenience], [_LTDL_CONVENIENCE],
  +         [installable], [_LTDL_INSTALLABLE],
  +       [m4_fatal([unknown libltdl build type: ]_LTDL_TYPE)])
  +     ;;
  +  ,no,no,no,)
  +     # If the included ltdl is not to be used, then use the
  +     # preinstalled libltdl we found.
  +     AC_DEFINE([HAVE_LTDL], [1],
  +       [Define this if a modern libltdl is already installed])
  +     LIBLTDL=-lltdl
  +     LTDLINCL=
  +     ;;
  +  ,no*,no,*)
  +     AC_MSG_ERROR([\`--with-ltdl-include' and \`--with-ltdl-lib' options 
must be used together])
  +     ;;
  +  *) with_included_ltdl=no
  +     LIBLTDL="-L$with_ltdl_lib -lltdl"
  +     LTDLINCL="-I$with_ltdl_include"
  +     ;;
  +esac
  +INCLTDL="$LTDLINCL"
  +
   # Report our decision...
  -AC_MSG_CHECKING([whether to use included libltdl])
  -AC_MSG_RESULT([$with_included_ltdl])
  +AC_MSG_CHECKING([where to find libltdl headers])
  +AC_MSG_RESULT([$LTDLINCL])
  +AC_MSG_CHECKING([where to find libltdl library])
  +AC_MSG_RESULT([$LIBLTDL])
   
  -dnl Be certain that LTDL_INIT is invoked if we are configuring libltdl
  -dnl from here:
  -m4_if(_LTDL_MODE, [subproject],
  -     [_LTDL_MODE_DISPATCH],
  -    [AC_PROVIDE_IFELSE([LTDL_INIT],
  -         [],
  -     [LTDL_INIT
  -     AC_DEFUN([LTDL_INIT], [])])])
  -])# LT_WITH_LTDL
  +_LTDL_SETUP
   
  -# Old name:
  -AU_ALIAS([AC_WITH_LTDL], [LT_WITH_LTDL])
  +# Only expand once:
  +m4_define([LTDL_INIT])
  +])# LTDL_INIT
  +
  +# Old names:
  +AU_DEFUN([AC_LIB_LTDL], [LTDL_INIT($@)])
  +AU_DEFUN([AC_WITH_LTDL], [LTDL_INIT($@)])
  +AU_DEFUN([LT_WITH_LTDL], [LTDL_INIT($@)])
   dnl aclocal-1.4 backwards compatibility:
  +dnl AC_DEFUN([AC_LIB_LTDL], [])
   dnl AC_DEFUN([AC_WITH_LTDL], [])
  +dnl AC_DEFUN([LT_WITH_LTDL], [])
   
   
  -# LTDL_INIT
  -# ---------
  +# _LTDL_SETUP
  +# -----------
   # Perform all the checks necessary for compilation of the ltdl objects
   #  -- including compiler checks and header checks.  This is a public
   # interface  mainly for the benefit of libltdl's own configure.ac, most
  -# other users should call LT_WITH_LTDL instead.
  -AC_DEFUN([LTDL_INIT],
  +# other users should call LTDL_INIT instead.
  +AC_DEFUN([_LTDL_SETUP],
   [AC_REQUIRE([AC_PROG_CC])dnl
   AC_REQUIRE([LT_SYS_MODULE_EXT])dnl
   AC_REQUIRE([LT_SYS_MODULE_PATH])dnl
  @@ -277,17 +342,7 @@
   dnl that sets the variables it relies on:
   _LT_ENABLE_INSTALL
   
  -dnl Although deprecated and no longer documented, alpha releases of
  -dnl libtool used to define an LTDL_INIT to take a DIRECTORY orgument.
  -dnl If LT_CONFIG_LTDL_DIR was called already, but LTDL_INIT was given a
  -dnl DIRECTORY argument, check it is the same as previous invocations.  If
  -dnl it still hasn't been called, then do it now, defaulting to `libltdl'
  -dnl if no DIRECTORY argument was passed.
  -m4_provide_if([_LT_CONFIG_LTDL_DIR],
  -     [m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])],
  -    [_LT_CONFIG_LTDL_DIR(m4_default([$1], [libltdl]))])dnl
  -
  -dnl _LTDL_MODE specific code must be evaluated at least once:
  +dnl _LTDL_MODE specific code must be called at least once:
   _LTDL_MODE_DISPATCH
   
   # In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS
  @@ -313,12 +368,7 @@
   name=ltdl
   LTDLOPEN=`eval "\$ECHO \"$libname_spec\""`
   AC_SUBST([LTDLOPEN])
  -])# LTDL_INIT
  -
  -# Old name:
  -AU_ALIAS([AC_LIB_LTDL], [LTDL_INIT])
  -dnl aclocal-1.4 backwards compatibility:
  -dnl AC_DEFUN([AC_LIB_LTDL], [])
  +])# _LTDL_SETUP
   
   
   # _LT_ENABLE_INSTALL
  @@ -327,6 +377,11 @@
   [AC_ARG_ENABLE([ltdl-install],
       [AS_HELP_STRING([--enable-ltdl-install], [install libltdl])])
   
  +case ,${enable_ltdl_install},${enable_ltdl_convenience} in
  +  *yes*) ;;
  +  *) enable_ltdl_convenience=yes ;;
  +esac
  +
   AM_CONDITIONAL(INSTALL_LTDL, test x"${enable_ltdl_install-no}" != xno)
   AM_CONDITIONAL(CONVENIENCE_LTDL, test x"${enable_ltdl_convenience-no}" != 
xno)
   ])# _LT_ENABLE_INSTALL
  Index: libltdl/m4/ltoptions.m4
  ===================================================================
  RCS file: /sources/libtool/libtool/libltdl/m4/ltoptions.m4,v
  retrieving revision 1.9
  diff -u -u -r1.9 ltoptions.m4
  --- libltdl/m4/ltoptions.m4 25 Mar 2007 12:12:43 -0000 1.9
  +++ libltdl/m4/ltoptions.m4 6 Jan 2008 16:32:11 -0000
  @@ -1,81 +1,83 @@
   # Helper functions for option handling.                    -*- Autoconf -*-
   #
  -#   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
  +#   Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
   #   Written by Gary V. Vaughan, 2004
   #
   # This file is free software; the Free Software Foundation gives
   # unlimited permission to copy and/or distribute it, with or without
   # modifications, as long as this notice is preserved.
   
  -# serial 3 ltoptions.m4
  +# serial 4 ltoptions.m4
   
   # This is to help aclocal find these macros, as it can't see m4_define.
   AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
   
   
  -# _LT_MANGLE_OPTION(NAME)
  -# -----------------------
  +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
  +# ------------------------------------------
   m4_define([_LT_MANGLE_OPTION],
  -[[_LT_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
  +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
   
   
  -# _LT_SET_OPTION(NAME)
  -# --------------------
  -# Set option NAME, and if there is a matching handler defined,
  -# dispatch to it.  Other NAMEs are saved as a flag.
  +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
  +# ---------------------------------------
  +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
  +# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
  +# saved as a flag.
   m4_define([_LT_SET_OPTION],
  -[m4_define(_LT_MANGLE_OPTION([$1]))dnl
  -m4_ifdef(_LT_MANGLE_DEFUN([$1]),
  -        _LT_MANGLE_DEFUN([$1]),
  -    [m4_warning([Unknown Libtool option `$1'])])[]dnl
  +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
  +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
  +        _LT_MANGLE_DEFUN([$1], [$2]),
  +    [m4_warning([Unknown $1 option `$2'])])[]dnl
   ])
   
   
  -# _LT_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
  -# -------------------------------------------
  +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
  +# ------------------------------------------------------------
   # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
   m4_define([_LT_IF_OPTION],
  -[m4_ifdef(_LT_MANGLE_OPTION([$1]), [$2], [$3])])
  +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
   
   
  -# _LT_UNLESS_OPTIONS(OPTIONS, IF-NOT-SET)
  -# ---------------------------------------
  -# Execute IF-NOT-SET if all OPTIONS are not set.
  +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
  +# -------------------------------------------------------
  +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
  +# are set.
   m4_define([_LT_UNLESS_OPTIONS],
  -[m4_foreach([_LT_Option], m4_split(m4_normalize([$1])),
  -         [m4_ifdef(_LT_MANGLE_OPTION(_LT_Option),
  +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
  +         [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
                      [m4_define([$0_found])])])[]dnl
  -m4_ifdef([$0_found], [m4_undefine([$0_found])], [$2
  +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
   ])[]dnl
   ])
   
   
  -# _LT_SET_OPTIONS(OPTIONS)
  -# ------------------------
  -# OPTIONS is a space-separated list of Libtool options.
  -# If any OPTION has a handler macro declared with LT_OPTION_DEFINE,
  -# dispatch to that macro; otherwise complain about the unknown option
  -# and exit.
  +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
  +# ----------------------------------------
  +# OPTION-LIST is a space-separated list of Libtool options associated
  +# with MACRO-NAME.  If any OPTION has a matching handler declared with
  +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
  +# the unknown option and exit.
   m4_defun([_LT_SET_OPTIONS],
   [# Set options
  -m4_foreach([_LT_Option], m4_split(m4_normalize([$1])),
  -    [_LT_SET_OPTION(_LT_Option)])
  +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
  +    [_LT_SET_OPTION([$1], _LT_Option)])
   dnl
   dnl Simply set some default values (i.e off) if boolean options were not
   dnl specified:
  -_LT_UNLESS_OPTIONS([dlopen], [enable_dlopen=no
  +_LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
   ])
  -_LT_UNLESS_OPTIONS([win32-dll], [enable_win32_dll=no
  +_LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
   ])
   dnl
   dnl If no reference was made to various pairs of opposing options, then
   dnl we run the default mode handler for the pair.  For example, if neither
   dnl `shared' nor `disable-shared' was passed, we enable building of shared
   dnl archives by default:
  -_LT_UNLESS_OPTIONS([shared disable-shared], [_LT_ENABLE_SHARED])
  -_LT_UNLESS_OPTIONS([static disable-static], [_LT_ENABLE_STATIC])
  -_LT_UNLESS_OPTIONS([pic-only no-pic], [_LT_WITH_PIC])
  -_LT_UNLESS_OPTIONS([fast-install disable-fast-install],
  +_LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
  +_LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
  +_LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
  +_LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
                   [_LT_ENABLE_FAST_INSTALL])
   ])# _LT_SET_OPTIONS
   
  @@ -84,24 +86,26 @@
   ## Macros to handle LT_INIT options. ##
   ## --------------------------------- ##
   
  +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
  +# -----------------------------------------
   m4_define([_LT_MANGLE_DEFUN],
  -[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1]), [[^A-Z0-9_]], [_])])
  +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
   
   
  -# LT_OPTION_DEFINE(NAME, CODE)
  -# ----------------------------
  +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
  +# -----------------------------------------------
   m4_define([LT_OPTION_DEFINE],
  -[m4_define(_LT_MANGLE_DEFUN([$1]), [$2])[]dnl
  +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
   ])# LT_OPTION_DEFINE
   
   
   # dlopen
   # ------
  -LT_OPTION_DEFINE([dlopen], [enable_dlopen=yes
  +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
   ])
   
   AU_DEFUN([AC_LIBTOOL_DLOPEN],
  -[_LT_SET_OPTION([dlopen])
  +[_LT_SET_OPTION([LT_INIT], [dlopen])
   AC_DIAGNOSE([obsolete],
   [$0: Remove this warning and the call to _LT_SET_OPTION when you
   put the `dlopen' option into LT_INIT's first parameter.])
  @@ -114,7 +118,7 @@
   # win32-dll
   # ---------
   # Declare package support for building win32 dll's.
  -LT_OPTION_DEFINE([win32-dll],
  +LT_OPTION_DEFINE([LT_INIT], [win32-dll],
   [enable_win32_dll=yes
   
   case $host in
  @@ -136,7 +140,7 @@
   ])# win32-dll
   
   AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
  -[_LT_SET_OPTION([win32-dll])
  +[_LT_SET_OPTION([LT_INIT], [win32-dll])
   AC_DIAGNOSE([obsolete],
   [$0: Remove this warning and the call to _LT_SET_OPTION when you
   put the `win32-dll' option into LT_INIT's first parameter.])
  @@ -179,8 +183,8 @@
        [Whether or not to build shared libraries])
   ])# _LT_ENABLE_SHARED
   
  -LT_OPTION_DEFINE([shared], [_LT_ENABLE_SHARED([yes])])
  -LT_OPTION_DEFINE([disable-shared], [_LT_ENABLE_SHARED([no])])
  +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
  +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
   
   # Old names:
   AC_DEFUN([AC_ENABLE_SHARED],
  @@ -188,7 +192,7 @@
   ])
   
   AC_DEFUN([AC_DISABLE_SHARED],
  -[_LT_SET_OPTION([disable-shared])
  +[_LT_SET_OPTION([LT_INIT], [disable-shared])
   ])
   
   AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
  @@ -233,16 +237,16 @@
        [Whether or not to build static libraries])
   ])# _LT_ENABLE_STATIC
   
  -LT_OPTION_DEFINE([static], [_LT_ENABLE_STATIC([yes])])
  -LT_OPTION_DEFINE([disable-static], [_LT_ENABLE_STATIC([no])])
  +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
  +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
   
   # Old names:
   AC_DEFUN([AC_ENABLE_STATIC],
  -[_LT_SET_OPTION([static])
  +[_LT_SET_OPTION([LT_INIT], [static])
   ])
   
   AC_DEFUN([AC_DISABLE_STATIC],
  -[_LT_SET_OPTION([disable-static])
  +[_LT_SET_OPTION([LT_INIT], [disable-static])
   ])
   
   AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
  @@ -287,19 +291,19 @@
         [Whether or not to optimize for fast installation])dnl
   ])# _LT_ENABLE_FAST_INSTALL
   
  -LT_OPTION_DEFINE([fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
  -LT_OPTION_DEFINE([disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
  +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
  +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], 
[_LT_ENABLE_FAST_INSTALL([no])])
   
   # Old names:
   AU_DEFUN([AC_ENABLE_FAST_INSTALL],
  -[_LT_SET_OPTION([fast-install])
  +[_LT_SET_OPTION([LT_INIT], [fast-install])
   AC_DIAGNOSE([obsolete],
   [$0: Remove this warning and the call to _LT_SET_OPTION when you put
   the `fast-install' option into LT_INIT's first parameter.])
   ])
   
   AU_DEFUN([AC_DISABLE_FAST_INSTALL],
  -[_LT_SET_OPTION([disable-fast-install])
  +[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
   AC_DIAGNOSE([obsolete],
   [$0: Remove this warning and the call to _LT_SET_OPTION when you put
   the `disable-fast-install' option into LT_INIT's first parameter.])
  @@ -327,12 +331,12 @@
   _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
   ])# _LT_WITH_PIC
   
  -LT_OPTION_DEFINE([pic-only], [_LT_WITH_PIC([yes])])
  -LT_OPTION_DEFINE([no-pic], [_LT_WITH_PIC([no])])
  +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
  +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
   
   # Old name:
   AU_DEFUN([AC_LIBTOOL_PICMODE],
  -[_LT_SET_OPTION([pic-only])
  +[_LT_SET_OPTION([LT_INIT], [pic-only])
   AC_DIAGNOSE([obsolete],
   [$0: Remove this warning and the call to _LT_SET_OPTION when you
   put the `pic-only' option into LT_INIT's first parameter.])
  @@ -340,3 +344,21 @@
   
   dnl aclocal-1.4 backwards compatibility:
   dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
  +
  +## ----------------- ##
  +## LTDL_INIT Options ##
  +## ----------------- ##
  +
  +m4_define([_LTDL_MODE], [])
  +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
  +              [m4_define([_LTDL_MODE], [nonrecursive])])
  +LT_OPTION_DEFINE([LTDL_INIT], [recursive],
  +              [m4_define([_LTDL_MODE], [recursive])])
  +LT_OPTION_DEFINE([LTDL_INIT], [subproject],
  +              [m4_define([_LTDL_MODE], [subproject])])
  +
  +m4_define([_LTDL_TYPE], [])
  +LT_OPTION_DEFINE([LTDL_INIT], [installable],
  +              [m4_define([_LTDL_TYPE], [installable])])
  +LT_OPTION_DEFINE([LTDL_INIT], [convenience],
  +              [m4_define([_LTDL_TYPE], [convenience])])
  Index: tests/configure-iface.at
  ===================================================================
  RCS file: tests/configure-iface.at
  diff -N tests/configure-iface.at
  --- /dev/null 1 Jan 1970 00:00:00 -0000
  +++ tests/configure-iface.at 6 Jan 2008 16:32:11 -0000
  @@ -0,0 +1,267 @@
  +# configure-iface.at -- test ltdl configure interface         -*- Autotest 
-*-
  +#
  +#   Copyright (C) 2007 Free Software Foundation, Inc.
  +#   Written by Gary V. Vaughan, 2007
  +#
  +#   This file is part of GNU Libtool.
  +#
  +# GNU Libtool 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 of
  +# the License, or (at your option) any later version.
  +#
  +# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
  +# can be downloaded from  http://www.gnu.org/licenses/gpl.html,
  +# or obtained by writing to the Free Software Foundation, Inc.,
  +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  +####
  +
  +AT_BANNER([configure interface to libltdl.])
  +
  +# _LTDL_SETUP
  +# -----------
  +m4_pushdef([_LTDL_SETUP],
  +[AT_DATA([main.c],
  +[[#include <ltdl.h>
  +#include <stdio.h>
  +
  +typedef int funcp (void);
  +
  +static int errors = 0;
  +
  +int
  +main (int argc, char **argv)
  +{
  +  lt_dlhandle handle;
  +
  +  LTDL_SET_PRELOADED_SYMBOLS();
  +
  +  if (lt_dlinit () != 0)
  +    {
  +      fprintf (stderr, "error during initialization: %s
", lt_dlerror ());
  +      return 1;
  +    }
  +
  +  handle = lt_dlopenext ("libmodule");
  +  if (!handle)
  +    {
  +      fprintf (stderr, "can't open libmodule: %s
", lt_dlerror ());
  +      ++errors;
  +    }
  +
  +  {
  +    funcp *f = (funcp *) lt_dlsym (handle, "f");
  +
  +    if (f)
  +      {
  +        printf ("%d
", f ());
  +      }
  +    else
  +      {
  +        fprintf (stderr, "function `f' not found: %s
", lt_dlerror ());
  +        ++errors;
  +      }
  +  }
  +
  +  if (lt_dlexit () != 0)
  +    {
  +      fprintf (stderr, "error during exit: %s
", lt_dlerror ());
  +      ++errors;
  +    }
  +
  +  return (errors != 0);
  +}
  +]])
  +
  +AT_DATA([libmodule.c],
  +[[#ifdef __cplusplus
  +extern "C" {
  +#endif
  +int f (void) { return 5150; }
  +#ifdef __cplusplus
  +}
  +#endif
  +]])
  +
  +AT_DATA([expout],
  +[[5150
  +]])
  +])# _LTDL_SETUP
  +
  +
  +## -------------------- ##
  +## Installable libltdl. ##
  +## -------------------- ##
  +
  +AT_SETUP([installable libltdl])
  +AT_KEYWORDS([libltdl])
  +
  +_LTDL_SETUP
  +
  +AT_DATA([configure.ac],
  +[[AC_INIT([installable-ltdl-demo], ]AT_PACKAGE_VERSION[, 
]AT_PACKAGE_BUGREPORT[)
  +AC_CONFIG_AUX_DIR([libltdl/config])
  +AC_CONFIG_MACRO_DIR([libltdl/m4])
  +AC_CONFIG_HEADERS([config.h:config.hin])
  +LT_CONFIG_LTDL_DIR([libltdl])
  +AM_INIT_AUTOMAKE([foreign])
  +AC_PROG_CC
  +AM_PROG_CC_C_O
  +LT_INIT([dlopen])
  +LTDL_INIT([installable])
  +AC_CONFIG_FILES([Makefile])
  +AC_OUTPUT
  +]])
  +
  +AT_DATA([Makefile.am],
  +[[AUTOMAKE_OPTIONS   = 1.7
  +
  +SUBDIRS                      = libltdl
  +
  +AM_CFLAGS            = $(LTDLINCL)
  +
  +lib_LTLIBRARIES              = libmodule.la
  +libmodule_la_LDFLAGS = -module
  +
  +bin_PROGRAMS         = main
  +main_LDFLAGS         = -dlopen libmodule.la
  +main_LDADD           = $(LIBLTDL)
  +]])
  +
  +# Install everything!
  +prefix=`pwd`/_inst
  +
  +LT_AT_BOOTSTRAP([--ltdl], [-I libltdl/m4], [], [--add-missing], [],
  +        [--with-included-ltdl --prefix=$prefix], [all install])
  +
  +# TODO: Check that the installed program `main' is linked against our libltdl
  +AT_CHECK([test -f $prefix/lib/libltdl.la])
  +AT_CHECK([test -f $prefix/include/ltdl.h])
  +
  +AT_CLEANUP
  +
  +
  +## ------------------------------- ##
  +## Link against installed libltdl. ##
  +## ------------------------------- ##
  +
  +AT_SETUP([--with-ltdl-include/lib])
  +AT_KEYWORDS([libltdl])
  +
  +# Install libltdl
  +prefix=`pwd`/_inst
  +
  +LT_AT_LIBTOOLIZE([--copy --ltdl=.])
  +LT_AT_CONFIGURE([--enable-ltdl-install --prefix=$prefix])
  +LT_AT_MAKE([all install])
  +
  +# Remove build files
  +for x in .* *; do
  +  test $x == _inst || rm -rf $x
  +done
  +
  +AT_CHECK([test -f $prefix/lib/libltdl.la])
  +AT_CHECK([test -f $prefix/include/ltdl.h])
  +
  +_LTDL_SETUP
  +
  +AT_DATA([configure.ac],
  +[[AC_INIT([configure-iface-demo], ]AT_PACKAGE_VERSION[, 
]AT_PACKAGE_BUGREPORT[)
  +AC_CONFIG_MACRO_DIR([_inst/aclocal])
  +AC_CONFIG_HEADERS([config.h:config.hin])
  +AM_INIT_AUTOMAKE([foreign])
  +AC_PROG_CC
  +AM_PROG_CC_C_O
  +LT_INIT([dlopen])
  +LTDL_INIT
  +AC_CONFIG_FILES([Makefile])
  +AC_OUTPUT
  +]])
  +
  +AT_DATA([Makefile.am],
  +[[AUTOMAKE_OPTIONS   = 1.7
  +
  +AM_CFLAGS            = $(LTDLINCL)
  +
  +lib_LTLIBRARIES              = libmodule.la
  +libmodule_la_LDFLAGS = -module
  +
  +bin_PROGRAMS         = main
  +main_LDFLAGS         = -dlopen libmodule.la
  +main_LDADD           = $(LIBLTDL)
  +]])
  +
  +# We don't use 'libtoolize --ltdl', so that we get an error if the test
  +# tries to build and link against its own ltdl sources:
  +LT_AT_BOOTSTRAP([], [-I _inst/aclocal], [], [--add-missing], [],
  +     [--with-ltdl-lib=$prefix/lib --with-ltdl-include=$prefix/include],
  +     [all])
  +
  +## TODO: portable ldd check for correct libltdl
  +## Currently, this test doesn't fail if `main' ends up linking against a
  +## previously installed system libltdl.
  +LT_AT_NOINST_EXEC_CHECK([./main], [-dlopen libmodule.la], [], [expout], [])
  +
  +AT_CLEANUP
  +
  +
  +## ------------------------------------- ##
  +## Link against shipped libltdl sources. ##
  +## ------------------------------------- ##
  +
  +AT_SETUP([--with-included-ltdl])
  +AT_KEYWORDS([libltdl])
  +
  +_LTDL_SETUP
  +
  +AT_DATA([configure.ac],
  +[[AC_INIT([configure-iface-demo], ]AT_PACKAGE_VERSION[, 
]AT_PACKAGE_BUGREPORT[)
  +AC_CONFIG_AUX_DIR([libltdl/config])
  +AC_CONFIG_MACRO_DIR([libltdl/m4])
  +AC_CONFIG_HEADERS([config.h:config.hin])
  +LT_CONFIG_LTDL_DIR([libltdl])
  +AM_INIT_AUTOMAKE([foreign])
  +AC_PROG_CC
  +AM_PROG_CC_C_O
  +LT_INIT([dlopen])
  +LTDL_INIT
  +AC_CONFIG_FILES([Makefile])
  +AC_OUTPUT
  +]])
  +
  +AT_DATA([Makefile.am],
  +[[AUTOMAKE_OPTIONS   = 1.7
  +
  +SUBDIRS                      = libltdl
  +
  +AM_CFLAGS            = $(LTDLINCL)
  +
  +lib_LTLIBRARIES              = libmodule.la
  +libmodule_la_LDFLAGS = -module
  +
  +bin_PROGRAMS         = main
  +main_LDFLAGS         = -dlopen libmodule.la
  +main_LDADD           = $(LIBLTDL)
  +]])
  +
  +LT_AT_BOOTSTRAP([--ltdl], [-I libltdl/m4], [], [--add-missing], [],
  +        [--with-included-ltdl], [all])
  +
  +# --with-included-ltdl should build a convenience lib by default
  +AT_CHECK([test -f libltdl/libltdlc.la])
  +
  +## TODO: portable ldd check for correct libltdl
  +## Currently, this test doesn't fail if `main' ends up linking against a
  +## previously installed system libltdl.
  +LT_AT_NOINST_EXEC_CHECK([./main], [-dlopen libmodule.la], [], [expout], [])
  +
  +AT_CLEANUP
  +
  +dnl Be careful not to let the definition leak into other tests
  +m4_popdef([_LTDL_SETUP])
  Index: tests/nonrecursive.at
  ===================================================================
  RCS file: /sources/libtool/libtool/tests/nonrecursive.at,v
  retrieving revision 1.9
  diff -u -u -r1.9 nonrecursive.at
  --- tests/nonrecursive.at 25 Mar 2007 12:12:43 -0000 1.9
  +++ tests/nonrecursive.at 6 Jan 2008 16:32:11 -0000
  @@ -1,6 +1,6 @@
   # nonrecursive.at -- test nonrecursive Automake Libltdl       -*- Autotest 
-*-
   #
  -#   Copyright (C) 2005 Free Software Foundation, Inc.
  +#   Copyright (C) 2005, 2008 Free Software Foundation, Inc.
   #   Written by Gary V. Vaughan, 2005
   #
   #   This file is part of GNU Libtool.
  @@ -30,7 +30,7 @@
   m4_pushdef([_LTDL_SETUP],
   [AT_DATA([configure.ac],
   [[AC_INIT([subdirectory-demo], ]AT_PACKAGE_VERSION[, ]AT_PACKAGE_BUGREPORT[)
  -LT_CONFIG_LTDL_DIR([ltdl], [nonrecursive])
  +LT_CONFIG_LTDL_DIR([ltdl])
   AC_CONFIG_AUX_DIR([ltdl/config])
   AC_CONFIG_MACRO_DIR([ltdl/m4])
   AC_CONFIG_LIBOBJ_DIR([ltdl])
  @@ -39,7 +39,7 @@
   AC_PROG_CC
   AM_PROG_CC_C_O
   LT_INIT
  -LT_WITH_LTDL
  +LTDL_INIT([nonrecursive])
   AC_CONFIG_FILES([Makefile])
   AC_OUTPUT
   ]])
  Index: tests/recursive.at
  ===================================================================
  RCS file: /sources/libtool/libtool/tests/recursive.at,v
  retrieving revision 1.6
  diff -u -u -r1.6 recursive.at
  --- tests/recursive.at 25 Mar 2007 12:12:43 -0000 1.6
  +++ tests/recursive.at 6 Jan 2008 16:32:11 -0000
  @@ -1,6 +1,6 @@
   # recursive.at -- test recursive Automake libltdl build       -*- Autotest 
-*-
   #
  -#   Copyright (C) 2005 Free Software Foundation, Inc.
  +#   Copyright (C) 2005, 2008 Free Software Foundation, Inc.
   #   Written by Gary V. Vaughan, 2005
   #
   #   This file is part of GNU Libtool.
  @@ -29,14 +29,14 @@
   m4_pushdef([_LTDL_SETUP],
   [AT_DATA([configure.ac],
   [[AC_INIT([subdirectory-demo], ]AT_PACKAGE_VERSION[, ]AT_PACKAGE_BUGREPORT[)
  -LT_CONFIG_LTDL_DIR([ltdl], [recursive])
  +LT_CONFIG_LTDL_DIR([ltdl])
   AC_CONFIG_AUX_DIR([ltdl/config])
   AC_CONFIG_MACRO_DIR([ltdl/m4])
   AC_CONFIG_LIBOBJ_DIR([ltdl])
   AC_CONFIG_HEADERS([config.h:config.hin])
   AM_INIT_AUTOMAKE([foreign])
   LT_INIT
  -LT_WITH_LTDL
  +LTDL_INIT([recursive])
   AC_CONFIG_FILES([Makefile ltdl/Makefile])
   AC_OUTPUT
   ]])
  @@ -81,7 +81,7 @@
   
   _LTDL_SETUP
   
  -LT_AT_LIBTOOLIZE([--copy --ltdl])
  +LT_AT_LIBTOOLIZE([--debug --copy --ltdl])
   AT_CHECK([if test -f ltdl/configure.ac; then false; fi])
   
   LT_AT_AUTORECONF([--force --verbose --install])
-- 
  ())_.              Email me: address@hidden
  ( '/           Read my blog: http://blog.azazil.net
  / )=         ...and my book: http://sources.redhat.com/autobook
`(_~)_ Join my AGLOCO Network: http://www.agloco.com/r/BBBS7912 
_________________________________________________________
This patch notification generated by vcsapply version 1.0
http://savannah.gnu.org/projects/cvs-utils

Attachment: pgp_mWcOwdmdr.pgp
Description: PGP signature


reply via email to

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