summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/populate_sdk_base.bbclass12
-rw-r--r--meta/classes/populate_sdk_ext.bbclass11
-rw-r--r--meta/files/toolchain-shar-extract.sh7
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()}"
51EXCLUDE_FROM_WORLD = "1" 51EXCLUDE_FROM_WORLD = "1"
52 52
53SDK_PACKAGING_FUNC ?= "create_shar" 53SDK_PACKAGING_FUNC ?= "create_shar"
54SDK_PRE_INSTALL_COMMAND ?= ""
54SDK_POST_INSTALL_COMMAND ?= "" 55SDK_POST_INSTALL_COMMAND ?= ""
55SDK_RELOCATE_AFTER_INSTALL ?= "1" 56SDK_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}
145EOF
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}
144EOF 149EOF
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.
178sdk_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}
185SDK_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
177sdk_ext_postinst() { 188sdk_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
72fi 72fi
73 73
74@SDK_PRE_INSTALL_COMMAND@
75
74if [ "$target_sdk_dir" = "" ]; then 76if [ "$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
118if [ ! -x $target_sdk_dir -o ! -w $target_sdk_dir -o ! -r $target_sdk_dir ]; then 120if [ ! -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!"