Control where win32 DLLs get installed.
[libtool/ericb.git] / README
blob612699e833919ae3bc446825e62b6ca9d1c4ebb2
1 GNU Libtool
2 ***********
4 1. Introduction
5 ===============
7 This is GNU Libtool, a generic library support script.  Libtool hides
8 the complexity of using shared libraries behind a consistent, portable
9 interface.
11 To use Libtool, add the new generic library building commands to your
12 Makefile, Makefile.in, or Makefile.am.  See the documentation for
13 details.
15 Libtool's home page is:
17   http://www.gnu.org/software/libtool/libtool.html
19 See the file NEWS for a description of recent changes to Libtool.
21 See the file INSTALL for generic instructions on how to build and install
22 Libtool.  Please see the file doc/notes.txt for some platform-specific
23 information.  Please note that you need GNU make to build Libtool.
25 See the info node (libtool)Tested Platforms. (or the file
26 doc/PLATFORMS) for a list of platforms that Libtool supports.
29 2. Reporting Bugs
30 =================
32 If you have any suggestions or bug reports, or you wish to port Libtool
33 to a new platform, please send electronic mail to the libtool mailing
34 list <libtool@gnu.org> or bug reports to <bug-libtool@gnu.org>.  Be sure
35 to send us your information from the end of the help message given by
36 `./libtool --help'.
39 3. The Test Suites
40 ==================
42 Libtool comes with two integrated sets of tests to check that your build
43 is sane.  You can run both test suites like this, assuming that `gmake'
44 refers to GNU make:
46   gmake -k check
48 If you want to run the old testsuite only, do it like this:
50   gmake check TESTSUITEFLAGS=-V
52 If you want to run the new testsuite only, do it like this:
54   gmake check-local
56 The tests of the old test suite run in groups in the various demo
57 subdirectories, so if one of the tests early in a group FAILs, the rest
58 of the tests in that group will be SKIPped.  If you see a FAIL further
59 into a group, even if a test with the same name PASSes in another test
60 group, you need to take note of the name of the first test in the group
61 if you want to rerun the group with FAILures to get verbose output.
63 To run a test group of the old test suite in isolation (say, you think
64 you have fixed a bug, but don't want to rerun the entire suite), you can
65 do it like this:
67   gmake check TESTS="tests/cdemo-static.test tests/cdemo-make.test \
68                      tests/cdemo-exec.test" \
69               TESTSUITEFLAGS=-V
71 Providing that you have a FAIL from the most recent group from a
72 particular demo directory (like the cdemo-static.test group above), you
73 can explore the state of the directory to help with debugging.
75 If you wish to report a test group failure to the libtool list, you need
76 to send the verbose output of the FAILing group, along with the
77 information from the end of `$(top_builddir)/libtool --help' to the bug
78 report mailing list, <bug-libtool@gnu.org> with a subject line that
79 includes the string `[TEST FAILURE]'.  From a Bourne compatible shell,
80 you can generate verbose test output like this:
82   VERBOSE=yes gmake check \
83   TESTS="tests/cdemo-static.test tests/cdemo-make.test tests/cdemo-exec.test" \
84   TESTSUITEFLAGS=-V | tee cdemo-static-group.log
86 In order to enable debug shell tracing, use VERBOSE=debug instead of
87 VERBOSE=yes.
90 In the long run, Libtool will move to using only the new,
91 Autotest-driven testsuite.  Its usage is documented in
93   info Autoconf 'testsuite Invocation'
95 but simple help may also be obtained through
97   gmake check-local TESTSUITEFLAGS='--help'
99 For verbose output, add the flag `-v', for running only a subset of the
100 independent tests, merely specify them by number or by keyword, both of
101 which are displayed with the `--list' flag.  For example, the `libtool'
102 keyword is used for the tests that exercise only this script.  So it is
103 possible to test an installed script, possibly from a different Libtool
104 release, with
105   gmake check-local TESTSUITEFLAGS="-k libtool LIBTOOL=/path/to/libtool"
107 Some tests, like the one exercising max_cmd_len limits, make use of this
108 to invoke the testsuite recursively on a subset of tests.  For these
109 tests, the variable INNER_TESTSUITEFLAGS may be used.  It will be
110 expanded right after the `-k libtool', without separating whitespace,
111 so that further limiting of the recursive set of tests is possible.
112 For example, to run only the template tests within the max_cmd_len, use
113   gmake check-local TESTSUITEFLAGS="-v -x -k max_cmd_len \
114                       INNER_TESTSUITEFLAGS=',template -v -x'"
116 If you wish to report test failures to the libtool list, you need to
117 send the file `tests/testsuite.log' to the bug report mailing list,
118 <bug-libtool@gnu.org>.
120 4. Version Numbering
121 ====================
123 People have complained that they find the version numbering scheme under
124 which libtool is released confusing... so we've changed it!
126 It works like this:
128         <major-number>.<minor-number>
130 Releases with a <major-number> less than 1 were not yet feature
131 complete.  Releases with a <major-number> of 1 used the old numbering
132 scheme that everyone disliked so much.  Releases with a <major-number>
133 of 2 us the new scheme described here.  If libtool ever undergoes a
134 major rewrite or substantial restructuring, the <major-number> will be
135 incremented again.
137 If we make a patch release to fix bugs in a stable release, we use a
138 third number, so:
140       <major-number>.<minor-number>.<micro-number>
142 Version numbers are chosen to make it easy for users to decide two
143 things:
145   Q: How `developed' is this release?
146   A: The higher the number, the better!
147   Q: How `stable' is this release?
148   A: - If the <minor-number> is even, it is a stable release, `2.0'.
149      - If the <minor-number> is odd, it is a development version with
150        new features compared to the last stable release, `2.1a'.
151      - If it has an `odd'[1] letter after the version number,  it is a
152        snapshot direct from CVS, `2.1a'.
153      - If it has an `even'[1] letter after the version number, it is an
154        alpha quality release, `2.1b'.
155      - If it has three numbers in the version, it is a patch release,
156        fixing bugs from the stable release (with no new features), `2.0.1'.
158 [1] We always increment the letter in the repository before *and* after
159     making a release tarball.  This means that "odd" letters
160     (a,c,e,g...) only exist in the repository, and "even" letters are
161     used instantaneously for an alpha release.  Since the odd lettered
162     version numbers cover many states of the tree, we also qualify them
163     by adding the cvs version of the ChangeLog:
165     $ libtool --version
166     ltmain.sh (GNU libtool 1.1603 2004/09/12 22:02:07) 2.1a
168     Copyright (C) 2004  Free Software Foundation, Inc.
169     This is free software; see the source for copying conditions.  There is NO
170     warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
172 For more details about version numbers, see:
174     http://www.gnu.org/software/libtool/contribute.html
176 -- 
177   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009  Free Software
178   Foundation, Inc.
179   Written by Gary V. Vaughan, 2004
181   This file is part of GNU Libtool.
183 GNU Libtool is free software; you can redistribute it and/or
184 modify it under the terms of the GNU General Public License as
185 published by the Free Software Foundation; either version 2
186 of the License, or (at your option) any later version.
188 GNU Libtool is distributed in the hope that it will be useful,
189 but WITHOUT ANY WARRANTY; without even the implied warranty of
190 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
191 GNU General Public License for more details.
193 You should have received a copy of the GNU General Public License
194 along with GNU Libtool; see the file COPYING.  If not, a copy
195 can be downloaded from http://www.gnu.org/licenses/gpl.html, or
196 obtained by writing to the Free Software Foundation, Inc.,
197 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
200 Local Variables:
201 mode: text
202 fill-column: 72
203 End:
204 vim:tw=72