]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* config/ltmain.m4sh (func_source): New function.
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Fri, 12 Aug 2005 21:06:47 +0000 (21:06 +0000)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Fri, 12 Aug 2005 21:06:47 +0000 (21:06 +0000)
(func_mode_execute, func_mode_install, func_mode_link): Use it.
Do not append a dot to a file name to source, it breaks on
cygwin managed mounts and is not necessary anywhere.
Reported by Eric Blake <ebb9@byu.net>.

ChangeLog
config/ltmain.m4sh

index fae9c46ae959417e0374e0c74eff9218292fd490..b474c0d5339c50c61d7ad96bfa399ddadfa49301 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2005-08-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
+       * config/ltmain.m4sh (func_source): New function.
+       (func_mode_execute, func_mode_install, func_mode_link): Use it.
+       Do not append a dot to a file name to source, it breaks on
+       cygwin managed mounts and is not necessary anywhere.
+       Reported by Eric Blake <ebb9@byu.net>.
+
        * tests/defs.m4sh (func_configure): Rename to ..
        (func_configure_nofail): this, call from old.
        * tests/fcdemo-conf.test, tests/fcdemo-shared.test,
index 71107140dc1a5e1a5ad13ff51b30a6932aa53313..db954143b1f5a886a9d81d58374ccaa0c55edd30 100644 (file)
@@ -585,6 +585,24 @@ _LT_EOF
   fi
 }
 
+
+# func_source file
+# Source FILE, adding directory component if necessary.
+# Note that it is not necessary on cygwin/mingw to append a dot to
+# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
+# behavior happens only for exec(3), not for open(2)!  Also, sourcing
+# `FILE.' does not work on cygwin managed mounts.
+func_source ()
+{
+    $opt_debug
+    case $1 in
+    */* | *\\*)        . "$1" ;;
+    *)         . "./$1" ;;
+    esac
+}
+
+
+
 # func_win32_libid arg
 # return the library type of file 'arg'
 #
@@ -1448,12 +1466,7 @@ func_mode_execute ()
        # Read the libtool library.
        dlname=
        library_names=
-
-       # If there is no directory component, then add one.
-       case $file in
-       */* | *\\*) . $file ;;
-       *) . ./$file ;;
-       esac
+       func_source "$file"
 
        # Skip this library if it cannot be dlopened.
        if test -z "$dlname"; then
@@ -1510,11 +1523,7 @@ func_mode_execute ()
       *)
        # Do a test to see if this is really a libtool program.
        if (${SED} -e '4q' $file | $GREP "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-         # If there is no directory component, then add one.
-         case $file in
-         */* | *\\*) . $file ;;
-         *) . ./$file ;;
-         esac
+         func_source "$file"
 
          # Transform arg to wrapped name.
          file="$progdir/$program"
@@ -1783,11 +1792,7 @@ func_mode_install ()
        library_names=
        old_library=
        relink_command=
-       # If there is no directory component, then add one.
-       case $file in
-       */* | *\\*) . $file ;;
-       *) . ./$file ;;
-       esac
+       func_source "$file"
 
        # Add the libdir to current_libdirs if it is the destination.
        if test "X$destdir" = "X$libdir"; then
@@ -1971,18 +1976,7 @@ func_mode_install ()
          notinst_deplibs=
          relink_command=
 
-         # To insure that "foo" is sourced, and not "foo.exe",
-         # finese the cygwin/MSYS system by explicitly sourcing "foo."
-         # which disallows the automatic-append-.exe behavior.
-         case $build in
-         *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
-         *) wrapperdot=${wrapper} ;;
-         esac
-         # If there is no directory component, then add one.
-         case $file in
-         */* | *\\*) . ${wrapperdot} ;;
-         *) . ./${wrapperdot} ;;
-         esac
+         func_source "$wrapper"
 
          # Check the variables that should have been set.
          test -z "$generated_by_libtool_version" && \
@@ -1993,11 +1987,7 @@ func_mode_install ()
            # Check to see that each library is installed.
            libdir=
            if test -f "$lib"; then
-             # If there is no directory component, then add one.
-             case $lib in
-             */* | *\\*) . $lib ;;
-             *) . ./$lib ;;
-             esac
+             func_source "$lib"
            fi
            libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
            if test -n "$libdir" && test ! -f "$libfile"; then
@@ -2007,18 +1997,7 @@ func_mode_install ()
          done
 
          relink_command=
-         # To insure that "foo" is sourced, and not "foo.exe",
-         # finese the cygwin/MSYS system by explicitly sourcing "foo."
-         # which disallows the automatic-append-.exe behavior.
-         case $build in
-         *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
-         *) wrapperdot=${wrapper} ;;
-         esac
-         # If there is no directory component, then add one.
-         case $file in
-         */* | *\\*) . ${wrapperdot} ;;
-         *) . ./${wrapperdot} ;;
-         esac
+         func_source "$wrapper"
 
          outputname=
          if test "$fast_install" = no && test -n "$relink_command"; then
@@ -2324,11 +2303,7 @@ func_mode_link ()
                non_pic_object=
 
                # Read the .lo file
-               # If there is no directory component, then add one.
-               case $arg in
-               */* | *\\*) . $arg ;;
-               *) . ./$arg ;;
-               esac
+               func_source "$arg"
 
                if test -z "$pic_object" ||
                   test -z "$non_pic_object" ||
@@ -2837,11 +2812,7 @@ func_mode_link ()
          non_pic_object=
 
          # Read the .lo file
-         # If there is no directory component, then add one.
-         case $arg in
-         */* | *\\*) . $arg ;;
-         *) . ./$arg ;;
-         esac
+         func_source "$arg"
 
          if test -z "$pic_object" ||
             test -z "$non_pic_object" ||
@@ -3101,8 +3072,7 @@ func_mode_link ()
          # Ignore non-libtool-libs
          dependency_libs=
          case $lib in
-         *[[\\/]]*.la) . $lib   ;;
-         *.la)       . ./$lib ;;
+         *.la) func_source "$lib" ;;
          esac
 
          # Collect preopened libtool deplibs, except any this library
@@ -3176,10 +3146,7 @@ func_mode_link ()
                    $GREP "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
                  library_names=
                  old_library=
-                 case $lib in
-                 */* | *\\*) . $lib ;;
-                 *) . ./$lib ;;
-                 esac
+                 func_source "$lib"
                  for l in $old_library $library_names; do
                    ll="$l"
                  done
@@ -3365,10 +3332,7 @@ func_mode_link ()
 
 
        # Read the .la file
-       case $lib in
-       */* | *\\*) . $lib ;;
-       *) . ./$lib ;;
-       esac
+       func_source "$lib"
 
        case $host in
        *-*-darwin*)