From b0d4a3975fb0a7fbb57400debffcc2de5cf3c364 Mon Sep 17 00:00:00 2001 From: Dominik Honnef Date: Wed, 20 Aug 2014 22:21:34 +0200 Subject: [PATCH] go: split cross compilers into separate packages add one package per officially supported operating system, that contains the cross compilers for all officially supported architectures on that OS. --- srcpkgs/go-cross-darwin | 1 + srcpkgs/go-cross-freebsd | 1 + srcpkgs/go-cross-linux | 1 + srcpkgs/go-cross-windows | 1 + srcpkgs/go/template | 92 ++++++++++++++++++++++++++++++++++------ 5 files changed, 83 insertions(+), 13 deletions(-) create mode 120000 srcpkgs/go-cross-darwin create mode 120000 srcpkgs/go-cross-freebsd create mode 120000 srcpkgs/go-cross-linux create mode 120000 srcpkgs/go-cross-windows diff --git a/srcpkgs/go-cross-darwin b/srcpkgs/go-cross-darwin new file mode 120000 index 00000000000..c08e80db65d --- /dev/null +++ b/srcpkgs/go-cross-darwin @@ -0,0 +1 @@ +go \ No newline at end of file diff --git a/srcpkgs/go-cross-freebsd b/srcpkgs/go-cross-freebsd new file mode 120000 index 00000000000..c08e80db65d --- /dev/null +++ b/srcpkgs/go-cross-freebsd @@ -0,0 +1 @@ +go \ No newline at end of file diff --git a/srcpkgs/go-cross-linux b/srcpkgs/go-cross-linux new file mode 120000 index 00000000000..c08e80db65d --- /dev/null +++ b/srcpkgs/go-cross-linux @@ -0,0 +1 @@ +go \ No newline at end of file diff --git a/srcpkgs/go-cross-windows b/srcpkgs/go-cross-windows new file mode 120000 index 00000000000..c08e80db65d --- /dev/null +++ b/srcpkgs/go-cross-windows @@ -0,0 +1 @@ +go \ No newline at end of file diff --git a/srcpkgs/go/template b/srcpkgs/go/template index 398525d145a..d9bb29b4557 100644 --- a/srcpkgs/go/template +++ b/srcpkgs/go/template @@ -1,7 +1,7 @@ # Template file for 'go' pkgname=go version=1.3.1 -revision=1 +revision=2 wrksrc=go hostmakedepends="mercurial ca-certificates" depends="perl" @@ -15,25 +15,25 @@ checksum=fdfa148cc12f1e4ea45a5565261bf43d8a2e7d1fad4a16aed592d606223b93a8 nostrip=yes noverifyrdeps=yes -do_build() { - unset GCC CC CXX LD CFLAGS - +_go_targetarch() { case "$XBPS_MACHINE" in - arm*) export GOHOSTARCH=arm;; - i686*) export GOHOSTARCH=386;; - x86_64*) export GOHOSTARCH=amd64;; + arm*) export hostarch=arm;; + i686*) export hostarch=386;; + x86_64*) export hostarch=amd64;; esac case "$XBPS_TARGET_MACHINE" in arm*) targetarch=arm;; i686*) targetarch=386;; x86_64*) targetarch=amd64;; - *) targetarch=$GOHOSTARCH;; - esac - case "$XBPS_TARGET_MACHINE" in - armv6l*) export GOARM=6;; - armv7l*) export GOARM=7;; + *) targetarch=$hostarch;; esac + echo $targetarch +} +do_build() { + unset GCC CC CXX LD CFLAGS + + targetarch=$(_go_targetarch) export GOROOT=$PWD export GOROOT_FINAL="/usr/lib/go" export GOOS= @@ -105,7 +105,7 @@ do_install() { fi vmkdir usr/bin - cp -a ${bindir}/* ${DESTDIR}/usr/bin + cp -d --preserve=all ${bindir}/* ${DESTDIR}/usr/bin || true cp -a pkg ${DESTDIR}/usr/lib/go cp -a src/pkg ${DESTDIR}/usr/lib/go/src/ cp -a src/cmd ${DESTDIR}/usr/lib/go/src/cmd @@ -140,3 +140,69 @@ do_install() { rm -f ${DESTDIR}/usr/share/go/doc/articles/wiki/get.bin } + +go-cross-linux_package() { + nostrip=yes + depends="${sourcepkg}-${version}_${revision}" + short_desc+=" - Cross compilers for Linux" + pkg_install() { + targetarch=$(_go_targetarch) + mkdir -p $PKGDESTDIR/usr/lib/go/pkg/tool/ + cd ${DESTDIR}/usr/lib/go/pkg/tool/ + for i in linux_*; do + if [ "$i" != "linux_${targetarch}" ]; then + mv "$i" $PKGDESTDIR/usr/lib/go/pkg/tool/ + fi + done + + mkdir -p $PKGDESTDIR/usr/lib/go/pkg/ + cd ${DESTDIR}/usr/lib/go/pkg/ + for i in linux_*; do + if [ "$i" != "linux_${targetarch}" ]; then + mv "$i" $PKGDESTDIR/usr/lib/go/pkg/ + fi + done + + mkdir -p $PKGDESTDIR/usr/lib/go/src/pkg/runtime/ + cd ${DESTDIR}/usr/lib/go/src/pkg/runtime/ + for i in zasm_linux_*.h; do + if [ "$i" != "zasm_linux_${targetarch}.h" ]; then + mv "$i" $PKGDESTDIR/usr/lib/go/src/pkg/runtime/ + fi + done + } +} + +go-cross-darwin_package() { + nostrip=yes + depends="${sourcepkg}-${version}_${revision}" + short_desc+=" - Cross compilers for Darwin" + pkg_install() { + vmove "usr/lib/go/pkg/tool/darwin_*" + vmove "usr/lib/go/pkg/darwin_*" + vmove "usr/lib/go/src/pkg/runtime/zasm_darwin_*.h" + } +} + +go-cross-freebsd_package() { + nostrip=yes + depends="${sourcepkg}-${version}_${revision}" + short_desc+=" - Cross compilers for FreeBSD" + pkg_install() { + vmove "usr/lib/go/pkg/tool/freebsd_*" + vmove "usr/lib/go/pkg/freebsd_*" + vmove "usr/lib/go/src/pkg/runtime/zasm_freebsd_*.h" + } +} + + +go-cross-windows_package() { + nostrip=yes + depends="${sourcepkg}-${version}_${revision}" + short_desc+=" - Cross compilers for Windows" + pkg_install() { + vmove "usr/lib/go/pkg/tool/windows_*" + vmove "usr/lib/go/pkg/windows_*" + vmove "usr/lib/go/src/pkg/runtime/zasm_windows_*.h" + } +}