* ltconfig, ltmain.sh: Update to libtool 1.2b.
authorIan Lance Taylor <ian@airs.com>
Tue, 7 Jul 1998 19:24:58 +0000 (19:24 +0000)
committerIan Lance Taylor <ian@airs.com>
Tue, 7 Jul 1998 19:24:58 +0000 (19:24 +0000)
ChangeLog
ltconfig
ltmain.sh

index e1269dab8d658ddc8943137e9e544fc2efd180a0..cc21a41ec000a92b18e4389dff4fbf4f867630e4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Tue Jul  7 15:24:38 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+       * ltconfig, ltmain.sh: Update to libtool 1.2b.
+
 Thu Jul  2 13:57:36 1998  Klaus Kaempf  <kkaempf@rmi.de>
 
        * makefile.vms: Update to build binutils/makefile.vms.  Add install
index 1c91b036742f20c156a802ffaf4723a2b8b571c8..958a628ada3778b6237d3c060332331e77ae7060 100755 (executable)
--- a/ltconfig
+++ b/ltconfig
 
 # Check that we are running under the correct shell.
 SHELL=${CONFIG_SHELL-/bin/sh}
-if test "X$1" = "X--no-reexec"; then
+echo=echo
+if test "X$1" = X--no-reexec; then
   # Discard the --no-reexec flag, and continue.
   shift
-elif test "X$SHELL" != X/bin/sh; then
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+  # Yippee, $echo works!
+  :
+else
   # Restart under the correct shell.
   exec "$SHELL" "$0" --no-reexec ${1+"$@"}
 fi
@@ -39,9 +43,7 @@ fi
 # if CDPATH is set.
 if test "${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi
 
-echo=echo
-if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
-else
+if test "X`($echo '\t') 2>/dev/null`" != 'X\t'; then
   # The Solaris, AIX, and Digital Unix default echo programs unquote
   # backslashes.  This makes it impossible to quote backslashes using
   #   echo "$something" | sed 's/\\/\\\\/g'
@@ -61,16 +63,15 @@ else
     if test "X`(print -r '\t') 2>/dev/null`" = 'X\t'; then
       # This shell has a builtin print -r that does the trick.
       echo='print -r'
-#    elif test -f /bin/ksh && test "X$CONFIG_SHELL" != X/bin/ksh; then
-#      # If we have ksh, try running ltconfig again with it.
-#      CONFIG_SHELL=/bin/ksh
-#      export CONFIG_SHELL
-#      exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
+    elif test -f /bin/ksh && test "X$CONFIG_SHELL" != X/bin/ksh; then
+      # If we have ksh, try running ltconfig again with it.
+      CONFIG_SHELL=/bin/ksh
+      export CONFIG_SHELL
+      exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
     else
       # Try using printf.
       echo='printf %s\n'
-      if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
-      else
+      if test "X`($echo '\t') 2>/dev/null`" != 'X\t'; then
         # Oops.  We lost completely, so just stick with echo.
         echo=echo
       fi
@@ -92,7 +93,7 @@ progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
 # Constants:
 PROGRAM=ltconfig
 PACKAGE=libtool
-VERSION=1.2a
+VERSION=1.2b
 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5'
 ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS 1>&5'
 rm="rm -f"
@@ -227,8 +228,7 @@ if test -z "$ltmain"; then
   exit 1
 fi
 
-if test -f "$ltmain"; then :
-else
+if test ! -f "$ltmain"; then
   echo "$progname: \`$ltmain' does not exist" 1>&2
   echo "$help" 1>&2
   exit 1
@@ -693,7 +693,7 @@ if test -z "$LD"; then
     ac_prog=`($CC -print-prog-name=ld) 2>&5`
     case "$ac_prog" in
     # Accept absolute paths.
