Files
haikuports/dev-lisp/clisp/clisp-2.49.95~git.recipe
2024-11-24 11:55:44 +01:00

180 lines
4.5 KiB
Bash

SUMMARY="ANSI Common Lisp Implementation"
desc_base="GNU CLISP is an ANSI Common Lisp Implementation. \
It is known for high portability, small image size and efficient bignums.
This package contains the"
requires_base="
clisp$secondaryArchSuffix == $portVersion base
haiku$secondaryArchSuffix
"
HOMEPAGE="https://clisp.sourceforge.io/"
COPYRIGHT="1992-1993 Bruno Haible, Michael Stoll
1994-1997 Bruno Haible, Marcus Daniels
1998 Bruno Haible, Pierpaolo Bernardi, Sam Steingold
1999-2000 Bruno Haible, Sam Steingold
2001-2018 Sam Steingold, Bruno Haible
"
LICENSE="GNU GPL v2"
REVISION="2"
srcGitRev="9ff8aedb796fbf7c47e594bfc2357b69c8e64dc9"
SOURCE_URI="https://gitlab.com/gnu-clisp/clisp/-/archive/$srcGitRev.tar.gz"
CHECKSUM_SHA256="4dec02817e45c9f4a05fd31ef725728bc8da07c4c4c5b647dfb190c1d41439ce"
SOURCE_DIR="clisp-$srcGitRev"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
DESCRIPTION="${desc_base} base clisp executable and modules: \
asdf, rawsock, clx/mit-clx, editor, queens."
# TODO Add i18n regexp syscalls readline
PROVIDES="
clisp$secondaryArchSuffix = $portVersion
cmd:clisp = $portVersion
cmd:clisp_link = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libffcall$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
lib:libncurses$secondaryArchSuffix
lib:libreadline$secondaryArchSuffix
lib:libsigsegv$secondaryArchSuffix
lib:libunistring$secondaryArchSuffix
"
DESCRIPTION_berkeley_db="${desc_base} berkeley-db module for clisp."
PROVIDES_berkeley_db="
clisp_berkeley_db$secondaryArchSuffix = $portVersion
"
REQUIRES_berkeley_db="
$requires_base
lib:libdb_18.1$secondaryArchSuffix
"
DESCRIPTION_gdbm="${desc_base} gdbm module for clisp."
PROVIDES_gdbm="
clisp_gdbm$secondaryArchSuffix = $portVersion
"
REQUIRES_gdbm="
$requires_base
lib:libgdbm$secondaryArchSuffix
"
DESCRIPTION_libsvm="${desc_base} libsvm module for clisp."
PROVIDES_libsvm="
clisp_libsvm$secondaryArchSuffix = $portVersion
"
REQUIRES_libsvm="
$requires_base
lib:libsvm$secondaryArchSuffix
"
#DESCRIPTION_pari="${desc_base} pari module for clisp."
#PROVIDES_pari="
# clisp_pari$secondaryArchSuffix = $portVersion
# "
#REQUIRES_pari="
# $requires_base
# lib:libpari$secondaryArchSuffix
# pari_data$secondaryArchSuffix
# "
DESCRIPTION_pcre="${desc_base} pcre module for clisp."
PROVIDES_pcre="
clisp_pcre$secondaryArchSuffix = $portVersion
"
REQUIRES_pcre="
$requires_base
lib:libpcre$secondaryArchSuffix
"
DESCRIPTION_postgresql="${desc_base} postgresql module for clisp."
PROVIDES_postgresql="
clisp_postgresql$secondaryArchSuffix = $portVersion
"
REQUIRES_postgresql="
$requires_base
lib:libpq$secondaryArchSuffix
"
DESCRIPTION_zlib="${desc_base} zlib module for clisp."
PROVIDES_zlib="
clisp_zlib$secondaryArchSuffix = $portVersion
"
REQUIRES_zlib="
$requires_base
lib:libz$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libdb$secondaryArchSuffix
devel:libffcall$secondaryArchSuffix
devel:libgdbm$secondaryArchSuffix
devel:libiconv$secondaryArchSuffix
devel:libintl$secondaryArchSuffix
devel:libldap$secondaryArchSuffix
devel:libncurses$secondaryArchSuffix
# devel:libpari$secondaryArchSuffix
devel:libpcre$secondaryArchSuffix
devel:libpq$secondaryArchSuffix < 12.0
devel:libreadline$secondaryArchSuffix >= 8
devel:libsigsegv$secondaryArchSuffix
devel:libsvm$secondaryArchSuffix
devel:libunistring$secondaryArchSuffix
devel:libz$secondaryArchSuffix
# pari_data$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:awk
cmd:cmp
cmd:gcc$secondaryArchSuffix
cmd:make
cmd:msgfmt
cmd:sed
"
last_prefix=$prefix
BUILD()
{
./configure \
FORCE_UNSAFE_CONFIGURE=1 \
CXXFLAGS="_D_BSD_SOURCE" \
LDFLAGS="-lbsd -lnetwork" \
--with-included-regex \
--prefix=$last_prefix \
--bindir=$last_prefix/bin \
--datarootdir=$dataDir \
--docdir=$docDir \
--libdir=$libDir \
--mandir=$manDir \
build-dir
}
INSTALL()
{
mkdir -p build-dir/clx/mit-clx/
cp modules/clx/mit-clx/README.CLISP build-dir/clx/mit-clx/
cd build-dir
make install
# TODO Add i18n regexp readline syscalls
for module in asdf rawsock clx/mit-clx editor queens; do
make install-modules MODULES="$module"
done
# TODO Add pari
for module in berkeley-db gdbm libsvm pcre postgresql zlib; do
pack=$(echo $module | sed 's/-/_/')
new_prefix=$(getPackagePrefix $pack)
sed -i "s|=[[:space:]]$last_prefix|= $new_prefix|g" Makefile
make install-modules MODULES="$module"
last_prefix=$new_prefix
done
}
TEST()
{
make bench -Cbuild-dir
}