diff options
| -rw-r--r-- | meta/classes/populate_sdk_base.bbclass | 12 | ||||
| -rw-r--r-- | meta/classes/populate_sdk_ext.bbclass | 11 | ||||
| -rw-r--r-- | meta/files/toolchain-shar-extract.sh | 7 |
3 files changed, 28 insertions, 2 deletions
diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass index 398e943a46..a9e9bd71d2 100644 --- a/meta/classes/populate_sdk_base.bbclass +++ b/meta/classes/populate_sdk_base.bbclass | |||
| @@ -51,6 +51,7 @@ PID = "${@os.getpid()}" | |||
| 51 | EXCLUDE_FROM_WORLD = "1" | 51 | EXCLUDE_FROM_WORLD = "1" |
| 52 | 52 | ||
| 53 | SDK_PACKAGING_FUNC ?= "create_shar" | 53 | SDK_PACKAGING_FUNC ?= "create_shar" |
| 54 | SDK_PRE_INSTALL_COMMAND ?= "" | ||
| 54 | SDK_POST_INSTALL_COMMAND ?= "" | 55 | SDK_POST_INSTALL_COMMAND ?= "" |
| 55 | SDK_RELOCATE_AFTER_INSTALL ?= "1" | 56 | SDK_RELOCATE_AFTER_INSTALL ?= "1" |
| 56 | 57 | ||
| @@ -134,15 +135,21 @@ fakeroot create_shar() { | |||
| 134 | # copy in the template shar extractor script | 135 | # copy in the template shar extractor script |
| 135 | cp ${COREBASE}/meta/files/toolchain-shar-extract.sh ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh | 136 | cp ${COREBASE}/meta/files/toolchain-shar-extract.sh ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh |
| 136 | 137 | ||
| 137 | rm -f ${T}/post_install_command | 138 | rm -f ${T}/pre_install_command ${T}/post_install_command |
| 138 | 139 | ||
| 139 | if [ ${SDK_RELOCATE_AFTER_INSTALL} -eq 1 ] ; then | 140 | if [ ${SDK_RELOCATE_AFTER_INSTALL} -eq 1 ] ; then |
| 140 | cp ${COREBASE}/meta/files/toolchain-shar-relocate.sh ${T}/post_install_command | 141 | cp ${COREBASE}/meta/files/toolchain-shar-relocate.sh ${T}/post_install_command |
| 141 | fi | 142 | fi |
| 143 | cat << "EOF" >> ${T}/pre_install_command | ||
| 144 | ${SDK_PRE_INSTALL_COMMAND} | ||
| 145 | EOF | ||
| 146 | |||
| 142 | cat << "EOF" >> ${T}/post_install_command | 147 | cat << "EOF" >> ${T}/post_install_command |
| 143 | ${SDK_POST_INSTALL_COMMAND} | 148 | ${SDK_POST_INSTALL_COMMAND} |
| 144 | EOF | 149 | EOF |
| 145 | sed -i -e '/@SDK_POST_INSTALL_COMMAND@/r ${T}/post_install_command' ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh | 150 | sed -i -e '/@SDK_PRE_INSTALL_COMMAND@/r ${T}/pre_install_command' \ |
| 151 | -e '/@SDK_POST_INSTALL_COMMAND@/r ${T}/post_install_command' \ | ||
| 152 | ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh | ||
| 146 | 153 | ||
| 147 | # substitute variables | 154 | # substitute variables |
| 148 | sed -i -e 's#@SDK_ARCH@#${SDK_ARCH}#g' \ | 155 | sed -i -e 's#@SDK_ARCH@#${SDK_ARCH}#g' \ |
| @@ -151,6 +158,7 @@ EOF | |||
| 151 | -e 's#@REAL_MULTIMACH_TARGET_SYS@#${REAL_MULTIMACH_TARGET_SYS}#g' \ | 158 | -e 's#@REAL_MULTIMACH_TARGET_SYS@#${REAL_MULTIMACH_TARGET_SYS}#g' \ |
| 152 | -e 's#@SDK_TITLE@#${SDK_TITLE}#g' \ | 159 | -e 's#@SDK_TITLE@#${SDK_TITLE}#g' \ |
| 153 | -e 's#@SDK_VERSION@#${SDK_VERSION}#g' \ | 160 | -e 's#@SDK_VERSION@#${SDK_VERSION}#g' \ |
| 161 | -e '/@SDK_PRE_INSTALL_COMMAND@/d' \ | ||
| 154 | -e '/@SDK_POST_INSTALL_COMMAND@/d' \ | 162 | -e '/@SDK_POST_INSTALL_COMMAND@/d' \ |
| 155 | ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh | 163 | ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh |
| 156 | 164 | ||
diff --git a/meta/classes/populate_sdk_ext.bbclass b/meta/classes/populate_sdk_ext.bbclass index 8a80a563f0..b28413b8f5 100644 --- a/meta/classes/populate_sdk_ext.bbclass +++ b/meta/classes/populate_sdk_ext.bbclass | |||
| @@ -173,6 +173,17 @@ install_tools() { | |||
| 173 | install ${SDK_DEPLOY}/${BUILD_ARCH}-nativesdk-libc.tar.bz2 ${SDK_OUTPUT}/${SDKPATH} | 173 | install ${SDK_DEPLOY}/${BUILD_ARCH}-nativesdk-libc.tar.bz2 ${SDK_OUTPUT}/${SDKPATH} |
| 174 | } | 174 | } |
| 175 | 175 | ||
| 176 | # Since bitbake won't run as root it doesn't make sense to try and install | ||
| 177 | # the extensible sdk as root. | ||
| 178 | sdk_ext_preinst() { | ||
| 179 | if [ "`id -u`" = "0" ]; then | ||
| 180 | echo "ERROR: The extensible sdk cannot be installed as root." | ||
| 181 | exit 1 | ||
| 182 | fi | ||
| 183 | SDK_EXTENSIBLE="1" | ||
| 184 | } | ||
| 185 | SDK_PRE_INSTALL_COMMAND_task-populate-sdk-ext = "${sdk_ext_preinst}" | ||
| 186 | |||
| 176 | # FIXME this preparation should be done as part of the SDK construction | 187 | # FIXME this preparation should be done as part of the SDK construction |
| 177 | sdk_ext_postinst() { | 188 | sdk_ext_postinst() { |
| 178 | printf "\nExtracting buildtools...\n" | 189 | printf "\nExtracting buildtools...\n" |
diff --git a/meta/files/toolchain-shar-extract.sh b/meta/files/toolchain-shar-extract.sh index 8cb8783f97..0a33ee8f5d 100644 --- a/meta/files/toolchain-shar-extract.sh +++ b/meta/files/toolchain-shar-extract.sh | |||
| @@ -71,6 +71,8 @@ if [ $verbose = 1 ] ; then | |||
| 71 | set -x | 71 | set -x |
| 72 | fi | 72 | fi |
| 73 | 73 | ||
| 74 | @SDK_PRE_INSTALL_COMMAND@ | ||
| 75 | |||
| 74 | if [ "$target_sdk_dir" = "" ]; then | 76 | if [ "$target_sdk_dir" = "" ]; then |
| 75 | read -e -p "Enter target directory for SDK (default: $DEFAULT_INSTALL_DIR): " target_sdk_dir | 77 | read -e -p "Enter target directory for SDK (default: $DEFAULT_INSTALL_DIR): " target_sdk_dir |
| 76 | [ "$target_sdk_dir" = "" ] && target_sdk_dir=$DEFAULT_INSTALL_DIR | 78 | [ "$target_sdk_dir" = "" ] && target_sdk_dir=$DEFAULT_INSTALL_DIR |
| @@ -116,6 +118,11 @@ mkdir -p $target_sdk_dir >/dev/null 2>&1 | |||
| 116 | 118 | ||
| 117 | # if don't have the right to access dir, gain by sudo | 119 | # if don't have the right to access dir, gain by sudo |
| 118 | if [ ! -x $target_sdk_dir -o ! -w $target_sdk_dir -o ! -r $target_sdk_dir ]; then | 120 | if [ ! -x $target_sdk_dir -o ! -w $target_sdk_dir -o ! -r $target_sdk_dir ]; then |
| 121 | if [ "$SDK_EXTENSIBLE" = "1" ]; then | ||
| 122 | echo "Unable to access \"$target_sdk_dir\"." | ||
| 123 | exit 1 | ||
| 124 | fi | ||
| 125 | |||
| 119 | SUDO_EXEC=$(which "sudo") | 126 | SUDO_EXEC=$(which "sudo") |
| 120 | if [ -z $SUDO_EXEC ]; then | 127 | if [ -z $SUDO_EXEC ]; then |
| 121 | echo "No command 'sudo' found, please install sudo first. Abort!" | 128 | echo "No command 'sudo' found, please install sudo first. Abort!" |
