Go to file
Gary V. Vaughan a42ab2b857 maint: consolidate Introductions of README and README.alpha.
* README (Introduction): Rewritten to a more logical order for
first time users, incorporating some additional text that was
previously only in README.alpha.
* README.alpha (Introduction): Adjust to match.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2010-09-19 10:51:30 +07:00
doc Document libtool variable to_host_file_cmd. 2010-09-17 13:38:21 -04:00
libltdl Copy over DLL_EXPORT handling from C to C++ for non-GCC on w32. 2010-09-17 22:25:45 +02:00
mail Roll back copyright changes. 2004-01-04 20:45:24 +00:00
tests tests: avoid distcheck failure with --disable-ltdl-install. 2010-09-18 10:21:38 +02:00
.gitattributes Make ChangeLog merges easier. 2008-04-16 14:52:35 -06:00
.gitignore maint: ship .xz, not .lzma 2010-09-14 07:59:15 -06:00
AUTHORS Simplify license variations, and add missing license texts. 2010-06-09 19:00:19 +07:00
bootstrap Remove announce-gen.m4sh and mailnotify.m4sh. 2010-09-01 12:52:55 +07:00
ChangeLog maint: consolidate Introductions of README and README.alpha. 2010-09-19 10:51:30 +07:00
ChangeLog.1996 Simplify license variations, and add missing license texts. 2010-06-09 19:00:19 +07:00
ChangeLog.1997 Simplify license variations, and add missing license texts. 2010-06-09 19:00:19 +07:00
ChangeLog.1998 Simplify license variations, and add missing license texts. 2010-06-09 19:00:19 +07:00
ChangeLog.1999 Simplify license variations, and add missing license texts. 2010-06-09 19:00:19 +07:00
ChangeLog.2000 Simplify license variations, and add missing license texts. 2010-06-09 19:00:19 +07:00
ChangeLog.2001 Simplify license variations, and add missing license texts. 2010-06-09 19:00:19 +07:00
ChangeLog.2002 Simplify license variations, and add missing license texts. 2010-06-09 19:00:19 +07:00
ChangeLog.2003 Simplify license variations, and add missing license texts. 2010-06-09 19:00:19 +07:00
ChangeLog.2004 Simplify license variations, and add missing license texts. 2010-06-09 19:00:19 +07:00
ChangeLog.2005 Simplify license variations, and add missing license texts. 2010-06-09 19:00:19 +07:00
ChangeLog.2006 Simplify license variations, and add missing license texts. 2010-06-09 19:00:19 +07:00
ChangeLog.2007 Simplify license variations, and add missing license texts. 2010-06-09 19:00:19 +07:00
ChangeLog.2008 Simplify license variations, and add missing license texts. 2010-06-09 19:00:19 +07:00
ChangeLog.2009 Simplify license variations, and add missing license texts. 2010-06-09 19:00:19 +07:00
configure.ac maint: ship .xz, not .lzma 2010-09-14 07:59:15 -06:00
COPYING Add COPYING file to CVS, GPLv2. 2008-02-09 22:04:34 +00:00
HACKING maint: ship .xz, not .lzma 2010-09-14 07:59:15 -06:00
libtoolize.m4sh Remove double `Generated from foo.m4sh' lines. 2010-08-31 17:54:10 +07:00
ltmain.c * HACKING, Makefile.am, Makefile.maint, bootstrap, 2007-02-26 07:44:25 +00:00
Makefile.am Add file name conversion from $build to toolchain. 2010-09-06 08:23:52 +02:00
Makefile.maint maint: ship .xz, not .lzma 2010-09-14 07:59:15 -06:00
NEWS Initial support for the NAG Fortran compiler on GNU/Linux. 2010-09-12 12:26:18 +02:00
PORTING
README maint: consolidate Introductions of README and README.alpha. 2010-09-19 10:51:30 +07:00
README.alpha maint: consolidate Introductions of README and README.alpha. 2010-09-19 10:51:30 +07:00
THANKS Fixup botched ChangeLog entry, fix name added to THANKS. 2010-06-19 11:11:43 +02:00
TODO [cygwin|mingw|cross-compile]: Path conversion support. 2010-08-28 03:32:31 -04:00

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

1. Introduction
===============

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

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.

Please note that you can build GNU Libtool from this directory using a
vendor Make program as long as this is an official release tarball;
otherwise you will need GNU Make for sane VPATH support.  See the file
INSTALL for complete generic instructions on how to build and install
Libtool.  Also, see the file doc/notes.txt for some platform- specific
information.

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

Please try it on all the platforms you have access to:

 * If it builds and passes the test suite (`gmake check'), please send
   a short note to the libtool mailing list <libtool@gnu.org> with a
   subject line including the string `[PLATFORM]', and containing the
   details from the end of `./libtool --help' in the body.
 * Otherwise, see `Reporting Bugs' below for how to help us fix any
   problems you discover.

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


2. 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 send us your information from the end of the help message given by
`./libtool --help'.


3. The Test Suites
==================

