0109-add-MakeSDKInstall.patch 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. diff --git a/CrossCompile.sh b/CrossCompile.sh
  2. index cb6c0ae..a94e25a 100755
  3. --- a/CrossCompile.sh
  4. +++ b/CrossCompile.sh
  5. @@ -6,6 +6,50 @@ WRKDIR=`pwd`
  6. CMDDIR=`dirname $0`
  7. cd $CMDDIR
  8. +#=== Asssign GNU_TARGET_NAME from .config
  9. +_ARCH=`grep BR2_ARCH\= .config | awk -F\= -F\" '{print $2}'`
  10. +_TARGET_VENDOR=`grep BR2_TOOLCHAIN_BUILDROOT_VENDOR\= .config | awk -F\= -F\" '{print $2}'`
  11. +
  12. +# -- get target os
  13. +_BR2_BINFMT_FLAT=`grep BR2_BINFMT_FLAT\= .config | awk -F\= '{print $2}'`
  14. +if [ "$_BR2_BINFMT_FLAT" = "y" ]; then
  15. + _TARGET_OS="uclinux"
  16. + else
  17. + _TARGET_OS="linux"
  18. +fi
  19. +
  20. +# -- get libc
  21. +_BR2_TOOLCHAIN_USES_UCLIBC=`grep BR2_TOOLCHAIN_USES_UCLIBC\= .config | awk -F\= '{print $2}'`
  22. +_BR2_TOOLCHAIN_USES_MUSL=`grep BR2_TOOLCHAIN_USES_MUSL\= .config | awk -F\= '{print $2}'`
  23. +
  24. +if [ "$_BR2_TOOLCHAIN_USES_UCLIBC" = "y" ]; then
  25. + _LIBC="uclibc"
  26. + else
  27. + if [ "$_BR2_TOOLCHAIN_USES_MUSL" = "y" ]; then
  28. + _LIBC="musl"
  29. + else
  30. + _LIBC="gnu"
  31. + fi
  32. +fi
  33. +
  34. +# -- ABI
  35. +_BR2_arm=`grep BR2_arm\= .config | awk -F\= '{print $2}'`
  36. +_BR2_armeb=`grep BR2_armeb\= .config | awk -F\= '{print $2}'`
  37. +_BR2_ARM_EABIHF=`grep BR2_ARM_EABIHF\= .config | awk -F\= '{print $2}'`
  38. +if [ "$_BR2_arm" = "y" ] || [ "$_BR2_armeb" = "y" ]; then
  39. + if [ "$_LIBC" = "uclibc" ]; then
  40. + _ABI="gnueabi"
  41. + else
  42. + _ABI="eabi"
  43. + fi
  44. + if [ "$_BR2_ARM_EABIHF" = "y" ]; then
  45. + _ABI="${_ABI}hf"
  46. + fi
  47. +fi
  48. +
  49. +_GNU_TARGET_NAME="${_ARCH}-${_TARGET_VENDOR}-${_TARGET_OS}-${_LIBC}${_ABI}"
  50. +#===============================================================
  51. +
  52. TOOLCHAIN=`grep BR2_HOST_DIR .config | awk -F\= -F\" '{print $2}'`
  53. echo $TOOLCHAIN
  54. @@ -17,12 +61,14 @@ fi
  55. export PATH=$PATH:$SYSROOT
  56. -export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
  57. +export CROSS_COMPILE="${_GNU_TARGET_NAME}-"
  58. export CROSS=${CROSS_COMPILE}
  59. +
  60. export ARCH=arm
  61. -export KERNELDIR=`pwd`/output/build/linux-7f280334068b7c875ade51f8f3921ab311f0c824
  62. +_KERNELDIR=`grep BR2_LINUX_KERNEL_VERSION\= .config | awk -F\= -F\" '{print $2}'`
  63. +export KERNELDIR=${CMDDIR}/output/build/linux-${_KERNELDIR}
  64. export BB_KERNEL_SOURCES=$KERNELDIR
  65. -export SYSROOTARM=`grep BR2_HOST_DIR .config | awk -F\= -F\" '{print $2}'`/usr/arm-buildroot-linux-gnueabihf/sysroot
  66. +export SYSROOTARM=`grep BR2_HOST_DIR .config | awk -F\= -F\" '{print $2}'`/usr/${_GNU_TARGET_NAME}/sysroot
  67. export CC_FULLPATH="${SYSROOT}/${CROSS_COMPILE}"
  68. export CC=${CROSS_COMPILE}gcc
  69. export CXX=${CROSS_COMPILE}g++
  70. diff --git a/MakeSDKInstall.sh b/MakeSDKInstall.sh
  71. new file mode 100755
  72. index 0000000..ae7156f
  73. --- /dev/null
  74. +++ b/MakeSDKInstall.sh
  75. @@ -0,0 +1,119 @@
  76. +#!/bin/bash
  77. +
  78. +#=== Asssign GNU_TARGET_NAME from .config
  79. +_ARCH=`grep BR2_ARCH\= .config | awk -F\= -F\" '{print $2}'`
  80. +_TARGET_VENDOR=`grep BR2_TOOLCHAIN_BUILDROOT_VENDOR\= .config | awk -F\= -F\" '{print $2}'`
  81. +
  82. +# -- get target os
  83. +_BR2_BINFMT_FLAT=`grep BR2_BINFMT_FLAT\= .config | awk -F\= '{print $2}'`
  84. +if [ "$_BR2_BINFMT_FLAT" = "y" ]; then
  85. + _TARGET_OS="uclinux"
  86. + else
  87. + _TARGET_OS="linux"
  88. +fi
  89. +
  90. +# -- get libc
  91. +_BR2_TOOLCHAIN_USES_UCLIBC=`grep BR2_TOOLCHAIN_USES_UCLIBC\= .config | awk -F\= '{print $2}'`
  92. +_BR2_TOOLCHAIN_USES_MUSL=`grep BR2_TOOLCHAIN_USES_MUSL\= .config | awk -F\= '{print $2}'`
  93. +
  94. +if [ "$_BR2_TOOLCHAIN_USES_UCLIBC" = "y" ]; then
  95. + _LIBC="uclibc"
  96. + else
  97. + if [ "$_BR2_TOOLCHAIN_USES_MUSL" = "y" ]; then
  98. + _LIBC="musl"
  99. + else
  100. + _LIBC="gnu"
  101. + fi
  102. +fi
  103. +
  104. +# -- ABI
  105. +_BR2_arm=`grep BR2_arm\= .config | awk -F\= '{print $2}'`
  106. +_BR2_armeb=`grep BR2_armeb\= .config | awk -F\= '{print $2}'`
  107. +_BR2_ARM_EABIHF=`grep BR2_ARM_EABIHF\= .config | awk -F\= '{print $2}'`
  108. +if [ "$_BR2_arm" = "y" ] || [ "$_BR2_armeb" = "y" ]; then
  109. + if [ "$_LIBC" = "uclibc" ]; then
  110. + _ABI="gnueabi"
  111. + else
  112. + _ABI="eabi"
  113. + fi
  114. + if [ "$_BR2_ARM_EABIHF" = "y" ]; then
  115. + _ABI="${_ABI}hf"
  116. + fi
  117. +fi
  118. +
  119. +_GNU_TARGET_NAME="${_ARCH}-${_TARGET_VENDOR}-${_TARGET_OS}-${_LIBC}${_ABI}"
  120. +#===============================================================
  121. +_TOOLCHAIN_DIR=`grep BR2_HOST_DIR .config | awk -F\= -F\" '{print $2}'`
  122. +_SDK_TARBALL_NAME="./output/images/${_GNU_TARGET_NAME}_sdk-buildroot.tar.gz"
  123. +_TOOLCHAIN_BASE_DIR=`echo ${_TOOLCHAIN_DIR} | awk -F"/" '{ for (i=1; i<= (NF-1); i++) printf "%s/",$i }'`
  124. +#============================
  125. +BUILD=`cat ../GfA/board/GfA/Display001/BUILD`
  126. +UPDATE_BINARY=${_SDK_TARBALL_NAME}
  127. +UPDATE_FILENAME="../InstallSDK_$BUILD.sh"
  128. +UPDATE_IN_SCRIPT="InstallSDK.sh.in"
  129. +
  130. +if [[ ! -f $UPDATE_BINARY ]]; then
  131. + echo " UPDATE_BINARY $UPDATE_BINARY doesn't exist!"
  132. + exit 1
  133. +fi
  134. +#== Build UPDATE_IN_SCRIPT
  135. +(\
  136. +cat << EOF
  137. +#!/bin/bash
  138. +
  139. +untar_payload ()
  140. +{
  141. +
  142. + match=\$(grep -a -n -m 1 '^PAYLOAD:\$' \$0 | cut -d ':' -f 1)
  143. + payload_start=\$((match + 1))
  144. + tail -n +\$payload_start \$0 | tar \$TAR_PARAMETERS
  145. +}
  146. +
  147. +if [ "\$USER" != "root" ]; then
  148. + echo "please run as root:"
  149. + echo -e "\t sudo \$0"
  150. + exit -1
  151. +fi
  152. +
  153. +_TOOLCHAIN_DIR="$_TOOLCHAIN_DIR"
  154. +_GNU_TARGET_NAME="$_GNU_TARGET_NAME"
  155. +_SDK_DIR_NAME="${_GNU_TARGET_NAME}_sdk-buildroot"
  156. +_TOOLCHAIN_BASE_DIR="$_TOOLCHAIN_BASE_DIR"
  157. +
  158. +_TOOLCHAIN_PATH_ORIG="\${_TOOLCHAIN_BASE_DIR}\${_SDK_DIR_NAME}"
  159. +
  160. +if [ -d "\${_TOOLCHAIN_PATH_ORIG}" ]; then
  161. + rm -rf \${_TOOLCHAIN_PATH_ORIG}
  162. +fi
  163. +
  164. +echo "Unpacking Tarball"
  165. +mkdir -p \${_TOOLCHAIN_BASE_DIR}
  166. +TAR_PARAMETERS="-C \${_TOOLCHAIN_BASE_DIR} --checkpoint=.1000 -xzf -"
  167. +#---- untar payload
  168. +untar_payload
  169. +#-------------------
  170. +if [ -d "\${_TOOLCHAIN_DIR}" ]; then
  171. + rm -rf \${_TOOLCHAIN_DIR}
  172. +fi
  173. +
  174. +mv \${_TOOLCHAIN_PATH_ORIG} \${_TOOLCHAIN_DIR}
  175. +echo ""
  176. +echo "chown -R \$SUDO_USER:\$SUDO_USER \${_TOOLCHAIN_DIR} ...."
  177. +chown -R \$SUDO_USER:\$SUDO_USER \${_TOOLCHAIN_DIR}
  178. +
  179. +echo -e "\n\nToolchain \${_TOOLCHAIN_DIR} installed !!!\n"
  180. +
  181. +exit 0
  182. +EOF
  183. +) > $UPDATE_IN_SCRIPT
  184. +
  185. +
  186. +
  187. +# Append binary data.
  188. +cat $UPDATE_IN_SCRIPT > $UPDATE_FILENAME
  189. +echo "PAYLOAD:" >> $UPDATE_FILENAME
  190. +cat $UPDATE_BINARY >> $UPDATE_FILENAME
  191. +
  192. +rm $UPDATE_IN_SCRIPT
  193. +
  194. +chmod a+x $UPDATE_FILENAME