pkgname=('go' 'go-tools') pkgver=1.7 pkgrel=1 arch=('x86_64') url='http://golang.org/' license=('BSD') makedepends=('inetutils' 'git' 'go') options=('!strip' 'staticlibs') source=("$pkgname-$pkgver::git+https://go.googlesource.com/go#tag=$pkgname$pkgver") sha1sums=('SKIP') _gourl=golang.org/x/tools/cmd build() { cd "$pkgname-$pkgver/src" export GOROOT="$srcdir/$pkgname-$pkgver" export GOBIN="$GOROOT/bin" export GOPATH="$srcdir/" export GOROOT_FINAL=/usr/lib/go export GOROOT_BOOTSTRAP=/usr/lib/go export GOOS=linux export GOARCH=amd64 # # Arch Linux normally does not enable SSE2 for i686 because of older CPUs. # # However, exceptions are made for: # * Chromium, which is not expected to be used on older i686 CPUs # * Julia, which requires SSE2 # # Go is so slow that it is unusable on i686 when SSE2 is not enabled, so I am # also making an exception for Go. # # If you really want to build Go without SSE2 support, just uncomment the # following export and rebuild: # # export GO386=387 # # Crosscompilation for various platforms (including linux) # for os in linux; do # darwin freebsd windows; do # for arch in amd64; do # export GOOS="$os" # export GOARCH=amd64 # bash make.bash --no-clean # done # done bash make.bash --no-clean # System-wide tools for tool in godex godoc goimports gomvpkg gorename gotype; do $GOROOT/bin/go get -d golang.org/x/tools/cmd/$tool $GOROOT/bin/go build -v -x -o $GOPATH/bin/$tool $_gourl/$tool done # Distribution tools for tool in benchcmp bundle callgraph digraph eg fiximports html2article oracle present ssadump stress stringer ; do $GOROOT/bin/go get -d golang.org/x/tools/cmd/$tool $GOROOT/bin/go build -v -x -o $GOPATH/pkg/tool/${GOOS}_$GOARCH/$tool golang.org/x/tools/cmd/$tool done } check() { cd "$pkgname-$pkgver" #export GO386=387 export GOOS=linux export GOARCH=amd64 export GOROOT="$srcdir/$pkgname-$pkgver" export GOBIN="$GOROOT/bin" export PATH="$srcdir/$pkgname-$pkgver/bin:$PATH" export GOROOT_BOOTSTRAP=/usr/lib/go # bundle does not compile with 1.6 for tool in godoc goimports gomvpkg gorename gotype \ benchcmp callgraph digraph eg fiximports html2article oracle present ssadump stress stringer; do GOPATH="$srcdir" $GOROOT/bin/go test -v -x $_gourl/$tool done # TestSimpleMulticastListener will fail in standard chroot cd src && bash run.bash --no-rebuild || true } package_go() { pkgdesc='Compiler and tools for the Go programming language from Google' optdepends=('mercurial: for fetching sources from mercurial repositories' 'git: for fetching sources from git repositories' 'bzr: for fetching sources from bazaar repositories' 'subversion: for fetching sources from subversion repositories' 'go-tools: godoc, goimports, gorename, and other tools.') install="$pkgname.install" cd "$pkgname-$pkgver" export GOROOT="$srcdir/$pkgname-$pkgver" export GOBIN="$GOROOT/bin" export GOROOT_BOOTSTRAP=/usr/lib/go export GOARCH=amd64 install -Dm644 LICENSE \ "$pkgdir/usr/share/licenses/go/LICENSE" install -d \ "$pkgdir/usr/"{share/go,lib/go,lib/go/pkg,lib/go/src,lib/go/site/src} cp -r doc misc -t "$pkgdir/usr/share/go" ln -s /usr/share/go/doc "$pkgdir/usr/lib/go/doc" cp -a bin "$pkgdir/usr" cp -a pkg/{include,linux_$GOARCH,tool} "$pkgdir/usr/lib/go/pkg" # The 'race' folder is not always generated for all architectures. [ -d "pkg/linux_${GOARCH}_race" ] && cp -a pkg/linux_${GOARCH}_race "$pkgdir/usr/lib/go/pkg" cp -a "$GOROOT/src" "$pkgdir/usr/lib/go/" cp -a "$GOROOT/lib" "$pkgdir/usr/lib/go/" # This is to make go get code.google.com/p/go-tour/gotour and # then running the gotour executable work out of the box. ln -sf /usr/bin "$pkgdir/usr/lib/go/bin" install -Dm644 VERSION "$pkgdir/usr/lib/go/VERSION" # For godoc install -Dm644 favicon.ico "$pkgdir/usr/lib/go/favicon.ico" # Clean Windows specific files. rm -f "$pkgdir"/usr/lib/go/src/*.bat # Strip manually since `strip` will not process Go's static libraries. for i in "$pkgdir/usr/bin/"* \ "$pkgdir/usr/lib/go/pkg/tool/linux_amd64/"*; do strip -s "$i" done } package_go-tools() { pkgdesc='Extra developer tools for the Go programming language' depends=("go=$pkgver") export GOOS=linux export GOARCH=amd64 install -Dm644 "$srcdir/src/$_gourl/../LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" # System-wide tools install -dm755 "$pkgdir/usr/bin" install -p -m755 "$srcdir/bin"/* "$pkgdir/usr/bin" # Distribution tools install -dm755 "$pkgdir/usr/lib/go/pkg/tool/${GOOS}_$GOARCH" install -p -m755 "$srcdir/pkg/tool/${GOOS}_$GOARCH"/* "$pkgdir/usr/lib/go/pkg/tool/${GOOS}_$GOARCH" for i in "$pkgdir/usr/bin"/* \ "$pkgdir/usr/lib/go/pkg/tool/linux_$GOARCH"/*; do strip -s "$i" done }