blob: b292dd3dc6b69af76a503ac4f92258be96bd317a (
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
|
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-util/coccinelle/coccinelle-1.0.0_rc14.ebuild,v 1.2 2012/08/03 00:24:52 radhermit Exp $
EAPI="4"
PYTHON_DEPEND="python? 2"
inherit multilib eutils python bash-completion-r1 elisp-common autotools
MY_P="${P/_/-}"
DESCRIPTION="Program matching and transformation engine"
HOMEPAGE="http://coccinelle.lip6.fr/"
SRC_URI="http://coccinelle.lip6.fr/distrib/${MY_P}.tgz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="doc emacs ocaml +ocamlopt pcre python test vim-syntax"
# ocaml enables ocaml scripting (uses findlib)
CDEPEND=">=dev-lang/ocaml-3.10[ocamlopt?]
dev-ml/sexplib
emacs? ( virtual/emacs )
ocaml? ( dev-ml/findlib )
pcre? ( dev-ml/pcre-ocaml )"
RDEPEND="${CDEPEND}
vim-syntax? ( || ( app-editors/vim app-editors/gvim ) )"
# dev-texlive/texlive-fontsextra contains 'ifsym.sty'
DEPEND="${CDEPEND}
virtual/pkgconfig
doc? (
virtual/latex-base
dev-texlive/texlive-latexextra
dev-texlive/texlive-fontsextra
)"
REQUIRED_USE="test? ( ocaml python )"
DOCS=( authors.txt bugs.txt changes.txt credits.txt readme.txt )
S=${WORKDIR}/${MY_P}
SITEFILE=50coccinelle-gentoo.el
pkg_setup() {
if use python ; then
python_set_active_version 2
python_pkg_setup
fi
}
src_prepare() {
if use python ; then
# Fix python install location
sed -i -e "s:\$(SHAREDIR)/python:$(python_get_sitedir):" \
-e "s:PYTHON_TARGET:PYTHON_INSTALL_TARGET:" Makefile || die
sed -i -e "/export PYTHONPATH/s:\$COCCINELLE_HOME/python:$(python_get_sitedir):" \
scripts/spatch.sh.in || die
fi
epatch "${FILESDIR}"/${P}-findtool.patch
cp Makefile Makefile.orig || die
eautoreconf
}
src_configure() {
econf \
$(use_enable python) \
$(use_enable ocaml) \
$(use_enable pcre) \
$(use_enable pcre pcre-syntax)
sed -i -e "s:^LIBDIR=.*:LIBDIR=/usr/$(get_libdir)/ocaml/stublibs/:" \
-e "s:^SHAREDIR=.*:SHAREDIR=/usr/$(get_libdir)/ocaml/${PN}/:" \
Makefile.config || die
cp Makefile.orig Makefile || die
}
src_compile() {
emake depend
emake
use ocamlopt && emake opt
if use doc ; then
VARTEXFONTS="${T}"/fonts emake docs
fi
if use emacs ; then
elisp-compile editors/emacs/cocci.el || die
fi
}
src_test() {
source env.sh # needed for built in-place python plugin
./spatch standard.h -parse_c -dir tests/ || die
yes | ./spatch -iso_file standard.iso -macro_file_builtins standard.h -testall || die
if use ocamlopt ; then
./spatch.opt -iso_file standard.iso -macro_file_builtins standard.h -testall || die
fi
}
src_install() {
default
use doc && dodoc docs/manual/*.pdf
newbashcomp scripts/spatch.bash_completion spatch
if use emacs ; then
elisp-install ${PN} editors/emacs/*
elisp-site-file-install "${FILESDIR}"/${SITEFILE}
fi
if use vim-syntax ; then
newdoc editors/vim/README README-vim
rm editors/vim/README || die
insinto /usr/share/vim/vimfiles
doins -r editors/vim/*
fi
export STRIP_MASK='*/coccinelle/spatch'
}
pkg_postinst() {
use emacs && elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
}
|