]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
Make the shell script current with HEAD
authorAlexandre Oliva <aoliva@redhat.com>
Sat, 2 Mar 2002 20:15:53 +0000 (20:15 +0000)
committerBruce Korb <bkorb@gnu.org>
Sat, 2 Mar 2002 20:15:53 +0000 (20:15 +0000)
12 files changed:
exe/Makefile [new file with mode: 0644]
exe/base-txt.tpl
exe/clean-txt.tpl
exe/compile-txt.tpl
exe/execute-txt.tpl
exe/finish-txt.tpl
exe/install-txt.tpl
exe/link-txt.tpl
exe/ltmacros.tpl
exe/ltmain.c
exe/ltmain.tpl
exe/ltopts.def

diff --git a/exe/Makefile b/exe/Makefile
new file mode 100644 (file)
index 0000000..d98dbee
--- /dev/null
@@ -0,0 +1,8 @@
+
+MTPL =  ltmacros.tpl
+TPL  = base-txt.tpl clean-txt.tpl compile-txt.tpl execute-txt.tpl \
+       finish-txt.tpl install-txt.tpl link-txt.tpl ltmain.tpl ltstr.tpl
+DEF  = ltstr.def
+
+newltmain.in : $(TPL) $(DEF) $(MTPL)
+       autogen -T ltmain.tpl -l ltmacros.tpl ltstr.def
index 60667a611ebfe763b7c907c634c09aed9833ae5d..c65c489cc06927b08d7c41012d154565621b290f 100644 (file)
@@ -9,7 +9,7 @@ rm="rm -f"
 
 # Sed substitution that helps us do robust quoting.  It backslashifies
 # metacharacters that are still active within double-quoted strings.
-Xsed='sed -e 1s/^X//'
+Xsed="${SED}"' -e 1s/^X//'
 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
 SP2NL='tr \040 \012'
 NL2SP='tr \015\012 \040\040'
@@ -25,3 +25,6 @@ fi
 if test "${LANG+set}" = set; then
   save_LANG="$LANG"; LANG=C; export LANG
 fi
+
+# Make sure IFS has a sensible default
+: ${IFS="      "}
index 2895adff5893b5ecbbb99ec5376fb2f8ee946ed4..8501644caf099dc8fb7d6ba3f0f32828a88ea033 100644 (file)
        objdir="$dir/$objdir"
       fi
       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-      test $mode = uninstall && objdir="$dir"
+      test "$mode" = uninstall && objdir="$dir"
 
       # Remember objdir for removal later, being careful to avoid duplicates
-      if test $mode = clean; then
+      if test "$mode" = clean; then
        case " $rmdirs " in
          *" $objdir "*) ;;
          *) rmdirs="$rmdirs $objdir" ;;
 
       # Don't error if the file doesn't exist and rm -f was used.
       if (test -L "$file") >/dev/null 2>&1 \
-        || (test -h "$file") >/dev/null 2>&1 \
+       || (test -h "$file") >/dev/null 2>&1 \
        || test -f "$file"; then
-        :
+       :
       elif test -d "$file"; then
-        exit_status=1
+       exit_status=1
        continue
       elif test "$rmforce" = yes; then
-        continue
+       continue
       fi
 
       rmfiles="$file"
@@ -61,7 +61,7 @@
       case $name in
       *.la)
        # Possibly a libtool archive, so verify it.
-       if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/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.
            rmfiles="$rmfiles $objdir/$n"
          done
          test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
-         test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+         test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
 
-         if test $mode = uninstall; then
+         if test "$mode" = uninstall; then
            if test -n "$library_names"; then
              # Do each command in the postuninstall commands.
              eval cmds=\"$postuninstall_cmds\"
-             IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
+             save_ifs="$IFS"; IFS='~'
              for cmd in $cmds; do
                IFS="$save_ifs"
                $show "$cmd"
                $run eval "$cmd"
-               if test $? != 0 && test "$rmforce" != yes; then
+               if test "$?" -ne 0 && test "$rmforce" != yes; then
                  exit_status=1
                fi
              done
            if test -n "$old_library"; then
              # Do each command in the old_postuninstall commands.
              eval cmds=\"$old_postuninstall_cmds\"
-             IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
+             save_ifs="$IFS"; IFS='~'
              for cmd in $cmds; do
                IFS="$save_ifs"
                $show "$cmd"
                $run eval "$cmd"
-               if test $? != 0 && test "$rmforce" != yes; then
+               if test "$?" -ne 0 && test "$rmforce" != yes; then
                  exit_status=1
                fi
              done
 
       *.lo)
        # Possibly a libtool object, so verify it.
-       if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+       if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
 
-          # Read the .lo file
-          . $dir/$name
+         # Read the .lo file
+         . $dir/$name
 
          # Add PIC object to the list of files to remove.
-          if test -n "$pic_object" \
-             && test "$pic_object" != none; then
+         if test -n "$pic_object" \
+            && test "$pic_object" != none; then
            rmfiles="$rmfiles $dir/$pic_object"
-          fi
+         fi
 
          # Add non-PIC object to the list of files to remove.
-          if test -n "$non_pic_object" \
-             && test "$non_pic_object" != none; then
+         if test -n "$non_pic_object" \
+            && test "$non_pic_object" != none; then
            rmfiles="$rmfiles $dir/$non_pic_object"
-          fi
+         fi
        fi
        ;;
 
       *)
        # Do a test to see if this is a libtool program.
-       if test $mode = clean &&
-          (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+       if test "$mode" = clean &&
+          (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
          relink_command=
          . $dir/$file
 
index 6410c149cdda99b7893dab16614d9fa699cc2098..2ae5d22dd7d781042fb58a98fff6449f8af48814 100644 (file)
@@ -66,7 +66,7 @@
       -Wc,*)
        args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
        lastarg=
-       IFS="${IFS=     }"; save_ifs="$IFS"; IFS=','
+       save_ifs="$IFS"; IFS=','
        for arg in $args; do
          IFS="$save_ifs"
 
 
     # Recognize several different file suffixes.
     # If the user specifies -o file.o, it is replaced with file.lo
-    xform='[cCFSfmso]'
+    xform='[cCFSifmso]'
     case $libobj in
     *.ada) xform=ada ;;
     *.adb) xform=adb ;;
     *.asm) xform=asm ;;
     *.c++) xform=c++ ;;
     *.cc) xform=cc ;;
+    *.ii) xform=ii ;;
     *.class) xform=class ;;
     *.cpp) xform=cpp ;;
     *.cxx) xform=cxx ;;
     # Only attempt this if the compiler in the base compile
     # command doesn't match the default compiler.
     if test -n "$available_tags" && test -z "$tagname"; then
-      case $base_compile in
+      case "$base_compile " in
       "$CC "*) ;;
       # Blanks in the command may have been stripped by the calling shell,
       # but not from the CC environment variable when ltconfig was run.
       "`$echo $CC` "*) ;;
       *)
-        for z in $available_tags; do
-          if grep "^### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
+       for z in $available_tags; do
+         if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
            # Evaluate the configuration.
-           eval "`sed -n -e '/^### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
-            case $base_compile in
+           eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
+           case "$base_compile " in
            "$CC "*)
-              # The compiler in the base compile command matches
-              # the one in the tagged configuration.
-              # Assume this is the tagged configuration we want.
-              tagname=$z
-              break
-              ;;
+             # The compiler in the base compile command matches
+             # the one in the tagged configuration.
+             # Assume this is the tagged configuration we want.
+             tagname=$z
+             break
+             ;;
            "`$echo $CC` "*)
              tagname=$z
              break
              ;;
            esac
-          fi
-        done
-        # If $tagname still isn't set, then no tagged configuration
-        # was found and let the user know that the "--tag" command
-        # line option must be used.[++
+         fi
+       done
+       # If $tagname still isn't set, then no tagged configuration
+       # was found and let the user know that the "--tag" command
+       # line option must be used.[++
         test-or-exit test = 'test -z "$tagname"'  no_help = true
-msg = "unable to infer tagged configuration\n\tspecify a tag with \\`--tag'"++]
-#       echo "$modename: using $tagname tagged configuration"
+msg = "unable to infer tagged configuration\nspecify a tag with \\`--tag'"++]
+#        echo "$modename: using $tagname tagged configuration"
        ;;
       esac
     fi
@@ -243,7 +244,7 @@ msg = "unable to infer tagged configuration\n\tspecify a tag with \\`--tag'"++]
       pic_mode=default
       ;;
     esac
-    if test $pic_mode = no && test "$deplibs_check_method" != pass_all; then
+    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
       # non-PIC code in shared libraries is not supported
       pic_mode=default
     fi
@@ -303,18 +304,18 @@ EOF
        command="$base_compile $srcfile"
       fi
 
-      if test ! -d ${xdir}$objdir; then
+      if test ! -d "${xdir}$objdir"; then
        $show "$mkdir ${xdir}$objdir"
        $run $mkdir ${xdir}$objdir
        status=$?
-       if test $status -ne 0 && test ! -d ${xdir}$objdir; then
+       if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
          exit $status
-        fi
-      fi 
+       fi
+      fi
 
       if test -z "$output_obj"; then
-        # Place PIC objects in $objdir
-        command="$command -o $lobj"
+       # Place PIC objects in $objdir
+       command="$command -o $lobj"
       fi
 
       $run $rm "$lobj" "$output_obj"
@@ -327,12 +328,12 @@ EOF
       fi
 
       if test "$need_locks" = warn &&
-        test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then[++
+        test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then[++
         lock-conflict ++]
       fi
 
       # Just move the object if needed, then go on to compile the next one
-      if test -n "$output_obj" && test "x$output_obj" != "x$lobj"; then
+      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
        $show "$mv $output_obj $lobj"
        if $run $mv $output_obj $lobj; then :
        else
@@ -382,12 +383,12 @@ EOF
       fi
 
       if test "$need_locks" = warn &&
-        test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then[++
+        test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then[++
         lock-conflict ++]
       fi
 
       # Just move the object if needed
-      if test -n "$output_obj" && test "x$output_obj" != "x$obj"; then
+      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
        $show "$mv $output_obj $obj"
        if $run $mv $output_obj $obj; then :
        else
index 31e899cb7a729e75848d165f86aa9b6e9eb0bcdb..26fd8145d46f26b712e78c9e47b094332f99ea2f 100644 (file)
@@ -9,7 +9,7 @@
       *.la)
        # Check to see that this really is a libtool archive.[++
        test-or-exit  invert = yes
-          test = "sed -e '2q' $file | egrep \"^# Generated by .*$PACKAGE\""
+          test = "${SED} -e '2q' $file | egrep \"^# Generated by .*$PACKAGE\""
           msg  = "\\`$lib' is not a valid libtool archive"  ++]
 
        # Read the libtool library.
@@ -73,7 +73,7 @@
       -*) ;;
       *)
        # 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
