]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
To help users submit better bug reports, improve the general
authorGary V. Vaughan <gary@gnu.org>
Sat, 28 Aug 2004 16:15:23 +0000 (16:15 +0000)
committerGary V. Vaughan <gary@gnu.org>
Sat, 28 Aug 2004 16:15:23 +0000 (16:15 +0000)
instructions, and provide additional useful info alongside the bug
reporting address in --help output:

* Makefile.am (edit): Substitute $host_triplet.
* libtoolize.in: Output useful debug info with --help.
* config/ltmain.in: Ditto.
* README: Rewritten.  Added copyright info.
* README-alpha: Rewritten.  Added copyright info.
* HACKING: New file, partly taken from old README-alpha.

ChangeLog
HACKING [new file with mode: 0644]
Makefile.am
README
README-alpha
config/ltmain.in
libtoolize.in

index df264d03bbfd4ac933e8f8c0e58fe832d2f1c654..71b0f2a44c92b631acab090151bc931dc821a84d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2004-08-28  Gary V. Vaughan  <gary@gnu.org>
+
+       To help users submit better bug reports, improve the general
+       instructions, and provide additional useful info alongside the bug
+       reporting address in --help output:
+
+       * Makefile.am (edit): Substitute $host_triplet.
+       * libtoolize.in: Output useful debug info with --help.
+       * config/ltmain.in: Ditto.
+       * README: Rewritten.  Added copyright info.
+       * README-alpha: Rewritten.  Added copyright info.
+       * HACKING: New file, partly taken from old README-alpha.
+
 2004-08-27  Gary V. Vaughan  <gary@gnu.org>
 
        Two things to stop `make distcheck' from trying to rebuild
diff --git a/HACKING b/HACKING
new file mode 100644 (file)
index 0000000..f68734e
--- /dev/null
+++ b/HACKING
@@ -0,0 +1,356 @@
+GNU Libtool
+***********
+
+1. Introduction
+===============
+
+This file attempts to describe the processes we use to maintain libtool,
+and is not part of a release distribution.
+
+2. Maintenance Notes
+====================
+
+* If you incorporate a change from somebody on the net:
+  If it is a large change, you must make sure they have signed the
+  appropriate paperwork, and be sure to add their name and email
+  address to THANKS
+
+* If a change fixes a test, mention the test in the ChangeLog entry.
+
+* If somebody reports a new bug, mention his name in the ChangeLog entry
+  and in the test case you write.
+
+* The correct response to most actual bugs is to write a new test case
+  which demonstrates the bug.  Then fix the bug, re-run the test suite,
+  and check everything in.
+
+* Some files in the libtool package are not owned by libtool.  These
+  files should never be edited here.  These files are:
+       COPYING
+       INSTALL
+       config/
+           + config.guess
+           + config.sub
+           + depcomp
+           + install-sh
+           + mdate-sh
+           + missing
+           + texinfo.tex
+       doc/
+           + fdl.texi
+       libltdl/
+           + COPYING.LESSER
+           + config.guess
+           + config.sub
+           + install-sh
+           + missing
+  The ones that are important for a release can be udated with,
+  `make -fMakefile.maint fetch'.
+
+* Changes other than bug fixes must be mentioned in NEWS
+
+
+2. Test Suite
+=============
+
+* Use "make check" liberally, on as many platforms as you can.  Use as
+  many compilers and linkers you can.
+
+
+3. Naming
+=========
+
+* We've adopted the convention that exported Autoconf macros should be
+  named with a leading `LT_' and be documented in the libtool manual.
+  Internal macros begin with `_LT_' if they are visible to aclocal, or
+  potentially part of an AC_DEFUN/AC_REQUIRE path, or else `_lt_' if
+  they are very low level.  This convention was only introduced just
+  before libtool-2.0, so there may still be exceptions in the existing
+  code.  But all new code should use it.
+
+* All shell variables used internally by libtool's Autoconf macros
+  should be named with the a leading `lt_' (not that they cannot clash
+  with the `_lt_' macro namespace).
+
+
+4. Editing `.am' Files
+======================
+
+* Always use $(...) and not ${...}
+
+* Use `:', not `true'.  Use `exit 1', not `false'.
+
+* Use `##' comments liberally.  Comment anything even remotely unusual.
+
+* Never use basename or dirname.  Instead use sed.
+
+* Do not use `cd' within back-quotes, use `$(am__cd)' instead.
+  Otherwise the directory name may be printed, depending on CDPATH.
+
+* In general, if a loop is required, it should be silent.  Then the body
+  of the loop itself should print each "important" command it runs.
+
+
+5. Editing libtoolize.in and ltmain.in
+======================================
+
+* Use shell functions, but be careful not to assume local scope for
+  variable names.  Don't use `return', instead echo the result of a
+  function and call it from within backquotes.
+
+6. Release Procedure
+====================
+
+* If you are a libtool maintainer, but have not yet registered your
+  gpg public key and (preferred) email address with the FSF, send an
+  email, preferably GPG-signed, to <ftp-upload@gnu.org> that includes
+  the following:
+
+    (a) name of package(s) that you are the maintainer for, and your
+        preferred email address.
+
+    (b) an ASCII armored copy of your GnuPG key, as an attachment.
+       ("gpg --export -a YOUR_KEY_ID > mykey.asc" should give you
+       this.)
+
+  When you have received acknowledgement of your message, the proper GPG
+  keys will be registered on ftp-upload.gnu.org and only then will you be
+  authorized to upload files to the FSF ftp machines.
+
+* Make sure you have a copy of xdelta installed, and a copy of the previous
+  release tarball in the build directory.
+
+* Update the version number in configure.ac.
+  See http://www.gnu.org/software/libtool/contribute.html for details of
+  the numbering scheme.
+
+* Update NEWS, ChangeLog.
+
+* Make sure the 'Be Bourne compatible' shell snippet near the top of
+  ./libtoolize.in, ./ltmain.in matches the latest autoconf wisdom by
+  updating to match CVS autoconf AS_SHELL_SANITIZE in autoconf's
+  lib/m4sugar/m4sh.m4.
+
+* Run ./bootstrap.
+
+* Have some tea.  If you are running on less than 3.6GHz CPU, order
+  a pizza too ;-)
+
+* Run ./configure and then make.
+
+* Run `make -fMakefile.maint fetch', which will fetch new versions of the
+  files that are maintained outside of libtool.
+
+* Run ./commit.
+
+* Run `make -fMakefile.maint cvs-dist' which will build a release tarball
+  (with `make distcheck'), tag the tree with release-$(VERSION) and generate
+  the gpg signature files.
+
+* Run 'make -fMakefile.maint deltas' (pass LASTRELEASE=min.maj[.mic[alpha]]
+  if needed) to create both diff and xdelta files between the previous
+  release tarball and the new with detached gpg signature files and clear
+  signed directive files.
+
+* Upload release tarball, diff file and xdelta file, plus their associated
+  detached gpg signature files and clear signed directive files to
+  ftp-upload.gnu.org.  If the upload is destined for ftp.gnu.org, then the
+  files should be placed in the /incoming/ftp directory.  If the upload is
+  an alpha release destined for alpha.gnu.org, then the files should be
+  placed in the /incoming/alpha directory.
+
+* Send announcement to libtool@gnu.org and autotools-announce@gnu.org,
+  if not an alpha send to info-gnu@gnu.org as well.
+
+* Update version number in configure.ac to next alpha number.
+  See http://www.gnu.org/software/libtool/contribute.html for details of
+  the numbering scheme.
+
+* Update NEWS, ChangeLog.
+
+* Run ./commit.
+
+* Update the webpages, libtool.html will need to indicate the latest
+  release number and the news page should get a HTMLified copy of your
+  release announcement.
+
+* If not an alpha, replace manual.html with the new one
+  (generate with `make -f Makefile.maint web-manual').
+
+
+
+7. Alpha release note template
+==============================
+
+To: libtool@gnu.org, autotools-announce@gnu.org
+Subject: GNU Libtool @VERSION@ released (alpha release).
+
+The Libtool Team is pleased to announce alpha release @VERSION@ of GNU
+Libtool.
+
+GNU Libtool hides the complexity of using shared libraries behind a
+consistent, portable interface. GNU Libtool ships with GNU libltdl,
+which hides the complexity of loading dynamic runtime libraries
+(modules) behind a consistent, portable interface.
+
+Here are the compressed sources:
+
+  ftp://alpha.gnu.org/gnu/libtool/libtool-@VERSION@.tar.gz
+  ftp://alpha.gnu.org/gnu/libtool/libtool-@VERSION@.tar.bz2
+
+Here are the xdeltas and diffs against libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@:
+
+  ftp://alpha.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz
+  ftp://alpha.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta
+
+Here are the gpg detached signatures:
+
+  ftp://alpha.gnu.org/gnu/libtool/libtool-@VERSION@.tar.gz.sig
+  ftp://alpha.gnu.org/gnu/libtool/libtool-@VERSION@.tar.bz2.sig
+  ftp://alpha.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz.sig
+  ftp://alpha.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta.sig
+
+Here are the MD5 and SHA1 checksums:
+
+  @MD5SUM@ libtool-@VERSION@.tar.gz
+  @MD5SUM@ libtool-@VERSION@.tar.bz2
+  @MD5SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz
+  @MD5SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta
+  @SHA1SUM@ libtool-@VERSION@.tar.gz
+  @SHA1SUM@ libtool-@VERSION@.tar.bz2
+  @SHA1SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz
+  @SHA1SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta
+
+This release has @SUMMARY_OF_IMPROVEMENTS_SINCE_LAST_RELEASE_ON_THIS_BRANCH@.
+
+This release was bootstrapped with @BOOTSTRAP_TOOLS_WITH_VERSIONS@,
+but is useable with @COMPATIBLE_AUTOTOOL_VERSIONS@ in your own
+projects.
+
+Alternatively, you can fetch the unbootstrapped sourcecode from
+anonymous cvs by using the following commands:
+
+  $ export CVS_RSH=ssh
+  $ cvs -z3 -d :ext:anoncvs@savannah.gnu.org:/cvsroot/libtool \
+  co -r @CVS_RELEASE_TAG@ libtool
+
+You will then need to have recent (possibly as yet unreleased) versions
+of Automake and Autoconf installed to bootstrap the checked out
+sources yourself.
+
+New in @VERSION@: @RELEASE_DATE@
+
+  @EXCERPT_FROM_NEWS_FILE@
+
+Please report bugs to <bug-libtool@gnu.org>, along with the verbose
+output of any failed test groups, and the output from `./libtool --help.'
+
+
+
+8. Full release note template
+=============================
+
+To: info-gnu@gnu.org
+Cc: libtool@gnu.org, autotools-announce@gnu.org
+Subject: GNU Libtool @VERSION@ released.
+
+The Libtool Team is pleased to announce the release of GNU Libtool
+@VERSION@.
+
+GNU Libtool hides the complexity of using shared libraries behind a
+consistent, portable interface. GNU Libtool ships with GNU libltdl,
+which hides the comlexity of loading dynamic runtime libraries
+(modules) behind a consistent, portable interface.
+
+This release has @SUMMARY_OF_IMPROVEMENTS_SINCE_LAST_RELEASE_ON_THIS_BRANCH@.
+
+New in @VERSION@: @RELEASE_DATE@
+
+  @EXCERPT_FROM_NEWS_FILE@
+
+libtool-@VERSION@ is available now from ftp.gnu.org, along with
+diffs and xdeltas against libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@
+that are also available from ftp.gnu.org.  Please
+use a mirror to reduce stress on the main gnu machine:
+
+  http://www.gnu.org/order/ftp.html
+
+Here are the compressed sources:
+
+  ftp://ftp.gnu.org/gnu/libtool/libtool-@VERSION@.tar.gz
+  ftp://ftp.gnu.org/gnu/libtool/libtool-@VERSION@.tar.bz2
+
+Here are the xdeltas and diffs against libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@:
+
+  ftp://ftp.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz
+  ftp://ftp.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta
+
+Here are the gpg detached signatures:
+
+  ftp://ftp.gnu.org/gnu/libtool/libtool-@VERSION@.tar.gz.sig
+  ftp://ftp.gnu.org/gnu/libtool/libtool-@VERSION@.tar.bz2.sig
+  ftp://ftp.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz.sig
+  ftp://ftp.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta.sig
+
+Here are the MD5 and SHA1 checksums:
+
+  @MD5SUM@ libtool-@VERSION@.tar.gz
+  @MD5SUM@ libtool-@VERSION@.tar.bz2
+  @MD5SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz
+  @MD5SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta
+  @SHA1SUM@ libtool-@VERSION@.tar.gz
+  @SHA1SUM@ libtool-@VERSION@.tar.bz2
+  @SHA1SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz
+  @SHA1SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta
+
+This release was bootstrapped with @BOOTSTRAP_TOOLS_WITH_VERSIONS@,
+but is useable with @COMPATIBLE_AUTOTOOL_VERSIONS@ in your own
+projects.
+
+Alternatively, you can fetch the unbootstrapped sourcecode from
+anonymous cvs by using the following commands (just hit return when
+you are prompted for the password):
+
+  $ export CVS_RSH=ssh
+  $ cvs -z3 -d :ext:anoncvs@savannah.gnu.org:/cvsroot/libtool \
+  co -r @CVS_RELEASE_TAG@ libtool
+
+You will then need to have the latest release versions of Automake
+(@AUTOMAKE_VERSION@) and Autoconf (@AUTOCONF_VERSION@) installed to
+bootstrap the checked out sources yourself.
+
+Please report bugs to <bug-libtool@gnu.org>, along with the verbose
+output of any failed test groups, and the output from `./libtool --help.'
+
+
+-- 
+Copyright (C) 2004 Free Software Foundation, Inc.
+
+The canonical source of this file is maintained with the
+GNU Libtool package.  Report bugs to bug-libtool@gnu.org.
+
+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.
+
+As a special exception to the GNU General Public License,
+if you distribute this file as part of a program or library that
+is built using GNU libtool, you may include it under the same
+distribution terms that you use for the rest of that program.
+
+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; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307  USA
+
+
+Local Variables:
+mode: text
+fill-column: 72
+End:
index cea3b0d85cc1db73d9e1cfd4209a09aadf0ef1b4..da0cb799eb0e35d80a43ebceb0ede3fe5ac0578d 100644 (file)
@@ -29,6 +29,7 @@ edit = sed \
        -e 's,@datadir\@,$(datadir),g' \
        -e 's,@pkgdatadir\@,$(pkgdatadir),g' \
        -e 's,@aclocaldir\@,$(aclocaldir),g' \
+       -e 's,@host_triplet\@,$(host_triplet),g' \
        -e "s,@configure_input\@,Generated from $$input; do not edit by hand,g"
 
 timestamp = set -- `$(MKSTAMP) < $(top_srcdir)/ChangeLog`; \
diff --git a/README b/README
index c83f15293eeaf9a5d4b9e64c32b10e0dceed9b4e..e2041ca94607d68f3ddb243c0d90696a5ce6f873 100644 (file)
--- a/README
+++ b/README
@@ -1,3 +1,9 @@
+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.
@@ -6,61 +12,6 @@ To use libtool, add the new generic library building commands to your
 Makefile, Makefile.in, or Makefile.am.  See the documentation for
 details.
 
-Libtool supports building static libraries on all platforms.
-
-Shared library support has been implemented for these platforms:
-  AIX 3.x, 4.x (*-*-aix3*, *-*-aix4*)
-  BeOS (*-*-beos*)
-  BSD/OS 2.1, 3.x, 4.x (*-*-bsdi2.1, *-*-bsdi3*, *-*-bsdi4*)
-  Darwin 5.x, 6.x a.k.a Mac OS X (*-*-darwin*) [see note]
-  Digital/UNIX 3.x, 4.x, a.k.a. OSF/1 (*-*-osf3*, *-*-osf4*)
-  DG/UX R4.11, R4.12, R4.20 (*-*-dguxR411*, *-*-dguxR412*, *-*-dguxR420*)
-  FreeBSD 2.x, 3.x, 4.x (*-*-freebsd2*, *-*-freebsd3*, *-*-freebsd4*)
-  GNU Hurd (*-*-gnu*)
-  GNU/Linux ELF (*-*-linux-gnu*, except aout, coff, and oldld)
-  HP-UX 9.x, 10.x, 11.x (*-*-hpux9*, *-*-hpux10*, *-*-hpux11*) [see note]
-  IRIX 5.x, 6.x (*-*-irix5*, *-*-irix6*)
-  NCR MP-RAS 3.x (*-ncr-sysv4.3*) [see note]
-  NEWS-OS Release 6 (*-*-newsos6)
-  Motorola System V 4 (mk88-motorola-sysv4) [see note]
-  NetBSD 1.x (*-*-netbsd*)
-  OpenBSD 2.x (*-*-openbsd*)
-  OS/2 using EMX (*-*-os2*)
-  Reliant Unix (*-sni-sysv4) [see note]
-  SCO OpenServer 5.x (*-*-sco3.2v5*)
-  SCO UnixWare 7.x (*-*-sysv5*)
-  Solaris 2.x (*-*-solaris2*)
-  SunOS 4.x, a.k.a. Solaris 1.x  (*-*-sunos4*)
-  UnixWare 2.x (*-*-sysv4.2uw2*)
-  UTS 4.x (*-*-uts4*)
-  All ELF targets that use both the GNU C compiler (gcc) and GNU ld
-
-NOTE: 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.
-
-NOTE: 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'.
-
-NOTE: Due to a bug in autoconf cc isn't supported on Motorola System V 4.
-You can only use gcc. This bug will hopefully be fixed in autoconf 2.14.
-
-NOTE: 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.
-
-NOTE: Libtool has only been tested with the Siemens C-compiler and
-an old version of gcc provided by Marco Walther you can find on
-ftp://ftp.mch.sni.de/sni/mr/pd/gnu/gcc/gcc.2.7.2.3 on Reliant Unix.  
-
-NOTE: libtool.m4, ltdl.m4 and the configure.ac files are marked to use
-autoconf-mode, which is distributed with GNU Emacs 21, and all recent
-releases of XEmacs.
-
-NOTE: In some cases support is more limited on Darwin 5.x because of
-the use of zsh as the default system shell.
-
 Libtool's home page is:
 
   http://www.gnu.org/software/libtool/libtool.html
@@ -71,63 +22,138 @@ See the file INSTALL for instructions on how to build and install
 libtool.
 
 See the info node (libtool)Tested Platforms. (or the file
-doc/PLATFORMS) for a list of platforms that libtool shared library
-support was tested on.
+doc/PLATFORMS) for a list of platforms that libtool supports.
+
+
+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>.
-Don't forget to mention the version of libtool that you are currently
-using (by typing `libtool --version').
+Be sure to send us your information from the end of the help message
+given by `./libtool --help'.
+
+
+3. 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 suit), you can do it like this:
+
+  make check TESTS='cdemo-static.test cdemo-make.test cdemo-exec.test'
+
+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>.  From a bourne
+compatible shell, you can generate verbose test output like this:
+
+  VERBOSE=1 make check \
+  TESTS='cdemo-static.test cdemo-make.test cdemo-exec.test' \
+  | tee cdemo-static-group.log
+
+
+4. Version Numbering
+====================
 
 People have complained that they find the version numbering scheme