-    /* | [A-Za-z]:\\*)
+    /* | [A-Za-z]:[/\\]*)
       test -z "$LD" && LD="$ac_prog"
       ;;
     "")
@@ -762,6 +762,7 @@ no_undefined_flag=
 archive_cmds=
 old_archive_from_new_cmds=
 export_dynamic_flag_spec=
+whole_archive_flag_spec=
 hardcode_libdir_flag_spec=
 hardcode_libdir_separator=
 hardcode_direct=no
@@ -790,6 +791,9 @@ if test "$with_gnu_ld" = yes; then
 
   sunos4*)
     archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs'
+    hardcode_direct=yes
+    hardcode_minus_L=yes
+    hardcode_shlibpath_var=no
     ;;
 
   cygwin32* | mingw32*)
@@ -845,6 +849,7 @@ __dll_entry (HINSTANCE hinst, DWORD reason, LPVOID reserved)
     runpath_var=LD_RUN_PATH
     hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
     export_dynamic_flag_spec='${wl}--export-dynamic'
+    whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
   fi
 else
   # PORTME fill in a description of your system's linker (not GNU ld)
@@ -939,7 +944,7 @@ __dll_entry (HINSTANCE hinst, DWORD reason, LPVOID reserved)
     archive_cmds='$CC -shared -o $lib$libobjs'
     hardcode_libdir_flag_spec='-R$libdir'
     hardcode_direct=yes
-    hardcode_minus_L=yes
+    hardcode_minus_L=no
     hardcode_shlibpath_var=no
     ;;
 
@@ -1044,7 +1049,7 @@ echo "$ac_t$ld_shlibs" 1>&6
 if test -z "$NM"; then
   echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6
   case "$NM" in
-  /* | [A-Za-z]:\\*) ;; # Let the user override the test with a path.
+  /* | [A-Za-z]:[/\\]*) ;; # Let the user override the test with a path.
   *)
     IFS="${IFS=        }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
     for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do
@@ -1134,11 +1139,11 @@ void nm_test_func(){}
 main(){nm_test_var='a';nm_test_func();return(0);}
 EOF
 
-echo "$progname:1137: checking if global_symbol_pipe works" >&5
-if { (eval echo $progname:1138: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
+echo "$progname:1142: checking if global_symbol_pipe works" >&5
+if { (eval echo $progname:1143: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
   # Now try to grab the symbols.
   nlist=conftest.nm
-  if { echo "$progname:1141: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
+  if { echo "$progname:1146: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
 
     # Try sorting and uniquifying the output.
     if sort "$nlist" | uniq > "$nlist"T; then
@@ -1196,7 +1201,7 @@ EOF
        save_CFLAGS="$CFLAGS"
         LIBS="conftestm.$objext"
        CFLAGS="$CFLAGS$no_builtin_flag"
-        if { (eval echo $progname:1199: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+        if { (eval echo $progname:1204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
           pipe_works=yes
         else
           echo "$progname: failed program was:" >&5
@@ -1303,8 +1308,8 @@ freebsd2* | freebsd3*)
   ;;
 
 gnu*)
-  version_type=sunos
-  library_names_spec='${libname}${release}.so$versuffix'
+  version_type=linux
+  library_names_spec='${libname}${release}.so$versuffix ${libname}.so'
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
@@ -1384,6 +1389,8 @@ solaris2*)
   library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
   soname_spec='${libname}${release}.so$major'
   shlibpath_var=LD_LIBRARY_PATH
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
   ;;
 
 sunos4*)
@@ -1459,7 +1466,8 @@ ltecho="$echo"
 for var in ltecho old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \
   old_LN_S old_DLLTOOL old_AS AR CC LD LN_S NM DLLTOOL AS reload_flag \
   reload_cmds wl pic_flag link_static_flag no_builtin_flag \
-  export_dynamic_flag_spec libname_spec library_names_spec soname_spec RANLIB \
+  export_dynamic_flag_spec whole_archive_flag_spec libname_spec \
+  library_names_spec soname_spec RANLIB \
   old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
   old_postuninstall_cmds archive_cmds postinstall_cmds postuninstall_cmds \
   allow_undefined_flag no_undefined_flag objext libext \
@@ -1597,6 +1605,9 @@ no_builtin_flag="$no_builtin_flag"
 # Compiler flag to allow reflexive dlopens.
 export_dynamic_flag_spec="$export_dynamic_flag_spec"
 
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec="$whole_archive_flag_spec"
+
 # Library versioning type.
 version_type=$version_type
 
index 7fd5193cb511942ff78ba7877acffd0b93766588..8f8f6fb9081bb500a8bd3e136ea3155d5f64257f 100644 (file)
--- a/ltmain.sh
+++ b/ltmain.sh
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
+# Check that we have a working $echo.
+if test "X$1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell, and then maybe $echo will work.
+  exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
 # The name of this program.
 progname=`$echo "$0" | sed 's%^.*/%%'`
 modename="$progname"
@@ -30,7 +42,7 @@ modename="$progname"
 # Constants.
 PROGRAM=ltmain.sh
 PACKAGE=libtool
-VERSION=1.2
+VERSION=1.2b
 
 default_mode=
 help="Try \`$progname --help' for more information."
@@ -48,8 +60,13 @@ sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
 # 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
+# We save the old values to restore during execute mode.
+if test "${LC_ALL+set}" = set; then
+  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
+fi
+if test "${LANG+set}" = set; then
+  save_LANG="$LANG"; LANG=C; export LANG
+fi
 
 if test "$LTCONFIG_VERSION" != "$VERSION"; then
   echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
@@ -72,6 +89,8 @@ run=
 show="$echo"
 show_help=
 execute_dlfiles=
+lo2o="s/\\.lo\$/.${objext}/"
+los2o="s/\\.lo /.${objext} /g"
 
 # Parse our command line options once, thoroughly.
 while test $# -gt 0
@@ -111,6 +130,16 @@ do
     exit 0
     ;;
 
+  --config)
+    sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
+    exit 0
+    ;;
+
+  --debug)
+    echo "$progname: enabling shell trace mode"
+    set -x
+    ;;
+
   --dry-run | -n)
     run=:
     ;;
@@ -180,7 +209,7 @@ if test -z "$show_help"; then
         esac
       done
       ;;
-    *db | *dbx)
+    *db | *dbx | *strace | *truss)
       mode=execute
       ;;
     *install*|cp|mv)
@@ -238,7 +267,6 @@ if test -z "$show_help"; then
        ;;
 
       -static)
-       build_libtool_libs=no
        build_old_libs=yes
        continue
        ;;
@@ -293,7 +321,7 @@ if test -z "$show_help"; then
     libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
 
     case "$libobj" in
-    *.lo) obj=`$echo "X$libobj" | $Xsed -e 's/\.lo$/.o/'` ;;
+    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
     *)
       $echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2
       exit 1
@@ -315,6 +343,10 @@ if test -z "$show_help"; then
       trap "$run $rm $libobj; exit 1" 1 2 15
     fi
 
+    if test -n "$fix_srcfile_path"; then
+      eval srcfile=\"$fix_srcfile_path\"
+    fi
+
     # Only build a PIC object if we are building libtool libraries.
     if test "$build_libtool_libs" = yes; then
       # Without this assignment, base_compile gets emptied.
@@ -337,7 +369,7 @@ if test -z "$show_help"; then
 
       # Just move the object, then go on to compile the next one
       $show "$mv $obj $libobj"
-      $run $mv $obj $libobj || exit 1
+      $run $mv $obj $libobj || exit $?
 
       # Allow error messages only from the first compilation.
       suppress_output=' >/dev/null 2>&1'
@@ -374,10 +406,13 @@ if test -z "$show_help"; then
 
     compile_shlibpath=
     finalize_shlibpath=
+    convenience=
+    old_convenience=
     deplibs=
     dlfiles=
     dlprefiles=
     export_dynamic=no
+    generated=
     hardcode_libdirs=
     libobjs=
     link_against_libtool_libs=