+       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 ;;
        LANG="$save_LANG"; export LANG
       fi
 
-      # Now actually exec the command.
-      eval "exec \$cmd$args"
-
-      $echo "$modename: cannot exec \$cmd$args"
-      exit 1
+      # Now prepare to actually exec the command.
+      exec_cmd="\$cmd$args"
     else
       # Display what would be done.
       if test -n "$shlibpath_var"; then
index a16135ef698da05ad76316c942b0ff462eb28fc8..af7d81ab4737a5024cb96851337a79615edd1245 100644 (file)
@@ -12,7 +12,7 @@
        if test -n "$finish_cmds"; then
          # Do each command in the finish commands.
          eval cmds=\"$finish_cmds\"
-         IFS="${IFS=   }"; save_ifs="$IFS"; IFS='~'
+         save_ifs="$IFS"; IFS='~'
          for cmd in $cmds; do
            IFS="$save_ifs"
            $show "$cmd"
@@ -31,7 +31,7 @@
     fi
 
     # Exit here if they wanted silent mode.
-    test "$show" = ":" && exit 0
+    test "$show" = : && exit 0
 
     echo "----------------------------------------------------------------------"
     echo "Libraries have been installed in:"
index f10d5a337685b4b9a7b2ce0ae9d8329e95936b90..c77b74f4469b18940f20ed5c7d6fe6581bea05e0 100644 (file)
 
       # Not a directory, so check to see that there is only one file specified.
       set dummy $files
-      if test $# -gt 2; then
+      if test "$#" -gt 2; then
        $echo "$modename: \`$dest' is not a directory" 1>&2
        $echo "$help" 1>&2
        exit 1
 
       *.la)
        # Check to see that this really is a libtool archive.
-       if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/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
            $run eval "$striplib $destdir/$realname" || exit $?
          fi
 
-         if test $# -gt 0; then
+         if test "$#" -gt 0; then
            # Delete the old symlinks, and create new ones.
            for linkname
            do
          # Do each command in the postinstall commands.
          lib="$destdir/$realname"
          eval cmds=\"$postinstall_cmds\"
-         IFS="${IFS=   }"; save_ifs="$IFS"; IFS='~'
+         save_ifs="$IFS"; IFS='~'
          for cmd in $cmds; do
            IFS="$save_ifs"
            $show "$cmd"
        fi
 
        # 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
+       case $host in
+       *cygwin*|*mingw*)
+           wrapper=`echo $file | ${SED} -e 's,.exe$,,'`
+           ;;
+       *)
+           wrapper=$file
+           ;;
+       esac
+       if (${SED} -e '4q' $wrapper | egrep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
          notinst_deplibs=
          relink_command=
 
          # If there is no directory component, then add one.
          case $file in
-         */* | *\\*) . $file ;;
-         *) . ./$file ;;
+         */* | *\\*) . $wrapper ;;
+         *) . ./$wrapper ;;
          esac
 
          # Check the variables that should have been set.
          if test -z "$notinst_deplibs"; then
-           $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
+           $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
            exit 1
          fi
 
          fi
        fi
 
-
        # remove .exe since cygwin /usr/bin/install will append another
        # one anyways
        case $install_prog,$host in
            destfile=$destfile.exe
            ;;
          *:*.exe)
-           destfile=`echo $destfile | sed -e 's,.exe$,,'`
+           destfile=`echo $destfile | ${SED} -e 's,.exe$,,'`
            ;;
          esac
          ;;
        esac
-
        $show "$install_prog$stripme $file $destfile"
        $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
        test -n "$outputname" && ${rm}r "$tmpdir"
 
       # Do each command in the postinstall commands.
       eval cmds=\"$old_postinstall_cmds\"
-      IFS="${IFS=      }"; save_ifs="$IFS"; IFS='~'
+      save_ifs="$IFS"; IFS='~'
       for cmd in $cmds; do
        IFS="$save_ifs"
        $show "$cmd"
     if test -n "$current_libdirs"; then
       # Maybe just do a dry run.
       test -n "$run" && current_libdirs=" -n$current_libdirs"
-      exec $SHELL $0 --finish$current_libdirs
-      exit 1
+      exec_cmd='$SHELL $0 --finish$current_libdirs'
+    else
+      exit 0
     fi
index 15210827b07334cb9bbaee95eadff029b4e1a35b..b582c1363f4764e365b39985fa8583d81683d1c2 100644 (file)
@@ -91,7 +91,7 @@
     test -n "$old_archive_from_new_cmds" && build_old_libs=yes
 
     # Go through the arguments, transforming them on the way.
-    while test $# -gt 0; do
+    while test "$#" -gt 0; do
       arg="$1"
       base_compile="$base_compile $arg"
       shift
          ;;
        objectlist)
          if test -f "$arg"; then
-            save_arg=$arg
+           save_arg=$arg
            moreargs=
            for fil in `cat $save_arg`
            do
 #            moreargs="$moreargs $fil"
-              arg=$fil
-              # A libtool-controlled object.
+             arg=$fil
+             # A libtool-controlled object.
 
              # Check to see that this really is a libtool object.
-             if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-                pic_object=
-                non_pic_object=
-
-                # Read the .lo file
-                # If there is no directory component, then add one.
-                case $arg in
-                */* | *\\*) . $arg ;;
-                *) . ./$arg ;;
-                esac
-
-                if test -z "$pic_object" || \
-                   test -z "$non_pic_object" ||
-                   test "$pic_object" = none && \
-                   test "$non_pic_object" = none; then
-                  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-                  exit 1
-                fi
-
-               # Extract subdirectory from the argument.
-               xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-               if test "X$xdir" = "X$arg"; then
-                 xdir=
-               else
-                 xdir="$xdir/"
-               fi
-
-                if test "$pic_object" != none; then
-                  # Prepend the subdirectory the object is found in.
-                 pic_object="$xdir$pic_object"
-
-                 if test "$prev" = dlfiles; then
-                   if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-                     dlfiles="$dlfiles $pic_object"
-                     prev=
-                     continue
-                   else
-                     # If libtool objects are unsupported, then we need to preload.
-                     prev=dlprefiles
-                   fi
-                 fi
-
-                 # CHECK ME:  I think I busted this.  -Ossama
-                  if test "$prev" = dlprefiles; then
-                   # Preload the old-style object.
-                   dlprefiles="$dlprefiles $pic_object"
-                   prev=
-                  fi
-
-                  # A PIC object.
-                 libobjs="$libobjs $pic_object"
-                 arg="$pic_object"
-                fi
-
-                # Non-PIC object.
-                if test "$non_pic_object" != none; then
-                  # Prepend the subdirectory the object is found in.
-                 non_pic_object="$xdir$non_pic_object"
-
-                  # A standard non-PIC object
-                  non_pic_objects="$non_pic_objects $non_pic_object"
-                  if test -z "$pic_object" || test "$pic_object" = none ; then
-                    arg="$non_pic_object"
-                  fi
-                fi
-              else
-                # Only an error if not doing a dry-run.
-                if test -z "$run"; then
-                  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-                  exit 1
-                else
-                  # Dry-run case.
-
-                 # Extract subdirectory from the argument.
-                 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-                 if test "X$xdir" = "X$arg"; then
-                   xdir=
-                 else
-                   xdir="$xdir/"
-                 fi
-
-                  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
-                  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
-                 libobjs="$libobjs $pic_object"
-                  non_pic_objects="$non_pic_objects $non_pic_object"
-                fi
+             if (${SED} -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+               pic_object=
+               non_pic_object=
+
+               # Read the .lo file
+               # If there is no directory component, then add one.
+               case $arg in
+               */* | *\\*) . $arg ;;
+               *) . ./$arg ;;
+               esac
+
+               if test -z "$pic_object" || \
+                  test -z "$non_pic_object" ||
+                  test "$pic_object" = none && \
+                  test "$non_pic_object" = none; then
+                 $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+                 exit 1
+               fi
+
+               # Extract subdirectory from the argument.
+               xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+               if test "X$xdir" = "X$arg"; then
+                 xdir=
+               else
+                 xdir="$xdir/"
+               fi
+
+               if test "$pic_object" != none; then
+                 # Prepend the subdirectory the object is found in.
+                 pic_object="$xdir$pic_object"
+
+                 if test "$prev" = dlfiles; then
+                   if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+                     dlfiles="$dlfiles $pic_object"
+                     prev=
+                     continue
+                   else
+                     # If libtool objects are unsupported, then we need to preload.
+                     prev=dlprefiles
+                   fi
+                 fi
+
+                 # CHECK ME:  I think I busted this.  -Ossama
+                 if test "$prev" = dlprefiles; then
+                   # Preload the old-style object.
+                   dlprefiles="$dlprefiles $pic_object"
+                   prev=
+                 fi
+
+                 # A PIC object.
+                 libobjs="$libobjs $pic_object"
+                 arg="$pic_object"
+               fi
+
+               # Non-PIC object.
+               if test "$non_pic_object" != none; then
+                 # Prepend the subdirectory the object is found in.
+                 non_pic_object="$xdir$non_pic_object"
+
+                 # A standard non-PIC object
+                 non_pic_objects="$non_pic_objects $non_pic_object"
+                 if test -z "$pic_object" || test "$pic_object" = none ; then
+                   arg="$non_pic_object"
+                 fi
+               fi
+             else
+               # Only an error if not doing a dry-run.
+               if test -z "$run"; then
+                 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+                 exit 1
+               else
+                 # Dry-run case.
+
+                 # Extract subdirectory from the argument.
+                 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+                 if test "X$xdir" = "X$arg"; then
+                   xdir=
+                 else
+                   xdir="$xdir/"
+                 fi
+
+                 pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+                 non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+                 libobjs="$libobjs $pic_object"
+                 non_pic_objects="$non_pic_objects $non_pic_object"
+               fi
              fi
            done
          else
            $echo "$modename: link input file \`$save_arg' does not exist"
            exit 1
          fi
-          arg=$save_arg
+         arg=$save_arg
          prev=
          continue
          ;;
          continue
          ;;
        esac
-      fi # test -n $prev
+      fi # test -n "$prev"
 
       prevarg="$arg"
 
       # so, if we see these flags be careful not to treat them like -L
       -L[A-Z][A-Z]*:*)
        case $with_gcc/$host in
