# $Id: PKGBUILD 138559 2015-08-20 15:47:56Z arodseth $ # Maintainer: Vesa Kaihlavirta # Maintainer: Alexander Rødseth # Contributor: Rémy Oudompheng # Contributor: Andres Perera # Contributor: Matthew Bauer # Contributor: Christian Himpel # Contributor: Mike Rosset # Contributor: Daniel YC Lin # Contributor: John Luebs # Contributor: Pierre Neidhardt pkgname=go epoch=2 pkgver=1.5 pkgrel=2 pkgdesc='Compiler and tools for the Go programming language from Google' arch=('x86_64' 'i686') url='http://golang.org/' license=('BSD') makedepends=('inetutils' 'git' 'go') options=('!strip' 'staticlibs') 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') install="$pkgname.install" source=("$pkgname-$pkgver::git+https://go.googlesource.com/go#tag=$pkgname$pkgver") md5sums=('SKIP') 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 # # 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 # 386 arm; do export GOOS="$os" export GOARCH="$arch" bash make.bash --no-clean done done GOOS=linux case "$CARCH" in x86_64) GOARCH=amd64 ;; i686) GOARCH=386 ;; esac $GOROOT/bin/go get -d golang.org/x/tools/cmd/godoc $GOROOT/bin/go build -o $srcdir/godoc golang.org/x/tools/cmd/godoc for tool in vet cover callgraph; do $GOROOT/bin/go get -d golang.org/x/tools/cmd/${tool} $GOROOT/bin/go build -o $GOROOT/pkg/tool/${GOOS}_${GOARCH}/${tool} golang.org/x/tools/cmd/${tool} done } check() { cd "$pkgname-$pkgver" #export GO386=387 export GOOS=linux case "$CARCH" in x86_64) GOARCH=amd64 ;; i686) GOARCH=386 ;; esac export GOROOT="$srcdir/$pkgname-$pkgver" export GOBIN="$GOROOT/bin" export PATH="$srcdir/$pkgname-$pkgver/bin:$PATH" export GOROOT_BOOTSTRAP=/usr/lib/go # TestSimpleMulticastListener will fail in standard chroot cd src && bash run.bash --no-rebuild || true } package() { cd "$pkgname-$pkgver" export GOROOT="$srcdir/$pkgname-$pkgver" export GOBIN="$GOROOT/bin" export GOROOT_BOOTSTRAP=/usr/lib/go install -Dm755 "$srcdir/godoc" "$pkgdir/usr/bin/godoc" install -Dm644 LICENSE \ "$pkgdir/usr/share/licenses/go/LICENSE" mkdir -p \ "$pkgdir/usr/"{share/go,lib/go,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 "$pkgdir/usr/lib/go" 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" cp -r misc/ "$pkgdir/usr/lib/go/" # For godoc install -Dm644 favicon.ico "$pkgdir/usr/lib/go/favicon.ico" install -Dm644 VERSION "$pkgdir/usr/lib/go/VERSION" # 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/bootstrap/bin/"* \ "$pkgdir/usr/lib/go/pkg/tool/linux_amd64/"*; do strip -s "$i" done } # vim:set ts=2 sw=2 et: