]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
*** empty log message ***
authorAlexandre Oliva <oliva@dcc.unicamp.br>
Mon, 8 Feb 1999 10:53:45 +0000 (10:53 +0000)
committerThomas Tanner <tanner@gmx.de>
Mon, 8 Feb 1999 10:53:45 +0000 (10:53 +0000)
mail/ild.diff

index df36c5ee2d06eb96739f2b95bba85b2241d6eef9..202b48f0bae337fba21a7cb15637baad344c366a 100644 (file)
-diff -ruNd libtool/Makefile.am libtool.new/Makefile.am
---- libtool/Makefile.am        Tue Jan  5 19:15:23 1999
-+++ libtool.new/Makefile.am    Sun Jan 10 15:38:50 1999
-@@ -2,7 +2,7 @@
- ## Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
- AUTOMAKE_OPTIONS = gnits
- SUBDIRS = . doc tests
--DIST_SUBDIRS = $(SUBDIRS) demo libltdl mdemo
-+DIST_SUBDIRS = $(SUBDIRS) demo depdemo libltdl mdemo
- # We need to export these variables when we run ltconfig.
- CFLAGS = @CFLAGS@
-@@ -62,6 +62,7 @@
- ACINCLUDE_M4_LIST = \
-       $(srcdir)/acinclude.m4 \
-       $(srcdir)/demo/acinclude.m4 \
-+      $(srcdir)/depdemo/acinclude.m4 \
-       $(srcdir)/libltdl/acinclude.m4 \
-       $(srcdir)/mdemo/acinclude.m4
-diff -ruNd libtool/demo/Makefile.am libtool.new/demo/Makefile.am
---- libtool/demo/Makefile.am   Sat Jan  9 10:51:42 1999
-+++ libtool.new/demo/Makefile.am       Sun Jan 10 15:38:50 1999
-@@ -24,11 +24,11 @@
- # Build hell from main.c and libhello.la
- hell_SOURCES = main.c
--hell_LDADD = libhello.la
-+hell_LDADD = -lhello
- # Create an easier-to-debug version of hell.
- hell_debug_SOURCES = main.c
--hell_debug_LDADD = libhello.la
-+hell_debug_LDADD = -lhello
- hell_debug_LDFLAGS = -static
- if BINARY_HELLDL
-diff -ruNd libtool/depdemo/Makefile.am libtool.new/depdemo/Makefile.am
+diff -ruNd libtool/configure.in libtool.dep/configure.in
+--- libtool/configure.in       Wed Jan 27 10:03:54 1999
++++ libtool.dep/configure.in   Mon Feb  8 11:01:45 1999
+@@ -41,7 +41,7 @@
+ dnl all subdirectories that are configured on demand, but that must be
+ dnl included in the distribution
+-CONF_SUBDIRS="libltdl demo mdemo cdemo" # depdemo
++CONF_SUBDIRS="libltdl demo mdemo depdemo cdemo"
+ AC_SUBST(CONF_SUBDIRS)
+ ACINCLUDE_M4_LIST="${srcdir}/acinclude.m4 "
+diff -ruNd libtool/depdemo/Makefile.am libtool.dep/depdemo/Makefile.am
 --- libtool/depdemo/Makefile.am        Sat Jan  9 10:51:43 1999
-+++ libtool.new/depdemo/Makefile.am    Sun Jan 10 15:38:50 1999
-@@ -5,21 +5,20 @@
- lib_LTLIBRARIES = libl1.la libl2.la libl3.la libl4.la
- libl1_la_SOURCES = l1.c l1.h sysdep.h
- libl2_la_SOURCES = l2.c l2.h sysdep.h
--libl2_la_LIBADD = libl1.la
-+libl2_la_LDFLAGS = -ll1
- libl3_la_SOURCES = l3.c l3.h sysdep.h
--libl3_la_LIBADD = libl1.la libl2.la
-+libl3_la_LDFLAGS = -ll1 -ll2
++++ libtool.dep/depdemo/Makefile.am    Mon Feb  8 11:01:45 1999
+@@ -11,15 +11,13 @@
  libl4_la_SOURCES = l4.c l4.h sysdep.h
--libl4_la_LIBADD = libl3.la $(LIBADD_M)
--
+ libl4_la_LIBADD = libl3.la $(LIBADD_M)
 -bin_PROGRAMS = depdemo depdemo.static
-+libl4_la_LDFLAGS = -ll3 $(LIBADD_M)
++bin_PROGRAMS = depdemo.static depdemo
  
--depdemo_SOURCES = main.c
+ depdemo_SOURCES = main.c
 -depdemo_LDADD = libl1.la libl2.la libl4.la \
 -              libl3.la # remove this!
--depdemo_DEPENDENCIES = libl1.la libl2.la libl4.la
-+bin_PROGRAMS = depdemo.static depdemo
++depdemo_LDADD = libl1.la libl2.la libl4.la
+ depdemo_DEPENDENCIES = libl1.la libl2.la libl4.la
  
- depdemo_static_SOURCES = main.c
+-depdemo_static_SOURCES = main.c
 -depdemo_static_LDADD = libl1.la libl2.la libl4.la \
 -              libl3.la # remove this!
-+depdemo_static_LDADD = -ll1 -ll2 -ll4
- depdemo_static_DEPENDENCIES = libl1.la libl2.la libl4.la
+-depdemo_static_DEPENDENCIES = libl1.la libl2.la libl4.la
++depdemo_static_SOURCES = $(depdemo_SOURCES)
++depdemo_static_LDADD = $(depdemo_LDADD)
++depdemo_static_DEPENDENCIES = $(depdemo_DEPENDENCIES)
  depdemo_static_LDFLAGS = -static
-+
-+depdemo_SOURCES = main.c
-+depdemo_LDADD = -ll1 -ll2 -ll4
-+depdemo_DEPENDENCIES = libl1.la libl2.la libl4.la
-+
-diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
---- libtool/ltmain.in  Sun Jan 10 11:16:15 1999
-+++ libtool.new/ltmain.in      Sun Jan 10 15:38:50 1999
-@@ -611,7 +611,6 @@
+diff -ruNd libtool/ltmain.in libtool.dep/ltmain.in
+--- libtool/ltmain.in  Wed Feb  3 16:42:52 1999
++++ libtool.dep/ltmain.in      Mon Feb  8 11:44:15 1999
+@@ -603,8 +603,11 @@
+     ;;
+   # libtool link mode
+-  link)
++  link | link-install)
+     modename="$modename: link"
++    link_install=no
++    test "$mode" = "link-install" && link_install=yes
++    link_command="$nonopt"
+     C_compiler="$CC" # save it, to compile generated C sources
+     CC="$nonopt"
+     case "$host" in
+@@ -649,24 +652,13 @@
+       ;;
+     esac
+     compile_command="$CC"
+-    finalize_command="$CC"
+-    compile_shlibpath=
+-    finalize_shlibpath=
++    shlibpath=
      convenience=
      old_convenience=
      deplibs=
--    eval lib_search_path=\"$sys_lib_search_path\"
-     
-     avoid_versioning=no
+     linkopts=
+-    if test -n "$shlibpath_var"; then
+-      # get the directories listed in $shlibpath_var
+-      eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+-    else
+-      libsearch_path=
+-    fi
+-    # now prepend the system-specific ones
+-    eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\"
+-    
+     avoid_version=no
      dlfiles=
