GNU Info

Info Node: (libtool.info)AC_PROG_LIBTOOL

(libtool.info)AC_PROG_LIBTOOL


Up: Configuring
Enter node , (file) or (file)node

The `AC_PROG_LIBTOOL' macro
---------------------------

   If you are using GNU Autoconf (or Automake), you should add a call to
`AC_PROG_LIBTOOL' to your `configure.in' file.  This macro adds many
new tests to the `configure' script so that the generated libtool
script will understand the characteristics of the host:

 - Macro: AC_PROG_LIBTOOL
 - Macro: AM_PROG_LIBTOOL
     Add support for the `--enable-shared' and `--disable-shared'
     `configure' flags.(1)  `AM_PROG_LIBTOOL' was the old name for this
     macro, and although supported at the moment is deprecated.

     By default, this macro turns on shared libraries if they are
     available, and also enables static libraries if they don't
     conflict with the shared libraries.  You can modify these defaults
     by calling either the `AC_DISABLE_SHARED' or `AC_DISABLE_STATIC'
     macros:

          # Turn off shared libraries during beta-testing, since they
          # make the build process take too long.
          AC_DISABLE_SHARED
          AC_PROG_LIBTOOL

     The user may specify modified forms of the configure flags
     `--enable-shared' and `--enable-static' to choose whether shared
     or static libraries are built based on the name of the package.
     For example, to have shared `bfd' and `gdb' libraries built, but
     not shared `libg++', you can run all three `configure' scripts as
     follows:

          trick$ ./configure --enable-shared=bfd,gdb

     In general, specifying `--enable-shared=PKGS' is the same as
     configuring with `--enable-shared' every package named in the
     comma-separated PKGS list, and every other package with
     `--disable-shared'.  The `--enable-static=PKGS' flag behaves
     similarly, but it uses `--enable-static' and `--disable-static'.
     The same applies to the `--enable-fast-install=PKGS' flag, which
     uses `--enable-fast-install' and `--disable-fast-install'.

     The package name `default' matches any packages which have not set
     their name in the `PACKAGE' environment variable.

     This macro also sets the shell variable LIBTOOL_DEPS, that you can
     use to automatically update the libtool script if it becomes
     out-of-date.  In order to do that, add to your `configure.in':

          AC_PROG_LIBTOOL
          AC_SUBST(LIBTOOL_DEPS)

     and, to `Makefile.in' or `Makefile.am':

          LIBTOOL_DEPS = @LIBTOOL_DEPS@
          libtool: $(LIBTOOL_DEPS)
                  $(SHELL) ./config.status --recheck

     If you are using GNU automake, you can omit the assignment, as
     automake will take care of it.  You'll obviously have to create
     some dependency on `libtool'.


 - Macro: AC_LIBTOOL_DLOPEN
     Enable checking for dlopen support. This macro should be used if
     the package makes use of the `-dlopen' and `-dlpreopen' flags,
     otherwise libtool will assume that the system does not support
     dlopening.  The macro must be called *before* `AC_PROG_LIBTOOL'.

 - Macro: AC_LIBTOOL_WIN32_DLL
     This macro should be used if the package has been ported to build
     clean dlls on win32 platforms.  Usually this means that any
     library data items are exported with `__declspec(dllexport)' and
     imported with `__declspec(dllimport)'.  If this macro is not used,
     libtool will assume that the package libraries are not dll clean
     and will build only static libraries on win32 hosts.

     This macro must be called *before* `AC_PROG_LIBTOOL', and
     provision must be made to pass `-no-undefined' to `libtool' in
     link mode from the package `Makefile'.  Naturally, if you pass
     `-no-undefined', you must ensure that all the library symbols
     *really are* defined at link time!

 - Macro: AC_DISABLE_FAST_INSTALL
     Change the default behaviour for `AC_PROG_LIBTOOL' to disable
     optimization for fast installation.  The user may still override
     this default, depending on platform support, by specifying
     `--enable-fast-install'.

 - Macro: AC_DISABLE_SHARED
 - Macro: AM_DISABLE_SHARED
     Change the default behaviour for `AC_PROG_LIBTOOL' to disable
     shared libraries.  The user may still override this default by
     specifying `--enable-shared'.

 - Macro: AC_DISABLE_STATIC
 - Macro: AM_DISABLE_STATIC
     Change the default behaviour for `AC_PROG_LIBTOOL' to disable
     static libraries.  The user may still override this default by
     specifying `--enable-static'.

   The tests in `AC_PROG_LIBTOOL' also recognize the following
environment variables:

 - Variable: CC
     The C compiler that will be used by the generated `libtool'.  If
     this is not set, `AC_PROG_LIBTOOL' will look for `gcc' or `cc'.

 - Variable: CFLAGS
     Compiler flags used to generate standard object files.  If this is
     not set, `AC_PROG_LIBTOOL' will not use any such flags.  It affects
     only the way `AC_PROG_LIBTOOL' runs tests, not the produced
     `libtool'.

 - Variable: CPPFLAGS
     C preprocessor flags.  If this is not set, `AC_PROG_LIBTOOL' will
     not use any such flags.  It affects only the way `AC_PROG_LIBTOOL'
     runs tests, not the produced `libtool'.

 - Variable: LD
     The system linker to use (if the generated `libtool' requires one).
     If this is not set, `AC_PROG_LIBTOOL' will try to find out what is
     the linker used by CC.

 - Variable: LDFLAGS
     The flags to be used by `libtool' when it links a program.  If
     this is not set, `AC_PROG_LIBTOOL' will not use any such flags.  It
     affects only the way `AC_PROG_LIBTOOL' runs tests, not the produced
     `libtool'.

 - Variable: LIBS
     The libraries to be used by `AC_PROG_LIBTOOL' when it links a
     program.  If this is not set, `AC_PROG_LIBTOOL' will not use any
     such flags.  It affects only the way `AC_PROG_LIBTOOL' runs tests,
     not the produced `libtool'.

 - Variable: NM
     Program to use rather than checking for `nm'.

 - Variable: RANLIB
     Program to use rather than checking for `ranlib'.

 - Variable: LN_S
     A command that creates a link of a program, a soft-link if
     possible, a hard-link otherwise.  `AC_PROG_LIBTOOL' will check for
     a suitable program if this variable is not set.

 - Variable: DLLTOOL
     Program to use rather than checking for `dlltool'.  Only meaningful
     for Cygwin/MS-Windows.

 - Variable: OBJDUMP
     Program to use rather than checking for `objdump'.  Only meaningful
     for Cygwin/MS-Windows.

 - Variable: AS
     Program to use rather than checking for `as'.  Only used on
     Cygwin/MS-Windows at the moment.

   When you invoke the `libtoolize' program (Note: Invoking
libtoolize), it will tell you where to find a definition of
`AC_PROG_LIBTOOL'.  If you use Automake, the `aclocal' program will
automatically add `AC_PROG_LIBTOOL' support to your `configure' script.

   Nevertheless, it is advisable to include a copy of `libtool.m4' in
`acinclude.m4', so that, even if `aclocal.m4' and `configure' are
rebuilt for any reason, the appropriate libtool macros will be used.
The alternative is to hope the user will have a compatible version of
`libtool.m4' installed and accessible for `aclocal'.  This may lead to
weird errors when versions don't match.

   ---------- Footnotes ----------

   (1) `AC_PROG_LIBTOOL' requires that you define the `Makefile'
variable `top_builddir' in your `Makefile.in'.  Automake does this
automatically, but Autoconf users should set it to the relative path to
the top of your build directory (`../..', for example).


automatically generated by info2www version 1.2.2.9