From 60369e27860ad1bd537e7727001ea78f14a9c6c7 Mon Sep 17 00:00:00 2001 From: Gordon Matzigkeit Date: Tue, 1 Apr 1997 19:02:08 +0000 Subject: [PATCH] *** empty log message *** --- ChangeLog | 36 +++++++++++++++ Makefile.am | 2 +- NEWS | 9 +++- README | 2 +- TODO | 26 ++++++----- configure.in | 2 +- demo/Makefile.am | 2 +- doc/libtool.texi | 109 ++++++++++++++++++++++++++++++---------------- ltconfig.in | 32 +++++++++++--- ltmain.sh.in | 28 ++++++------ tests/ChangeLog | 18 +++++++- tests/Makefile.am | 7 ++- 12 files changed, 197 insertions(+), 76 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5195c1f97..ac2a56233 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,39 @@ +Sun Jan 26 15:50:07 1997 Gordon Matzigkeit + + * Release 0.8. + +Fri Jan 24 23:32:03 1997 Gordon Matzigkeit + + * Makefile.am (demo_distfiles): Add demo/acinclude.m4 to the + distribution. + +Wed Jan 22 17:22:17 1997 Gordon Matzigkeit + + * libtool.m4: For IRIX 6, ld needs -n32 if cc uses it. Reported + by Bruno Haible. + + * ltconfig.in: IRIX ld does not hardcode direct libraries. + Reported by Bruno Haible. + +Sat Jan 18 15:15:12 1997 Gordon Matzigkeit + + * ltconfig.in, ltmain.sh.in (hardcode_shlibpath_var): Allow new + value, `unsupported', since most linkers do not allow you to use + shlibpath_var for initial linking. + + * ltconfig.in: Lots of bug fixes from Bruno Haible. Set wl on + OSF/1, fix definitions of hardcode_* variables. + (archive_cmds): Fix not to use +h on HP-UX 9.x. Reported by Bruno + Haible. + +Fri Jan 17 09:58:22 1997 Gordon Matzigkeit + + * libtoolize.in: Handle explicit AC_CONFIG_AUX_DIR settings. + Suggested by Akim Demaille. + + * libtool.m4: Change ltconfig line to use $CONFIG_SHELL when it is + specified. Reported by Bruno Haible. + Thu Jan 16 17:57:38 1997 Gordon Matzigkeit * demo/Makefile.am (hc-direct): Do better searching for the proper diff --git a/Makefile.am b/Makefile.am index d8b87970c..746b9df33 100644 --- a/Makefile.am +++ b/Makefile.am @@ -10,7 +10,7 @@ CLEANFILES = libtool libtoolize MAINTAINERCLEANFILES = ltconfig ltmain.sh # Files in the demo subdirectory that go in the distribution. -demo_distfiles = Makefile.in Makefile.am README aclocal.m4 \ +demo_distfiles = Makefile.in Makefile.am README acinclude.m4 aclocal.m4 \ configure configure.in foo.c foo.h hello.c main.c \ run.test diff --git a/NEWS b/NEWS index d725191bf..06e8395b2 100644 --- a/NEWS +++ b/NEWS @@ -1,8 +1,13 @@ -New in 0.7a: +New in 0.7b: * Bug fixes, and more documentation. * Basic support for other language compilers (C++, Fortran, and preprocessed assembler). -* Support for *-*-irix5 and *-*-irix6*. +* Libtool is now more persistent when linking with the `-static' + flag fails. +* New test for hardcoding system linkers, to verify that libtool + neither creates incorrect binaries, nor takes unnecessary + precautions while linking against uninstalled shared libraries. +* Support for *-*-irix5, *-*-irix6*, and *-*-sco3.2v5*. New in 0.7: * Total rewrite of libtool, along with a new model for library building. diff --git a/README b/README index c8196e44b..1756de673 100644 --- a/README +++ b/README @@ -14,7 +14,7 @@ Shared library support has been implemented for these platforms: NetBSD 1.x (*-*-netbsd*) Solaris 2.x (*-*-solaris2*) Linux ELF targets (*-*-linux*, except *-*-linuxaout* and *-*-linuxoldld*) - All ELF targets that use both GCC and GNU ld + All ELF targets that use both the GNU C compiler (gcc) and GNU ld Shared library support is implemented, but untested on: AIX 3.x (*-*-aix3*) diff --git a/TODO b/TODO index cc7b19742..09e98be61 100644 --- a/TODO +++ b/TODO @@ -1,30 +1,32 @@ For 1.0: -* Have people test libtool on AIX 3, OSF/1, HP-UX, and SunOS 4. +* Give some hints for languages other than C, such as C++, Fortran, +and preprocessed assembler. There are beginnings of this in the +manual (Other Languages). -* Don't forget to find link_static_flag for native cc's on HP-UX and -OSF/1. +* Finish documenting shared library systems. Ugh. I'll need more +primary documentation in order to do this well. -* Implement shared libraries and `-static' linking on platforms that -support them. Ones that stand out, which libtool doesn't support: -IRIX. - -For 1.1: +Sometime in the future (maybe): * Implement full support for other basic library types (libhello_g, libhello_p). Make these types configurable. Some thinking will have to be done about the defaults, and what libhello (standard type) should be. -Sometime in the future (maybe): +Unfortunately, if we do this, we're back to the pre-0.6 +one-directory-per-object type. Maybe we should just add an autoconf +macro and get creative with program_transform_name, or something. * Add support for windoze DLL's, and maybe old Linux jumptable libraries. Check out Lesstif and Tcl configuration again. * What should be done about the difference between -fpic and -fPIC? +Probably nothing. -* GCC docs imply that all rs6000 code is PIC. See if it is true of -any other processors (like maybe powerpc). +* GCC docs imply that all rs6000 code is PIC. See if it is really +true of any other processors: at least powerpc, powerpcle. * Maybe choosing between ln -s and cp -p should be done in ltconfig, -not ltmain.sh? +not ltmain.sh? Maybe we should avoid it entirely, and just create +timestamp .lo files, with the PIC objects in .libs/*.o. diff --git a/configure.in b/configure.in index 64f0a291a..94868b519 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ AC_INIT(ltmain.sh.in) -AM_INIT_AUTOMAKE(libtool, 0.7b) +AM_INIT_AUTOMAKE(libtool, 0.7c) pkgdatadir='${datadir}/libtool' AC_SUBST(pkgdatadir) diff --git a/demo/Makefile.am b/demo/Makefile.am index b70629790..8b5c335bf 100644 --- a/demo/Makefile.am +++ b/demo/Makefile.am @@ -23,7 +23,7 @@ hell_static_LDFLAGS = -static TESTS = run.test -# Regenerate our acinclude.m4 only if it doesn't exist. +# Only for libtool demo: Regenerate our acinclude.m4 only if it doesn't exist. $(srcdir)/acinclude.m4: rm -f $(srcdir)/acinclude.m4 ln -s ../libtool.m4 $(srcdir)/acinclude.m4 diff --git a/doc/libtool.texi b/doc/libtool.texi index 090170ba8..727f2c3c5 100644 --- a/doc/libtool.texi +++ b/doc/libtool.texi @@ -93,7 +93,6 @@ version @value{VERSION}. * Integrating Libtool:: Using libtool in your own packages. * Versioning:: Using library interface versions. * Library Tips:: Tips for library interface design. -* Modifying:: Changing the libtool script. * Index:: Index of concepts, variables, and programs. --- The Detailed Node Listing --- @@ -175,10 +174,10 @@ package build shared libraries. They just run your package work. There are several examples throughout this document. All assume the -same environment: we want to build a library, @file{libfoo}, in a +same environment: we want to build a library, @file{libhello}, in a generic way. -@file{libfoo} could be a shared library, a static library, or +@file{libhello} could be a shared library, a static library, or both@dots{} whatever is available on the host system, as long as libtool has been ported to it. @@ -210,9 +209,8 @@ The problem is compounded by the absence of a standard procedure for creating shared libraries on different platforms. The following sections outline the major issues facing shared library -support in GNU, how some developers have overcome these issues, and how -I propose that shared library support should be standardized with -libtool. +support in GNU, and how I propose that shared library support could be +standardized with libtool. @cindex Specifications for libtool @cindex Libtool specifications @@ -334,6 +332,8 @@ object types. After porting libtool to more platforms, the author discovered a new (at least for him) paradigm of what libraries and programs are. +@cindex Definition of libraries +@cindex Libraries, definition of In summary: ``libraries are programs with multiple entry points, and more formally defined interfaces.'' @@ -350,6 +350,8 @@ when you understand it the world gets simpler. @comment node-name, next, previous, up @chapter Using Libtool +@cindex Examples of using libtool +@cindex Libtool examples It makes little sense to talk about using libtool in your own packages until you have seen how it makes your life simpler. The examples in this chapter introduce the main features of libtool by comparing the @@ -389,6 +391,8 @@ After we have built that library, we want to create a program by linking @comment node-name, next, previous, up @section Creating Object Files +@cindex Compiling object files +@cindex Object files, compiling To create an object file from a source file, the compiler is invoked with the `-c' flag (and any other desired flags): @@ -410,11 +414,16 @@ burger$ @kbd{gcc -g -O -c hello.c} burger$ @end example +@cindex Position-independant code +@cindex PIC (position-independant code) Shared libraries, however, may only be built from @dfn{position-independant code} (PIC). So, special flags must be passed to the compiler to tell it to generate PIC rather than the standard position-dependant code. +@cindex Library object file +@cindex `.lo' files +@cindex Object files, library Since this is a library implementation detail, libtool hides the complexity of PIC compiler flags by using separate library object files (which end in `.lo' instead of `.o'). On systems without shared @@ -460,6 +469,7 @@ burger$ @comment node-name, next, previous, up @section Linking Libraries +@pindex ar Without libtool, the programmer would invoke the @file{ar} command to create a static library: @@ -468,6 +478,7 @@ burger$ @kbd{ar cru libhello.a hello.o foo.o} burger$ @end example +@pindex ranlib But of course, that would be too simple, so many systems require that you run the @file{ranlib} command on the resulting library (to give it better karma, or something): @@ -482,6 +493,8 @@ libtool's ``libraries are programs'' approach. So, on platforms without shared libraries, libtool simply acts as a wrapper for the system @file{ar} (and possibly @file{ranlib}) commands. +@cindex Libtool libraries +@cindex `.la' files Again, the libtool library name differs from the standard name (it has a `.la' suffix instead of a `.a' suffix). The arguments to libtool are the same ones you would use to produce an executable named @@ -540,6 +553,7 @@ Now that's significantly cooler@dots{} libtool just ran an obscure @file{ld} command to create a shared library, as well as the static library. +@cindex @file{.libs} subdirectory Note how libtool creates extra files in the @file{.libs} subdirectory, rather than the current directory. This feature is to make it easier to clean up the build directory, and to help ensure that other programs @@ -549,15 +563,20 @@ fail horribly if you accidentally forget to use libtool when you should. @comment node-name, next, previous, up @section Linking Executables +@cindex Linking against installed libraries If you choose at this point to @dfn{install} the library (put it in a permanent location) before linking executables against it, then you -don't need to use libtool to do the linking. +don't need to use libtool to do the linking. Simply use the appropriate +@samp{-L} and @samp{-l} flags to specify the library's location. +@cindex Buggy system linkers Some system linkers insist on encoding the full directory name of each shared library in the resulting executable. Libtool has to work around this misfeature by special magic to ensure that only permanent directory names are put into installed executables. +@cindex Security problems with buggy linkers +@cindex Bugs, subtle ones caused by buggy linkers The importance of this bug must not be overlooked: it won't cause programs to crash in obvious ways. It creates a security hole, and possibly even worse, if you are modifying the library source code @@ -567,6 +586,7 @@ the installed programs! So, if you want to link programs against the library before you install it, you must use libtool to do the linking. +@cindex Linking against uninstalled libraries Here's the old way of linking against an uninstalled library: @example @@ -598,6 +618,8 @@ creating hell burger$ @end example +@cindex Wrapper scripts for programs +@cindex Program wrapper scripts Notice that the executable, @file{hell} was actually created in the @file{.libs} subdirectory. Then, a wrapper script was created in the current directory. @@ -653,10 +675,12 @@ until we link it against at least a few more programs. @comment node-name, next, previous, up @section Installing Libraries +@pindex strip Installing libraries on a non-libtool system is quite straightforward@dots{} just copy them into place:@footnote{Don't accidentally strip the libraries, though, or they will be unusable.} +@pindex su @example burger$ @kbd{su} Password: ******** @@ -671,6 +695,7 @@ burger# @kbd{ranlib /usr/local/lib/libhello.a} burger# @end example +@pindex install Libtool installation is quite simple, as well. Just use the @file{install} or @file{cp} command that you normally would: @@ -683,7 +708,8 @@ a23# @end example Note that the libtool library @file{libhello.la} is also installed, for -informational purposes. +informational purposes, and to help libtool with uninstallation +(@pxref{Uninstall Mode}). Here is the shared library example: @@ -696,6 +722,8 @@ ranlib /usr/local/lib/libhello.a burger# @end example +@cindex Stripping libraries +@cindex Libraries, stripping It is safe to specify the @samp{-s} (strip symbols) flag to the install program (if you use a BSD-compatible install) when installing libraries. Libtool will either ignore the @samp{-s} flag, or will run a program @@ -706,6 +734,9 @@ configuration that you need to do before using them. First, you must make sure that where the library is installed actually agrees with the @samp{-rpath} flag you used to build it. +@cindex Postinstallation +@cindex Installation, finishing +@cindex Libraries, finishing installation Then, running @samp{libtool -n --finish @var{libdir}} can give you further hints on what to do: @@ -752,6 +783,8 @@ burger# @comment node-name, next, previous, up @section Linking Static Libraries +@cindex Static linking +@cindex Convenience libraries Sometimes it is desirable to create a static archive that can never be shared. The most frequent case is when you have a ``convenience library'' that is a collection of unrelated object files without a @@ -773,10 +806,10 @@ Link the files in the same way you would a libtool library, but use a `.a' suffix (instead of `.la'): @example -burger$ @kbd{libtool gcc -o libfoo.a main.o foo.lo hello.lo} -rm -f libfoo.a -ar cru libfoo.a main.o foo.o hello.o -ranlib libfoo.a +burger$ @kbd{libtool gcc -o libhello.a main.o foo.lo hello.lo} +rm -f libhello.a +ar cru libhello.a main.o foo.o hello.o +ranlib libhello.a burger$ @end example @@ -785,13 +818,14 @@ If you want to install the library (but you probably don't), then you can use libtool to do it, too: @example -burger$ @kbd{libtool ./install-sh -c libfoo.a /local/lib/libfoo.a} -./install-sh -c libfoo.a /local/lib/libfoo.a -ranlib /local/lib/libfoo.a +burger$ @kbd{libtool ./install-sh -c libhello.a /local/lib/libhello.a} +./install-sh -c libhello.a /local/lib/libhello.a +ranlib /local/lib/libhello.a burger$ @end example @end enumerate +@cindex Standalone binaries Another common situation where static linking is desirable is in creating a standalone binary. Use libtool to do the linking and add the @samp{-static} flag. @@ -800,6 +834,7 @@ creating a standalone binary. Use libtool to do the linking and add the @comment node-name, next, previous, up @chapter Invoking @file{libtool} +@c FIXME this is where I got sick of writing index entries The @file{libtool} program has the following synopsis: @example @@ -1025,13 +1060,13 @@ First, to link a program against a libtool library, just use the @example bin_PROGRAMS = hell hell.static -# Build hell from main.c and libhell.la +# Build hell from main.c and libhello.la hell_SOURCES = main.c -hell_LDADD = libhell.la +hell_LDADD = libhello.la # Create a statically-linked version of hell. hell_static_SOURCES = main.c -hell_static_LDADD = libhell.la +hell_static_LDADD = libhello.la hell_static_LDFLAGS = -static @end example @@ -1040,14 +1075,14 @@ you want to pass to libtool while linking @samp{program} (such as @samp{-static} to create a statically-linked executable). Building a libtool library is almost as trivial@dots{} note the use of -@samp{libhell_la_LDFLAGS} to pass the @samp{-version-info} +@samp{libhello_la_LDFLAGS} to pass the @samp{-version-info} (@pxref{Versioning}) and @samp{-rpath} options to libtool: @example -# 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-info 3:12:1 -rpath $(libdir) +# Build a libtool library, libhello.la for installation in libdir. +lib_PROGRAMS = libhello.la +libhello_la_SOURCES = hello.c foo.c +libhello_la_LDFLAGS = -version-info 3:12:1 -rpath $(libdir) @end example @node Configuring, Distributing, Using Automake, Integrating Libtool @@ -1368,18 +1403,18 @@ library. Note that this can cause problems because libtool's compatibility requirements are actually stricter than is necessary. -Say @file{libfoo} supports interfaces 5, 16, 17, 18, and 19, and that -libtool is used to link @file{test} against @file{libfoo}. +Say @file{libhello} supports interfaces 5, 16, 17, 18, and 19, and that +libtool is used to link @file{test} against @file{libhello}. Libtool encodes the numbers 5 and 19 in @file{test}, and the dynamic linker will only link @file{test} against libraries that support @emph{every} interface between 5 and 19. So, the dynamic linker refuses -to link @file{test} against @file{libfoo}! +to link @file{test} against @file{libhello}! In order to eliminate this problem, libtool only allows libraries to -declare consecutive interface numbers. So, @file{libfoo} can declare at +declare consecutive interface numbers. So, @file{libhello} can declare at most that it supports interfaces 16 through 19. Then, the dynamic -linker will link @file{test} against @file{libfoo}. +linker will link @file{test} against @file{libhello}. So, libtool library versions are described by three integers: @@ -1452,7 +1487,7 @@ set @var{age} to 0. to the release of the package that you are making. This is an abuse that only fosters misunderstanding of the purpose of library versions. -@node Library Tips, Modifying, Versioning, Top +@node Library Tips, Index, Versioning, Top @comment node-name, next, previous, up @chapter Tips for Interface Design @@ -1597,15 +1632,15 @@ and @code{__END_DECLS} into your own headers. Then, you may use them to create header files that are valid for C++, ANSI, and non-ANSI compilers. -@node Modifying, Index, Library Tips, Top -@comment node-name, next, previous, up -@chapter Modifying Libtool - -FIXME -Description of libtool script contents, the interface between ltconfig -and libtool +@c @node Modifying, Index, Library Tips, Top +@c @comment node-name, next, previous, up +@c @chapter Modifying Libtool +@c +@c FIXME +@c Description of libtool script contents, the interface between +@c ltconfig and libtool -@node Index, , Modifying, Top +@node Index, , Library Tips, Top @comment node-name, next, previous, up @unnumbered Index diff --git a/ltconfig.in b/ltconfig.in index 2b228f6d6..d5a367663 100755 --- a/ltconfig.in +++ b/ltconfig.in @@ -486,6 +486,7 @@ archive_cmds= link_rpath_flag= hardcode_minus_L=no hardcode_shlibpath_var=no +hardcode_direct=no ld_shlibs=yes if test "$with_gnu_ld" = yes; then @@ -494,10 +495,13 @@ if test "$with_gnu_ld" = yes; then case "$host" in *-*-sunos4*) ld_shlibs=yes + hardcode_direct=yes ;; *) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + # GNU ld on ELF does not support linking via the shlibpath_var. + hardcode_shlibpath_var=yes ld_shlibs=yes else ld_shlibs=no @@ -514,24 +518,32 @@ else case "$host" in *-*-aix3*) archive_cmds='$rm $lib.exp;/usr/ucb/nm$libobjs | egrep \" D \" | sed \"s/^.* //\" > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE -lc$deplibs;ar cru $lib $objdir/$soname' - hardcode_shlibpath_var=yes + hardcode_direct=yes hardcode_minus_L=yes + + # AIX ld does not support linking via the shlibpath_var. + hardcode_shlibpath_var=yes ;; *-*-aix4*) archive_cmds='$rm $lib.exp;/bin/nm -B$libobjs | egrep \" D \" | sed \"s/^.* //\" > $lib.exp;$cc -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry$deplibs;ar cru $lib $objdir/$soname' - hardcode_shlibpath_var=yes + hardcode_direct=yes hardcode_minus_L=yes + + # AIX ld does not support linking via the shlibpath_var. + hardcode_shlibpath_var=yes ;; *-*-freebsd*) archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs' + hardcode_direct=yes hardcode_minus_L=yes ;; *-*-hpux9* | *-*-hpux10*) archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs$deplibs' link_rpath_flag='${wl}+b ${wl}$libdir' + hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=yes ;; @@ -539,21 +551,25 @@ else *-*-irix5* | *-*-irix6*) archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs -lc$deplibs' link_rpath_flag='${wl}-rpath ${wl}$libdir' + hardcode_direct=yes ;; *-*-netbsd*) # Tested with NetBSD 1.2 ld archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs' link_rpath_flag='-R$libdir' + hardcode_direct=yes ;; *-*-osf3*) archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs -lc$deplibs' link_rpath_flag='${wl}-rpath ${wl}$libdir' + hardcode_direct=yes ;; *-*-sco3.2v5*) archive_cmds='$LD -G -o $lib$libobjs$deplibs' + hardcode_direct=yes ;; *-*-solaris2*) @@ -564,6 +580,7 @@ else *-*-sunos4*) archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs' link_rpath_flag='-L$libdir' + hardcode_direct=yes hardcode_minus_L=yes ;; @@ -800,6 +817,7 @@ profile_flag_pattern='$profile_flag_pattern' version_type=$version_type # List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. lib_names='$lib_names' # The coded name of the library, if different from the real name. @@ -827,14 +845,18 @@ old_striplib='$old_striplib' # 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 DIR/libNAME.so during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + EOF # Detect if we are using a relative or absolute path to ltmain.sh. diff --git a/ltmain.sh.in b/ltmain.sh.in index 2fce5bd9a..0c3e74448 100644 --- a/ltmain.sh.in +++ b/ltmain.sh.in @@ -110,7 +110,7 @@ done if test -n "$prevopt"; then echo "$progname: option \`$prevopt' requires an argument" 1>&2 - echo "$help" + echo "$help" 1>&2 exit 1 fi @@ -174,12 +174,12 @@ if test -z "$show_help"; then done # Get the name of the library object. - libobj=`echo "$srcfile" | sed -e 's%^.*/%%` + libobj=`echo "$srcfile" | sed -e 's%^.*/%%'` # Recognize several different file suffixes. xform='[cCFSf]' - case $libobj in - *.c++) xform='c\+\+' ;; + case "$libobj" in + *.c++) xform='c++' ;; *.cc) xform=cc ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; @@ -189,10 +189,10 @@ if test -z "$show_help"; then libobj=`echo "$libobj" | sed -e "s/\.$xform$/.lo/"` - case $libobj in + case "$libobj" in *.lo) obj=`echo "$libobj" | sed -e 's/\.lo$/.o/'` ;; *) - echo "$progname: cannot determine name of library object from \`$srcfile'" + echo "$progname: cannot determine name of library object from \`$srcfile'" 1>&2 exit 1 ;; esac @@ -412,7 +412,7 @@ if test -z "$show_help"; then *) echo "$progname: unknown file suffix for \`$arg'" 1>&2 - echo "$help" + echo "$help" 1>&2 exit 1 ;; esac @@ -425,7 +425,7 @@ if test -z "$show_help"; then done if test -n "$prev"; then - echo "$progname: the \`$prevarg' option requires an argument" + echo "$progname: the \`$prevarg' option requires an argument" 1>&2 echo "$help" 1>&2 exit 1 fi @@ -763,7 +763,7 @@ if test -z "$show_help"; then # Things are fine, the world is a beautiful place. $show "$compile_command" - elif test "$hardcode_shlibpath_var" != yes; then + elif test "$hardcode_shlibpath_var" = yes; then # We just need to export the shlibpath for the link command. $show "$shlibpath_var=$linkrpath $compile_command" eval "$shlibpath_var=$linkrpath" @@ -1128,7 +1128,7 @@ EOF # Check the variables that should have been set. if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then - echo "$progname: invalid libtool wrapper script \`$file'" + echo "$progname: invalid libtool wrapper script \`$file'" 1>&2 exit 1 fi @@ -1145,7 +1145,7 @@ EOF fi libfile="$libdir/`echo "$lib" | sed 's%^.*/%%g'`" if test -z "$libdir"; then - echo "$progname: warning: \`$lib' contains no -rpath information" + echo "$progname: warning: \`$lib' contains no -rpath information" 1>&2 elif test -f "$libfile"; then : else echo "$progname: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 @@ -1155,9 +1155,9 @@ EOF if test "$hardcode_minus_L" = yes && test "$hardcode_shlibpath_var" = yes; then if test "$finalize" = no; then - echo "$progname: warning: cannot relink \`$file' on behalf of your buggy system linker" + echo "$progname: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2 else - echo "$progname: warning: relinking \`$file' on behalf of your buggy system linker" + echo "$progname: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2 $show "$finalize_command" if $run $finalize_command; then : else @@ -1223,7 +1223,7 @@ EOF done if test -n "$future_libdirs"; then - echo "$progname: warning: remember to run \`$progname --finish$future_libdirs'" + echo "$progname: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then diff --git a/tests/ChangeLog b/tests/ChangeLog index 31026a962..487225f19 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,20 @@ +Fri Jan 3 23:15:22 1997 Gordon Matzigkeit + + * Makefile.am (distclean-local): Remove all files that the tests + may have created. Reported by Bruno Haible. + + * For all tests, discover srcdir when running from the command + line. + + * demo-unst.test: Don't fail if make uninstall doesn't delete + files beginning with a dot, since spurious .nfsXXX files may be + present when running NFS. Reported by Bruno Haible. + +Thu Jan 2 13:03:41 1997 Gordon Matzigkeit + + * suffix.test: New test to guarantee that libtool compile + recognizes valid source file suffixes. + Sun Dec 8 14:43:15 1996 Gordon Matzigkeit * demo.test: Break up into demo-conf.test, demo-make.test, @@ -21,4 +38,3 @@ Mon Dec 2 16:31:10 1996 Gordon Matzigkeit * test-e.test: Check that we haven't used `test -e' anywhere in our portable shell scripts. - diff --git a/tests/Makefile.am b/tests/Makefile.am index b2e83eba6..f31b25f83 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -3,6 +3,11 @@ AUTOMAKE_OPTIONS = gnits TESTS = demo-conf.test demo-make.test demo-exec.test demo-inst.test \ - demo-unst.test link.test link-2.test test-e.test + demo-unst.test link.test link-2.test suffix.test test-e.test EXTRA_DIST = defs tlibtool $(TESTS) + +# We need to remove any files that the above tests created. +distclean-local: + test -f ../demo/Makefile && cd ../demo && $(MAKE) distclean + rm -rf =inst -- 2.47.2