blob: 6f43fe102d2ec37f192fa0d3341cabc2a8e109f5 [file] [log] [blame]
Fathi Boudra5a803a62020-11-10 17:38:02 +01001#!/bin/sh
2
3set -e
4
5# Install cppcheck
6wget -q http://github.com/danmar/cppcheck/releases/download/1.81/cppcheck-1.81.tar.gz -O /tmp/cppcheck.tar.gz
7tar -xf /tmp/cppcheck.tar.gz -C /opt
8(cd /opt/cppcheck-*; make CFGDIR=/opt/cppcheck-1.81/cfg; make install; make clean)
9
10# Install PlantUML
Paul Sokolovsky036754d2022-11-14 16:54:37 +030011curl --connect-timeout 5 --retry 5 --create-dirs -fsSLo ${PLANTUML_JAR_PATH} \
Fathi Boudrabb903d92020-11-11 10:06:36 +010012 https://repo1.maven.org/maven2/net/sourceforge/plantuml/plantuml/1.2019.6/plantuml-1.2019.6.jar
Leonardo Sandovale284e9b2020-11-17 16:21:17 -060013cat << EOF > /usr/bin/plantuml
14#!/bin/sh
15/usr/bin/java -jar ${PLANTUML_JAR_PATH} \${@}
16EOF
17chmod 0755 /usr/bin/plantuml
Fathi Boudra5a803a62020-11-10 17:38:02 +010018
19# Install CMake
Paul Sokolovsky036754d2022-11-14 16:54:37 +030020curl --connect-timeout 5 --retry 5 --create-dirs -fsSLo /tmp/cmake-Linux-x86_64.tar.gz \
Fathi Boudrae253d282020-11-12 17:18:48 +010021 https://github.com/Kitware/CMake/releases/download/v3.15.7/cmake-3.15.7-Linux-x86_64.tar.gz
Fathi Boudra5a803a62020-11-10 17:38:02 +010022tar -xf /tmp/cmake-Linux-x86_64.tar.gz -C ${TOOLS_DIR} --strip-components=1
23
Nicola Mazzucato8d0b7d92021-06-11 17:03:13 +010024# Install Arm GCC toolchain (arm-none-eabi GNU-A)
Paul Sokolovsky036754d2022-11-14 16:54:37 +030025curl --connect-timeout 5 --retry 5 --create-dirs -fsSLo /tmp/gcc-arm-x86_64-arm-none-eabi.tar.xz \
Jayanth Dodderi Chidanand2dd529d2022-09-13 17:24:15 +010026 https://developer.arm.com/-/media/Files/downloads/gnu/11.3.Rel1/binrel/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-eabi.tar.xz
Fathi Boudra5a803a62020-11-10 17:38:02 +010027tar -Jxf /tmp/gcc-arm-x86_64-arm-none-eabi.tar.xz -C ${TOOLS_DIR} --strip-components=1
28
Nicola Mazzucato8d0b7d92021-06-11 17:03:13 +010029# Install Arm GCC toolchain (arm-none-eabi GNU-RM)
Paul Sokolovsky036754d2022-11-14 16:54:37 +030030curl --connect-timeout 5 --retry 5 --create-dirs -fsSLo /tmp/gcc-arm-x86_64-arm-none-eabi.tar.bz2 \
Nicola Mazzucato8d0b7d92021-06-11 17:03:13 +010031 https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
32mkdir -p ${TOOLS_DIR}/gnu-rm
33tar xjf /tmp/gcc-arm-x86_64-arm-none-eabi.tar.bz2 -C ${TOOLS_DIR}/gnu-rm --strip-components=1
34
Fathi Boudra5a803a62020-11-10 17:38:02 +010035# Install Arm GCC toolchain (aarch64-none-elf)
Paul Sokolovsky036754d2022-11-14 16:54:37 +030036curl --connect-timeout 5 --retry 5 --create-dirs -fsSLo /tmp/gcc-arm-x86_64-aarch64-none-elf.tar.xz \
Jayanth Dodderi Chidanand2dd529d2022-09-13 17:24:15 +010037 https://developer.arm.com/-/media/Files/downloads/gnu/11.3.Rel1/binrel/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-elf.tar.xz
Fathi Boudra5a803a62020-11-10 17:38:02 +010038tar -Jxf /tmp/gcc-arm-x86_64-aarch64-none-elf.tar.xz -C ${TOOLS_DIR} --strip-components=1
39
40# Install Linaro GCC 6.2.1 toolchain (aarch64-none-elf), which is required by some platforms, i.e. marvell
41# NOTE: Toolchain is not available through PATH so to use it, CROSS_COMPILE should point to
42# CROSS_COMPILE=${TOOLS_DIR}/gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
Paul Sokolovsky036754d2022-11-14 16:54:37 +030043curl --connect-timeout 5 --retry 5 --create-dirs -fsSLo /tmp/gcc-linaro-x86_64_aarch64-linux-gnu.tar.xz \
Fathi Boudrabb903d92020-11-11 10:06:36 +010044 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
Fathi Boudra5a803a62020-11-10 17:38:02 +010045tar -Jxf /tmp/gcc-linaro-x86_64_aarch64-linux-gnu.tar.xz -C ${TOOLS_DIR}
46
Paul Sokolovsky5b9265e2022-11-12 14:17:04 +030047# 2022-11-11: No longer available at Arm download page
48## Install Arm Clang 6.8 toolchain (armclang)
49## NOTE: Toolchain is not available through PATH so to use it, CC should point to
50## CC=${TOOLS_DIR}/armclang-6.8/bin/armclang
51#mkdir -p /tmp/armclang-6.8
52#wget -O /tmp/DS500-BN-00026-r5p0-10rel0.tgz \
53# -q https://developer.arm.com/-/media/Files/downloads/compiler/DS500-BN-00026-r5p0-10rel0.tgz
54#tar -xf /tmp/DS500-BN-00026-r5p0-10rel0.tgz -C /tmp/armclang-6.8
55#/tmp/armclang-6.8/install_x86_64.sh --no-interactive --i-agree-to-the-contained-eula -d ${TOOLS_DIR}/armclang-6.8
56
57# This replaces unavailable Arm Clang 6.8 above
58# Install Arm Clang 6.9 toolchain (armclang)
Fathi Boudrabb903d92020-11-11 10:06:36 +010059# NOTE: Toolchain is not available through PATH so to use it, CC should point to
Paul Sokolovsky5b9265e2022-11-12 14:17:04 +030060# CC=${TOOLS_DIR}/armclang-6.9/bin/armclang
61mkdir -p /tmp/armclang-6.9
62tar -xf /tmp/DS500-BN-00026-r5p0-11rel0.tar.gz -C /tmp/armclang-6.9
63/tmp/armclang-6.9/install_x86_64.sh --no-interactive --i-agree-to-the-contained-eula -d ${TOOLS_DIR}/armclang-6.9
Leonardo Sandovalf8dd5b32020-11-10 11:46:29 -060064
Harrison Mutaib21cf9d2022-02-17 09:40:22 +000065# Install Arm Clang 6.17 toolchain (armclang)
66mkdir -p /tmp/armclang-6.17
Paul Sokolovsky5b9265e2022-11-12 14:17:04 +030067tar -xf /tmp/DS500-BN-00026-r5p0-19rel0.tar.gz -C /tmp/armclang-6.17
Harrison Mutaib21cf9d2022-02-17 09:40:22 +000068/tmp/armclang-6.17/install_x86_64.sh --no-interactive --i-agree-to-the-contained-eula -d ${TOOLS_DIR}/armclang-6.17
Fathi Boudrabb903d92020-11-11 10:06:36 +010069
70# Install LLVM Clang toolchain (clang)
Paul Sokolovsky036754d2022-11-14 16:54:37 +030071curl --connect-timeout 5 --retry 5 --create-dirs -fsSLo /tmp/clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz \
Harrison Mutaib21cf9d2022-02-17 09:40:22 +000072 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
73tar -xf /tmp/clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz -C ${TOOLS_DIR} --strip-components=1
Leonardo Sandovaldb344642020-11-10 13:04:28 -060074
Fathi Boudra5a803a62020-11-10 17:38:02 +010075# Additional binaries required
76mkdir -p nfs/downloads/linaro/20.01
77cd nfs/downloads/linaro/20.01
78wget -q -c -m -A .zip -np -nd https://releases.linaro.org/members/arm/platforms/20.01/
Leonardo Sandoval82913582020-11-23 10:39:25 -060079rm -f fvp*-android-*.zip sg*.zip
Fathi Boudra5a803a62020-11-10 17:38:02 +010080for file in *.zip; do
81 unzip -q ${file} -d $(basename ${file} .zip)
82done
83rm -f *.zip
Fathi Boudraccaff2a2021-04-19 11:32:53 +020084
Juan Pablo Conde40c61ed2022-04-24 18:51:11 -040085# Install OpenSSL 3.0
Juan Pablo Conde9dfa7cf2022-11-15 15:01:35 -050086OPENSSL_VER="3.0.7"
Juan Pablo Conde40c61ed2022-04-24 18:51:11 -040087OPENSSL_DIRNAME="openssl-${OPENSSL_VER}"
88OPENSSL_FILENAME="openssl-${OPENSSL_VER}"
Juan Pablo Conde9dfa7cf2022-11-15 15:01:35 -050089OPENSSL_CHECKSUM="83049d042a260e696f62406ac5c08bf706fd84383f945cf21bd61e9ed95c396e"
90curl --connect-timeout 5 --retry 5 --retry-delay 1 --create-dirs -fsSLo /tmp/${OPENSSL_FILENAME}.tar.gz \
Juan Pablo Conde40c61ed2022-04-24 18:51:11 -040091 https://www.openssl.org/source/${OPENSSL_FILENAME}.tar.gz
92echo "${OPENSSL_CHECKSUM} /tmp/${OPENSSL_FILENAME}.tar.gz" | sha256sum -c
93mkdir -p ${TOOLS_DIR}/${OPENSSL_DIRNAME} && tar -xzf /tmp/${OPENSSL_FILENAME}.tar.gz -C ${TOOLS_DIR}/${OPENSSL_DIRNAME} --strip-components=1
94cd ${TOOLS_DIR}/${OPENSSL_DIRNAME}
95./Configure --libdir=lib --prefix=/usr --api=1.0.1
96cd ${TOOLS_DIR}
97make -C ${TOOLS_DIR}/${OPENSSL_DIRNAME}
98make -C ${TOOLS_DIR}/${OPENSSL_DIRNAME} install