You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

243 lines
8.1 KiB

###
###
# @ : Copyright (c) 2020 Phytium Information Technology, Inc. 
#  
# SPDX-License-Identifier: Apache-2.0.
#
# @Date: 2021-06-30 17:24:45
# @LastEditTime: 2021-10-14 09:37:03
# @Description:  This files is for 
#
# @Modify History:
#  Ver   Who        Date         Changes
# ----- ------     --------    --------------------------------------
#!/bin/sh
# online install would wget cc and install
# offline install need put cc package under folder 'tools'
if [ "$1" = "-online" ]; then
OFFLINE_INSTALL=0
else
OFFLINE_INSTALL=1
fi
echo "======================================================="
echo "install.sh is not support, Please turn to use install.py instead !!!!!"
echo "======================================================="
exit
# check install envrionment
PLATFORM_TAGS=("MacOS_i386" "Linux_x86_64" "Linux_aarch64")
MAC_OS_I386=0
LINUX_X86=1
LINUX_AARCH64=2
PLATFORM=
ARCH=$(uname -p)
OS=$(uname -s)
if [ $ARCH == i386 ] && [ $OS == Darwin ]; then
PLATFORM=$MAC_OS_I386
elif [ $ARCH == x86_64 ] && [ $OS == Linux ]; then
PLATFORM=$LINUX_X86
elif [ $ARCH == aarch64 ] && [ $OS == Linux ]; then
PLATFORM=$LINUX_AARCH64
else
echo "[1]: Platform not Support !!! "
exit
fi
3 years ago
echo "[1]: Platform: "${PLATFORM_TAGS[PLATFORM]}
# profile to save environment variables
if [ $PLATFORM == MAC_OS_I386 ]; then
PROFILE_PATH=~/.bash_profile
else
PROFILE_PATH=~/.profile
fi
echo "[1]: Environment Variables at: "$PROFILE_PATH
if [ ! -f $PROFILE_PATH ] || [ ! -x $PROFILE_PATH ] ; then
echo "[1]: Profile not exist or non access rights !!!"
exit
3 years ago
fi
# get absoulte path of script
export STANDALONE_SDK_ROOT=$(pwd)
3 years ago
echo "[1]: Standalone SDK at "$STANDALONE_SDK_ROOT
INSTALL_PATH=$STANDALONE_SDK_ROOT/tools
# make sure all src file ends with LF
#find . -type f -exec dos2unix {} \;
3 years ago
# make sure sdk scripts are executable
if [ $PLATFORM == MAC_OS_I386 ]; then
chmod +x $STANDALONE_SDK_ROOT/*.sh
chmod +x $STANDALONE_SDK_ROOT/scripts/*.sh
chmod +x $STANDALONE_SDK_ROOT/make/*.mk
chmod +x $STANDALONE_SDK_ROOT/lib/Kconfiglib/*.py
else
chmod +x $STANDALONE_SDK_ROOT/*.sh --silent
chmod +x $STANDALONE_SDK_ROOT/scripts/*.sh --silent
chmod +x $STANDALONE_SDK_ROOT/make/*.mk --silent
chmod +x $STANDALONE_SDK_ROOT/lib/Kconfiglib/*.py --silent
fi
3 years ago
if [ $? -ne 0 ]; then
echo "[3]: Failed when assign file premission !!!"
# exit
3 years ago
fi
3 years ago
# remove environment variables
if [ $PLATFORM == MAC_OS_I386 ]; then
sed -i ".bak" '### PHYTIUM STANDALONE SDK SETTING START/d' $PROFILE_PATH
sed -i ".bak" '/export AARCH32_CROSS_PATH=/d' $PROFILE_PATH
sed -i ".bak" '/export PATH=\$PATH:\$AARCH32_CROSS_PATH/d' $PROFILE_PATH
sed -i ".bak" '/export AARCH64_CROSS_PATH=/d' $PROFILE_PATH
sed -i ".bak" '/export PATH=\$PATH:\$AARCH64_CROSS_PATH/d' $PROFILE_PATH
sed -i ".bak" '/export STANDALONE_SDK_ROOT=/d' $PROFILE_PATH
else
sed -i '/export AARCH32_CROSS_PATH=/d' $PROFILE_PATH
sed -i '/export PATH=\$PATH:\$AARCH32_CROSS_PATH/d' $PROFILE_PATH
sed -i '/export AARCH64_CROSS_PATH=/d' $PROFILE_PATH
sed -i '/export PATH=\$PATH:\$AARCH64_CROSS_PATH/d' $PROFILE_PATH
sed -i '/export STANDALONE_SDK_ROOT=/d' $PROFILE_PATH
fi
3 years ago
echo "[2]: Reset Environment"
3 years ago
#####################################Install GCC Tools##############################################
3 years ago
# name of cc
if [ $PLATFORM == $MAC_OS_I386 ]; then
AARCH32_CC=gcc-arm-none-eabi-10.3-2021.07-mac-10.14.6
AARCH64_CC=gcc-arm-none-eabi-10.3-2021.07-mac-10.14.6
# cc package name
AARCH32_CC_PACK=$AARCH32_CC.tar.bz2
AARCH64_CC_PACK=$AARCH64_CC.tar.bz2
# cc package name during download
AARCH32_CC_DL=$AARCH32_CC.tmp.tar.bz2
AARCH64_CC_DL=$AARCH64_CC.tmp.tar.bz2
fi
if [ $PLATFORM == $LINUX_X86 ]; then
AARCH32_CC=gcc-arm-x86_64-none-eabi-10-2020-q4-major
AARCH64_CC=gcc-arm-x86_64-aarch64-none-elf-10.2-2020.11
# url of cc package
3 years ago
AARCH32_URL=https://gitee.com/phytium_embedded/phytium-standalone-sdk/attach_files/776847/download/gcc-arm-x86_64-none-eabi-10-2020-q4-major.tar.xz
AARCH64_URL=https://gitee.com/phytium_embedded/phytium-standalone-sdk/attach_files/776846/download/gcc-arm-x86_64-aarch64-none-elf-10.2-2020.11.tar.xz
# cc package name
AARCH32_CC_PACK=$AARCH32_CC.tar.xz
AARCH64_CC_PACK=$AARCH64_CC.tar.xz
# cc package name during download
AARCH32_CC_DL=$AARCH32_CC.tmp.tar.xz
AARCH64_CC_DL=$AARCH64_CC.tmp.tar.xz
fi
if [ $PLATFORM == $LINUX_AARCH64 ]; then
AARCH32_CC=gcc-arm-aarch64-none-eabi-10-2020-q4-major
AARCH64_CC=gcc-arm-10.2-2020.11-aarch64-aarch64-none-elf
AARCH32_URL=https://gitee.com/phytium_embedded/phytium-standalone-sdk/attach_files/779742/download/gcc-arm-aarch64-none-eabi-10-2020-q4-major.tar.xz
AARCH64_URL=https://gitee.com/phytium_embedded/phytium-standalone-sdk/attach_files/779743/download/gcc-arm-10.2-2020.11-aarch64-aarch64-none-elf.tar.xz
# cc package name
AARCH32_CC_PACK=$AARCH32_CC.tar.xz
AARCH64_CC_PACK=$AARCH64_CC.tar.xz
3 years ago
# cc package name during download
AARCH32_CC_DL=$AARCH32_CC.tmp.tar.xz
AARCH64_CC_DL=$AARCH64_CC.tmp.tar.xz
fi
3 years ago
echo "[4]: Install CC...."
# cc install path
export AARCH32_CROSS_PATH=$INSTALL_PATH/$AARCH32_CC
export AARCH64_CROSS_PATH=$INSTALL_PATH/$AARCH64_CC
# remove tmp load package
[ -f $INSTALL_PATH/$AARCH32_CC_DL ] && rm $INSTALL_PATH/$AARCH32_CC_DL
[ -f $INSTALL_PATH/$AARCH64_CC_DL ] && rm $INSTALL_PATH/$AARCH64_CC_DL
# do not download if package exists
3 years ago
# do not download if compiler already installed
if [ $OFFLINE_INSTALL -ne 1 ]; then
if [ ! -d $AARCH32_CROSS_PATH ] && [ ! -f $INSTALL_PATH/$AARCH32_CC_PACK ]; then
wget $AARCH32_URL -O $INSTALL_PATH/$AARCH32_CC_DL -c -t 0
# rename downlaod cc package in case download process is intrrupted
if [ -f $INSTALL_PATH/$AARCH32_CC_DL ]; then
mv $INSTALL_PATH/$AARCH32_CC_DL $INSTALL_PATH/$AARCH32_CC_PACK
echo "[4]: Got CC "$INSTALL_PATH/$AARCH32_CC_PACK
fi
else
echo "[4]: AARCH32 CC Already Exists"
fi
if [ ! -d $AARCH64_CROSS_PATH ] && [ ! -f $INSTALL_PATH/$AARCH64_CC_PACK ]; then
wget $AARCH64_URL -O $INSTALL_PATH/$AARCH64_CC_DL -c -t 0
if [ -f $INSTALL_PATH/$AARCH64_CC_DL ]; then
mv $INSTALL_PATH/$AARCH64_CC_DL $INSTALL_PATH/$AARCH64_CC_PACK
echo "[4]: Got CC "$INSTALL_PATH/$AARCH64_CC_PACK
fi
else
echo "[4]: AARCH64 CC Already Exists"
fi
fi
3 years ago
if [ ! -f $INSTALL_PATH/$AARCH32_CC_PACK ]; then
echo "[4]: Failed, AARCH32 CC Package Non Found !!!" $INSTALL_PATH "/" $AARCH32_CC_PACK
3 years ago
exit
fi
if [ ! -f $INSTALL_PATH/$AARCH64_CC_PACK ]; then
echo "[4]: Failed, AARCH64 CC Package Non Found !!!" $INSTALL_PATH "/" $AARCH64_CC_PACK
3 years ago
exit
fi
3 years ago
# untar aarch32 cc
echo "[4]: Untar AARCH32 CC in process.."
if [ ! -d $AARCH32_CROSS_PATH ]; then
tar -C $INSTALL_PATH/ -xvf $INSTALL_PATH/$AARCH32_CC_PACK
if [ $? -ne 0 ]; then
echo "[4]: Failed when Untar AARCH32 CC !!!"
exit
fi
fi
# write aarch32 cc path
echo "[4]: AARCH32 CC Install Success at "$AARCH32_CROSS_PATH
# untar aarch64 cc
echo "[4]: Untar AARCH64 CC in process.."
if [ ! -d $AARCH64_CROSS_PATH ]; then
tar -C $INSTALL_PATH/ -xvf $INSTALL_PATH/$AARCH64_CC_PACK
if [ $? -ne 0 ]; then
echo "[4]: Failed when Untar AARCH64 CC !!!"
exit
fi
fi
# write aarch64 cc path
echo "[4]: AARCH64 CC Install Success at "$AARCH64_CROSS_PATH
# write environment variables
echo "export AARCH32_CROSS_PATH=$AARCH32_CROSS_PATH" >> $PROFILE_PATH
echo "export PATH=\$PATH:\$AARCH32_CROSS_PATH/bin">> $PROFILE_PATH
echo "export AARCH64_CROSS_PATH=$AARCH64_CROSS_PATH" >> $PROFILE_PATH
3 years ago
echo "export PATH=\$PATH:\$AARCH64_CROSS_PATH/bin">> $PROFILE_PATH
echo "export STANDALONE_SDK_ROOT=$STANDALONE_SDK_ROOT" >> $PROFILE_PATH
3 years ago
if [ $? -ne 0 ]; then
echo "[4]: Failed when Update Environment Variables !!!"
exit
fi
3 years ago
# show success info
echo "[5]: Success!!! Standalone SDK is Install at "$STANDALONE_SDK_ROOT
echo "[5]: Phytium Standalone SDK Setup Done!!!"
echo "[5]: Type in ' source " $PROFILE_PATH "' to Active Environment"