|
@@ -0,0 +1,147 @@
|
|
|
+diff --git a/MakeTOOLCHAIN.sh b/MakeTOOLCHAIN.sh
|
|
|
+new file mode 100755
|
|
|
+index 0000000..1c964ea
|
|
|
+--- /dev/null
|
|
|
++++ b/MakeTOOLCHAIN.sh
|
|
|
+@@ -0,0 +1,141 @@
|
|
|
++#!/bin/bash
|
|
|
++echo "====== Build Toolchain INSTALL Script ===="
|
|
|
++SHWRKDIR=/tmp/XXXMakeTOOLCHAIN
|
|
|
++##BUILD=`cat ../PSG/board/PSG/iot2000/BUILD`
|
|
|
++BUILD=IOT2000
|
|
|
++UPDATE_BINARY=$SHWRKDIR/dest/toolchain.tar.Z
|
|
|
++UPDATE_FILENAME="../Install-TOOLCHAIN-$BUILD.sh"
|
|
|
++TOOLCHAIN_DIR="/opt/PSG"
|
|
|
++UPDATE_IN_SCRIPT="MakeTOOLCHAIN.sh.in"
|
|
|
++
|
|
|
++rm -rf $SHWRKDIR
|
|
|
++mkdir -p $SHWRKDIR/dest
|
|
|
++mkdir -p $SHWRKDIR/Kernel-$BUILD
|
|
|
++#====================================
|
|
|
++WRKDIR=`pwd`
|
|
|
++CMDDIR=`pwd`
|
|
|
++#=== 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}'`
|
|
|
++if [[ $TOOLCHAIN = *\$\(BASE_DIR\)* ]]; then
|
|
|
++ SYSROOT=`readlink -f $CMDDIR`/output/host/usr/bin/
|
|
|
++else
|
|
|
++ SYSROOT=$TOOLCHAIN/usr/bin
|
|
|
++fi
|
|
|
++CROSS_COMPILE="${_GNU_TARGET_NAME}-"
|
|
|
++CROSS=${CROSS_COMPILE}
|
|
|
++_KERNELDIR=`grep BR2_LINUX_KERNEL_VERSION\= .config | awk -F\= -F\" '{print $2}'`
|
|
|
++KERNELDIR=${CMDDIR}/output/build/linux-${_KERNELDIR}
|
|
|
++#====================================
|
|
|
++echo $TOOLCHAIN
|
|
|
++echo "packing Toolchain ... pls be patient"
|
|
|
++rsync -a $TOOLCHAIN $SHWRKDIR/
|
|
|
++echo "packing Kernel ... pls be patient"
|
|
|
++rsync -a $KERNELDIR $SHWRKDIR/Kernel-$BUILD/
|
|
|
++
|
|
|
++(\
|
|
|
++cat << EOF
|
|
|
++#!/bin/sh
|
|
|
++
|
|
|
++export SYSROOT=$SYSROOT
|
|
|
++export PATH=\$PATH:$SYSROOT
|
|
|
++export KERNELDIR=$TOOLCHAIN_DIR/Kernel-$BUILD/linux-${_KERNELDIR}
|
|
|
++export CROSS_COMPILE=${CROSS_COMPILE}
|
|
|
++export CROSS=${CROSS_COMPILE}
|
|
|
++
|
|
|
++export ARCH=arm
|
|
|
++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++
|
|
|
++
|
|
|
++if [ \$# -eq "0" ]
|
|
|
++then
|
|
|
++PROMPT_COMMAND='PS1="\[\033[0;31m\]CROSS CC:\[\033[0;32m\]\$PS1";unset PROMPT_COMMAND' bash ; reset
|
|
|
++else
|
|
|
++\$1
|
|
|
++fi
|
|
|
++
|
|
|
++EOF
|
|
|
++) > $SHWRKDIR/CrossCompile-${BUILD}.sh
|
|
|
++
|
|
|
++chmod a+x $SHWRKDIR/CrossCompile-${BUILD}.sh
|
|
|
++
|
|
|
++echo "packing Binaries to Tarball ... pls be patient"
|
|
|
++tar -C $SHWRKDIR --exclude=./dest -czf $SHWRKDIR/dest/toolchain.tar.Z ./
|
|
|
++echo "--------------------- DONE -----------------------"
|
|
|
++# update script
|
|
|
++(\
|
|
|
++cat << EOF
|
|
|
++#!/bin/sh
|
|
|
++
|
|
|
++TOOLCHAIN_DIR=$TOOLCHAIN_DIR
|
|
|
++TAR_PARAMETERS="-C \$TOOLCHAIN_DIR -xzvf -"
|
|
|
++
|
|
|
++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
|
|
|
++}
|
|
|
++
|
|
|
++## --- Kommandos zum Installieren
|
|
|
++
|
|
|
++#--- Toolchain-Tarball entpacken
|
|
|
++
|
|
|
++if [ ! -d \${TOOLCHAIN_DIR} ]; then
|
|
|
++ sudo mkdir -p \${TOOLCHAIN_DIR}
|
|
|
++fi
|
|
|
++sudo chown -Rv \$USER:\$USER \${TOOLCHAIN_DIR}
|
|
|
++
|
|
|
++untar_payload
|
|
|
++
|
|
|
++exit 0
|
|
|
++EOF
|
|
|
++) > $UPDATE_FILENAME
|
|
|
++
|
|
|
++echo "PAYLOAD:" >> $UPDATE_FILENAME
|
|
|
++cat $UPDATE_BINARY >> $UPDATE_FILENAME
|
|
|
++
|
|
|
++chmod a+x $UPDATE_FILENAME
|