Libtool comes with two integrated sets of tests to check that your build
is sane.  You can run both test suites like this, assuming that `gmake'
refers to GNU make:

  gmake -k check

If you want to run the old testsuite only, do it like this:

  gmake check TESTSUITEFLAGS=-V

If you want to run the new testsuite only, do it like this:

  gmake check-local

The tests of the old test suite 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 of the old test suite 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:

  gmake check TESTS="tests/cdemo-static.test tests/cdemo-static-make.test \
                     tests/cdemo-static-exec.test" \
              TESTSUITEFLAGS=-V

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 the
information from the end of `$(top_builddir)/libtool --help' to the bug
report mailing list, <bug-libtool@gnu.org> with a subject line that
includes the string `[TEST FAILURE]'.  The file test-suite.log contains
the verbose output from all failed tests.

In order to enable debug shell tracing, you can set VERBOSE=debug when
running the old test suite.


In the long run, Libtool will move to using only the new,
Autotest-driven testsuite.  Its usage is documented in

  info Autoconf 'testsuite Invocation'

but simple help may also be obtained through

  gmake check-local TESTSUITEFLAGS='--help'

For verbose output, add the flag `-v', for running only a subset of the
independent tests, merely specify them by number or by keyword, both of
which are displayed with the `--list' flag.  For example, the `libtool'
keyword is used for the tests that exercise only this script.  So it is
possible to test an installed script, possibly from a different Libtool
release, with
  gmake check-local TESTSUITEFLAGS="-k libtool LIBTOOL=/path/to/libtool"

Some tests, like the one exercising max_cmd_len limits, make use of this
to invoke the testsuite recursively on a subset of tests.  For these
tests, the variable INNER_TESTSUITEFLAGS may be used.  It will be
expanded right after the `-k libtool', without separating whitespace,
so that further limiting of the recursive set of tests is possible.
For example, to run only the template tests within the max_cmd_len, use
  gmake check-local TESTSUITEFLAGS="-v -x -k max_cmd_len \
		      INNER_TESTSUITEFLAGS=',template -v -x'"

If you wish to report test failures to the libtool list, you need to
send the file `tests/testsuite.log' to the bug report mailing list,
<bug-libtool@gnu.org>.

4. Obtaining the Latest Sources
===============================

* The master libtool repository is stored in git.

  If you are a member of the savannah group for GNU Libtool, a writable
  copy of the libtool repository can be obtained by:

    git clone <savannah-user>@git.sv.gnu.org:/srv/git/libtool.git

  If you are behind a firewall that blocks the git protocol, you may
  find it useful to use

    git config --global url.http://git.sv.gnu.org/r/.insteadof \
      git://git.sv.gnu.org/

  to force git to transparently rewrite all savannah git references to
  use http.

  If you are not a member of the savannah group for GNU Libtool, you can
  still fetch a read-only copy with either:

    git clone git://git.sv.gnu.org/libtool.git

  or using the CVS pserver protocol:

    cvs -d:pserver:anonymous@pserver.git.sv.gnu.org:/srv/git/libtool.git \
        co -d libtool HEAD

* Before you can build from git, you need to bootstrap.  This requires:
  - Autoconf 2.62 or later
  - Automake 1.11.1 or later
  - Help2man 1.29 or later
  - Xz 4.999.8beta or later (from <http://tukaani.org/xz>)
  - Texinfo 4.8 or later
  - Any prerequisites of the above (such as m4, perl, tex)

  Note that these bootstrapping dependencies are much stricter than
  those required to use a destributed release for your own packages.
  After installation, GNU Libtool is designed to work either standalone,
  or optionally with:
  - Autoconf 2.59 or later
  - Automake 1.9.6 or later

5. Version Numbering
====================

People have complained that they find the version numbering scheme under
which libtool is released confusing... so we've changed it!

It works like this:

	<major-number>.<minor-number>

Releases with a <major-number> less than 1 were not yet feature
complete.  Releases with a <major-number> of 1 used the old numbering
scheme that everyone disliked so much.  Releases with a <major-number>
of 2 us the new scheme described here.  If libtool ever undergoes a
major rewrite or substantial restructuring, the <major-number> will be
incremented again.

If we make a patch release to fix bugs in a stable release, we use a
third number, so:

      <major-number>.<minor-number>.<micro-number>

Version numbers are chosen to make it easy for users to decide two
things:

  Q: How `developed' is this release?
  A: The higher the number, the better!
  Q: How `stable' is this release?
  A: - If the <minor-number> is even, it is a stable release, `2.0'.
     - If the <minor-number> is odd, it is a development version with
       new features compared to the last stable release, `2.1a'.
     - If it has an `odd'[1] letter after the version number,  it is a
       snapshot direct from CVS, `2.1a'.
     - If it has an `even'[1] letter after the version number, it is an
       alpha quality release, `2.1b'.
     - If it has three numbers in the version, it is a patch release,
       fixing bugs from the stable release (with no new features), `2.0.1'.

[1] We always increment the letter in the repository before *and* after
    making a release tarball.  This means that "odd" letters
    (a,c,e,g...) only exist in the repository, and "even" letters are
    used instantaneously for an alpha release.  Since the odd lettered
    version numbers cover many states of the tree, we also qualify them
    by adding the cvs version of the ChangeLog:

    $ libtool --version
    ltmain.sh (GNU libtool 1.1603 2004/09/12 22:02:07) 2.1a

    Copyright (C) 2004  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.

For more details about version numbers, see:

    http://www.gnu.org/software/libtool/contribute.html
-- 
  Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
  Foundation, Inc.
  Written by Gary V. Vaughan, 2004

  This file is part of GNU Libtool.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.  This file is offered as-is,
without warranty of any kind.


Local Variables:
mode: text
fill-column: 72
End:
vim:tw=72