diff --git a/misc/tools-source/install_wrapper.sh b/misc/tools-source/install_wrapper.sh index a207f9635..cbb4ac80c 100644 --- a/misc/tools-source/install_wrapper.sh +++ b/misc/tools-source/install_wrapper.sh @@ -20,10 +20,6 @@ logfile="${INSTALL_WRAPPER_LOGFILE:-/dev/null}" [ -z "${logfile##*/*}" -a ! -d "${logfile%/*}" ] && logfile=/dev/null command="${0##*/}" -destination="" -declare -a sources -newcommand="$command" -sources_counter=0 error=0 echo "" >> $logfile @@ -31,6 +27,38 @@ echo "$PWD:" >> $logfile echo "* ${INSTALL_WRAPPER_FILTER:-No Filter.}" >> $logfile echo "- $command $*" >> $logfile +case "$command" in + chmod|chown) + declare -a newparams + newparams[0]="$command" + actually_got_file_params=0 + newparams_c=0 + for p; do + case "$p" in + -*) newparams[newparams_c++]="$p" ;; + *) f="$( eval "echo \"$p\" | tr -s '/' $filter" )" + if [ -n "$f" ]; then + newparams[newparams_c++]="$f" + if [ -f "$f" -o -z "${f##*/*}" ]; then + actually_got_file_params=1 + fi + fi ;; + esac + done + if [ $actually_got_file_params = 1 ]; then + echo "+ $command ${newparams[*]}" >> $logfile + $command "${newparams[@]}" || error=$? + fi + echo "===> Returncode: $error" >> $logfile + exit $error + ;; +esac + +destination="" +declare -a sources +newcommand="$command" +sources_counter=0 + if [ "${*/--target-directory//}" != "$*" ]; then echo "= $command $*" >> $logfile $command "$@"; exit $? diff --git a/package/base/binutils/binutils.conf b/package/base/binutils/binutils.conf index ad3aa7ffb..62381e16b 100644 --- a/package/base/binutils/binutils.conf +++ b/package/base/binutils/binutils.conf @@ -27,6 +27,7 @@ case "$xpkg" in pkg_binutils_cross="${xpkg#**-cross-}" var_append confopt " " "--target=$pkg_binutils_cross-unknown-linux-gnu" echo_status "Preparing to build a cross-binutils package for $pkg_binutils_cross." + var_append INSTALL_WRAPPER_FILTER "|" 'sed -r "\,/share/(info|locale)/|/lib.*/libiberty.a, d"' ;; $pkg) ;; diff --git a/package/base/gcc/gcc.conf b/package/base/gcc/gcc.conf index da6d6a52a..7af568641 100644 --- a/package/base/gcc/gcc.conf +++ b/package/base/gcc/gcc.conf @@ -32,6 +32,7 @@ case "$xpkg" in var_append confopt " " "--target=$pkg_gcc_target" echo_status "Preparing to build a cross-gcc package for $pkg_gcc_cross." + var_append INSTALL_WRAPPER_FILTER "|" 'sed -r "\,/share/(info|locale)/, d"' ;; gcc?|gcc??) ;; diff --git a/scripts/Build-Tools b/scripts/Build-Tools index 051c0010a..d820a59e3 100755 --- a/scripts/Build-Tools +++ b/scripts/Build-Tools @@ -223,7 +223,9 @@ EOT ln -sf install_wrapper build/$ROCKCFG_ID/ROCK/$toolsdir/wrapper/cp ln -sf install_wrapper build/$ROCKCFG_ID/ROCK/$toolsdir/wrapper/ln ln -sf install_wrapper build/$ROCKCFG_ID/ROCK/$toolsdir/wrapper/mv - wrappers="$wrappers install_wrapper install cp ln mv" + ln -sf install_wrapper build/$ROCKCFG_ID/ROCK/$toolsdir/wrapper/chmod + ln -sf install_wrapper build/$ROCKCFG_ID/ROCK/$toolsdir/wrapper/chown + wrappers="$wrappers install_wrapper install cp ln mv chmod chown" # for x in $( ls build/$ROCKCFG_ID/ROCK/$toolsdir/wrapper/ ) do