-       no/*-*-irix*)
+       no/*-*-irix* | /*-*-irix*)
          compile_command="$compile_command $arg"
          finalize_command="$finalize_command $arg"
          ;;
            # These systems don't actually have a C library (as such)
            test "X$arg" = "X-lc" && continue
            ;;
+         *-*-openbsd* | *-*-freebsd*)
+           # Do not include libc due to us having libc/libc_r.
+           test "X$arg" = "X-lc" && continue
+           ;;
+         *-*-rhapsody* | *-*-darwin1.[012])
+           # Rhapsody C and math libraries are in the System framework
+           deplibs="$deplibs -framework System"
+           continue
          esac
+       elif test "X$arg" = "X-lc_r"; then
+        case $host in
+        *-*-openbsd* | *-*-freebsd*)
+          # Do not include libc_r directly, use -pthread flag.
+          continue
+          ;;
+        esac
        fi
        deplibs="$deplibs $arg"
        continue
       -Wc,*)
        args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
        arg=
-       IFS="${IFS=     }"; save_ifs="$IFS"; IFS=','
+       save_ifs="$IFS"; IFS=','
        for flag in $args; do
          IFS="$save_ifs"
          case $flag in
       -Wl,*)
        args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
        arg=
-       IFS="${IFS=     }"; save_ifs="$IFS"; IFS=','
+       save_ifs="$IFS"; IFS=','
        for flag in $args; do
          IFS="$save_ifs"
          case $flag in
        # A libtool-controlled object.
 
        # Check to see that this really is a libtool object.
-       if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-          pic_object=
-          non_pic_object=
-
-          # Read the .lo file
-          # If there is no directory component, then add one.
-          case $arg in
-          */* | *\\*) . $arg ;;
-          *) . ./$arg ;;
-          esac
-
-          if test -z "$pic_object" || \
-             test -z "$non_pic_object" ||
-             test "$pic_object" = none && \
-             test "$non_pic_object" = none; then
-            $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-            exit 1
-          fi
+       if (${SED} -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+         pic_object=
+         non_pic_object=
+
+         # Read the .lo file
+         # If there is no directory component, then add one.
+         case $arg in
+         */* | *\\*) . $arg ;;
+         *) . ./$arg ;;
+         esac
+
+         if test -z "$pic_object" || \
+            test -z "$non_pic_object" ||
+            test "$pic_object" = none && \
+            test "$non_pic_object" = none; then
+           $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+           exit 1
+         fi
 
          # Extract subdirectory from the argument.
          xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
          if test "X$xdir" = "X$arg"; then
            xdir=
-         else
+         else
            xdir="$xdir/"
          fi
 
-          if test "$pic_object" != none; then
-            # Prepend the subdirectory the object is found in.
+         if test "$pic_object" != none; then
+           # Prepend the subdirectory the object is found in.
            pic_object="$xdir$pic_object"
 
            if test "$prev" = dlfiles; then
              if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-               dlfiles="$dlfiles $pic_object"
-               prev=
-               continue
+               dlfiles="$dlfiles $pic_object"
+               prev=
+               continue
              else
-               # If libtool objects are unsupported, then we need to preload.
-               prev=dlprefiles
+               # If libtool objects are unsupported, then we need to preload.
+               prev=dlprefiles
              fi
            fi
 
            # CHECK ME:  I think I busted this.  -Ossama
-            if test "$prev" = dlprefiles; then
+           if test "$prev" = dlprefiles; then
              # Preload the old-style object.
              dlprefiles="$dlprefiles $pic_object"
              prev=
-            fi
+           fi
 
-            # A PIC object.
+           # A PIC object.
            libobjs="$libobjs $pic_object"
            arg="$pic_object"
-          fi
+         fi
 
-          # Non-PIC object.
-          if test "$non_pic_object" != none; then
-            # Prepend the subdirectory the object is found in.
+         # Non-PIC object.
+         if test "$non_pic_object" != none; then
+           # Prepend the subdirectory the object is found in.
            non_pic_object="$xdir$non_pic_object"
 
-            # A standard non-PIC object
-            non_pic_objects="$non_pic_objects $non_pic_object"
-            if test -z "$pic_object" || test "$pic_object" = none ; then
-              arg="$non_pic_object"
-            fi
-          fi
-        else
-          # Only an error if not doing a dry-run.
-          if test -z "$run"; then
-            $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-            exit 1
-          else
-            # Dry-run case.
+           # A standard non-PIC object
+           non_pic_objects="$non_pic_objects $non_pic_object"
+           if test -z "$pic_object" || test "$pic_object" = none ; then
+             arg="$non_pic_object"
+           fi
+         fi
+       else
+         # Only an error if not doing a dry-run.
+         if test -z "$run"; then
+           $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+           exit 1
+         else
+           # Dry-run case.
 
            # Extract subdirectory from the argument.
            xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
              xdir="$xdir/"
            fi
 
-            pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
-            non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+           pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+           non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
            libobjs="$libobjs $pic_object"
-            non_pic_objects="$non_pic_objects $non_pic_object"
-          fi
+           non_pic_objects="$non_pic_objects $non_pic_object"
+         fi
        fi
        ;;
 
       # but not from the CC environment variable when ltconfig was run.
       "`$echo $CC` "*) ;;
       *)
-        for z in $available_tags; do
-          if grep "^### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
+       for z in $available_tags; do
+         if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
            # Evaluate the configuration.
-           eval "`sed -n -e '/^### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
-            case $base_compile in
+           eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
+           case $base_compile in
            "$CC "*)
-              # The compiler in $compile_command matches
-              # the one in the tagged configuration.
-              # Assume this is the tagged configuration we want.
-              tagname=$z
-              break
+             # The compiler in $compile_command matches
+             # the one in the tagged configuration.
+             # Assume this is the tagged configuration we want.
+             tagname=$z
+             break
              ;;
            "`$echo $CC` "*)
              tagname=$z
              break
              ;;
            esac
-          fi
-        done
-        # If $tagname still isn't set, then no tagged configuration
-        # was found and let the user know that the "--tag" command
-        # line option must be used.
-        if test -z "$tagname"; then
-          echo "$modename: unable to infer tagged configuration"
-          echo "$modename: specify a tag with \`--tag'" 1>&2
-         exit 1
-#       else
+         fi
+       done
+       # If $tagname still isn't set, then no tagged configuration
+       # was found and let the user know that the "--tag" command
+       # line option must be used.[++
+  test-or-exit  test = 'test -z "$tagname"'
+  msg = "unable to infer tagged configuration\nspecify a tag with \`--tag'" ++]
 #         echo "$modename: using $tagname tagged configuration"
-        fi
        ;;
       esac
     fi
       finalize_command="$finalize_command $arg"
     fi
 
+    oldlibs=
     # calculate the name of the file, without its directory
     outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
     libobjs_save="$libobjs"
       output_objdir="$output_objdir/$objdir"
     fi
     # Create the object directory.
-    if test ! -d $output_objdir; then
+    if test ! -d "$output_objdir"; then
       $show "$mkdir $output_objdir"
       $run $mkdir $output_objdir
       status=$?
-      if test $status -ne 0 && test ! -d $output_objdir; then
+      if test "$status" -ne 0 && test ! -d "$output_objdir"; then
        exit $status
       fi
     fi
     # Find all interdependent deplibs by searching for libraries
     # that are linked more than once (e.g. -la -lb -la)
     for deplib in $deplibs; do
-      case "$libs " in
-      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-      esac
+      if test "X$duplicate_deps" = "Xyes" ; then
+       case "$libs " in
+       *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+       esac
+      fi
       libs="$libs $deplib"
     done
 
-    if test $linkmode = lib; then
+    if test "$linkmode" = lib; then
       libs="$predeps $libs $compiler_lib_search_path $postdeps"
 
       # Compute libraries that are listed more than once in $predeps
       # $postdeps and mark them as special (i.e., whose duplicates are
       # not to be eliminated).
       pre_post_deps=
-      for pre_post_dep in $predeps $postdeps; do
-        case "$pre_post_deps " in
-       *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
-       esac
-       pre_post_deps="$pre_post_deps $pre_post_dep"
-      done
+      if test "X$duplicate_deps" = "Xyes" ; then
+       for pre_post_dep in $predeps $postdeps; do
+         case "$pre_post_deps " in
+         *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+         esac
+         pre_post_deps="$pre_post_deps $pre_post_dep"
+       done
+      fi
       pre_post_deps=
     fi
 
        ;;
     esac
     for pass in $passes; do
-      if test $linkmode = prog; then
-       # Determine which files to process
+      if test "$linkmode,$pass" = "lib,link" ||
+        test "$linkmode,$pass" = "prog,scan"; then
+       libs="$deplibs"
+       deplibs=
+      fi
+      if test "$linkmode" = prog; then
        case $pass in
-       dlopen)
-         libs="$dlfiles"
-         save_deplibs="$deplibs" # Collect dlpreopened libraries
-         deplibs=
-         ;;
+       dlopen) libs="$dlfiles" ;;
        dlpreopen) libs="$dlprefiles" ;;
        link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
        esac
       fi
+      if test "$pass" = dlopen; then
+       # Collect dlpreopened libraries
+       save_deplibs="$deplibs"
+       deplibs=
+      fi
       for deplib in $libs; do
        lib=
        found=no
        case $deplib in
        -l*)
-         if test $linkmode = oldlib && test $linkmode = obj; then
-           $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2
+         if test "$linkmode" != lib && test "$linkmode" != prog; then
+           $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
            continue
          fi
-         if test $pass = conv; then
+         if test "$pass" = conv; then
            deplibs="$deplib $deplibs"
            continue
          fi
              finalize_deplibs="$deplib $finalize_deplibs"
            else
              deplibs="$deplib $deplibs"
-             test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs"
+             test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
            fi
            continue
          fi
          case $linkmode in
          lib)
            deplibs="$deplib $deplibs"
-           test $pass = conv && continue
+           test "$pass" = conv && continue
            newdependency_libs="$deplib $newdependency_libs"
            newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
            ;;
          prog)
-           if test $pass = conv; then
+           if test "$pass" = conv; then
              deplibs="$deplib $deplibs"
              continue
            fi
-           if test $pass = scan; then
+           if test "$pass" = scan; then
              deplibs="$deplib $deplibs"
              newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
            else
            fi
            ;;
          *)
-           $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2
+           $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
            ;;
          esac # linkmode
          continue
          ;; # -L
        -R*)
-         if test $pass = link; then
+         if test "$pass" = link; then
            dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
            # Make sure the xrpath contains only unique directories.
            case "$xrpath " in
          ;;
        *.la) lib="$deplib" ;;
        *.$libext)
-         if test $pass = conv; then
+         if test "$pass" = conv; then
            deplibs="$deplib $deplibs"
            continue
          fi
          case $linkmode in
          lib)
            if test "$deplibs_check_method" != pass_all; then[++
-           share-to-static-warn  libname = '$deplib' ++]
+
+           share-to-static-warn  libname = '$deplib'
+msg = "The file extension .$libext for this argument implies
+that it is a static archive that should not be used here."
+
+++]
            else
              echo
              echo "*** Warning: Linking the shared library $output against the"
            continue
            ;;
          prog)
-           if test $pass != link; then
+           if test "$pass" != link; then
              deplibs="$deplib $deplibs"
            else
              compile_deplibs="$deplib $compile_deplibs"
          esac # linkmode
          ;; # *.$libext
        *.lo | *.$objext)
-         if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-           # If there is no dlopen support or we're linking statically,
-           # we need to preload.
-           newdlprefiles="$newdlprefiles $deplib"
-           compile_deplibs="$deplib $compile_deplibs"
-           finalize_deplibs="$deplib $finalize_deplibs"
-         else
-           newdlfiles="$newdlfiles $deplib"
+         if test "$pass" = conv; then
+           deplibs="$deplib $deplibs"
+         elif test "$linkmode" = prog; then
+           if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+             # If there is no dlopen support or we're linking statically,
+             # we need to preload.
+             newdlprefiles="$newdlprefiles $deplib"
+             compile_deplibs="$deplib $compile_deplibs"
+             finalize_deplibs="$deplib $finalize_deplibs"
+           else
+             newdlfiles="$newdlfiles $deplib"
+           fi
          fi
          continue
          ;;
          continue
          ;;
        esac # case $deplib
-       if test $found = yes || test -f "$lib"; then :
+       if test "$found" = yes || test -f "$lib"; then :
        else
          $echo "$modename: cannot find the library \`$lib'" 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 :
+       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
 
        if test "$linkmode,$pass" = "lib,link" ||
           test "$linkmode,$pass" = "prog,scan" ||
-          { test $linkmode = oldlib && test $linkmode = obj; }; then
-          # Add dl[pre]opened files of deplib
+          { test "$linkmode" != prog && test "$linkmode" != lib; }; then
          test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
          test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
        fi
 
-       if test $pass = conv; then
+       if test "$pass" = conv; then
          # Only check for convenience libraries
          deplibs="$lib $deplibs"
          if test -z "$libdir"; then
            tmp_libs=
            for deplib in $dependency_libs; do
              deplibs="$deplib $deplibs"
-             case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-             esac
+              if test "X$duplicate_deps" = "Xyes" ; then
+               case "$tmp_libs " in
+               *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+               esac
+              fi
              tmp_libs="$tmp_libs $deplib"
            done
-         elif test $linkmode != prog && test $linkmode != lib; then
+         elif test "$linkmode" != prog && test "$linkmode" != lib; then
            $echo "$modename: \`$lib' is not a convenience library" 1>&2
            exit 1
          fi
        fi
 
        # This library was specified with -dlopen.
-       if test $pass = dlopen; then
+       if test "$pass" = dlopen; then
          if test -z "$libdir"; then
            $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
            exit 1
          fi
          if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
            # If there is no dlname, no dlopen support or we're linking
-           # statically, we need to preload.
-           dlprefiles="$dlprefiles $lib"
+           # statically, we need to preload.  We also need to preload any
+           # dependent libraries so libltdl's deplib preloader doesn't
+           # bomb out in the load deplibs phase.
+           dlprefiles="$dlprefiles $lib $dependency_libs"
          else
            newdlfiles="$newdlfiles $lib"
          fi
        name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
 
        # This library was specified with -dlpreopen.
-       if test $pass = dlpreopen; then
+       if test "$pass" = dlpreopen; then
          if test -z "$libdir"; then
            $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
            exit 1
 
        if test -z "$libdir"; then
          # Link the convenience library
-         if test $linkmode = lib; then
+         if test "$linkmode" = lib; then
            deplibs="$dir/$old_library $deplibs"
          elif test "$linkmode,$pass" = "prog,link"; then
            compile_deplibs="$dir/$old_library $compile_deplibs"
            finalize_deplibs="$dir/$old_library $finalize_deplibs"
          else
-           deplibs="$lib $deplibs"
+           deplibs="$lib $deplibs" # used for prog,scan pass
          fi
          continue
        fi
 
-       if test $linkmode = prog && test $pass != link; then
+       if test "$linkmode" = prog && test "$pass" != link; then
          newlib_search_path="$newlib_search_path $ladir"
          deplibs="$lib $deplibs"
 
            -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
            esac
            # Need to link against all dependency_libs?
-           if test $linkalldeplibs = yes; then
+           if test "$linkalldeplibs" = yes; then
              deplibs="$deplib $deplibs"
            else
              # Need to hardcode shared library paths
              # or/and link against static libraries
              newdependency_libs="$deplib $newdependency_libs"
            fi
-           case "$tmp_libs " in
-           *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-           esac
+           if test "X$duplicate_deps" = "Xyes" ; then
+             case "$tmp_libs " in
+             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+             esac
+           fi
            tmp_libs="$tmp_libs $deplib"
          done # for deplib
          continue
        fi # $linkmode = prog...
 
-       link_static=no # Whether the deplib will be linked statically
-       if test -n "$library_names" &&
-          { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
-         # Link against this shared library
+       if test "$linkmode,$pass" = "prog,link"; then
+         if test -n "$library_names" &&
+            { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+           # We need to hardcode the library path
+           if test -n "$shlibpath_var"; then
+             # Make sure the rpath contains only unique directories.
+             case "$temp_rpath " in
+             *" $dir "*) ;;
+             *" $absdir "*) ;;
+             *) temp_rpath="$temp_rpath $dir" ;;
+             esac
+           fi
 
-         if test "$linkmode,$pass" = "prog,link" ||
-          { test $linkmode = lib && test $hardcode_into_libs = yes; }; then
            # Hardcode the library path.
            # Skip directories that are in the system default run-time
            # search path.
              esac
              ;;
            esac
-           if test $linkmode = prog; then
-             # We need to hardcode the library path
-             if test -n "$shlibpath_var"; then
-               # Make sure the rpath contains only unique directories.
-               case "$temp_rpath " in
-               *" $dir "*) ;;
-               *" $absdir "*) ;;
-               *) temp_rpath="$temp_rpath $dir" ;;
-               esac
-             fi
-           fi
          fi # $linkmode,$pass = prog,link...
 
          if test "$alldeplibs" = yes &&
            # We only need to search for static libraries
            continue
          fi
+       fi
 
+       link_static=no # Whether the deplib will be linked statically
+       if test -n "$library_names" &&
+          { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
          if test "$installed" = no; then
            notinst_deplibs="$notinst_deplibs $lib"
            need_relink=yes
          fi
+         # This is a shared library
+         if test "$linkmode" = lib &&
+            test "$hardcode_into_libs" = yes; then
+           # Hardcode the library path.
+           # Skip directories that are in the system default run-time
+           # search path.
+           case " $sys_lib_dlsearch_path " in
+           *" $absdir "*) ;;
+           *)
+             case "$compile_rpath " in
+             *" $absdir "*) ;;
+             *) compile_rpath="$compile_rpath $absdir"
+             esac
+             ;;
+           esac
+           case " $sys_lib_dlsearch_path " in
+           *" $libdir "*) ;;
+           *)
+             case "$finalize_rpath " in
+             *" $libdir "*) ;;
+             *) finalize_rpath="$finalize_rpath $libdir"
+             esac
+             ;;
+           esac
+         fi
 
          if test -n "$old_archive_from_expsyms_cmds"; then
            # figure out the soname
 
            # Make a new name for the extract_expsyms_cmds to use
            soroot="$soname"
-           soname=`echo $soroot | sed -e 's/^.*\///'`
-           newlib="libimp-`echo $soname | sed 's/^lib//;s/\.dll$//'`.a"
+           soname=`echo $soroot | ${SED} -e 's/^.*\///'`
+           newlib="libimp-`echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
 
            # If the library has no export list, then create one now
            if test -f "$output_objdir/$soname-def"; then :
            else
              $show "extracting exported symbol list from \`$soname'"
-             IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
+             save_ifs="$IFS"; IFS='~'
              eval cmds=\"$extract_expsyms_cmds\"
              for cmd in $cmds; do
                IFS="$save_ifs"
            # Create $newlib
            if test -f "$output_objdir/$newlib"; then :; else
              $show "generating import library for \`$soname'"
-             IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
+             save_ifs="$IFS"; IFS='~'
              eval cmds=\"$old_archive_from_expsyms_cmds\"
              for cmd in $cmds; do
                IFS="$save_ifs"
            # make sure the library variables are pointing to the new library
            dir=$output_objdir
            linklib=$newlib
-         fi # test -n $old_archive_from_expsyms_cmds
+         fi # test -n "$old_archive_from_expsyms_cmds"
 
-         if test $linkmode = prog || test "$mode" != relink; then
+         if test "$linkmode" = prog || test "$mode" != relink; then
            add_shlibpath=
            add_dir=
            add=
              *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
              esac
            fi
-           if test $linkmode = prog; then
+           if test "$linkmode" = prog; then
              test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
              test -n "$add" && compile_deplibs="$add $compile_deplibs"
            else
            fi
          fi
 
-         if test $linkmode = prog || test "$mode" = relink; then
+         if test "$linkmode" = prog || test "$mode" = relink; then
            add_shlibpath=
            add_dir=
            add=
              add="-l$name"
            fi
 
-           if test $linkmode = prog; then
+           if test "$linkmode" = prog; then
              test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
              test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
            else
              test -n "$add" && deplibs="$add $deplibs"
            fi
          fi
-       elif test $linkmode = prog; then
-         if test "$alldeplibs" = yes &&
-            { test "$deplibs_check_method" = pass_all ||
-              { test "$build_libtool_libs" = yes &&
-                test -n "$library_names"; }; }; then
-           # We only need to search for static libraries
-           continue
-         fi
-
-         # Try to link the static library
+       elif test "$linkmode" = prog; then
          # Here we assume that one of hardcode_direct or hardcode_minus_L
          # is not unsupported.  This is valid on all known static and
          # shared platforms.
            # that the program can be linked against the static library.[++
            share-to-static-warn  libname = '$lib' ++]
            if test "$module" = yes; then
-             echo "*** Therefore, libtool will create a static module, that should work "
-             echo "*** as long as the dlopening application is linked with the -dlopen flag."
+             echo "*** But as you try to build a module library, libtool will still create "
+             echo "*** a static module, that should work as long as the dlopening application"
+             echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
              if test -z "$global_symbol_pipe"; then
-               echo
-               echo "*** However, this would only work if libtool was able to extract symbol"
-               echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-               echo "*** not find such a program.  So, this module is probably useless."
-               echo "*** \`nm' from GNU binutils and a full rebuild may help."
+               echo
+               echo "*** However, this would only work if libtool was able to extract symbol"
+               echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+               echo "*** not find such a program.  So, this module is probably useless."
+               echo "*** \`nm' from GNU binutils and a full rebuild may help."
              fi
              if test "$build_old_libs" = no; then
-               build_libtool_libs=module
-               build_old_libs=yes
+               build_libtool_libs=module
+               build_old_libs=yes
              else
-               build_libtool_libs=no
+               build_libtool_libs=no
              fi
            fi
          else
          fi
        fi # link shared/static library?
 
-       if test $linkmode = lib; then
+       if test "$linkmode" = lib; then
          if test -n "$dependency_libs" &&
-            { test $hardcode_into_libs != yes || test $build_old_libs = yes ||
-              test $link_static = yes; }; then
+            { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes ||
+              test "$link_static" = yes; }; then
            # Extract -R from dependency_libs
            temp_deplibs=
            for libdir in $dependency_libs; do
          tmp_libs=
          for deplib in $dependency_libs; do
            newdependency_libs="$deplib $newdependency_libs"
-           case "$tmp_libs " in
-           *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-           esac
+           if test "X$duplicate_deps" = "Xyes" ; then
+             case "$tmp_libs " in
+             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+             esac
+           fi
            tmp_libs="$tmp_libs $deplib"
          done
 
-         if test $link_all_deplibs != no; then
+         if test "$link_all_deplibs" != no; then
            # Add the search paths of all dependency libraries
            for deplib in $dependency_libs; do
              case $deplib in
                if grep "^installed=no" $deplib > /dev/null; then
                  path="-L$absdir/$objdir"
                else
-                 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+                 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
                  if test -z "$libdir"; then
                    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
                    exit 1
              esac
              case " $deplibs " in
              *" $path "*) ;;
-             *) deplibs="$path $deplibs" ;;
+             *) deplibs="$deplibs $path" ;;
              esac
            done
          fi # link_all_deplibs != no
        fi # linkmode = lib
       done # for deplib in $libs
-      if test $pass = dlpreopen; then
+      dependency_libs="$newdependency_libs"
+      if test "$pass" = dlpreopen; then
        # Link the dlpreopened libraries before other libraries
        for deplib in $save_deplibs; do
          deplibs="$deplib $deplibs"
        done
       fi
-      if test $pass != dlopen; then
-       test $pass != scan && dependency_libs="$newdependency_libs"
-       if test $pass != conv; then
+      if test "$pass" != dlopen; then
+       if test "$pass" != conv; then
          # Make sure lib_search_path contains only unique directories.
          lib_search_path=
          for dir in $newlib_search_path; do
          eval tmp_libs=\"\$$var\"
          new_libs=
          for deplib in $tmp_libs; do
+           # FIXME: Pedantically, this is the right thing to do, so
+           #        that some nasty dependency loop isn't accidentally
+           #        broken:
+           #new_libs="$deplib $new_libs"
+           # Pragmatically, this seems to cause very few problems in
+           # practice:
            case $deplib in
            -L*) new_libs="$deplib $new_libs" ;;
            *)
+             # And here is the reason: when a library appears more
+             # than once as an explicit dependence of a library, or
+             # is implicitly linked in more than once by the
+             # compiler, it is considered special, and multiple
+             # occurrences thereof are not removed.  Compare this
+             # with having the same library being listed as a
+             # dependency of multiple other libraries: in this case,
+             # we know (pedantically, we assume) the library does not
+             # need to be listed more than once, so we keep only the
+             # last copy.  This is not always right, but it is rare
+             # enough that we require users that really mean to play
+             # such unportable linking tricks to link the library
+             # using -Wl,-lname, so that libtool does not consider it
+             # for duplicate removal.
              case " $specialdeplibs " in
              *" $deplib "*) new_libs="$deplib $new_libs" ;;
              *)
          eval $var=\"$tmp_libs\"
        done # for var
       fi
-      if test "$pass" = "conv" &&
-       { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then
-       libs="$deplibs" # reset libs
-       deplibs=
-      fi
     done # for pass
-    if test $linkmode = prog; then
+    if test "$linkmode" = prog; then
       dlfiles="$newdlfiles"
       dlprefiles="$newdlprefiles"
     fi
 
     case $linkmode in
     oldlib)
+      if test -n "$deplibs"; then
+       $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
+      fi
+
       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
        $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
       fi
       fi
 
       set dummy $rpath
-      if test $# -gt 2; then
+      if test "$#" -gt 2; then
        $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
       fi
       install_libdir="$2"
        if test "$build_libtool_libs" = yes; then
          # Building a libtool convenience library.
          # Some compilers have problems with a `.al' extension so
-          # convenience libraries should have the same extension an
-          # archive normally would.
+         # convenience libraries should have the same extension an
+         # archive normally would.
          oldlibs="$output_objdir/$libname.$libext $oldlibs"
          build_libtool_libs=convenience
          build_old_libs=yes
       else
 
        # Parse the version information argument.
-       IFS="${IFS=     }"; save_ifs="$IFS"; IFS=':'
+       save_ifs="$IFS"; IFS=':'
        set dummy $vinfo 0 0 0
        IFS="$save_ifs"
 
          ;;
        esac
 
-       if test $age -gt $current; then
+       if test "$age" -gt "$current"; then
          $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
          exit 1
          versuffix=".$current";
          ;;
 
-       irix)
+       irix | nonstopux)
+         case $version_type in
+           nonstopux) verstring_prefix=nonstopux ;;
+           *)         verstring_prefix=sgi ;;
+         esac
+         verstring="$verstring_prefix$major.$revision"
+
          major=`expr $current - $age + 1`
-         verstring="sgi$major.$revision"
 
          # Add in all the interfaces that we are compatible with.
          loop=$revision
-         while test $loop != 0; do
+         while test "$loop" -ne 0; do
            iface=`expr $revision - $loop`
            loop=`expr $loop - 1`
-           verstring="sgi$major.$iface:$verstring"
+           verstring="$verstring_prefix$major.$iface:$verstring"
          done
 
          # Before this point, $major must not contain `.'.
 
          # Add in all the interfaces that we are compatible with.
          loop=$age
-         while test $loop != 0; do
+         while test "$loop" -ne 0; do
            iface=`expr $current - $loop`
            loop=`expr $loop - 1`
            verstring="$verstring:${iface}.0"
        # Clear the version info if we defaulted, and they specified a release.
        if test -z "$vinfo" && test -n "$release"; then
          major=
-         verstring="0.0"
+         case $version_type in
+         darwin)
+           # we can't check for "0.0" in archive_cmds due to quoting
+           # problems, so we reset it completely
+           verstring=
+           ;;
+         *)
+           verstring="0.0"
+           ;;
+         esac
          if test "$need_version" = no; then
            versuffix=
          else
 
       if test "$mode" != relink; then
        # Remove our outputs, but don't remove object files since they
-        # may have been created when compiling PIC objects.
-        removelist=
-        tempremovelist=`echo "$output_objdir/*"`
+       # may have been created when compiling PIC objects.
+       removelist=
+       tempremovelist=`echo "$output_objdir/*"`
        for p in $tempremovelist; do
-          case $p in
-            *.$objext)
-               ;;
-            $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
-               removelist="$removelist $p"
-               ;;
-            *) ;;
-          esac
-        done
-        if test -n "$removelist"; then
+         case $p in
+           *.$objext)
+              ;;
+           $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+              removelist="$removelist $p"
+              ;;
+           *) ;;
+         esac
+       done
+       if test -n "$removelist"; then
          $show "${rm}r $removelist"
          $run ${rm}r $removelist
-        fi
+       fi
       fi
 
       # Now set the variables for building old libraries.
 
       # Eliminate all temporary directories.
       for path in $notinst_path; do
-       lib_search_path=`echo "$lib_search_path " | sed -e 's% $path % %g'`
-       deplibs=`echo "$deplibs " | sed -e 's% -L$path % %g'`
-       dependency_libs=`echo "$dependency_libs " | sed -e 's% -L$path % %g'`
+       lib_search_path=`echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
+       deplibs=`echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
+       dependency_libs=`echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
       done
 
       if test -n "$xrpath"; then
          *) finalize_rpath="$finalize_rpath $libdir" ;;
          esac
        done
-       if test $hardcode_into_libs != yes || test $build_old_libs = yes; then
+       if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
          dependency_libs="$temp_xrpath $dependency_libs"
        fi
       fi
          *-*-netbsd*)
            # Don't link with libc until the a.out ld.so is fixed.
            ;;
-         *)
+         *-*-openbsd* | *-*-freebsd*)
+           # Do not include libc due to us having libc/libc_r.
+           test "X$arg" = "X-lc" && continue
+           ;;
+         *)
            # Add libc to deplibs on all other systems if necessary.
-           if test $build_libtool_need_lc = "yes"; then
+           if test "$build_libtool_need_lc" = "yes"; then
              deplibs="$deplibs -lc"
            fi
            ;;
 EOF
          $rm conftest
          $LTCC -o conftest conftest.c $deplibs
-         if test $? -eq 0 ; then
+         if test "$?" -eq 0 ; then
            ldd_output=`ldd conftest`
            for i in $deplibs; do
              name="`expr $i : '-l\(.*\)'`"
              # If $name is empty we are operating on a -L argument.
-             if test -n "$name" && test "$name" != "0"; then
+             if test "$name" != "" && test "$name" -ne "0"; then
                libname=`eval \\$echo \"$libname_spec\"`
                deplib_matches=`eval \\$echo \"$library_names_spec\"`
                set dummy $deplib_matches
@@ -2018,16 +2108,16 @@ EOF
              fi
            done
          else
-           # Error occured in the first compile.  Let's try to salvage the situation:
-           # Compile a seperate program for each library.
+           # Error occured in the first compile.  Let's try to salvage
+           # the situation: Compile a separate program for each library.
            for i in $deplibs; do
              name="`expr $i : '-l\(.*\)'`"
             # If $name is empty we are operating on a -L argument.
-             if test -n "$name" && test "$name" != "0"; then
+             if test "$name" != "" && test "$name" != "0"; then
                $rm conftest
                $LTCC -o conftest conftest.c $i
                # Did it work?
-               if test $? -eq 0 ; then
+               if test "$?" -eq 0 ; then
                  ldd_output=`ldd conftest`
                  libname=`eval \\$echo \"$libname_spec\"`
                  deplib_matches=`eval \\$echo \"$library_names_spec\"`
@@ -2059,7 +2149,7 @@ EOF
          for a_deplib in $deplibs; do
            name="`expr $a_deplib : '-l\(.*\)'`"
            # If $name is empty we are operating on a -L argument.
-           if test -n "$name" && test "$name" != "0"; then
+           if test "$name" != "" && test  "$name" != "0"; then
              libname=`eval \\$echo \"$libname_spec\"`
              for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
                    potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
@@ -2076,14 +2166,14 @@ EOF
                      # but so what?
                      potlib="$potent_lib"
                      while test -h "$potlib" 2>/dev/null; do
-                       potliblink=`ls -ld $potlib | sed 's/.* -> //'`
+                       potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
                        case $potliblink in
                        [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
                        *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
                        esac
                      done
                      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
-                        | sed 10q \
+                        | ${SED} 10q \
                         | egrep "$file_magic_regex" > /dev/null; then
                        newdeplibs="$newdeplibs $a_deplib"
                        a_deplib=""
@@ -2094,6 +2184,12 @@ EOF
              if test -n "$a_deplib" ; then
                droppeddeps=yes[++
                share-to-static-warn  libname = '$a_deplib' ++]
+               if test -z "$potlib" ; then
+                 echo "*** with $libname but no candidates were found. (...for file magic test)"
+               else
+                 echo "*** with $libname and none of the candidates passed a file format test"
+                 echo "*** using a file magic. Last file checked: $potlib"
+               fi
              fi
            else
              # Add a -L argument.
@@ -2112,8 +2208,9 @@ EOF
              for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
                potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
                for potent_lib in $potential_libs; do
+                 potlib="$potent_lib" # see symlink-check above in file_magic test
                  if eval echo \"$potent_lib\" 2>/dev/null \
-                     | sed 10q \
+                     | ${SED} 10q \
                      | egrep "$match_pattern_regex" > /dev/null; then
                    newdeplibs="$newdeplibs $a_deplib"
                    a_deplib=""
@@ -2124,6 +2221,12 @@ EOF
              if test -n "$a_deplib" ; then
                droppeddeps=yes[++
                share-to-static-warn  libname = '$a_deplib' ++]
+               if test -z "$potlib" ; then
+                 echo "*** with $libname but no candidates were found. (...for regex pattern test)"
+               else
+                 echo "*** with $libname and none of the candidates passed a file format test"
+                 echo "*** using a regex pattern. Last file checked: $potlib"
+               fi
              fi
            else
              # Add a -L argument.
@@ -2186,7 +2289,7 @@ EOF
            echo "*** automatically added whenever a program is linked with this library"
            echo "*** or is declared to -dlopen it."
 
-           if test $allow_undefined = no; then
+           if test "$allow_undefined" = no; then
              echo
              echo "*** Since this library must not contain undefined symbols,"
              echo "*** because either the platform does not support them or"
@@ -2213,7 +2316,7 @@ EOF
 
       # Test again, we may have decided not to build it any more
       if test "$build_libtool_libs" = yes; then
-       if test $hardcode_into_libs = yes; then
+       if test "$hardcode_into_libs" = yes; then
          # Hardcode the library paths
          hardcode_libdirs=
          dep_rpath=
@@ -2279,7 +2382,9 @@ EOF
        else
          soname="$realname"
        fi
-       test -z "$dlname" && dlname=$soname
+       if test -z "$dlname"; then
+         dlname=$soname
+       fi
 
        lib="$output_objdir/$realname"
        for link
@@ -2287,23 +2392,6 @@ EOF
          linknames="$linknames $link"
        done
 
-#      # Ensure that we have .o objects for linkers which dislike .lo
-#      # (e.g. aix) in case we are running --disable-static
-#      for obj in $libobjs; do
-#        xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
-#        if test "X$xdir" = "X$obj"; then
-#          xdir="."
-#        else
-#          xdir="$xdir"
-#        fi
-#        baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
-#        oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
-#        if test ! -f $xdir/$oldobj && test "$baseobj" != "$oldobj"; then
-#          $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
-#          $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
-#        fi
-#      done
-
        # Use standard objects if they are pic
        test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 
@@ -2314,7 +2402,7 @@ EOF
            export_symbols="$output_objdir/$libname.exp"
            $run $rm $export_symbols
            eval cmds=\"$export_symbols_cmds\"
-           IFS="${IFS=         }"; save_ifs="$IFS"; IFS='~'
+           save_ifs="$IFS"; IFS='~'
            for cmd in $cmds; do
              IFS="$save_ifs"
              $show "$cmd"
@@ -2345,7 +2433,7 @@ EOF
            $show "$mkdir $gentop"
            $run $mkdir "$gentop"
            status=$?
-           if test $status -ne 0 && test ! -d "$gentop"; then
+           if test "$status" -ne 0 && test ! -d "$gentop"; then
              exit $status
            fi
            generated="$generated $gentop"
@@ -2364,7 +2452,7 @@ EOF
              $show "$mkdir $xdir"
              $run $mkdir "$xdir"
              status=$?
-             if test $status -ne 0 && test ! -d "$xdir"; then
+             if test "$status" -ne 0 && test ! -d "$xdir"; then
                exit $status
              fi
              $show "(cd $xdir && $AR x $xabs)"
@@ -2391,12 +2479,13 @@ EOF
        else
          eval cmds=\"$archive_cmds\"
        fi
-        if len=`expr "X$cmds" : ".*"` &&
-           test $len -le $max_cmd_len; then
-          :
-        else
+
+       if len=`expr "X$cmds" : ".*"` &&
+          test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+         :
+       else
          # The command line is too long to link in one step, link piecewise.
-          $echo "creating reloadable object files..."
+         $echo "creating reloadable object files..."
 
          # Save the value of $output and $libobjs because we want to
          # use them later.  If we have whole_archive_flag_spec, we
@@ -2409,72 +2498,72 @@ EOF
          if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
            save_libobjs=$libobjs
          fi
-          save_output=$output
+         save_output=$output
 
          # Clear the reloadable object creation command queue and
          # initialize k to one.
-          test_cmds=
-          concat_cmds=
-          objlist=
-          delfiles=
-          last_robj=
-          k=1
-          output=$output_objdir/$save_output-${k}.$objext
+         test_cmds=
+         concat_cmds=
+         objlist=
+         delfiles=
+         last_robj=
+         k=1
+         output=$output_objdir/$save_output-${k}.$objext
          # Loop over the list of objects to be linked.
-          for obj in $save_libobjs
-          do
-            eval test_cmds=\"$reload_cmds $objlist $last_robj\"
-            if test "X$objlist" = X ||
+         for obj in $save_libobjs
+         do
+           eval test_cmds=\"$reload_cmds $objlist $last_robj\"
+           if test "X$objlist" = X ||
               { len=`expr "X$test_cmds" : ".*"` &&
-                 test $len -le $max_cmd_len; }; then
-              objlist="$objlist $obj"
-            else
+                test "$len" -le "$max_cmd_len"; }; then
+             objlist="$objlist $obj"
+           else
              # The command $test_cmds is almost too long, add a
              # command to the queue.
-              if test $k -eq 1 ; then
-               # The first file doesn't have a previous command to add.
-                eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
-              else
-               # All subsequent reloadable object files will link in
-               # the last one created.
-                eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
-              fi
-              last_robj=$output_objdir/$save_output-${k}.$objext
-              k=`expr $k + 1`
-              output=$output_objdir/$save_output-${k}.$objext
-              objlist=$obj
-              len=1
-            fi
-          done
+             if test "$k" -eq 1 ; then
+               # The first file doesn't have a previous command to add.
+               eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+             else
+               # All subsequent reloadable object files will link in
+               # the last one created.
+               eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
+             fi
+             last_robj=$output_objdir/$save_output-${k}.$objext
+             k=`expr $k + 1`
+             output=$output_objdir/$save_output-${k}.$objext
+             objlist=$obj
+             len=1
+           fi
+         done
          # Handle the remaining objects by creating one last
          # reloadable object file.  All subsequent reloadable object
          # files will link in the last one created.
          test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-          eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+         eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
 
          # Set up a command to remove the reloadale object files
          # after they are used.
-          i=0
-          while test $i -lt $k
-          do
-            i=`expr $i + 1`
-            delfiles="$delfiles $output_objdir/$save_output-${i}.$objext"
-          done
+         i=0
+         while test "$i" -lt "$k"
+         do
+           i=`expr $i + 1`
+           delfiles="$delfiles $output_objdir/$save_output-${i}.$objext"
+         done
 
-          $echo "creating a temporary reloadable object file: $output"
+         $echo "creating a temporary reloadable object file: $output"
 
          # Loop through the commands generated above and execute them.
-          IFS="${IFS=  }"; save_ifs="$IFS"; IFS='~'
-          for cmd in $concat_cmds; do
-            IFS="$save_ifs"
-            $show "$cmd"
-            $run eval "$cmd" || exit $?
-          done
-          IFS="$save_ifs"
-
-          libobjs=$output
+         save_ifs="$IFS"; IFS='~'
+         for cmd in $concat_cmds; do
+           IFS="$save_ifs"
+           $show "$cmd"
+           $run eval "$cmd" || exit $?
+         done
+         IFS="$save_ifs"
+
+         libobjs=$output
          # Restore the value of output.
-          output=$save_output
+         output=$save_output
 
          if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
            eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
@@ -2483,23 +2572,23 @@ EOF
          # value of $libobjs for piecewise linking.
 
          # Do each of the archive commands.
-          if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-            eval cmds=\"$archive_expsym_cmds\"
-          else
-            eval cmds=\"$archive_cmds\"
-          fi
+         if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+           eval cmds=\"$archive_expsym_cmds\"
+         else
+           eval cmds=\"$archive_cmds\"
+         fi
 
          # Append the command to remove the reloadable object files
          # to the just-reset $cmds.
-          eval cmds=\"\$cmds~$rm $delfiles\"
-        fi
-        IFS="${IFS=    }"; save_ifs="$IFS"; IFS='~'
-        for cmd in $cmds; do
-          IFS="$save_ifs"
-          $show "$cmd"
-          $run eval "$cmd" || exit $?
-        done
-        IFS="$save_ifs"
+         eval cmds=\"\$cmds~$rm $delfiles\"
+       fi
+       save_ifs="$IFS"; IFS='~'
+       for cmd in $cmds; do
+         IFS="$save_ifs"
+         $show "$cmd"
+         $run eval "$cmd" || exit $?
+       done
+       IFS="$save_ifs"
 
        # Restore the uninstalled library and exit
        if test "$mode" = relink; then
@@ -2586,7 +2675,7 @@ EOF
          $show "$mkdir $gentop"
          $run $mkdir "$gentop"
          status=$?
-         if test $status -ne 0 && test ! -d "$gentop"; then
+         if test "$status" -ne 0 && test ! -d "$gentop"; then
            exit $status
          fi
          generated="$generated $gentop"
@@ -2605,7 +2694,7 @@ EOF
            $show "$mkdir $xdir"
            $run $mkdir "$xdir"
            status=$?
-           if test $status -ne 0 && test ! -d "$xdir"; then
+           if test "$status" -ne 0 && test ! -d "$xdir"; then
              exit $status
            fi
            $show "(cd $xdir && $AR x $xabs)"
@@ -2621,7 +2710,7 @@ EOF
 
       output="$obj"
       eval cmds=\"$reload_cmds\"
-      IFS="${IFS=      }"; save_ifs="$IFS"; IFS='~'
+      save_ifs="$IFS"; IFS='~'
       for cmd in $cmds; do
        IFS="$save_ifs"
        $show "$cmd"
@@ -2657,27 +2746,13 @@ EOF
        reload_objs="$libobjs $reload_conv_objs"
        output="$libobj"
        eval cmds=\"$reload_cmds\"
-       IFS="${IFS=     }"; save_ifs="$IFS"; IFS='~'
+       save_ifs="$IFS"; IFS='~'
        for cmd in $cmds; do
          IFS="$save_ifs"
          $show "$cmd"
          $run eval "$cmd" || exit $?
        done
        IFS="$save_ifs"
-#     else
-#      # Just create a symlink.
-#      $show $rm $libobj
-#      $run $rm $libobj
-#      xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
-#      if test "X$xdir" = "X$libobj"; then
-#        xdir="."
-#      else
-#        xdir="$xdir"
-#      fi
-#      baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
-#      oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
-#      $show "(cd $xdir && $LN_S $oldobj $baseobj)"
-#      $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
       fi
 
       if test -n "$gentop"; then
@@ -2690,7 +2765,7 @@ EOF
 
     prog)
       case $host in
-       *cygwin*) output=`echo $output | sed -e 's,.exe$,,;s,$,.exe,'` ;;
+       *cygwin*) output=`echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
       esac
       if test -n "$vinfo"; then
        $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
@@ -2810,6 +2885,12 @@ EOF
       fi
       finalize_rpath="$rpath"
 
+      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
+
       dlsyms=
       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
        if test -n "$NM" && test -n "$global_symbol_pipe"; then
@@ -2852,7 +2933,7 @@ extern \"C\" {
            test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
 
            # Add our own program objects to the symbol list.
-           progfiles="$objs$old_deplibs"
+           progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
            for arg in $progfiles; do
              $show "extracting global C symbols from \`$arg'"
              $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
@@ -2872,9 +2953,9 @@ extern \"C\" {
            if test -z "$export_symbols"; then
              export_symbols="$output_objdir/$output.exp"
              $run $rm $export_symbols
-             $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+             $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
            else
-             $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
+             $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
              $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
              $run eval 'mv "$nlist"T "$nlist"'
            fi
@@ -2882,7 +2963,7 @@ extern \"C\" {
 
          for arg in $dlprefiles; do
            $show "extracting global C symbols from \`$arg'"
-           name=`echo "$arg" | sed -e 's%^.*/%%'`
+           name=`echo "$arg" | ${SED} -e 's%^.*/%%'`
            $run eval 'echo ": $name " >> "$nlist"'
            $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
          done
@@ -2914,27 +2995,25 @@ extern \"C\" {
 #undef lt_preloaded_symbols
 
 #if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
+# define lt_ptr void *
 #else
-# define lt_ptr_t char *
+# define lt_ptr char *
 # define const
 #endif
 
 /* The mapping between symbol names and symbols. */
 const struct {
   const char *name;
-  lt_ptr_t address;
+  lt_ptr address;
 }
 lt_preloaded_symbols[] =
 {\
 "
 
-           sed -n -e 's/^: \([^ ]*\) $/  {\"\1\", (lt_ptr_t) 0},/p' \
-               -e 's/^. \([^ ]*\) \([^ ]*\)$/  {"\2", (lt_ptr_t) \&\2},/p' \
-                 < "$nlist" >> "$output_objdir/$dlsyms"
+           eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
 
            $echo >> "$output_objdir/$dlsyms" "\
-  {0, (lt_ptr_t) 0}
+  {0, (lt_ptr) 0}
 };
 
 /* This works around a problem in FreeBSD linker */
@@ -2996,7 +3075,7 @@ static const void *lt_preloaded_setup() {
        finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
       fi
 
-      if test $need_relink = no || test "$build_libtool_libs" != yes; then
+      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
        # Replace the output file specification.
        compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
        link_command="$compile_command$compile_rpath"
@@ -3121,7 +3200,7 @@ static const void *lt_preloaded_setup() {
            relink_command="$var=\"$var_value\"; export $var; $relink_command"
          fi
        done
-       relink_command="cd `pwd`; $relink_command"
+       relink_command="(cd `pwd`; $relink_command)"
        relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
       fi
 
@@ -3141,7 +3220,7 @@ static const void *lt_preloaded_setup() {
        # win32 will think the script is a binary if it has
        # a .exe suffix, so we strip it off here.
        case $output in
-         *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
+         *.exe) output=`echo $output|${SED} 's,.exe$,,'` ;;
        esac
        # test for cygwin because mv fails w/o .exe extensions
        case $host in
@@ -3165,7 +3244,7 @@ static const void *lt_preloaded_setup() {
 
 # Sed substitution that helps us do robust quoting.  It backslashifies
 # metacharacters that are still active within double-quoted strings.
-Xsed='sed -e 1s/^X//'
+Xsed='${SED} -e 1s/^X//'
 sed_quote_subst='$sed_quote_subst'
 
 # The HP-UX ksh and POSIX shell print the target directory to stdout
@@ -3203,7 +3282,7 @@ else
   test \"x\$thisdir\" = \"x\$file\" && thisdir=.
 
   # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
+  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
   while test -n \"\$file\"; do
     destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
 
@@ -3216,7 +3295,7 @@ else
     fi
 
     file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
   done
 
   # Try to get the absolute directory name.
@@ -3230,7 +3309,7 @@ else
   progdir=\"\$thisdir/$objdir\"
 
   if test ! -f \"\$progdir/\$program\" || \\
-     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
        test \"X\$file\" != \"X\$progdir/\$program\"; }; then
 
     file=\"\$\$-\$program\"
@@ -3247,7 +3326,7 @@ else
     if test -n \"\$relink_command\"; then
       if relink_command_output=\`eval \$relink_command 2>&1\`; then :
       else
-        $echo \"\$relink_command_output\" >&2
+       $echo \"\$relink_command_output\" >&2
        $rm \"\$progdir/\$file\"
        exit 1
       fi
@@ -3352,7 +3431,7 @@ fi\
          oldobjs="$libobjs_save"
          build_libtool_libs=no
        else
-         oldobjs="$objs$old_deplibs $non_pic_objects"
+         oldobjs="$oldobjs$old_deplibs $non_pic_objects"
        fi
        addlibs="$old_convenience"
       fi
@@ -3364,7 +3443,7 @@ fi\
        $show "$mkdir $gentop"
        $run $mkdir "$gentop"
        status=$?
-       if test $status -ne 0 && test ! -d "$gentop"; then
+       if test "$status" -ne 0 && test ! -d "$gentop"; then
          exit $status
        fi
        generated="$generated $gentop"
@@ -3384,13 +3463,13 @@ fi\
          $show "$mkdir $xdir"
          $run $mkdir "$xdir"
          status=$?
-         if test $status -ne 0 && test ! -d "$xdir"; then
+         if test "$status" -ne 0 && test ! -d "$xdir"; then
            exit $status
          fi
          $show "(cd $xdir && $AR x $xabs)"
          $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
 
-         oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print | $NL2SP`
+         oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
        done
       fi
 
@@ -3398,59 +3477,41 @@ fi\
       if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
        eval cmds=\"$old_archive_from_new_cmds\"
       else
-#      # Ensure that we have .o objects in place in case we decided
-#      # not to build a shared library, and have fallen back to building
-#      # static libs even though --disable-static was passed!
-#      for oldobj in $oldobjs; do
-#        if test ! -f $oldobj; then
-#          xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
-#          if test "X$xdir" = "X$oldobj"; then
-#            xdir="."
-#          else
-#            xdir="$xdir"
-#          fi
-#          baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
-#          obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
-#          $show "(cd $xdir && ${LN_S} $obj $baseobj)"
-#          $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
-#        fi
-#      done
-
-        eval cmds=\"$old_archive_cmds\"
-
-        if len=`expr "X$cmds" : ".*"` &&
-             test $len -le $max_cmd_len; then
-          :
-        else
-          # the command line is too long to link in one step, link in parts
-          $echo "using piecewise archive linking..."
+       eval cmds=\"$old_archive_cmds\"
+
+       if len=`expr "X$cmds" : ".*"` &&
+            test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+         :
+       else
+         # the command line is too long to link in one step, link in parts
+         $echo "using piecewise archive linking..."
          save_RANLIB=$RANLIB
          RANLIB=:
-          objlist=
-          concat_cmds=
-          save_oldobjs=$oldobjs
-          for obj in $save_oldobjs
-          do
-            oldobjs="$objlist $obj"
-            objlist="$objlist $obj"
-            eval test_cmds=\"$old_archive_cmds\"
-            if len=`expr "X$test_cmds" : ".*"` &&
-               test $len -le $max_cmd_len; then
-              :
-            else
-              # the above command should be used before it gets too long
-              oldobjs=$objlist
+         objlist=
+         concat_cmds=
+         save_oldobjs=$oldobjs
+         for obj in $save_oldobjs
+         do
+           oldobjs="$objlist $obj"
+           objlist="$objlist $obj"
+           eval test_cmds=\"$old_archive_cmds\"
+           if len=`expr "X$test_cmds" : ".*"` &&
+              test "$len" -le "$max_cmd_len"; then
+             :
+           else
+             # the above command should be used before it gets too long
+             oldobjs=$objlist
              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-              eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
-              objlist=
-            fi
-          done
+             eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+             objlist=
+           fi
+         done
          RANLIB=$save_RANLIB
-          oldobjs=$objlist
-          eval cmds=\"\$concat_cmds~$old_archive_cmds\"
-        fi
+         oldobjs=$objlist
+         eval cmds=\"\$concat_cmds~$old_archive_cmds\"
+       fi
       fi
-      IFS="${IFS=      }"; save_ifs="$IFS"; IFS='~'
+      save_ifs="$IFS"; IFS='~'
       for cmd in $cmds; do
        IFS="$save_ifs"
        $show "$cmd"
@@ -3483,7 +3544,7 @@ fi\
        fi
       done
       # Quote the link command for shipping.
-      relink_command="cd `pwd`; $SHELL $0 --mode=relink $libtool_args"
+      relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args)"
       relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
 
       # Only create the output if not a dry run.
@@ -3500,7 +3561,7 @@ fi\
              case $deplib in
              *.la)
                name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
-               eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
                if test -z "$libdir"; then
                  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
                  exit 1
@@ -3514,7 +3575,7 @@ fi\
            newdlfiles=
            for lib in $dlfiles; do
              name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-             eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+             eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
              if test -z "$libdir"; then
                $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
                exit 1
@@ -3525,7 +3586,7 @@ fi\
            newdlprefiles=
            for lib in $dlprefiles; do
              name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-             eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+             eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
              if test -z "$libdir"; then
                $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
                exit 1
@@ -3573,7 +3634,7 @@ dlpreopen='$dlprefiles'
 
 # Directory that this library needs to be installed in:
 libdir='$install_libdir'"
-         if test "$installed" = no && test $need_relink = yes; then
+         if test "$installed" = no && test "$need_relink" = yes; then
            $echo >> $output "\
 relink_command=\"$relink_command\""
          fi
index d6eb14bd7fea32a82dae25c9efc0c714c105af24..97f15661e506e0ef5d23126da45573f4e954578c 100644 (file)
@@ -12,7 +12,7 @@ DEFINE test-or-exit
 if ([=test=]) > /dev/null 2>&1 ; then[=
   invert "  :\nelse"  =][=
   ENDIF               =]
-  $echo "$modename: [=msg=]" 1>&2[=
+  $echo [=(shell-str (prefix "$modename: " (get "msg")))=] 1>&2[=
   IF (not (exist? "no_help")) =]
   $echo "$help" 1>&2[=
   ENDIF               =]
@@ -25,15 +25,19 @@ ENDDEF                =][=
 DEFINE share-to-static-warn
 
 =]
-cat 1>&2 <<_EOF_
-*** Warning: This library needs some functionality provided by [=libname=].
-*** I can automatically link to that library when you link
-*** to this library, but I can only do this if you have a shared
-*** version of [=libname=].  You do not appear to have one.[=
+( echo "*** Warning: Trying to link with static lib archive [=
+       libname=]."
+  echo "*** I have the capability to link that library automatically when"
+  echo "*** you link to this library, but only if you have a shared"
+  echo "*** version of [=libname=].  You do not appear to have one."[=
 
 #  Right here would be a *really* good place to to add some hints
-   about where to look to find info about making a shared version ... =]
-_EOF_[=
+   about where to look to find info about making a shared version ... =][=
+
+  IF (exist? "msg") =]
+  $echo [=(shell-str (prefix "*** " (get "msg")))=][=
+  ENDIF =]
+) 1>&2[=
 
 ENDDEF                =][=
 
@@ -41,19 +45,19 @@ ENDDEF                =][=
 DEFINE lock-conflict  =][=
 
   % test "\nif (%s) > /dev/null 2>&1 ; then" =]
-  cat >&2 <<_EOF_
+  echo "\
 *** ERROR, $lockfile exists and contains:
 `cat $lockfile 2>/dev/null`
 
 but it should contain:
-$srcfile
+  $srcfile
 
 This indicates that another process is trying to use the same temporary
 object file, and libtool could not work around it because your compiler
-does not support \\`-c' and \\`-o' together.  If you repeat this
+does not support \`-c' and \`-o' together.  If you repeat this
 compilation, it may succeed, by chance, but you had better avoid parallel
-builds (make -j) on this platform, or get another compiler.
-_EOF_
+builds (make -j) on this platform, or get another compiler."
+
   $run $rm $removelist
   exit 1[=
 test "\nfi" =][=
index 1abdc6a9a97d2db83cac8dbd587e1da4132d987b..278e497a4b8e7c6a8e341029ce37369ce800d470 100644 (file)
@@ -249,6 +249,7 @@ emitScript( argc, argv )
     tSCC zQuiet[]    = "run=\nshow=%s\n";
     tSCC zDynFmt[]   = "build_libtool_libs=%s\n";
     tSCC zStatic[]   = "build_old_libs=%s\n";
+    tSCC zDupDeps[]  = "duplicate_deps=%s\n";
     tSCC zModeName[] = "modename='%s: %s'\n";
     tSCC zMode[]     = "mode='%s'\n";
     tSCC zCmdName[]  = "nonopt='%s'\nset --";
@@ -298,6 +299,10 @@ else  echo='%s --echo --' ; fi\n";
         fprintf( fp, zDynFmt, ENABLED_OPT( DYNAMIC ) ? "yes" : "no" );
     if (HAVE_OPT( STATIC ))
         fprintf( fp, zStatic, ENABLED_OPT( STATIC )  ? "yes" : "no" );
+    if (HAVE_OPT( PRESERVE_DUP_DEPS ))
+               fprintf( fp, zDupDeps, "yes" );
+       else
+               fprintf( fp, zDupDeps, "no" );
 
     if (HAVE_OPT( DEBUG )) {
         fprintf( stderr, "%s: enabling shell trace mode\n",
@@ -359,10 +364,23 @@ else  echo='%s --echo --' ; fi\n";
     fputs( apz_mode_cmd[ OPT_VALUE_MODE ], fp );
     CLOSEOK;
 
-    fputc( '\n', fp );
-    CLOSEOK;
-
-    fflush( fp );
+       /*
+        *  Now all the commands have run.  Sometimes, however, the operation
+        *  is deferred by putting the command to run into an environment variable
+        *  and eval-ing it at the end.  So, emit some code that verifies that
+        *  if the shell is still interpreting text, then "exec_cmd" is not empty.
+        */
+       {
+               tSCC z[] =
+                       "if test -z \"${exec_cmd}\"\nthen\n"
+                       "  $echo $modename: 'invalid operation mode:  `$mode'\\' 1>&2\n"
+                       "  $echo 'Try `%s --help'\\' for more information 1>&2\nfi\n"
+                       "eval exec $exec_cmd\nexit 1\n";
+               fprintf( fp, z, libtoolOptions.pzProgName );
+               CLOSEOK;
+
+               fflush( fp );
+       }
 
     if (fp != stdout)
         closeScript( fp );
index 334f0618bd326a7689fa3d8384b773cfcace143d..85f905cd61af4210dee7d9f6985de321eabd52e3 100644 (file)
@@ -1,8 +1,8 @@
-[= AutoGen5 Template in=ltmain.in =]
+[= AutoGen5 Template in=newltmain.in =]
 [=( dne "# " "# " )=]
 #
 # ltmain.sh - Provide generalized library-building support services.
-# NOTE: Changing this file will not affect anything until you rerun ltconfig.
+# NOTE: Changing this file will not affect anything until you rerun configure.
 #
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
 # Free Software Foundation, Inc.
@@ -53,7 +53,7 @@ EOF
 fi
 
 # The name of this program.
-progname=`$echo "$0" | sed 's%^.*/%%'`
+progname=`$echo "$0" | ${SED} 's%^.*/%%'`
 modename="$progname"
 
 # Constants.
@@ -67,12 +67,6 @@ help="Try \`$progname --help' for more information."
 
 [= INCLUDE "base-txt.tpl" =]
 
-if test "$LTCONFIG_VERSION" != "$VERSION"; then
-  echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
-  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-  exit 1
-fi
-
 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
   echo "$modename: not configured to build any kind of library" 1>&2
   echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
@@ -90,7 +84,7 @@ show_help=
 execute_dlfiles=
 
 # Parse our command line options once, thoroughly.
-while test $# -gt 0
+while test "$#" -gt 0
 do
   arg="$1"
   shift
@@ -114,7 +108,7 @@ do
       *[!-_A-Za-z0-9,/]*)
        echo "$progname: invalid tag name: $tagname" 1>&2
        exit 1