-@@ -760,13 +759,18 @@
+     dlprefiles=
+@@ -674,9 +666,7 @@
+     export_symbols=
+     generated=
+     hardcode_libdirs=
+-    finalize_hardcode_libdirs=
+     libobjs=
+-    link_against_libtool_libs=
+     ltlibs=
+     module=no
+     objs=
+@@ -688,7 +678,6 @@
+     xrpath=
+     perm_rpath=
+     temp_rpath=
+-    finalize_rpath=
+     thread_safe=no
+     vinfo=
+@@ -714,13 +703,13 @@
+     while test $# -gt 0; do
+       arg="$1"
+       shift
++      link_command="$link_command $arg"
+       # If the previous option needs an argument, assign it.
+       if test -n "$prev"; then
+       case "$prev" in
+       output)
+         compile_command="$compile_command @OUTPUT@"
+-        finalize_command="$finalize_command @OUTPUT@"
+         ;;
+       esac
+@@ -729,7 +718,6 @@
+         if test "$preload" = no; then
+           # Add the symbol object into the linking commands.
+           compile_command="$compile_command @SYMFILE@"
+-          finalize_command="$finalize_command @SYMFILE@"
+           preload=yes
+         fi
+         case "$arg" in
+@@ -778,7 +766,6 @@
+       -all-static)
+       if test -n "$link_static_flag"; then
+         compile_command="$compile_command $link_static_flag"
+-        finalize_command="$finalize_command $link_static_flag"
+       fi
+       continue
+       ;;
+@@ -815,7 +802,6 @@
+         if test "$preload" = no; then
+           # Add the symbol object into the linking commands.
+           compile_command="$compile_command @SYMFILE@"
+-          finalize_command="$finalize_command @SYMFILE@"
+           preload=yes
+         fi
+       fi
+@@ -832,32 +818,25 @@
  
        -L*)
        dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'`
 +      # We need an absolute path.
        case "$dir" in
-       /* | [A-Za-z]:[/\\]*)
-         # Add the corresponding hardcode_libdir_flag, if it is not identical.
-         ;;
+-      /* | [A-Za-z]:[/\\]*)
+-        # Add the corresponding hardcode_libdir_flag, if it is not identical.
+-        ;;
++      /* | [A-Za-z]:[/\\]*) ;;
        *)
 -        $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2
 -        exit 1
+-        ;;
+-      esac
+-      deplibs="$deplibs $arg"
+-      lib_search_path="$lib_search_path `expr $arg : '-L\(.*\)'`"
+-      case "$host" in
+-      *-*-cygwin* | *-*-mingw* | *-*-os2*)
+-        dllsearchdir="`expr $arg : '-L\(.*\)'`"
+-        dllsearchdir=`cd "$dllsearchdir" && pwd || echo "$dllsearchdir"`
+-        if test -n "$dllsearchpath"; then
+-          dllsearchpath="$dllsearchpath:$dllsearchdir"
+-        else
+-          dllsearchpath="$dllsearchdir"
 +        absdir=`cd "$dir" && pwd`
 +        if test -z "$absdir"; then
 +          $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
 +          exit 1
-+        fi
-+        arg="-L$absdir"
-         ;;
-       esac
-       deplibs="$deplibs $arg"
-@@ -783,11 +787,13 @@
          fi
++        dir="$absdir"
          ;;
        esac
++      deplibs="$deplibs -L$dir"
 +      continue
        ;;
  
        -l*)
        deplibs="$deplibs $arg"
-       compile_dependencylibs="$compile_dependencylibs $arg"
 +      continue
        ;;
  
        -module)
-@@ -889,6 +895,7 @@
+@@ -902,7 +881,6 @@
+       # If we have no pic_flag, then this is the same as -all-static.
+       if test -z "$pic_flag" && test -n "$link_static_flag"; then
+         compile_command="$compile_command $link_static_flag"
+-        finalize_command="$finalize_command $link_static_flag"
+       fi
+       continue
+       ;;
+@@ -919,7 +897,7 @@
+       # Some other compiler flag.
+       -* | +*)
+-      # Unknown arguments in both finalize_command and compile_command need
++      # Unknown arguments in compile_command need
+       # to be aesthetically quoted because they are evaled later.
+       arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+       case "$arg" in
+@@ -974,6 +952,7 @@
        # it will not redefine variable installed.
        installed=yes
  
-+      # Read in the .la file
++      # Read the .la file
        # If there is no directory component, then add one.
        case "$arg" in
        */* | *\\*) . $arg ;;
-@@ -938,10 +945,7 @@
+@@ -991,9 +970,6 @@
+         exit 1
+       fi
+-      # Find the relevant object directory and library name.
+-      name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
+-
+       if test "X$installed" = Xyes; then
+         dir="$libdir"
+       else
+@@ -1005,28 +981,6 @@
+         fi
+       fi
+-      if test -n "$dependency_libs"; then
+-        # Extract -R from dependency_libs
+-        temp_deplibs=
+-        for deplib in $dependency_libs; do
+-          case "$deplib" in
+-          -R*) xrpath="$xrpath "`echo "X$deplib" | $Xsed -e 's/^-R//'`;;
+-          *) temp_deplibs="$temp_deplibs $deplib";;
+-          esac
+-        done
+-        dependency_libs="$temp_deplibs"
+-      fi
+-
+-      if test -z "$libdir"; then
+-        # It is a libtool convenience library, so add in its objects.
+-        convenience="$convenience $dir/$old_library"
+-        old_convenience="$old_convenience $dir/$old_library"
+-        deplibs="$deplibs$dependency_libs"
+-        compile_command="$compile_command $dir/$old_library$dependency_libs"
+-        finalize_command="$finalize_command $dir/$old_library$dependency_libs"
+-        continue
+-      fi
+-
+       # This library was specified with -dlopen.
+       if test "$prev" = dlfiles; then
+         dlfiles="$dlfiles $arg"
+@@ -1035,10 +989,7 @@
            # we need to preload.
            prev=dlprefiles
          else
@@ -136,15 +252,10 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
            prev=
            continue
          fi
-@@ -957,155 +961,28 @@
-           dlprefiles="$dlprefiles $dir/$linklib"
-         fi
+@@ -1056,219 +1007,28 @@
          prev=
-+      else
-+        # FIXME: remove this sometime in the future.
-+        $echo "$modename: linking against .la files is obsolete" 1>&2
        fi
--
 -      if test "$build_libtool_libs" = yes && test -n "$library_names"; then
 -        link_against_libtool_libs="$link_against_libtool_libs $arg"
 -        if test -n "$shlibpath_var"; then
@@ -157,6 +268,21 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
 -
 -        # This is the magic to use -rpath.
 -        if test -n "$hardcode_libdir_flag_spec"; then
