summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Kohler <bkohler@gmail.com>2018-06-23 12:59:39 -0500
committerAmy Liffey <amynka@gentoo.org>2018-06-23 21:49:23 +0200
commit64d14f3a3d8c7558194dc648a2a1ba624f669dac (patch)
tree3da85a342ee8b5a7627d27546c9f212ff2fe51da /dev-scheme
parentdev-haskell/transformers-base: Drop old (EAPI=4) (diff)
downloadgentoo-64d14f3a3d8c7558194dc648a2a1ba624f669dac.tar.gz
gentoo-64d14f3a3d8c7558194dc648a2a1ba624f669dac.tar.bz2
gentoo-64d14f3a3d8c7558194dc648a2a1ba624f669dac.zip
dev-scheme/scm: fix bug 596630, partial LDFLAGS fix, EAPI=7
LDFLAGS are now respected on the main build but not plugins yet. Ebuild is also bumped to EAPI=7 and several unused eclass inherits are removed. Closes: https://bugs.gentoo.org/596630 Package-Manager: Portage-2.3.40, Repoman-2.3.9
Diffstat (limited to 'dev-scheme')
-rw-r--r--dev-scheme/scm/files/scm-5.5.6-respect-ldflags.patch12
-rw-r--r--dev-scheme/scm/scm-5.5.6-r4.ebuild169
2 files changed, 181 insertions, 0 deletions
diff --git a/dev-scheme/scm/files/scm-5.5.6-respect-ldflags.patch b/dev-scheme/scm/files/scm-5.5.6-respect-ldflags.patch
new file mode 100644
index 00000000000..a78e7ddb5d7
--- /dev/null
+++ b/dev-scheme/scm/files/scm-5.5.6-respect-ldflags.patch
@@ -0,0 +1,12 @@
+diff -ur b/Makefile a/Makefile
+--- b/Makefile 2018-06-21 14:02:53.439716620 -0500
++++ a/Makefile 2018-06-21 14:03:33.900568504 -0500
+@@ -111,7 +111,7 @@
+
+ # SCMLIT -- try making this first!
+ scmlit: $(ofiles) scmmain.o require.scm Makefile
+- $(LD) -o scmlit $(ofiles) scmmain.o $(LIBS)
++ $(LD) $(LDFLAGS) -o scmlit $(ofiles) scmmain.o $(LIBS)
+ $(MAKE) checklit
+ scmflags.h: scmflags
+ scmflags: \ No newline at end of file
diff --git a/dev-scheme/scm/scm-5.5.6-r4.ebuild b/dev-scheme/scm/scm-5.5.6-r4.ebuild
new file mode 100644
index 00000000000..2d3d39bbaeb
--- /dev/null
+++ b/dev-scheme/scm/scm-5.5.6-r4.ebuild
@@ -0,0 +1,169 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+#version magic thanks to masterdriverz and UberLord using bash array instead of tr
+trarr="0abcdefghi"
+MY_PV="$(ver_cut 1)${trarr:$(ver_cut 2):1}$(ver_cut 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"
+
+BDEPEND="app-arch/unzip"
+DEPEND=">=dev-scheme/slib-3.1.5
+ dev-util/cproto
+ ncurses? ( sys-libs/ncurses:0= )
+ readline? ( sys-libs/libtermcap-compat )"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}/${P}-multiplefixes.patch"
+ "${FILESDIR}/${P}-respect-ldflags.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
+
+ 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
+ fi
+}
+
+src_test() {
+ emake check
+}
+
+src_install() {
+ emake DESTDIR="${D}" man1dir="${EPREFIX}"/usr/share/man/man1/ \
+ install
+
+ if use libscm; then
+ emake DESTDIR="${D}" libdir="${EPREFIX}"/usr/$(get_libdir)/ \
+ installlib
+ fi
+
+ doinfo scm.info
+ doinfo hobbit.info
+}
+
+regen_catalog() {
+ einfo "Regenerating catalog..."
+ scm -e "(require 'new-catalog)"
+}
+
+pkg_postinst() {
+ [ "${ROOT}" == "/" ] && regen_catalog
+}
+
+pkg_config() {
+ regen_catalog
+} \ No newline at end of file