Initial revision

This commit is contained in:
Gordon Matzigkeit 1997-04-01 19:18:28 +00:00 committed by Gordon Matzigkeit
parent a06ca31c0d
commit 4f7fb238bd
29 changed files with 846 additions and 0 deletions

3
AUTHORS Normal file
View File

@ -0,0 +1,3 @@
Authors of GNU Libtool.
Gordon Matzigkeit. Designed and implemented libtool.

5
PACKAGES Normal file
View File

@ -0,0 +1,5 @@
Packages using libtool:
http://www.ens.fr/~laburthe/claire.html
ftp://ftp.x.org/contrib/widgets/motif/spinbox/
The GNU Guile project.

24
PLATFORMS Normal file
View File

@ -0,0 +1,24 @@
----------------------------------------------------------------------
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
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.7a gcc bug, fail demo-unst
rs6000-ibm-aix3.2.5 xlc 0.7a fail demo-unst
rs6000-ibm-aix4.1.4.0 gcc 0.7a fail demo-inst
rs6000-ibm-aix4.1.4.0 xlc 0.7a fail demo-inst
sparc-sun-sunos4.1.3_U1 gcc 0.7a ok
sparc-sun-sunos4.1.3_U1 cc 0.7a ok
sparc-sun-solaris2.4 gcc 0.7a ok
sparc-sun-solaris2.4 cc 0.7a ok
----------------------------------------------------------------------
* GCC version 2.6.1.

14
README-alpha Normal file
View File

@ -0,0 +1,14 @@
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 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 ask Gord for his
modified version of automake-1.1g that supports all the features
described in the libtool manual.

27
README-automake Normal file
View File

@ -0,0 +1,27 @@
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.
You can find the latest Automake prerelease (warning: it may have
bugs) at:
<URL:ftp://ftp.cygnus.com/pub/tromey/>
Once Automake 1.2 is released, you should get it from your closest GNU
mirror.
** If you get 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
{

9
demo/README Normal file
View File

@ -0,0 +1,9 @@
This is GNU hell, an example package that uses GNU libtool with an
Automake-generated environment to build a simple library and program.
Admittedly, it would be better if this was a more realistic example,
say, a program that actually did something useful, but we can't have
everything.
Send bug reports and comments about GNU hell to Gord Matzigkeit
<gord@gnu.ai.mit.edu>.

9
demo/configure.in Normal file
View File

@ -0,0 +1,9 @@
dnl Initialize the hell package.
AC_INIT(hello.c)
AM_INIT_AUTOMAKE(hell,0.0)
AC_PROG_CC
AM_PROG_LIBTOOL
dnl Output the makefile
AC_OUTPUT(Makefile)

27
demo/foo.h Normal file
View File

@ -0,0 +1,27 @@
/* foo.h -- interface to the libfoo library
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> */
/* Silly constants that the functions return. */
#define HELLO_RET 0xe110
#define FOO_RET 0xf00
/* Function declarations. */
int foo ();
int hello ();

28
demo/hello.c Normal file
View File

@ -0,0 +1,28 @@
/* hello.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"
#include <stdio.h>
int
hello ()
{
printf ("** This is not GNU Hello. There is no built-in mail reader. **\n");
return HELLO_RET;
}

7
demo/libinfo Normal file
View File

@ -0,0 +1,7 @@
# libinfo - used by libtool for library version information
#
# Comments begin with a hash sign.
#
# Each non-comment line has the following format:
# libNAME CURRENT AGE REVISION
libhell 3 1 12

36
demo/main.c Normal file
View File

@ -0,0 +1,36 @@
/* main.c -- trivial hello test program
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"
#include <stdio.h>
int
main ()
{
printf ("Welcome to GNU Hell!\n");
/* Just call the functions and check return values. */
if (foo () != FOO_RET)
return 1;
if (hello () != HELLO_RET)
return 2;
return 0;
}

21
demo/run.test Normal file
View File

@ -0,0 +1,21 @@
#! /bin/sh
# run.test - Check that hell is viable.
if test -z "$srcdir"; then
srcdir=.
test "${VERBOSE+set}" != "set" && VERBOSE=yes
fi
# See how redirections should work.
if test -z "$VERBOSE"; then
exec > /dev/null 2>&1
fi
echo "=== Running test $0"
# Attempt to execute the program we built.
if ./hell | grep 'GNU Hell' > /dev/null; then
exit 0
else
exit 1
fi

