# Copyright 1999-2016 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI="3" inherit versionator eutils #version magic thanks to masterdriverz and UberLord using bash array instead of tr trarr="0abcdefghi" MY_PV="$(get_version_component_range 1)${trarr:$(get_version_component_range 2):1}$(get_version_component_range 3)" MY_P=${PN}-${MY_PV} S=${WORKDIR}/${PN} DESCRIPTION="library providing functions for Scheme implementations" SRC_URI="http://swiss.csail.mit.edu/ftpdir/scm/${MY_P}.zip" HOMEPAGE="http://swiss.csail.mit.edu/~jaffer/SLIB" SLOT="0" LICENSE="public-domain BSD" KEYWORDS="alpha amd64 ia64 ppc ~ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris" IUSE="" #test" #unzip for unpacking RDEPEND="" DEPEND="app-arch/unzip" # test? ( dev-scheme/scm )" INSTALL_DIR="/usr/share/slib/" _fix_txi_file() { local inplace_filename="${1}" local tempfile="$(emktemp)" awk -f "${FILESDIR}"/slib-3.2.2-fix-texinfo.awk < "${inplace_filename}" > "${tempfile}" mv "${tempfile}" "${inplace_filename}" || die } src_prepare() { sed "s:prefix = /usr/local/:prefix = ${ED}/usr/:" -i Makefile || die sed 's:libdir = $(exec_prefix)lib/:libdir = $(exec_prefix)share/:' -i Makefile || die sed 's:man1dir = $(prefix)man/:man1dir = $(prefix)/share/man/:' -i Makefile || die sed 's:infodir = $(prefix)info/:infodir = $(prefix)share/info/:' -i Makefile || die sed 's:echo SCHEME_LIBRARY_PATH=$(libslibdir) >> $(bindir)slib:echo SCHEME_LIBRARY_PATH='"${EPREFIX}"'/usr/share/slib/ >> $(bindir)slib:' -i Makefile || die # diff -u Makefile.old Makefile sed 's:(lambda () "/usr/local/share/gambc/")):(lambda () "'"${EPREFIX}"'/usr/share/gambit")):' -i gambit.init || die einfo "Fixing Texinfo files..." for i in *.txi *.texi ; do _fix_txi_file "${i}" || die done } src_compile() { emake || die "make failed" } src_install() { emake infoz || die "infoz failed" emake install || die "install failed" dodoc ANNOUNCE ChangeLog FAQ README || die dodir /usr/share/gambit/ more_install } more_install() { dosym ${INSTALL_DIR} /usr/share/guile/slib # link from guile dir dosym ${INSTALL_DIR} /usr/lib/slib dodir /etc/env.d/ && echo "SCHEME_LIBRARY_PATH=\"${EPREFIX}${INSTALL_DIR}\"" > "${ED}"/etc/env.d/50slib mkdir "${S}"/installers pushd installers; make_installers; popd dosbin installers/* || die } pkg_postinst() { [ "${ROOT}" == "/" ] && pkg_config } IMPLEMENTATIONS="bigloo drscheme elk gambit guile scm" # mit-scheme pkg_config() { for impl in ${IMPLEMENTATIONS}; do install_slib ${impl} # echo '(slib:report-version)' | slib ${impl} done } make_load_expression() { echo "(load \\\"${EPREFIX}${INSTALL_DIR}$1.init\\\")" } make_installers() { PROGRAM="(require 'new-catalog) (slib:report-version)" bigloo_install_command="bigloo -s -eval \"(begin "$(make_load_expression bigloo)" ${PROGRAM} (exit))\"" drscheme_install_command="mzscheme -vme \"(begin $(make_load_expression mzscheme) ${PROGRAM})\"" elk_install_command="echo \"$(make_load_expression elk) ${PROGRAM}\" | elk -l -" gambit_install_command="gambit-interpreter -e \"$(make_load_expression gambit) ${PROGRAM}\"" # guile_install_command="guile -c \"$(make_load_expression guile) ${PROGRAM}\"" guile_install_command="guile -c \"(use-modules (ice-9 slib)) ${PROGRAM}\"" #variable names may not contain hyphens (-) mitscheme_install_command="echo \"(set! load/suppress-loading-message? #t) $(make_load_expression mitscheme) ${PROGRAM}\" | mit-scheme --batch-mode" echo ${mitscheme_install_command} scm_install_command="scm -e \"${PROGRAM}\"" for impl in ${IMPLEMENTATIONS}; do command_var=${impl//-/}_install_command make_installer ${impl} "${!command_var}" done } make_installer() { echo $2 > install_slib_for_${1//-/} } install_slib() { if has_version dev-scheme/$1; then script=install_slib_for_${1//-/} einfo "Registering slib with $1..." # echo running: $(cat "${EPREFIX}"/usr/sbin/${script}) $script else einfo "$1 not installed, not registering..." fi }