Files
Resource/Tools/m5plus_install_gcc.sh
2023-05-19 21:37:50 +08:00

114 lines
2.2 KiB
Bash

#!/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