+-          saved_libdir="$libdir"
+-          libdir="$dir"
+-
+-          # We need an absolute path.
+-          case "$libdir" in
+-          /* | [A-Za-z]:[/\\]*) ;;
+-          *)
+-            absdir=`cd "$libdir" && pwd`
+-            if test -z "$absdir"; then
+-              $echo "$modename: cannot determine absolute directory name of \`$libdir'" 1>&2
+-            else
+-              libdir="$absdir"
+-            fi
+-            ;;
+-          esac
 -          if test -n "$hardcode_libdir_separator"; then
 -            if test -z "$hardcode_libdirs"; then
 -              # Put the magic libdir with the hardcode flag.
@@ -179,13 +305,53 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
 -            eval flag=\"$hardcode_libdir_flag_spec\"
 -
 -            compile_command="$compile_command $flag"
+-          fi
+-
+-          libdir="$saved_libdir"
+-          if test -n "$hardcode_libdir_separator"; then
+-            if test -z "$finalize_hardcode_libdirs"; then
+-              # Put the magic libdir with the hardcode flag.
+-              finalize_hardcode_libdirs="$libdir"
+-              libdir="@HARDCODE_LIBDIRS@"
+-            else
+-              # Just accumulate the unique libdirs.
+-              case "$hardcode_libdir_separator$finalize_hardcode_libdirs$hardcode_libdir_separator" in
+-              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+-                ;;
+-              *)
+-                finalize_hardcode_libdirs="$finalize_hardcode_libdirs$hardcode_libdir_separator$libdir"
+-                ;;
+-              esac
+-              libdir=
+-            fi
+-          fi
+-
+-          if test -n "$libdir"; then
+-            eval flag=\"$hardcode_libdir_flag_spec\"
+-
 -            finalize_command="$finalize_command $flag"
 -          fi
+-          # libdir is also use after "$hardcode_action" case
+-          libdir="$saved_libdir"
 -        elif test -n "$runpath_var"; then
 -          # Do the same for the permanent run path.
+-          case "$dir" in
+-          /* | [A-Za-z]:[/\\]*) absdir="$dir";;
+-          *)
+-            absdir=`cd "$dir" && pwd`
+-            if test -z "$absdir"; then
+-              $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
+-              absdir="$dir"
+-            fi
+-            ;;
+-          esac
 -          case "$perm_rpath " in
+-          *" $absdir "*) ;;
+-          *) perm_rpath="$perm_rpath $absdir" ;;
+-          esac
+-          case "$finalize_perm_rpath " in
 -          *" $libdir "*) ;;
--          *) perm_rpath="$perm_rpath $libdir" ;;
+-          *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
 -          esac
 -        fi
 -
@@ -195,9 +361,9 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
 -        immediate | unsupported)
 -          if test "$hardcode_direct" = no; then
 -            compile_command="$compile_command $dir/$linklib"
+-            deplibs="$deplibs $dir/$linklib"
 -            case "$host" in
--            *-*-cygwin32* | *-*-mingw32* | *-*-os2*)
--              compile_dependencylibs="$compile_dependencylibs -L$dir -l$name"
+-            *-*-cygwin* | *-*-mingw* | *-*-os2*)
 -              dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
 -              if test -n "$dllsearchpath"; then
 -                dllsearchpath="$dllsearchpath:$dllsearchdir"
@@ -213,9 +379,11 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
 -              ;;
 -            esac
 -            compile_command="$compile_command -L$dir -l$name"
+-            deplibs="$deplibs -L$dir -l$name"
 -          elif test "$hardcode_shlibpath_var" = no; then
 -            compile_shlibpath="$compile_shlibpath$dir:"
 -            compile_command="$compile_command -l$name"
+-            deplibs="$deplibs -l$name"
 -          else
 -            lib_linked=no
 -          fi
@@ -237,31 +405,23 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
 -
 -          if test "$hardcode_direct" = yes; then
 -            compile_command="$compile_command $dir/$linklib"
+-            deplibs="$deplibs $dir/$linklib"
 -          elif test "$hardcode_minus_L" = yes; then
 -            compile_command="$compile_command -L$dir -l$name"
+-            deplibs="$deplibs -L$dir -l$name"
 -          elif test "$hardcode_shlibpath_var" = yes; then
 -            compile_shlibpath="$compile_shlibpath$dir:"
 -            compile_command="$compile_command -l$name"
+-            deplibs="$deplibs -l$name"
 -          else
 -            lib_linked=no
 -          fi
 -          ;;
 -
-+ 
-+      dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-+      if test "X$dir" != "X$arg"; then
-+        # We need an absolute path.
-+        case "$dir" in
-+        /* | [A-Za-z]:[/\\]*) ;;
-         *)
+-        *)
 -          lib_linked=no
-+          dir=`cd "$dir" && pwd`
-+          if test -z "$dir"; then
-+            $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
-+            exit 1
-+          fi
-           ;;
-         esac
+-          ;;
+-        esac
 -
 -        if test "$lib_linked" != yes; then
 -          $echo "$modename: configuration error: unsupported hardcode properties"
@@ -284,8 +444,17 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
 -        # Transform directly to old archives if we don't build new libraries.
 -        if test -n "$pic_flag" && test -z "$old_library"; then
 -          $echo "$modename: cannot find static library for \`$arg'" 1>&2
--          exit 1
--        fi
++      dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
++      test "X$dir" = "X$arg" && dir="."
++      # We need an absolute path.
++      case "$dir" in
++      /* | [A-Za-z]:[/\\]*) ;;
++      *)
++        absdir=`cd "$dir" && pwd`
++        if test -z "$absdir"; then
++          $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
+           exit 1
+         fi
 -
 -        # Here we assume that one of hardcode_direct or hardcode_minus_L
 -        # is not unsupported.  This is valid on all known static and
@@ -303,14 +472,30 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
 -      # Add in any libraries that this one depends upon.
 -      compile_command="$compile_command$dependency_libs"
 -      finalize_command="$finalize_command$dependency_libs"
-+        deplibs="$deplibs -L$dir"
-+      fi 
-+      # FIXME: this will fail for modules without a 'lib' prefix!
-+      deplibs="$deplibs -l$name"
++        dir="$absdir"
++        ;;
++      esac
++      name=`echo "X$arg" | $Xsed -e 's%^.*/%%'`
++      deplibs="$deplibs $dir/$name"
        continue
        ;;
  
-@@ -1145,6 +1022,25 @@
+       # Some other compiler argument.
+       *)
+-      # Unknown arguments in both finalize_command and compile_command need
++      # Unknown arguments in compile_command need
+       # to be aesthetically quoted because they are evaled later.
+       arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+       case "$arg" in
+@@ -1282,7 +1042,6 @@
+       # Now actually substitute the argument into the commands.
+       if test -n "$arg"; then
+       compile_command="$compile_command $arg"
+-      finalize_command="$finalize_command $arg"
+       fi
+     done
+@@ -1302,6 +1061,35 @@
      outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
      libobjs_save="$libobjs"
  
@@ -330,21 +515,86 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
 +      esac
 +    done
 +    deplibs="$newdeplibs"
-+    eval sys_search_path=\"$sys_lib_search_path\"
-+    lib_search_path="$lib_search_path $sys_search_path"
++
++    if test -n "$shlibpath_var"; then
++      # get the directories listed in $shlibpath_var
++      eval shlib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
++    else
++      shlib_search_path=
++    fi
++    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
++    lib_search_path="$lib_search_path $sys_lib_search_path $shlib_search_path"
++
++    # Quote the link command for shipping.
++    link_command=`$echo "X$link_command" | $Xsed -e "$sed_quote_subst"`
 +
      case "$output" in
      "")
        $echo "$modename: you must specify an output file" 1>&2
