summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-scheme/bigloo/bigloo-3.6a.ebuild')
-rw-r--r--dev-scheme/bigloo/bigloo-3.6a.ebuild208
1 files changed, 208 insertions, 0 deletions
diff --git a/dev-scheme/bigloo/bigloo-3.6a.ebuild b/dev-scheme/bigloo/bigloo-3.6a.ebuild
new file mode 100644
index 000000000000..73ecc24f6e3f
--- /dev/null
+++ b/dev-scheme/bigloo/bigloo-3.6a.ebuild
@@ -0,0 +1,208 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit elisp-common multilib eutils flag-o-matic java-pkg-opt-2
+
+MY_P=${PN}${PV/_p/-}
+MY_P=${MY_P/_alpha*/-alpha}
+MY_P=${MY_P/_beta*/-beta}
+
+BGL_RELEASE=${PV/_*/}
+
+DESCRIPTION="Bigloo is a Scheme implementation"
+HOMEPAGE="http://www-sop.inria.fr/indes/fp/Bigloo/bigloo.html"
+SRC_URI="ftp://ftp-sop.inria.fr/indes/fp/Bigloo/${MY_P}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="bglpkg calendar crypto debug doc emacs gmp java mail multimedia openpgp packrat sqlite srfi1 srfi27 ssl text threads web"
+REQUIRED_USE="
+ bglpkg? ( web )
+ openpgp? ( crypto )
+ packrat? ( srfi1 )
+ srfi27? ( x86? ( gmp ) )
+"
+
+# bug 254916 for >=dev-libs/boehm-gc-7.1
+DEPEND=">=dev-libs/boehm-gc-7.1[threads?]
+ emacs? ( virtual/emacs )
+ gmp? ( dev-libs/gmp )
+ java? ( >=virtual/jdk-1.5 app-arch/zip )
+ sqlite? ( dev-db/sqlite:3 )
+ ssl? ( dev-libs/openssl )
+"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/${MY_P/-[ab]*/}
+
+SITEFILE="50bigloo-gentoo.el"
+
+pkg_pretend() {
+ if use srfi27 && use amd64; then
+ #TODO: 'dev-scheme/bigloo srfi27' in arch/amd64/package.use.mask?
+ ewarn "srfi27 is known to only work on 32-bit architectures." \
+ "This IUSE is ignored on amd64."
+ fi
+}
+
+src_prepare() {
+ # Removing bundled boehm-gc
+ rm -rf gc || die
+
+ # Fix some printf format warnings
+ epatch "${FILESDIR}/${PN}-${BGL_RELEASE}-fix_printf_format_warnings.patch"
+
+ # bug 354751: Fix '[a-z]' sed range for non ascii LC_COLLATE order
+ sed 's/a-z/[:alpha:]/' -i configure autoconf/* || die 'sed s/a-z/[:alpha:]/ failed'
+
+ java-pkg-opt-2_src_prepare
+}
+
+src_configure() {
+ filter-flags -fomit-frame-pointer
+
+ local myconf=""
+
+ # Filter Zile emacs replacement. Bug #336717
+ if use emacs; then
+ myconf="--bee=full --emacs=${EMACS} --lispdir=${SITELISP}/${PN}"
+ else
+ myconf="--emacs=false"
+ fi
+
+ # Add JCFLAGS to the configure script
+ # (api/{crypto,openpgp} jvm tests show failures)
+ if use java; then
+ sed -e "s/^\(jcflags=\)\(.*\)/\\1\"\\2 $(java-pkg_javac-args)\"/" \
+ -e 's/jcflags=$jcflags/jcflags="$jcflags"/'\
+ -i configure
+ myconf="${myconf}
+ --jvm=yes"
+ fi
+
+ # No pkglib/pkgcomp in IUSE, I don't see any need besides bglpkg
+ # One or the other could be added upon user request
+ if use bglpkg; then
+ myconf="${myconf}
+ --enable-bglpkg --enable-pkgcomp --enable-pkglib"
+ else
+ myconf="${myconf}
+ --disable-bglpkg --disable-pkgcomp --disable-pkglib"
+ fi
+
+ # srfi27 management
+ if use amd64; then
+ myconf="${myconf}
+ --disable-srfi27"
+ else
+ myconf="${myconf}
+ $(use_enable srfi27)"
+ fi
+
+ # Put every non quoted configure opt into myconf, for the einfo below
+ myconf="
+ --prefix=/usr
+ --libdir=/usr/$(get_libdir)
+ --benchmark=yes
+ --coflags=
+ --customgc=no
+ --sharedbde=no
+ --sharedcompiler=no
+ --strip=no
+ $(use debug && echo --debug)
+ ${myconf}
+ $(use_enable calendar)
+ $(use_enable crypto)
+ $(use_enable gmp)
+ --disable-gstreamer
+ $(use_enable mail)
+ $(use_enable multimedia)
+ $(use_enable openpgp)
+ $(use_enable packrat)
+ --disable-phone
+ $(use_enable sqlite)
+ $(use_enable srfi1)
+ $(use_enable ssl)
+ $(use_enable text)
+ $(use_enable threads)
+ $(use_enable web)
+"
+
+ einfo "Configuring bigloo with:" \
+ "--ldflags=\"${LDFLAGS}\" $(echo ${myconf} | sed 's/\n\t\t/ /g')"
+
+ # Bigloo doesn't use autoconf and consequently a lot of options used by econf give errors
+ # Manuel Serrano says: "Please, dont talk to me about autoconf. I simply dont want to hear about it..."
+ ./configure --ldflags="${LDFLAGS}" ${myconf} || die "configure failed"
+}
+
+src_compile() {
+ emake EFLAGS='-ldopt "$(LDFLAGS)"' || die "emake failed"
+
+ if use emacs; then
+ einfo "Compiling bee..."
+ emake compile-bee EFLAGS='-ldopt "$(LDFLAGS)"' || die "compiling bee failed"
+ fi
+}
+
+# default thinks that target doesn't exist
+src_test() {
+ emake -j1 test || die "emake test failed"
+}
+
+src_install() {
+ # Makefile:671:install: install-progs install-docs
+ emake DESTDIR="${D}" install-progs || die "install failed"
+
+ if use emacs; then
+ einfo "Installing bee..."
+ emake DESTDIR="${D}" install-bee || die "install-bee failed"
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ else
+ # Fix EMACS*=false in Makefile.config
+ sed -i \
+ -e 's:^\(EMACS=\).*$:\1:' \
+ -e 's:^\(EMACSBRAND=\).*$:\1:' \
+ "${D}"/usr/$(get_libdir)/bigloo/${BGL_RELEASE}/Makefile.config \
+ || die "sed !emacs in Makefile.config failed"
+ fi
+
+ dodoc ChangeLog README || die "dodoc failed"
+
+ pushd "${S}/manuals" &>/dev/null
+ if use doc; then
+ dohtml -r . || die "dohtml failed"
+ doinfo *.info* || die "doinfo failed"
+ fi
+
+ for man in *.man; do
+ newman ${man} ${man/.man/.1} || die "newman ${man} ${man/.man/.1} failed"
+ done
+ popd &>/dev/null
+
+ # Remove created directories which remains empty
+ pushd "${D}/usr" &>/dev/null
+ rmdir -p doc/bigloo-${BGL_RELEASE} info man/man1 || die "rm empty dirs failed"
+ popd &>/dev/null
+}
+
+pkg_preinst() {
+ java-pkg-opt-2_pkg_preinst
+}
+
+pkg_postinst() {
+ if use emacs; then
+ elisp-site-regen
+ elog "In order to use the bee-mode, add"
+ elog " (require 'bmacs)"
+ elog "to your ~/.emacs file"
+ fi
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}