#!/bin/bash #set -x set -e TOP_DIR=/opt/m5plus TOP_BIN_DIR=/opt/m5plus/bin GCC_PREFIX=arm-none-eabi- GCC_PREFIX_LN=arm-m5plus-linux- GCC_VERSION=9-2020-q2 GCC_TAR=gcc-arm-none-eabi-9-2020-q2-update GCC_TAR_PKG=${GCC_TAR}-x86_64-linux.tar.bz2 GCC_DIR=${TOP_DIR}/${GCC_TAR} GCC_BIN_DIR=${TOP_DIR}/${GCC_TAR}/bin if [ -z "$1" ]; then echo "CROSS_COMPILER_PATH=$GCC_BIN_DIR" if [ -f $GCC_DIR/version ]; then if [ -n "`grep ${GCC_VERSION} $GCC_DIR/version`" ]; then echo "GCC tools has been installed yet!" >&2 exit 0 fi else echo "Do not have version file" >&2 fi eval $0 force [ $? == 0 ] && exit 0 echo "sorry, you must have super privilege!" >&2 select choose in 'I have root passwd' 'I have sudo privilege' 'Try again' 'Ignore' 'Aboart' do case $choose in *root*) su -c "$0 force" [ $? == 0 ] && break ;; *sudo*) sudo $0 force [ $? == 0 ] && break ;; Try*) eval $0 force [ $? == 0 ] && break ;; Ignore) exit 0 ;; Aboart) exit 1 ;; *) echo "Invalid select, please try again!" >&2 continue ;; esac echo "Install GCC tools failed!" >&2 done exit 0 fi mkdir -pv ${TOP_DIR} [ $? != 0 ] && exit 1 if [ -d ${GCC_DIR} ]; then echo "Delete exist directory..." >&2 rm ${GCC_DIR} -rf else mkdir -pv $GCC_DIR fi echo "Extract GCC tools ..." >&2 tar -xjf ${GCC_TAR_PKG} -C $TOP_DIR [ $? != 0 ] && exit 1 # creat link mkdir -pv ${TOP_BIN_DIR} [ $? != 0 ] && exit 1 for file in `ls ${GCC_BIN_DIR}/${GCC_PREFIX}*`; do ln `realpath --relative-to=${TOP_BIN_DIR} ${GCC_BIN_DIR}`/${file##*/} ${TOP_BIN_DIR}/${GCC_PREFIX}${file##*${GCC_PREFIX}} -sfv # ln `realpath --relative-to=${TOP_BIN_DIR} ${GCC_BIN_DIR}`/${file##*/} ${TOP_BIN_DIR}/${GCC_PREFIX_LN}${file##*${GCC_PREFIX}} -sfv done sed -i 's/${GCC_BIN_DIR}[:]//g' /etc/profile [ $? != 0 ] && exit 1 if [ ! -f ${GCC_DIR}/version ]; then echo "${GCC_VERSION}" > ${GCC_DIR}/version fi if [ -z "`grep "${TOP_BIN_DIR}" < /etc/profile`" ]; then echo "export path ${TOP_BIN_DIR}" >&2 cat >> /etc/profile << EOF # `date` # M5Plus platform tool PATH export PATH="${TOP_BIN_DIR}:\$PATH" EOF [ $? != 0 ] && exit 1 else echo "skip export GCC path" >&2 fi exit 0