-@@ -1401,7 +1297,6 @@
+@@ -1310,11 +1098,6 @@
+       ;;
+     *.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
+@@ -1388,12 +1171,6 @@
+       exit 1
+       fi
+-      # How the heck are we supposed to write a wrapper for a shared library?
+-      if test -n "$link_against_libtool_libs"; then
+-               $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 for libtool libraries" 1>&2
+       fi
+@@ -1402,7 +1179,20 @@
+       if test $# -gt 2; then
+       $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
+       fi
+-      install_libdir="$2"
++      dir="$2"
++      # We need an absolute path.
++      case "$dir" in
++      /* | [A-Za-z]:[/\\]*) ;;
++      *)
++      absdir=`cd "$dir" && pwd`
++      if test -z "$absdir"; then
++        $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
++      else
++        dir="$absdir"
++      fi
++      ;;
++      esac
++      install_libdir="$dir"
+       oldlibs=
+       if test -z "$rpath"; then
+@@ -1413,7 +1203,6 @@
+         build_libtool_libs=convenience
+         build_old_libs=yes
+       fi
+-      dependency_libs="$deplibs"
+       if test -n "$vinfo"; then
+         $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
+@@ -1561,7 +1350,6 @@
          allow_undefined_flag="$no_undefined_flag"
        fi
  
 -      dependency_libs="$deplibs"
        case "$host" in
-       *-*-cygwin32* | *-*-mingw32* | *-*-os2*)
+       *-*-cygwin* | *-*-mingw* | *-*-os2*)
          # these systems don't actually have a c library (as such)!
-@@ -1434,6 +1329,206 @@
+@@ -1594,6 +1382,322 @@
        oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
        fi
  
@@ -358,113 +608,225 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
 +      release_save=$release
 +      versuffix_save=$versuffix
 +      major_save=$major
-+       
++      
++      #################
++      # ILD code
++      #################
++      $echo "deplibs:     $deplibs"
++      $echo "search path: $lib_search_path"
++
++      olddeplibs="$deplibs"
++      
 +      # Find libtool libraries and add their dependencies and directories
-+      newdeplibs=      # libraries to link (uninstalled library)
-+      inst_deplibs=    # libraries to link (installed library)
-+      alldeplibs=      # all dependency libraries (uninstalled library)
-+      inst_alldeplibs= # all dependency libraries (installed library)
-+      remove_path=     # paths that contain uninstalled libtool libraries
++      deplibs=         # libraries to link (used in archive_cmds)
++      alldependency_libs= # all dependency libraries
++      uninst_path=     # paths that contain uninstalled libtool libraries
 +      new_lib_search_path=
-+      for deplib in $deplibs; do
-+      newdeplibs="$newdeplibs $deplib"
-+      inst_deplibs="$inst_deplibs $deplib"
-+      alldeplibs="$alldeplibs $deplib"
-+      inst_alldeplibs="$inst_alldeplibs $deplib"
-+      found=
-+      name="`expr $deplib : '-l\(.*\)'`"
-+      # If $name is empty we are operating on a -L argument.
-+      if test -n "$name"; then
++      for deplib in $olddeplibs; do
++      lib=
++      case "$deplib" in
++      -L*)
++        $echo "$deplib is a directory"
++        new_lib_search_path="$new_lib_search_path `expr $deplib : '-L\(.*\)'`"
++        deplibs="$deplibs $deplib"
++        alldependency_libs="$alldependency_libs $deplib"
++        continue
++        ;;
++      -l*)
++        name="`expr $deplib : '-l\(.*\)'`"
 +        libname=`eval \\$echo \"$libname_spec\"`
++        found=no
 +        for searchdir in $lib_search_path; do
 +          # Search the libtool library
-+          if test -f "$searchdir/$libname.la"; then
-+            lib="$searchdir/$libname.la"
-+            dlname=
-+            libdir=
-+            library_names=
-+            old_library=
-+            inst_dependency_libs=
++          lib="$searchdir/$libname.la"
++          if test -f "$lib"; then
++            found=yes
++            break
++          fi
++        done
++        if test "$found" != yes; then
++          $echo "$deplib is not a libtool library"
++          deplibs="$deplibs $deplib"
++          alldependency_libs="$alldependency_libs $deplib"
++          continue
++        fi
++        ;;
++      *)
++        lib="$deplib"
++        if test -f "$lib"; then :
++        else
++          $echo "$modename: cannot find the library \`$lib'" 1>&2
++          exit 1
++        fi
++        ;;
++      esac
++      $echo "$deplib is a libtool library"
++      dlname=
++      libdir=
++      library_names=
++      old_library=
 +
-+            # Check to see that this really is a libtool archive.
-+            if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-+            else
-+              $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-+              exit 1
-+            fi
++      # Check to see that this really is a libtool archive.
++      if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
++      else
++        $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
++        exit 1
++      fi
 +
-+            # If the library was installed with an old release of libtool,
-+            # it will not redefine variable installed.
-+            installed=yes
++      # If the library was installed with an old release of libtool,
++      # it will not redefine variable installed.
++      installed=yes
 +
-+            # Read in the .la file
-+            . $lib
++      # Read the .la file
++      . $lib
 +
-+            # Get the name of the library we link against.
-+            linklib=
-+            for l in $old_library $library_names; do
-+              linklib="$l"
-+            done
++      # Get the name of the library we link against.
++      linklib=
++      for l in $old_library $library_names; do
++        linklib="$l"
++      done
 +
-+            if test -z "$linklib"; then
-+              $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-+              exit 1
-+            fi
++      if test -z "$linklib"; then
++        $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
++        exit 1
++      fi
 +
-+            if test "$build_libtool_libs" = yes; then
-+              if test -z "$library_names" && test "$deplibs_check_method" != pass_all; then
-+                echo
-+                echo "*** Warning: This library needs some functionality provided by $libname."
-+                echo "*** I have the capability to make that library automatically link in when"
-+                echo "*** you link to this library.  But I can only do this if you have a"
-+                echo "*** shared version of the library, which you do not appear to have."
-+                break
-+              fi
-+              ############################
-+              # TODO: hardcode libraries
-+              ############################          
++      if test "X$installed" = Xyes; then
++        dir="$libdir"
++        case "$dir" in
++        /* | [A-Za-z]:[/\\]*) absdir="$dir";;
++        *)
++          absdir=`cd "$dir" && pwd`
++          if test -z "$absdir"; then
++            $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
++            exit 1
++          fi
++          dir="$absdir"
++          ;;
++        esac
++      else
++        searchdir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
++        dir="$searchdir/$objdir"
++        # Remove this search path later
++        uninst_path="$uninst_path $searchdir"
++      fi
++
++      # Find the relevant object directory and library name.
++      name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
++      # FIXME: libraries without lib prefix require direct hardcoding
++
++      if test -z "$libdir"; then
++        # It is a libtool convenience library.
++        $echo "$modename: cannot link libtool libraries against convenience libraries" 1>&2
++        exit 1
++      fi
++
++      if test "$build_libtool_libs" = yes && test -n "$library_names"; then
++        # This is the magic to use -rpath.
++        if test -n "$hardcode_libdir_flag_spec"; then
++          saved_libdir="$libdir"
++          test $link_install = no && libdir="$dir"
++
++          if test -n "$hardcode_libdir_separator"; then
++            if test -z "$hardcode_libdirs"; then
++              # Put the magic libdir with the hardcode flag.
++              hardcode_libdirs="$libdir"
++              libdir="@HARDCODE_LIBDIRS@"
++            else
++              # Just accumulate the unique libdirs.
++              case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
++              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
++                ;;
++              *)
++                hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
++                ;;
++              esac
++              libdir=
 +            fi
-+            
-+            if test "X$installed" = Xyes; then
-+              dir="$libdir"
++          fi
++          if test -n "$libdir"; then
++            eval flag=\"$hardcode_libdir_flag_spec\"
++  
++            deplibs="$deplibs $flag"
++          fi
++          # libdir is also use after "$hardcode_action" case
++          libdir="$saved_libdir"
++        fi
++          
++        if test $link_install = no; then
++          lib_linked=yes
++          case "$hardcode_action" in
++          immediate | unsupported)
++            if test "$hardcode_direct" = no; then
++              deplibs="$deplibs $dir/$linklib"
++            elif test "$hardcode_minus_L" = no; then
++              case "$host" in
++              *-*-sunos*)
++                shlibpath="$shlibpath$dir:"
++                ;;
++              esac
++              deplibs="$deplibs -L$dir -l$name"
++            elif test "$hardcode_shlibpath_var" = no; then
++              shlibpath="$shlibpath$dir:"
++              deplibs="$deplibs -l$name"
 +            else
-+              dir="$searchdir/$objdir"
-+              # Remove this search path later
-+              remove_path="$remove_path $searchdir"
++              lib_linked=no
 +            fi
++            ;;
++          relink)
++            if test "$hardcode_direct" = yes; then
++              deplibs="$deplibs $dir/$linklib"
++            elif test "$hardcode_minus_L" = yes; then
++              deplibs="$deplibs -L$dir -l$name"
++            elif test "$hardcode_shlibpath_var" = yes; then
++              shlibpath="$shlibpath$dir:"
++              deplibs="$deplibs -l$name"
++            else
++              lib_linked=no
++            fi
++            ;;
++          *)
++            lib_linked=no
++            ;;
++          esac
 +
-+            # Link against this library
-+            newdeplibs="$newdeplibs -L$dir"
-+            alldeplibs="$alldeplibs -L$dir $dependency_libs"
-+            new_lib_search_path="$new_lib_search_path $dir"
-+            
-+            case " $sys_search_path " in 
-+            *" $libdir "*) ;;
-+            *)
-+              # Add path only if it isn't a system search path
-+              inst_deplibs="$inst_deplibs -L$libdir"
-+              inst_alldeplibs="$inst_alldeplibs -L$libdir"
-+              ;;
-+            esac
-+
-+            # Set to dependency_libs if not defined
-+            test -z "$inst_dependency_libs" && inst_dependency_libs="$dependency_libs"
-+            inst_alldeplibs="$inst_alldeplibs $inst_dependency_libs"
-+
-+            found=yes
-+            break
++          if test "$lib_linked" != yes; then
++            $echo "$modename: configuration error: unsupported hardcode properties"
++            exit 1
 +          fi
-+        done
-+        if test -z "$found"; then
-+          # Not a libtool library
-+          $echo "$deplib is a not libtool library"
 +        else
-+          $echo "$deplib is a libtool library"
++          # Install command for both is simple: just hardcode it.
++          if test "$hardcode_direct" = yes; then
++            deplibs="$deplibs $libdir/$linklib"
++          elif test "$hardcode_minus_L" = yes; then
++            deplibs="$deplibs -L$libdir -l$name"
++          elif test "$hardcode_shlibpath_var" = yes; then
++            shlibpath="$shlibpath$libdir:"
++            deplibs="$deplibs -l$name"
++          else
++            # We cannot seem to hardcode it, guess we'll fake it.
++            deplibs="$deplibs -L$libdir -l$name"
++          fi
 +        fi
++      elif test "$build_libtool_libs" = yes && test "$deplibs_check_method" != pass_all; then
++        echo
++        echo "*** Warning: This library needs some functionality provided by $libname."
++        echo "*** I have the capability to make that library automatically link in when"
++        echo "*** you link to this library.  But I can only do this if you have a"
++        echo "*** shared version of the library, which you do not appear to have."
++        continue
 +      else
-+        $echo "$deplib is a directory"
-+        new_lib_search_path="$new_lib_search_path `expr $deplib : '-L\(.*\)'`"
++        # Check for old archives if we don't build new libraries.
++        if test -n "$pic_flag" && test -z "$old_library"; then
++          $echo "$modename: cannot find static library for \`$lib'" 1>&2
++          exit 1
++        fi
 +      fi
++
++      new_lib_search_path="$new_lib_search_path $dir"
++
++      # Link against this library
++      alldependency_libs="$alldependency_libs $dependency_libs $lib"
 +      done
 +
 +      # Make sure lib_search_path contains only unique directories.
@@ -475,68 +837,72 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
 +      *) lib_search_path="$lib_search_path $dir" ;;
 +      esac
 +      done
-+      lib_search_path="$lib_search_path $sys_search_path"
-+      
-+      # Make sure deplibs contains only unique libraries and directories.
-+      deplibs=
-+      for deplib in $newdeplibs; do
-+      case "$deplibs " in
-+      *" $deplib "*) ;;
-+      *) deplibs="$deplibs $deplib" ;;
-+      esac
-+      done
-+      
-+      # Make sure inst_deplibs contains only unique libraries and directories.
-+      newinst_deplibs=
-+      for deplib in $inst_deplibs; do
-+      case "$newinst_deplibs " in
-+      *" $deplib "*) ;;
-+      *) newinst_deplibs="$newinst_deplibs $deplib" ;;
-+      esac
-+      done
-+      inst_deplibs=$newinst_deplibs
++      lib_search_path="$lib_search_path $sys_lib_search_path"
 +      
-+      # Make sure alldeplibs contains only unique libraries and directories.
-+      newalldeplibs=
-+      for deplib in $alldeplibs; do
-+      case "$newalldeplibs " in
++      # Make sure alldependency_libs contains only unique libraries and directories.
++      dependency_libs=
++      for deplib in $alldependency_libs; do
++      case "$dependency_libs " in
 +      *" $deplib "*) ;;
-+      *) newalldeplibs="$newalldeplibs $deplib" ;;
++      *) dependency_libs="$dependency_libs $deplib" ;;
 +      esac
 +      done
-+      alldeplibs=$newalldeplibs
 +      
-+      # Make sure inst_alldeplibs contains only unique libraries and directories.
-+      newinst_alldeplibs=
-+      for deplib in $inst_alldeplibs; do
-+      case "$newinst_alldeplibs " in
-+      *" $deplib "*) ;;
-+      *) newinst_alldeplibs="$newinst_alldeplibs $deplib" ;;
-+      esac
-+      done
-+      inst_alldeplibs=$newinst_alldeplibs
-+
 +      # Eliminate all temporary directories.
-+      for path in $remove_path; do
++      for path in $uninst_path; do
 +      lib_search_path=`echo "$lib_search_path" | sed -e 's% $path % %g'`
 +      deplibs=`echo "$deplibs" | sed -e 's% -L$path % %g'`
-+      inst_deplibs=`echo "$inst_deplibs" | sed -e 's% -L$path % %g'`
-+      alldeplibs=`echo "$alldeplibs" | sed -e 's% -L$path % %g'`
-+      inst_alldeplibs=`echo "$inst_alldeplibs" | sed -e 's% -L$path % %g'`
++      dependency_libs=`echo "$dependency_libs" | sed -e 's% -L$path % %g'`
 +      done
 +      
-+      $echo "noinst deplibs:     $deplibs"
-+      $echo "inst deplibs:       $inst_deplibs"
-+      $echo "noinst all deplibs: $alldeplibs"
-+      $echo "inst all deplibs:   $inst_alldeplibs"
-+      $echo "search path:       '$lib_search_path'"
-+
-+      if test -n "$rpath"; then
-+      # Building not a libtool convenience library.
-+      dependency_libs="$alldeplibs"
-+      inst_dependency_libs="$inst_alldeplibs"
++      $echo "deplibs:         $deplibs"
++      $echo "dependency_libs: $dependency_libs"
++      $echo "search path:     $lib_search_path"
++
++      if test -n "$xrpath"; then
++      # If the user specified any rpath flags, then add them.
++      temp_xrpath=
++      for libdir in $xrpath; do
++        temp_xrpath="$temp_xrpath -R$libdir"
++        if test -n "$hardcode_libdir_flag_spec"; then
++          saved_libdir="$libdir"
++          if test -n "$hardcode_libdir_separator"; then
++            if test -z "$hardcode_libdirs"; then
++              # Put the magic libdir with the hardcode flag.
++              hardcode_libdirs="$libdir"
++              libdir="@HARDCODE_LIBDIRS@"
++            else
++              # Just accumulate the unique libdirs.
++              case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
++              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
++                ;;
++              *)
++                hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
++                ;;
++              esac
++              libdir=
++            fi
++          fi
++
++          if test -n "$libdir"; then
++            eval flag=\"$hardcode_libdir_flag_spec\"
++
++            deplibs="$deplibs $flag"
++          fi
++
++          libdir="$saved_libdir"
++        fi
++      done
++      dependency_libs="$temp_xrpath $dependency_libs"
++      fi
++
++      # Substitute the hardcoded libdirs into the compile commands.
++      if test -n "$hardcode_libdir_separator"; then
++      deplibs=`$echo "X$deplibs" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
 +      fi
 +
++      $echo "deplibs:     $deplibs"
++      
 +      # Restore the variables
 +      versuffix=$versuffix_save
 +      major=$major_save
@@ -550,8 +916,20 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
 +
        if test "$build_libtool_libs" = yes; then
        # Transform deplibs into only deplibs that can be linked in shared.
-       ## Gordon: Do you check for the existence of the libraries in deplibs
-@@ -1777,6 +1872,294 @@
+       name_save=$name
+@@ -1887,11 +1991,6 @@
+       ;;
+     *.lo | *.o | *.obj)
+-      if test -n "$link_against_libtool_libs"; then
+-      $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 for objects" 1>&2
+       fi
+@@ -1991,11 +2090,349 @@
        $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
        fi
  
@@ -559,44 +937,104 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
 +      $echo "search path: $lib_search_path"
 +
 +      # Find libtool libraries and add their dependencies/rpaths
-+      newdeplibs=
-+      for deplib in $deplibs; do
-+      newdeplibs="$newdeplibs $deplib"
-+      name="`expr $deplib : '-l\(.*\)'`"
-+      # If $name is empty we are operating on a -L argument.
-+      if test -n "$name"; then
++      olddeplibs="$deplibs"
++      deplibs=
++      new_lib_search_path=
++      for deplib in $olddeplibs; do
++      lib=
++      case "$deplib" in
++      -L*)
++        $echo "$deplib is a directory"
++        new_lib_search_path="$new_lib_search_path `expr $deplib : '-L\(.*\)'`"
++        deplibs="$deplibs $deplib"
++        continue
++        ;;
++      -l*)
++        name="`expr $deplib : '-l\(.*\)'`"
 +        libname=`eval \\$echo \"$libname_spec\"`
++        found=no
 +        for searchdir in $lib_search_path; do
-+          if test -f "$searchdir/$libname.la"; then
-+            lib="$searchdir/$libname.la"
-+            dlname=
-+            libdir=
-+            library_names=
-+            old_library=
-+            inst_dependency_libs=
++          # Search the libtool library
++          lib="$searchdir/$libname.la"
++          if test -f "$lib"; then
++            found=yes
++            break
++          fi
++        done
++        if test "$found" != yes; then
++          $echo "$deplib is not a libtool library"
++          deplibs="$deplibs $deplib"
++          continue
++        fi
++        ;;
++      *)
++        lib="$deplib"
++        if test -f "$lib"; then :
++        else
++          $echo "$modename: cannot find the library \`$lib'" 1>&2
++          exit 1
++        fi
++        ;;
++      esac
++      $echo "$deplib is a libtool library"
++      dlname=
++      libdir=
++      library_names=
++      old_library=
 +
-+            # Check to see that this really is a libtool archive.
-+            if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-+            else
-+              $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-+              exit 1
-+            fi
++      # Check to see that this really is a libtool archive.
++      if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
++      else
++        $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
++        exit 1
++      fi
 +
-+            # Read in the .la file
-+            # If there is no directory component, then add one.
-+            . $lib
++      # If the library was installed with an old release of libtool,
++      # it will not redefine variable installed.
++      installed=yes
 +
-+            if test "$build_libtool_libs" = no || test "$deplibs_check_method" = none; then
-+              # Add in any libraries that this one depends upon.
-+              newdeplibs="$newdeplibs$dependency_libs"
-+            fi
++      # Read the .la file
++      . $lib
 +
-+            break
-+          fi
-+        done
++      # Get the name of the library we link against.
++      linklib=
++      for l in $old_library $library_names; do
++        linklib="$l"
++      done
++
++      if test -z "$linklib"; then
++        $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
++        exit 1
++      fi
++
++      new_lib_search_path="$new_lib_search_path $dir"
++      deplibs="$deplibs $lib"
++
++      if test "$build_libtool_libs" = no || test "$deplibs_check_method" = none; then
++        # Add in any libraries that this one depends upon.
++        deplibs="$deplibs $dependency_libs"
 +      fi
-+      done
 +      
++      for dir in $dependency_libs; do
++        case "$dir" in
++        -L*)
++          new_lib_search_path="$new_lib_search_path `expr $dir : '-L\(.*\)'`"
++          ;;
++        *) ;;
++        esac
++      done
++      done
++
++      # Make sure lib_search_path contains only unique directories.
++      lib_search_path=
++      for dir in $new_lib_search_path; do
++      case "$lib_search_path " in
++      *" $dir "*) ;;
++      *) lib_search_path="$lib_search_path $dir" ;;
++      esac
++      done
++      lib_search_path="$lib_search_path $sys_lib_search_path"
++      
 +      # Make sure deplibs contains only unique libraries and directories.
 +      deplibs=
 +      for deplib in $newdeplibs; do
@@ -609,6 +1047,7 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
 +
 +      # Find libtool libraries and add their directories
 +      newdeplibs=
++      link_against_libtool_libs=
 +      for deplib in $deplibs; do
 +      found=
 +      name="`expr $deplib : '-l\(.*\)'`"
@@ -666,7 +1105,6 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
 +              convenience="$convenience $dir/$old_library"
 +              old_convenience="$old_convenience $dir/$old_library"
 +              compile_command="$compile_command $dir/$old_library"
-+              finalize_command="$finalize_command $dir/$old_library"
 +              continue
 +            fi
 +
@@ -704,7 +1142,6 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
 +                  eval flag=\"$hardcode_libdir_flag_spec\"
 +
 +                  compile_command="$compile_command $flag"
-+                  finalize_command="$finalize_command $flag"
 +                fi
 +              elif test -n "$runpath_var"; then
 +                # Do the same for the permanent run path.
@@ -719,17 +1156,6 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
 +              immediate | unsupported)
 +                if test "$hardcode_direct" = no; then
 +                  compile_command="$compile_command $dir/$linklib"
-+                  case "$host" in
-+                  *-*-cygwin32* | *-*-mingw32* | *-*-os2*)
-+                    compile_dependencylibs="$compile_dependencylibs -L$dir -l$name"
-+                    dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
-+                    if test -n "$dllsearchpath"; then
-+                      dllsearchpath="$dllsearchpath:$dllsearchdir"
-+                    else
-+                      dllsearchpath="$dllsearchdir"
-+                    fi
-+                    ;;
-+                  esac
 +                elif test "$hardcode_minus_L" = no; then
 +                  case "$host" in
 +                  *-*-sunos*)
@@ -781,17 +1207,21 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
 +                exit 1
 +              fi
 +
-+              # Finalize command for both is simple: just hardcode it.
++              else
++
++              # Install command for both is simple: just hardcode it.
 +              if test "$hardcode_direct" = yes; then
-+                finalize_command="$finalize_command $libdir/$linklib"
++                compile_command="$compile_command $libdir/$linklib"
 +              elif test "$hardcode_minus_L" = yes; then
-+                finalize_command="$finalize_command -L$libdir -l$name"
++                compile_command="$compile_command -L$libdir -l$name"
 +              elif test "$hardcode_shlibpath_var" = yes; then
-+                finalize_shlibpath="$finalize_shlibpath$libdir:"
-+                finalize_command="$finalize_command -l$name"
++                compile_shlibpath="$compile_shlibpath$libdir:"
++                compile_command="$compile_command -l$name"
 +              else
 +                # We cannot seem to hardcode it, guess we'll fake it.
-+                finalize_command="$finalize_command -L$libdir -l$name"
++                compile_command="$compile_command -L$libdir -l$name"
++              fi
++              
 +              fi
 +            else
 +              # Transform directly to old archives if we don't build new libraries.
@@ -806,10 +1236,8 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
 +              if test "$hardcode_direct" != unsupported; then
 +                test -n "$old_library" && linklib="$old_library"
 +                compile_command="$compile_command $dir/$linklib"
-+                finalize_command="$finalize_command $dir/$linklib"
 +              else
 +                compile_command="$compile_command -L$dir -l$name"
-+                finalize_command="$finalize_command -L$dir -l$name"
 +              fi
 +            fi
 +
@@ -841,26 +1269,217 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
 +          
 +      # Add in any non-libtool libraries.
 +      compile_command="$compile_command $deplibs"
-+      finalize_command="$finalize_command $deplibs"
 +            
-       if test -n "$rpath"; then
+       if test -n "$rpath$xrpath"; then
        # If the user specified any rpath flags, then add them.
-       for libdir in $rpath; do
-@@ -2294,6 +2677,9 @@
- # Libraries that this one depends upon.
- dependency_libs='$dependency_libs'
-+# Libraries that this one depends upon (installed).
-+inst_dependency_libs='$inst_dependency_libs'
-+
- # Version information for $libname.
- current=$current
- age=$age
-@@ -2549,12 +2935,14 @@
+       for libdir in $rpath $xrpath; do
+         if test -n "$hardcode_libdir_flag_spec"; then
+           saved_libdir="$libdir"
++          test $link_install = no && libdir="$dir"
+           if test -n "$hardcode_libdir_separator"; then
+             if test -z "$hardcode_libdirs"; then
+               # Put the magic libdir with the hardcode flag.
+@@ -2021,38 +2458,11 @@
+           fi
+           libdir="$saved_libdir"
+-          if test -n "$hardcode_libdir_separator"; then
+-            if test -z "$finalize_hardcode_libdirs"; then
+-              # Put the magic libdir with the hardcode flag.
+-              finalize_hardcode_libdirs="$libdir"
+-              libdir="@HARDCODE_LIBDIRS@"
+-            else
+-              # Just accumulate the unique libdirs.
+-              case "$hardcode_libdir_separator$finalize_hardcode_libdirs$hardcode_libdir_separator" in
+-              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+-                ;;
+-              *)
+-                finalize_hardcode_libdirs="$finalize_hardcode_libdirs$hardcode_libdir_separator$libdir"
+-                ;;
+-              esac
+-              libdir=
+-            fi
+-          fi
+-
+-          if test -n "$libdir"; then
+-            eval flag=\"$hardcode_libdir_flag_spec\"
+-
+-            finalize_command="$finalize_command $flag"
+-          fi
+         elif test -n "$runpath_var"; then
+           case "$perm_rpath " in
+           *" $libdir "*) ;;
+           *) perm_rpath="$perm_rpath $libdir" ;;
+           esac
+-          case "$finalize_perm_rpath " in
+-          *" $libdir "*) ;;
+-          *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+-          esac
+         fi
+       done
+       fi
+@@ -2060,7 +2470,6 @@
+       # Substitute the hardcoded libdirs into the compile commands.
+       if test -n "$hardcode_libdir_separator"; then
+       compile_command=`$echo "X$compile_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
+-      finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$finalize_hardcode_libdirs%g"`
+       fi
+       output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
+@@ -2073,7 +2482,6 @@
+       if test -n "$libobjs" && test "$build_old_libs" = yes; then
+       # Transform all the library objects into standard objects.
+       compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+-      finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+       fi
+       if test "$export_dynamic" = yes || test -n "$dlfiles$dlprefiles" && test -n "$NM" && test -n "$global_symbol_pipe"; then
+@@ -2210,7 +2618,6 @@
+         # Transform the symbol file into the correct name.
+         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}%"`
+         ;;
+       *)
+         $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
+@@ -2227,13 +2634,11 @@
+       # 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 "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
+       # Replace the output file specification.
+       compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+-      finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+       # We have no uninstalled library dependencies, so finalize right now.
+       $show "$compile_command"
+@@ -2242,8 +2647,11 @@
+       fi
+       # Replace the output file specification.
+-      compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+-      finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'T%g'`
++      if test $link_install = no; then
++        compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
++      else
++        compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'T%g'`
++      fi
+       # Create the binary in the object directory, then wrap it.
+       if test ! -d $output_objdir; then
+@@ -2279,9 +2687,6 @@
+       if test -n "$compile_shlibpath"; then
+       compile_command="$shlibpath_var=\"$compile_shlibpath\$$shlibpath_var\" $compile_command"
+       fi
+-      if test -n "$finalize_shlibpath"; then
+-      finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+-      fi
+       if test -n "$runpath_var"; then
+         if test -n "$perm_rpath"; then
+@@ -2292,14 +2697,6 @@
+         done
+         compile_command="$runpath_var=\"$rpath\$$runpath_var\" $compile_command"
+       fi
+-        if test -n "$finalize_perm_rpath"; then
+-        # We should set the runpath_var.
+-        rpath=
+-        for dir in $finalize_perm_rpath; do
+-          rpath="$rpath$dir:"
+-        done
+-        finalize_command="$runpath_var=\"$rpath\$$runpath_var\" $finalize_command"
+-      fi
+       fi
+       if test "$hardcode_action" = relink; then
+@@ -2314,9 +2711,6 @@
+       # Now create the wrapper script.
+       $show "creating $output"
+-      # Quote the finalize command for shipping.
+-      finalize_command=`$echo "X$finalize_command" | $Xsed -e "$sed_quote_subst"`
+-
+       # Quote $echo for shipping.
+       if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
+       case "$0" in
+@@ -2363,7 +2757,8 @@
+ if test \"\$libtool_install_magic\" = \"$magic\"; then
+   # install mode needs the following variables:
+   link_against_libtool_libs='$link_against_libtool_libs'
+-  finalize_command=\"cd `pwd | sed -e $sed_quote_subst`; $finalize_command\"
++  link_command=\"$link_command\"
++  link_dir=\"`pwd | sed -e $sed_quote_subst`\"
+ else
+   # When we are sourced in execute mode, \$file and \$echo are already set.
+   if test \"\$libtool_execute_magic\" != \"$magic\"; then
+@@ -2428,14 +2823,6 @@
+ "
+       fi
+-      # fixup the dll searchpath if we need to.
+-      if test -n "$dllsearchpath"; then
+-        $echo >> $output "\
+-    # Add the dll search path components to the executable PATH
+-    PATH=$dllsearchpath:\$PATH
+-"
+-      fi
+-
+       $echo >> $output "\
+     if test \"\$libtool_execute_magic\" != \"$magic\"; then
+       # Run the actual program with our arguments.
+@@ -2542,14 +2929,6 @@
+       test "$build_old_libs" = yes && old_library="$libname.$libext"
+       $show "creating $output"
+-      if test -n "$xrpath"; then
+-      temp_xrpath=
+-      for libdir in $xrpath; do
+-        temp_xrpath="$temp_xrpath -R$libdir"
+-      done
+-      dependency_libs="$temp_xrpath $dependency_libs"
+-      fi
+-
+       # Only create the output if not a dry run.
+       if test -z "$run"; then
+       $echo > $output "\
+@@ -2577,7 +2956,10 @@
+ installed=no
+ # Directory that this library needs to be installed in:
+-libdir='$install_libdir'\
++libdir='$install_libdir'
++
++link_command=\"$link_command\"
++link_dir=\"`pwd | sed -e $sed_quote_subst`\"\
+ "
+       fi
+@@ -2823,12 +3205,32 @@
          IFS="$save_ifs"
        fi
  
 +      # TODO: relink if necessary
++      if test "$hardcode_action" = relink; then
++        if test "$finalize" = yes; then
++          $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2
++          finalize_command="cd $link_dir; $SHELL $0 -mode=link-install $link_command"
++          $show "$finalize_command"
++          if $run eval "$finalize_command"; then :
++          else
++            echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
++            continue
++          fi
++          file="$objdir/$file"T
++        else
++          $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2
++        fi
++      else
++        # Install the binary that we compiled earlier.
++        file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
++      fi
 +
        # Install the pseudo-library for information purposes.
        name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
@@ -868,26 +1487,47 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in
        $show "Creating $instname"
        $rm "$instname"
 -      sed 's/^installed=no$/installed=yes/' "$file" > "$instname"
-+      sed -e 's/^installed=no$/installed=yes/' -e 's/^dependency_libs=.*/dependency_libs=$inst_dependency_libs/' "$file" > "$instname"
++      sed -e 's/^installed=no$/installed=yes/' "$file" > "$instname"
        $show "$install_prog $instname $destdir/$name"
        $run eval "$install_prog $instname $destdir/$name" || exit $?
        $show "$rm $instname"