@@ -410,8 +445,10 @@ if test -z "$show_help"; then
     test -n "$old_archive_from_new_cmds" && build_old_libs=yes
 
     # Go through the arguments, transforming them on the way.
-    for arg
-    do
+    while test $# -gt 0; do
+      arg="$1"
+      shift
+
       # If the previous option needs an argument, assign it.
       if test -n "$prev"; then
         case "$prev" in
@@ -495,7 +532,7 @@ if test -z "$show_help"; then
       -L*)
         dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'`
         case "$dir" in
-        /* | [A-Za-z]:\\*)
+        /* | [A-Za-z]:[/\\]*)
          # Add the corresponding hardcode_libdir_flag, if it is not identical.
           ;;
         *)
@@ -551,7 +588,7 @@ if test -z "$show_help"; then
        esac
         ;;
 
-      *.o | *.a)
+      *.o | *.obj | *.a | *.lib)
         # A standard object.
         objs="$objs $arg"
         ;;
@@ -571,7 +608,7 @@ if test -z "$show_help"; then
 
        if test "$prev" = dlprefiles; then
          # Preload the old-style object.
-         dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e 's/\.lo$/\.o/'`
+         dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
          prev=
        fi
        libobjs="$libobjs $arg"
@@ -586,7 +623,7 @@ if test -z "$show_help"; then
         old_library=
 
         # Check to see that this really is a libtool archive.
-        if (sed -e '2q' $arg | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then :
+        if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
         else
           $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
           exit 1
@@ -598,11 +635,6 @@ if test -z "$show_help"; then
         *) . ./$arg ;;
         esac
 
-        if test -z "$libdir"; then
-          $echo "$modename: \`$arg' contains no -rpath information" 1>&2
-          exit 1
-        fi
-
         # Get the name of the library we link against.
         linklib=
         for l in $old_library $library_names; do
@@ -623,6 +655,15 @@ if test -z "$show_help"; then
           dir="$dir/$objdir"
         fi
 
+        if test -z "$libdir"; then
+         # It is a libtool convenience library, so add in its objects.
+         convenience="$convenience $dir/$old_library"l
+         old_convenience="$old_convenience $dir/$old_library"
+         compile_command="$compile_command $dir/$old_library"
+         finalize_command="$finalize_command $dir/$old_library"
+         continue
+       fi
+
         # This library was specified with -dlopen.
         if test "$prev" = dlfiles; then
           dlfiles="$dlfiles $arg"
@@ -696,8 +737,9 @@ if test -z "$show_help"; then
           fi
 
 
+         lib_linked=yes
           case "$hardcode_action" in
-          immediate)
+          immediate | unsupported)
             if test "$hardcode_direct" = no; then
               compile_command="$compile_command $dir/$linklib"
             elif test "$hardcode_minus_L" = no; then
@@ -705,13 +747,15 @@ if test -z "$show_help"; then
             elif test "$hardcode_shlibpath_var" = no; then
               compile_shlibpath="$compile_shlibpath$dir:"
               compile_command="$compile_command -l$name"
+           else
+             lib_linked=no
             fi
             ;;
 
           relink)
             # We need an absolute path.
             case "$dir" in
-            /* | [A-Za-z]:\\*) ;;
+            /* | [A-Za-z]:[/\\]*) ;;
             *)
               absdir=`cd "$dir" && pwd`
               if test -z "$absdir"; then
@@ -729,15 +773,21 @@ if test -z "$show_help"; then
             elif test "$hardcode_shlibpath_var" = yes; then
               compile_shlibpath="$compile_shlibpath$dir:"
               compile_command="$compile_command -l$name"
+           else
+             lib_linked=no
             fi
             ;;
 
-          *)
-            $echo "$modename: \`$hardcode_action' is an unknown hardcode action" 1>&2
-            exit 1
-            ;;
+         *)
+           lib_linked=no
+           ;;
           esac
 
+         if test "$lib_linked" != yes; then
+           $echo "$modename: configuration error: unsupported hardcode properties"
+           exit 1
+         fi
+
           # Finalize command for both is simple: just hardcode it.
           if test "$hardcode_direct" = yes; then
             finalize_command="$finalize_command $libdir/$linklib"
@@ -802,14 +852,7 @@ if test -z "$show_help"; then
       exit 1
     fi
 
-    if test -n "$vinfo" && test -n "$release"; then
-      $echo "$modename: you cannot specify both \`-version-info' and \`-release'" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    oldlib=
-    oldobjs=
+    oldlibs=
     case "$output" in
     "")
       $echo "$modename: you must specify an output file" 1>&2
@@ -819,16 +862,39 @@ if test -z "$show_help"; then
 
     */* | *\\*)
       $echo "$modename: output file \`$output' must have no directory components" 1>&2
+      $echo "$help" 1>&2
       exit 1
       ;;
 
-    *.a)
+    *.a | *.lib)
+      if test -n "$link_against_libtool_libs"; then
+        $echo "$modename: error: cannot link libtool libraries into archives" 1>&2
+        exit 1
+      fi
+
+      if test -n "$deplibs"; then
+        $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
+      fi
+
+      if test -n "$dlfiles$dlprefiles"; then
+        $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$rpath"; then
+        $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$vinfo"; then
+        $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$release"; then
+        $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
+      fi
+
       # Now set the variables for building old libraries.
       build_libtool_libs=no
-      build_old_libs=yes
-      oldlib="$output"
-      $show "$rm $oldlib"
-      $run $rm $oldlib
+      oldlibs="$output"
       ;;
 
     *.la)
@@ -836,7 +902,7 @@ if test -z "$show_help"; then
       case "$output" in
       lib*) ;;
       *)
-       $echo "$modename: libtool library \`$arg' must begin with \`lib'" 1>&2
+       $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
        $echo "$help" 1>&2
        exit 1
        ;;
