author | Pierre Neidhardt
<ambrevar@gmail.com> 2016-02-02 10:50:11 UTC |
committer | Pierre Neidhardt
<ambrevar@gmail.com> 2016-02-02 10:50:11 UTC |
parent | 4947318c527f839100c88c4687b5f458ad2585d2 |
PKGBUILD | +84 | -43 |
diff --git a/PKGBUILD b/PKGBUILD index 6061d82..cdd9894 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,31 +1,27 @@ # Maintainer: Vesa Kaihlavirta <vegai@iki.fi> # Maintainer: Alexander Rødseth <rodseth@gmail.com> -# Contributor: Rémy Oudompheng <remy@archlinux.org> +# Maintainer: Pierre Neidhardt <ambrevar@gmail.com> +# Contributor: Rémy Oudompheng <remy@archlinux.org> # Contributor: Andres Perera <andres87p gmail> # Contributor: Matthew Bauer <mjbauer95@gmail.com> # Contributor: Christian Himpel <chressie@gmail.com> # Contributor: Mike Rosset <mike.rosset@gmail.com> # Contributor: Daniel YC Lin <dlin.tw@gmail.com> # Contributor: John Luebs <jkluebs@gmail.com> -# Contributor: Pierre Neidhardt <ambrevar@gmail.com> -pkgname=go +pkgname=('go' 'go-tools') epoch=2 pkgver=1.5.3 -pkgrel=1 -pkgdesc='Compiler and tools for the Go programming language from Google' +pkgrel=2 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') +_gourl=golang.org/x/tools/cmd build() { cd "$pkgname-$pkgver/src" @@ -52,26 +48,36 @@ build() { # 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 + # Crosscompilation for various platforms. This is not strictly required as the + # compiler can generate libraries on the fly. Prebuilding the libs speeds up + # crosscompilation time. + # + # for os in darwin freebsd linux windows; do + # for arch in 386 amd64 arm; do + # export GOOS="$os" + # export GOARCH="$arch" + # bash make.bash --no-clean + # done + # done - GOOS=linux + export GOOS=linux case "$CARCH" in - x86_64) GOARCH=amd64 ;; - i686) GOARCH=386 ;; + x86_64) export GOARCH=amd64 ;; + i686) export 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} + 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 } @@ -91,54 +97,89 @@ check() { export PATH="$srcdir/$pkgname-$pkgver/bin:$PATH" export GOROOT_BOOTSTRAP=/usr/lib/go + for tool in godoc goimports gomvpkg gorename gotype \ + benchcmp bundle 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() { +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.') + 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" + case "$CARCH" in + x86_64) GOARCH=amd64 ;; + i686) GOARCH=386 ;; + esac - install -Dm644 LICENSE \ - "$pkgdir/usr/share/licenses/go/LICENSE" + install -Dm644 LICENSE "$pkgdir/usr/share/licenses/go/LICENSE" - mkdir -p \ - "$pkgdir/usr/"{share/go,lib/go,lib/go/src,lib/go/site/src} + mkdir -p "$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 "$pkgdir/usr/lib/go" + 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. + # This is to make `# go get golang.org/x/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/" + install -Dm644 VERSION "$pkgdir/usr/lib/go/VERSION" # 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 + rm -fv "$pkgdir"/usr/lib/go/src/*.bat # Strip manually since `strip` will not process Go's static libraries. - if [[ $CARCH == x86_64 ]]; then - for i in "$pkgdir/usr/bin/"* \ - "$pkgdir/usr/lib/go/pkg/bootstrap/bin/"* \ - "$pkgdir/usr/lib/go/pkg/tool/linux_amd64/"*; do + for i in "$pkgdir/usr/bin"/* \ + "$pkgdir/usr/lib/go/pkg/tool/linux_$GOARCH"/*; do + strip -s "$i" + done +} + +package_go-tools() { + pkgdesc='Extra developer tools for the Go programming language' + + GOOS=linux + case "$CARCH" in + x86_64) GOARCH=amd64 ;; + i686) GOARCH=386 ;; + esac + + 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 -fi } # vim:set ts=2 sw=2 et: