]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
*** empty log message ***
authorGordon Matzigkeit <gord@gnu.ai.mit.edu>
Tue, 1 Apr 1997 19:02:08 +0000 (19:02 +0000)
committerGordon Matzigkeit <gord@gnu.org>
Tue, 1 Apr 1997 19:02:08 +0000 (19:02 +0000)
12 files changed:
ChangeLog
Makefile.am
NEWS
README
TODO
configure.in
demo/Makefile.am
doc/libtool.texi
ltconfig.in
ltmain.sh.in
tests/ChangeLog
tests/Makefile.am

index 5195c1f97b2ea5e69326eae456499edb0f13d086..ac2a5623374566e8f24b41b15e9d0aa1033c347b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,39 @@
+Sun Jan 26 15:50:07 1997  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
+
+       * Release 0.8.
+
+Fri Jan 24 23:32:03 1997  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
+
+       * Makefile.am (demo_distfiles): Add demo/acinclude.m4 to the
+       distribution.
+
+Wed Jan 22 17:22:17 1997  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
+
+       * 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  <gord@gnu.ai.mit.edu>
+
+       * 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  <gord@gnu.ai.mit.edu>
+
+       * 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  <gord@gnu.ai.mit.edu>
 
        * demo/Makefile.am (hc-direct): Do better searching for the proper
index d8b87970caf247d82d2ef35af1ec30db72aca2e1..746b9df331c4cb73fa3f17ff22fd7d2f4b28649a 100644 (file)
@@ -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 d725191bfe1c20e7871adf0f99ecec5e7e3183bf..06e8395b2b0c465838b78b7d1e4e46113d3fc337 100644 (file)
--- 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*.
 \f
 New in 0.7:
 * Total rewrite of libtool, along with a new model for library building.
diff --git a/README b/README
index c8196e44b801231c6e6d79941df0c880b8236727..1756de673e3cda13ab5de2c2468af5f6dbeee5ee 100644 (file)
--- 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 cc7b19742f7313a48e274c167977f564f1b92c06..09e98be61f57e5a2ac2901e4f288c9deac8612ad 100644 (file)
--- 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.
index 64f0a291a486d7dd7c55d7cb2b5c8cbb1be5060e..94868b519c3ce767174590422bc203338d4271ee 100644 (file)
@@ -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)
index b70629790a93800ce131008e64ac6e5d3b5d4254..8b5c335bfd9b68c3246c04187b4358d969602921 100644 (file)
@@ -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
index 090170ba88e0f11e852e96084ad05c59a453a4b5..727f2c3c5f3e80ec8ef39d58d311defbf5d580cc 100644 (file)
@@ -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
 
index 2b228f6d69713917d9502178f30cbeed5bd6d8c7..d5a36766366b0c6341c3b83cb98271f4caa78821 100755 (executable)
@@ -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.
index 2fce5bd9ad52e03fc3424bf4b1260cc815ca4757..0c3e74448a970b86d5ad6f6103787d96d3c85e24 100644 (file)
@@ -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
index 31026a962ef6eefc7e2cf4fb4da6c9135a009d5f..487225f19744e34bc30a7281e93c42324af526c9 100644 (file)
@@ -1,3 +1,20 @@
+Fri Jan  3 23:15:22 1997  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
+
+       * 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  <gord@gnu.ai.mit.edu>
+
+       * suffix.test: New test to guarantee that libtool compile
+       recognizes valid source file suffixes.
+
 Sun Dec  8 14:43:15 1996  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
 
        * demo.test: Break up into demo-conf.test, demo-make.test,
@@ -21,4 +38,3 @@ Mon Dec  2 16:31:10 1996  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
 
        * test-e.test: Check that we haven't used `test -e' anywhere in
        our portable shell scripts.
-
index b2e83eba690104d5b4d7327a6f60ba357b3e0c75..f31b25f83b75e65bd222b992b1ed888d70a1951c 100644 (file)
@@ -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