src_prepare-overlay/dev-scheme/gerbil/gerbil-0.16.ebuild
Maciej Barć d6819a88db
dev-scheme/gerbil: add 0.16 and live
Signed-off-by: Maciej Barć <xgqt@gentoo.org>
2021-11-28 22:37:30 +01:00

115 lines
3.0 KiB
Bash

# 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
}