dev-scheme/gerbil: add 0.16 and live
Signed-off-by: Maciej Barć <xgqt@gentoo.org>
This commit is contained in:
parent
3f813d7f5a
commit
d6819a88db
1
dev-scheme/gerbil/Manifest
Normal file
1
dev-scheme/gerbil/Manifest
Normal file
@ -0,0 +1 @@
|
||||
DIST gerbil-0.16.tar.gz 1715765 BLAKE2B 74cd501b19c8f124f9478c73080e92c2ba0bf92e8cb9faa4cba492b2def8a61633897b67def4200e53962ccf22287f58cf7fdd33604104acc80bde12dd58b07c SHA512 46782b4b71a3b437501b825f2f164e53b285d3a4cdba8f04485edaaa589d8500535c06a47a1464fc537ab7546413dde37c8d6a16a5e076a99ccf255905ed105d
|
6
dev-scheme/gerbil/files/70gerbil-gentoo.el
Normal file
6
dev-scheme/gerbil/files/70gerbil-gentoo.el
Normal file
@ -0,0 +1,6 @@
|
||||
;;; gerbil site-lisp configuration
|
||||
|
||||
(add-to-list 'load-path "@SITELISP@")
|
||||
|
||||
(autoload 'gerbil-mode "gerbil-mode" nil t)
|
||||
(add-to-list 'auto-mode-alist '("\\.ss\\'" . gerbil-mode))
|
1
dev-scheme/gerbil/files/99gerbil
Normal file
1
dev-scheme/gerbil/files/99gerbil
Normal file
@ -0,0 +1 @@
|
||||
GERBIL_HOME=/usr/share/gerbil
|
114
dev-scheme/gerbil/gerbil-0.16.ebuild
Normal file
114
dev-scheme/gerbil/gerbil-0.16.ebuild
Normal file
@ -0,0 +1,114 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit elisp-common toolchain-funcs wrapper
|
||||
|
||||
DESCRIPTION="Dialect of Scheme designed for Systems Programming"
|
||||
HOMEPAGE="https://cons.io/ https://github.com/vyzo/gerbil"
|
||||
|
||||
if [[ "${PV}" == *9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/vyzo/${PN}.git"
|
||||
else
|
||||
SRC_URI="https://github.com/vyzo/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="~amd64"
|
||||
fi
|
||||
S="${S}/src"
|
||||
|
||||
LICENSE="Apache-2.0 LGPL-2.1"
|
||||
SLOT="0"
|
||||
IUSE="emacs leveldb lmdb mysql +sqlite +xml yaml +zlib"
|
||||
|
||||
BDEPEND="dev-scheme/gambit"
|
||||
RDEPEND="
|
||||
dev-scheme/gambit
|
||||
emacs? ( >=app-editors/emacs-23.1:* )
|
||||
leveldb? ( dev-libs/leveldb )
|
||||
lmdb? ( dev-db/lmdb )
|
||||
mysql? ( dev-db/mariadb:* )
|
||||
sqlite? ( dev-db/sqlite )
|
||||
xml? ( dev-libs/libxml2 )
|
||||
yaml? ( dev-libs/libyaml )
|
||||
zlib? ( sys-libs/zlib )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
SITEFILE="70${PN}-gentoo.el"
|
||||
|
||||
src_prepare() {
|
||||
# Just to be safe, because './configure --help' says:
|
||||
# "Set default GERBIL_HOME (environment variable still overrides)"
|
||||
unset GERBIL_HOME
|
||||
unset GERBIL_PATH
|
||||
|
||||
# Verbose build process
|
||||
export GAMBCOMP_VERBOSE="yes"
|
||||
|
||||
default
|
||||
|
||||
sed -i "s|gcc|$(tc-getCC)|g" ./build.sh || die "Failed to fix CC setting"
|
||||
sed -i "s|-O2|${CFLAGS}|g" ./build.sh || die "Failed to fix CFLAGS setting"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local myconf=(
|
||||
$(use_enable leveldb)
|
||||
$(use_enable lmdb)
|
||||
$(use_enable mysql)
|
||||
$(use_enable xml libxml)
|
||||
$(use_enable yaml libyaml)
|
||||
$(usex sqlite '' '--disable-sqlite')
|
||||
$(usex zlib '' '--disable-zlib')
|
||||
--prefix="${D}/usr/share/${PN}"
|
||||
)
|
||||
# This is not a standard 'configure' script!
|
||||
gsi ./configure ${myconf[@]} ||
|
||||
die "Failed to configure using the 'configure' script"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# The 'build.sh' script uses environment variables that are exported
|
||||
# by portage, ie.: CFLAGS, LDFLAGS, ...
|
||||
sh ./build.sh ||
|
||||
die "Failed to compile using the 'build.sh' script"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
mkdir -p "${D}"/usr/share/${PN} ||
|
||||
die "Failed to make ${D}/usr/share/${PN} directory"
|
||||
gsi ./install || die "Failed to install using the 'install' script"
|
||||
|
||||
sed -i "s|${D}|${EPREFIX}|g" "${D}"/usr/share/${PN}/bin/gxc ||
|
||||
die "Failed to fix the 'gxc' executable script"
|
||||
|
||||
mv "${D}"/usr/share/${PN}/share/emacs "${D}"/usr/share/emacs || die
|
||||
mv "${D}"/usr/share/${PN}/share/${PN}/TAGS "${D}"/usr/share/${PN}/TAGS || die
|
||||
|
||||
# Compile the 'gerbil-mode.el'
|
||||
if use emacs; then
|
||||
elisp-compile "${D}/usr/share/emacs/site-lisp/gerbil"/*.el ||
|
||||
die "Failed to compile elisp files"
|
||||
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
|
||||
fi
|
||||
|
||||
# Create wrappers for gerbil executables in GERBIL_HOME (/usr/share/gerbil)
|
||||
pushd "${D}"/usr/share/${PN}/bin >/dev/null || die
|
||||
local gx_bin
|
||||
for gx_bin in *; do
|
||||
make_wrapper "${gx_bin}" "${EPREFIX}/usr/share/${PN}/bin/${gx_bin}"
|
||||
done
|
||||
popd >/dev/null || die
|
||||
|
||||
# Without this the programs compiled with gxc will break!
|
||||
doenvd "${FILESDIR}/99${PN}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
114
dev-scheme/gerbil/gerbil-9999.ebuild
Normal file
114
dev-scheme/gerbil/gerbil-9999.ebuild
Normal file
@ -0,0 +1,114 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit elisp-common toolchain-funcs wrapper
|
||||
|
||||
DESCRIPTION="Dialect of Scheme designed for Systems Programming"
|
||||
HOMEPAGE="https://cons.io/ https://github.com/vyzo/gerbil"
|
||||
|
||||
if [[ "${PV}" == *9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/vyzo/${PN}.git"
|
||||
else
|
||||
SRC_URI="https://github.com/vyzo/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="~amd64"
|
||||
fi
|
||||
S="${S}/src"
|
||||
|
||||
LICENSE="Apache-2.0 LGPL-2.1"
|
||||
SLOT="0"
|
||||
IUSE="emacs leveldb lmdb mysql +sqlite +xml yaml +zlib"
|
||||
|
||||
BDEPEND="dev-scheme/gambit"
|
||||
RDEPEND="
|
||||
dev-scheme/gambit
|
||||
emacs? ( >=app-editors/emacs-23.1:* )
|
||||
leveldb? ( dev-libs/leveldb )
|
||||
lmdb? ( dev-db/lmdb )
|
||||
mysql? ( dev-db/mariadb:* )
|
||||
sqlite? ( dev-db/sqlite )
|
||||
xml? ( dev-libs/libxml2 )
|
||||
yaml? ( dev-libs/libyaml )
|
||||
zlib? ( sys-libs/zlib )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
SITEFILE="70${PN}-gentoo.el"
|
||||
|
||||
src_prepare() {
|
||||
# Just to be safe, because './configure --help' says:
|
||||
# "Set default GERBIL_HOME (environment variable still overrides)"
|
||||
unset GERBIL_HOME
|
||||
unset GERBIL_PATH
|
||||
|
||||
# Verbose build process
|
||||
export GAMBCOMP_VERBOSE="yes"
|
||||
|
||||
default
|
||||
|
||||
sed -i "s|gcc|$(tc-getCC)|g" ./build.sh || die "Failed to fix CC setting"
|
||||
sed -i "s|-O2|${CFLAGS}|g" ./build.sh || die "Failed to fix CFLAGS setting"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local myconf=(
|
||||
$(use_enable leveldb)
|
||||
$(use_enable lmdb)
|
||||
$(use_enable mysql)
|
||||
$(use_enable xml libxml)
|
||||
$(use_enable yaml libyaml)
|
||||
$(usex sqlite '' '--disable-sqlite')
|
||||
$(usex zlib '' '--disable-zlib')
|
||||
--prefix="${D}/usr/share/${PN}"
|
||||
)
|
||||
# This is not a standard 'configure' script!
|
||||
gsi ./configure ${myconf[@]} ||
|
||||
die "Failed to configure using the 'configure' script"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# The 'build.sh' script uses environment variables that are exported
|
||||
# by portage, ie.: CFLAGS, LDFLAGS, ...
|
||||
sh ./build.sh ||
|
||||
die "Failed to compile using the 'build.sh' script"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
mkdir -p "${D}"/usr/share/${PN} ||
|
||||
die "Failed to make ${D}/usr/share/${PN} directory"
|
||||
gsi ./install || die "Failed to install using the 'install' script"
|
||||
|
||||
sed -i "s|${D}|${EPREFIX}|g" "${D}"/usr/share/${PN}/bin/gxc ||
|
||||
die "Failed to fix the 'gxc' executable script"
|
||||
|
||||
mv "${D}"/usr/share/${PN}/share/emacs "${D}"/usr/share/emacs || die
|
||||
mv "${D}"/usr/share/${PN}/share/${PN}/TAGS "${D}"/usr/share/${PN}/TAGS || die
|
||||
|
||||
# Compile the 'gerbil-mode.el'
|
||||
if use emacs; then
|
||||
elisp-compile "${D}/usr/share/emacs/site-lisp/gerbil"/*.el ||
|
||||
die "Failed to compile elisp files"
|
||||
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
|
||||
fi
|
||||
|
||||
# Create wrappers for gerbil executables in GERBIL_HOME (/usr/share/gerbil)
|
||||
pushd "${D}"/usr/share/${PN}/bin >/dev/null || die
|
||||
local gx_bin
|
||||
for gx_bin in *; do
|
||||
make_wrapper "${gx_bin}" "${EPREFIX}/usr/share/${PN}/bin/${gx_bin}"
|
||||
done
|
||||
popd >/dev/null || die
|
||||
|
||||
# Without this the programs compiled with gxc will break!
|
||||
doenvd "${FILESDIR}/99${PN}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
32
dev-scheme/gerbil/metadata.xml
Normal file
32
dev-scheme/gerbil/metadata.xml
Normal file
@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
|
||||
<pkgmetadata>
|
||||
<use>
|
||||
<flag name="leveldb">
|
||||
Add support for using dev-libs/leveldb
|
||||
</flag>
|
||||
<flag name="lmdb">
|
||||
Add support for using dev-db/lmdb
|
||||
</flag>
|
||||
<flag name="yaml">
|
||||
Add support for yaml file format
|
||||
</flag>
|
||||
</use>
|
||||
<longdescription lang="en">
|
||||
Gerbil is an opinionated dialect of Scheme designed
|
||||
for Systems Programming, with a state of the art macro
|
||||
and module system on top of the Gambit runtime.
|
||||
The macro system is based on quote-syntax, and provides
|
||||
the full meta-syntactic tower with a native implementation
|
||||
of syntax-case. It also provides a full-blown module system,
|
||||
similar to PLT Scheme’s (Racket) modules. The main difference
|
||||
from Racket is that Gerbil modules are single instantiation,
|
||||
supporting high performance ahead of time compilation
|
||||
and compiled macros.
|
||||
</longdescription>
|
||||
<upstream>
|
||||
<bugs-to>https://github.com/vyzo/gerbil</bugs-to>
|
||||
<remote-id type="github">vyzo/gerbil</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
Loading…
Reference in New Issue
Block a user