Index: libtool-1.5.10/ltmain.in =================================================================== --- libtool-1.5.10.orig/ltmain.in 2008-07-25 16:24:21.000000000 +0800 +++ libtool-1.5.10/ltmain.in 2008-07-25 18:31:41.000000000 +0800 @@ -137,6 +137,52 @@ # Shell function definitions: # This seems to be the best place for them +# func_add_sysroot_path add LIBTOOL_SYSROOT_PATH as prefix in search path +# -L/usr/lib -> -L/home/foo/usr/lib if sysroot is /home/foo +func_add_sysroot_path () +{ + _suffix="" + _leading="" + case "${1}" in + -L*) + _suffix=`echo ${1} |sed -e s:-L::` + _suffix=${LIBTOOL_SYSROOT_PATH}${_suffix} + _leading="-L" + ;; + -I*) + _suffix=`echo ${1} |sed -e s:-I::` + _suffix=${LIBTOOL_SYSROOT_PATH}${_suffix} + _leading="-I" + ;; + /*) + _suffix=${LIBTOOL_SYSROOT_PATH}${1} + _leading="" + ;; + *) + _suffix=${1} + _leading="" + esac + eval add_sysroot_path_result=${_leading}${_suffix} +} + +# func_rm_sysroot_path remove LIBTOOL_SYSROOT_PATH +# -L/home/foo/usr/lib => if sysroot is /home/foo +func_rm_sysroot_path () { + __rm_sysroot_path=${1} + case $__rm_sysroot_path in + -L*) + __rm_sysroot_path=`echo ${1}|sed -e s:$LIBTOOL_SYSROOT_PATH:/:g` + ;; + -I*) + __rm_sysroot_path=`echo ${1}|sed -e s:$LIBTOOL_SYSROOT_PATH:/:g` + ;; + /*) + __rm_sysroot_path=`echo ${1}|sed -e s:$LIBTOOL_SYSROOT_PATH:/:g` + ;; + esac + rm_sysroot_path_result=`echo ${__rm_sysroot_path}|sed -e s://:/:g` +} + # func_win32_libid arg # return the library type of file 'arg' # @@ -2196,6 +2242,16 @@ *) . ./$lib ;; esac + # Add Sysroot to path # + tmp_depen_libs= + for depen_lib in $dependency_libs; do + func_add_sysroot_path $depen_lib + tmp_depen_libs="$tmp_depen_libs $add_sysroot_path_result " + done + dependency_libs=$tmp_depen_libs + func_add_sysroot_path $libdir + libdir="$add_sysroot_path_result" + if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then @@ -2777,6 +2833,10 @@ # $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 # fi if ! grep "^installed=no" $deplib > /dev/null; then + #Add Sysroot to libdir + func_add_sysroot_path $libdir + libdir=$add_sysroot_path_result + 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 @@ -5243,6 +5303,17 @@ case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac + + # Remove Sysroot from path before write in .la file # + tmp_depen_libs= + for depen_lib in $dependency_libs; do + func_rm_sysroot_path $depen_lib + tmp_depen_libs="$tmp_depen_libs $rm_sysroot_path_result " + done + dependency_libs=$tmp_depen_libs + func_rm_sysroot_path $libdir + libdir="$rm_sysroot_path_result" + $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP