diff options
Diffstat (limited to 'relink/1.4.3')
-rw-r--r-- | relink/1.4.3 | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/relink/1.4.3 b/relink/1.4.3 new file mode 100644 index 0000000..3ed5fe3 --- /dev/null +++ b/relink/1.4.3 @@ -0,0 +1,111 @@ +--- ltmain.sh Mon Feb 4 15:12:15 2002 ++++ ltmain.sh Mon Feb 4 15:12:15 2002 +@@ -745,6 +745,7 @@ + linker_flags= + dllsearchpath= + lib_search_path=`pwd` ++ inst_prefix_dir= + + avoid_version=no + dlfiles= +@@ -875,6 +876,11 @@ + prev= + continue + ;; ++ inst_prefix) ++ inst_prefix_dir="$arg" ++ prev= ++ continue ++ ;; + release) + release="-$arg" + prev= +@@ -976,6 +982,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]*:*) +@@ -1851,7 +1862,16 @@ + if test "$hardcode_direct" = yes; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then +- add_dir="-L$libdir" ++ # Try looking first in the location we're being installed to. ++ add_dir= ++ if test -n "$inst_prefix_dir"; then ++ case "$libdir" in ++ [\\/]*) ++ add_dir="-L$inst_prefix_dir$libdir" ++ ;; ++ esac ++ fi ++ add_dir="$add_dir -L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in +@@ -1861,7 +1881,16 @@ + add="-l$name" + else + # We cannot seem to hardcode it, guess we'll fake it. +- add_dir="-L$libdir" ++ # Try looking first in the location we're being installed to. ++ add_dir= ++ if test -n "$inst_prefix_dir"; then ++ case "$libdir" in ++ [\\/]*) ++ add_dir="-L$inst_prefix_dir$libdir" ++ ;; ++ esac ++ fi ++ add_dir="$add_dir -L$libdir" + add="-l$name" + fi + +@@ -3823,7 +3852,7 @@ + fi + done + # Quote the link command for shipping. +- relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args)" ++ relink_command="(cd `pwd`; $SHELL $0 --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. +@@ -4124,12 +4153,30 @@ + 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 : + else + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 +- continue ++ exit 1 + fi + fi + |