#!/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)
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-a/10.2-2020.11/binrel/gcc-arm-10.2-2020.11-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 (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-a/10.2-2020.11/binrel/gcc-arm-10.2-2020.11-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
curl --connect-timeout 5 --retry 5 --retry-delay 1 --create-dirs -fsSLo /tmp/DS500-BN-00026-r5p0-10rel0.tgz \
  https://developer.arm.com/-/media/Files/downloads/compiler/DS500-BN-00026-r5p0-10rel0.tgz?revision=1f1cb8d5-4d1c-4516-9583-b347f71844f4?product=Download%20Arm%20Compiler,64-bit,,Linux,6.8
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.13 (armclang)
mkdir -p /tmp/armclang-6.13
curl --connect-timeout 5 --retry 5 --retry-delay 1 --create-dirs -fsSLo /tmp/DS500-BN-00026-r5p0-15rel0.tgz \
  https://developer.arm.com/-/media/Files/downloads/compiler/DS500-BN-00026-r5p0-15rel0.tgz?revision=6a961cf7-1d9a-4664-900b-11d20552dbc7?product=Download%20Arm%20Compiler,64-bit,,Linux,6.13
tar -xf /tmp/DS500-BN-00026-r5p0-15rel0.tgz -C /tmp/armclang-6.13
/tmp/armclang-6.13/install_x86_64.sh --no-interactive --i-agree-to-the-contained-eula -d ${TOOLS_DIR}

# Install LLVM Clang toolchain (clang)
curl --connect-timeout 5 --retry 5 --retry-delay 1 --create-dirs -fsSLo /tmp/clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz \
  https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.0/clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz
tar -xf /tmp/clang+llvm-10.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
