GNU Libtool
***********

Introduction
============

This is GNU Libtool, a generic library support script.  Libtool hides
the complexity of using shared libraries behind a consistent, portable
interface.

To use libtool, add the new generic library building commands to your
Makefile, Makefile.in, or Makefile.am.  See the documentation for
details.

See the info node (libtool)Tested Platforms. (or the file
doc/PLATFORMS) for a list of platforms that libtool supports.

Libtool's home page is:

  http://www.gnu.org/software/libtool/libtool.html

See the file NEWS for a description of recent changes to libtool.

See the file INSTALL for instructions on how to build and install
libtool.

Version Numbering
=================

Note the version numbers in the libtool-1.5.x series are a little strange,
the micro version (x) jumps by two on each release. The version in cvs always
has an odd micro version, while only released versions have even micro versions.
This will change again in the future. For more information about version
numbers see:

    http://www.gnu.org/software/libtool/contribute.html
    

Reporting Bugs
==============

If you have any suggestions or bug reports, or you wish to port
libtool to a new platform, please send electronic mail to the libtool
mailing list <libtool@gnu.org> or bug reports to <bug-libtool@gnu.org>.
Be sure to include the version of libtool that you are using - you can find
out with `./libtool --version'. Also give as much information as necessary on
your OS, compiler and other build tools.


The Test Suite
==============

Libtool comes with an integrated set of tests to check that your build
is sane.  You can run the entire suite like this:

  make check

The tests run in groups in the various demo subdirectories, so if one
of the tests early in a group FAILs, the rest of the tests in that
group will be SKIPPED.  If you see a FAIL further into a group, even
if a test with the same name PASSes in another test group, you need to
take note of the name of the first test in the group if you want to
rerun the group with FAILures to get verbose output.

To run a test group in isolation (say, you think you have fixed a bug,
but don't want to rerun the entire suite), you can do it like this:

  env TESTS='cdemo-static.test cdemo-make.test cdemo-exec.test' make check

Providing that you have a FAIL from the most recent group from a
particular demo directory (like the cdemo-static.test group above), you
can explore the state of the directory to help with debugging.

If you wish to report a test group failure to the libtool list, you
need to send the verbose output of the FAILing group, along with
information such as the host OS, compiler tools, shell etc. to the
bug report mailing list, <bug-libtool@gnu.org>.  You can generate verbose
test output like this:

  env VERBOSE=1 TESTS='cdemo-static.test cdemo-make.test cdemo-exec.test' \
  make check

Alternatively, because each test is a shell script, in a non VPATH build,
you can simply execute the tests, they will be verbose.

Notes
=====

1)  Some HP-UX sed programs are horribly broken, and cannot handle
libtool's requirements, so users may report unusual problems.  There
is no workaround except to install a working sed (such as GNU sed) on
these systems.

2)  The vendor-distributed NCR MP-RAS cc programs emits copyright
on standard error that confuse tests on size of conftest.err.  The
workaround is to specify CC when run configure with CC='cc -Hnocopyr'.

3)  Any earlier DG/UX system with ELF executables, such as R3.10 or
R4.10, is also likely to work, but hasn't been explicitly tested.

4)  On Reliant Unix libtool has only been tested with the Siemens C-compiler
and an old version of gcc provided by Marco Walther.

5)  libtool.m4, ltdl.m4 and the configure.ac files are marked to use
autoconf-mode, which is distributed with GNU Emacs 21, Autoconf itself, and 
all recent releases of XEmacs. 

6)  The default shell on UNICOS 9, a ksh 88e variant, is too buggy to
correctly execute the libtool script.  Users are advised to install a
modern shell such as GNU bash.

7)  Note in some cases you might need to put ABI-changing compiler flags
into the compiler name.  For example, use of
  configure CC='gcc -m32'
rather than
  configure CC=gcc CFLAGS=-m32 LDFLAGS=-m32
might help with this Libtool release.  This will be fixed in Libtool-2.0.

8)  Note that use of libltdl and a native dlopening mechanism for the
same module within one program is not supported.  This includes modules
loaded through inter-module dependencies.

9)  Note that newer Sun Studio Fortran compilers might need Autoconf macros
not yet present in 2.59 but only in CVS Autoconf.

10) Note that Sun C++ compiler versions before 5.6 may need some special
setup to link properly against shared versions of the C++ standard libraries.
See http://lists.gnu.org/archive/html/libtool/2005-08/msg00088.html for
more information.
