blob: e8cdc704a6acab1cb3ecebcf45777c7d3f2260aa [file] [log] [blame]
Kelley Spoon76bcaed2022-04-29 00:11:35 -05001#!/bin/sh
2
Paul Sokolovsky79d4b882022-12-14 21:13:43 +03003set -ex
Kelley Spoon76bcaed2022-04-29 00:11:35 -05004
5# Install cppcheck
6wget -q https://github.com/danmar/cppcheck/archive/refs/tags/2.7.tar.gz -O /tmp/cppcheck.tar.gz
7tar -xf /tmp/cppcheck.tar.gz -C /opt
8(cd /opt/cppcheck-*; make FILESDIR=/opt/cppcheck-2.7/cfg; make FILESDIR=/opt/cppcheck-2.7/cfg install; make clean)
9
10# Install PlantUML
Paul Sokolovsky79d4b882022-12-14 21:13:43 +030011curl --connect-timeout 5 --retry 5 --create-dirs -fsSLo ${PLANTUML_JAR_PATH} \
Kelley Spoon76bcaed2022-04-29 00:11:35 -050012 https://repo1.maven.org/maven2/net/sourceforge/plantuml/plantuml/1.2019.6/plantuml-1.2019.6.jar
13cat << EOF > /usr/bin/plantuml
14#!/bin/sh
15/usr/bin/java -jar ${PLANTUML_JAR_PATH} \${@}
16EOF
17chmod 0755 /usr/bin/plantuml
18
19# Install CMake
Paul Sokolovsky79d4b882022-12-14 21:13:43 +030020curl --connect-timeout 5 --retry 5 --create-dirs -fsSLo /tmp/cmake-Linux-x86_64.tar.gz \
Kelley Spoon76bcaed2022-04-29 00:11:35 -050021 https://github.com/Kitware/CMake/releases/download/v3.15.7/cmake-3.15.7-Linux-x86_64.tar.gz
22tar -xf /tmp/cmake-Linux-x86_64.tar.gz -C ${TOOLS_DIR} --strip-components=1
23
24# Install Arm GCC toolchain (arm-none-eabi GNU-A)
Paul Sokolovsky79d4b882022-12-14 21:13:43 +030025curl --connect-timeout 15 --retry 5 --create-dirs -fsSLo /tmp/gcc-arm-x86_64-arm-none-eabi.tar.xz \
Jayanth Dodderi Chidanandd406af72025-04-04 16:52:30 +010026 https://developer.arm.com/-/media/Files/downloads/gnu/14.2.Rel1/binrel/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi.tar.xz
Kelley Spoon76bcaed2022-04-29 00:11:35 -050027tar -Jxf /tmp/gcc-arm-x86_64-arm-none-eabi.tar.xz -C ${TOOLS_DIR} --strip-components=1
28
29# Install Arm GCC toolchain (arm-none-eabi GNU-RM)
Paul Sokolovsky79d4b882022-12-14 21:13:43 +030030curl --connect-timeout 15 --retry 5 --create-dirs -fsSLo /tmp/gcc-arm-x86_64-arm-none-eabi.tar.bz2 \
Kelley Spoon76bcaed2022-04-29 00:11:35 -050031 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
35# Install Arm GCC toolchain (aarch64-none-elf)
Paul Sokolovsky79d4b882022-12-14 21:13:43 +030036curl --connect-timeout 15 --retry 5 --create-dirs -fsSLo /tmp/gcc-arm-x86_64-aarch64-none-elf.tar.xz \
Jayanth Dodderi Chidanandd406af72025-04-04 16:52:30 +010037 https://developer.arm.com/-/media/Files/downloads/gnu/14.2.Rel1/binrel/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf.tar.xz
Kelley Spoon76bcaed2022-04-29 00:11:35 -050038tar -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 Sokolovsky79d4b882022-12-14 21:13:43 +030043curl --connect-timeout 5 --retry 5 --create-dirs -fsSLo /tmp/gcc-linaro-x86_64_aarch64-linux-gnu.tar.xz \
Kelley Spoon76bcaed2022-04-29 00:11:35 -050044 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
45tar -Jxf /tmp/gcc-linaro-x86_64_aarch64-linux-gnu.tar.xz -C ${TOOLS_DIR}
46
J-Alvesc2ffdd62024-08-01 13:44:42 +010047# Install LLVM Clang toolchain (clang)
48curl --connect-timeout 5 --retry 5 --create-dirs -fsSLo /tmp/clang+llvm-18.1.8-x86_64-linux-gnu-ubuntu-18.04.tar.xz \
49 https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.8/clang+llvm-18.1.8-x86_64-linux-gnu-ubuntu-18.04.tar.xz
50tar -xf /tmp/clang+llvm-18.1.8-x86_64-linux-gnu-ubuntu-18.04.tar.xz -C ${TOOLS_DIR} --strip-components=1
51
Boyan Karatotevdc863e22025-01-31 13:33:36 +000052# Install Arm Clang 6.23 toolchain (armclang)
53mkdir -p /tmp/armclang-6.23
54tar -xf /tmp/ARMCompiler6.23_standalone_linux-x86_64.tar.gz -C /tmp/armclang-6.23
55/tmp/armclang-6.23/install_x86_64.sh --no-interactive --i-agree-to-the-contained-eula -d ${TOOLS_DIR}/armclang-6.23
Paul Sokolovsky22828612023-10-11 21:06:15 +030056
Chris Kay38b498c2023-08-04 17:30:24 +000057# Install the CUE data constraint language
58go install cuelang.org/go/cmd/cue@v0.5.0
59
Kelley Spoon76bcaed2022-04-29 00:11:35 -050060# Additional binaries required
61mkdir -p nfs/downloads/linaro/20.01
62cd nfs/downloads/linaro/20.01
63wget -q -c -m -A .zip -np -nd https://releases.linaro.org/members/arm/platforms/20.01/
64rm -f fvp*-android-*.zip sg*.zip
65for file in *.zip; do
66 unzip -q ${file} -d $(basename ${file} .zip)
67done
68rm -f *.zip
69
Kelley Spoon76bcaed2022-04-29 00:11:35 -050070# Install OpenSSL 3.0
Boyan Karatotevca3afeb2023-01-24 14:58:41 +000071OPENSSL_VER="3.0.7"
Kelley Spoon76bcaed2022-04-29 00:11:35 -050072OPENSSL_DIRNAME="openssl-${OPENSSL_VER}"
73OPENSSL_FILENAME="openssl-${OPENSSL_VER}"
Boyan Karatotevca3afeb2023-01-24 14:58:41 +000074OPENSSL_CHECKSUM="83049d042a260e696f62406ac5c08bf706fd84383f945cf21bd61e9ed95c396e"
Paul Sokolovsky79d4b882022-12-14 21:13:43 +030075curl --connect-timeout 5 --retry 5 --create-dirs -fsSLo /tmp/${OPENSSL_FILENAME}.tar.gz \
Kelley Spoon76bcaed2022-04-29 00:11:35 -050076 https://www.openssl.org/source/${OPENSSL_FILENAME}.tar.gz
77echo "${OPENSSL_CHECKSUM} /tmp/${OPENSSL_FILENAME}.tar.gz" | sha256sum -c
78mkdir -p ${TOOLS_DIR}/${OPENSSL_DIRNAME} && tar -xzf /tmp/${OPENSSL_FILENAME}.tar.gz -C ${TOOLS_DIR}/${OPENSSL_DIRNAME} --strip-components=1
79cd ${TOOLS_DIR}/${OPENSSL_DIRNAME}
80./Configure --libdir=lib --prefix=/usr --api=1.0.1
81cd ${TOOLS_DIR}
82make -C ${TOOLS_DIR}/${OPENSSL_DIRNAME}
83make -C ${TOOLS_DIR}/${OPENSSL_DIRNAME} install