-under which libtool is released confusing... it works like this:
+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.  If libtool ever undergoes a major rewrite or substantial
-restructuring, the <major-number> will be incremented again.  In the
-mean time, whenever we make a stable release it will have its 
-<minor-number> incremented with respect to the previous stable
-release.
-
-So that alpha releases can be distinguished from stable releases,
-we append a letter to them, starting with `a' and continuing
-alphabetically:
-
-       <major-number>.<minor-number><alpha> 
-
-Since alpha releases are start with the code of a previous stable
-release, the <major-number> and <minor-number> are the same as the
-stable release they started with.  So release `1.3a' is the first
-alpha release after stable release `1.3', and so on.
-
-To complicate matters slightly 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.  For
-example, you can tell that libtool-1.3c is an alpha release that is a
-snapshot of the repository taken between official alpha releases
-1.3b and 1.3d.  Since the odd lettered alpha release number potentially
-cover many states of the tree, we somtimes qualify such releases by
-adding the cvs version of the ChangeLog:
-
-       $ libtool --version
-       ltmain.sh (GNU libtool) 1.3c (1.666 2000/01/14 13:50:21)
-
-Finally, if we need to make a patch release to fix bugs in a stable
-release, and the development on the trunk has made the tree unstable,
-we use a third number, so:
-
-       <major-number>.<minor-number>.<patch number>
-
-       $ libtool --version
-       ltconfig (GNU libtool) 1.3.4 (1.385.2.196 1999/12/07 21:47:57)
-
-There might be several patch releases to the last stable release,
-and all happening concurrently with alpha releases.  For example,
-libtool-1.3.4 and libtool-1.3b might be available at the same time:
-`1.3.4' is the fourth patch release after stable release `1.3';
-`1.3b' is the first alpha release after stable release `1.3'.
-
+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 Free Software Foundation, Inc.
+
+The canonical source of this file is maintained with the
+GNU Libtool package.  Report bugs to bug-libtool@gnu.org.
+
+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.
+
+As a special exception to the GNU General Public License,
+if you distribute this file as part of a program or library that
+is built using GNU libtool, you may include it under the same
+distribution terms that you use for the rest of that program.
+
+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; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307  USA
+
+
+Local Variables:
+mode: text
+fill-column: 72
+End:
index 78bca0b8d0a250606122a6ca90281aecf344e79e..8c5684eabac4b2c90be43ffeb672fa26e5f7b66a 100644 (file)
-This is an alpha testing release of GNU Libtool.  To get the latest
-CVS version of this package, do:
+GNU Libtool
+***********
 
