# Copyright 1999-2018 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI=6 export CTARGET=${CTARGET:-${CHOST}} inherit eutils toolchain-funcs SRC_URI="https://storage.googleapis.com/golang/go${PV}.src.tar.gz" # Upstream only supports go on amd64, arm and x86 architectures. KEYWORDS="-* amd64" DESCRIPTION="Version of go compiler used for bootstrapping" HOMEPAGE="http://www.golang.org" LICENSE="BSD" SLOT="0" IUSE="" DEPEND="" RDEPEND="" # The go tools should not cause the multilib-strict check to fail. QA_MULTILIB_PATHS="usr/lib/go1.4/pkg/tool/.*/.*" # The go language uses *.a files which are _NOT_ libraries and should not be # stripped. The test data objects should also be left alone and unstripped. STRIP_MASK="/usr/lib/go1.4/pkg/*.a /usr/lib/go1.4/src/debug/elf/testdata/* /usr/lib/go1.4/src/debug/dwarf/testdata/* /usr/lib/go1.4/src/runtime/race/*.syso" S="${WORKDIR}"/go src_prepare() { sed -i -e 's/"-Werror",//g' src/cmd/dist/build.c eapply_user } src_compile() { export GOROOT_FINAL="${EPREFIX}"/usr/lib/go1.4 export GOROOT="$(pwd)" export GOBIN="${GOROOT}/bin" export CGO_ENABLED=0 if [[ $CTARGET = armv5* ]] then export GOARM=5 fi tc-export CC cd src ./make.bash || die "build failed" } src_test() { cd src PATH="${GOBIN}:${PATH}" \ ./run.bash --no-rebuild --banner || die "tests failed" } src_install() { dodir /usr/lib/go1.4 exeinto /usr/lib/go1.4/bin doexe bin/* insinto /usr/lib/go1.4 doins -r lib pkg src fperms -R +x /usr/lib/go1.4/pkg/tool } pkg_postinst() { # If the go tool sees a package file timestamped older than a dependancy it # will rebuild that file. So, in order to stop go from rebuilding lots of # packages for every build we need to fix the timestamps. The compiler and # linker are also checked - so we need to fix them too. ebegin "fixing timestamps to avoid unnecessary rebuilds" tref="usr/lib/go1.4/pkg/*/runtime.a" find "${EROOT}"usr/lib/go1.4 -type f \ -exec touch -r "${EROOT}"${tref} {} \; eend $? }