]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
*** empty log message ***
authorGordon Matzigkeit <gord@profitpress.com>
Thu, 12 Feb 1998 05:45:15 +0000 (05:45 +0000)
committerGordon Matzigkeit <gord@gnu.org>
Thu, 12 Feb 1998 05:45:15 +0000 (05:45 +0000)
16 files changed:
ChangeLog
NEWS
README
README-alpha
THANKS
TODO
demo/Makefile.am
demo/README
doc/Makefile.am
doc/libtool.texi
libtool.m4
libtool.spec
ltconfig.in
ltmain.in
tests/ChangeLog
tests/suffix.test

index 2dddd2c4b5ff6ebbe4600f53e8111dd19a7240ed..edf31bcd172aacf1b78c872000206fc5498ea5e7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,34 @@
+Wed Feb 11 22:20:33 1998  Gordon Matzigkeit  <gord@profitpress.com>
+
+       * ltconfig.in (no_undefined_flag): Add a flag to declare under
+       Solaris that the library should not have any undefined
+       references.  Suggested by Bob Friesenhahn.
+
+       * ltmain.in (mkdir): Fix one more mkdir race.  From H.J. Lu.
+
+Sun Feb  8 18:16:41 1998  Gordon Matzigkeit  <gord@profitpress.com>
+
+       * ltconfig.in, ltmain.in (striplib, old_striplib): Ditto.
+
+       * ltconfig.in (profile_flag_pattern): Get rid of dead code.
+
+Sat Feb  7 11:49:33 1998  Gordon Matzigkeit  <gord@profitpress.com>
+
+       * libtool.m4 (AM_ENABLE_SHARED, AM_ENABLE_STATIC): New macros to
+       modify the `--enable-shared' and `--enable-static' defaults in the
+       configure script.  This works a lot better than the old
+       `enable_shared' and `enable_static' variables did.  Reported by
+       Bob Friesenhahn.
+
+Sat Feb  7 16:16:02 1998  Samuel Tardieu  <sam@inf.enst.fr>
+
+       * ltmain.in: Recognize .ada, .ads and .adb as known suffixes (they
+       are used by GNAT, the GNU Ada compiler).
+
 Fri Feb  6 00:20:41 1998  Gordon Matzigkeit  <gord@profitpress.com>
 
+       * ltconfig.in: Turn on IRIX shared libraries again!
+
        * libtool.m4 (LD): Use file(1) to discover which ABI we're using
        on IRIX, and propagate the correct linker flag.  From Jim Wilson.
 
@@ -284,7 +313,7 @@ Thu Nov  6 08:11:25 1997  Gordon Matzigkeit  <gord@gnu.org>
 
        * ltmain.in (mkdir): Check that the directory doesn't exist before
        we exit with error, so that we don't get races during parallel
-       builds.  From H. J. Lu.
+       builds.  From H.J. Lu.
        (fbsd_hideous_sh_bug): Apparently, some FreeBSD /bin/sh's have a
        bug that will empty base_compile unless we do this dummy
        assignment.  From Marc van Kempen.
diff --git a/NEWS b/NEWS
index 7a08fbeb02546749506e5e06fb270d0ff3e91f59..226f748da2552ad05e7a27c169f43012aab67c33 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,10 @@
 NEWS - list of user-visible changes between releases of GNU Libtool
 
