浏览代码

add MakeSDKInstall

Reinhard Russinger 5 年之前
父节点
当前提交
932cf95b02
共有 1 个文件被更改,包括 198 次插入0 次删除
  1. 198 0
      patches/0109-add-MakeSDKInstall.patch

+ 198 - 0
patches/0109-add-MakeSDKInstall.patch

@@ -0,0 +1,198 @@
+diff --git a/CrossCompile.sh b/CrossCompile.sh
+index cb6c0ae..a94e25a 100755
+--- a/CrossCompile.sh
++++ b/CrossCompile.sh
+@@ -6,6 +6,50 @@ WRKDIR=`pwd`
+ CMDDIR=`dirname $0`
+ cd $CMDDIR
+ 
++#=== Asssign GNU_TARGET_NAME from .config
++_ARCH=`grep BR2_ARCH\= .config | awk -F\= -F\" '{print $2}'`
++_TARGET_VENDOR=`grep BR2_TOOLCHAIN_BUILDROOT_VENDOR\= .config | awk -F\= -F\" '{print $2}'`
++
++# -- get target os
++_BR2_BINFMT_FLAT=`grep BR2_BINFMT_FLAT\= .config | awk -F\= '{print $2}'`
++if [ "$_BR2_BINFMT_FLAT" = "y" ]; then
++	_TARGET_OS="uclinux"
++	else
++	_TARGET_OS="linux"
++fi	
++
++# -- get libc
++_BR2_TOOLCHAIN_USES_UCLIBC=`grep BR2_TOOLCHAIN_USES_UCLIBC\= .config | awk -F\= '{print $2}'`
++_BR2_TOOLCHAIN_USES_MUSL=`grep BR2_TOOLCHAIN_USES_MUSL\= .config | awk -F\= '{print $2}'`
++
++if [ "$_BR2_TOOLCHAIN_USES_UCLIBC" = "y" ]; then
++	_LIBC="uclibc"
++	else
++	if [ "$_BR2_TOOLCHAIN_USES_MUSL" = "y" ]; then
++		_LIBC="musl"
++		else
++		_LIBC="gnu"
++	fi
++fi	 		
++
++# -- ABI
++_BR2_arm=`grep BR2_arm\= .config | awk -F\= '{print $2}'`
++_BR2_armeb=`grep BR2_armeb\= .config | awk -F\= '{print $2}'`
++_BR2_ARM_EABIHF=`grep BR2_ARM_EABIHF\= .config | awk -F\= '{print $2}'`
++if [ "$_BR2_arm" = "y" ] || [ "$_BR2_armeb" = "y" ]; then
++	if [ "$_LIBC" = "uclibc" ]; then
++		_ABI="gnueabi"
++		else
++		_ABI="eabi"
++	fi
++	if [ "$_BR2_ARM_EABIHF" = "y" ]; then
++		_ABI="${_ABI}hf"
++	fi
++fi
++	
++_GNU_TARGET_NAME="${_ARCH}-${_TARGET_VENDOR}-${_TARGET_OS}-${_LIBC}${_ABI}"
++#===============================================================
++
+ TOOLCHAIN=`grep BR2_HOST_DIR .config | awk -F\= -F\" '{print $2}'`
+ echo $TOOLCHAIN
+ 
+@@ -17,12 +61,14 @@ fi
+ 
+ export PATH=$PATH:$SYSROOT
+ 
+-export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
++export CROSS_COMPILE="${_GNU_TARGET_NAME}-"
+ export CROSS=${CROSS_COMPILE}
++
+ export ARCH=arm
+-export KERNELDIR=`pwd`/output/build/linux-7f280334068b7c875ade51f8f3921ab311f0c824
++_KERNELDIR=`grep BR2_LINUX_KERNEL_VERSION\= .config | awk -F\= -F\" '{print $2}'`
++export KERNELDIR=${CMDDIR}/output/build/linux-${_KERNELDIR}
+ export BB_KERNEL_SOURCES=$KERNELDIR
+-export SYSROOTARM=`grep BR2_HOST_DIR .config | awk -F\= -F\" '{print $2}'`/usr/arm-buildroot-linux-gnueabihf/sysroot
++export SYSROOTARM=`grep BR2_HOST_DIR .config | awk -F\= -F\" '{print $2}'`/usr/${_GNU_TARGET_NAME}/sysroot
+ export CC_FULLPATH="${SYSROOT}/${CROSS_COMPILE}"
+ export CC=${CROSS_COMPILE}gcc
+ export CXX=${CROSS_COMPILE}g++
+diff --git a/MakeSDKInstall.sh b/MakeSDKInstall.sh
+new file mode 100755
+index 0000000..ae7156f
+--- /dev/null
++++ b/MakeSDKInstall.sh
+@@ -0,0 +1,119 @@
++#!/bin/bash
++
++#=== Asssign GNU_TARGET_NAME from .config
++_ARCH=`grep BR2_ARCH\= .config | awk -F\= -F\" '{print $2}'`
++_TARGET_VENDOR=`grep BR2_TOOLCHAIN_BUILDROOT_VENDOR\= .config | awk -F\= -F\" '{print $2}'`
++
++# -- get target os
++_BR2_BINFMT_FLAT=`grep BR2_BINFMT_FLAT\= .config | awk -F\= '{print $2}'`
++if [ "$_BR2_BINFMT_FLAT" = "y" ]; then
++        _TARGET_OS="uclinux"
++        else
++        _TARGET_OS="linux"
++fi
++
++# -- get libc
++_BR2_TOOLCHAIN_USES_UCLIBC=`grep BR2_TOOLCHAIN_USES_UCLIBC\= .config | awk -F\= '{print $2}'`
++_BR2_TOOLCHAIN_USES_MUSL=`grep BR2_TOOLCHAIN_USES_MUSL\= .config | awk -F\= '{print $2}'`
++
++if [ "$_BR2_TOOLCHAIN_USES_UCLIBC" = "y" ]; then
++        _LIBC="uclibc"
++        else
++        if [ "$_BR2_TOOLCHAIN_USES_MUSL" = "y" ]; then
++                _LIBC="musl"
++                else
++                _LIBC="gnu"
++        fi
++fi
++
++# -- ABI
++_BR2_arm=`grep BR2_arm\= .config | awk -F\= '{print $2}'`
++_BR2_armeb=`grep BR2_armeb\= .config | awk -F\= '{print $2}'`
++_BR2_ARM_EABIHF=`grep BR2_ARM_EABIHF\= .config | awk -F\= '{print $2}'`
++if [ "$_BR2_arm" = "y" ] || [ "$_BR2_armeb" = "y" ]; then
++        if [ "$_LIBC" = "uclibc" ]; then
++                _ABI="gnueabi"
++                else
++                _ABI="eabi"
++        fi
++        if [ "$_BR2_ARM_EABIHF" = "y" ]; then
++                _ABI="${_ABI}hf"
++        fi
++fi
++
++_GNU_TARGET_NAME="${_ARCH}-${_TARGET_VENDOR}-${_TARGET_OS}-${_LIBC}${_ABI}"
++#===============================================================
++_TOOLCHAIN_DIR=`grep BR2_HOST_DIR .config | awk -F\= -F\" '{print $2}'`
++_SDK_TARBALL_NAME="./output/images/${_GNU_TARGET_NAME}_sdk-buildroot.tar.gz"
++_TOOLCHAIN_BASE_DIR=`echo ${_TOOLCHAIN_DIR} | awk -F"/" '{ for (i=1; i<= (NF-1); i++) printf "%s/",$i }'`
++#============================
++BUILD=`cat ../GfA/board/GfA/Display001/BUILD`
++UPDATE_BINARY=${_SDK_TARBALL_NAME}
++UPDATE_FILENAME="../InstallSDK_$BUILD.sh"
++UPDATE_IN_SCRIPT="InstallSDK.sh.in"
++
++if [[ ! -f $UPDATE_BINARY ]]; then
++        echo "       UPDATE_BINARY $UPDATE_BINARY doesn't exist!"
++        exit 1
++fi
++#== Build UPDATE_IN_SCRIPT
++(\
++cat << EOF
++#!/bin/bash
++
++untar_payload ()
++{
++
++        match=\$(grep -a -n -m 1 '^PAYLOAD:\$' \$0 | cut -d ':' -f 1)
++        payload_start=\$((match + 1))
++        tail -n +\$payload_start \$0 | tar \$TAR_PARAMETERS
++}
++
++if [ "\$USER" != "root" ]; then
++  echo "please run as root:"
++  echo -e "\t sudo \$0"
++  exit -1
++fi
++
++_TOOLCHAIN_DIR="$_TOOLCHAIN_DIR"
++_GNU_TARGET_NAME="$_GNU_TARGET_NAME"
++_SDK_DIR_NAME="${_GNU_TARGET_NAME}_sdk-buildroot"
++_TOOLCHAIN_BASE_DIR="$_TOOLCHAIN_BASE_DIR"
++
++_TOOLCHAIN_PATH_ORIG="\${_TOOLCHAIN_BASE_DIR}\${_SDK_DIR_NAME}"
++
++if [ -d "\${_TOOLCHAIN_PATH_ORIG}" ]; then
++  rm -rf \${_TOOLCHAIN_PATH_ORIG}
++fi
++
++echo "Unpacking Tarball"
++mkdir -p \${_TOOLCHAIN_BASE_DIR}
++TAR_PARAMETERS="-C \${_TOOLCHAIN_BASE_DIR} --checkpoint=.1000 -xzf -"
++#---- untar payload
++untar_payload
++#-------------------
++if [ -d "\${_TOOLCHAIN_DIR}" ]; then
++  rm -rf \${_TOOLCHAIN_DIR}
++fi
++
++mv \${_TOOLCHAIN_PATH_ORIG} \${_TOOLCHAIN_DIR}
++echo ""
++echo "chown -R \$SUDO_USER:\$SUDO_USER \${_TOOLCHAIN_DIR} ...."
++chown -R \$SUDO_USER:\$SUDO_USER \${_TOOLCHAIN_DIR}
++
++echo -e "\n\nToolchain \${_TOOLCHAIN_DIR} installed !!!\n"
++
++exit 0
++EOF
++) > $UPDATE_IN_SCRIPT
++
++
++
++# Append binary data.
++cat $UPDATE_IN_SCRIPT > $UPDATE_FILENAME
++echo "PAYLOAD:" >> $UPDATE_FILENAME
++cat $UPDATE_BINARY >> $UPDATE_FILENAME
++
++rm $UPDATE_IN_SCRIPT
++
++chmod a+x $UPDATE_FILENAME