+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.
* 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.
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
-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.
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
-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
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>
* 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).
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.
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
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.
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>.
## Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>
AUTOMAKE_OPTIONS = gnits
info_TEXINFOS = libtool.texi
-libtool_TEXINFOS = platforms.texi
+libtool_TEXINFOS = PLATFORMS
@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
@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
@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}.@*
* 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
@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
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
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
@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
@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
platforms where it claims to support shared libraries:
@example
-@include platforms.texi
+@include PLATFORMS
@end example
@node 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 menu
@node References
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
@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.
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}
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}
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
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
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}.
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.
## 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"
|| 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,
# $Format: "Name: $Project$"$
Name: libtool
# $Format: "Version: $ProjectMajorVersion$"$
-Version: 1.0j
+Version: 1.1
Release: 1
Copyright: GPL
Group: Development/Build
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.
--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
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/'`
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'
# 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
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
;;
*)
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
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=
# 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'
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
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
;;
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
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=
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.
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
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
# 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.
# 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
# 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"
# 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
# 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 ;;
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 $?
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
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
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
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
$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"
$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=';'
+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
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>
#! /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.