@@ -849,9 +915,6 @@ if test -z "$show_help"; then
       library_names=
       old_library=
       dlname=
-      current=0
-      revision=0
-      age=0
 
       if test -n "$objs"; then
         $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
@@ -860,21 +923,12 @@ if test -z "$show_help"; then
 
       # How the heck are we supposed to write a wrapper for a shared library?
       if test -n "$link_against_libtool_libs"; then
-        $echo "$modename: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2
+        $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
         exit 1
       fi
 
       if test -n "$dlfiles$dlprefiles"; then
-        $echo "$modename: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2
-        # Nullify the symbol file.
-        compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
-        finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
-      fi
-
-      if test -z "$rpath"; then
-        $echo "$modename: you must specify an installation directory with \`-rpath'" 1>&2
-       $echo "$help" 1>&2
-        exit 1
+        $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
       fi
 
       set dummy $rpath
@@ -883,22 +937,36 @@ if test -z "$show_help"; then
       fi
       install_libdir="$2"
 
-      if test -n "$vinfo"; then
+      # Now set the variables for building old libraries.
+      oldlibs="$objdir/$libname.$libext"
+      if test -z "$rpath"; then
+       # Building a libtool convenience library.
+       oldlibs="$objdir/$libname.al $oldlibs"
+       build_libtool_libs=convenience
+
+       if test -n "$vinfo"; then
+         $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
+       fi
+
+       if test -n "$release"; then
+         $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
+       fi
+      else
 
        # Parse the version information argument.
        IFS="${IFS=     }"; save_ifs="$IFS"; IFS=':'
-       set dummy $vinfo
+       set dummy $vinfo 0 0 0
        IFS="$save_ifs"
 
-       if test -n "$5"; then
+       if test -n "$8"; then
          $echo "$modename: too many parameters to \`-version-info'" 1>&2
          $echo "$help" 1>&2
          exit 1
        fi
 
-       test -n "$2" && current="$2"
-       test -n "$3" && revision="$3"
-       test -n "$4" && age="$4"
+       current="$2"
+       revision="$3"
+       age="$4"
 
        # Check that each of the things are valid numbers.
        case "$current" in
@@ -935,20 +1003,20 @@ if test -z "$show_help"; then
        fi
 
        # Calculate the version variables.
-       version_vars="version_type current age revision"
+       major=
+       versuffix=
+       verstring=
        case "$version_type" in
        none) ;;
 
        linux)
-         version_vars="$version_vars major versuffix"
          major=.`expr $current - $age`
-         versuffix=".$major.$age.$revision"
+         versuffix="$major.$age.$revision"
          ;;
 
        osf)
-         version_vars="$version_vars versuffix verstring"
-         major=.`expr $current - $age`
-         versuffix=."$current.$age.$revision"
+         major=`expr $current - $age`
+         versuffix=".$current.$age.$revision"
          verstring="$current.$age.$revision"
 
          # Add in all the interfaces that we are compatible with.
@@ -964,15 +1032,13 @@ if test -z "$show_help"; then
          ;;
 
        sunos)
-         version_vars="$version_vars major versuffix"
-         major=."$current"
-         versuffix=."$current.$revision"
+         major=".$current"
+         versuffix=".$current.$revision"
          ;;
 
        windows)
          # Like Linux, but with '-' rather than '.', since we only
          # want one extension on Windows 95.
-         version_vars="$version_vars major versuffix"
          major=`expr $current - $age`
          versuffix="-$major-$age-$revision"
          ;;
@@ -983,157 +1049,145 @@ if test -z "$show_help"; then
          exit 1
          ;;
        esac
-      else
-
-        # No version information.
-       version_vars=
-
-       case "$version_type" in
-       none) ;;
 
-       linux)
-         version_vars="$version_vars versuffix major"
-         major=
-         versuffix=
-         ;;
-
-       osf)
-         version_vars="$version_vars versuffix verstring"
+       # Clear the version info if we defaulted, and they specified a release.
+       if test -z "$vinfo" && test -n "$release"; then
          major=
          versuffix=
-         verstring=":0.0"
-         ;;
-
-       sunos)
-         version_vars="$version_vars major versuffix"
-         major=
-         versuffix=
-         ;;
+         verstring="0.0"
+       fi
 
-       windows)
-         # Like Linux, but with '-' rather than '.', and with a leading
-         # '-', since we only want one extension on Windows 95.
-         version_vars="$version_vars major versuffix"
-         major=
-         versuffix=
-         ;;
+       # Check to see if the archive will have undefined symbols.
+       if test "$allow_undefined" = yes; then
+         if test "$allow_undefined_flag" = unsupported; then
+           $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
+           build_libtool_libs=no
+           build_old_libs=yes
+         fi
+       else
+         # Don't allow undefined symbols.
+         allow_undefined_flag="$no_undefined_flag"
+       fi
 
-       *)
-         $echo "$modename: unknown library version type \`$version_type'" 1>&2
-         echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-         exit 1
-         ;;
-       esac
+       # Add libc to deplibs on all systems.
+       dependency_libs="$deplibs"
+       deplibs="$deplibs -lc"
       fi
 
       # Create the output directory, or remove our outputs if we need to.
       if test -d $objdir; then
-        $show "$rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*"
-        $run $rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*
+        $show "${rm}r $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*"
+       $run ${rm}r $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*
       else
         $show "$mkdir $objdir"
         $run $mkdir $objdir
-       status=$?
-       if test $status -eq 0 || test -d $objdir; then :
-       else
-         exit $status
-       fi
-      fi
-
-      # Check to see if the archive will have undefined symbols.
-      if test "$allow_undefined" = yes; then
-        if test "$allow_undefined_flag" = unsupported; then
-          $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
-          build_libtool_libs=no
-         build_old_libs=yes
+        status=$?
+        if test $status -ne 0 && test ! -d $objdir; then
+          exit $status
         fi
