forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
slib-3.2.2.ebuild
131 lines (103 loc) · 3.97 KB
/
slib-3.2.2.ebuild
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
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="$(mktemp)"
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
}