#!/bin/sh

# Ensure we have gcc-go
MAKEDEPS="make gcc"
DEPS=""

PKG_VER=1.17.7
SOURCE=https://go.dev/dl/go$PKG_VER.src.tar.gz

BOOTSTRAP="go1.4-bootstrap-20171003"
ADDITIONAL="
    https://dl.google.com/go/$BOOTSTRAP.tar.gz
"

DESC="Core compiler tools for the Go programming language"

prepare () {
    export TMPDIR=/tmp
    tar -xvf $BOOTSTRAP.tar.gz
    mv go $BOOTSTRAP
}

build () {
    export sourceroot=$(pwd)
    export GOARCH=amd64
    export GOAMD64=v1 # make sure we're building for the right x86-64 version
    export GOOS="linux"

    cd $BOOTSTRAP
    cd src
    echo "~~~~BUILDING BOOTSTRAP"
    CGO_ENABLED=0 ./make.bash -v
    
    cd $sourceroot
    export GOROOT_FINAL=/usr/lib/go
    export GOROOT_BOOTSTRAP="$(pwd)/$BOOTSTRAP"

    echo "~~~~BUILDING GOLANG"
    cd src
    if [ ! -z "${GOROOT_BOOTSTRAP}" ]; then
        ./bootstrap.bash -v
    fi
    ./make.bash -v
    cd ..
}

package () {
  install -d "$PKG_DEST/usr/bin" "$PKG_DEST/usr/lib/go" "$PKG_DEST/usr/share/doc/go" \
    "$PKG_DEST/usr/lib/go/pkg/linux_amd64_"dynlink \
    "$PKG_DEST/usr/lib/go/pkg/linux_amd64_"race

  cp -a bin pkg src lib misc api test "$PKG_DEST/usr/lib/go"
  cp -r doc/* "$PKG_DEST/usr/share/doc/go"

  ln -sf /usr/lib/go/bin/go "$PKG_DEST/usr/bin/go"
  ln -sf /usr/lib/go/bin/gofmt "$PKG_DEST/usr/bin/gofmt"
  ln -sf /usr/share/doc/go "$PKG_DEST/usr/lib/go/doc"

  install -Dm644 VERSION "$PKG_DEST/usr/lib/go/VERSION"

  rm -rf "$PKG_DEST/usr/lib/go/pkg/bootstrap" "$PKG_DEST/usr/lib/go/pkg/tool/*/api"

  # TODO: Figure out if really needed
  rm -rf "$PKG_DEST"/usr/lib/go/pkg/obj/go-build/*

  install -Dm644 LICENSE "$PKG_DEST/usr/share/licenses/$pkgname/LICENSE"
}