#!/bin/sh

set -ex

# Install cppcheck
wget -q https://github.com/danmar/cppcheck/archive/refs/tags/2.7.tar.gz -O /tmp/cppcheck.tar.gz
tar -xf /tmp/cppcheck.tar.gz -C /opt
(cd /opt/cppcheck-*; make FILESDIR=/opt/cppcheck-2.7/cfg; make FILESDIR=/opt/cppcheck-2.7/cfg install; make clean)

# Install PlantUML
curl --connect-timeout 5 --retry 5 --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 --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 15 --retry 5 --create-dirs -fsSLo /tmp/gcc-arm-x86_64-arm-none-eabi.tar.xz \
  https://developer.arm.com/-/media/Files/downloads/gnu/13.3.Rel1/binrel/arm-gnu-toolchain-13.3.rel1-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 15 --retry 5 --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 15 --retry 5 --create-dirs -fsSLo /tmp/gcc-arm-x86_64-aarch64-none-elf.tar.xz \
  https://developer.arm.com/-/media/Files/downloads/gnu/13.3.Rel1/binrel/arm-gnu-toolchain-13.3.rel1-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 --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 LLVM Clang toolchain (clang)
curl --connect-timeout 5 --retry 5 --create-dirs -fsSLo /tmp/clang+llvm-18.1.8-x86_64-linux-gnu-ubuntu-18.04.tar.xz \
  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
tar -xf /tmp/clang+llvm-18.1.8-x86_64-linux-gnu-ubuntu-18.04.tar.xz -C ${TOOLS_DIR} --strip-components=1

# Install Arm Clang 6.18 toolchain (armclang)
mkdir -p /tmp/armclang-6.18
tar -xf /tmp/ARMCompiler6.18_standalone_linux-x86_64.tar.gz -C /tmp/armclang-6.18
/tmp/armclang-6.18/install_x86_64.sh --no-interactive --i-agree-to-the-contained-eula -d ${TOOLS_DIR}/armclang-6.18

# Install the CUE data constraint language
go install cuelang.org/go/cmd/cue@v0.5.0

# 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 OpenSSL 3.0
OPENSSL_VER="3.0.7"
OPENSSL_DIRNAME="openssl-${OPENSSL_VER}"
OPENSSL_FILENAME="openssl-${OPENSSL_VER}"
OPENSSL_CHECKSUM="83049d042a260e696f62406ac5c08bf706fd84383f945cf21bd61e9ed95c396e"
curl --connect-timeout 5 --retry 5 --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
