diff options
author | Jason Wessel <jason.wessel@windriver.com> | 2013-02-12 05:08:22 -0600 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-02-12 13:01:52 +0000 |
commit | 0e6dd19b9736d2a8ae7c0f0ab124337d579b8f06 (patch) | |
tree | 9d59b9f9dbfdf3dc302ad678a9d6543e3c70b21f | |
parent | 3752a9c6d772b39bbe04d62ef4d3527b4c7198c1 (diff) | |
download | openembedded-core-0e6dd19b9736d2a8ae7c0f0ab124337d579b8f06.tar.gz openembedded-core-0e6dd19b9736d2a8ae7c0f0ab124337d579b8f06.tar.bz2 openembedded-core-0e6dd19b9736d2a8ae7c0f0ab124337d579b8f06.zip |
populate_sdk_base.bbclass: Improve debugging capabilities for SDK installer
After having to debug the SDK installer a few times in
addition to the relocation code the following patch was created
to improve the capabilities around debugging the SDK installer.
1) Add a verbose mode -D which set a set -x to see what
the SDK installer is doing.
2) Add a mode -S to save the relocation scripts for the purpose
of debugging them in conjunction with -D
3) Add a mode -R to not execute the relocation scripts for the
purpose of debugging the relocations.
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/classes/populate_sdk_base.bbclass | 48 |
1 files changed, 42 insertions, 6 deletions
diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass index c025d4083c..923f9257a6 100644 --- a/meta/classes/populate_sdk_base.bbclass +++ b/meta/classes/populate_sdk_base.bbclass @@ -136,7 +136,10 @@ DEFAULT_INSTALL_DIR="${SDKPATH}" SUDO_EXEC="" target_sdk_dir="" answer="" -while getopts ":yd:" OPT; do +relocate=1 +savescripts=0 +verbose=0 +while getopts ":yd:DRS" OPT; do case $OPT in y) answer="Y" @@ -145,15 +148,33 @@ while getopts ":yd:" OPT; do d) target_sdk_dir=$OPTARG ;; + D) + verbose=1 + ;; + R) + relocate=0 + savescripts=1 + ;; + S) + savescripts=1 + ;; *) echo "Usage: $(basename $0) [-y] [-d <dir>]" echo " -y Automatic yes to all prompts" echo " -d <dir> Install the SDK to <dir>" + echo "======== Advanced DEBUGGING ONLY OPTIONS ========" + echo " -S Save relocation scripts" + echo " -R Do not relocate executables" + echo " -D use set -x to see what is going on" exit 1 ;; esac done +if [ $verbose = 1 ] ; then + set -x +fi + printf "Enter target directory for SDK (default: $DEFAULT_INSTALL_DIR): " if [ "$target_sdk_dir" = "" ]; then read target_sdk_dir @@ -231,10 +252,23 @@ if [ "$dl_path" = "" ] ; then exit 1 fi executable_files=$($SUDO_EXEC find $native_sysroot -type f -perm +111) -$SUDO_EXEC ${env_setup_script%/*}/relocate_sdk.py $target_sdk_dir $dl_path $executable_files -if [ $? -ne 0 ]; then - echo "SDK could not be set up. Relocate script failed. Abort!" - exit 1 + +tdir=`mktemp -d` +if [ x$tdir = x ] ; then + echo "SDK relocate failed, could not create a temporary directory" + exit 1 +fi +echo "#!/bin/bash" > $tdir/relocate_sdk.sh +echo exec ${env_setup_script%/*}/relocate_sdk.py $target_sdk_dir $dl_path $executable_files >> $tdir/relocate_sdk.sh +$SUDO_EXEC mv $tdir/relocate_sdk.sh ${env_setup_script%/*}/relocate_sdk.sh +$SUDO_EXEC chmod 755 ${env_setup_script%/*}/relocate_sdk.sh +rm -rf $tdir +if [ $relocate = 1 ] ; then + $SUDO_EXEC ${env_setup_script%/*}/relocate_sdk.sh + if [ $? -ne 0 ]; then + echo "SDK could not be set up. Relocate script failed. Abort!" + exit 1 + fi fi # replace ${SDKPATH} with the new prefix in all text files: configs/scripts/etc @@ -249,7 +283,9 @@ echo done # delete the relocating script, so that user is forced to re-run the installer # if he/she wants another location for the sdk -$SUDO_EXEC rm ${env_setup_script%/*}/relocate_sdk.py +if [ $savescripts = 0 ] ; then + $SUDO_EXEC rm ${env_setup_script%/*}/relocate_sdk.py ${env_setup_script%/*}/relocate_sdk.sh +fi echo "SDK has been successfully set up and is ready to be used." |