+New:
+* Now you should use the `AM_DISABLE_SHARED' or `AM_DISABLE_STATIC'
+  macros instead of the `enable_shared' or `enable_static' variables
+  if you wish to modify the default behaviour of `AM_PROG_LIBTOOL'.
+
 New in 1.0i - 1998-02-06, Gordon Matzigkeit:
 * Bug fixes.
 * Inter-library dependencies are automatically handled when linking
diff --git a/README b/README
index ec3a917d111b721633c74a872a189af5e9f0dba7..e99903526411fef47bc8cdec0acc6ceb35375e22 100644 (file)
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-This is GNU libtool, a generic library support script.  Libtool hides
+This is GNU Libtool, a generic library support script.  Libtool hides
 the complexity of using shared libraries behind a consistent, portable
 interface.
 
@@ -30,14 +30,18 @@ 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.
 
+Libtool's home page is:
+
+  http://www.profitpress.com/libtool/
+
 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.
 
 See the info node (libtool)Tested Platforms. (or the file
-doc/platforms.texi) for a list of platforms that libtool shared
-library support was tested on.
+doc/PLATFORMS) for a list of platforms that libtool shared library
+support was tested on.
 
 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
index d87c783925536504099e9575306449f5620db6f0..a1518b74d2cd11ebace6e30045a1ee93a5f7e419 100644 (file)
@@ -1,4 +1,4 @@
-This is an alpha testing release of GNU libtool.
+This is an alpha testing release of GNU Libtool.
 
 Please do not send any bug reports or questions about it to public
 forums (such as GNU newsgroups), send them directly to the libtool
diff --git a/THANKS b/THANKS
index 77ebeac6066244bb8f86809390fa1ffeae245161..e8dd6d47329a70d6111b831e3c37d2f1b81d5c52 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -13,10 +13,10 @@ Alexandre Oliva <oliva@dcc.unicamp.br>
 Bruno Haible <haible@ilog.fr>
 Carl D. Roth <roth@cse.ucsc.edu>
 Charles S. Kerr <cskerr@delenn.jccbi.gov>
-H.J. Lu <hjl@lucon.org>
+H.J. Lu <hjl@gnu.org>
 Ian Lance Taylor <ian@cygnus.com>
 Joel Cannon <cannon@alpha.centenary.edu>
-Joel N. Weber II <devnull@gnu.ai.mit.edu>
+Joel N. Weber II <devnull@gnu.org>
 Karl Berry <kb@cs.umb.edu>
 Kenneth Albanowski <kjahds@kjahds.com>
 Mark Kettenis <kettenis@phys.uva.nl>
diff --git a/TODO b/TODO
index 363fefe558eae541e4b88a536273c978d3012c8e..2752c674e74586b6ebd7f42b235f4a0d84a7d0db 100644 (file)
--- a/TODO
+++ b/TODO
@@ -8,16 +8,12 @@ compiler type.
 * Alexandre Oliva suggests that we hardcode paths into libraries, as
 well as binaries:  `... -Wl,-soname -Wl,/tmp/libtest.so.0 ...'.
 
-* Implement full support for other orthogonal library types
-(libhello_g, libhello_p, 64 vs 32-bit ABI's, etc).  Make these types
-configurable.
-
 In the future:
 **************
 
-* Inter-library dependencies should be automatically tracked by
-libtool.  Reminded by Alexandre Oliva.  This also would require
-looking up installed libtool libraries for transparent support.
+* Inter-library dependencies should be fully tracked by libtool.
+Reminded by Alexandre Oliva.  This requires looking up installed
+libtool libraries for transparent support.
 
 * Implement full multi-language support.  Currently, this is only for
 C++, but there are beginnings of this in the manual (Other Languages).
@@ -33,15 +29,6 @@ People who need it:
   Jean Daniel Fekete <Jean-Daniel.Fekete@emn.fr>
   Thomas Hiller <hiller@tu-harburg.d400.de>
 
-* Writing libtool as a shell script means that proper variable quoting
-is a real problem.  Be careful when `eval'ing a string that the
-arguments are properly quoted.  Note that arguments with embedded
-whitespace probably will cause problems (because of IFS).
-
-I don't have good ideas on to fix the problems with whitespace, other
-than subverting IFS entirely, perhaps always using an `eval "set
-$quoted_args"' sequence.
-
 * Another form of convenience library, suggested by Alexandre Oliva,
 is to have undocumented utility libraries, where only the shared
 version is installed.
@@ -72,6 +59,10 @@ libtool into that scheme, since it manages some of the preinstall and
 postinstall commands, but isn't installed itself.  Probably, things
 like libtool should be distributed as part of such a binary package.
 
+* Maybe implement full support for other orthogonal library types
+(libhello_g, libhello_p, 64 vs 32-bit ABI's, etc).  Make these types
+configurable.
+
 * Add support for windoze DLL's, and maybe other jumptable libs.
 Check out Lesstif and Tcl configuration again (maybe they would be
 interested in libtool by now?).  The Cygnus win32 project may also be
index 859d1a56932dcfa3cca10902b4d193f9928963d5..4f9f571ab58f653968c0e6eee63808fafda2a85d 100644 (file)
@@ -56,8 +56,8 @@ helldl: $(helldl_OBJECTS) $(helldl_DEPENDENCIES)
          chmod +x helldlT; \
          mv -f helldlT helldl; \
        else \
-         echo '$(LINK) $(helldl_LDFLAGS) $(helldl_OBJECTS) $(helldl_LDADD) -lm'; \
-         $(LINK) $(helldl_LDFLAGS) $(helldl_OBJECTS) $(helldl_LDADD) -lm; \
+         echo '$(LINK) $(helldl_LDFLAGS) $(helldl_OBJECTS) $(helldl_LDADD)'; \
+         $(LINK) $(helldl_LDFLAGS) $(helldl_OBJECTS) $(helldl_LDADD); \
        fi
 
 # Test programs to see what gets hardcoded.
index fd4468bf32c4613481a6f309e1c4588742612345..511fd83988cf603590e211319754adb7362da729 100644 (file)
@@ -6,4 +6,4 @@ say, a program that actually did something useful, but we can't have
 everything.
 
 Send bug reports and comments about GNU hell to the libtool mailing
-list <bug-libtool@gnu.ai.mit.edu>.
+list <bug-libtool@gnu.org>.
index 4b197b5754640d9c0b273b9c75aaf856e565752a..9df4e7f8197b0e82a991827903473bc076965ee6 100644 (file)
@@ -7,4 +7,4 @@
 ## Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>
 AUTOMAKE_OPTIONS = gnits
 info_TEXINFOS = libtool.texi
-libtool_TEXINFOS = platforms.texi
+libtool_TEXINFOS = PLATFORMS
index fc5db05a9be626eab5027588717f9da327ab2cc2..2bb16408bf065ac6f750d6b1ef6650eaec5de64c 100644 (file)
@@ -7,7 +7,7 @@
 @c %**end of header
 
 @include version.texi
-@set BUGADDR the libtool mailing list @code{<bug-libtool@@gnu.org>}
+@set BUGADDR the libtool mailing list @email{<bug-libtool@@gnu.org>}
 @set objdir .libs
 
 @dircategory GNU programming tools
@@ -23,7 +23,7 @@
 @ifinfo
 This file documents GNU Libtool @value{VERSION}
 
-Copyright (C) 1996--1998 Free Software Foundation, Inc.
+Copyright (C) 1996-1998 Free Software Foundation, Inc.
 
 Permission is granted to make and distribute verbatim copies of this
 manual provided the copyright notice and this permission notice are
@@ -55,7 +55,7 @@ approved by the Foundation.
 
 @page
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1996--1998 Free Software Foundation, Inc.
+Copyright @copyright{} 1996-1998 Free Software Foundation, Inc.
 @sp 2
 This is the first edition of the GNU Libtool documentation,@*
 and is consistent with GNU Libtool @value{VERSION}.@*
@@ -204,7 +204,6 @@ Platform quirks
 * Compilers::                   Creating object files from source files.
 * Reloadable objects::          Binding object files together.
 * Archivers::                   Programs that create static archives.
-* Strip::                       Removing unnecessary linkage information.
 
 @end detailmenu
 @end menu
@@ -338,9 +337,9 @@ or run @code{ldconfig(8)}.
 @section Other implementations
 
 I have investigated several different implementations of systems that
-build shared
-libraries as part of a freeware package.  At first, I made notes on the
-features of each of these packages for comparison purposes.
+build shared libraries as part of a free software package.  At first, I
+made notes on the features of each of these packages for comparison
+purposes.
 
 Now it is clear that none of these packages have documented the details
 of shared library systems that libtool requires.  So, other packages
@@ -1461,6 +1460,30 @@ ltconfig}).@footnote{@code{AM_PROG_LIBTOOL} requires that you define the
 Automake does this automatically, but Autoconf users should set it to
 the relative path to the top of your build directory (@file{../..}, for
 example).}