-      else
-        # Don't allow undefined symbols.
-        allow_undefined_flag="$no_undefined_flag"
       fi
 
-      # Add libc to deplibs on all systems.
-      dependency_libs="$deplibs"
-      deplibs="$deplibs -lc"
-
       if test "$build_libtool_libs" = yes; then
-        # Get the real and link names of the library.
-        eval library_names=\"$library_names_spec\"
-        set dummy $library_names
-        realname="$2"
-        shift; shift
-
-        if test -n "$soname_spec"; then
-          eval soname=\"$soname_spec\"
-        else
-          soname="$realname"
-        fi
+       # Get the real and link names of the library.
+       eval library_names=\"$library_names_spec\"
+       set dummy $library_names
+       realname="$2"
+       shift; shift
+
+       if test -n "$soname_spec"; then
+         eval soname=\"$soname_spec\"
+       else
+         soname="$realname"
+       fi
 
-        lib="$objdir/$realname"
+       lib="$objdir/$realname"
        for link
        do
          linknames="$linknames $link"
        done
 
-        # Use standard objects if they are PIC.
-        test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//g'`
+       # Use standard objects if they are PIC.
+       test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e "$los2o" -e 's/ $//g'`
 
-        # Do each of the archive commands.
-        eval cmds=\"$archive_cmds\"
-        IFS="${IFS=    }"; save_ifs="$IFS"; IFS=';'
-        for cmd in $cmds; do
-          IFS="$save_ifs"
-          $show "$cmd"
-          $run eval "$cmd" || exit $?
-        done
-        IFS="$save_ifs"
+       # Transform .lo files to .o files.
+       test "$build_old_libs" = yes && oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^   ]*\.a //g' -e 's/[^   ]*\.lib //g' -e "$los2o" -e 's/ $//g'`
+
+       if test -n "$whole_archive_flag_spec"; then
+         if test -n "$convenience"; then
+           eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+         fi
+       else
+         for xlib in $convenience; do
+           # Extract the objects.
+           xdir="$xlib"x
+           generated="$generated $xdir"
+           xlib=`echo "$xlib" | $Xsed -e 's%^.*/%%'`
+
+           $show "${rm}r $xdir"
+           $run ${rm}r "$xdir"
+           $show "mkdir $xdir"
+           $run mkdir "$xdir"
+           status=$?
+           if test $status -ne 0 && test ! -d "$xdir"; then
+             exit $status
+           fi
+           $show "(cd $xdir && $AR x ../$xlib)"
+           $run eval "(cd \$xdir && $AR x ../\$xlib)" || exit $?
+
+           libobjs="$libobjs `echo $xdir/*`"
+         done
+       fi
 
-        # Create links to the real library.
-        for linkname in $linknames; do
+       # Do each of the archive commands.
+       eval cmds=\"$archive_cmds\"
+       IFS="${IFS=     }"; save_ifs="$IFS"; IFS=';'
+       for cmd in $cmds; do
+         IFS="$save_ifs"
+         $show "$cmd"
+         $run eval "$cmd" || exit $?
+       done
+       IFS="$save_ifs"
+
+       # Create links to the real library.
+       for linkname in $linknames; do
          if test "$realname" != "$linkname"; then
-            $show "(cd $objdir && $LN_S $realname $linkname)"
-            $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $?
-          fi
-        done
+           $show "(cd $objdir && $LN_S $realname $linkname)"
+           $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $?
+         fi
+       done
 
-        # If -export-dynamic was specified, set the dlname.
-        if test "$export_dynamic" = yes; then
-          # On all known operating systems, these are identical.
-          dlname="$soname"
-        fi
+       # If -export-dynamic was specified, set the dlname.
+       if test "$export_dynamic" = yes; then
+         # On all known operating systems, these are identical.
+         dlname="$soname"
+       fi
       fi
-
-      # Now set the variables for building old libraries.
-      oldlib="$objdir/$libname.a"
       ;;
 
-    *.lo | *.o)
+    *.lo | *.o | *.obj)
       if test -n "$link_against_libtool_libs"; then
-        $echo "$modename: error: cannot link libtool libraries into reloadable objects" 1>&2
+        $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
         exit 1
       fi
 
       if test -n "$deplibs"; then
-        $echo "$modename: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2
+        $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
       fi
 
       if test -n "$dlfiles$dlprefiles"; then
-        $echo "$modename: warning: \`-dlopen' is ignored while creating objects" 1>&2
-        # Nullify the symbol file.
-        compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
-        finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+        $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
       fi
 
       if test -n "$rpath"; then
-        $echo "$modename: warning: \`-rpath' is ignored while creating objects" 1>&2
+        $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
       fi
 
       if test -n "$vinfo"; then
-        $echo "$modename: warning: \`-version-info' is ignored while creating objects" 1>&2
+        $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
       fi
 
       if test -n "$release"; then
-        $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2
+        $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
       fi
 
       case "$output" in
@@ -1143,7 +1197,7 @@ if test -z "$show_help"; then
           exit 1
         fi
         libobj="$output"
-        obj=`$echo "X$output" | $Xsed -e 's/\.lo$/.o/'`
+        obj=`$echo "X$output" | $Xsed -e "$lo2o"`
         ;;
       *)
         libobj=
@@ -1155,7 +1209,7 @@ if test -z "$show_help"; then
       $run $rm $obj $libobj
 
       # Create the old-style object.
-      reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^       ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'`
+      reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^       ]*\.a //g' -e 's/[^       ]*\.lib //g' -e "$los2o" -e 's/ $//g'`
 
       output="$obj"
       eval cmds=\"$reload_cmds\"
@@ -1193,7 +1247,7 @@ if test -z "$show_help"; then
       else
         # Just create a symlink.
         $show "$LN_S $obj $libobj"
-        $run $LN_S $obj $libobj || exit 1
+        $run $LN_S $obj $libobj || exit $?
       fi
 
       exit 0
