From: Ralf Wildenhues Date: Fri, 12 Aug 2005 21:06:47 +0000 (+0000) Subject: * config/ltmain.m4sh (func_source): New function. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fa7a0f6ccb4010ffa99d079a9de6ee9bbbb5ba42;p=thirdparty%2Flibtool.git * 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 . --- diff --git a/ChangeLog b/ChangeLog index fae9c46ae..b474c0d53 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2005-08-12 Ralf Wildenhues + * 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 . + * tests/defs.m4sh (func_configure): Rename to .. (func_configure_nofail): this, call from old. * tests/fcdemo-conf.test, tests/fcdemo-shared.test, diff --git a/config/ltmain.m4sh b/config/ltmain.m4sh index 71107140d..db954143b 100644 --- a/config/ltmain.m4sh +++ b/config/ltmain.m4sh @@ -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*)