-diff -ruNd libtool/mdemo/Makefile.am libtool.new/mdemo/Makefile.am
---- libtool/mdemo/Makefile.am  Sun Jan 10 11:21:35 1999
-+++ libtool.new/mdemo/Makefile.am      Sun Jan 10 15:39:38 1999
-@@ -30,13 +30,13 @@
- # Create a version of mdemo that does dlopen.
- mdemo_SOURCES = main.c
--mdemo_LDADD = libltdl/libltdl.la \
-+mdemo_LDADD = -Llibltdl -lltdl \
-       $(LIBADD_M) # We won't need this when libltdl takes care of dependencies
- mdemo_LDFLAGS = -dlopen libfoo1.la -dlopen libfoo2.la
- mdemo_DEPENDENCIES = libltdl/libltdl.la libfoo1.la libfoo2.la
- # Create an easier-to-debug version of mdemo.
- mdemo_debug_SOURCES = main.c
--mdemo_debug_LDADD = libltdl/libltdl.la
-+mdemo_debug_LDADD = -Llibltdl -lltdl
- mdemo_debug_LDFLAGS = -static -dlopen libfoo1.la -dlopen libfoo2.la
- mdemo_debug_DEPENDENCIES = libltdl/libltdl.la libfoo1.la libfoo2.la
+@@ -2894,7 +3296,8 @@
+       # Do a test to see if this is really a libtool program.
+       if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+         link_against_libtool_libs=
+-        finalize_command=
++        link_command=
++        link_dir=
+         # If there is no directory component, then add one.
+         case "$file" in
+@@ -2903,7 +3306,7 @@
+         esac
+         # Check the variables that should have been set.
+-        if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then
++        if test -z "$link_against_libtool_libs" || test -z "$link_command" || test -z "$link_dir"; then
+           $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
+           exit 1
+         fi
+@@ -2913,11 +3316,7 @@
+           # Check to see that each library is installed.
+           libdir=
+           if test -f "$lib"; then
+-            # If there is no directory component, then add one.
+-            case "$lib" in
+-            */* | *\\*) . $lib ;;
+-            *) . ./$lib ;;
+-            esac
++            . $lib
+           fi
+           libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
+           if test -n "$libdir" && test ! -f "$libfile"; then
+@@ -2929,6 +3328,7 @@
+         if test "$hardcode_action" = relink; then
+           if test "$finalize" = yes; then
+             $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2
++            finalize_command="cd $link_dir; $SHELL $0 -mode=link-install $link_command"
+             $show "$finalize_command"
+             if $run eval "$finalize_command"; then :
+             else