| #!/bin/sh |
| |
| set -e |
| |
| # Install cppcheck |
| wget -q http://github.com/danmar/cppcheck/releases/download/1.81/cppcheck-1.81.tar.gz -O /tmp/cppcheck.tar.gz |
| tar -xf /tmp/cppcheck.tar.gz -C /opt |
| (cd /opt/cppcheck-*; make CFGDIR=/opt/cppcheck-1.81/cfg; make install; make clean) |
| |
| # Install PlantUML |
| curl --connect-timeout 5 --retry 5 --retry-delay 1 --create-dirs -fsSLo ${PLANTUML_JAR_PATH} \ |
| https://repo1.maven.org/maven2/net/sourceforge/plantuml/plantuml/1.2019.6/plantuml-1.2019.6.jar |
| cat << EOF > /usr/bin/plantuml |
| #!/bin/sh |
| /usr/bin/java -jar ${PLANTUML_JAR_PATH} \${@} |
| EOF |
| chmod 0755 /usr/bin/plantuml |
| |
| # Install CMake |
| curl --connect-timeout 5 --retry 5 --retry-delay 1 --create-dirs -fsSLo /tmp/cmake-Linux-x86_64.tar.gz \ |
| https://github.com/Kitware/CMake/releases/download/v3.15.7/cmake-3.15.7-Linux-x86_64.tar.gz |
| tar -xf /tmp/cmake-Linux-x86_64.tar.gz -C ${TOOLS_DIR} --strip-components=1 |
| |
| # Install Arm GCC toolchain (arm-none-eabi GNU-A) |
| curl --connect-timeout 5 --retry 5 --retry-delay 1 --create-dirs -fsSLo /tmp/gcc-arm-x86_64-arm-none-eabi.tar.xz \ |
| https://developer.arm.com/-/media/Files/downloads/gnu/11.2-2022.02/binrel/gcc-arm-11.2-2022.02-x86_64-arm-none-eabi.tar.xz |
| tar -Jxf /tmp/gcc-arm-x86_64-arm-none-eabi.tar.xz -C ${TOOLS_DIR} --strip-components=1 |
| |
| # Install Arm GCC toolchain (arm-none-eabi GNU-RM) |
| curl --connect-timeout 5 --retry 5 --retry-delay 1 --create-dirs -fsSLo /tmp/gcc-arm-x86_64-arm-none-eabi.tar.bz2 \ |
| https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 |
| mkdir -p ${TOOLS_DIR}/gnu-rm |
| tar xjf /tmp/gcc-arm-x86_64-arm-none-eabi.tar.bz2 -C ${TOOLS_DIR}/gnu-rm --strip-components=1 |
| |
| # Install Arm GCC toolchain (aarch64-none-elf) |
| curl --connect-timeout 5 --retry 5 --retry-delay 1 --create-dirs -fsSLo /tmp/gcc-arm-x86_64-aarch64-none-elf.tar.xz \ |
| https://developer.arm.com/-/media/Files/downloads/gnu/11.2-2022.02/binrel/gcc-arm-11.2-2022.02-x86_64-aarch64-none-elf.tar.xz |
| tar -Jxf /tmp/gcc-arm-x86_64-aarch64-none-elf.tar.xz -C ${TOOLS_DIR} --strip-components=1 |
| |
| # Install Linaro GCC 6.2.1 toolchain (aarch64-none-elf), which is required by some platforms, i.e. marvell |
| # NOTE: Toolchain is not available through PATH so to use it, CROSS_COMPILE should point to |
| # CROSS_COMPILE=${TOOLS_DIR}/gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- |
| curl --connect-timeout 5 --retry 5 --retry-delay 1 --create-dirs -fsSLo /tmp/gcc-linaro-x86_64_aarch64-linux-gnu.tar.xz \ |
| https://releases.linaro.org/components/toolchain/binaries/6.2-2016.11/aarch64-linux-gnu/gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu.tar.xz |
| tar -Jxf /tmp/gcc-linaro-x86_64_aarch64-linux-gnu.tar.xz -C ${TOOLS_DIR} |
| |
| # Install Arm Clang 6.8 toolchain (armclang) |
| # NOTE: Toolchain is not available through PATH so to use it, CC should point to |
| # CC=${TOOLS_DIR}/armclang-6.8/bin/armclang |
| mkdir -p /tmp/armclang-6.8 |
| wget -O /tmp/DS500-BN-00026-r5p0-10rel0.tgz \ |
| -q https://developer.arm.com/-/media/Files/downloads/compiler/DS500-BN-00026-r5p0-10rel0.tgz |
| tar -xf /tmp/DS500-BN-00026-r5p0-10rel0.tgz -C /tmp/armclang-6.8 |
| /tmp/armclang-6.8/install_x86_64.sh --no-interactive --i-agree-to-the-contained-eula -d ${TOOLS_DIR}/armclang-6.8 |
| |
| # Install Arm Clang 6.17 toolchain (armclang) |
| mkdir -p /tmp/armclang-6.17 |
| wget -O /tmp/DS500-BN-00026-r5p0-19rel0.tgz \ |
| -q https://developer.arm.com/-/media/Files/downloads/compiler/DS500-BN-00026-r5p0-19rel0.tgz |
| tar -xf /tmp/DS500-BN-00026-r5p0-19rel0.tgz -C /tmp/armclang-6.17 |
| /tmp/armclang-6.17/install_x86_64.sh --no-interactive --i-agree-to-the-contained-eula -d ${TOOLS_DIR}/armclang-6.17 |
| |
| # Install LLVM Clang toolchain (clang) |
| curl --connect-timeout 5 --retry 5 --retry-delay 1 --create-dirs -fsSLo /tmp/clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz \ |
| https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.0/clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz |
| tar -xf /tmp/clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz -C ${TOOLS_DIR} --strip-components=1 |
| |
| # Additional binaries required |
| mkdir -p nfs/downloads/linaro/20.01 |
| cd nfs/downloads/linaro/20.01 |
| wget -q -c -m -A .zip -np -nd https://releases.linaro.org/members/arm/platforms/20.01/ |
| rm -f fvp*-android-*.zip sg*.zip |
| for file in *.zip; do |
| unzip -q ${file} -d $(basename ${file} .zip) |
| done |
| rm -f *.zip |
| |
| # Install NVM |
| mkdir -p ${NVM_DIR} |
| curl -s https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash |
| echo ". ${NVM_DIR}/nvm.sh" >> /home/buildslave/.bashrc |
| chown -R buildslave:buildslave /home/buildslave/.bashrc |
| . ${NVM_DIR}/nvm.sh |
| nvm install 14 |
| |
| # Install OpenSSL 3.0 |
| OPENSSL_VER="3.0.2" |
| OPENSSL_DIRNAME="openssl-${OPENSSL_VER}" |
| OPENSSL_FILENAME="openssl-${OPENSSL_VER}" |
| OPENSSL_CHECKSUM="98e91ccead4d4756ae3c9cde5e09191a8e586d9f4d50838e7ec09d6411dfdb63" |
| curl --connect-timeout 5 --retry 5 --retry-delay 1 --create-dirs -fsSLo /tmp/${OPENSSL_FILENAME}.tar.gz \ |
| https://www.openssl.org/source/${OPENSSL_FILENAME}.tar.gz |
| echo "${OPENSSL_CHECKSUM} /tmp/${OPENSSL_FILENAME}.tar.gz" | sha256sum -c |
| mkdir -p ${TOOLS_DIR}/${OPENSSL_DIRNAME} && tar -xzf /tmp/${OPENSSL_FILENAME}.tar.gz -C ${TOOLS_DIR}/${OPENSSL_DIRNAME} --strip-components=1 |
| cd ${TOOLS_DIR}/${OPENSSL_DIRNAME} |
| ./Configure --libdir=lib --prefix=/usr --api=1.0.1 |
| cd ${TOOLS_DIR} |
| make -C ${TOOLS_DIR}/${OPENSSL_DIRNAME} |
| make -C ${TOOLS_DIR}/${OPENSSL_DIRNAME} install |
| |