# Compiling Time: 0.16 SBU
# Maintainer: DeX77 <dex77@frugalware.org>

pkgname=go
pkgver=1.6.3
pkgrel=1
pkgdesc='Compiler and tools for the Go programming language from Google'
archs=('x86_64' 'i686')
groups=('devel-extra')
url='http://golang.org/'
depends=('perl' 'gawk')
makedepends=('mercurial' 'git' 'go')
Fpkgversep=""
_F_archive_prefix=".src"
_F_cd_path="go/src"
_F_archive_grepv="beta\|alpha\|rc[1-9]"
up2date="Flastarchive $url/dl/ .src.tar.gz"
options=('nostrip' 'scriptlet')
source=(https://storage.googleapis.com/golang/go${pkgver}.src.tar.gz \
	go.sh)
sha1sums=('b487b9127afba37e6c62305165bf840758d6adaf' \
          '3f6bff8914afcb7bc138faaa72d1cfd1140caaa7')

build() {

  export GOROOT="$Fsrcdir/$pkgname"
  export GOPATH="$Fsrcdir/gopath"
  export GOROOT_FINAL="/usr/lib/go"
  export GOROOT_BOOTSTRAP="/usr/lib/go"

  if [ "$CARCH" == 'x86_64' ]; then
    export GOARCH=amd64
  elif [ "$CARCH" == 'i686' ]; then
    export GOARCH=386
  fi

  Fcd

  Fexec bash make.bash  --no-clean || Fdie

  export PATH="$GOBIN:$PATH"

  # System-wide tools
  for tool in godex godoc goimports gomvpkg gorename gotype; do
    Fexec $GOROOT/bin/go get -d golang.org/x/tools/cmd/$tool || Fdie
    Fexec $GOROOT/bin/go build -v -x -o $GOPATH/bin/$tool golang.org/x/tools/cmd/$tool || Fdie
  done

  for tool in benchcmp bundle callgraph digraph eg fiximports html2article oracle present ssadump stress stringer; do
    Fexec $GOROOT/bin/go get -d golang.org/x/tools/cmd/${tool} || Fdie
    Fexec $GOROOT/bin/go build -o $GOROOT/pkg/tool/linux_${GOARCH}/${tool} golang.org/x/tools/cmd/${tool} || Fdie
  done

  Fmkdir usr/share/go

  Fcp go/doc	usr/share/go
  Fcp go/misc	usr/share/go

  Fln usr/share/go/doc usr/lib/go/doc

  Fexe go/bin/\* usr/bin/
  Fcp go/pkg  usr/lib/go/

  Fmkdir usr/lib/go/src
  Fcp go/src usr/lib/go

  Fmkdir usr/lib/go/src/cmd
  Fcp "go/src/cmd/*" usr/lib/go/src/cmd
  Fcp go/lib usr/lib/go

  Finstall 644 go/src/Make.* usr/lib/go/src

  # Remove object files from target src dir
  find "${Fdestdir}/usr/lib/go/src/" -type f -name '*.[ao]' -delete

  # For packages that source /etc/profile.d/go.sh
  Finstall 755 "$pkgname.sh" /etc/profile.d/$pkgname.sh

  # This is to make go get code.google.com/p/go-tour/gotour and
  # then running the gotour executable work out of the box.
  Fln /usr/bin /usr/lib/go/bin

  # Chmod *.a files
  chmod -R 755 "${Fdestdir}/usr/lib/go/pkg/linux_${GOARCH}/" || Fdie

  # For godoc
  Finstall 644 go/favicon.ico usr/lib/go/favicon.ico

  Frm usr/share/go/doc/articles/wiki/get.bin

}