+
+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 setting calling either the
+@code{AM_DISABLE_SHARED} or @code{AM_DISABLE_STATIC} macros:
+
+@example
+# Turn off shared libraries during beta-testing, since they make the
+# build process take too long.
+AM_DISABLE_SHARED
+AM_PROG_LIBTOOL
+@end example
+@end defmac
+
+@defmac AM_DISABLE_SHARED
+Change the default behaviour for @code{AM_PROG_LIBTOOL} to disable
+shared libraries.  The user may still override this default by
+specifying @samp{--enable-shared}.
+@end defmac
+
+@defmac AM_DISABLE_STATIC
+Change the default behaviour for @code{AM_PROG_LIBTOOL} to disable
+static libraries.  The user may still override this default by
+specifying @samp{--enable-static}.
 @end defmac
 
 @pindex aclocal
@@ -1529,7 +1552,7 @@ and accepts the following options:
 Work silently, and assume that Automake libtool support is used.
 
 @samp{libtoolize --automake} is used by Automake to add libtool files to
-your package, when @samp{AM_PROG_LIBTOOL} appears in your
+your package, when @code{AM_PROG_LIBTOOL} appears in your
 @file{configure.in}.
 
 @item --copy
@@ -1613,9 +1636,10 @@ AC_OUTPUT(@dots{})
 @cindex Saving time
 
 When you are developing a package, it is often worthwhile to configure
-your package with the @samp{--disable-shared} flag
-(@pxref{AM_PROG_LIBTOOL}).  This prevents libtool from building shared
-libraries, which has several advantages:
+your package with the @samp{--disable-shared} flag, or to override the
+defaults for @code{AM_PROG_LIBTOOL} by using the @code{AM_DISABLE_SHARED}
+Autoconf macro (@pxref{AM_PROG_LIBTOOL}).  This prevents libtool from
+building shared libraries, which has several advantages:
 
 @itemize @bullet
 @item
