blob: 548a9a8a8caf41785b2b4f9ac27df7e9111581f1 (
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
|
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="2"
inherit eutils multilib
DESCRIPTION="Isabelle is a generic proof assistant"
HOMEPAGE="http://isabelle.in.tum.de/ http://www.cl.cam.ac.uk/research/hvg/Isabelle/"
SRC_URI="http://isabelle.in.tum.de/dist/Isabelle${PV}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~x86 ~amd64"
IUSE="doc graphbrowsing +proofgeneral"
#upstream says
#bash 2.x/3.x, Poly/ML 5.x, Perl 5.x,
#for Proof General GNU Emacs 21/22, xemacs 21.4.x, NOT xemacs 21.5 beta
#for document preparation: complete LaTeX
DEPEND=">=app-shells/bash-3.0
graphbrowsing? (
virtual/jdk
)"
#proofgeneral uses eclass elisp that depends on virtual/emacs-21
RDEPEND=">=dev-lang/polyml-5.2.1
>=dev-lang/perl-5.8.8-r2
doc? (
virtual/latex-base
)
proofgeneral? (
app-emacs/proofgeneral
)
${DEPEND}"
S="${WORKDIR}"/Isabelle${PV}
TARGETDIR="/usr/share/Isabelle"${PV}
LIBDIR="/usr/"$(get_libdir)"/Isabelle"${PV}
pkg_setup() {
if ! use proofgeneral
then
ewarn "You have deselected the Proof General interface."
ewarn "Only a text terminal will be installed."
ewarn "Emerge Isabelle with the proofgeneral USE flag enabled"
ewarn "to get the common interface, that most people want."
fi
}
src_prepare() {
use proofgeneral && epatch ${FILESDIR}/isabelle-2009-proofgeneral-gentoo-path.patch
}
src_compile() {
einfo "Building Isabelle logics. This may take some time."
./build -b || die "building logics failed"
if use graphbrowsing
then
cd lib/browser
emake clean || die "failed cleaning graph browser directory"
emake || die "failed building the graph browser"
fi
}
src_test() {
einfo "Running tests. A test run can take up to several hours!"
./build -b HOL -t
}
src_install() {
exeinto ${TARGETDIR}/bin
doexe bin/isabelle-process bin/isabelle \
|| die "install failed"
exeinto ${TARGETDIR}
doexe build || die "install failed"
insinto ${TARGETDIR}
use doc && ( doins -r doc || die "install failed" )
doins -r etc || die "install failed"
dosym ${LIBDIR}/heaps ${TARGETDIR}/heaps
insinto ${LIBDIR}
doins -r heaps || die "install failed"
# use cp to keep file attributes
cp -R lib ${D}${TARGETDIR} || die "install failed"
bin/isabelle install -d ${TARGETDIR} -p ${D}usr/bin
newicon lib/icons/isabelle.xpm ${PN}.xpm
dodoc ANNOUNCE CONTRIBUTORS INSTALL NEWS README \
|| die "dodoc failed"
}
pkg_postinst() {
elog "You will need to re-emerge Isabelle after emerging polyml."
}
|