From: Jo-Philipp Wich <jow@openwrt.org>
Date: Sun, 29 Jan 2012 17:42:10 +0000 (+0000)
Subject: ext-toolchain.sh: support --wrap with src == dest
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=86ddf7c7a8abe74468d9fcbac8f512b9454f0bd2;p=openwrt%2Fstaging%2Fneocturne.git

ext-toolchain.sh: support --wrap with src == dest

SVN-Revision: 29944
---

diff --git a/scripts/ext-toolchain.sh b/scripts/ext-toolchain.sh
index 257e0d8e82..23d14a7483 100755
--- a/scripts/ext-toolchain.sh
+++ b/scripts/ext-toolchain.sh
@@ -205,11 +205,17 @@ wrap_bins() {
 		for cmd in "${CC%-*}-"*; do
 			if [ -x "$cmd" ]; then
 				local out="$1/${cmd##*/}"
+				local bin="$cmd"
+
+				if [ -x "$out" ] && ! grep -q STAGING_DIR "$out"; then
+					mv "$out" "$out.bin"
+					bin='$(dirname "$0")/'"${out##*/}"'.bin'
+				fi
 
 				echo '#!/bin/sh' > "$out"
 				case "${cmd##*/}" in
 					*-*cc|*-*cc-*|*-*++|*-*++-*|*-cpp)
-						echo -n 'exec "'"$cmd"'" '"$CFLAGS"' '         >> "$out"
+						echo -n 'exec "'"$bin"'" '"$CFLAGS"' '         >> "$out"
 						echo -n '${STAGING_DIR:+-idirafter '           >> "$out"
 						echo -n '"$STAGING_DIR/usr/include" '          >> "$out"
 						echo -n '-L "$STAGING_DIR/usr/lib" '           >> "$out"
@@ -217,13 +223,13 @@ wrap_bins() {
 						echo    '"$STAGING_DIR/usr/lib"} "$@"'         >> "$out"
 					;;
 					*-ld)
-						echo -n 'exec "'"$cmd"'" ${STAGING_DIR:+'      >> "$out"
+						echo -n 'exec "'"$bin"'" ${STAGING_DIR:+'      >> "$out"
 						echo -n '-L "$STAGING_DIR/usr/lib" '           >> "$out"
 						echo -n '-rpath-link '                         >> "$out"
 						echo    '"$STAGING_DIR/usr/lib"} "$@"'         >> "$out"
 					;;
 					*)
-						echo "exec '$cmd' \"\$@\"" >> "$out"
+						echo    'exec "'"$bin"'" "$@"'                 >> "$out"
 					;;
 				esac
 				chmod +x "$out"