-  export CVS_RSH=ssh
-  cvs -z3 -d :ext:anoncvs@savannah.gnu.org:/cvsroot/libtool co libtool
-  cd libtool
-  ./bootstrap
-
-The `bootstrap' script sets up the source directory for you to hack. To
-use it, you need a recent (maybe yet to be released) version of both
-Autoconf and Automake.
-
-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>.
-Don't forget to mention the version of libtool that you are currently
-using (by typing `libtool --version').
-
-================================================================
-= Administrivia
-
-* If you incorporate a change from somebody on the net:
-  If it is a large change, you must make sure they have signed the
-  appropriate paperwork, and be sure to add their name and email
-  address to THANKS
-
-* If a change fixes a test, mention the test in the ChangeLog entry.
-
-* If somebody reports a new bug, mention his name in the ChangeLog entry
-  and in the test case you write.
-
-* The correct response to most actual bugs is to write a new test case
-  which demonstrates the bug.  Then fix the bug, re-run the test suite,
-  and check everything in.
-
-* Some files in the libtool package are not owned by libtool.  These
-  files should never be edited here.  These files are:
-       COPYING
-       INSTALL
-       config/
-           + config.guess
-           + config.sub
-           + depcomp
-           + install-sh
-           + mdate-sh
-           + missing
-           + texinfo.tex
-       doc/
-           + fdl.texi
-       libltdl/
-           + COPYING.LESSER
-           + config.guess
-           + config.sub
-           + install-sh
-           + missing
-
-* Changes other than bug fixes must be mentioned in NEWS
-
-================================================================
-= Test suite
-
-* Use "make check" liberally, on as many platforms as you can.  Use as
-  many compilers and linkers you can.
-
-
-================================================================
-= Release procedure
-
-* If you are a libtool maintainer, but have not yet registered your
-  gpg public key and (preferred) email address with the FSF, send an
-  email, preferably GPG-signed, to <ftp-upload@gnu.org> that includes
-  the following:
-
-    (a) name of package(s) that you are the maintainer for, and your
-        preferred email address.
-
-    (b) an ASCII armored copy of your GnuPG key, as an attachment.
-       ("gpg --export -a YOUR_KEY_ID > mykey.asc" should give you
-       this.)
-
-  When you have received acknowledgement of your message, the proper GPG
-  keys will be registered on ftp-upload.gnu.org and only then will you be
-  authorized to upload files to the FSF ftp machines.
-
-* Update the version number in configure.ac.
-  See http://www.gnu.org/software/libtool/contribute.html for details of
-  the numbering scheme.
-
-* Update NEWS, ChangeLog.
-
-* Make sure the 'Be Bourne compatible' shell snippet near the top of
-  ./libtoolize.in, ./ltmain.in matches the latest autoconf wisdom by
-  updating to match CVS autoconf AS_SHELL_SANITIZE in autoconf's
-  lib/m4sugar/m4sh.m4.
-
-* Run ./bootstrap.
-
-* Have some tea.  If you are running on less than 3.6GHz CPU, order
-  a pizza too ;-)
-
-* Run ./configure and then make.
-
-* Run `make -fMakefile.maint fetch', which will fetch new versions of the
-  files that are maintained outside of libtool.
-
-* Run ./commit.
+1. Introduction
+===============
 
-* Run `make -fMakefile.maint cvs-dist' which will build a release tarball
-  (with `make distcheck'), tag the tree with release-$(VERSION) and generate
-  the gpg signature files.
+This is an alpha testing release of GNU Libtool, please try it on all
+the platforms you have access to.  Using it more or less implicitly
+signs you up to help us find whatever problems you report.
 
-* Make sure you have a copy of xdelta installed, and a copy of the previous
-  release tarball in the build directory.
+If it builds and passes the test suite (`make check'), please send
+notification to the libtool mailing list <libtool@gnu.org> with a
+subject line including the string `[PLATFORM]'.
 
-* Run 'make -fMakefile.maint deltas' (pass LASTRELEASE=min.maj[.mic[alpha]]
-  if needed) to create both diff and xdelta files between the previous
-  release tarball and the new with detached gpg signature files and clear
-  signed directive files.
 
-* Upload release tarball, diff file and xdelta file, plus their associated
-  detached gpg signature files and clear signed directive files to
-  ftp-upload.gnu.org.  If the upload is destined for ftp.gnu.org, then the
-  files should be placed in the /incoming/ftp directory.  If the upload is
-  an alpha release destined for alpha.gnu.org, then the files should be
-  placed in the /incoming/alpha directory.
+2. Reporting Bugs
+=================
 
-* Send announcement to libtool@gnu.org and autotools-announce@gnu.org,
-  if not an alpha send to info-gnu@gnu.org as well.
+If this distribution doesn't work for you, before you report the problem,
+please try upgrading to the latest version from CVS first:
 
-* Update version number in configure.ac to next alpha number.
-  See http://www.gnu.org/software/libtool/contribute.html for details of
-  the numbering scheme.
-
-* Update NEWS, ChangeLog.
-
-* Run ./commit.
-
-* Update the webpages, libtool.html will need to indicate the latest
-  release number and the news page should get a HTMLified copy of your
-  release announcement.
-
-* If not an alpha, replace manual.html with the new one
-  (generate with `make -f Makefile.maint web-manual').
-
-================================================================
-= Alpha release note template
-
-To: libtool@gnu.org, autotools-announce@gnu.org
-Subject: GNU Libtool @VERSION@ released (alpha release).
-
-The Libtool Team is pleased to announce alpha release @VERSION@ of GNU
-Libtool.
-
-GNU Libtool hides the complexity of using shared libraries behind a
-consistent, portable interface. GNU Libtool ships with GNU libltdl,
-which hides the complexity of loading dynamic runtime libraries
-(modules) behind a consistent, portable interface.
-
-Here are the compressed sources:
-
-  ftp://alpha.gnu.org/gnu/libtool/libtool-@VERSION@.tar.gz
-  ftp://alpha.gnu.org/gnu/libtool/libtool-@VERSION@.tar.bz2
-
-Here are the xdeltas and diffs against libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@:
-
-  ftp://alpha.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz
-  ftp://alpha.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta
-
-Here are the gpg detached signatures:
-
-  ftp://alpha.gnu.org/gnu/libtool/libtool-@VERSION@.tar.gz.sig
-  ftp://alpha.gnu.org/gnu/libtool/libtool-@VERSION@.tar.bz2.sig
-  ftp://alpha.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz.sig
-  ftp://alpha.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta.sig
-
-Here are the MD5 and SHA1 checksums:
-
-  @MD5SUM@ libtool-@VERSION@.tar.gz
-  @MD5SUM@ libtool-@VERSION@.tar.bz2
-  @MD5SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz
-  @MD5SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta
-  @SHA1SUM@ libtool-@VERSION@.tar.gz
-  @SHA1SUM@ libtool-@VERSION@.tar.bz2
-  @SHA1SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz
-  @SHA1SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta
-
-This release has @SUMMARY_OF_IMPROVEMENTS_SINCE_LAST_RELEASE_ON_THIS_BRANCH@.
-
-This release was bootstrapped with @BOOTSTRAP_TOOLS_WITH_VERSIONS@,
-but is useable with @COMPATIBLE_AUTOTOOL_VERSIONS@ in your own
-projects.
-
-Alternatively, you can fetch the unbootstrapped sourcecode from
-anonymous cvs by using the following commands:
-
-  $ export CVS_RSH=ssh
-  $ cvs -z3 -d :ext:anoncvs@savannah.gnu.org:/cvsroot/libtool \
-  co -r @CVS_RELEASE_TAG@ libtool
-
-You will then need to have recent (possibly as yet unreleased) versions
-of Automake and Autoconf installed to bootstrap the checked out
-sources yourself.
-
-New in @VERSION@: @RELEASE_DATE@
-
-  @EXCERPT_FROM_NEWS_FILE@
-
-Please report bugs to <bug-libtool@gnu.org>.
-
-================================================================
-= Full release note template
+  export CVS_RSH=ssh
+  cvs -z3 -d :ext:anoncvs@savannah.gnu.org:/cvsroot/libtool co libtool
+  cd libtool
+  ./bootstrap
 
-To: info-gnu@gnu.org
-Cc: libtool@gnu.org, autotools-announce@gnu.org
-Subject: GNU Libtool @VERSION@ released.
+The `bootstrap' script sets up the source directory for you to hack, though
+it may take quite some time to run.  To use it, you need a recent (maybe yet
+to be released) version of both Autoconf and Automake.  If you don't
+intend to run the test suite, you can speed up the `bootstrap' step by
+an order of magnitude if you call it like this instead:
 
-The Libtool Team is pleased to announce the release of GNU Libtool
-@VERSION@.
+  reconfdirs=. ./bootstrap
 
-GNU Libtool hides the complexity of using shared libraries behind a
-consistent, portable interface. GNU Libtool ships with GNU libltdl,
-which hides the comlexity of loading dynamic runtime libraries
-(modules) behind a consistent, portable interface.
+If your bug is not fixed in the latest version, please send a full
+report to <bug-libtool@gnu.org>, including the information from the end
+of the help message given by `./libtool --help', and the verbose output
+of any failed test groups (as described below).
 
-This release has @SUMMARY_OF_IMPROVEMENTS_SINCE_LAST_RELEASE_ON_THIS_BRANCH@.
 
-New in @VERSION@: @RELEASE_DATE@
+3. The Test Suite
+=================
 
-  @EXCERPT_FROM_NEWS_FILE@
+Libtool comes with an integrated set of tests to check that your build
+is sane.  You can run the entire suite like this:
 
-libtool-@VERSION@ is available now from ftp.gnu.org, along with
-diffs and xdeltas against libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@
-that are also available from ftp.gnu.org.  Please
-use a mirror to reduce stress on the main gnu machine:
+  make check
 
-  http://www.gnu.org/order/ftp.html
+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.
 
-Here are the compressed sources:
+To run a test group in isolation (say, you think you have fixed a bug,
+but don't want to rerun the entire suit), you can do it like this:
 
-  ftp://ftp.gnu.org/gnu/libtool/libtool-@VERSION@.tar.gz
-  ftp://ftp.gnu.org/gnu/libtool/libtool-@VERSION@.tar.bz2
+  make check TESTS='cdemo-static.test cdemo-make.test cdemo-exec.test'
 
-Here are the xdeltas and diffs against libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@:
+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.
 
-  ftp://ftp.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz
-  ftp://ftp.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta
+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]'.  From a bourne compatible shell,
+you can generate verbose test output like this:
 
-Here are the gpg detached signatures:
+  VERBOSE=1 make check \
+  TESTS='cdemo-static.test cdemo-make.test cdemo-exec.test' \
+  | tee cdemo-static-group.log
 
-  ftp://ftp.gnu.org/gnu/libtool/libtool-@VERSION@.tar.gz.sig
-  ftp://ftp.gnu.org/gnu/libtool/libtool-@VERSION@.tar.bz2.sig
-  ftp://ftp.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz.sig
-  ftp://ftp.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta.sig
+-- 
+Copyright (C) 2004 Free Software Foundation, Inc.
 
-Here are the MD5 and SHA1 checksums:
+The canonical source of this file is maintained with the
+GNU Libtool package.  Report bugs to bug-libtool@gnu.org.
 
-  @MD5SUM@ libtool-@VERSION@.tar.gz
-  @MD5SUM@ libtool-@VERSION@.tar.bz2
-  @MD5SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz
-  @MD5SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta
-  @SHA1SUM@ libtool-@VERSION@.tar.gz
-  @SHA1SUM@ libtool-@VERSION@.tar.bz2
-  @SHA1SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz
-  @SHA1SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta
+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.
 
-This release was bootstrapped with @BOOTSTRAP_TOOLS_WITH_VERSIONS@,
-but is useable with @COMPATIBLE_AUTOTOOL_VERSIONS@ in your own
-projects.
+As a special exception to the GNU General Public License,
+if you distribute this file as part of a program or library that
+is built using GNU libtool, you may include it under the same
+distribution terms that you use for the rest of that program.
 
-Alternatively, you can fetch the unbootstrapped sourcecode from
-anonymous cvs by using the following commands (just hit return when
-you are prompted for the password):
+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.
 
-  $ export CVS_RSH=ssh
-  $ cvs -z3 -d :ext:anoncvs@savannah.gnu.org:/cvsroot/libtool \
-  co -r @CVS_RELEASE_TAG@ libtool
+You should have received a copy of the GNU General Public License
+along with GNU Libtool; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307  USA
 
-You will then need to have the latest release versions of Automake
-(@AUTOMAKE_VERSION@) and Autoconf (@AUTOCONF_VERSION@) installed to
-bootstrap the checked out sources yourself.
 
-Please report bugs to <bug-libtool@gnu.org>.
+Local Variables:
+mode: text
+fill-column: 72
+End:
index 5558535b79464576ed88dbe628401fd3af87c47b..ef7867aef54e476916ac1cb610781c430449f4ab 100644 (file)
@@ -1,10 +1,12 @@
-# ltmain.sh - Provide generalized library-building support services.
 # @configure_input@
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004
-# Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
+
+# ltmain.sh (GNU @PACKAGE@@TIMESTAMP@) @VERSION@
+# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 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.
+
 # This program 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
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
+# Usage: $progname [OPTION]... [MODE-ARG]...
+#
+# Provide generalized library-building support services.
+#
+#     --config             show all configuration variables
+#     --debug              enable verbose shell tracing
+# -n, --dry-run            display commands without modifying any files
+#     --features           display basic configuration information and exit
+#     --mode=MODE          use operation mode MODE
+#     --preserve-dup-deps  don't remove duplicate dependency libraries
+#     --quiet, --silent    don't print informational messages
+#     --tag=TAG            use configuration variables from tag TAG
+#     --version            print version information
+# -h, --help               print short or long help message
+#
+# MODE must be one of the following:
+#
+#       clean              remove files from the build directory
+#       compile            compile a source file into a libtool object
+#       execute            automatically set library path, then run a program
+#       finish             complete the installation of libtool libraries
+#       install            install libraries or executables
+#       link               create a library or an executable
+#       uninstall          remove libraries from an installed directory
+#
+# MODE-ARGS vary depending on the MODE.
+# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
+#
+# When reporting a bug, please describe a test case to reproduce it and
+# include the following information:
+#
+#       host-triplet:  @host_triplet@
+#       shell:         $SHELL
+#       compiler:              $LTCC
+#       linker:                $LD (gnu? $with_gnu_ld)
+#       $progname:             (GNU @PACKAGE@@TIMESTAMP@) @VERSION@
+#       automake:              $automake_version
+#       autoconf:              $autoconf_version
+#
+# Report bugs to <bug-libtool@gnu.org>.
+
 # Be Bourne compatible
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   emulate sh
@@ -37,6 +80,7 @@ elif test -n "${BASH_VERSION+set}${KSH_VERSION+set}" && (set -o posix) >/dev/nul
 fi
 DUALCASE=1; export DUALCASE # for MKS sh
 
+dirname="s,/[^/]*$,,"
 basename="s,^.*/,,g"
 
 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
@@ -47,9 +91,19 @@ basename="s,^.*/,,g"
 progpath="$0"
 
 # The name of this program:
+PROGRAM=ltmain.sh
 progname=`echo "$progpath" | $SED "$basename"`
 modename="$progname"
 
+# Make sure we have an absolute path for reexecution:
+case $progpath in
+  [\\/]*|[A-Za-z]:\\*) ;;
+  *) progdir=`echo "$progpath" | $SED "$dirname"`
+     progdir=`cd "$progdir" && pwd`
+     progpath="$progdir/$progname"
+     ;;
+esac
+
 # Global variables:
 EXIT_SUCCESS=0
 EXIT_FAILURE=1
@@ -177,6 +231,52 @@ o2lo="s/\\.${objext}\$/.lo/"
 # Shell function definitions:
 # This seems to be the best place for them
 
+# func_usage
+# Echo short help message to standard output and exit.
+func_usage ()
+{
+    $SED '/^# Usage:/,/# -h/ {
+        s/^# //; s/^# *$//;
+       s/\$progname/'$progname'/;
+       p;
+    }; d' < "$progpath"
+    echo
+    echo "run \`$progname --help | more' for full usage"
+    exit $EXIT_SUCCESS
+}
+
+# func_help
+# Echo long help message to standard output and exit.
+func_help ()
+{
+    $SED '/^# Usage:/,/# Report bugs to/ {
+        s/^# //; s/^# *$//;
+       s:\$progname:'$progname':;
+       s:\$SHELL:'"$SHELL"':;
+       s:\$LTCC:'"$LTCC"':;
+       s:\$LD:'"$LD"':;
+       s/\$with_gnu_ld/'"$with_gnu_ld"'/;
+       s/\$automake_version/'"`automake --version 2>/dev/null |$SED 1q`"'/;
+       s/\$autoconf_version/'"`autoconf --version 2>/dev/null |$SED 1q`"'/;
+       p;
+     }; d' < "$progpath"
+    exit $EXIT_SUCCESS
+}
+
+
+# func_version
+# Echo version message to standard output and exit.
+func_version ()
+{
+    $SED '/^# '$PROGRAM' (GNU /,/# warranty; / {
+        s/^# //; s/^# *$//;
+        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/;
+        p;
+     }; d' < "$progpath"
+     exit $EXIT_SUCCESS
+}
+
+
 # func_win32_libid arg
 # return the library type of file 'arg'
 #
@@ -687,18 +787,9 @@ do
 
   # Have we seen a non-optional argument yet?
   case $arg in
-  --help)
-    show_help=yes
-    ;;
-
-  --version)
-    $echo "$PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION"
-    $echo
-    $echo "Copyright (C) 2004  Free Software Foundation, Inc."
-    $echo "This is free software; see the source for copying conditions.  There is NO"
-    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-    exit $EXIT_SUCCESS
-    ;;
+  -\?|-h)      func_usage      ;;
+  --help)      show_help=yes   ;;
+  --version)    func_version   ;;
 
   --config)
     ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
@@ -783,11 +874,11 @@ fi
 # left over by shells.
 exec_cmd=
 
-  if test -z "$show_help"; then
-    if test -z "$mode"; then
-      $echo "$modename: error: you must specify a MODE." 1>&2
-      exit $EXIT_FAILURE
-    fi
+if test -z "$show_help"; then
+  if test -z "$mode"; then
+    $echo "$modename: error: you must specify a MODE." 1>&2
+    exit $EXIT_FAILURE
+  fi
 
   # Only execute mode is allowed to have -dlopen flags.
   if test -n "$execute_dlfiles" && test "$mode" != execute; then
@@ -6544,41 +6635,9 @@ fi
 
 # We need to display help for each of the modes.
 case $mode in
-"") $echo \
-"Usage: $modename [OPTION]... [MODE-ARG]...
-
-Provide generalized library-building support services.
-
-    --config             show all configuration variables
-    --debug              enable verbose shell tracing
--n, --dry-run            display commands without modifying any files
-    --features           display basic configuration information and exit
-    --finish             same as \`--mode=finish'
-    --help               display this help message and exit
-    --mode=MODE          use operation mode MODE
-    --preserve-dup-deps  don't remove duplicate dependency libraries
-    --quiet              same as \`--silent'
-    --silent             don't print informational messages
-    --tag=TAG            use configuration variables from tag TAG
-    --version            print version information
-
-MODE must be one of the following:
-
-      clean           remove files from the build directory
-      compile         compile a source file into a libtool object
-      execute         automatically set library path, then run a program
-      finish          complete the installation of libtool libraries
-      install         install libraries or executables
-      link            create a library or an executable
-      uninstall       remove libraries from an installed directory
-
-MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
-a more detailed description of MODE.
-
-Report bugs to <bug-libtool@gnu.org>."
-  exit $EXIT_SUCCESS
+"")
+  func_help
   ;;
-
 clean)
   $echo \
 "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
index 7269187675b8ae0941e09154018cf467fe71cf04..ed5d1e2eeb93acce83d2a8eedc6fa3f1422b5742 100644 (file)
@@ -1,6 +1,8 @@
 #! /bin/sh
+# @configure_input@
+
 # libtoolize (GNU @PACKAGE@@TIMESTAMP@) @VERSION@
-# Written by Gary V. Vaughan <gary@gnu.org>
+# Written by Gary V. Vaughan <gary@gnu.org>, 2003
 
 # Copyright (C) 2003, 2004 Free Software Foundation, Inc.
 # This is free software; see the source for copying conditions.  There is NO
 #     --debug           enable verbose shell tracing
 # -n, --dry-run         print commands rather than running them
 # -f, --force           replace existing files
-#     --help            display this message and exit
 # -i, --install         copy missing auxiliary files
 #     --ltdl[=DIR]      install libltdl in a subdirectory [default: libltdl]
 # -q, --quiet           work silently
 # -v, --verbose         verbosely report processing
 #     --version         print version information and exit
+# -h, --help            print short or long help message
 #
 # You must `cd' to the top directory of your package before you run
 # `$progname'.
 #
+# When reporting a bug, please describe a test case to reproduce it and
+# include the following information:
+#
+#       host-triplet:  @host_triplet@
+#       $progname:     (GNU @PACKAGE@@TIMESTAMP@) @VERSION@
+#       automake:              $automake_version
+#       autoconf:              $autoconf_version
+#
 # Report bugs to <bug-libtool@gnu.org>.
 
 # Be Bourne compatible
@@ -186,7 +196,13 @@ func_help ()
 {
     $SED '/^# Usage:/,/# Report bugs to/ {
         s/^# //; s/^# *$//;
-       s/\$progname/'$progname'/;
+       s:\$progname:'$progname':;
+       s:\$SHELL:'"$SHELL"':;
+       s:\$LTCC:'"$LTCC"':;
+       s:\$LD:'"$LD"':;
+       s/\$with_gnu_ld/'"$with_gnu_ld"'/;
+       s/\$automake_version/'"`automake --version 2>/dev/null |$SED 1q`"'/;
+       s/\$autoconf_version/'"`autoconf --version 2>/dev/null |$SED 1q`"'/;
        p;
      }; d' < "$progpath"
     exit $EXIT_SUCCESS