mirror of
git://git.savannah.gnu.org/libtool.git
synced 2025-03-31 16:10:35 +08:00
*** empty log message ***
This commit is contained in:
parent
4a3f219c99
commit
831a978fa1
31
ChangeLog
31
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.
|
||||
|
5
NEWS
5
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
|
||||
|
10
README
10
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
|
||||
|
@ -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
|
||||
|
4
THANKS
4
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>
|
||||
|
23
TODO
23
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
|
||||
|
@ -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.
|
||||
|
@ -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>.
|
||||
|
@ -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
|
||||
|
126
doc/libtool.texi
126
doc/libtool.texi
@ -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.
|
||||
|
94
libtool.m4
vendored
94
libtool.m4
vendored
@ -21,44 +21,25 @@
|
||||
## 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)
|
||||
AC_SUBST(LIBTOOL)dnl
|
||||
|
||||
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"
|
||||
|
||||
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,
|
||||
|
@ -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
|
||||
|
65
ltconfig.in
65
ltconfig.in
@ -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
|
||||
|
||||
|
34
ltmain.in
34
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=';'
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user