You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
172 lines
3.8 KiB
172 lines
3.8 KiB
# 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)"
|
|
}
|