-        ;;
+       ;;
       esac
 
       case $tagname in
@@ -123,14 +117,14 @@ do
        # not specially marked.
        ;;
       *)
-        if grep "^### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then
-          taglist="$taglist $tagname"
+       if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then
+         taglist="$taglist $tagname"
          # Evaluate the configuration.
-         eval "`sed -n -e '/^### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`"
-        else
+         eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`"
+       else
          echo "$progname: ignoring unknown tag $tagname" 1>&2
-        fi
-        ;;
+       fi
+       ;;
       esac
       ;;
     *)
@@ -151,14 +145,19 @@ do
 
   --version)
     echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
+    echo
+    echo "Copyright 1996, 1997, 1998, 1999, 2000, 2001"
+    echo "Free Software Foundation, Inc."
+    echo "This is free software; see the source for copying conditions.  There is NO"
+    echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
     exit 0
     ;;
 
   --config)
-    sed -n -e '/^### BEGIN LIBTOOL CONFIG/,/^### END LIBTOOL CONFIG/p' < "$0"
+    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
     # Now print the configurations for the tags.
     for tagname in $taglist; do
-      sed -n -e "/^### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0"
+      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0"
     done
     exit 0
     ;;
@@ -192,6 +191,8 @@ do
   --mode) prevopt="--mode" prev=mode ;;
   --mode=*) mode="$optarg" ;;
 
+  --preserve-dup-deps) duplicate_deps="yes" ;;
+
   --quiet | --silent)
     show=:
     ;;
@@ -227,6 +228,11 @@ if test -n "$prevopt"; then
   exit 1
 fi
 
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end.  This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
 if test -z "$show_help"; then
 
   # Infer the operation mode.
@@ -302,8 +308,6 @@ if test -z "$show_help"; then
     modename="$modename: install"
 
 [= INCLUDE "install-txt.tpl" =]
-
-    exit 0
     ;;
 
   # libtool finish mode
@@ -328,6 +332,7 @@ if test -z "$show_help"; then
   clean | uninstall)
     modename="$modename: $mode"
 [= INCLUDE "clean-txt.tpl" =]
+
     exit $exit_status
     ;;
 
@@ -338,11 +343,18 @@ if test -z "$show_help"; then
     ;;
   esac
 
-  $echo "$modename: invalid operation mode \`$mode'" 1>&2
-  $echo "$generic_help" 1>&2
-  exit 1
+  if test -z "$exec_cmd"; then
+    $echo "$modename: invalid operation mode \`$mode'" 1>&2
+    $echo "$generic_help" 1>&2
+    exit 1
+  fi
 fi # test -z "$show_help"
 
+if test -n "$exec_cmd"; then
+  eval exec $exec_cmd
+  exit 1
+fi
+
 # We need to display help for each of the modes.
 case $mode in
 "") $echo \
@@ -547,24 +559,16 @@ exit 0
 # If a disable-shared tag is given, we'll fallback to a static-only
 # configuration.  But we'll never go from static-only to shared-only.
 
-### BEGIN LIBTOOL TAG CONFIG: disable-shared
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
 build_libtool_libs=no
 build_old_libs=yes
-### END LIBTOOL TAG CONFIG: disable-shared
+# ### END LIBTOOL TAG CONFIG: disable-shared
 
-### BEGIN LIBTOOL TAG CONFIG: disable-static
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
 build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
-### END LIBTOOL TAG CONFIG: disable-static
+# ### END LIBTOOL TAG CONFIG: disable-static
 
 # Local Variables:
 # mode:shell-script
 # sh-indentation:2
-# End:[=
-
- #
- * Local Variables:
- * mode:shell-script
- * sh-indentation:2
- * End:
- *
- * ltmain.tpl ends here =]
+# End:
index d07776c1b35ff9b524777f6b20034bf8c3ee8b68..c70c05db4a7decaff7fd11224ad6f637f35ac586 100644 (file)
@@ -81,6 +81,13 @@ flag = {
     doc       = "This option is equivalent to `--mode=finish'";
 };
 
+flag = {
+    name      = "preserve_dup_deps";
+    descrip   = "normally, duplicate libs are removed";
+    doc       = "Sometimes in some circumstances it is necessary to search\n"
+                "a library multiple times.  By default, we do not.";
+};
+
 flag = {
     name      = "fallback_echo";
     flag_code = '    SET_OPT_MODE("echo");';