Initial revision

This commit is contained in:
Gordon Matzigkeit 1997-04-01 18:29:23 +00:00 committed by Gordon Matzigkeit
parent 9b2a4904e9
commit 87b8075bc9
14 changed files with 3761 additions and 0 deletions

46
Makefile.am Normal file
View File

@ -0,0 +1,46 @@
## Process Makefile.am with automake to create Makefile.in.
## Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
AUTOMAKE_OPTIONS = gnits
SUBDIRS = doc
EXTRA_DIST = libtool.m4 libtoolize.in ltconfig.in ltmain.sh.in
CLEANFILES = libtool libtoolize ltconfig ltmain.sh
# Files in the demo subdirectory that go in the distribution.
demo_distfiles = Makefile.in Makefile.am aclocal.m4 configure configure.in \
foo.c foo.h hello.c libinfo main.c
# These are required by libtoolize.
pkgdata_SCRIPTS = config.guess config.sub ltconfig
pkgdata_DATA = ltmain.sh
# This macro files should be visible to Automake's aclocal.
aclocaldir = @aclocaldir@
aclocal_DATA = libtool.m4
# The standalone libtool script, and the libtool distributor.
bin_SCRIPTS = libtool libtoolize
libtool: ltconfig
./ltconfig --srcdir=$(srcdir) $(pkgdatadir)/ltmain.sh
libtoolize: libtoolize.in
CONFIG_FILES=libtoolize CONFIG_HEADERS= $(top_builddir)/config.status
chmod +x libtoolize
ltconfig: ltconfig.in
CONFIG_FILES=ltconfig CONFIG_HEADERS= $(top_builddir)/config.status
chmod +x ltconfig
ltmain.sh: ltmain.sh.in
CONFIG_FILES=ltmain.sh CONFIG_HEADERS= $(top_builddir)/config.status
# Distribute the demo subdirectory.
dist-hook:
mkdir $(distdir)/demo
@for file in $(demo_distfiles); do \
d=$(srcdir)/demo; \
test -f $(distdir)/demo/$$file \
|| ln $$d/$$file $(distdir)/demo/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/demo/$$file; \
done

67
NEWS Normal file
View File

@ -0,0 +1,67 @@
New in 0.6a:
* Total rewrite of libtool, along with a new model for library building.
* Updated documentation for the new paradigm.
* Proper handling of broken system linkers, such as the ones on AIX
and HP-UX.
* configure mode is now a separate program, `ltconfig'
* Libtool only supports `compile', `link', and `install' modes, via
the `--mode' command line option.
* Automatic mode guessing, based on the command line.
New in 0.6: (never released)
* Optimization to cut `libtool archive' execution time by a factor of 5.
* New AM_REPLACE_FUNCS macro to generate LTLIBOBJS as well as LIBOBJS.
From Karl Berry.
* Renamed ABOUT-LIBS to ABOUT-LIBTOOL. From Karl Berry.
* Include the generated libtool script in the distribution.
* Quote metacharacters in arguments to `libtool compile'.
* Bug fixes.
* Removed `link' and `install-progs' modes because they cannot be
correctly implemented. See (libtool)Linking Against Pseudo-Libraries.
New in 0.5:
* Disabled install-progs until next version, when it will be correctly
implemented.
* Clearer library versioning documentation. See (libtool)Versioning.
* Renamed gm_PROG_LIBTOOL to AM_PROG_LIBTOOL
* Libtool now creates pseudo-objects named foo.lo and pseudo-archives named
libfoo.la instead of foo.o and libfoo.a. See the documentation.
* libtool compile doesn't interfere with user CFLAGS if they don't
conflict with the current objtype. From Karl Berry.
* Created new libinfo helper script.
* libversion.in files are obsolete -- libtool uses libinfo to read the
new LIBINFO files.
* Libtool is better at finding its config file and helper scripts.
* Support for *-*-gnu*
New in 0.4:
* Bug fixes and new regression tests
* On unsupported configurations, ``libtool configure'' demotes OBJTYPES to
`standard' instead of aborting
* Added new object type, `t', for tcov(1) support
* Support for *-*-aix3*, *-*-aix4*, *-*-hpux10*, *-*-osf3*, and *-*-solaris2*
New in 0.3:
* Bug fixes and new regression tests
* Added new uninstall-libs mode
* Added a host argument to configure mode
* Fixed debugging/hyper-optimizing flags conflict (from Karl Berry)
* Support for --no-whole-archive when needed by GNU ld (from Ulrich Drepper)
* Implementation of --enable-linktype, --enable-profile, --enable-shared,
--enable-static in gm_PROG_LIBTOOL macro
* New `libtoolize' program (modeled after GNU gettext's `gettextize') to help
conversion to libtool
* New ABOUT-LIBS document for inclusion with libtool-supported packages
New in 0.2:
* Support for *-*-linux
* Better checking for GNU ld
* Reimplemented the config file so that it corresponds more closely to the
variables listed in (libtool)Porting Libtool.
* Reimplemented the shared library version scheme. See (libtool)Versioning.
* Replaced `--config-file' and `--version-file' options with `--confdir'
* Added new install-libs and install-progs modes
New in 0.1:
* First release of libtool
* Support for: *-*-freebsd*, *-*-netbsd*, *-*-sunos4*, *-*-ultrix4*

