]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* ltmain.in (progpath): Work around backward compatibility issue
authorAlbert Chin-A-Young <china@thewrittenword.com>
Thu, 12 Feb 2004 13:36:25 +0000 (13:36 +0000)
committerGary V. Vaughan <gary@gnu.org>
Thu, 12 Feb 2004 13:36:25 +0000 (13:36 +0000)
on IRIX 6.5. On IRIX 6.4+, sh is ksh but when the shell is invoked
as "sh" and the current value of the _XPG environment variable is
not equal to 1 (one), the special positional parameter $0, within
a function call, is the name of the function. So, rather than
using "$0" in functions, we set $progpath in the body and use that
everywhere instead (incase of code refactoring later).
(EXIT_SUCCESS, EXIT_FAILURE, EXIT_MISMATCH): For clarity.

ChangeLog
ltmain.in

index 1c95c982a75874a87551bf724fb9a695f5d68d59..d673ac3692a9834692dbfbfab4640d862e26dc67 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2004-02-12  Albert Chin-A-Young  <china@thewrittenword.com>,
+           Gary V. Vaughan  <gary@gnu.org>
+
+       * ltmain.in (progpath): Work around backward compatibility issue
+       on IRIX 6.5. On IRIX 6.4+, sh is ksh but when the shell is invoked
+       as "sh" and the current value of the _XPG environment variable is
+       not equal to 1 (one), the special positional parameter $0, within
+       a function call, is the name of the function. So, rather than
+       using "$0" in functions, we set $progpath in the body and use that
+       everywhere instead (incase of code refactoring later).
+       (EXIT_SUCCESS, EXIT_FAILURE, EXIT_MISMATCH): For clarity.
+
 2004-02-11  Gary V. Vaughan  <gary@gnu.org>
 
        * commit: Completely change CVS/Root->name sed script to actually
index 452bd1b2d3f8894fb718ec5e86e3005e2b3d08de..f76c9502d1487a975f5c78546e061cfc389e26ff 100644 (file)
--- a/ltmain.in
+++ b/ltmain.in
@@ -1,7 +1,7 @@
 # ltmain.sh - Provide generalized library-building support services.
 # NOTE: Changing this file will not affect anything until you rerun configure.
 #
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004
 # Free Software Foundation, Inc.
 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 #
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
+basename="$SED s,^.*/,,g"
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+# The name of this program:
+progname=`echo "$progpath" | $basename`
+modename="$progname"
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+
+PROGRAM=ltmain.sh
+PACKAGE=@PACKAGE@
+VERSION=@VERSION@
+TIMESTAMP="@TIMESTAMP@"
+
+
 # Check that we have a working $echo.
 if test "X$1" = X--no-reexec; then
   # Discard the --no-reexec flag, and continue.
@@ -36,7 +59,7 @@ elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
   :
 else
   # Restart under the correct shell, and then maybe $echo will work.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
+  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
 fi
 
 if test "X$1" = X--fallback-echo; then
@@ -45,19 +68,9 @@ if test "X$1" = X--fallback-echo; then
   cat <<EOF
 $*
 EOF
-  exit 0
+  exit $EXIT_SUCCESS
 fi
 
-# The name of this program.
-progname=`$echo "$0" | ${SED} 's%^.*/%%'`
-modename="$progname"
-
-# Constants.
-PROGRAM=ltmain.sh
-PACKAGE=@PACKAGE@
-VERSION=@VERSION@
-TIMESTAMP="@TIMESTAMP@"
-
 default_mode=
 help="Try \`$progname --help' for more information."
 magic="%%%MAGIC variable%%%"
@@ -100,7 +113,7 @@ 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
-  exit 1
+  exit $EXIT_FAILURE
 fi
 
 # Global variables.
@@ -144,7 +157,7 @@ func_win32_libid () {
       fi
     fi
     ;;
-  *DLL*) 
+  *DLL*)
     win32_libid_type="x86 DLL"
     ;;
   *executable*) # but shell scripts are "executable" too...
@@ -184,9 +197,9 @@ func_infer_tag () {
       # if we don't check for them as well.
       *)
        for z in $available_tags; do
-         if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
+         if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
            # Evaluate the configuration.
-           eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
+           eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
            CC_quoted=
            for arg in $CC; do
            # Double-quote args containing other shell metacharacters.
