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.
gentoo-overlay/dev-scheme/mit-scheme/mit-scheme-12.1-r1.ebuild

94 lines
2.1 KiB

# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit toolchain-funcs wrapper
DESCRIPTION="Scheme interpreter, compiler, debugger and runtime library"
HOMEPAGE="https://www.gnu.org/software/mit-scheme/
https://savannah.gnu.org/projects/mit-scheme/"
SRC_URI="https://ftp.gnu.org/gnu/${PN}/stable.pkg/${PV}/${P}-svm1-64le.tar.gz"
S="${S}"/src
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="amd64" # Additionally arm64 is officially supported.
IUSE="blowfish gdbm gui postgres"
BDEPEND="
virtual/pkgconfig
"
# Use ncurses to avoid ancient emulated termcap from 1980's, bug #871507
RDEPEND="
sys-libs/ncurses
blowfish? ( dev-libs/openssl:= )
gdbm? ( sys-libs/gdbm:= )
gui? ( x11-libs/libX11 )
postgres? ( dev-db/postgresql:* )
"
DEPEND="${RDEPEND}"
PATCHES=(
"${FILESDIR}"/${PN}-11.2-no-Werror.patch
"${FILESDIR}"/${PN}-11.2-implicit-int.patch
)
src_configure() {
local termcap
# ncurses provides termcap via terminfo which is found in "tinfo" when
# installed as ncurses[tinfo] and in "ncurses" when installed as
# ncurses[-tinfo].
if "$(tc-getPKG_CONFIG)" --exists tinfo ; then
termcap=tinfo
else
termcap=ncurses
fi
local -a myconf=(
--disable-mcrypt
--with-termcap=${termcap}
$(use_enable blowfish)
$(use_enable gdbm)
$(use_enable gui edwin)
$(use_enable gui imail)
$(use_enable gui x11)
$(use_enable postgres pgsql)
$(use_with gui x)
)
econf ${myconf[@]}
}
src_compile() {
# Compile the "microcode" first, bug #879901
emake -C microcode
# Fails with multiple make-jobs, at least it compiles relatively fast.
emake -j1
}
# Tests that theoretically fail (still passes):
# microcode/test-flonum-except
# runtime/test-arith
# runtime/test-flonum
# runtime/test-flonum.bin
# runtime/test-flonum.com
src_test() {
FAST=y emake check -j1
}
src_install() {
default
# Create the edwin launcher.
use gui && make_wrapper mit-scheme-edwin "mit-scheme --edit"
# Remove "scheme" symlink to not "discriminate" any other implementations.
rm "${ED}"/usr/bin/scheme || die
# Remove libtool files.
find "${ED}" -type f -name "*.la" -delete || die
}