#!/bin/bash print_help() { cat <<EOF Usage: command command: export CROSS_COMPILE unset example: source ./toolchain.sh export arm-linux-androideabi source ./toolchain.sh unset EOF } main() { if [ $# -lt 1 ]; then print_help return fi COMMAND=$1 if [ $COMMAND = "export" ]; then if [ $# -lt 2 ]; then print_help return fi CROSS_COMPILE=$2 if [ ${CROSS_COMPILE:${#CROSS_COMPILE}-1:1} != "-" ]; then CROSS_COMPILE=${CROSS_COMPILE}- fi echo "CROSS_COMPILE=$CROSS_COMPILE" export CROSS_COMPILE=${CROSS_COMPILE} export CC=${CROSS_COMPILE}gcc export CXX=${CROSS_COMPILE}g++ export AR=${CROSS_COMPILE}ar export AS=${CROSS_COMPILE}as export LD=${CROSS_COMPILE}ld export STRIP=${CROSS_COMPILE}strip export RANLIB=${CROSS_COMPILE}ranlib export NM=${CROSS_COMPILE}nm HOST_OS=`uname -s` HOST_ARCH=`uname -m` TARGET_PLATFORM=`$CC -v 2>&1 | grep Target | sed 's/Target: //'` TARGET_ARCH=`echo $TARGET_PLATFORM | awk -F'-' '{print $1}'` case $TARGET_PLATFORM in *mingw*) TARGET_OS=Windows ;; *android*) TARGET_OS=Android ;; *darwin*) TARGET_OS=Darwin ;; *) TARGET_OS=Linux ;; esac # TARGET_OS,TARGET_ARCH used by make export HV_HOST_OS=$HOST_OS export HV_HOST_ARCH=$HOST_ARCH export HV_TARGET_OS=$TARGET_OS export HV_TARGET_ARCH=$TARGET_ARCH export HOST=$TARGET_PLATFORM elif [ $COMMAND = "unset" ]; then unset CROSS_COMPILE unset CC unset CXX unset AR unset AS unset LD unset STRIP unset RANLIB unset NM unset HOST_OS unset HOST_ARCH unset TARGET_OS unset TARGET_ARCH unset HOST else print_help return fi } main $@ echo "CC = $CC" echo "CXX = $CXX" if [ $CC ]; then CC_VERSION=`$CC --version 2>&1 | head -n 1` echo "$CC_VERSION" fi echo "AR = $AR" echo "AS = $AS" echo "LD = $LD" echo "STRIP = $STRIP" echo "RANLIB = $RANLIB" echo "NM = $NM" echo "HV_HOST_OS = $HOST_OS" echo "HV_HOST_ARCH = $HOST_ARCH" echo "HV_TARGET_OS = $TARGET_OS" echo "HV_TARGET_ARCH = $TARGET_ARCH"