diff --git a/CrossCompile.sh b/CrossCompile.sh index cd87200..a94e25a 100755 --- a/CrossCompile.sh +++ b/CrossCompile.sh @@ -6,29 +6,83 @@ 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 if [[ $TOOLCHAIN = *\$\(BASE_DIR\)* ]]; then - export SYSROOTBIN=`readlink -f $CMDDIR`/output/host/usr/bin/ + export SYSROOT=`readlink -f $CMDDIR`/output/host/usr/bin/ else - export SYSROOTBIN=$TOOLCHAIN/usr/bin + export SYSROOT=$TOOLCHAIN/usr/bin fi -export PATH=$PATH:$SYSROOTBIN +export PATH=$PATH:$SYSROOT + +export CROSS_COMPILE="${_GNU_TARGET_NAME}-" +export CROSS=${CROSS_COMPILE} -export CROSS_COMPILE=i586-buildroot-linux-gnu- -export CROSS=$CROSS_COMPILE -export ARCH=i586 -export KERNELDIR=`pwd`/output/build/linux-linux-4.4.y +export ARCH=arm +_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 SYSROOT=`grep BR2_HOST_DIR .config | awk -F\= -F\" '{print $2}'`/usr/i586-buildroot-linux-gnu/sysroot -export CC_FULLPATH="${SYSROOTBIN}${CROSS_COMPILE}" +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++ +#--- gnupru +export PASM=pasm +##export PSYSROOT=/home/ru/pru/pru-gcc/bin +export PSYSROOT=/opt/GfA/PRU-ICSS/bin/pru-gcc/bin +export PATH=$PSYSROOT:$PATH + +export PCROSS_COMPILE=pru- +export PARCH=pru + cd $WRKDIR -echo $CROSS_COMPILE if [ $# -eq "0" ] then PROMPT_COMMAND='PS1="\[\033[0;31m\]CROSS CC:\[\033[0;32m\]$PS1";unset PROMPT_COMMAND' bash ; reset