#!/usr/bin/env beesh

# BEE_VERSION go-1.13.4-1

SRCURL[0]="https://storage.googleapis.com/golang/go1.4-bootstrap-20171003.tar.gz"
SRCURL[1]="https://redirector.gvt1.com/edgedl/go/go${PKGVERSION}.src.tar.gz"

# PATCHURL+=()

# EXCLUDE+=()

build_in_sourcedir

sourcesubdir_append src

mee_extract() {
    # extract bootstrap version of go-1.4 to arbitrary location
    mkdir ${S}/bootstrap
    bee_extract_do_tar "${1}" ${S}/bootstrap --strip-components 1
    shift
    bee_extract "${@}"
}

#mee_patch() {
#    bee_patch "${@}"
#}

#mee_configure() {
#    bee_configure
#}mee_install()

mee_build() {

    cd ${S}/../bootstrap/src

    # https://github.com/golang/go/issues/16906  "cannot load DWARF output ..."
    CGO_ENABLED=0 \
    CFLAGS='-Wno-implicit-fallthrough -Wno-shift-negative-value' \
    ./make.bash

    echo "---- bootstrap built ----"
    cd ${S}

    export GOROOT_BOOTSTRAP=${S}/../bootstrap
    export GOROOT_FINAL=${LIBDIR}/go
    ./make.bash --no-clean
}


mee_install() {
    # The binaries expect /scratch/local/bee-root/go/go-1.10-0/source to be copied or moved to /usr/lib/go
    mkdir -pv ${D}${BINDIR}

    cp -rv ${S}/../bin/. ${D}${BINDIR}

    # strace -s 200 -e file ${S}/../bin/go install -buildmode=shared std

    # Install standardlibs https://golang.org/pkg/#stdlib

    mkdir -pv ${D}${LIBDIR}/go/src

    cd ${S}
    for i in *; do
        if [ -d "${i}" ]; then
            cp -rv ${i} ${D}${LIBDIR}/go/src
        fi
    done

    #Install tools for go
    mkdir -pv ${D}${LIBDIR}/go/pkg
    cp -rv ${S}/../pkg/tool ${D}${LIBDIR}/go/pkg
    cp -rv ${S}/../pkg/include ${D}${LIBDIR}/go/pkg
    cp -rv ${S}/../pkg/linux_amd64 ${D}${LIBDIR}/go/pkg
}

#mee_install_post() {
#   exit
#}