summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Pipping <sping@gentoo.org>2015-08-11 23:46:26 +0200
committerSebastian Pipping <sping@gentoo.org>2015-08-11 23:49:21 +0200
commite5e03818899e2bd7fd92519e4783a58e5262290f (patch)
treeaa59c33081de7de85c5e214caf8c8ff57a578619 /dev-scheme
parentdev-perl/XML-Twig: Drop old (diff)
downloadgentoo-e5e03818899e2bd7fd92519e4783a58e5262290f.tar.gz
gentoo-e5e03818899e2bd7fd92519e4783a58e5262290f.tar.bz2
gentoo-e5e03818899e2bd7fd92519e4783a58e5262290f.zip
dev-scheme/scm: Support installation of libscm.a (bug #557310)
Also use ${EPREFIX}. Signed-off-by: Sebastian Pipping <sping@gentoo.org>
Diffstat (limited to 'dev-scheme')
-rw-r--r--dev-scheme/scm/metadata.xml1
-rw-r--r--dev-scheme/scm/scm-5.5.6-r2.ebuild171
2 files changed, 172 insertions, 0 deletions
diff --git a/dev-scheme/scm/metadata.xml b/dev-scheme/scm/metadata.xml
index f2fe873e0abe..c9ae03be32b6 100644
--- a/dev-scheme/scm/metadata.xml
+++ b/dev-scheme/scm/metadata.xml
@@ -21,6 +21,7 @@ SCM is a Scheme implementation conforming to Revised5 Report on the Algorithmi
<flag name='inexact'>Support for floating point numbers.</flag>
<flag name='ioext'>Commonly available I/O extensions: line I/O, file
positioning, file delete and rename, and directory functions.</flag>
+ <flag name='libscm'>Build and install libscm.a and related headers</flag>
<flag name='macro'>C level support for hygienic and referentially
transparent macros (syntax-rules macros).</flag>
<flag name='regex'>String regular expression matching.</flag>
diff --git a/dev-scheme/scm/scm-5.5.6-r2.ebuild b/dev-scheme/scm/scm-5.5.6-r2.ebuild
new file mode 100644
index 000000000000..a0cf0597b9bd
--- /dev/null
+++ b/dev-scheme/scm/scm-5.5.6-r2.ebuild
@@ -0,0 +1,171 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+
+inherit versionator eutils flag-o-matic multilib
+
+#version magic thanks to masterdriverz and UberLord using bash array instead of tr
+trarr="0abcdefghi"
+MY_PV="$(get_version_component_range 1)${trarr:$(get_version_component_range 2):1}$(get_version_component_range 3)"
+
+MY_P=${PN}-${MY_PV}
+S=${WORKDIR}/${PN}
+DESCRIPTION="SCM is a Scheme implementation from the author of slib"
+SRC_URI="http://groups.csail.mit.edu/mac/ftpdir/scm/${MY_P}.zip"
+HOMEPAGE="http://swiss.csail.mit.edu/~jaffer/SCM"
+
+SLOT="0"
+LICENSE="LGPL-3"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-macos"
+IUSE="arrays bignums cautious dynamic-linking engineering-notation gsubr inexact
+ioext libscm macro ncurses posix readline regex sockets unix"
+
+#unzip for unpacking
+DEPEND="app-arch/unzip
+ >=dev-scheme/slib-3.1.5
+ dev-util/cproto
+ ncurses? ( sys-libs/ncurses )
+ readline? ( sys-libs/libtermcap-compat )"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-multiplefixes.patch
+}
+
+src_compile() {
+ # SLIB is required to build SCM.
+ local slibpath="${EPREFIX}/usr/share/slib/"
+ if [ -n "$SCHEME_LIBRARY_PATH" ]; then
+ einfo "using SLIB $SCHEME_LIBRARY_PATH"
+ elif [ -d ${slibpath} ]; then
+ export SCHEME_LIBRARY_PATH=${slibpath}
+ fi
+
+ einfo "Making scmlit"
+ emake -j1 scmlit clean || die "faild to build scmlit"
+
+ einfo "Building scm"
+ local features=""
+ use arrays && features+="arrays"
+ use bignums && features+=" bignums"
+ use cautious && features+=" cautious"
+ use engineering-notation && features+=" engineering-notation"
+ use inexact && features+=" inexact"
+ use macro && features+=" macro"
+
+ ( use readline ||
+ use ncurses ||
+ use regex ||
+ use posix ||
+ use ioext ||
+ use gsubr ||
+ use sockets ||
+ use unix ||
+ use dynamic-linking ) && features+=" dynamic-linking"
+
+ ./build \
+ --compiler-options="${CFLAGS}" \
+ --linker-options="${LDFLAGS} -L${EPREFIX}/$(get_libdir)" \
+ -s "${EPREFIX}"/usr/$(get_libdir)/scm \
+ -F ${features:="none"} \
+ -h system \
+ -o scm || die
+
+ einfo "Building DLLs"
+ if use readline; then
+ ./build \
+ --compiler-options="${CFLAGS}" \
+ --linker-options="${LDFLAGS}" \
+ -h system \
+ -F edit-line \
+ -t dll || die
+ fi
+ if use ncurses ; then
+ ./build \
+ --compiler-options="${CFLAGS}" \
+ --linker-options="${LDFLAGS}" \
+ -F curses \
+ -h system \
+ -t dll || die
+ fi
+ if use regex ; then
+ ./build \
+ --compiler-options="${CFLAGS}" \
+ --linker-options="${LDFLAGS}" \
+ -c rgx.c \
+ -h system \
+ -t dll || die
+ fi
+ if use gsubr ; then
+ ./build \
+ --compiler-options="${CFLAGS}" \
+ --linker-options="${LDFLAGS}" \
+ -c gsubr.c \
+ -h system \
+ -t dll || die
+ fi
+ if use ioext ; then
+ ./build \
+ --compiler-options="${CFLAGS}" \
+ --linker-options="${LDFLAGS}" \
+ -c ioext.c \
+ -h system \
+ -t dll || die
+ fi
+ if use posix; then
+ ./build \
+ --compiler-options="${CFLAGS}" \
+ --linker-options="${LDFLAGS}" \
+ -c posix.c \
+ -h system \
+ -t dll || die
+ fi
+ if use sockets ; then
+ ./build \
+ --compiler-options="${CFLAGS}" \
+ --linker-options="${LDFLAGS}" \
+ -c socket.c \
+ -h system \
+ -t dll || die
+ fi
+ if use unix ; then
+ ./build \
+ --compiler-options="${CFLAGS}" \
+ --linker-options="${LDFLAGS}" \
+ -c unix.c \
+ -h system \
+ -t dll || die
+ fi
+
+ if use libscm ; then
+ emake libscm.a || die
+ fi
+}
+
+src_test() {
+ emake check
+}
+
+src_install() {
+ emake DESTDIR="${D}" man1dir="${EPREFIX}"/usr/share/man/man1/ \
+ install || die "Install failed"
+
+ if use libscm; then
+ emake DESTDIR="${D}" libdir="${EPREFIX}"/usr/$(get_libdir)/ \
+ installlib || die
+ fi
+
+ doinfo scm.info
+ doinfo hobbit.info
+}
+
+pkg_postinst() {
+ [ "${ROOT}" == "/" ] && pkg_config
+}
+
+pkg_config() {
+ einfo "Regenerating catalog..."
+ scm -e "(require 'new-catalog)"
+}