21
doc/Makefile.am Normal file
View File

@ -0,0 +1,21 @@
## Process Makefile.am with automake to create Makefile.in.
##
## Copyright (C) 1996 Free Software Foundation, Inc.
## This Makefile.am is free software; the Free Software Foundation
## gives unlimited permission to copy, distribute and modify it.
##
## Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>
AUTOMAKE_OPTIONS = gnits
CLEANFILES = aclibtool.T
MAINTAINERCLEANFILES = aclibtool.texi
info_TEXINFOS = libtool.texi
libtool_TEXINFOS = aclibtool.texi
## Quoted version of $(top_srcdir)/libtool.m4.
$(srcdir)/aclibtool.texi: $(top_srcdir)/libtool.m4
rm -f aclibtool.T
sed -e 's/{/@{/g' -e 's/}/@}/g' $(top_srcdir)/libtool.m4 \
> aclibtool.T
mv aclibtool.T $(srcdir)/aclibtool.texi

31
doc/platforms.texi Normal file
View File

@ -0,0 +1,31 @@
--------------------------------------------------------
canonical host name compiler libtool results
release
--------------------------------------------------------
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.9 ok
i386-unknown-netbsd1.2 gcc 0.9 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.8 ok
rs6000-ibm-aix3.2.5 gcc 0.8 ok
rs6000-ibm-aix4.1.4.0 xlc 0.9 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-sunos4.1.3_U1 gcc 0.7a ok
sparc-sun-solaris2.4 cc 0.7a ok
sparc-sun-solaris2.4 gcc 0.7a ok
sparc-sun-solaris2.5.1 gcc 0.9 ok
--------------------------------------------------------
* `sh internal 2K buffer overflow', under investigation. In the
meantime, set the CONFIG_SHELL environment variable to /usr/bin/ksh.

28
libtool.m4 vendored Normal file
View File

@ -0,0 +1,28 @@
##
## Configure libtool for the target system.
##
# serial 1 AM_PROG_LIBTOOL
AC_DEFUN(AM_PROG_LIBTOOL,
[AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_PROG_RANLIB])
# Always use our own libtool.
LIBTOOL='$(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]],
test "$enableval" = no && libtool_shared=" --disable-shared",
libtool_shared=)
libtool_flags="$libtool_shared"
test "$silent" = yes && libtool_flags="$libtool_flags --silent"
test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
# Actually configure libtool. ac_aux_dir is where install-sh is found.
CC="$CC" CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" LD="$LD" RANLIB="$RANLIB" \
$ac_aux_dir/ltconfig $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
|| AC_MSG_ERROR([libtool configure failed])
])

55
replfunc.m4 Normal file
View File

@ -0,0 +1,55 @@
## replfunc.m4 - libtool-aware AM_REPLACE_FUNC macro and friends.
## Copyright (C) 1997 Free Software Foundation, Inc.
## Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1997
##
## 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.
# serial 1 AM_REPLACE_FUNCS
dnl AM_REPLACE_FUNCS(FUNCTION...)
AC_DEFUN(AM_REPLACE_FUNCS,
[AC_CHECK_FUNCS([$1], , [LIBOBJS="$LIBOBJS ${ac_func}.o"
LTLIBOBJS="$LTLIBOBJS ${ac_func}.lo"])
AC_SUBST(LIBOBJS)dnl
AC_SUBST(LTLIBOBJS)dnl
])
dnl AM_FUNC_ALLOCA
AC_DEFUN(AM_FUNC_ALLOCA,
[AC_REQUIRE([AC_FUNC_ALLOCA])dnl
test $ac_cv_func_alloca_works = no && LTALLOCA=alloca.lo
AC_SUBST(LTALLOCA)dnl
])
dnl AM_FUNC_MEMCMP
AC_DEFUN(AM_FUNC_MEMCMP,
[AC_REQUIRE([AC_FUNC_MEMCMP])dnl
test $ac_cv_func_memcmp_clean = no && LTLIBOBJS="$LTLIBOBJS memcmp.lo"
AC_SUBST(LTLIBOBJS)dnl
])
dnl AM_STRUCT_ST_BLOCKS
AC_DEFUN(AM_STRUCT_ST_BLOCKS,
[AC_REQUIRE([AC_STRUCT_ST_BLOCKS])dnl
test $ac_cv_struct_st_blocks = no && LTLIBOBJS="$LTLIBOBJS fileblocks.lo"
AC_SUBST(LTLIBOBJS)dnl
])

28
tests/defs Normal file
View File

@ -0,0 +1,28 @@
# -*- sh -*-
# Defines for Libtool testing environment.
# Gord Matzigkeit <gord@gnu.ai.mit.edu>, 1996
# Check that srcdir is set to an absolute path.
case "$srcdir" in
/*) ;;
*) srcdir=`cd $srcdir && pwd` ;;
esac
prefix="./=inst"
if test -d $prefix; then
rm -rf $prefix
fi
if test "$need_prefix" = yes; then
# An absolute path to a test installation directory.
mkdir $prefix
prefix=`cd $prefix && pwd`
else
prefix=NONE
fi
# See how redirections should work.
if test -z "$VERBOSE"; then
exec > /dev/null 2>&1
fi
echo "=== Running test $0"

28
tests/demo-conf.test Executable file
View File

@ -0,0 +1,28 @@
#! /bin/sh
# demo-conf.test - try configuring the ../demo subdirectory
# Test script header.
need_prefix=yes
if test -z "$srcdir"; then
srcdir=.
test "${VERBOSE+set}" != "set" && VERBOSE=yes
fi
. $srcdir/defs || exit 1
# Maybe we have a VPATH build, in which case, create a new subdir.
test -d ../demo || mkdir ../demo
# Change to our build directory.
cd ../demo || exit 1
# Possibly clean up the distribution.
if test -f config.cache; then
echo "= Running make distclean in ../demo"
make distclean || rm -f config.cache
fi
# Configure the demonstration.
echo "= Configuring in ../demo (prefix=$prefix)"
$srcdir/../demo/configure --srcdir=$srcdir/../demo --prefix=$prefix || exit 1
exit 0

33
tests/demo-exec.test Executable file
View File

@ -0,0 +1,33 @@
#! /bin/sh
# demo-exec.test - check that programs in the ../demo subdirectory are viable
# Test script header.
need_prefix=no
if test -z "$srcdir"; then
srcdir=.
test "${VERBOSE+set}" != "set" && VERBOSE=yes
fi
. $srcdir/defs || exit 1
if test -f ../demo/hell; then :
else
echo "You must run demo-make.test before running $0" 1>&2
exit 1
fi
# Check to see if the programs really run.
echo "Executing uninstalled programs in ../demo"
if ../demo/hell.static | grep 'GNU Hell'; then :
else
echo "$0: cannot execute ./hell.static" 1>&2
exit 1
fi
if ../demo/hell | grep 'GNU Hell'; then :
else
echo "$0: cannot execute ./hell" 1>&2
exit 1
fi
exit 0

43
tests/demo-inst.test Executable file
View File

@ -0,0 +1,43 @@
#! /bin/sh
# demo-inst.test - try installing from the ../demo subdirectory
# Test script header.
need_prefix=yes
if test -z "$srcdir"; then
srcdir=.
test "${VERBOSE+set}" != "set" && VERBOSE=yes
fi
. $srcdir/defs || exit 1
# Check that things are built.
if test -f ../demo/hell; then :
else
echo "You must run demo-make.test before $0" 1>&2
exit 1
fi
# Change to our build directory.
cd ../demo || exit 1
echo "= Running make install in ../demo"
make install || exit 1
echo "= Executing installed programs"
if $prefix/bin/hell.static | grep '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 :
else
echo "$0: cannot execute $prefix/bin/hell" 1>&2
# Simple check to see if they are superuser.
if test -w /; then :
else
echo "You may need to run $0 as the superuser."
fi
exit 1
fi
exit 0

24
tests/demo-make.test Executable file
View File

@ -0,0 +1,24 @@
#! /bin/sh
# demo-make.test - try building in the ../demo subdirectory
# Test script header.
need_prefix=no
if test -z "$srcdir"; then
srcdir=.
test "${VERBOSE+set}" != "set" && VERBOSE=yes
fi
. $srcdir/defs || exit 1
if test -f ../demo/Makefile; then :
else
echo "You must run demo-conf.test before running $0" 1>&2
exit 1
fi
# Change to our build directory.
cd ../demo || exit 1
# Do the actual build.
echo "Making in ../demo"
make || exit 1
exit 0

33
tests/demo-unst.test Executable file
View File

@ -0,0 +1,33 @@
#! /bin/sh
# demo.test - try uninstalling in the ../demo subdirectory
# Test script header.
need_prefix=yes
if test -z "$srcdir"; then
srcdir=.
test "${VERBOSE+set}" != "set" && VERBOSE=yes
fi
. $srcdir/defs || exit 1
# Maybe we have a VPATH build, in which case, create a new subdir.
if test "$prefix/bin/hell"; then :
else
echo "You must run demo-inst.test before $0." 1>&2
exit 1
fi
# Change to our build directory.
cd ../demo || exit 1
echo "= Running make uninstall in ../demo"
make uninstall || exit 1
# See that there were no files leftover in $prefix.
leftovers=`find $prefix ! -type d -print`
if test -n "$leftovers"; then
echo "= Leftover after make uninstall:"
ls -l $leftovers
exit 1
fi
exit 0

51
tests/demo.test Normal file
View File

@ -0,0 +1,51 @@
#! /bin/sh
# demo.test - try building in the ../demo subdirectory
# Test script header.
need_prefix=yes
if test -z "$srcdir"; then
srcdir=.
test "${VERBOSE+set}" != "set" && VERBOSE=yes
fi
. $srcdir/defs || exit 1
# Maybe we have a VPATH build, in which case, create a new subdir.
test -d ../demo || mkdir ../demo
# Change to our build directory.
cd ../demo || exit 1
# Possibly clean up the distribution.
if test -f config.cache; then
echo "= Running make distclean in ../demo"
make distclean || rm -f config.cache
fi
# Configure the demonstration.
echo "= Configuring in ../demo (prefix=$prefix)"
$srcdir/../demo/configure --srcdir=$srcdir/../demo --prefix=$prefix || exit 1
# Do the actual build.
echo "= Running make in ../demo"
make || exit 1
echo "= Running make check in ../demo"
make check || exit 1
echo "= Running make install in ../demo"
make install || exit 1
# FIXME - only fail with installcheck if we are superuser.
echo "= Running make installcheck in ../demo"
make installcheck || exit 1
echo "= Running make uninstall in ../demo"
make uninstall || exit 1
# Clean up the distribution.
make distclean
# Delete the directory tree we created.
rm -rf $prefix
exit 0

81
tests/hardcode.test Executable file
View File

@ -0,0 +1,81 @@
#! /bin/sh
# hardcode.test - check to see what the system linker hardcodes
# Test script header.
need_prefix=no
if test -z "$srcdir"; then
srcdir=`echo "$0" | sed 's%/[^/]*$%%'`
test "$srcdir" = "$0" && srcdir=.
test "${VERBOSE+set}" != "set" && VERBOSE=yes
fi
. $srcdir/defs || exit 1
# Check that things are built.
if test -f ../demo/hell; then :
else
echo "You must run demo-make.test before $0" 1>&2
exit 1
fi
# Change to our build directory.
cd ../demo || exit 1
echo "= Running $make hardcode in ../demo"
$make hardcode || exit 1
echo "= Finding ltconfig's guesses at hardcoding values"
status=0
hardcode_direct=NONE
hardcode_minus_L=NONE
hardcode_shlibpath_var=NONE
# Suck in all the hardcode_* variable settings.
eval `egrep -e '^hardcode_' ./libtool 2>/dev/null`
if test "$hardcode_direct" = NONE; then
echo "hardcode_direct not set in ../demo/libtool" 1>&2
status=1
fi
if test "$hardcode_minus_L" = NONE; then
echo "hardcode_minus_L not set in ../demo/libtool" 1>&2
status=1
fi
if test "$hardcode_shlibpath_var" = NONE; then
echo "hardcode_shlibpath_var not set in ../demo/libtool" 1>&2
status=1
fi
test $status -eq 0 || exit $status
echo "= Searching for hardcoded library directories in each program"
for file in hc-*; do
case "$file" in
hc-direct) expected="$hardcode_direct" ;;
hc-libpath) expected="$hardcode_shlibpath_var" ;;
hc-minusL) expected="$hardcode_minus_L" ;;
*)
echo "unknown file \`$file'" 1>&2
continue
;;
esac
if grep '.libs' $file > /dev/null; then
if test $expected = yes; then
echo ".libs was hardcoded in \`$file', as libtool expected"
else
echo ".libs was hardcoded in \`$file', which fooled libtool" 1>&2
status=1
fi
else
if test $expected = yes; then
echo ".libs was not hardcoded in \`$file', which fooled libtool" 1>&2
status=1
else
echo ".libs was not hardcoded in \`$file', as libtool expected"
fi
fi
done
exit $status

29
tests/link-2.test Executable file
View File

@ -0,0 +1,29 @@
#! /bin/sh
# link.test - check that .lo files and .l_o files aren't made into programs.
# Test script header.
need_prefix=no
if test -z "$srcdir"; then
srcdir=.
test "${VERBOSE+set}" != "set" && VERBOSE=yes
fi
. $srcdir/defs || exit 1
# Try a sample link command.
linkresult=`$libtool -n --mode=link gcc -o something foo.o hello.l_o hell.lo`
test $? = 0 || exit 1
echo "$linkresult"
case "$linkresult" in
*".lo "*)
echo "$0: .lo files should not be linked into programs"
exit 1
;;
*".l_o "*)
echo "$0: .l_o files should not be linked into programs"
exit 1
;;
esac
exit 0

14
tests/link.test Executable file
View File

@ -0,0 +1,14 @@
#! /bin/sh
# link.test - make sure that linking against libraries is legal.
# Test script header.
need_prefix=no
if test -z "$srcdir"; then
srcdir=.
test "${VERBOSE+set}" != "set" && VERBOSE=yes
fi
. $srcdir/defs || exit 1
# Try a sample link command.
$libtool -n --mode=link gcc -o gettext ../lib/libnlsut.a
exit $?

36
tests/suffix.test Executable file
View File

@ -0,0 +1,36 @@
#! /bin/sh
# suffix.test - check that libtool knows how to transform source suffices.
# Extensions taken from the ones that Automake recognizes.
extensions="C F S c c++ cc cpp cxx f f90 for"
bad_names="foo."
# Test script header.
need_prefix=no
if test -z "$srcdir"; then
srcdir=`echo "$0" | sed 's%/[^/]*$%%'`
test "$srcdir" = "$0" && srcdir=.
test "${VERBOSE+set}" != "set" && VERBOSE=yes
fi
. $srcdir/defs || exit 1
status=0
for ext in $extensions; do
# Try a sample compile command.
if ($libtool -n --mode=compile compiler -c foo.$ext 2>&1; exit 0) | grep 'cannot'; then
status=1
else
echo "recognized foo.$ext as a valid source file"
fi
done
# Make sure that invalid suffixes are not recognized.
for name in $bad_names; do
if ($libtool -n --mode=compile compiler -c $name 2>&1; exit 0) | grep 'cannot'; then :
else
echo "recognized foo.$ext as a valid source file"
status=1
fi
done
exit $status

19
tests/test-e.test Normal file
View File

@ -0,0 +1,19 @@
#! /bin/sh
# test-e.test - check that we haven't accidentally used test -e
# Test script header.
need_prefix=no
if test -z "$srcdir"; then
srcdir=.
test "${VERBOSE+set}" != "set" && VERBOSE=yes
fi
. $srcdir/defs || exit 1
# Check that test -e isn't used in our portable shell scripts.
if grep -n 'test -e' $srcdir/../ltconfig $srcdir/../ltmain.sh; then
echo "use test -f, not test -e to check for file existence"
exit 1
fi
exit 0

82
tests/tlibtool Normal file
View File

@ -0,0 +1,82 @@
#! /bin/sh
# tlibtool - A little test version of libtool.
if test -z "$srcdir"; then
echo "tlibtool: you must set \`\$srcdir' before running this test program" 1>&2
exit 1
fi
# 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