Add hg-based ebuild for Google’s Go language.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Thu, 11 Mar 2010 07:34:24 +0000 (08:34 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Thu, 11 Mar 2010 07:34:24 +0000 (08:34 +0100)
dev-lang/go/Manifest [new file with mode: 0644]
dev-lang/go/go-9999.ebuild [new file with mode: 0644]

diff --git a/dev-lang/go/Manifest b/dev-lang/go/Manifest
new file mode 100644 (file)
index 0000000..a335a07
--- /dev/null
@@ -0,0 +1 @@
+EBUILD go-9999.ebuild 1905 RMD160 fd4ffa52adac3b987d384100666580704820ffdc SHA1 d31f6d4cc7b1936a594b104b720b9ccce579967a SHA256 a7868ea2fa2bb5f5502a2dd5dee94d0c0e18668db1270d06deb4f9369d837707
diff --git a/dev-lang/go/go-9999.ebuild b/dev-lang/go/go-9999.ebuild
new file mode 100644 (file)
index 0000000..7770651
--- /dev/null
@@ -0,0 +1,111 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="2"
+inherit elisp-common eutils mercurial toolchain-funcs
+
+DESCRIPTION="The Go Programming Language"
+HOMEPAGE="http://golang.org/"
+SRC_URI=""
+EHG_REPO_URI="https://go.googlecode.com/hg/"
+EHG_REVISION="release"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="emacs vim-syntax"
+
+RESTRICT="test"
+
+RDEPEND="sys-devel/gcc"
+DEPEND="${RDEPEND}
+       emacs? ( virtual/emacs )
+       sys-devel/bison
+       sys-apps/ed"
+
+S="${WORKDIR}/hg"
+
+ENVFILE="${WORKDIR}/50${PN}"
+
+src_prepare() {
+       GOBIN="${WORKDIR}/bin"
+       mkdir -p "${GOBIN}" || die
+
+       sed -i \
+               -e "/^GOBIN=/s:=.*:=${GOBIN}:" \
+               -e "/MAKEFLAGS=/s:=.*:=${MAKEOPTS}:" \
+               src/make.bash || die
+
+       sed -i \
+               -e "/^CFLAGS=/s:-O2:${CFLAGS}:" \
+               src/Make.conf || die
+       
+       case ${ARCH} in
+       x86)
+               GOARCH="386"
+               ;;
+       *)
+               GOARCH="${ARCH}"
+               ;;
+       esac
+
+       case ${CHOST} in
+       *-darwin*)
+               GOOS="darwin"
+               ;;
+       *)
+               GOOS="linux"
+               ;;
+       esac
+#      *-nacl*)
+#              GOOS="nacl"
+#              ;;
+
+       cat > "${ENVFILE}" <<EOF
+GOROOT="/usr/$(get_libdir)/${PN}"
+GOARCH="${GOARCH}"
+GOOS="${GOOS}"
+EOF
+       . "${ENVFILE}"
+
+       export GOBIN GOROOT GOARCH GOOS
+}
+
+src_compile() {
+       cd src
+       PATH="${GOBIN}:${PATH}" GOROOT="${S}" CC="$(tc-getCC)" ./make.bash || die
+       if use emacs ; then
+               elisp-compile "${S}"/misc/emacs/*.el || die
+       fi
+}
+
+src_test() {
+       cd src
+       PATH="${GOBIN}:${PATH}" GOROOT="${S}" CC="$(tc-getCC)" ./run.bash || die
+}
+
+src_install() {
+       dobin "${GOBIN}"/* || die
+
+       insinto "${GOROOT}"
+       doins -r pkg || die
+
+       if use emacs ; then
+               elisp-install ${PN} "${S}"/misc/emacs/*.el* || die "elisp-install failed"
+       fi
+
+       if use vim-syntax ; then
+               insinto /usr/share/vim/vimfiles/plugin
+               doins "${S}"/misc/vim/go.vim || die
+       fi
+
+       doenvd "${ENVFILE}" || die
+
+       dodoc AUTHORS CONTRIBUTORS README || die
+       dohtml -r doc/* || die
+}
+
+pkg_postinst() {
+       elog "please don't forget to source /etc/profile"
+}
\ No newline at end of file