@@ -1201,11 +1255,11 @@ if test -z "$show_help"; then
 
     *)
       if test -n "$vinfo"; then
-        $echo "$modename: warning: \`-version-info' is ignored while linking programs" 1>&2
+        $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
       fi
 
       if test -n "$release"; then
-        $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2
+        $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
       fi
 
       if test -n "$rpath"; then
@@ -1253,8 +1307,8 @@ if test -z "$show_help"; then
 
       if test -n "$libobjs" && test "$build_old_libs" = yes; then
         # Transform all the library objects into standard objects.
-        compile_command=`$echo "X$compile_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
-        finalize_command=`$echo "X$finalize_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
+        compile_command=`$echo "X$compile_command " | $Xsed -e "$los2o" -e 's/ $//'`
+        finalize_command=`$echo "X$finalize_command " | $Xsed -e "$los2o" -e 's/ $//'`
       fi
 
       if test "$export_dynamic" = yes && test -n "$NM" && test -n "$global_symbol_pipe"; then
@@ -1265,7 +1319,7 @@ if test -z "$show_help"; then
 
       if test -n "$dlsyms"; then
         # Add our own program objects to the preloaded list.
-        dlprefiles=`$echo "X$objs$dlprefiles " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
+        dlprefiles=`$echo "X$objs$dlprefiles " | $Xsed -e "$los2o" -e 's/ $//'`
 
        # Discover the nlist of each of the dlfiles.
         nlist="$objdir/${output}.nm"
@@ -1277,8 +1331,7 @@ if test -z "$show_help"; then
          $show "$mkdir $objdir"
          $run $mkdir $objdir
          status=$?
-         if test $status -eq 0 || test -d $objdir; then :
-         else
+         if test $status -ne 0 && test ! -d $objdir; then
            exit $status
          fi
        fi
@@ -1378,8 +1431,8 @@ dld_preloaded_symbols[] =
         $run eval '(cd $objdir && $CC -c$no_builtin_flag "$dlsyms")' || exit $?
 
         # Transform the symbol file into the correct name.
-        compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"`
-        finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"`
+        compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.${objext}%"`
+        finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.${objext}%"`
       elif test "$export_dynamic" != yes; then
         test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2
       else
@@ -1409,13 +1462,11 @@ dld_preloaded_symbols[] =
       finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'T%g'`
 
       # Create the binary in the object directory, then wrap it.
-      if test -d $objdir; then :
-      else
+      if test ! -d $objdir; then
         $show "$mkdir $objdir"
        $run $mkdir $objdir
        status=$?
-       if test $status -eq 0 || test -d $objdir; then :
-       else
+       if test $status -ne 0 && test ! -d $objdir; then
          exit $status
        fi
       fi
@@ -1425,7 +1476,7 @@ dld_preloaded_symbols[] =
         rpath=
         for dir in $temp_rpath; do
           case "$dir" in
-          /* | [A-Za-z]:\\*)
+          /* | [A-Za-z]:[/\\]*)
             # Absolute path.
             rpath="$rpath$dir:"
             ;;
@@ -1458,13 +1509,11 @@ dld_preloaded_symbols[] =
         finalize_command="$runpath_var=\"$rpath\$$runpath_var\" $finalize_command"
       fi
 
-      case "$hardcode_action" in
-      relink)
+      if test "$hardcode_action" = relink; then
         # AGH! Flame the AIX and HP-UX people for me, will ya?
         $echo "$modename: warning: using a buggy system linker" 1>&2
         $echo "$modename: relinking will be required before \`$output' can be installed" 1>&2
-        ;;
-      esac
+      fi
 
       $show "$compile_command"
       $run eval "$compile_command" || exit $?
@@ -1484,10 +1533,10 @@ dld_preloaded_symbols[] =
         trap "$rm $output; exit 1" 1 2 15
 
         $echo > $output "\
-#! /bin/sh
+#! $SHELL
 
 # $output - temporary wrapper script for $objdir/$output
-# Generated by ltmain.sh - GNU $PACKAGE $VERSION
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION
 #
 # The $output program cannot be directly executed until all the libtool
 # libraries that it depends on are installed.
@@ -1511,10 +1560,20 @@ if test \"\$libtool_install_magic\" = \"$magic\"; then
   finalize_command=\"$finalize_command\"
 else
   # When we are sourced in execute mode, \$file and \$echo are already set.
-  if test \"\$libtool_execute_magic\" = \"$magic\"; then :
-  else
+  if test \"\$libtool_execute_magic\" != \"$magic\"; then
     echo=\"$qecho\"
     file=\"\$0\"
+    # Make sure echo works.
+    if test \"X\$1\" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
+      # Yippee, \$echo works!
+      :
+    else
+      # Restart under the correct shell, and then maybe \$echo will work.
+      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+    fi
   fi\
 "
         $echo >> $output "\
@@ -1531,7 +1590,7 @@ else
     # If there was a directory component, then change thisdir.
     if test \"x\$destdir\" != \"x\$file\"; then
       case \"\$destdir\" in
-      /* | [A-Za-z]:\\*) thisdir=\"\$destdir\" ;;
+      /* | [A-Za-z]:[/\\]*) thisdir=\"\$destdir\" ;;
       *) thisdir=\"\$thisdir/\$destdir\" ;;
       esac
     fi
@@ -1591,9 +1650,36 @@ fi\
     esac
 
     # See if we need to build an old-fashioned archive.
-    if test "$build_old_libs" = "yes"; then
-      # Transform .lo files to .o files.
-      oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^   ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'`
+    for oldlib in $oldlibs; do
+
+      if test "$build_libtool_libs" = convenience; then
+       oldobjs="$libobjs"
+       addlibs="$convenience"
+       build_libtool_libs=no
+      else
+       addlibs="$old_convenience"
+      fi
+
+      # Add in members from convenience archives.
+      for xlib in $addlibs; do
+       # Extract the objects.
+       xdir="$xlib"x
+       generated="$generated $xdir"
+       xlib=`echo "$xlib" | $Xsed -e 's%^.*/%%'`
+
+       $show "${rm}r $xdir"
+       $run ${rm}r "$xdir"
+       $show "mkdir $xdir"
+       $run mkdir "$xdir"
+       status=$?
+       if test $status -ne 0 && test ! -d "$xdir"; then
+         exit $status
+       fi
+       $show "(cd $xdir && $AR x ../$xlib)"
+       $run eval "(cd \$xdir && $AR x ../\$xlib)" || exit $?
+
+       oldobjs="$oldobjs `echo $xdir/*`"
+      done
 
       # Do each command in the archive commands.
       if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
