summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-scheme/gambit/gambit-4.1.2.ebuild')
-rw-r--r--dev-scheme/gambit/gambit-4.1.2.ebuild102
1 files changed, 102 insertions, 0 deletions
diff --git a/dev-scheme/gambit/gambit-4.1.2.ebuild b/dev-scheme/gambit/gambit-4.1.2.ebuild
new file mode 100644
index 000000000000..4a1bf18f21fa
--- /dev/null
+++ b/dev-scheme/gambit/gambit-4.1.2.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-scheme/gambit/gambit-4.1.2.ebuild,v 1.1 2007/12/17 21:32:54 hkbst Exp $
+
+inherit eutils elisp-common check-reqs autotools multilib
+
+MY_PN=gambc
+MY_PV=${PV//./_}
+MY_P=${MY_PN}-v${MY_PV}
+
+DESCRIPTION="Gambit-C is a native Scheme to C compiler and interpreter."
+HOMEPAGE="http://www.iro.umontreal.ca/~gambit/"
+SRC_URI="http://www.iro.umontreal.ca/~gambit/download/gambit/v${PV%.*}/source/${MY_P}.tgz"
+
+LICENSE="|| ( Apache-2.0 LGPL-2.1 )"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+
+DEPEND="emacs? ( virtual/emacs )"
+
+SITEFILE="50gambit-gentoo.el"
+
+S=${WORKDIR}/${MY_P}
+
+IUSE="big-iron emacs static"
+
+pkg_setup() {
+ if ! use big-iron; then
+ ewarn "NOT compiling each Scheme module as a single C function"
+ ewarn "NOT using gcc specific optimizations"
+ ewarn "approximately 0.5GB ram will be needed"
+ ewarn "if you experience thrashing, try disabling parallel building or setting -O1"
+ # need this much memory in MBytes (does *not* check swap)
+ CHECKREQS_MEMORY="768" check_reqs
+ else
+ ewarn "compiling each Scheme module as a single C function"
+ ewarn "using gcc specific optimizations"
+ ewarn "approximately 2GB ram will be needed instead of 0.5GB"
+ ewarn "this will cause heavy thrashing of your system"
+ ewarn "and may cause your compiler to crash when it runs out of memory"
+ ewarn "unless your system is BIG IRON"
+ # need this much memory in MBytes (does *not* check swap)
+ CHECKREQS_MEMORY="2560" check_reqs
+ fi
+}
+
+src_unpack() {
+ unpack ${A}; cd "${S}"
+# cp configure.ac configure.ac.old
+ sed -e 's:PACKAGE_SUBDIR="/$PACKAGE_VERSION"::' \
+ -e 's:#PACKAGE_SUBDIR="":PACKAGE_SUBDIR="":' -i configure.ac
+ #don't force -O1
+ sed 's:$DASH_O1::' -i configure.ac
+ eautoreconf
+# diff -u configure.ac.old configure.ac
+}
+
+src_compile() {
+ econf $(use_enable !static shared) $(use_enable big-iron single-host) $(use_enable big-iron gcc-opts)
+
+ emake || die "emake failed"
+
+ if use emacs; then
+ ( cd misc; elisp-comp *.el )
+ fi
+}
+
+src_install() {
+ einstall docdir="${D}"/usr/share/doc/${PF} || die "einstall failed"
+
+ rm "${D}"/usr/current
+
+ mv "${D}"/usr/syntax-case.scm "${D}"/usr/$(get_libdir)
+
+ # rename the /usr/bin/gsc to avoid collision with gsc from ghostscript
+ mv "${D}"/usr/bin/gsc "${D}"/usr/bin/gsc-gambit
+
+ # remove emacs/site-lisp/gambit.el
+ rm -r "${D}"/usr/share/emacs
+ if use emacs; then
+ elisp-install ${PN} misc/*.{el,elc}
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ dodoc INSTALL.txt README
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+
+ # create some more explicit names
+ dosym gsc-gambit usr/bin/gambit-compiler
+ dosym gsi usr/bin/gambit-interpreter
+
+ echo "GAMBCOPT=\"=/usr/\"" > "${T}"/50gambit && doenvd "${T}"/50gambit
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}