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