blob: a428e4536b381947323819795c4c888e85b38f3f (
plain)
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
132
133
134
|
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-lisp/clisp/clisp-2.33.2-r1.ebuild,v 1.3 2004/11/04 17:31:23 mkennedy Exp $
inherit flag-o-matic common-lisp-common eutils gcc
DESCRIPTION="A portable, bytecode-compiled implementation of Common Lisp"
HOMEPAGE="http://clisp.sourceforge.net/"
SRC_URI="mirror://sourceforge/clisp/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="2"
KEYWORDS="x86 ~ppc"
IUSE="X fastcgi nls pcre postgres readline"
DEPEND="dev-libs/libsigsegv
dev-lisp/common-lisp-controller
>=cl-defsystem3-3.3i-r3
>=dev-lisp/cl-asdf-1.84
fastcgi? ( dev-libs/fcgi )
postgres? ( dev-db/postgresql )
X? ( virtual/x11 )
readline? ( sys-libs/readline )
nls? ( sys-devel/gettext )
pcre? ( dev-libs/libpcre )"
src_unpack() {
unpack ${A}
epatch ${FILESDIR}/${PV}/fastcgi-Makefile.in-gentoo.patch
epatch ${FILESDIR}/${PV}/glibc-linux.lisp-sigpause-gentoo.patch
}
src_compile() {
# Handle the case where the user has some other -falign-functions
# option set. Bug 34630.
if ! is-flag '-falign-functions=4' \
&& expr "$CFLAGS" : '.*\(-falign-functions=[[:digit:]]\+\)' >/dev/null; then
CFLAGS=${CFLAGS/\
$(expr "$CFLAGS" : '.*\(-falign-functions=[[:digit:]]\+\)')/\
-falign-functions=4}
fi
# Fails to compile without -falign-functions=4 when -march=pentium4
# (or -march=pentium3, sometimes??) is defined. Bugs 33425 and 34630.
if (is-flag '-march=pentium4' || is-flag '-march=pentium3') \
&& ! is-flag '-falign-functions=4'; then
append-flags '-falign-functions=4'
fi
# Athlon XP users report problems with -O3 optimization. In this
# block, we remove any optimization flag. Depending on bug 34497. we
# may be able to reduce optimization to -O2.
if is-flag '-march=athlon-xp'; then
filter-flags '-O*'
fi
# The previous stanza might not be necessary. Bug 39830.
if is-flag '-march=athlon-xp'; then
replace-flags '-march=athlon-xp' '-mcpu=athlon-xp'
fi
# einfo "Using CFLAGS: ${CFLAGS}"
# export CC="$(gcc-getCC) ${CFLAGS}"
# Let CLISP use its own set of optimizations
unset CFLAGS CXXFLAGS
local myconf="--with-dynamic-ffi
--with-unicode
--with-module=regexp
--with-module=syscalls
--with-module=wildcard
--with-module=bindings/glibc"
use readline || myconf="${myconf} --with-noreadline"
use nls || myconf="${myconf} --with-nogettext"
use X && myconf="${myconf} --with-module=clx/new-clx"
if use postgres; then
myconf="${myconf} --with-module=postgresql"
CC="${CC} -I $(pg_config --includedir)"
fi
use fastcgi && myconf="${myconf} --with-module=fastcgi"
use pcre && myconf="${myconf} --with-module=pcre"
./configure --prefix=/usr ${myconf} build || die "./configure failed"
cd build
./makemake ${myconf} >Makefile
emake -j1 config.lisp
sed -i 's,"vi","nano",g' config.lisp
sed -i 's,http://www.lisp.org/HyperSpec/,http://www.lispworks.com/reference/HyperSpec/,g' config.lisp
emake -j1 || die
}
src_install() {
cd build && make DESTDIR=${D} prefix=/usr install-bin || die
doman clisp.1
dodoc SUMMARY README* NEWS MAGIC.add GNU-GPL COPYRIGHT \
ANNOUNCE clisp.dvi clisp.html
rm -f ${D}/usr/lib/clisp/base/*
(cd ${D}/usr/lib/clisp/base && ln -s ../full/* .)
chmod a+x ${D}/usr/lib/clisp/clisp-link
# install common-lisp-controller profile
exeinto /usr/lib/common-lisp/bin
doexe ${FILESDIR}/clisp.sh
insinto /usr/lib/clisp
doins ${FILESDIR}/install-clc.lisp
keepdir /usr/lib/common-lisp/clisp
}
pkg_preinst() {
local clisp_dir=/usr/lib/clisp
local old_mem=$clisp_dir/full/lispinit.mem
local new_mem=$clisp_dir/full/lispinit-new.mem
local clean_mem=$clisp_dir/full/lispinit-clean.mem
local lisp_run=$clisp_dir/full/lisp.run
rm -f $old_mem $new_mem $clean_mem $lisp_run
}
pkg_postinst() {
standard-impl-postinst clisp
while read line; do einfo "${line}"; done <<EOF
PLEASE NOTE: FASL files (.fas) created by versions of CLISP prior to
2.33 are not compatible with this version of CLISP (${PV}). You will
need to re-create your FASLs via. recompilation. FASLs in
/usr/lib/common-lisp/clisp for Common Lisp Controller-installed Lisp
packages have aready been recompiled for you.
EOF
}
pkg_postrm() {
standard-impl-postrm clisp /usr/bin/clisp
}
|