20
README Normal file
View File

@ -0,0 +1,20 @@
This is GNU libtool, a generic library support script. Libtool hides
the complexity of generating special library types (such as shared
libraries) behind a consistent interface.
To use libtool, add the new generic library building commands to your
Makefile, Makefile.in, or Makefile.am. See the documentation for
details.
Libtool supports building static libraries on all platforms.
Shared library support has been implemented for these platforms:
NetBSD 1.x (*-*-netbsd*)
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.
If you have any suggestions or bug reports, or you wish to port libtool
to a new platform, please send electronic mail to Gord Matzigkeit
<gord@gnu.ai.mit.edu>.

11
THANKS Normal file
View File

@ -0,0 +1,11 @@
Libtool would not be what it is today without the invaluable help of
these people:
Joel Cannon <cannon@alpha.centenary.edu>
Karl Berry <kb@cs.umb.edu>
Mimi Burbank <mimi@scri.fsu.edu>
Oliver Guntermann <og@informatik.uni-hannover.de>
Thomas Esser <te@informatik.uni-hannover.de>
Tom Tromey <tromey@cygnus.com>
Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
Volker Kuhlmann <kuhlmav@elec.canterbury.ac.nz>

17
TODO Normal file
View File

@ -0,0 +1,17 @@
* Find link_static_flag for every C compiler, currently at least
native cc's for AIX, HP-UX, OSF/1.
* Configure test for a library-stripping program (strip -x on NetBSD)
* Implement fuller support for profiled libraries (libNAME_p), and
resolve naming difficulties for debuggable libraries (libNAME_g on
Linux at least), old system 5 shared libraries (libNAME_s), etc.
* We should use the C compiler rather than the linker to create shared
libraries, if at all possible. This just involves looking up the $wl
values for system compilers.
* What should be done about the difference between -fpic and -fPIC?
* GCC docs imply that all rs6000 code is PIC. If that is true, then
implement it.

9
configure.in Normal file
View File

@ -0,0 +1,9 @@
AC_INIT(ltmain.sh.in)
AM_INIT_AUTOMAKE(libtool, 0.6a)
pkgdatadir='${datadir}/libtool'
AC_SUBST(pkgdatadir)
aclocaldir='${datadir}/aclocal'
AC_SUBST(aclocaldir)
AC_OUTPUT([Makefile doc/Makefile])

20
demo/Makefile.am Normal file
View File

