1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- diff --git a/CrossCompile.sh b/CrossCompile.sh
- new file mode 100755
- index 0000000..f18e4d5
- --- /dev/null
- +++ b/CrossCompile.sh
- @@ -0,0 +1,89 @@
- +#! /bin/bash
- +#
- +#
- +
- +WRKDIR=`pwd`
- +CMDDIR=`dirname \`readlink -f $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 SYSROOT=`readlink -f $CMDDIR`/output/host/usr/bin/
- +else
- + export SYSROOT=$TOOLCHAIN/usr/bin
- +fi
- +
- +export PATH=$PATH:$SYSROOT
- +
- +export CROSS_COMPILE="${_GNU_TARGET_NAME}-"
- +export CROSS=${CROSS_COMPILE}
- +
- +export ARCH=arm64
- +_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/${_GNU_TARGET_NAME}/sysroot
- +export CC_FULLPATH="${SYSROOT}/${CROSS_COMPILE}"
- +export CC=${CROSS_COMPILE}gcc
- +export CXX=${CROSS_COMPILE}g++
- +
- +export AS=arm-buildroot-linux-gnueabihf-as
- +export NM=arm-buildroot-linux-gnueabihf-nm
- +export OBJCOPY=arm-buildroot-linux-gnueabihf-objcopy
- +export STRIP=arm-buildroot-linux-gnueabihf-strip
- +#for contiki-ng
- +export LD_OVERRIDE=$CC
- +
- +cd $WRKDIR
- +if [ $# -eq "0" ]
- +then
- +PROMPT_COMMAND='PS1="\[\033[0;31m\]CROSS CC:\[\033[0;32m\]$PS1";unset PROMPT_COMMAND' bash ; reset
- +else
- +$1
- +fi
|