@@ -1636,11 +1660,11 @@ Manipulation Program, for those who haven't taken the plunge.  See
 @url{http://www.gimp.org/}.} distribution @file{README}:
 
 @example
-The GIMP uses GNU libtool in order to build shared libraries on a
+The GIMP uses GNU Libtool in order to build shared libraries on a
 variety of systems. While this is very nice for making usable
 binaries, it can be a pain when trying to debug a program. For that
 reason, compilation of shared libraries can be turned off by
-specifying the "--disable-shared" option to "configure".
+specifying the @samp{--disable-shared} option to @file{configure}.
 @end example
 
 @node Versioning
@@ -2546,7 +2570,7 @@ This table describes when libtool was last known to be tested on
 platforms where it claims to support shared libraries:
 
 @example
-@include platforms.texi
+@include PLATFORMS
 @end example
 
 @node Platform quirks
@@ -2567,7 +2591,6 @@ improve libtool, or write your own.
 * Compilers::                   Creating object files from source files.
 * Reloadable objects::          Binding object files together.
 * Archivers::                   Programs that create static archives.
-* Strip::                       Removing unnecessary linkage information.
 @end menu
 
 @node References
@@ -2662,32 +2685,6 @@ On all known systems, if there is a program named @code{ranlib}, then it
 must be used to ``bless'' the created library before linking against it,
 with the @kbd{ranlib lib@var{name}.a} command.
 
-@node Strip
-@subsection The @code{strip} program
-
-Stripping a library is essentially the same problem as stripping an
-object file.  Only local and debugging symbols must be removed, or else
-linking against a stripped library will fail.
-
-With GNU @code{strip}, the @samp{--discard-all} (or equivalent
-@samp{-x}) flag will do the appropriate stripping, for both shared and
-static libraries.
-
-Here is a list of some other operating systems, and what their bundled
-@code{strip} programs will do:
-
-@c FIXME complete this section
-
-@table @code
-@item netbsd*
-The @samp{-x} flag works for shared libraries, but fails with
-``Inappropriate file type or format'' when used on static libraries.
-
-@item hpux10*
-HP-UX @code{strip} requires the @samp{-r} and @samp{-x} flags in order
-to strip libraries.
-@end table
-
 @node libtool script contents
 @section @code{libtool} script contents
 @cindex Implementation of libtool
@@ -2758,6 +2755,11 @@ Whether libtool should build static libraries on this system.  Set to
 @samp{yes} or @samp{no}.
 @end defvar
 
+@defvar echo
+An @code{echo(1)} program which does not interpret backslashes as an
+escape character.
+@end defvar
+
 @defvar export_dynamic_flag_spec
 Compiler link flag that allows a dlopened shared library to reference
 symbols that are defined in the program.
@@ -2768,12 +2770,16 @@ Commands to tell the dynamic linker how to find shared libraries in a
 specific directory.
 @end defvar
 
-@defvar global_symbol_cmd
+@defvar finish_eval
+Same as @var{finish_cmds}, except the commands are not displayed.
+@end defvar
+
+@defvar global_symbol_pipe
 A pipeline that takes the output of @var{NM}, and produces a listing of
 raw symbols followed by their C names.  For example:
 
 @example
-$ @kbd{$NM | $global_symbol_cmd}
+$ @kbd{$NM | $global_symbol_pipe}
 @var{symbol1} @var{C-symbol1}
 @var{symbol2} @var{C-symbol2}
 @var{symbol3} @var{C-symbol3}
@@ -2811,12 +2817,6 @@ hardcodes directories specified by @samp{-L} flags into the resulting
 executable.
 @end defvar
 
-@defvar hardcode_runpath_var
-Set to @samp{yes} or @samp{no}, depending on whether the linker
-hardcodes directories by writing the contents of @samp{$runpath_var}
-into the resulting executable.
-@end defvar
-
 @defvar hardcode_shlibpath_var
 Set to @samp{yes} or @samp{no}, depending on whether the linker
 hardcodes directories by writing the contents of @samp{$shlibpath_var}
@@ -2831,6 +2831,12 @@ For information purposes, set to the specified and canonical names of
 the system that libtool was configured for.
 @end defvar
 
+@defvar libname_spec
+The format of a library name prefix.  On all Unix systems, static
+libraries are called @samp{lib@var{name}.a}, but on some systems (such
+as OS/2 or MS-DOS), the library is just called @samp{@var{name}.a}.
+@end defvar
+
 @defvar library_names_spec
 A list of shared library names.  The first is the name of the file,
 the rest are symbolic links to the file.  The name in the list is
@@ -2847,6 +2853,12 @@ Compiler flag to disable builtin functions that conflict with declaring
 external global symbols as @code{char}.
 @end defvar
 
+@defvar no_undefined_flag
+The flag that is used by @samp{archive_cmds} in order to declare that
+there will be no unresolved symbols in the resulting shared library.
+Empty, if no such flag is required.
+@end defvar
+
 @defvar pic_flag
 Any additional compiler flags for building library object files.
 @end defvar
@@ -2876,14 +2888,6 @@ The name coded into shared libraries, if different from the real name of
 the file.
 @end defvar
 
-@defvar striplib
-@defvarx old_striplib
-Programs to strip shared and static libraries, respectively.@footnote{In
-the current implementation, libtool does not use any programs to strip
-libraries.  Support will be added after it is clear how to write a
-portable test for library stripping programs.}
-@end defvar
-
 @defvar version_type
 The library version numbering type.  One of @samp{libtool},
 @samp{linux}, @samp{osf}, @samp{sunos}, or @samp{none}.
@@ -2894,10 +2898,10 @@ The C compiler flag that allows libtool to pass a flag directly to the
 linker.  Used as: @samp{$@{wl@}@var{some-flag}}.
 @end defvar
 
-Variables ending in @samp{_cmds} contain a semicolon-separated list of
-commands that are @code{eval}ed one after another.  If any of the
-commands return a nonzero exit status, libtool generally exits with an
-error message.
+Variables ending in @samp{_cmds} or @samp{_eval} contain a
+semicolon-separated list of commands that are @code{eval}ed one after
+another.  If any of the commands return a nonzero exit status, libtool
+generally exits with an error message.
 
 Variables ending in @samp{_spec} are @code{eval}ed before being used by
 libtool.
index 9a81a96901435e31e1958df2bb6b6123bc837781..1dc5708012aac54720a3b1e204bd882a32f752cb 100644 (file)
 ## configuration script generated by Autoconf, you may include it under
 ## the same distribution terms that you use for the rest of that program.
 
-# serial 19 AM_PROG_LIBTOOL
+# serial 20 AM_PROG_LIBTOOL
 AC_DEFUN(AM_PROG_LIBTOOL,
-[AC_REQUIRE([AC_CANONICAL_HOST])
-AC_REQUIRE([AC_PROG_RANLIB])
-AC_REQUIRE([AC_PROG_CC])
-AC_REQUIRE([AM_PROG_LD])
-AC_REQUIRE([AM_PROG_NM])
-AC_REQUIRE([AC_PROG_LN_S])
-
+[AC_REQUIRE([AM_ENABLE_SHARED])dnl
+AC_REQUIRE([AM_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_PROG_RANLIB])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AM_PROG_LD])dnl
+AC_REQUIRE([AM_PROG_NM])dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+dnl
 # Always use our own libtool.
 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)
-
-dnl Allow the --disable-shared flag to stop us from building shared libs.
-AC_ARG_ENABLE(shared,
-[  --enable-shared         build shared libraries [default=yes]],
-[if test "$enableval" = no; then
-  libtool_enable_shared=no
-else
-  libtool_enable_shared=yes
-fi])
-test -n "$libtool_enable_shared" && enable_shared="$libtool_enable_shared"
-libtool_shared=
-test "$enable_shared" = no && libtool_shared=" --disable-shared"
+AC_SUBST(LIBTOOL)dnl
 
-dnl Allow the --disable-static flag to stop us from building static libs.
-AC_ARG_ENABLE(static,
-[  --enable-static         build static libraries [default=yes]],
-[if test "$enableval" = no; then
-  libtool_enable_static=no
-else
-  libtool_enable_static=yes
-fi])
-test -n "$libtool_enable_static" && enable_static="$libtool_enable_static"
-libtool_static=
-test "$enable_static" = no && libtool_static=" --disable-static"
-
-libtool_flags="$libtool_shared$libtool_static"
+# Check for any special flags to pass to ltconfig.
+libtool_flags=
+test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
+test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
 test "$silent" = yes && libtool_flags="$libtool_flags --silent"
 test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
 test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
@@ -99,6 +80,51 @@ $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
 || AC_MSG_ERROR([libtool configure failed])
 ])
 