@ -0,0 +1,20 @@
# A brief demonstration of using Automake with Libtool.
AUTOMAKE_OPTIONS = foreign
EXTRA_DIST = libinfo
# Build a libtool library, libhell.la for installation in libdir.
lib_PROGRAMS = libhell.la
libhell_la_SOURCES = hello.c foo.c
libhell_la_LDFLAGS = -version-file $(srcdir)/libinfo -rpath $(libdir)
include_HEADERS = foo.h
# Build hell from main.c and libhell.la
bin_PROGRAMS = hell
hell_SOURCES = main.c
hell_LDADD = libhell.la
# Regenerate the acinclude.m4 from the parent, if it doesn't exist.
$(top_srcdir)/acinclude.m4:
ln -s $(top_srcdir)/../libtool.m4 $(top_srcdir)/acinclude.m4

29
demo/foo.c Normal file
View File

@ -0,0 +1,29 @@
/* foo.c -- trivial test function for libfoo
Copyright (C) 1996 Free Software Foundation, Inc.
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
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with 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"
static char *package = PACKAGE;
static char *version = VERSION;
int
foo ()
{
return FOO_RET;
}

1356
doc/libtool.texi Normal file

File diff suppressed because it is too large Load Diff

171
libtoolize.in Normal file
View File

@ -0,0 +1,171 @@
#! /bin/sh
# libtoolize - Prepare a package to use libtool.
# @configure_input@
# Copyright (C) 1996 Free Software Foundation, Inc.
# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# The name of this program.
progname=`echo "$0" | sed 's%^.*/%%'`
# Constants.
PROGRAM=libtoolize
PACKAGE=@PACKAGE@
VERSION=@VERSION@
# Directory names.
prefix=@prefix@
datadir=@datadir@
pkgdatadir=@pkgdatadir@
aclocaldir=@aclocaldir@
libtool_m4="$aclocaldir/libtool.m4"
help="Try \`$progname --help' for more information."
rm="rm -f"
ln_s="ln -s"
cp="cp -f"
# Global variables.
automake=
copy=
force=
status=0
for arg
do
case "$arg" in
--help)
cat <<EOF
Usage: $progname [OPTION]...
Prepare a package to use libtool.
--automake work silently, and assume that Automake is in use
-c, --copy copy files rather than symlinking them
-f, --force replace existing files
--help display this message and exit
--version print version information and exit
You must \`cd' to the top directory of your package before you run
\`$progname'.
EOF
exit 0
;;
--version)
echo "$PROGRAM - GNU $PACKAGE $VERSION"
exit 0
;;
--automake)
automake=yes
;;
-c | --copy)
ln_s=
;;
-f | --force)
force=yes
;;
-*)
echo "$progname: unrecognized option \`$arg'" 1>&2
echo "$help" 1>&2
exit 1
;;
*)
echo "$progname: too many arguments" 1>&2
echo "$help" 1>&2
exit 1
;;
esac
done
if test -f configure.in; then :
else
echo "$progname: \`configure.in' does not exist" 1>&2
echo "$help" 1>&2
exit 1
fi
files=`cd $pkgdatadir && ls`
if test -z "$files"; then
echo "$progname: cannot \`cd' to \`$pkgdatadir'" 1>&2
exit 1
fi
if test -z "$automake"; 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
echo "Using \`AC_PROG_RANLIB' is rendered obsolete by \`AM_PROG_LIBTOOL'"
fi
if egrep '^AC_DEFUN\(AM_PROG_LIBTOOL' aclocal.m4 >/dev/null 2>&1; then
# Check the version number on libtool.m4 and the one used in aclocal.m4.
instserial=`grep '^# serial ' $libtool_m4 | grep 'AM_PROG_LIBTOOL' | sed -e 's/^# serial \([0-9][0-9]*\).*$/\1/; q'`
if test -z "$instserial"; then
echo "$progname: warning: no serial number on \`$libtool_m4'" 1>&2
else
# If the local macro has no serial number, we assume it's ancient.
localserial=`grep '^# serial ' aclocal.m4 | grep 'AM_PROG_LIBTOOL' | sed -e 's/^# serial \([0-9][0-9]*\).*$/\1/; q'`
test -z "$localserial" && localserial=0
if test "$localserial" -lt "$instserial"; then
echo "You should update \`aclocal.m4' with the contents of \`$libtool_m4'"
elif test "$localserial" -gt "$instserial"; then
echo "$progname: \`$libtool_m4' has serial number $instserial, less than $localserial found in \`aclocal.m4'" 1>&2
fi
fi
else
echo "Add the contents of \`$libtool_m4' to \`aclocal.m4'."
fi
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
continue
fi
$rm $file
if test -n "$ln_s" && $ln_s $pkgdatadir/$file $file; then :
elif $cp $pkgdatadir/$file $file; then :
else
echo "$progname: cannot copy \`$pkgdatadir/$file' to \`$file'" 1>&2
status=1
fi
done
exit $status
# Local Variables:
# mode:shell-script
# sh-indentation:2
# End:

738
ltconfig.in Executable file
View File

@ -0,0 +1,738 @@
#! /bin/sh
# ltconfig - Create a system-specific libtool.
# @configure_input@
# Copyright (C) 1996, Free Software Foundation, Inc.
# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# A lot of this script is taken from autoconf-2.10.
# The name of this program.
progname=`echo "$0" | sed 's%^.*/%%'`
# Constants:
PROGRAM=ltconfig
PACKAGE=@PACKAGE@
VERSION=@VERSION@
rm="rm -f"
help="Try \`$progname --help' for more information."
# Global variables:
enable_shared=yes
enable_static=yes
ltmain=NONE
silent=
srcdir=
ac_config_guess=
ac_config_sub=
host=NONE
nonopt=NONE
verify_host=yes
with_gcc=no
old_CC="$CC"
old_CFLAGS="$CFLAGS"
old_LD="$LD"
old_RANLIB="$RANLIB"
# Parse the command line options.
args=
prev=
for option
do
case "$option" in
-*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
*) optarg= ;;
esac
# If the previous option needs an argument, assign it.
if test -n "$prev"; then
eval "$prev=\$option"
prev=
continue
fi
case "$option" in
--help) cat <<EOM
Usage: $progname [OPTION]... LTMAIN [HOST]
Generate a system-specific libtool script.
--disable-shared do not build shared libraries
--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
--srcdir=DIR find \`config.guess' in DIR
--version output version information and exit
--with-gcc assume that the GNU C compiler will be used
LTMAIN is the \`ltmain.sh' shell script fragment that provides basic libtool
functionality.
HOST is the canonical host system name [default=guessed].
EOM
exit 0
;;
--disable-shared) enable_shared=no ;;
--quiet | --silent) silent=yes ;;
--srcdir) prev=srcdir ;;
--srcdir=*) srcdir="$optarg" ;;
--no-verify) verify_host=no ;;
--version) echo "$PROGRAM - GNU $PACKAGE $VERSION"; exit 0 ;;
--with-gcc) with_gcc=yes ;;
-*)
echo "$progname: unrecognized option \`$option'" 1>&2
echo "$help" 1>&2
exit 1
;;
*)
if test "$ltmain" = NONE; then
ltmain="$option"
elif test "$host" = NONE; then
if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then
echo "$progname: warning \`$option' is not a valid host type" 1>&2
fi
host="$option"
else
echo "$progname: too many arguments" 1>&2
echo "$help" 1>&2
exit 1
fi ;;
esac
done
if test "$ltmain" = NONE; then
echo "$progname: you must specify a LTMAIN file" 1>&2
echo "$help" 1>&2
exit 1
fi
if test -e "$ltmain"; then :
else
echo "$progname: warning: \`$ltmain' does not exist" 1>&2
fi
# Quote any args containing shell metacharacters.
ltconfig_args=
for arg
do
case "$arg" in
*" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
ltconfig_args="$ltconfig_args '$arg'" ;;
*) ltconfig_args="$ltconfig_args $arg" ;;
esac
done
# A relevant subset of AC_INIT.
# File descriptor usage:
# 0 standard input
# 1 file creation
# 2 errors and warnings
# 3 some systems may open it to /dev/tty
# 4 used on the Kubota Titan
# 5 compiler messages saved in config.log
# 6 checking for... messages and results
if test "$silent" = yes; then
exec 6>/dev/null
else
exec 6>&1
fi
exec 5>>./config.log
# NLS nuisances.
# Only set LANG and LC_ALL to C if already set.
# These must not be set unconditionally because not all systems understand
# e.g. LANG=C (notably SCO).
if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
if test "${LANG+set}" = set; then LANG=C; export LANG; fi
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
# Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
ac_n= ac_c='
' ac_t=' '
else
ac_n=-n ac_c= ac_t=
fi
else
ac_n= ac_c='\c' ac_t=
fi
if test -z "$srcdir"; then
# Assume the source directory is the same one as the path to ltmain.sh.
srcdir=`echo "$ltmain" | sed 's%/[^/]*$%%'`
test "$srcdir" = "$ltmain" && srcdir=.
fi
if test "$verify_host" = yes; then
# Check for config.guess and config.sub.
ac_aux_dir=
for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
if test -f $ac_dir/config.guess; then
ac_aux_dir=$ac_dir
break
fi
done
if test -z "$ac_aux_dir"; then
echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2
echo "$help" 1>&2
exit 1
fi
ac_config_guess=$ac_aux_dir/config.guess
ac_config_sub=$ac_aux_dir/config.sub
# Make sure we can run config.sub.
if $ac_config_sub sun4 >/dev/null 2>&1; then :
else
echo "$progname: cannot run $ac_config_sub" 1>&2
echo "$help" 1>&2
exit 1
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
host_alias=$host
case "$host_alias" in
NONE)
if host_alias=`$ac_config_guess`; then :
else
echo "$progname: cannot guess host type; you must specify one" 1>&2
echo "$help" 1>&2
exit 1
fi ;;
esac
host=`$ac_config_sub $host_alias`
echo "$ac_t""$host" 1>&6
elif test "$host" = NONE; then
echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2
echo "$help" 1>&2
exit 1
else
host_alias=$host
fi
host_cpu=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
host_vendor=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
host_os=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
# Check to see if we are using GCC.
if test "$with_gcc" = no; then
# If CC is not set, then try to find GCC or a usable CC.
if test -z "$CC"; then
echo $ac_n "checking for gcc... $ac_c" 1>&6
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
for dir in $PATH; do
IFS="$save_ifs"
test -z "$dir" && dir=.
if test -f $dir/gcc; then
CC="gcc"
break
fi
done
IFS="$save_ifs"
if test -n "$CC"; then
echo "$ac_t""$CC" 1>&6
else
echo "$ac_t""no" 1>&6
fi
fi
# Not "gcc", so try "cc", rejecting "/usr/ucb/cc".
if test -z "$CC"; then
echo $ac_n "checking for cc... $ac_c" 1>&6
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
cc_rejected=no
for dir in $PATH; do
test -z "$dir" && dir=.
if test -f $dir/cc; then
if test "$dir/cc" = "/usr/ucb/cc"; then
cc_rejected=yes
continue
fi
CC="cc"
break
fi
done
IFS="$save_ifs"
if test $cc_rejected = yes; then
# We found a bogon in the path, so make sure we never use it.
set dummy $CC
shift
if test $# -gt 0; then
# We chose a different compiler from the bogus one.
# However, it has the same name, so the bogon will be chosen
# first if we set CC to just the name; use the full file name.
shift
set dummy "$dir/cc" "$@"
shift
CC="$@"
fi
fi
if test -n "$CC"; then
echo "$ac_t""$CC" 1>&6
else
echo "$ac_t""no" 1>&6
fi
if test -z "$CC"; then
echo "$progname: error: no acceptable cc found in \$PATH" 1>&2
exit 1
fi
fi
# Now see if the compiler is really GCC.
with_gcc=no
echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
trap "$rm conftest.c; exit 1" 1 2 15
$rm conftest.c
cat > conftest.c <<EOF
#ifdef __GNUC__
yes;
#endif
EOF
if eval "$CC -E conftest.c" | egrep yes >/dev/null 2>&1; then :
with_gcc=yes
fi
$rm conftest.c
echo $ac_t "$with_gcc" 1>&6
fi
echo $ac_n "checking PIC compiler flags... $ac_c" 1>&6
compile_flags=
profile_flag_pattern=
wl=
link_static_flag=
if test "$with_gcc" = yes; then
compile_flags='-fPIC -DPIC'
profile_flag_pattern='-pg?'
wl='-Wl,'
link_static_flag='-static'
case "$host" in
*-*-aix3* | *-*-aix4*)
# Yippee! All AIX code is position-independent.
compile_flags='-DPIC'
;;
esac
else
# PORTME Check for PIC flags for the system compiler.
case "$host" in
*-*-aix3* | *-*-aix4*)
compile_flags='-DPIC'
;;
*-*-hpux10*)
compile_flags='+Z -DPIC'
;;
*-*-osf3*)
# Yippee! Another system with position-independant code by default.
compile_flags='-DPIC'
;;
*-*-solaris2*)
compile_flags='-KPIC -DPIC'
link_static_flag='-Bstatic'
;;
*-*-sunos4*)
compile_flags='-PIC -DPIC'
link_static_flag='-Bstatic'
;;
*)
can_build_shared=no
;;
esac
fi
if test -n "$compile_flags"; then
echo $ac_t "$compile_flags" 1>&6
compile_flags=" $compile_flags"
else
echo $ac_t none 1>&6
fi
echo $ac_n "checking static linking compiler flag... $ac_c" 1>&6
if test -n "$link_static_flag"; then
echo $ac_t "$link_static_flag" 1>&6
else
echo $ac_t none 1>&6
fi
# See if we're really using GNU ld.
test -z "$LD" && LD="ld"
with_gnu_ld=no
linker="$LD"
echo $ac_n "checking if $LD is GNU ld... $ac_c" 1>&6
if $LD --version 2>&1 | egrep 'with BFD' > /dev/null; then
with_gnu_ld=yes
linker="GNU ld"
fi
echo $ac_t "$with_gnu_ld" 1>&6
# See if the linker supports building shared libraries.
echo $ac_n "checking if $linker supports shared libraries... $ac_c" 1>&6
archive_cmds=
link_rpath_flag=
hardcode_minus_L=no
hardcode_shlibpath_var=no
ld_shlibs=yes
if test "$with_gnu_ld" = yes; then
# See if GNU ld supports shared libraries.
case "$host" in
*-*-sunos4*)
ld_shlibs=yes
;;
*)
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
ld_shlibs=yes
else
ld_shlibs=no
fi
;;
esac
if test "$ld_shlibs" = yes; then
archive_cmds='$cc -shared ${wl}-soname $wl$soname -o $lib$libobjs$deplibs'
link_rpath_flag='${wl}-rpath $wl$libdir'
fi
else
# PORTME fill in a description of your system's linker (not GNU ld)
case "$host" in
*-*-aix3*)
archive_cmds='$rm $lib.exp;/ucb/nm$libobjs | egrep " D " | sed "s/^.* //" > $lib.exp;$LD -o $lib.o$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE -lc$deplibs;ar cru $lib $lib.o'
hardcode_shlibpath_var=yes
hardcode_minus_L=yes
;;
*-*-aix4*)
archive_cmds='$rm $lib.exp;/bin/nm -B$libobjs | egrep " D " | sed "s/^.* //" > $lib.exp;$cc -o $lib.o$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry$deplibs;ar cru $lib $lib.o'
hardcode_shlibpath_var=yes
hardcode_minus_L=yes
;;
*-*-freebsd*)
archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs'
hardcode_minus_L=yes
link_rpath_flag='-L$libdir'
;;
*-*-hpux10*)
archive_cmds='$LD -b +h $soname +s +b $libdir -o $lib$libobjs$deplibs'
link_rpath_flag='${wl}+b ${wl}$libdir'
hardcode_minus_L=yes
hardcode_shlibpath_var=yes
;;
*-*-netbsd*)
# Tested with NetBSD 1.2 ld
archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs'
link_rpath_flag='-R$libdir'
;;
*-*-osf3*)
archive_cmds='$LD -shared -o $lib -rpath $libdir -soname $soname -set_version $verstring$libobjs -lc$deplibs'
link_rpath_flag='${wl}-rpath ${wl}$libdir'
;;
*-*-solaris2*)
archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs$deplibs'
link_rpath_flag='-R$libdir'
;;
*-*-sunos4*)
objs2shlib='$LD -assert pure-text -Bstatic -o $lib$libobjs$deplibs'
link_rpath_flag='-L$libdir'
hardcode_minus_L=yes
;;
*)
ld_shlibs=no
can_build_shared=no
;;
esac
fi
echo $ac_t "$ld_shlibs" 1>&6
if test "$hardcode_shlibpath_var" = yes && test "$hardcode_minus_L" = yes; then
echo "$progname: warning: $LD needlessly hardcodes library paths into binaries" 1>&2
echo "$PACKAGE will compensate by relinking binaries at install time." 1>&2
fi
# PORTME Fill in your ld.so characteristics
can_build_shared=yes
lib_names=
soname_spec=
postinstall_cmds=
finish_cmds=
shlibpath_var=LD_LIBRARY_PATH
version_type=none
dynamic_linker="$host_os ld.so"
echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6
case "$host" in
*-*-aix3* | *-*-aix4*)
# Shared libraries and static libraries currently use the same namespace.
test "$enable_shared" = no || enable_static=no
version_type=solaris # But only for show... AIX has no versioning.
lib_names='$libname.so.$versuffix $libname.a'
shlibpath_var=LIBPATH
;;
*-*-freebsd*)
version_type=sunos
lib_names='$libname.so.$versuffix $libname.so'
finish_cmds='ldconfig -m $libdir'
;;
*-*-gnu*)
version_type=sunos
lib_names='$libname.so.$versuffix'
;;
*-*-hpux10*)
# Give a soname corresponding to the major version so that dld.sl refuses to
# link against other versions.
dynamic_linker="$host_os dld.sl"
version_type=hpux
shlibpath_var=SHLIB_PATH
lib_names='$libname.sl.$versuffix $libname.sl.$major $libname.sl'
soname_spec='$libname.sl.$major'
postinstall='chmod 555 $lib'
;;
# No shared lib support for linuxoldld or linuxaout.
*-*-linuxoldld* | *-*-linuxaout*)
dynamic_linker=no
can_build_shared=no
;;
*-*-linux*)
version_type=solaris
lib_names='$libname.so.$versuffix $libname.so.$major $libname.so'
finish_cmds='ldconfig $libdir'
;;
*-*-netbsd*)
version_type=sunos
lib_names='$libname.so.$versuffix'
finish_cmds='ldconfig -m $libdir'
;;
*-*-osf3*)
version_type=osf
soname_spec='$libname.so'
lib_names='$libname.so.$versuffix $libname.so'
;;
*-*-solaris2*)
version_type=solaris
lib_names='$libname.so.$versuffix'
;;
*-*-sunos4*)
version_type=sunos
lib_names='$libname.so.$versuffix'
finish_cmds='ldconfig $libdir'
;;
*)
dynamic_linker=no
can_build_shared=no
;;
esac
echo "$ac_t""$dynamic_linker"
# Report the consequences.
echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6
echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6
test "$can_build_shared" = "no" && enable_shared=no
echo "$ac_t""$enable_shared" 1>&6
# All known linkers require a `.a' archive for static linking.
enable_static=yes
# Determine commands to create old-style static archives.
old_archive_cmds='ar cru $oldlib$oldobjs'
old_postinstall_cmds=''
# If RANLIB is not set, then run the test.
if test -z "$RANLIB"; then
result=no
echo $ac_n "checking for ranlib... $ac_c" 1>&6
if test "$result" = no; then
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
for dir in $PATH; do
test -z "$dir" && dir=.
if test -f $dir/ranlib; then
RANLIB="ranlib"
result="ranlib"
break
fi
done
IFS="$save_ifs"
fi
echo $ac_t "$result" 1>&6
fi
if test -n "$RANLIB"; then
old_archive_cmds="$old_archive_cmds;\$RANLIB \$oldlib"
old_postinstall_cmds='$RANLIB $oldlib'
fi
ofile=libtool
trap "rm -fr $ofile; exit 1" 1 2 15
echo creating $ofile
rm -fr $ofile
cat <<EOF > $ofile
#! /bin/sh
# libtool - Provide generalized library-building support services.
# See ABOUT-LIBS for more information.
#
# Generated automatically by $PROGRAM - GNU $PACKAGE $VERSION
# This program was configured as follows,
# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
#
# CC="$old_CC" CFLAGS="$old_CFLAGS" LD="$old_LD" RANLIB="$old_RANLIB" \\
# $0$ltconfig_args
#
# Compiler and other test output produced by $progname, useful for
# debugging $progname, is in ./config.log if it exists.
# The version of $progname that generated this script.
LTCONFIG_VERSION="$VERSION"
# The host system.
host_alias="$host_alias"
host="$host"
# The linker used to build libraries.
LD='$LD'
# How to pass a linker flag through the compiler.
wl='$wl'
# Whether or not to build libtool libraries.
build_libtool_libs=$enable_shared
# Whether or not to build old-style libraries.
build_old_libs=$enable_static
# Additional compiler flags for building library objects.
compile_flags='$compile_flags'
# Compiler flag to prevent dynamic linking.
link_static_flag='$link_static_flag'
# Pattern to match compiler flags for creating libNAME_p libraries:
profile_flag_pattern='$profile_flag_pattern'
# Library versioning type.
version_type=$version_type
# List of archive names. First name is the real one, the rest are links.
lib_names='$lib_names'
# The coded name of the library, if different from the real name.
soname_spec='$soname_spec'
# Commands used to build and install an old-style archive.
RANLIB='$RANLIB'
old_archive_cmds='$old_archive_cmds'
old_postinstall_cmds='$old_postinstall_cmds'
# Commands used to build and install a shared archive.
archive_cmds='$archive_cmds'
postinstall_cmds='$postinstall_cmds'
# Commands used to finish a libtool library installation in a directory.
finish_cmds='$finish_cmds'
# The flag that specifies a runtime search path when linking.
link_rpath_flag='$link_rpath_flag'
# This is the shared library path variable.
shlibpath_var=$shlibpath_var
# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the
# the resulting binary.
hardcode_shlibpath_var=$hardcode_shlibpath_var
# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
# resulting binary.
hardcode_minus_L=$hardcode_minus_L
EOF
# Detect if we are using a relative or absolute path to ltmain.sh.
case "$ltmain" in
/*) cat <<EOF2 >> $ofile
# Execute the libtool backend.
. $ltmain
EOF2
;;
*) cat <<EOF3 >> $ofile
# Find the path to this script.
thisdir=\`echo "\$0" | sed -e 's%/[^/]*%%'\`
test "X\$0" = "X\$thisdir" && thisdir=.
# Execute the libtool backend.
. \$thisdir/$ltmain
EOF3
;;
esac
echo 'exit 1' >> $ofile
chmod +x $ofile
exit 0
# Local Variables:
# mode:shell-script
# sh-indentation:2
# End:

1262
ltmain.sh.in Normal file

File diff suppressed because it is too large Load Diff

8
tests/ChangeLog Normal file
View File

@ -0,0 +1,8 @@
Mon Dec 2 16:31:10 1996 Gordon Matzigkeit <gord@gnu.ai.mit.edu>
* demo.test: Try compiling the ../demo subdirectory, with no
special options.
* test-e.test: Check that we haven't used `test -e' anywhere in
our portable shell scripts.

7
tests/Makefile.am Normal file
View File

@ -0,0 +1,7 @@
## Process this file with automake to create Makefile.in
AUTOMAKE_OPTIONS = gnits
TESTS = demo.test test-e.test
EXTRA_DIST = defs $(TESTS)