Tue Apr 1 10:01:20 1997 Gordon Matzigkeit <gord@gnu.ai.mit.edu>
+ * Makefile.am (EXTRA_DIST): Distribute libtool.pkg.
+
+ * Shameless plug: Changed source code management system from CVS
+ to PRCS.
+
* libtool.scm: Initial Guile implementation of libtool.
* ltmain.sh.in: An unexpected inconsistency in my whole approach
I was hoping to get libtool 1.0 out the door by early April, but
now it looks like it will take at least another year before it'll
- be usable by the public at large. April fools.
+ be usable by the public at large. April fools. libtool.scm
+ doesn't exist yet, either.
* ltconfig.in (verify_host): Remove redundant `Transform *-*-linux*
to *-*-linux-gnu*'. From Bruno Haible.
# Distribute ltconfig and ltmain.sh so that the demo directory works.
EXTRA_DIST = $(aclocal_macros) libtoolize.in ltconfig ltconfig.in \
- ltmain.sh ltmain.sh.in README-automake
+ ltmain.sh ltmain.sh.in README-automake libtool.pkg
CLEANFILES = libtool libtoolize
MAINTAINERCLEANFILES = ltconfig ltmain.sh
NEWS - list of user-visible changes between releases of GNU libtool.
-New in 0.9c:
+New in 0.9d:
* Bug fixes.
+* Support for convenience libraries made of libtool objects.
+* New `-whole-archive' and `-no-whole-archive' linking flags.
* New Autoconf macros, AM_REPLACE_FUNCS, AM_FUNC_ALLOCA, AM_FUNC_MEMCMP,
AM_STRUCT_ST_BLOCKS that set and substitute LTLIBOBJS and LTALLOCA.
* Automake support for Libtool now uses the LTLIBRARIES primary. See
canonical host name compiler libtool results
release
----------------------------------------------------------------------
-alpha-dec-osf3.2 gcc 0.7a fail
-alpha-dec-osf3.2 cc 0.7a fail
-hppa1.1-hp-hpux9.05 gcc 0.7a fail
-hppa1.1-hp-hpux9.05 cc 0.7a fail
-hppa1.1-hp-hpux10.10 cc 0.7a fail
-i386-unknown-linux gcc 0.7c ok
-i386-unknown-netbsd1.2 gcc 0.7c ok
-mips-sgi-irix5.3 gcc 0.7a fail
-mips-sgi-irix5.3 cc 0.7a fail
-mips-sgi-irix6.2 cc -32 0.7a fail
-mips-sgi-irix6.2 cc -n32 0.7a fail
-rs6000-ibm-aix3.2.5 gcc 0.7c ok*
+alpha-dec-osf3.2 cc 0.8 ok
+alpha-dec-osf3.2 gcc 0.8 ok
+hppa1.1-hp-hpux9.05 cc 0.8 ok*
+hppa1.1-hp-hpux9.05 gcc 0.8 ok*
+hppa1.1-hp-hpux10.10 cc 0.8 ok
+i386-unknown-freebsd2.1.5 gcc 0.5 ok
+i386-unknown-gnu0.0 gcc 0.5 ok
+i386-unknown-linux2.0.16 gcc 0.8 ok
+i386-unknown-netbsd1.2 gcc 0.8 ok
+mips-sgi-irix5.3 cc 0.8 ok
+mips-sgi-irix5.3 gcc 0.8 ok
+mips-sgi-irix6.2 cc -32 0.8 ok
+mips-sgi-irix6.2 cc -n32 0.8 fail
rs6000-ibm-aix3.2.5 xlc 0.7c ok
-rs6000-ibm-aix4.1.4.0 gcc 0.7c ok**
-rs6000-ibm-aix4.1.4.0 xlc 0.7c ok**
-sparc-sun-sunos4.1.3_U1 gcc 0.7a ok
+rs6000-ibm-aix3.2.5 gcc 0.7c ok**
+rs6000-ibm-aix4.1.4.0 xlc 0.8 ok
+rs6000-ibm-aix4.1.4.0 gcc 0.7c ok
+sparc-sun-linux2.1.14 gcc 0.7c ok
sparc-sun-sunos4.1.3_U1 cc 0.7a ok
-sparc-sun-solaris2.4 gcc 0.7a ok
+sparc-sun-sunos4.1.3_U1 gcc 0.7a ok
sparc-sun-solaris2.4 cc 0.7a ok
-sparc-sun-solaris2.5.1 gcc 0.7c ok
+sparc-sun-solaris2.4 gcc 0.7a ok
+sparc-sun-solaris2.5.1 gcc 0.8 ok
----------------------------------------------------------------------
-* GCC 2.6.1 prints warnings about multiple symbol definitions.
+* `sh internal 2K buffer overflow', under investigation. In the
+meantime, set the CONFIG_SHELL environment variable to /usr/bin/ksh.
-** Autoconf 2.12 uses /usr/bin/installbsd, which is buggy, so that
- demo-inst fails.
+** GCC 2.6.1 prints warnings about multiple symbol definitions.
Shared library support has been implemented for these platforms:
AIX 3.x (*-*-aix3*)
AIX 4.x (*-*-aix4*)
- Digital/UNIX 3.x, a.k.a. OSF/1 (*-*-osf3*)
+ Digital/UNIX 3.x, 4.x, a.k.a. OSF/1 (*-*-osf3*, *-*-osf4*)
FreeBSD 2.x (*-*-freebsd*)
HP-UX 9.x, 10.x (*-*-hpux9*, *-*-hpux10*)
IRIX 5.x, 6.x (*-*-irix5*, *-*-irix6*)
Please do not send any bug reports or questions about it to public
forums (such as GNU newsgroups and mailing lists), send them directly
to Gordon Matzigkeit <gord@gnu.ai.mit.edu>.
-
-There are several references to a future release of Automake in
-libtool, that may not work with your own copy of Automake. Gordon is
-working closely with Tom Tromey to integrate libtool patches into
-Automake.
-
-In the meantime, just ignore these references, or use Gord's
-modified version of automake-1.1i that supports all the features
-described in the libtool manual:
-
-<URL:http://www.enci.ucalgary.ca/~gord/src/automake-1.1j.tar.gz>
There are several references to a future release of Automake in
libtool, that may not work with your own copy of Automake. Only
-releases of Automake after automake-1.1j work with libtool.
+releases of Automake after automake-1.1m work with libtool as
+documented in the manual.
You can find the latest Automake prerelease (warning: it may have
bugs) at:
Thanks,
--Gord
-
-** If you have automake-1.1k, you'll need to apply the following patch
-before installing it:
-
-diff -u automake-1.1k/automake.in.orig automake-1.1k/automake.in
---- automake-1.1k/automake.in.orig Sun Dec 8 04:03:10 1996
-+++ automake-1.1k/automake.in Sun Dec 8 04:03:12 1996
-@@ -4294,7 +4294,7 @@
- {
- # Note that we explicitly set the mode, to avoid
- # lossage if the program name isn't what we expect.
-- $more_xform = 's/\@LIBTOOL\@/$(LIBTOOL) --mode=install/;';
-+ $more_xform = 's/\@LIBTOOL\@/\$(LIBTOOL) --mode=install/;';
- }
- else
- {
Akim Demaille <demaille@inf.enst.fr>
Bruno Haible <haible@ilog.fr>
+Carl D. Roth <roth@cse.ucsc.edu>
Charles S. Kerr <cskerr@delenn.jccbi.gov>
Joel Cannon <cannon@alpha.centenary.edu>
Karl Berry <kb@cs.umb.edu>
-* Need to change `-rpath FOO -rpath BAR' to `-rpath FOO:BAR' with at
-least OSF/1 ld.
+* Document convenience libraries, -whole-archive, and
+-no-whole-archive.
-For 1.1:
+* Document the -export-dynamic flag, and the new dlname mode.
-* Complete the -export-dynamic flag, and the new dlname mode.
+For 1.1:
-* Complete convenience libraries made of libtool objects. Document
--whole-archive and -no-whole-archive. We also need a way to use these
-convenience libraries just to resolve symbols, rather than the
-(simplistic) whole-archive and no-whole-archive.
+* We also need a way to use convenience libraries just to resolve
+symbols, rather than the (simplistic) whole-archive and
+no-whole-archive.
* Write libtool not to be dependent on the compiler used to configure
it.
dnl Process this file with autoconf to create configure.
AC_INIT(ltmain.sh.in)
-AM_INIT_AUTOMAKE(libtool,0.9d)
+AM_INIT_AUTOMAKE(libtool,0.9e)
pkgdatadir='${datadir}/libtool'
AC_SUBST(pkgdatadir)
-# A brief demonstration of using Automake with Libtool.
+# A brief demonstration of using Automake with Libtool. -*-Makefile-*-
AUTOMAKE_OPTIONS = foreign
EXTRA_DIST = $(TESTS) acinclude.m4
AC_PROG_CC
AM_PROG_LIBTOOL
+dnl Check for the math library.
+AC_CHECK_LIB(m, cos)
+
dnl Output the makefile
AC_OUTPUT(Makefile)
/* foo.c -- trivial test function for libfoo
Copyright (C) 1996 Free Software Foundation, Inc.
+ Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
This file is part of GNU Libtool.
This program is free software; you can redistribute it and/or modify
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-/* Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu> */
#include "foo.h"
#include <stdio.h>
#include <math.h>
+/* Give a global variable definition. */
+int nothing;
+
int
foo ()
{
/* foo.h -- interface to the libfoo library
Copyright (C) 1996 Free Software Foundation, Inc.
- This file is part of GNU Libtool.
Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+ This file is part of GNU Libtool.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#define HELLO_RET 0xe110
#define FOO_RET 0xf00
-/* Function declarations. Note the wonderful use of the above macros. */
+/* Declarations. Note the wonderful use of the above macros. */
__BEGIN_DECLS
int foo __P((void));
int hello __P((void));
+extern int nothing;
__END_DECLS
#endif /* !_FOO_H_ */
#include <stdio.h>
int
-hello (void)
+hello ()
{
printf ("** This is not GNU Hello. There is no built-in mail reader. **\n");
return HELLO_RET;
{
printf ("Welcome to GNU Hell!\n");
+ /* Try assigning to the nothing variable */
+ nothing = 1;
+
/* Just call the functions and check return values. */
if (foo () != FOO_RET)
return 1;
-## Process Makefile.am with automake to create Makefile.in.
+## Process Makefile.am with automake to create Makefile.in. -*-Makefile-*-
##
## Copyright (C) 1996 Free Software Foundation, Inc.
## This Makefile.am is free software; the Free Software Foundation
@c %**end of header
@include version.texi
-@set BUGADDR Gord Matzigkeit <gord@@gnu.ai.mit.edu>
+@set BUGADDR Gordon Matzigkeit <gord@@gnu.ai.mit.edu>
@dircategory GNU programming tools
@direntry
approved by the Free Software Foundation.
@end titlepage
+@c Index of Autoconf macros.
+@defindex am
+
@c Put everything in one index (arbitrarily chosen to be the concept index).
@syncodeindex vr cp
+@syncodeindex fn cp
@synindex pg cp
@ifinfo
* Other Languages:: Using libtool without a C compiler.
* Troubleshooting:: When libtool doesn't work as advertised.
* Maintaining:: Information used by the libtool maintainer.
-* Index:: Index of concepts, variables, and programs.
+* Index:: Full index.
@detailmenu
+
--- The Detailed Node Listing ---
Introduction
Including Libtool with Your Package
* Invoking libtoolize:: @file{libtoolize} command line options.
+* Autoconf .o Macros:: Autoconf macros that set object file names.
Library Interface Versions
@section Writing Makefile Rules for Libtool
Libtool is fully integrated with Automake (@pxref{Top, , The Automake
-Manual, automake.info, The Automake Manual}), starting with Automake
+Manual, automake, The Automake Manual}), starting with Automake
version 1.2.
If you want to use libtool in a regular @file{Makefile} (or
@node Using Automake
@section Using Automake with Libtool
-Libtool library support fits conveniently into Automake's understanding
-of what a @samp{PROGRAM} is.
+Libtool library support is implemented under the @samp{LTLIBRARIES}
+primary.
Here are some samples from the Automake @file{Makefile.am} in the
libtool distribution's @file{demo} subdirectory.
Building a libtool library is almost as trivial@dots{} note the use of
@samp{libhello_la_LDFLAGS} to pass the @samp{-version-info}
-(@pxref{Versioning}) and @samp{-rpath} options to libtool:
+(@pxref{Versioning}) option to libtool:
@example
# Build a libtool library, libhello.la for installation in libdir.
-lib_PROGRAMS = libhello.la
+lib_LTLIBRARIES = libhello.la
libhello_la_SOURCES = hello.c foo.c
-libhello_la_LDFLAGS = -version-info 3:12:1 -rpath $(libdir)
+libhello_la_LDFLAGS = -version-info 3:12:1
@end example
+The @samp{-rpath} option is passed automatically by Automake, so you
+should not specify it.
+
+@xref{A Shared Library, Building a Shared Library, The Automake Manual,
+automake, The Automake Manual}, for more information.
+
@node Configuring
@section Configuring Libtool
@file{ltconfig} also recognizes the following environment variables:
-@table @var
-@item CC
+@defvar CC
The C compiler that will be used by the generated @file{libtool}.
+@end defvar
-@item CFLAGS
+@defvar CFLAGS
Compiler flags used to generate standard object files.
+@end defvar
-@item CPPFLAGS
+@defvar CPPFLAGS
C preprocessor flags.
+@end defvar
-@item LD
+@defvar LD
The system linker to use (if the generated @file{libtool} requires one).
+@end defvar
-@item RANLIB
+@defvar RANLIB
Program to use rather than checking for @file{ranlib}.
-@end table
+@end defvar
@node ltconfig Example
@subsection Using @file{ltconfig}
@node AM_PROG_LIBTOOL
@subsection The @code{AM_PROG_LIBTOOL} macro
+@amindex AM_PROG_LIBTOOL
If you are using GNU Autoconf (or Automake), you should add a call to
@code{AM_PROG_LIBTOOL} to your @file{configure.in} file. This macro
offers seamless integration between the @file{configure} script and
-@file{ltconfig}.
-
-@code{AM_PROG_LIBTOOL} also adds support for the @samp{--enable-shared}
-and @samp{--disable-shared} @file{configure} flags.
+@file{ltconfig}:
+
+@defmac AM_PROG_LIBTOOL
+Add support for the @samp{--enable-shared} and @samp{--disable-shared}
+@file{configure} flags. Invoke @file{ltconfig} with the correct
+arguments to configure the package.@footnote{@code{AM_PROG_LIBTOOL}
+requires that you define the Makefile variable @code{top_builddir} in
+your @file{Makefile.in}. Automake does this automatically, but Autoconf
+users should set it to the relative path to the top of your build
+directory (@file{../..}, for example).}
+@end defmac
When you invoke the @file{libtoolize} program (@pxref{Invoking
libtoolize}), it will tell you where to find a definition of
@code{AM_PROG_LIBTOOL}. If you use Automake, the @file{aclocal} program
will automatically add @code{AM_PROG_LIBTOOL} support to your
-@file{configure} script.@footnote{@code{AM_PROG_LIBTOOL} requires that
-you define the Makefile variable @code{top_builddir} in your
-@file{Makefile.in}. Automake does this automatically, but Autoconf
-users should set it to the relative path to the top of your build
-directory (@file{../..}, for example).}
+@file{configure} script.
@node Distributing
@section Including Libtool with Your Package
@menu
* Invoking libtoolize:: @file{libtoolize} command line options.
+* Autoconf .o Macros:: Autoconf macros that set object file names.
@end menu
@node Invoking libtoolize
If @file{libtoolize} detects an explicit call to
@code{AC_CONFIG_AUX_DIR} (@pxref{Input, , The Autoconf Manual,
-autoconf.info, The Autoconf Manual}) in your @file{configure.in}, it
+autoconf, The Autoconf Manual}) in your @file{configure.in}, it
will put the files in the specified directory.
@file{libtoolize} displays hints for adding libtool support to your
package, as well.
+@node Autoconf .o Macros
+@subsection Autoconf @samp{.o} Macros
+
+The Autoconf package comes with a few macros that run tests, then set a
+variable corresponding to the name of an object file. Sometimes it is
+necessary to use corresponding names for libtool objects.
+
+So, included with libtool are convenience macros that do this kind of
+work:
+
+@defmac AM_REPLACE_FUNCS (@var{function}@dots{})
+Same as @code{AC_REPLACE_FUNCS} (@pxref{Generic Functions, Generic
+Function Checks, The Autoconf Manual, autoconf, The Autoconf
+Manual}), except it also adds @samp{@var{function}.lo} to the value of
+the output variable @code{LTLIBOBJS}.
+@end defmac
+
+@defmac AM_FUNC_ALLOCA
+Same as @code{AC_FUNC_ALLOCA} (@pxref{Particular Functions, Particular
+Function Checks, The Autoconf Manual, autoconf, The Autoconf
+Manual}), but also sets the output variable @code{LTALLOCA} to
+@samp{alloca.lo}.
+@end defmac
+
+@defmac AM_FUNC_MEMCMP
+Same as @code{AC_FUNC_MEMCMP} (@pxref{Particular Functions, Particular
+Function Checks, The Autoconf Manual, autoconf, The Autoconf
+Manual}), except it also adds @samp{memcmp.lo} to the value of the output
+variable @code{LTLIBOBJS}.
+@end defmac
+
+@defmac AM_STRUCT_ST_BLOCKS
+Same as @code{AC_STRUCT_ST_BLOCKS} (@pxref{Structures, Structures, The
+Autoconf Manual, autoconf, The Autoconf Manual}), except it also
+adds @samp{fileblocks.lo} to the output variable @code{LTLIBOBJS}.
+@end defmac
+
@node Versioning
@chapter Library Interface Versions
behaviour you think is a problem is not already mentioned as a feature.
Then, you should read the Emacs guide to reporting bugs (@pxref{Bugs, , The
-Emacs Manual, emacs.info, The Emacs Manual}). Some of the details
+Emacs Manual, emacs, The Emacs Manual}). Some of the details
listed there are specific to Emacs, but the priciple behind them is a
general one.
@include platforms.texi
@end example
-Libtool versions ending in a single letter (such as @samp{0.7a})
-designate beta releases. So, @samp{0.7a} comes after public release
-@samp{0.7}, but before @samp{0.8}.
-
@node Platform Quirks
@section Platform Quirks
simply sets shell variables, then sources the libtool backend,
@file{ltmain.sh}.
-Here is a listing of each of these variable, and how it is used within
-@file{ltmain.sh}:
+Here is a listing of each of these variables, and how they are used
+within @file{ltmain.sh}:
-@table @samp
-@item LD
+@defvar LD
The name of the linker that libtool should use internally for reloadable
linking and possibly shared libraries.
+@end defvar
-@item LTCONFIG_VERSION
+@defvar LTCONFIG_VERSION
This is set to the version number of the @file{ltconfig} script, to
prevent mismatches between the configuration information in
@file{libtool}, and how that information is used in @file{ltmain.sh}.
+@end defvar
-@item RANLIB
+@defvar RANLIB
Set to the name of the ranlib program, if any.
+@end defvar
-@item archive_cmds
-@itemx old_archive_cmds
+@defvar archive_cmds
+@defvarx old_archive_cmds
Commands used to create shared and static libraries, respectively.
+@end defvar
-@item build_libtool_libs
+@defvar build_libtool_libs
Whether libtool should build shared libraries on this system. Set to
@samp{yes} or @samp{no}.
+@end defvar
-@item build_old_libs
+@defvar build_old_libs
Whether libtool should build static libraries on this system. Set to
@samp{yes} or @samp{no}.
+@end defvar
-@item finish_cmds
+@defvar finish_cmds
Commands to tell the dynamic linker to find shared libraries a
directory.
+@end defvar
+
+@defvar hardcode_action
+Either @samp{immediately} or @samp{relink}, depending on whether shared
+library paths can be hardcoded into executables before they are installed,
+or if they need to be relinked.
+@end defvar
-@item hardcode_shlibpath_var
+@defvar hardcode_direct
Set to @samp{yes} or @samp{no}, depending on whether the linker
-hardcodes directories specified by setting @samp{$shlibpath_var} into
-the resulting executable.
+hardcodes directories if a library is directly specified on the command
+line (such as @samp{@var{dir}/lib@var{name}.a}).
+@end defvar
-@item hardcode_minus_L
+@defvar hardcode_libdir_flag_spec
+Flag to hardcode a @var{libdir} variable into a binary, so that the
+dynamic linker searches @var{libdir} for shared libraries at runtime.
+@end defvar
+
+@defvar hardcode_minus_L
Set to @samp{yes} or @samp{no}, depending on whether the linker
hardcodes directories specified by @samp{-L} flags into the resulting
executable.
+@end defvar
-@item host
-@itemx host_alias
+@defvar hardcode_shlibpath_var
+Set to @samp{yes} or @samp{no}, depending on whether the linker
+hardcodes directories specified by setting @samp{$shlibpath_var} into
+the resulting executable.
+@end defvar
+
+@defvar host
+@defvarx host_alias
For information purposes, set to the specified and canonical names of
the system that libtool was configured for.
+@end defvar
-@item lib_names
+@defvar library_names_spec
A list of shared library names. The first name is the name of the file,
-the rest are symbolic links to the file.
-
-@item link_rpath_flag
-Linker flag to specify a runtime search path for the dynamic linker.
+the rest are symbolic links to the file. The last name in the list is
+the one that the linker finds when given @samp{-l@var{name}}.
+@end defvar
-@item link_static_flag
+@defvar link_static_flag
Linker flag (passed through the C compiler) used to prevent dynamic
linking.
+@end defvar
-@item pic_flag
+@defvar pic_flag
Any additional compiler flags for building library object files.
+@end defvar
-@item postinstall_cmds
-@item old_postinstall_cmds
+@defvar postinstall_cmds
+@defvarx old_postinstall_cmds
Commands run after installing a shared or static librar, respectively.
+@end defvar
-@item reload_cmds
-@itemx reload_flag
+@defvar reload_cmds
+@defvarx reload_flag
Commands to create a reloadable object.
+@end defvar
-@item shlibpath_var
+@defvar shlibpath_var
The environment variable that tells the dynamic linker where to find
shared libraries.
+@end defvar
-@item striplib
-@itemx old_striplib
+@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
-@item soname_spec
+@defvar soname_spec
The name coded into shared libraries, if different from the real name of
the file.
+@end defvar
-@item version_type
+@defvar version_type
The library version numbering type. One of @samp{libtool},
@samp{linux}, @samp{osf}, @samp{sunos}, or @samp{none}.
+@end defvar
-@item wl
+@defvar wl
The C compiler flag that allows libtool to pass a flag directly to the
linker. Used as: @samp{$@{wl@}@var{some-flag}}.
-
-@end table
+@end defvar
Variables ending in @samp{_cmds} may contain a semicolon-separated list
-of commands that are evaluated one after another. If any of the
+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.
+
@node Index
@unnumbered Index
--------------------------------------------------------
-canonical host name compiler libtool results
- release
+canonical host name compiler libtool results
+ release
--------------------------------------------------------
-alpha-dec-osf3.2 cc 0.8 ok
-alpha-dec-osf3.2 gcc 0.8 ok
-alpha-dec-osf4.0 cc 0.9 ok
-alpha-dec-osf4.0 gcc 0.9 ok
-hppa1.1-hp-hpux9.05 cc 0.8 ok
-hppa1.1-hp-hpux9.05 gcc 0.8 ok
-hppa1.1-hp-hpux10.10 cc 0.8 ok
-i386-unknown-freebsd2.1.5 gcc 0.5 ok
-i386-unknown-gnu0.0 gcc 0.5 ok
-i386-unknown-netbsd1.2 gcc 0.9a ok
-i586-unknown-linux1.3.20 gcc 0.9 ok
-i586-unknown-linux2.0.16 gcc 0.9a ok
-mips-sgi-irix5.3 cc 0.8 ok
-mips-sgi-irix5.3 gcc 0.8 ok
-mips-sgi-irix6.2 cc -32 0.9 ok
-mips-sgi-irix6.2 cc -n32 0.9 ok
-powerpc-ibm-aix4.1.4.0 xlc 0.9a ok
-powerpc-ibm-aix4.1.4.0 gcc 0.9a ok
-rs6000-ibm-aix3.2.5 xlc 0.9 fail
-rs6000-ibm-aix3.2.5 gcc 0.9 fail
-rs6000-ibm-aix4.1.4.0 xlc 0.9 ok
-rs6000-ibm-aix4.1.4.0 gcc 0.9 fail
-sparc-sun-linux2.1.23 gcc 0.9 ok
-sparc-sun-sunos4.1.3_U1 cc 0.9 ok
-sparc-sun-sunos4.1.3_U1 gcc 0.9 ok
-sparc-sun-solaris2.4 cc 0.9 ok
-sparc-sun-solaris2.4 gcc 0.9 ok
-sparc-sun-solaris2.5 cc 0.9 ok
-sparc-sun-solaris2.5 gcc 0.9a ok
+alpha-dec-osf3.2 cc 0.8 ok
+alpha-dec-osf3.2 gcc 0.8 ok
+alpha-dec-osf4.0 cc 0.9 ok
+alpha-dec-osf4.0 gcc 0.9 ok
+alpha-unknown-linux gcc 0.9d ok
+hppa1.1-hp-hpux9.05 cc 0.8 ok
+hppa1.1-hp-hpux9.05 gcc 0.8 ok
+hppa1.1-hp-hpux10.10 cc 0.8 ok
+i386-unknown-freebsd2.1.5 gcc 0.5 ok
+i386-unknown-gnu0.0 gcc 0.5 ok
+i386-unknown-netbsd1.2 gcc 0.9d ok
+i586-unknown-linux1.3.20 gcc 0.9 ok
+i586-unknown-linux2.0.16 gcc 0.9d ok
+mips-sgi-irix5.3 cc 0.8 ok
+mips-sgi-irix5.3 gcc 0.8 ok
+mips-sgi-irix6.2 cc -32 0.9 ok
+mips-sgi-irix6.2 cc -n32 0.9 ok
+powerpc-ibm-aix4.1.4.0 xlc 0.9d ok
+powerpc-ibm-aix4.1.4.0 gcc 0.9a ok
+rs6000-ibm-aix3.2.5 xlc 0.9 fail
+rs6000-ibm-aix3.2.5 gcc 0.9 fail
+rs6000-ibm-aix4.1.4.0 xlc 0.9 ok
+rs6000-ibm-aix4.1.4.0 gcc 0.9 fail
+sparc-sun-linux2.1.23 gcc 0.9 ok
+sparc-sun-sunos4.1.3_U1 cc 0.9 ok
+sparc-sun-sunos4.1.3_U1 gcc 0.9 ok
+sparc-sun-solaris2.4 cc 0.9 ok
+sparc-sun-solaris2.4 gcc 0.9 ok
+sparc-sun-solaris2.5 cc 0.9 ok
+sparc-sun-solaris2.5 gcc 0.9d ok
--------------------------------------------------------
## configuration script generated by Autoconf, you may include it under
## the same distribution terms that you use for the rest of that program.
-# serial 2 AM_PROG_LIBTOOL
+# serial 4 AM_PROG_LIBTOOL
AC_DEFUN(AM_PROG_LIBTOOL,
[AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([AC_PROG_CC])
test "$silent" = yes && libtool_flags="$libtool_flags --silent"
test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
-# On SCO OpenServer 5, we need -belf to get full-featured binaries.
-case "$host" in
-*-*-sco3.2v5*) CFLAGS="$CFLAGS -belf" ;;
-esac
+[case "$host" in
+*-*-irix6*)
+ # For IRIX 6, ld needs -n32 if cc uses it.
+ if echo " $CC $CFLAGS " | egrep -e '[ ]-n32[ ]' > /dev/null; then
+ LD="${LD-ld} -n32"
+ fi
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ CFLAGS="$CFLAGS -belf"
+ ;;
+esac]
# Actually configure libtool. ac_aux_dir is where install-sh is found.
CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" LD="$LD" RANLIB="$RANLIB" \
-$ac_aux_dir/ltconfig $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
+${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \
+$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
|| AC_MSG_ERROR([libtool configure failed])
])
files=`cd $pkgdatadir && ls`
if test -z "$files"; then
- echo "$progname: cannot \`cd' to \`$pkgdatadir'" 1>&2
+ echo "$progname: cannot list files in \`$pkgdatadir'" 1>&2
exit 1
fi
+auxdir=.
+auxdirline=`egrep '^AC_CONFIG_AUX_DIR' configure.in 2>/dev/null`
+if test -n "$auxdirline"; then
+ # Handle explicit AC_CONFIG_AUX_DIR settings.
+ auxdir=`echo "$auxdirline" | sed 's/^AC_CONFIG_AUX_DIR(\([^)]*\)).*$/\1/'`
+
+ if test "$auxdir" = "$auxdirline"; then
+ echo "$progname: invalid AC_CONFIG_AUX_DIR syntax: $auxdirline" 1>&2
+ exit 1
+ else
+ # Strip any quote brackets.
+ auxdir=`echo "$auxdir" | sed 's/^\[\(.*\)\]$/\1/g'`
+ case "$auxdir" in
+ *\$*)
+ echo "$progname: cannot handle variables in AC_CONFIG_AUX_DIR" 1>&2
+ exit 1
+ ;;
+ *)
+ ;;
+ esac
+ fi
+else
+ # Try to discover auxdir the same way it is discovered by configure.
+ # Note that we default to the current directory.
+ for dir in . .. ../..; do
+ if test -f $dir/install-sh; then
+ auxdir=$dir
+ break
+ elif test -f $dir/install.sh; then
+ auxdir=$dir
+ break
+ fi
+ done
+fi
+
if test -z "$automake"; then
- if egrep AM_PROG_LIBTOOL configure.in >/dev/null 2>&1; then :
+ if egrep '^AM_PROG_LIBTOOL' configure.in >/dev/null 2>&1; then :
else
echo "Remember to add \`AM_PROG_LIBTOOL' to \`configure.in'."
fi
- if egrep AC_PROG_RANLIB configure.in >/dev/null 2>&1; then
+ if egrep '^AC_PROG_RANLIB' configure.in >/dev/null 2>&1; then
echo "Using \`AC_PROG_RANLIB' is rendered obsolete by \`AM_PROG_LIBTOOL'"
fi
if grep 'generated automatically by aclocal' aclocal.m4 >/dev/null 2>&1; then
- updatemsg="You should update your \`aclocal.m4' by running aclocal."
+ updatemsg="update your \`aclocal.m4' by running aclocal"
else
- updatemsg="You should add the contents of \`$libtool_m4' to \`aclocal.m4'."
+ updatemsg="add the contents of \`$libtool_m4' to \`aclocal.m4'"
fi
if egrep '^AC_DEFUN\(AM_PROG_LIBTOOL' aclocal.m4 >/dev/null 2>&1; then
test -z "$localserial" && localserial=0
if test "$localserial" -lt "$instserial"; then
- echo "$updatemsg"
+ echo "You should $updatemsg."
elif test "$localserial" -gt "$instserial"; then
- echo "$progname: \`$libtool_m4' has serial number $instserial, less than $localserial found in \`aclocal.m4'" 1>&2
+ echo "$progname: \`$libtool_m4' is serial $instserial, less than $localserial in \`aclocal.m4'" 1>&2
+ if test -z "$force"; then
+ echo "Use \`--force' to replace newer libtool files with this version." 1>&2
+ exit 1
+ fi
+ echo "To remain compatible, you should $updatemsg."
fi
fi
else
- echo "$updatemsg"
+ echo "You should $updatemsg."
fi
fi
+
+# Change to the auxillary directory.
+if test "$auxdir" != .; then
+ test -z "$automake" && echo "Putting files in AC_CONFIG_AUX_DIR, \`$auxdir'."
+ cd $auxdir || exit 1
+fi
+
+
for file in $files; do
if test -f "$file" && test -z "$force"; then
test -z "$automake" && echo "$progname: \`$file' exists: use \`--force' to overwrite" 1>&2
host=`$ac_config_sub $host_alias`
echo "$ac_t""$host" 1>&6
- # 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/'`
- esac
-
elif test "$host" = NONE; then
echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2
echo "$help" 1>&2
if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
# Replace the output file specification.
- compile_command=`echo "$compile_command" | sed "s%@OUTPUT@%$output%g"`
- finalize_command=`echo "$finalize_command" | sed "s%@OUTPUT@%$output%g"`
+ compile_command=`echo "$compile_command" | sed 's%@OUTPUT@%'"$output"'%g'`
+ finalize_command=`echo "$finalize_command" | sed 's%@OUTPUT@%'"$output"'%g'`
# We have no uninstalled library dependencies, so finalize right now.
$show "$compile_command"
fi
# Replace the output file specification.
- compile_command=`echo "$compile_command" | sed "s%@OUTPUT@%$objdir/$output%g"`
- finalize_command=`echo "$finalize_command" | sed "s%@OUTPUT@%$objdir/$output"T"%g`
+ compile_command=`echo "$compile_command" | sed 's%@OUTPUT@%'"$objdir/$output"'%g'`
+ finalize_command=`echo "$finalize_command" | sed 's%@OUTPUT@%'"$objdir/$output"'T%g'`
# Create the binary in the object directory, then wrap it.
if test -d $objdir; then :
+Tue Apr 1 12:48:32 1997 Gordon Matzigkeit <gord@gnu.ai.mit.edu>
+
+ * hardcode.test: AIX 3 doesn't have strings(1) so we need to do a
+ funny tr and pipe the output to fgrep. From Bruno Haible.
+
Mon Feb 3 15:17:18 1997 Gordon Matzigkeit <gord@gnu.ai.mit.edu>
* Makefile.am (TESTS): Do the full make sequence with
-## Process this file with automake to create Makefile.in
+## Process this file with automake to create Makefile.in -*-Makefile-*-
AUTOMAKE_OPTIONS = gnits
*) srcdir=`cd $srcdir && pwd` ;;
esac
+progname=`echo "$0" | sed 's%^.*/%%'`
+
# tlibtool needs to know what srcdir is.
export srcdir
libtool="$srcdir/tlibtool"
+make="${MAKE-make}"
prefix="./=inst"
if test "$need_prefix" = yes; then
fi
# See how redirections should work.
-if test -z "$VERBOSE"; then
- exec > /dev/null 2>&1
-fi
+case "$VERBOSE" in
+NO | no | 0 | "")
+ exec > /dev/null 2>&1
+ ;;
+esac
-echo "=== Running test $0"
+echo "=== Running $progname"
# Configure the demonstration.
echo "= Configuring in ../demo (prefix=$prefix)"
-$srcdir/../demo/configure --srcdir=$srcdir/../demo --prefix=$prefix || exit 1
+${CONFIG_SHELL-/bin/sh} $srcdir/../demo/configure --srcdir=$srcdir/../demo --prefix=$prefix || exit 1
exit 0
# Check to see if the programs really run.
echo "Executing uninstalled programs in ../demo"
-if ../demo/hell.static | grep 'GNU Hell'; then :
+if ../demo/hell.static | grep 'Welcome to GNU Hell'; then :
else
echo "$0: cannot execute ./hell.static" 1>&2
exit 1
fi
-if ../demo/hell | grep 'GNU Hell'; then :
+if ../demo/hell | grep 'Welcome to GNU Hell'; then :
else
echo "$0: cannot execute ./hell" 1>&2
exit 1
$make install || exit 1
echo "= Executing installed programs"
-if $prefix/bin/hell.static | grep 'GNU Hell'; then :
+if $prefix/bin/hell.static | grep 'Welcome to GNU Hell'; then :
else
echo "$0: cannot execute $prefix/bin/hell.static" 1>&2
exit 1
fi
-if $prefix/bin/hell | grep 'GNU Hell'; then :
+if $prefix/bin/hell | grep 'Welcome to GNU Hell'; then :
else
echo "$0: cannot execute $prefix/bin/hell" 1>&2
# Do the actual build.
echo "Making in ../demo"
-make || exit 1
+$make || exit 1
exit 0
# Change to our build directory.
cd ../demo || exit 1
-echo "= Running make uninstall in ../demo"
-make uninstall || exit 1
+echo "= Running $make uninstall in ../demo"
+$make uninstall || exit 1
# See that there were no files leftover in $prefix.
# Ignore dotfiles, so that .nfsXXX files don't screw up the test.
-leftovers=`find $prefix ! -type d -print | egrep -v '^\.'`
+leftovers=`find $prefix ! -type d ! -name '.*' -print`
if test -n "$leftovers"; then
echo "= Leftover after make uninstall:"
ls -l $leftovers
hardcoded=no
if fgrep '.libs' $file > /dev/null; then
hardcoded=yes
- elif strings -a $file 2>/dev/null | fgrep '.libs' > /dev/null; then
- # At least AIX fgrep doesn't work for binary files, so we need strings.
+ elif cat $file | tr '\200-\277' '\100-\177' | tr '\300-\377' '\100-\177' | tr '\000-\037' '\040-\077' | fgrep '.libs' > /dev/null; then
+ # At least AIX fgrep doesn't work for binary files, and AIX also
+ # doesn't have strings(1), so we need this strange conversion.
hardcoded=yes
elif egrep 'unsupported' $file > /dev/null; then
hardcoded=unsupported
# Try a sample link command.
linkresult=`$libtool -n --mode=link gcc -o something foo.o hell.lo`
-test $? = 0 || exit 1
+test $? -eq 0 || exit 1
echo "$linkresult"
case "$linkresult" in
. $srcdir/defs || exit 1
# Try a sample link command.
-$libtool -n --mode=link gcc -o gettext ../lib/libnlsut.a
-exit $?
+linkresult=`$libtool -n --mode=link gcc -o gettext ../lib/libnlsut.a`
+test $? -eq 0 || exit 1
+
+echo "$linkresult"
+case "$linkresult" in
+*../lib/libnlsut.a) ;;
+*)
+ echo "$progname: ../lib/libnlsut.a was not used as expected in linking"
+ exit 1
+ ;;
+esac
+exit 0
# Test script header.
need_prefix=no
if test -z "$srcdir"; then
- srcdir=.
+ srcdir=`echo "$0" | sed 's%/[^/]*$%%'`
+ test "$srcdir" = "$0" && srcdir=.
test "${VERBOSE+set}" != "set" && VERBOSE=yes
fi
. $srcdir/defs || exit 1
fi
exit 0
-
exit 1
fi
+# Grab all the settings from the generated libtool.
+eval "`egrep '^[A-Za-z_][A-Za-z0-9_]*=' ../libtool`"
+
# Use @VERSION@ so that we can use ../ltmain.sh.in directly.
LTCONFIG_VERSION="@VERSION@"
-# Whether or not to build libtool libraries.
-build_libtool_libs=yes
-
-# Whether or not to build old-style libraries.
-build_old_libs=yes
-
-# The host system.
-host_alias="i386-unknown-netbsd1.2"
-host="i386-unknown-netbsd1.2"
-
-# The linker used to build libraries.
-LD='ld'
-
-# How to create reloadable object files.
-reload_flag=' -r'
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-
-# How to pass a linker flag through the compiler.
-wl='-Wl,'
-
-# Additional compiler flags for building library objects.
-pic_flag=' -fPIC'
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag='-static'
-
-# Pattern to match compiler flags for creating libNAME_p libraries:
-profile_flag_pattern='-pg?'
-
-# Library versioning type.
-version_type=sunos
-
-# List of archive names. First name is the real one, the rest are links.
-lib_names='$libname.so.$versuffix'
-
-# The coded name of the library, if different from the real name.
-soname_spec=''
-
-# Commands used to build and install an old-style archive.
-RANLIB='ranlib'
-old_archive_cmds='ar cru $oldlib$oldobjs;$RANLIB $oldlib'
-old_postinstall_cmds='chmod 644 $oldlib;$RANLIB $oldlib'
-
-# Commands used to build and install a shared archive.
-archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs'
-postinstall_cmds=''
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds='ldconfig -m $libdir'
-
-# The flag that specifies a runtime search path when linking.
-link_rpath_flag='-R$libdir'
-
-# How to strip a library file.
-striplib='strip -x'
-old_striplib=''
-
-# This is the shared library path variable.
-shlibpath_var=LD_LIBRARY_PATH
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the
-# the resulting binary.
-hardcode_shlibpath_var=no
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=no
-
# Execute the libtool backend.
. $srcdir/../ltmain.sh.in
exit 1