#!/bin/bash

set -eou pipefail

TARGET=$1
VERSION=$2
TOOLCHAIN_VERSION_SUFFIX=$3
HOME=/home/ct
ZLIB_VERSION=1.2.11

build_toolchain() {
  mkdir $HOME/build-"$TARGET"
  cd $HOME/build-"$TARGET"
  cp $HOME/toolchains/"$TARGET"/"$VERSION".config .config
  ct-ng build
  cd ..
}

build_zlib() {
  TOOLCHAINS_PATH=$HOME/x-tools
  INSTALL_PATH=$TOOLCHAINS_PATH/$TARGET/$TARGET/sysroot/usr
  TOOLCHAIN_BIN_PREFIX=$TOOLCHAINS_PATH/$TARGET/bin/$TARGET
  cd $HOME/zlib-$ZLIB_VERSION

  CHOST=$TARGET \
  CC=$TOOLCHAIN_BIN_PREFIX-gcc \
  AR=$TOOLCHAIN_BIN_PREFIX-ar \
  RANLIB=$TOOLCHAIN_BIN_PREFIX-ranlib \
  ./configure \
  --prefix="$INSTALL_PATH"

  make && make install
}

build_archive() {
  cd $HOME/x-tools
  if [ -z "$TOOLCHAIN_VERSION_SUFFIX" ]
  then
    FULL_NAME="$TARGET-$VERSION"
  else
    FULL_NAME="$TARGET-$VERSION-$TOOLCHAIN_VERSION_SUFFIX"
  fi
  mv "$TARGET" "$FULL_NAME"
  ARCHIVE_NAME="$FULL_NAME.tar.gz"
  tar -czvf "$ARCHIVE_NAME" "$FULL_NAME"
  echo "$PWD/$ARCHIVE_NAME"
  mkdir -p ~/artifacts
  cp "$ARCHIVE_NAME" ~/artifacts/"$ARCHIVE_NAME"
}

echo "building toolchain for $TARGET"

build_toolchain
build_zlib
build_archive