110 lines
2.0 KiB
Bash
110 lines
2.0 KiB
Bash
#!/bin/bash
|
|
|
|
#set -x
|
|
set -e
|
|
|
|
TOP_DIR=/opt/m5plus
|
|
TOP_BIN_DIR=/opt/m5plus/bin
|
|
|
|
CMAKE_VERSION=cmake-3.26.3
|
|
CMAKE_TAR=cmake-3.26.3-linux-x86_64
|
|
CMAKE_TAR_PKG=${CMAKE_TAR}.tar.gz
|
|
|
|
CMAKE_DIR=${TOP_DIR}/${CMAKE_TAR}
|
|
CMAKE_BIN_DIR=${TOP_DIR}/${CMAKE_TAR}/bin
|
|
|
|
if [ -z "$1" ]; then
|
|
echo "CROSS_COMPILER_PATH=$CMAKE_BIN_DIR"
|
|
if [ -f $CMAKE_DIR/version ]; then
|
|
if [ -n "`grep ${CMAKE_VERSION} $CMAKE_DIR/version`" ]; then
|
|
echo "CMake 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 CMake tools failed!" >&2
|
|
done
|
|
|
|
exit 0
|
|
fi
|
|
|
|
mkdir -pv ${TOP_DIR}
|
|
[ $? != 0 ] && exit 1
|
|
|
|
if [ -d ${CMAKE_DIR} ]; then
|
|
echo "Delete exist directory..." >&2
|
|
rm ${CMAKE_DIR} -rf
|
|
else
|
|
mkdir -pv $CMAKE_DIR
|
|
fi
|
|
|
|
echo "Extract CMake tools ..." >&2
|
|
tar -xf ${CMAKE_TAR_PKG} -C $TOP_DIR
|
|
[ $? != 0 ] && exit 1
|
|
|
|
mkdir -pv ${TOP_BIN_DIR}
|
|
[ $? != 0 ] && exit 1
|
|
|
|
# creat link
|
|
for file in `ls ${CMAKE_BIN_DIR}/${CMAKE_PREFIX}*`; do
|
|
ln `realpath --relative-to=${TOP_BIN_DIR} ${CMAKE_BIN_DIR}`/${file##*/} ${TOP_BIN_DIR}/${CMAKE_PREFIX_LN}${file##*${CMAKE_PREFIX}} -sfv
|
|
[ $? != 0 ] && exit 1
|
|
done
|
|
|
|
sed -i 's/${CMAKE_BIN_DIR}[:]//g' /etc/profile
|
|
[ $? != 0 ] && exit 1
|
|
|
|
if [ ! -f ${CMAKE_DIR}/version ]; then
|
|
echo "${CMAKE_VERSION}" > ${CMAKE_DIR}/version
|
|
fi
|
|
|
|
if [ -z "`grep "${TOP_BIN_DIR}" < /etc/profile`" ]; then
|
|
echo "export CMake tool path ${TOP_BIN_DIR}" >&2
|
|
cat >> /etc/profile << EOF
|
|
|
|
# `date`
|
|
# M5plus CMake tool path
|
|
export PATH="${CMAKE_BIN_DIR}:\$PATH"
|
|
|
|
EOF
|
|
|
|
[ $? != 0 ] && exit 1
|
|
else
|
|
echo "skip export CMake tool path" >&2
|
|
fi
|
|
|
|
exit 0
|