+# AM_ENABLE_SHARED - implement the --enable-shared flag
+# Usage: AM_ENABLE_SHARED[(DEFAULT)]
+#   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
+#   `yes'.
+AC_DEFUN(AM_ENABLE_SHARED,
+[define([AM_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(shared,
+changequote(<<, >>)dnl
+<<  --enable-shared         build shared libraries [default=>>AM_ENABLE_SHARED_DEFAULT],
+changequote([, ])dnl
+[if test "$enableval" = no; then
+  enable_shared=no
+else
+  enable_shared=yes
+fi],
+enable_shared=AM_ENABLE_SHARED_DEFAULT)dnl
+])
+
+# AM_DISABLE_SHARED - set the default shared flag to --disable-static
+AC_DEFUN(AM_DISABLE_SHARED,
+[AM_ENABLE_SHARED(no)])
+
+# AM_DISABLE_STATIC - set the default static flag to --disable-static
+AC_DEFUN(AM_DISABLE_STATIC,
+[AM_ENABLE_STATIC(no)])
+
+# AM_ENABLE_STATIC - implement the --enable-static flag
+# Usage: AM_ENABLE_STATIC[(DEFAULT)]
+#   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
+#   `yes'.
+AC_DEFUN(AM_ENABLE_STATIC,
+[define([AM_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(static,
+changequote(<<, >>)dnl
+<<  --enable-static         build static libraries [default=>>AM_ENABLE_STATIC_DEFAULT],
+changequote([, ])dnl
+[if test "$enableval" = no; then
+  enable_static=no
+else
+  enable_static=yes
+fi],
+enable_static=AM_ENABLE_STATIC_DEFAULT)dnl
+])
+
+
 # AM_PROG_LD - find the path to the GNU or non-GNU linker
 AC_DEFUN(AM_PROG_LD,
 [AC_ARG_WITH(gnu-ld,
index 2787e0f3384e1a7827fa86caa800f2e8df0cecfd..29e2825d479fdda86467159898f36926b00d13b6 100644 (file)
@@ -2,7 +2,7 @@ Summary: GNU Libtool - shared library support for source packages
 # $Format: "Name: $Project$"$
 Name: libtool
 # $Format: "Version: $ProjectMajorVersion$"$
-Version: 1.0j
+Version: 1.1
 Release: 1
 Copyright: GPL
 Group: Development/Build
index 4277c3e7a1620891d0446bc2041ee30144ba6d76..97208292266920d83f3009b262daf009253952eb 100755 (executable)
@@ -58,7 +58,7 @@ fi
 Xsed='sed -e s/^X//'
 sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
 
-# Same as above, but don't quote variable references.
+# Same as above, but do not quote variable references.
 double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
 
 # The name of this program.
@@ -127,7 +127,7 @@ Generate a system-specific libtool script.
     --help                 display this help and exit
     --no-verify            do not verify that HOST is a valid host type
     --quiet                same as \`--silent'
-    --silent               don't print informational messages
+    --silent               do not print informational messages
     --srcdir=DIR           find \`config.guess' in DIR
     --version              output version information and exit
     --with-gcc             assume that the GNU C compiler will be used
@@ -296,10 +296,10 @@ else
   host_alias=$host
 fi
 
-# Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts.
-case "$host" in
-*-*-linux-gnu*) ;;
-*-*-linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
+case "$host_os" in
+linux-gnu*) ;;
+linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
 esac
 
 host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
@@ -441,14 +441,12 @@ compiler="$2"
 
 echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6
 pic_flag=
-profile_flag_pattern=
 special_shlib_compile_flags=
 wl=
 link_static_flag=
 no_builtin_flag=
 
 if test "$with_gcc" = yes; then
-  profile_flag_pattern='-pg?'
   wl='-Wl,'
   link_static_flag='-static'
   no_builtin_flag=' -fno-builtin'
@@ -544,7 +542,7 @@ if test -n "$pic_flag"; then
     # Append any errors to the config.log.
     cat conftest.err 1>&5
 
-    # On HP-UX, the stripped-down bundled CC doesn't accept +Z, but also
+    # On HP-UX, the stripped-down bundled CC does not accept +Z, but also
     # reports no error.  So, we need to grep stderr for (Bundled).
     if grep '(Bundled)' conftest.err >/dev/null; then
       echo "$ac_t"no 1>&6
@@ -623,7 +621,7 @@ if test -z "$LD"; then
       test -z "$LD" && LD="$ac_prog"
       ;;
     "")
-      # If it fails, then pretend we aren't using GCC.
+      # If it fails, then pretend we are not using GCC.
       ac_prog=ld
       ;;
     *)
@@ -670,7 +668,7 @@ if test -z "$LD"; then
   fi
 fi
 
-# Check to see if it really is or isn't GNU ld.
+# Check to see if it really is or is not GNU ld.
 echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6
 # I'd rather use --version here, but apparently some GNU ld's only accept -v.
 if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
@@ -684,6 +682,7 @@ echo "$ac_t$with_gnu_ld" 1>&6
 echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6
 
 allow_undefined_flag=
+no_undefined_flag=
 archive_cmds=
 old_archive_from_new_cmds=
 export_dynamic_flag_spec=
@@ -751,7 +750,7 @@ else
 
   # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
   # support.  Future versions do this automatically, but an explicit c++rt0.o
-  # doesn't break anything, and helps significantly (at the cost of a little
+  # does not break anything, and helps significantly (at the cost of a little
   # extra space).
   freebsd2.2*)
     archive_cmds='$LD -Bshareable -o $lib$libobjs /usr/lib/c++rt0.o'
@@ -761,7 +760,7 @@ else
     hardcode_shlibpath_var=no
     ;;
 
-  # Unfortunately, older versions of FreeBSD 2 don't have this feature.
+  # Unfortunately, older versions of FreeBSD 2 do not have this feature.
   freebsd2*)
     archive_cmds='$LD -Bshareable -o $lib$libobjs'
     hardcode_direct=yes
@@ -794,11 +793,10 @@ else
     export_dynamic_flag_spec='${wl}-E'
     ;;
 
-# FIXME: reimplement IRIX shared libraries.
-#  irix5* | irix6*)
-#    archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs'
-#    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-#    ;;
+  irix5* | irix6*)
+    archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs'
+    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+    ;;
 
   netbsd*)
     # Tested with NetBSD 1.2 ld
@@ -836,7 +834,8 @@ else
     ;;
 
   solaris2*)
-    archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs'
+    no_undefined_flag=' -z text'
+    archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib$libobjs'
     hardcode_libdir_flag_spec='-R$libdir'
     hardcode_shlibpath_var=no
 
@@ -1045,7 +1044,7 @@ else
 fi
 $rm conftest*
 
-# Don't use the global_symbol_pipe unless it works.
+# Do not use the global_symbol_pipe unless it works.
 echo "$ac_t$pipe_works" 1>&6
 test "$pipe_works" = yes || global_symbol_pipe=
 
@@ -1069,7 +1068,7 @@ if test -n "$hardcode_libdir_flag_spec" || \
 elif test "$hardcode_direct" != yes && \
      test "$hardcode_minus_L" != yes && \
      test "$hardcode_shlibpath_var" != yes; then
-  # We can't hardcode anything.
+  # We cannot hardcode anything.
   hardcode_action=unsupported
 else
   # We can only hardcode existing directories.
@@ -1228,12 +1227,6 @@ esac
 echo "$ac_t$dynamic_linker"
 test "$dynamic_linker" = no && can_build_shared=no
 
-# FIXME add checks for striplib and old_striplib here.
-# strip -x works for most platforms, though not for static libraries on NetBSD
-# HP-UX requires "-r" for library stripping
-striplib=
-old_striplib=
-
 # Report the final consequences.
 echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6
 
@@ -1279,11 +1272,11 @@ ltecho="$echo"
 for var in ltecho old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \
   old_LN_S AR CC LD LN_S NM reload_flag reload_cmds wl pic_flag \
   link_static_flag no_builtin_flag export_dynamic_flag_spec \
-  profile_flag_pattern libname_spec library_names_spec soname_spec RANLIB \
+  libname_spec library_names_spec soname_spec RANLIB \
   old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
   old_postuninstall_cmds archive_cmds postinstall_cmds postuninstall_cmds \
-  allow_undefined_flag finish_cmds finish_eval global_symbol_pipe \
-  striplib old_striplib \
+  allow_undefined_flag no_undefined_flag \
+  finish_cmds finish_eval global_symbol_pipe \
   hardcode_libdir_flag_spec hardcode_libdir_separator; do
 
   case "$var" in
@@ -1326,7 +1319,7 @@ Xsed="sed -e s/^X//"
 # if CDPATH is set.
 if test "\${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi
 
-# An echo program that doesn't interpret backslashes.
+# An echo program that does not interpret backslashes.
 echo="$ltecho"
 
 # The version of $progname that generated this script.
@@ -1382,9 +1375,6 @@ no_builtin_flag="$no_builtin_flag"
 # Compiler flag to allow reflexive dlopens.
 export_dynamic_flag_spec="$export_dynamic_flag_spec"
 
-# Pattern to match compiler flags for creating libNAME_p libraries:
-profile_flag_pattern="$profile_flag_pattern"
-
 # Library versioning type.
 version_type=$version_type
 
@@ -1415,6 +1405,9 @@ postuninstall_cmds="$postuninstall_cmds"
 # Flag that allows shared libraries with undefined symbols to be built.
 allow_undefined_flag="$allow_undefined_flag"
 
+# Flag that forces no undefined symbols.
+no_undefined_flag="$no_undefined_flag"
+
 # Commands used to finish a libtool library installation in a directory.
 finish_cmds="$finish_cmds"
 
@@ -1424,10 +1417,6 @@ finish_eval="$finish_eval"
 # Take the output of nm and produce a listing of raw symbols and C names.
 global_symbol_pipe="$global_symbol_pipe"
 
-# How to strip a library file.
-striplib="$striplib"
-old_striplib="$old_striplib"
-
 # This is the shared library runtime path variable.
 runpath_var=$runpath_var
 
index d82d37283e41f3c347d5973f25ed176c3205863c..839524d64f829a06c0dabdbbb561025075699b00 100644 (file)
--- a/ltmain.in
+++ b/ltmain.in
@@ -269,6 +269,9 @@ if test -z "$show_help"; then
     # Recognize several different file suffixes.
     xform='[cCFSfms]'
     case "$libobj" in
+    *.ada) xform=ada ;;
+    *.adb) xform=adb ;;
+    *.ads) xform=ads ;;
     *.asm) xform=asm ;;
     *.c++) xform=c++ ;;
     *.cc) xform=cc ;;
@@ -342,8 +345,8 @@ if test -z "$show_help"; then
       fi
     fi
 
-    # Create an invalid libtool object if no PIC, so that we don't accidentally
-    # link it into a program.
+    # Create an invalid libtool object if no PIC, so that we do not
+    # accidentally link it into a program.
     if test "$build_libtool_libs" != yes; then
       $show "echo timestamp > $libobj"
       $run eval "echo timestamp > \$libobj" || exit $?
@@ -735,7 +738,7 @@ if test -z "$show_help"; then
             finalize_shlibpath="$finalize_shlibpath$libdir:"
             finalize_command="$finalize_command -l$name"
           else
-            # We can't seem to hardcode it, guess we'll fake it.
+            # We cannot seem to hardcode it, guess we'll fake it.
             finalize_command="$finalize_command -L$libdir -l$name"
           fi
         else
@@ -982,8 +985,8 @@ if test -z "$show_help"; then
          build_old_libs=yes
         fi
       else
-        # Clear the flag.
-        allow_undefined_flag=
+        # Don't allow undefined symbols.
+        allow_undefined_flag="$no_undefined_flag"
       fi
 
       if test "$build_libtool_libs" = yes; then
@@ -1340,7 +1343,12 @@ EOF
       if test -d $objdir; then :
       else
         $show "$mkdir $objdir"
-        $run $mkdir $objdir || exit $?
+       $run $mkdir $objdir
+       status=$?
+       if test $status -eq 0 || test -d $objdir; then :
+       else
+         exit $status
+       fi
       fi
 
       if test -n "$shlibpath_var"; then
@@ -1371,7 +1379,7 @@ EOF
         finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
       fi
 
-      if test -n "$runpath_var"; then
+      if test -n "$runpath_var" && test -n "$perm_rpath"; then
         # We should set the runpath_var.
         rpath=
         for dir in $perm_rpath; do
@@ -1788,12 +1796,6 @@ EOF
           $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
           test "X$dlname" = "X$realname" && dlname=
 
-          # Support stripping libraries.
-          if test -n "$stripme" && test -n "$striplib"; then
-            $show "$striplib $destdir/$realname"
-            $run $striplib $destdir/$realname || exit $?
-          fi
-
           if test $# -gt 0; then
             # Delete the old symlinks.
             rmcmd="$rm"
@@ -1957,12 +1959,6 @@ EOF
       $show "$install_prog $file $oldlib"
       $run eval "$install_prog \$file \$oldlib" || exit $?
 
-      # Support stripping libraries.
-      if test -n "$stripme" && test -n "$old_striplib"; then
-        $show "$old_striplib $oldlib"
-        $run $old_striplib $oldlib || exit $?
-      fi
-
       # Do each command in the postinstall commands.
       cmds=`eval \\$echo \"$old_postinstall_cmds\"`
       IFS="${IFS=      }"; save_ifs="$IFS"; IFS=';'
index 9497982d0c5563aae849702384666527a1e22cbc..9cda708ba5059f0ff5dfbce4e23cc8b2358d4168 100644 (file)
@@ -1,3 +1,8 @@
+Sat Feb  7 10:52:55 1998  Gordon Matzigkeit  <gord@profitpress.com>
+
+       * suffix.test (extensions): Added GNAT (GNU Ada Translator)
+       suffices, `.ada', `.ads', `.adb'.  From Samuel Tardieu.
+
 Fri Jan 23 01:28:06 1998  Gordon Matzigkeit  <gord@profitpress.com>
 
        * Makefile.am (TESTS_ENVIRONMENT): Export some important
@@ -182,7 +187,7 @@ Fri Jan  3 23:15:22 1997  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
 Thu Jan  2 13:03:41 1997  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
 
        * suffix.test: New test to guarantee that libtool compile
-       recognizes valid source file suffixes.
+       recognizes valid source file suffices.
 
 Sun Dec  8 14:43:15 1996  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
 
index 86bfc63d44eff8c03205d3dab5ed45742098120a..321fff1bb45ab24d26b36c358c506bb72b8473a2 100755 (executable)
@@ -1,8 +1,9 @@
 #! /bin/sh
 # suffix.test - check that libtool knows how to transform source suffices.
 
-# Extensions taken from the ones that Automake recognizes, plus Objective C.
-extensions="C F S asm c c++ cc cpp cxx f f90 for m s"
+# Extensions taken from the ones that Automake recognizes, plus Objective C,
+# and GNU Ada.
+extensions="C F S ada ads adb asm c c++ cc cpp cxx f f90 for m s"
 bad_names="foo."
 
 # Test script header.