d6819a88db
Signed-off-by: Maciej Barć <xgqt@gentoo.org>
115 lines
3.0 KiB
Bash
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
|
|
}
|