summaryrefslogtreecommitdiff
path: root/dev-scheme/bigloo
diff options
context:
space:
mode:
Diffstat (limited to 'dev-scheme/bigloo')
-rw-r--r--dev-scheme/bigloo/Manifest4
-rw-r--r--dev-scheme/bigloo/bigloo-4.4c_p4-r1.ebuild192
-rw-r--r--dev-scheme/bigloo/files/50bigloo-gentoo.el2
-rw-r--r--dev-scheme/bigloo/metadata.xml27
4 files changed, 225 insertions, 0 deletions
diff --git a/dev-scheme/bigloo/Manifest b/dev-scheme/bigloo/Manifest
new file mode 100644
index 000000000000..d07fc2144a09
--- /dev/null
+++ b/dev-scheme/bigloo/Manifest
@@ -0,0 +1,4 @@
+AUX 50bigloo-gentoo.el 110 BLAKE2B 520b6b4d89452d3c9479c92b3f2f31e46e7761bc2c03fd62236e277ff1f9613cd237ba799d7349cf8bc8311125d3548956dc1947bd8d79cb72349dee723a9190 SHA512 73fda359d7c09c291eb1c3d38d3352b57acab0e800e2d89ee815a1c58202e8a5603abe847409e58bd69ea0ed7245abbb4a60de4fa8285287523caff47f19d6e2
+DIST bigloo-4.4c-4.tar.gz 47714106 BLAKE2B f30775cfa3e29f781f31dc5ec80087712504ffab528a911e2a29746562b6179b03cbfc63a45ddf337b2424fbfa476005ffed67674a75b4629ab70459c47147a6 SHA512 b1a7f7f610303dbbd7339ac4f80679b07d1bf5304865fe61f28bd5af8205f1a5c2b5b3edb1c47a0409a6392a2242d2adde1f5129b026b6a7ee022b8f5faec157
+EBUILD bigloo-4.4c_p4-r1.ebuild 4650 BLAKE2B 92a91be2d325fc547eed8677e6b524a7cd10f1836f12c9f9fa1cb64aac24f2d120a20cc539ae5fd5d8ff47b9c87b14d7958196ef39b8d18e72859565641b4a32 SHA512 2517b82dab8392fc57734c8d64486592fbf488531a27eae1b7b49144b32ed0e7256d146b8b39979cd5804418f47b9e4a2dcd2098d50f6674e954e34f1a28615a
+MISC metadata.xml 1113 BLAKE2B 20eec442cc5ba556fb5e30dc225bfeb45851be9ee1bbf111662ba3eec8573275754101d863145874cf778e27715792e1757189c2e4cec8ae6d320800e22dc0a6 SHA512 fb58869479a3310d1eac93ecd8127f2759fb93c45a73d1d2835802d201c6fb0a95592238521b7c385bea1d27d83da650000685978067dab272615f81e6ca5c4a
diff --git a/dev-scheme/bigloo/bigloo-4.4c_p4-r1.ebuild b/dev-scheme/bigloo/bigloo-4.4c_p4-r1.ebuild
new file mode 100644
index 000000000000..0d56b78e294e
--- /dev/null
+++ b/dev-scheme/bigloo/bigloo-4.4c_p4-r1.ebuild
@@ -0,0 +1,192 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit elisp-common toolchain-funcs
+
+MY_PV=${PV/_p/-} # e.g.: 4.4c_p4 -> 4.4c-4
+MY_P=${PN}-${MY_PV}
+
+DESCRIPTION="Practical Scheme Compiler with many extensions"
+HOMEPAGE="http://www-sop.inria.fr/indes/fp/Bigloo/index.html"
+SRC_URI="ftp://ftp-sop.inria.fr/indes/fp/Bigloo/${MY_P}.tar.gz"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="alsa avahi emacs flac +gmp gpg gstreamer java libuv mp3 pulseaudio +sqlite"
+REQUIRED_USE="flac? ( alsa ) mp3? ( alsa )"
+
+EMACS_DEPEND="emacs? ( >=app-editors/emacs-23.1:* )"
+DEPEND="
+ dev-libs/boehm-gc[threads]
+ dev-libs/libpcre2:=
+ dev-libs/libunistring:=
+ dev-libs/openssl:=
+ alsa? ( media-libs/alsa-lib )
+ avahi? ( net-dns/avahi )
+ flac? ( media-libs/flac )
+ gmp? ( dev-libs/gmp:= )
+ gpg? ( app-crypt/gnupg )
+ gstreamer? (
+ media-libs/gst-plugins-base:1.0=
+ media-libs/gstreamer:1.0=
+ )
+ java? ( virtual/jdk:* )
+ libuv? ( dev-libs/libuv:= )
+ mp3? ( media-sound/mpg123 )
+ pulseaudio? ( media-sound/pulseaudio )
+ sqlite? ( dev-db/sqlite:3= )
+"
+RDEPEND="
+ ${DEPEND}
+ ${EMACS_DEPEND}
+ sys-devel/binutils
+ sys-devel/gdb
+"
+BDEPEND="
+ ${EMACS_DEPEND}
+ sys-apps/texinfo
+"
+
+DOCS=( ChangeLog README.md TODO.org )
+SITEFILE="50${PN}-gentoo.el"
+
+src_prepare() {
+ default
+
+ sed -e "/^ar=/s|=|=\"$(tc-getAR)\"|" \
+ -e "/^ranlib=/s|=|=\"$(tc-getRANLIB)\"|" \
+ -i ./configure || die
+
+ sed "s|^ar |$(tc-getAR) |" -i ./autoconf/ranlib || die
+}
+
+src_configure() {
+ tc-export AR AS CC CPP CXX LD
+ export CFLAGS
+ export LDFLAGS
+
+ local myconf=(
+ # Compilation
+ --as="$(tc-getAS)"
+ --cc="$(tc-getCC)"
+ --cflags="${CFLAGS}"
+ --cpicflags="-fPIC"
+ --cwarningflags=""
+ --ldflags="${LDFLAGS}"
+ # Installation directories
+ --prefix=/usr
+ --bindir=/usr/share/${PN}/bin
+ --docdir=/usr/share/doc/${PF}
+ --infodir=/usr/share/info
+ --libdir=/usr/"$(get_libdir)"
+ --mandir=/usr/share/man
+ # Custom internal components
+ --customgc=no
+ --customgmp=no
+ --customlibuv=no
+ --customunistring=no
+ --jvm=$(usex java)
+ --native=yes
+ --sharedbde=yes
+ --sharedcompiler=yes
+ --strip=no
+ # Libraries, Bigloo calls them APIs
+ --disable-phidget # not important for now, only in ::ros-overlay ?
+ --enable-calendar # iCalendar parser
+ --enable-crypto
+ --enable-csv # parsing CSV files
+ --enable-mail # IMAP protocol implementation
+ --enable-multimedia
+ --enable-packrat # packrat parser
+ --enable-phone
+ --enable-pkgcomp
+ --enable-pthread
+ --enable-srfi1
+ --enable-srfi18
+ --enable-ssl
+ --enable-text # BibTeX parser
+ --enable-upnp # Upnp protocol implementation
+ --enable-web # XML, CGI, and RSS parsers
+ $(use_enable alsa)
+ $(use_enable avahi)
+ $(use_enable flac wav)
+ $(use_enable flac)
+ $(use_enable gmp srfi27)
+ $(use_enable gmp)
+ $(use_enable gpg openpgp)
+ $(use_enable gstreamer)
+ $(use_enable libuv)
+ $(use_enable mp3 mpg123)
+ $(use_enable pulseaudio)
+ $(use_enable sqlite pkglib)
+ $(use_enable sqlite)
+ # GNU Emacs libraries
+ --bee=$(usex emacs full partial)
+ --emacs=$(usex emacs "${EMACS}" "no")
+ --lispdir=$(usex emacs "${SITELISP}/${PN}" "")
+ )
+ ebegin "Configuring Bigloo with the following options: ${myconf[@]}"
+ sh ./configure "${myconf[@]}"
+ eend $? || die "configure script failed"
+}
+
+src_compile() {
+ default
+
+ emake -C bdl
+ emake -C bdb
+ emake -C cigloo
+
+ use emacs && emake -C bmacs
+}
+
+src_test() {
+ emake test
+}
+
+src_install() {
+ emake DESTDIR="${D}" LN_S="ln -rs" install
+ emake DESTDIR="${D}" -C bdl install
+ emake DESTDIR="${D}" -C bdb install
+ emake DESTDIR="${D}" -C cigloo install
+
+ # The ".sh" scripts set proper environment and library order for Bigloo,
+ # but programs (and the Bigloo Emacs library, "bee-mode") want "bigloo",
+ # not "bigloo.sh". To make programs work we install all executable files
+ # into "/usr/share/bigloo/bin", and then pick one by one for non-scripts:
+ # if a script with ".sh" extensions exists, then we link the script,
+ # not the picked executable to a binary name, otherwise link the binary.
+ mkdir -p "${D}"/usr/bin || die
+ pushd "${D}" >/dev/null || die
+ local bin bin_link
+ for bin in usr/share/${PN}/bin/* ; do
+ if [[ ${bin} != *.sh ]] ; then
+ bin_link=usr/bin/$(basename ${bin})
+ if [[ -f ${bin}.sh ]] ; then
+ ln -s ../../${bin}.sh ${bin_link} || die
+ else
+ ln -s ../../${bin} ${bin_link} || die
+ fi
+ fi
+ done
+ popd >/dev/null || die
+
+ if use emacs ; then
+ emake DESTDIR="${D}" install-bee
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ fi
+
+ einstalldocs
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-scheme/bigloo/files/50bigloo-gentoo.el b/dev-scheme/bigloo/files/50bigloo-gentoo.el
new file mode 100644
index 000000000000..9cac9f0f7d0f
--- /dev/null
+++ b/dev-scheme/bigloo/files/50bigloo-gentoo.el
@@ -0,0 +1,2 @@
+(add-to-list 'load-path "@SITELISP@")
+(autoload 'bee-mode "bee-mode" "Major mode for editing Bigloo code." t)
diff --git a/dev-scheme/bigloo/metadata.xml b/dev-scheme/bigloo/metadata.xml
new file mode 100644
index 000000000000..a179bb3d4094
--- /dev/null
+++ b/dev-scheme/bigloo/metadata.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="project">
+ <email>scheme@gentoo.org</email>
+ <name>Gentoo Scheme Project</name>
+ </maintainer>
+ <longdescription>
+ Bigloo is a Scheme implementation devoted to one goal: enabling Scheme
+ based programming style where C(++) is usually required.
+ Bigloo attempts to make Scheme practical by offering features usually
+ presented by traditional programming languages but not offered by Scheme
+ and functional programming. Bigloo compiles Scheme modules. It delivers
+ small and fast stand alone binary executables. Bigloo enables full
+ connections between Scheme and C programs.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/manuel-serrano/bigloo/issues/</bugs-to>
+ <remote-id type="github">manuel-serrano/bigloo</remote-id>
+ </upstream>
+ <use>
+ <flag name="avahi">Enable Avahi support</flag>
+ <flag name="gpg">Enable GPG support</flag>
+ <flag name="libuv">Enable libuv support</flag>
+ </use>
+</pkgmetadata>