@@ -1608,21 +1694,25 @@ fi\
         $run eval "$cmd" || exit $?
       done
       IFS="$save_ifs"
+    done
+
+    if test -n "$generated"; then
+      $show "${rm}r$generated"
+      $run ${rm}r$generated
     fi
 
     # Now create the libtool archive.
     case "$output" in
     *.la)
       old_library=
-      test "$build_old_libs" = yes && old_library="$libname.a"
-
+      test "$build_old_libs" = yes && old_library="$libname.$libext"
       $show "creating $output"
 
       # Only create the output if not a dry run.
       if test -z "$run"; then
         $echo > $output "\
 # $output - a libtool library file
-# Generated by ltmain.sh - GNU $PACKAGE $VERSION
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION
 
 # The name that we can dlopen(3).
 dlname='$dlname'
@@ -1649,7 +1739,7 @@ libdir='$install_libdir'\
       # Do a symbolic link so that the libtool archive can be found in
       # LD_LIBRARY_PATH before the program is installed.
       $show "(cd $objdir && $LN_S ../$output $output)"
-      $run eval "(cd $objdir && $LN_S ../$output $output)" || exit 1
+      $run eval "(cd $objdir && $LN_S ../$output $output)" || exit $?
       ;;
     esac
     exit 0
@@ -1659,7 +1749,7 @@ libdir='$install_libdir'\
   install)
     modename="$modename: install"
 
-    # There may be an optional /bin/sh argument at the beginning of
+    # There may be an optional sh(1) argument at the beginning of
     # install_prog (especially on Windows NT).
     if test "$nonopt" = "$SHELL"; then
       # Aesthetically quote it.
@@ -1693,7 +1783,7 @@ libdir='$install_libdir'\
     opts=
     prev=
     install_type=
-    isdir=
+    isdir=no
     stripme=
     for arg
     do
@@ -1763,7 +1853,7 @@ libdir='$install_libdir'\
 
     # Check to see that the destination is a directory.
     test -d "$dest" && isdir=yes
-    if test -n "$isdir"; then
+    if test "$isdir" = yes; then
       destdir="$dest"
       destname=
     else
@@ -1780,7 +1870,7 @@ libdir='$install_libdir'\
       fi
     fi
     case "$destdir" in
