| --- ltmain.sh Wed Oct 3 02:05:35 2001 |
| +++ ltmain.sh Wed Oct 3 05:16:14 2001 |
| @@ -754,6 +754,7 @@ |
| linker_flags= |
| dllsearchpath= |
| lib_search_path=`pwd` |
| + inst_prefix_dir= |
| |
| avoid_version=no |
| dlfiles= |
| @@ -884,6 +885,11 @@ |
| prev= |
| continue |
| ;; |
| + inst_prefix) |
| + inst_prefix_dir="$arg" |
| + prev= |
| + continue |
| + ;; |
| release) |
| release="-$arg" |
| prev= |
| @@ -985,6 +991,11 @@ |
| continue |
| ;; |
| |
| + -inst-prefix-dir) |
| + prev=inst_prefix |
| + continue |
| + ;; |
| + |
| # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* |
| # so, if we see these flags be careful not to treat them like -L |
| -L[A-Z][A-Z]*:*) |
| @@ -1866,6 +1877,7 @@ |
| |
| if test "$linkmode" = prog || test "$mode" = relink; then |
| add_shlibpath= |
| + add_prefix_dir= |
| add_dir= |
| add= |
| # Finalize command for both is simple: just hardcode it. |
| @@ -1886,10 +1898,22 @@ |
| add="-l$name" |
| fi |
| |
| + if test -n "$inst_prefix_dir"; then |
| + case "$libdir" in |
| + [\\/]*) |
| + add_prefix_dir="-L$inst_prefix_dir$libdir" |
| + ;; |
| + esac |
| + fi |
| + |
| + # add_prefix_dir must be appended instead, otherwise it can |
| + # possibly be overrided by any hardcoded -L/... path in deplibs |
| if test "$linkmode" = prog; then |
| + test -n "$add_prefix_dir" && finalize_deplibs="$finalize_deplibs $add_prefix_dir" |
| test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" |
| test -n "$add" && finalize_deplibs="$add $finalize_deplibs" |
| else |
| + test -n "$add_prefix_dir" && deplibs="$deplibs $add_prefix_dir" |
| test -n "$add_dir" && deplibs="$add_dir $deplibs" |
| test -n "$add" && deplibs="$add $deplibs" |
| fi |
| @@ -3856,7 +3880,7 @@ |
| for tag in $taglist; do |
| tagopts="$tagopts --tag $tag" |
| done |
| - relink_command="(cd `pwd`; $SHELL $0$tagopts --mode=relink $libtool_args)" |
| + relink_command="(cd `pwd`; $SHELL $0$tagopts --mode=relink $libtool_args @inst_prefix_dir@)" |
| relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` |
| |
| # Only create the output if not a dry run. |
| @@ -4157,6 +4181,24 @@ |
| dir="$dir$objdir" |
| |
| if test -n "$relink_command"; then |
| + # Determine the prefix the user has applied to our future dir. |
| + inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"` |
| + |
| + # Don't allow the user to place us outside of our expected |
| + # location b/c this prevents finding dependent libraries that |
| + # are installed to the same prefix. |
| + if test "$inst_prefix_dir" = "$destdir"; then |
| + $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 |
| + exit 1 |
| + fi |
| + |
| + if test -n "$inst_prefix_dir"; then |
| + # Stick the inst_prefix_dir data into the link command. |
| + relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` |
| + else |
| + relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%%"` |
| + fi |
| + |
| $echo "$modename: warning: relinking \`$file'" 1>&2 |
| $show "$relink_command" |
| if $run eval "$relink_command"; then : |