@@ -214,7 +227,7 @@ func_infer_tag () {
        if test -z "$tagname"; then
          $echo "$modename: unable to infer tagged configuration"
          $echo "$modename: specify a tag with \`--tag'" 1>&2
-         exit 1
+         exit $EXIT_FAILURE
 #        else
 #          $echo "$modename: using $tagname tagged configuration"
        fi
@@ -250,7 +263,7 @@ do
       case $tagname in
       *[!-_A-Za-z0-9,/]*)
        $echo "$progname: invalid tag name: $tagname" 1>&2
-       exit 1
+       exit $EXIT_FAILURE
        ;;
       esac
 
@@ -260,10 +273,10 @@ do
        # not specially marked.
        ;;
       *)
-       if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then
+       if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /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`"
+         eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
        else
          $echo "$progname: ignoring unknown tag $tagname" 1>&2
        fi
@@ -292,16 +305,16 @@ do
     $echo "Copyright (C) 2003  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
+    exit $EXIT_SUCCESS
     ;;
 
   --config)
-    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
+    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
     # 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" < "$progpath"
     done
-    exit 0
+    exit $EXIT_SUCCESS
     ;;
 
   --debug)
@@ -326,7 +339,7 @@ do
     else
       $echo "disable static libraries"
     fi
-    exit 0
+    exit $EXIT_SUCCESS
     ;;
 
   --finish) mode="finish" ;;
@@ -357,7 +370,7 @@ do
   -*)
     $echo "$modename: unrecognized option \`$arg'" 1>&2
     $echo "$help" 1>&2
-    exit 1
+    exit $EXIT_FAILURE
     ;;
 
   *)
@@ -370,7 +383,7 @@ done
 if test -n "$prevopt"; then
   $echo "$modename: option \`$prevopt' requires an argument" 1>&2
   $echo "$help" 1>&2
-  exit 1
+  exit $EXIT_FAILURE
 fi
 
 # If this variable is set in any of the actions, the command in it
@@ -426,7 +439,7 @@ if test -z "$show_help"; then
   if test -n "$execute_dlfiles" && test "$mode" != execute; then
     $echo "$modename: unrecognized option \`-dlopen'" 1>&2
     $echo "$help" 1>&2
-    exit 1
+    exit $EXIT_FAILURE
   fi
 
   # Change the help message to a mode-specific one.
@@ -468,7 +481,7 @@ if test -z "$show_help"; then
        -o)
          if test -n "$libobj" ; then
            $echo "$modename: you cannot specify \`-o' more than once" 1>&2
-           exit 1
+           exit $EXIT_FAILURE
          fi
          arg_mode=target
          continue
@@ -543,11 +556,11 @@ if test -z "$show_help"; then
     case $arg_mode in
     arg)
       $echo "$modename: you must specify an argument for -Xcompile"
-      exit 1
+      exit $EXIT_FAILURE
       ;;
     target)
       $echo "$modename: you must specify a target with \`-o'" 1>&2
-      exit 1
+      exit $EXIT_FAILURE
       ;;
     *)
       # Get the name of the library object.
@@ -580,7 +593,7 @@ if test -z "$show_help"; then
     *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
     *)
       $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
-      exit 1
+      exit $EXIT_FAILURE
       ;;
     esac
 
@@ -617,7 +630,7 @@ if test -z "$show_help"; then
     if test -z "$base_compile"; then
       $echo "$modename: you must specify a compilation command" 1>&2
       $echo "$help" 1>&2
-      exit 1
+      exit $EXIT_FAILURE
     fi
 
     # Delete any leftover library objects.
@@ -628,7 +641,7 @@ if test -z "$show_help"; then
     fi
 
     $run $rm $removelist
-    trap "$run $rm $removelist; exit 1" 1 2 15
+    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
 
     # On Cygwin there's no "real" PIC flag so we must build both object types
     case $host_os in
@@ -647,7 +660,7 @@ if test -z "$show_help"; then
       output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
       lockfile="$output_obj.lock"
       removelist="$removelist $output_obj $lockfile"
-      trap "$run $rm $removelist; exit 1" 1 2 15
+      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
     else
       output_obj=
       need_locks=no
@@ -657,7 +670,7 @@ if test -z "$show_help"; then
     # Lock this critical section if it is needed
     # We use this script file to make the link, it avoids creating a new file
     if test "$need_locks" = yes; then
-      until $run ln "$0" "$lockfile" 2>/dev/null; do
+      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
        $show "Waiting for $lockfile to be removed"
        sleep 2
       done
@@ -675,7 +688,7 @@ avoid parallel builds (make -j) in this platform, or get a better
 compiler."
 
        $run $rm $removelist
-       exit 1
+       exit $EXIT_FAILURE
       fi
       $echo $srcfile > "$lockfile"
     fi
@@ -730,7 +743,7 @@ EOF
       if $run eval "$command"; then :
       else
        test -n "$output_obj" && $run $rm $removelist
-       exit 1
+       exit $EXIT_FAILURE
       fi
 
       if test "$need_locks" = warn &&
@@ -750,7 +763,7 @@ avoid parallel builds (make -j) in this platform, or get a better
 compiler."
 
        $run $rm $removelist
-       exit 1
+       exit $EXIT_FAILURE
       fi
 
       # Just move the object if needed, then go on to compile the next one
@@ -802,7 +815,7 @@ EOF
       if $run eval "$command"; then :
       else
        $run $rm $removelist
-       exit 1
+       exit $EXIT_FAILURE
       fi
 
       if test "$need_locks" = warn &&
@@ -822,7 +835,7 @@ avoid parallel builds (make -j) in this platform, or get a better
 compiler."
 
        $run $rm $removelist
-       exit 1
+       exit $EXIT_FAILURE
       fi
 
       # Just move the object if needed
@@ -860,7 +873,7 @@ EOF
       $run $rm "$lockfile"
     fi
 
-    exit 0
+    exit $EXIT_SUCCESS
     ;;
 
   # libtool link mode
@@ -1028,7 +1041,7 @@ EOF
          export_symbols="$arg"
          if test ! -f "$arg"; then
            $echo "$modename: symbol file \`$arg' does not exist"
-           exit 1
+           exit $EXIT_FAILURE
          fi
          prev=
          continue
@@ -1080,7 +1093,7 @@ EOF
                   test "$pic_object" = none && \
                   test "$non_pic_object" = none; then
                  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-                 exit 1
+                 exit $EXIT_FAILURE
                fi
 
                # Extract subdirectory from the argument.
@@ -1133,7 +1146,7 @@ EOF
                # 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
+                 exit $EXIT_FAILURE
                else
                  # Dry-run case.
 
@@ -1154,7 +1167,7 @@ EOF
            done
          else
            $echo "$modename: link input file \`$save_arg' does not exist"
-           exit 1
+           exit $EXIT_FAILURE
          fi
          arg=$save_arg
          prev=
@@ -1166,7 +1179,7 @@ EOF
          [\\/]* | [A-Za-z]:[\\/]*) ;;
          *)
            $echo "$modename: only absolute run-paths are allowed" 1>&2
-           exit 1
+           exit $EXIT_FAILURE
            ;;
          esac
          if test "$prev" = rpath; then
@@ -1254,7 +1267,7 @@ EOF
       -export-symbols | -export-symbols-regex)
        if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
          $echo "$modename: more than one -exported-symbols argument is not allowed"
-         exit 1
+         exit $EXIT_FAILURE
        fi
        if test "X$arg" = "X-export-symbols"; then
          prev=expsyms
@@ -1290,7 +1303,7 @@ EOF
          absdir=`cd "$dir" && pwd`
          if test -z "$absdir"; then
            $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
-           exit 1
+           exit $EXIT_FAILURE
          fi
          dir="$absdir"
          ;;
@@ -1441,7 +1454,7 @@ EOF
        [\\/]* | [A-Za-z]:[\\/]*) ;;
        *)
          $echo "$modename: only absolute run-paths are allowed" 1>&2
-         exit 1
+         exit $EXIT_FAILURE
          ;;
        esac
        case "$xrpath " in
@@ -1564,7 +1577,7 @@ EOF
             test "$pic_object" = none && \
             test "$non_pic_object" = none; then
            $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-           exit 1
+           exit $EXIT_FAILURE
          fi
 
          # Extract subdirectory from the argument.
@@ -1617,7 +1630,7 @@ EOF
          # 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
+           exit $EXIT_FAILURE
          else
            # Dry-run case.
 
@@ -1684,7 +1697,7 @@ EOF
     if test -n "$prev"; then
       $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
       $echo "$help" 1>&2
-      exit 1
+      exit $EXIT_FAILURE
     fi
 
     if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
@@ -1728,7 +1741,7 @@ EOF
     "")
       $echo "$modename: you must specify an output file" 1>&2
       $echo "$help" 1>&2
-      exit 1
+      exit $EXIT_FAILURE
       ;;
     *.$libext) linkmode=oldlib ;;
     *.lo | *.$objext) linkmode=obj ;;
@@ -1791,7 +1804,7 @@ EOF
          *.la) ;;
          *)
            $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
-           exit 1
+           exit $EXIT_FAILURE
            ;;
          esac
        done
@@ -2008,14 +2021,14 @@ EOF
        if test "$found" = yes || test -f "$lib"; then :
        else
          $echo "$modename: cannot find the library \`$lib'" 1>&2
-         exit 1
+         exit $EXIT_FAILURE
        fi
 
        # Check to see that this really is a libtool archive.
        if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
        else
          $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-         exit 1
+         exit $EXIT_FAILURE
        fi
 
        ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
@@ -2051,7 +2064,7 @@ EOF
          if test -z "$libdir"; then
            if test -z "$old_library"; then
              $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-             exit 1
+             exit $EXIT_FAILURE
            fi
            # It is a libtool convenience library, so add in its objects.
            convenience="$convenience $ladir/$objdir/$old_library"
@@ -2068,12 +2081,12 @@ EOF
            done
          elif test "$linkmode" != prog && test "$linkmode" != lib; then
            $echo "$modename: \`$lib' is not a convenience library" 1>&2
-           exit 1
+           exit $EXIT_FAILURE
          fi
          continue
        fi # $pass = conv
 
-    
+
        # Get the name of the library we link against.
        linklib=
        for l in $old_library $library_names; do
@@ -2081,14 +2094,14 @@ EOF
        done
        if test -z "$linklib"; then
          $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-         exit 1
+         exit $EXIT_FAILURE
        fi
 
        # This library was specified with -dlopen.
        if test "$pass" = dlopen; then
          if test -z "$libdir"; then
            $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
-           exit 1
+           exit $EXIT_FAILURE
          fi
          if test -z "$dlname" ||
             test "$dlopen_support" != yes ||
@@ -2141,7 +2154,7 @@ EOF
        if test "$pass" = dlpreopen; then
          if test -z "$libdir"; then
            $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
-           exit 1
+           exit $EXIT_FAILURE
          fi
          # Prefer using a static library (so that no silly _DYNAMIC symbols
          # are required to link).
@@ -2168,7 +2181,7 @@ EOF
          continue
        fi
 
-    
+
        if test "$linkmode" = prog && test "$pass" != link; then
          newlib_search_path="$newlib_search_path $ladir"
          deplibs="$lib $deplibs"
@@ -2255,7 +2268,7 @@ EOF
            need_relink=yes
          fi
          # This is a shared library
-       
+
          # Warn about portability, can't link against -module's on
          # some systems (darwin)
          if test "$shouldnotlink" = yes && test "$pass" = link ; then
@@ -2265,7 +2278,7 @@ EOF
            else
              $echo "*** Warning: Linking the shared library $output against the loadable module"
            fi
-           $echo "*** $linklib is not portable!"    
+           $echo "*** $linklib is not portable!"
          fi
          if test "$linkmode" = lib &&
             test "$hardcode_into_libs" = yes; then
@@ -2374,7 +2387,7 @@ EOF
                        $echo "** The link will probably fail, sorry"
                      else
                        add="$dir/$old_library"
-                     fi 
+                     fi
                    fi
                esac
              elif test "$hardcode_minus_L" = no; then
@@ -2416,7 +2429,7 @@ EOF
 
            if test "$lib_linked" != yes; then
              $echo "$modename: configuration error: unsupported hardcode properties"
-             exit 1
+             exit $EXIT_FAILURE
            fi
 
            if test -n "$add_shlibpath"; then
@@ -2598,7 +2611,7 @@ EOF
                  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
+                   exit $EXIT_FAILURE
                  fi
                  if test "$absdir" != "$libdir"; then
                    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
@@ -2629,7 +2642,7 @@ EOF
                *)
                  path="-L$path"
                  ;;
-               esac 
+               esac
                ;;
              -l*)
                case $host in
@@ -2640,19 +2653,19 @@ EOF
                    if test -f "$tmp/lib$tmp_libs.dylib" ; then
                      eval depdepl="$tmp/lib$tmp_libs.dylib"
                      break
-                   fi  
+                   fi
                  done
                  path=""
                  ;;
                *) continue ;;
-               esac              
+               esac
                ;;
              *) continue ;;
              esac
              case " $deplibs " in
              *" $depdepl "*) ;;
              *) deplibs="$deplibs $depdepl" ;;
-             esac            
+             esac
              case " $deplibs " in
              *" $path "*) ;;
              *) deplibs="$deplibs $path" ;;
@@ -2810,7 +2823,7 @@ EOF
        if test "$module" = no; then
          $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
          $echo "$help" 1>&2
-         exit 1
+         exit $EXIT_FAILURE
        fi
        if test "$need_lib_prefix" != no; then
          # Add the "lib" prefix for modules if required
@@ -2826,7 +2839,7 @@ EOF
       if test -n "$objs"; then
        if test "$deplibs_check_method" != pass_all; then
          $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
-         exit 1
+         exit $EXIT_FAILURE
        else
          $echo
          $echo "*** Warning: Linking the shared library $output against the non-libtool"
@@ -2874,13 +2887,13 @@ EOF
        if test -n "$8"; then
          $echo "$modename: too many parameters to \`-version-info'" 1>&2
          $echo "$help" 1>&2
-         exit 1
+         exit $EXIT_FAILURE
        fi
 
        # convert absolute version numbers to libtool ages
        # this retains compatibility with .la files and attempts
        # to make the code below a bit more comprehensible
-       
+
        case $vinfo_number in
        yes)
          number_major="$2"
@@ -2924,7 +2937,7 @@ EOF
        *)
          $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-         exit 1
+         exit $EXIT_FAILURE
          ;;
        esac
 
@@ -2933,7 +2946,7 @@ EOF
        *)
          $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-         exit 1
+         exit $EXIT_FAILURE
          ;;
        esac
 
@@ -2942,14 +2955,14 @@ EOF
        *)
          $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-         exit 1
+         exit $EXIT_FAILURE
          ;;
        esac
 
        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
+         exit $EXIT_FAILURE
        fi
 
        # Calculate the version variables.
@@ -3038,7 +3051,7 @@ EOF
        *)
          $echo "$modename: unknown library version type \`$version_type'" 1>&2
          $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-         exit 1
+         exit $EXIT_FAILURE
          ;;
        esac
 
@@ -3639,12 +3652,12 @@ EOF
        for test_deplib in $deplibs; do
                case " $convenience " in
                *" $test_deplib "*) ;;
-               *) 
+               *)
                        tmp_deplibs="$tmp_deplibs $test_deplib"
                        ;;
                esac
        done
-       deplibs="$tmp_deplibs" 
+       deplibs="$tmp_deplibs"
 
        if test -n "$convenience"; then
          if test -n "$whole_archive_flag_spec"; then
@@ -3874,7 +3887,7 @@ EOF
        # Restore the uninstalled library and exit
        if test "$mode" = relink; then
          $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
-         exit 0
+         exit $EXIT_SUCCESS
        fi
 
        # Create links to the real library.
@@ -3922,7 +3935,7 @@ EOF
       *.lo)
        if test -n "$objs$old_deplibs"; then
          $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
-         exit 1
+         exit $EXIT_FAILURE
        fi
        libobj="$output"
        obj=`$echo "X$output" | $Xsed -e "$lo2o"`
@@ -4033,7 +4046,7 @@ EOF
          $run ${rm}r $gentop
        fi
 
-       exit 0
+       exit $EXIT_SUCCESS
       fi
 
       if test "$build_libtool_libs" != yes; then
@@ -4046,7 +4059,7 @@ EOF
        # accidentally link it into a program.
        # $show "echo timestamp > $libobj"
        # $run eval "echo timestamp > $libobj" || exit $?
-       exit 0
+       exit $EXIT_SUCCESS
       fi
 
       if test -n "$pic_flag" || test "$pic_mode" != default; then
@@ -4069,7 +4082,7 @@ EOF
        $run ${rm}r $gentop
       fi
 
-      exit 0
+      exit $EXIT_SUCCESS
       ;;
 
     prog)
@@ -4387,7 +4400,7 @@ static const void *lt_preloaded_setup() {
          ;;
        *)
          $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
-         exit 1
+         exit $EXIT_FAILURE
          ;;
        esac
       else
@@ -4475,7 +4488,7 @@ static const void *lt_preloaded_setup() {
        # Link the executable and exit
        $show "$link_command"
        $run eval "$link_command" || exit $?
-       exit 0
+       exit $EXIT_SUCCESS
       fi
 
       if test "$hardcode_action" = relink; then
@@ -4530,10 +4543,10 @@ static const void *lt_preloaded_setup() {
       fi
 
       # Quote $echo for shipping.
-      if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
-       case $0 in
-       [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
-       *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
+      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
+       case $progpath in
+       [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
+       *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
        esac
        qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
       else
@@ -4559,7 +4572,7 @@ static const void *lt_preloaded_setup() {
            cwrappersource=`$echo ${objdir}/lt-${output}.c`
            cwrapper=`$echo ${output}.exe`
            $rm $cwrappersource $cwrapper
-           trap "$rm $cwrappersource $cwrapper; exit 1" 1 2 15
+           trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
 
            cat > $cwrappersource <<EOF
 
@@ -4568,7 +4581,7 @@ static const void *lt_preloaded_setup() {
 
    The $output program cannot be directly executed until all the libtool
    libraries that it depends on are installed.
-   
+
    This wrapper executable should never be moved out of the build directory.
    If it is, it will not operate correctly.
 
@@ -4600,7 +4613,7 @@ EOF
 #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
   defined (__OS2__)
 #define HAVE_DOS_BASED_FILE_SYSTEM
-#ifndef DIR_SEPARATOR_2 
+#ifndef DIR_SEPARATOR_2
 #define DIR_SEPARATOR_2 '\\'
 #endif
 #endif
@@ -4631,7 +4644,7 @@ main (int argc, char *argv[])
 {
   char **newargz;
   int i;
-  
+
   program_name = (char *) xstrdup ((char *) basename (argv[0]));
   newargz = XMALLOC(char *, argc+2);
 EOF
@@ -4644,7 +4657,7 @@ EOF
   newargz[1] = fnqualify(argv[0]);
   /* we know the script has the same name, without the .exe */
   /* so make sure newargz[1] doesn't end in .exe */
-  strendzap(newargz[1],".exe"); 
+  strendzap(newargz[1],".exe");
   for (i = 1; i < argc; i++)
     newargz[i+1] = xstrdup(argv[i]);
   newargz[argc+1] = NULL;
@@ -4667,7 +4680,7 @@ xmalloc (size_t num)
   return p;
 }
 
-char * 
+char *
 xstrdup (const char *string)
 {
   return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
@@ -4681,7 +4694,7 @@ basename (const char *name)
 
 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
   /* Skip over the disk name in MSDOS pathnames. */
-  if (isalpha (name[0]) && name[1] == ':') 
+  if (isalpha (name[0]) && name[1] == ':')
     name += 2;
 #endif
 
@@ -4691,7 +4704,7 @@ basename (const char *name)
   return (char *) base;
 }
 
-char * 
+char *
 fnqualify(const char *path)
 {
   size_t size;
@@ -4719,7 +4732,7 @@ fnqualify(const char *path)
 }
 
 char *
-strendzap(char *str, const char *pat) 
+strendzap(char *str, const char *pat)
 {
   size_t len, patlen;
 
@@ -4739,7 +4752,7 @@ strendzap(char *str, const char *pat)
 }
 
 static void
-lt_error_core (int exit_status, const char * mode, 
+lt_error_core (int exit_status, const char * mode,
           const char * message, va_list ap)
 {
   fprintf (stderr, "%s: %s: ", program_name, mode);
@@ -4768,7 +4781,7 @@ EOF
          ;;
        esac
        $rm $output
-       trap "$rm $output; exit 1" 1 2 15
+       trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
 
        $echo > $output "\
 #! $SHELL
@@ -4868,7 +4881,7 @@ else
       else
        $echo \"\$relink_command_output\" >&2
        $rm \"\$progdir/\$file\"
-       exit 1
+       exit $EXIT_FAILURE
       fi
     fi
 
@@ -4930,20 +4943,20 @@ else
        esac
        $echo >> $output "\
       \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
-      exit 1
+      exit $EXIT_FAILURE
     fi
   else
     # The program doesn't exist.
     \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
     \$echo \"This script is just a wrapper for \$program.\" 1>&2
     $echo \"See the $PACKAGE documentation for more information.\" 1>&2
-    exit 1
+    exit $EXIT_FAILURE
   fi
 fi\
 "
        chmod +x $output
       fi
-      exit 0
+      exit $EXIT_SUCCESS
       ;;
     esac
 
@@ -5062,7 +5075,7 @@ fi\
          for obj in $save_oldobjs
          do
            last_oldobj=$obj
-         done  
+         done
          for obj in $save_oldobjs
          do
            oldobjs="$objlist $obj"
@@ -5076,7 +5089,7 @@ fi\
              oldobjs=$objlist
              if test "$obj" = "$last_oldobj" ; then
                RANLIB=$save_RANLIB
-             fi  
+             fi
              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
              eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
              objlist=
@@ -5125,11 +5138,11 @@ fi\
        fi
       done
       # Quote the link command for shipping.
-      relink_command="(cd `pwd`; $SHELL $0 $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
       relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
       if test "$hardcode_automatic" = yes ; then
        relink_command=
-      fi  
+      fi
 
 
       # Only create the output if not a dry run.
@@ -5149,7 +5162,7 @@ fi\
                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
+                 exit $EXIT_FAILURE
                fi
                newdependency_libs="$newdependency_libs $libdir/$name"
                ;;
@@ -5163,7 +5176,7 @@ fi\
              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
+               exit $EXIT_FAILURE
              fi
              newdlfiles="$newdlfiles $libdir/$name"
            done
@@ -5174,7 +5187,7 @@ fi\
              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
+               exit $EXIT_FAILURE
              fi
              newdlprefiles="$newdlprefiles $libdir/$name"
            done
@@ -5182,7 +5195,7 @@ fi\
          else
            newdlfiles=
            for lib in $dlfiles; do
-             case $lib in 
+             case $lib in
                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
                *) abs=`pwd`"/$lib" ;;
              esac
@@ -5191,7 +5204,7 @@ fi\
            dlfiles="$newdlfiles"
            newdlprefiles=
            for lib in $dlprefiles; do
-             case $lib in 
+             case $lib in
                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
                *) abs=`pwd`"/$lib" ;;
              esac
@@ -5254,7 +5267,7 @@ relink_command=\"$relink_command\""
       $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
       ;;
     esac
-    exit 0
+    exit $EXIT_SUCCESS
     ;;
 
   # libtool install mode
@@ -5343,13 +5356,13 @@ relink_command=\"$relink_command\""
     if test -z "$install_prog"; then
       $echo "$modename: you must specify an install program" 1>&2
       $echo "$help" 1>&2
-      exit 1
+      exit $EXIT_FAILURE
     fi
 
     if test -n "$prev"; then
       $echo "$modename: the \`$prev' option requires an argument" 1>&2
       $echo "$help" 1>&2
-      exit 1
+      exit $EXIT_FAILURE
     fi
 
     if test -z "$files"; then
@@ -5359,7 +5372,7 @@ relink_command=\"$relink_command\""
        $echo "$modename: you must specify a destination" 1>&2
       fi
       $echo "$help" 1>&2
-      exit 1
+      exit $EXIT_FAILURE
     fi
 
     # Strip any trailing slash from the destination.
@@ -5380,7 +5393,7 @@ relink_command=\"$relink_command\""
       if test "$#" -gt 2; then
        $echo "$modename: \`$dest' is not a directory" 1>&2
        $echo "$help" 1>&2
-       exit 1
+       exit $EXIT_FAILURE
       fi
     fi
     case $destdir in
@@ -5392,7 +5405,7 @@ relink_command=\"$relink_command\""
        *)
          $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
          $echo "$help" 1>&2
-         exit 1
+         exit $EXIT_FAILURE
          ;;
        esac
       done
@@ -5421,7 +5434,7 @@ relink_command=\"$relink_command\""
        else
          $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
          $echo "$help" 1>&2
-         exit 1
+         exit $EXIT_FAILURE
        fi
 
        library_names=
@@ -5463,7 +5476,7 @@ relink_command=\"$relink_command\""
          # but it's something to keep an eye on.
          if test "$inst_prefix_dir" = "$destdir"; then
            $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
-           exit 1
+           exit $EXIT_FAILURE
          fi
 
          if test -n "$inst_prefix_dir"; then
@@ -5478,7 +5491,7 @@ relink_command=\"$relink_command\""
          if $run eval "$relink_command"; then :
          else
            $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-           exit 1
+           exit $EXIT_FAILURE
          fi
        fi
 
@@ -5557,7 +5570,7 @@ relink_command=\"$relink_command\""
        *)
          $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
          $echo "$help" 1>&2
-         exit 1
+         exit $EXIT_FAILURE
          ;;
        esac
 
@@ -5575,7 +5588,7 @@ relink_command=\"$relink_command\""
          $show "$install_prog $staticobj $staticdest"
          $run eval "$install_prog \$staticobj \$staticdest" || exit $?
        fi
-       exit 0
+       exit $EXIT_SUCCESS
        ;;
 
       *)
@@ -5629,7 +5642,7 @@ relink_command=\"$relink_command\""
          # Check the variables that should have been set.
          if test -z "$notinst_deplibs"; then
            $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
-           exit 1
+           exit $EXIT_FAILURE
          fi
 
          finalize=yes
@@ -5758,9 +5771,9 @@ relink_command=\"$relink_command\""
     if test -n "$current_libdirs"; then
       # Maybe just do a dry run.
       test -n "$run" && current_libdirs=" -n$current_libdirs"
-      exec_cmd='$SHELL $0 $preserve_args --finish$current_libdirs'
+      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
     else
-      exit 0
+      exit $EXIT_SUCCESS
     fi
     ;;
 
@@ -5800,7 +5813,7 @@ relink_command=\"$relink_command\""
     fi
 
     # Exit here if they wanted silent mode.
-    test "$show" = : && exit 0
+    test "$show" = : && exit $EXIT_SUCCESS
 
     $echo "----------------------------------------------------------------------"
     $echo "Libraries have been installed in:"
@@ -5836,7 +5849,7 @@ relink_command=\"$relink_command\""
     $echo "See any operating system documentation about shared libraries for"
     $echo "more information, such as the ld(1) and ld.so(8) manual pages."
     $echo "----------------------------------------------------------------------"
-    exit 0
+    exit $EXIT_SUCCESS
     ;;
 
   # libtool execute mode
@@ -5848,7 +5861,7 @@ relink_command=\"$relink_command\""
     if test -z "$cmd"; then
       $echo "$modename: you must specify a COMMAND" 1>&2
       $echo "$help"
-      exit 1
+      exit $EXIT_FAILURE
     fi
 
     # Handle -dlopen flags immediately.
@@ -5856,7 +5869,7 @@ relink_command=\"$relink_command\""
       if test ! -f "$file"; then
        $echo "$modename: \`$file' is not a file" 1>&2
        $echo "$help" 1>&2
-       exit 1
+       exit $EXIT_FAILURE
       fi
 
       dir=
@@ -5867,7 +5880,7 @@ relink_command=\"$relink_command\""
        else
          $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
          $echo "$help" 1>&2
-         exit 1
+         exit $EXIT_FAILURE
        fi
 
        # Read the libtool library.
@@ -5894,7 +5907,7 @@ relink_command=\"$relink_command\""
          dir="$dir/$objdir"
        else
          $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
-         exit 1
+         exit $EXIT_FAILURE
        fi
        ;;
 
@@ -5974,7 +5987,7 @@ relink_command=\"$relink_command\""
        $echo "export $shlibpath_var"
       fi
       $echo "$cmd$args"
-      exit 0
+      exit $EXIT_SUCCESS
     fi
     ;;
 
@@ -6002,7 +6015,7 @@ relink_command=\"$relink_command\""
     if test -z "$rm"; then
       $echo "$modename: you must specify an RM program" 1>&2
       $echo "$help" 1>&2
-      exit 1
+      exit $EXIT_FAILURE
     fi
 
     rmdirs=
@@ -6116,7 +6129,7 @@ relink_command=\"$relink_command\""
        if test "$mode" = clean ; then
          noexename=$name
          case $file in
-         *.exe) 
+         *.exe)
            file=`$echo $file|${SED} 's,.exe$,,'`
            noexename=`$echo $name|${SED} 's,.exe$,,'`
            # $file with .exe has already been added to rmfiles,
@@ -6161,20 +6174,20 @@ relink_command=\"$relink_command\""
   "")
     $echo "$modename: you must specify a MODE" 1>&2
     $echo "$generic_help" 1>&2
-    exit 1
+    exit $EXIT_FAILURE
     ;;
   esac
 
   if test -z "$exec_cmd"; then
     $echo "$modename: invalid operation mode \`$mode'" 1>&2
     $echo "$generic_help" 1>&2
-    exit 1
+    exit $EXIT_FAILURE
   fi
 fi # test -z "$show_help"
 
 if test -n "$exec_cmd"; then
   eval exec $exec_cmd
-  exit 1
+  exit $EXIT_FAILURE
 fi
 
 # We need to display help for each of the modes.
@@ -6210,7 +6223,7 @@ MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
 a more detailed description of MODE.
 
 Report bugs to <bug-libtool@gnu.org>."
-  exit 0
+  exit $EXIT_SUCCESS
   ;;
 
 clean)
@@ -6365,14 +6378,14 @@ Otherwise, only FILE itself is deleted using RM."
 *)
   $echo "$modename: invalid operation mode \`$mode'" 1>&2
   $echo "$help" 1>&2
-  exit 1
+  exit $EXIT_FAILURE
   ;;
 esac
 
 $echo
 $echo "Try \`$modename --help' for more information about other modes."
 
-exit 0
+exit $EXIT_SUCCESS
 
 # The TAGs below are defined such that we never get into a situation
 # in which we disable both kinds of libraries.  Given conflicting