-    /* | [A-Za-z]:\\*) ;;
+    /* | [A-Za-z]:[/\\]*) ;;
     *)
       for file in $files; do
         case "$file" in
@@ -1806,14 +1896,14 @@ libdir='$install_libdir'\
 
       # Do each installation.
       case "$file" in
-      *.a)
+      *.a | *.lib)
         # Do the static libraries later.
         staticlibs="$staticlibs $file"
         ;;
 
       *.la)
         # Check to see that this really is a libtool archive.
-        if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then :
+        if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
         else
           $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
           $echo "$help" 1>&2
@@ -1863,7 +1953,9 @@ libdir='$install_libdir'\
             rmcmd="$rm"
             for linkname
             do
-              rmcmd="$rmcmd $destdir/$linkname"
+             if test "X$linkname" != "X$realname"; then
+                rmcmd="$rmcmd $destdir/$linkname"
+             fi
             done
             $show "$rmcmd"
             $run $rmcmd
@@ -1871,9 +1963,11 @@ libdir='$install_libdir'\
             # ... and create new ones.
             for linkname
             do
-              test "X$dlname" = "X$linkname" && dlname=
-              $show "(cd $destdir && $LN_S $realname $linkname)"
-              $run eval "(cd $destdir && $LN_S $realname $linkname)"
+             if test "X$linkname" != "X$realname"; then
+                test "X$dlname" = "X$linkname" && dlname=
+                $show "(cd $destdir && $LN_S $realname $linkname)"
+                $run eval "(cd $destdir && $LN_S $realname $linkname)"
+             fi
             done
           fi
 
@@ -1918,9 +2012,9 @@ libdir='$install_libdir'\
         # Deduce the name of the destination old-style object file.
         case "$destfile" in
         *.lo)
-          staticdest=`$echo "X$destfile" | $Xsed -e 's/\.lo$/\.o/'`
+          staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
           ;;
-        *.o)
+        *.o | *.obj)
           staticdest="$destfile"
           destfile=
           ;;
@@ -1940,7 +2034,7 @@ libdir='$install_libdir'\
         # Install the old object if enabled.
         if test "$build_old_libs" = yes; then
           # Deduce the name of the old-style object file.
-          staticobj=`$echo "X$file" | $Xsed -e 's/\.lo$/\.o/'`
+          staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
 
           $show "$install_prog $staticobj $staticdest"
           $run eval "$install_prog \$staticobj \$staticdest" || exit $?
@@ -1949,8 +2043,16 @@ libdir='$install_libdir'\
         ;;
 
       *)
+        # Figure out destination file name, if it wasn't already specified.
+        if test -n "$destname"; then
+          destfile="$destdir/$destname"
+        else
+          destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+          destfile="$destdir/$destfile"
+        fi
+
         # Do a test to see if this is really a libtool program.
-        if (sed -e '4q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then
+        if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
           link_against_libtool_libs=
           finalize_command=
 
@@ -1978,10 +2080,7 @@ libdir='$install_libdir'\
               esac
             fi
             libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
-            if test -z "$libdir"; then
-              $echo "$modename: warning: \`$lib' contains no -rpath information" 1>&2
-            elif test -f "$libfile"; then :
-            else
+            if test -n "$libdir" && test ! -f "$libfile"; then
               $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
               finalize=no
             fi
@@ -2006,8 +2105,8 @@ libdir='$install_libdir'\
           fi
         fi
 
-        $show "$install_prog$stripme $file $dest"
-        $run eval "$install_prog\$stripme \$file \$dest" || exit $?
+        $show "$install_prog$stripme $file $destfile"
+        $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
         ;;
       esac
     done
@@ -2050,6 +2149,7 @@ libdir='$install_libdir'\
   finish)
     modename="$modename: finish"
     libdirs="$nonopt"
+    admincmds=
 
     if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
       for dir
@@ -2065,19 +2165,21 @@ libdir='$install_libdir'\
           for cmd in $cmds; do
             IFS="$save_ifs"
             $show "$cmd"
-            $run eval "$cmd"
+            $run eval "$cmd" || admincmds="$admincmds
+       $cmd"
           done
           IFS="$save_ifs"
        fi
        if test -n "$finish_eval"; then
          # Do the single finish_eval.
          eval cmds=\"$finish_eval\"
-         $run eval "$cmds"
+         $run eval "$cmds" || admincmds="$admincmds
+       $cmds"
        fi
       done
     fi
 
-    echo "------------------------------------------------------------------------------"
+    echo "----------------------------------------------------------------------"
     echo "Libraries have been installed in:"
     for libdir in $libdirs; do
       echo "   $libdir"
@@ -2086,7 +2188,7 @@ libdir='$install_libdir'\
     echo "To link against installed libraries in a given directory, LIBDIR,"
     echo "you must use the \`-LLIBDIR' flag during linking."
     echo
-    echo " You will also need to do one of the following:"
+    echo " You will also need to do at least one of the following:"
     if test -n "$shlibpath_var"; then
       echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
       echo "     during execution"
@@ -2101,13 +2203,16 @@ libdir='$install_libdir'\
 
       echo "   - use the \`$flag' linker flag"
     fi
+    if test -n "$admincmds"; then
+      echo "   - have your system administrator run these commands:$admincmds"
+    fi
     if test -f /etc/ld.so.conf; then
       echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
     fi
     echo
     echo "See any operating system documentation about shared libraries for"
     echo "more information, such as the ld(1) and ld.so(8) manual pages."
-    echo "------------------------------------------------------------------------------"
+    echo "----------------------------------------------------------------------"
     exit 0
     ;;
 
@@ -2125,8 +2230,7 @@ libdir='$install_libdir'\
 
     # Handle -dlopen flags immediately.
     for file in $execute_dlfiles; do
-      if test -f "$file"; then :
-      else
+      if test ! -f "$file"; then
        $echo "$modename: \`$file' is not a file" 1>&2
        $echo "$help" 1>&2
        exit 1
@@ -2136,7 +2240,7 @@ libdir='$install_libdir'\
       case "$file" in
       *.la)
         # Check to see that this really is a libtool archive.
-        if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then :
+        if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
         else
           $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
           $echo "$help" 1>&2
@@ -2207,7 +2311,7 @@ libdir='$install_libdir'\
       -*) ;;
       *)
         # Do a test to see if this is really a libtool program.
-        if (sed -e '4q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then
+        if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
          # If there is no directory component, then add one.
          case "$file" in
          */* | *\\*) . $file ;;
@@ -2228,6 +2332,14 @@ libdir='$install_libdir'\
       # Export the shlibpath_var.
       eval "export $shlibpath_var"
 
+      # Restore saved enviroment variables
+      if test "${save_LC_ALL+set}" = set; then
+        LC_ALL="$save_LC_ALL"; export LC_ALL
+      fi
+      if test "${save_LANG+set}" = set; then
+        LANG="$save_LANG"; export LANG
+      fi
+
       # Now actually exec the command.
       eval "exec \$cmd$args"
 
@@ -2272,7 +2384,7 @@ libdir='$install_libdir'\
       case "$name" in
       *.la)
         # Possibly a libtool archive, so verify it.
-        if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then
+        if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
           . $dir/$name
 
           # Delete the libtool libraries and symlinks.
@@ -2316,7 +2428,7 @@ libdir='$install_libdir'\
 
       *.lo)
         if test "$build_old_libs" = yes; then
-          oldobj=`$echo "X$name" | $Xsed -e 's/\.lo$/\.o/'`
+          oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
           rmfiles="$rmfiles $dir/$oldobj"
         fi
        $show "$rm $rmfiles"
@@ -2351,8 +2463,10 @@ case "$mode" in
 
 Provide generalized library-building support services.
 
+    --config          show all configuration variables
+    --debug           enable verbose shell tracing
 -n, --dry-run         display commands without modifying any files
-    --features        display configuration information and exit
+    --features        display basic configuration information and exit
     --finish          same as \`--mode=finish'
     --help            display this help message and exit
     --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
@@ -2380,6 +2494,10 @@ compile)
 
 Compile a source file into a libtool library object.
 
+This mode accepts the following additional options:
+
+  -static           always build a \`.o' file suitable for static linking
+
 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
 from the given SOURCEFILE.
 
@@ -2468,11 +2586,11 @@ object files.
 If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only
 library objects (\`.lo' files) may be specified, and \`-rpath' is required.
 
-If OUTPUT-FILE ends in \`.a', then a standard library is created using \`ar'
-and \`ranlib'.
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on WIndows using \`lib'.
 
-If OUTPUT-FILE ends in \`.lo' or \`.o', then a reloadable object file is
-created, otherwise an executable program is created."
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
   ;;
 
 uninstall)