114 lines
2.2 KiB
Bash
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
|