Merge branch 'dev-python/pyvows'
[wtk-overlay.git] / sci-libs / comedilib / comedilib-9999.ebuild
1 # Copyright 1999-2012 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: $
4
5 EAPI="4"
6
7 PYTHON_DEPEND="python? 2:2.7 3"
8 SUPPORT_PYTHON_ABIS="1"
9
10 inherit distutils eutils
11
12 if [[ ${PV} == "9999" ]] ; then
13         inherit git-2
14         EGIT_BRANCH="master"
15         EGIT_REPO_URI="git://comedi.org/git/comedi/${PN}.git"
16         SRC_URI=""
17 else
18         SRC_URI="http://www.comedi.org/download/${P}.tar.gz"
19 fi
20
21 DESCRIPTION="Userspace interface to Comedi kernel modules."
22 HOMEPAGE="http://www.comedi.org"
23
24 IUSE="python ruby doc"
25 KEYWORDS="~x86 ~amd64"
26 LICENSE="LGPL-2.1"
27 SLOT="0"
28
29 PYTHON_MODNAME="comedi.py"
30 DISTUTILS_SETUP_FILES="${S}/swig/python/setup.py"
31
32 DEPEND=">=sci-misc/comedi-headers-${PV}
33         sys-devel/flex
34         sys-devel/bison
35         python? (
36                 dev-lang/swig
37                 dev-lang/python
38         )
39         ruby? (
40                 dev-lang/swig
41                 dev-lang/ruby
42                 app-admin/chrpath
43         )
44         doc? ( app-text/xmlto )"
45 RDEPEND=""
46
47 src_prepare()
48 {
49         if [ "${PV}" == "9999" ] ; then
50                 ./autogen.sh
51         fi
52         if use python ; then
53                 pushd "${S}/swig/python" || die "failed to pushd"
54                 distutils_src_prepare
55                 popd || die "failed to popd"
56         fi
57 }
58
59 src_configure()
60 {
61         # handle binding compilation and installation ourselves
62         #$(use_enable python python-binding)
63         #$(use_enable ruby ruby-binding)
64         econf \
65                 --sysconfdir="${EPREFIX}/usr/share/doc/${PF}/etc" \
66                 --localstatedir="${EPREFIX}/var" \
67                 --docdir="${EPREFIX}/usr/share/doc/${PF}" \
68                 --disable-python-binding \
69                 --disable-ruby-binding \
70                 $(use_enable doc docbook) \
71                 || die "econf failed"
72 }
73
74 src_compile()
75 {
76         emake || die "emake failed"
77         if use python ; then
78                 pushd "${S}/swig/python" || die "failed to pushd"
79                 distutils_src_compile
80                 popd || die "failed to popd"
81         fi
82         if use ruby ; then
83                 pushd "${S}/swig/ruby" || die "failed to pushd"
84                 swig -ruby -o ext/comedi_ruby_wrap.c "-I${S}/include" ../comedi.i \
85                         || die "swigging ruby binding failed"
86                 RUBYOPT="" DESTDIR="${D}" ruby setup.rb config --prefix="${D}/usrBBB" \
87                         -- \
88                         --with-comedilib-include="${S}/include" \
89                         --with-comedilib-lib="${S}/lib/.libs" \
90                         || die "ruby setup.rb config failed"
91                 ruby setup.rb setup || die "ruby setup.rb setup failed"
92                 chrpath -d ext/comedi.so || die "chrpath -d failed"
93                 popd || die "failed to popd"
94         fi
95 }
96
97 src_install()
98 {
99         emake DESTDIR="${D}" install || die "emake install failed"
100         keepdir /var/calibrations
101         local DOCINTO="/usr/share/doc/${PF}"
102         local DDOCINTO="${D}${DOCINTO}"
103         if use doc ; then
104                 epatch "${FILESDIR}/${P}-demo-Makefile.patch"
105                 pushd "${DDOCINTO}" || die "failed to pushd"
106                 mv *.conf etc/ || die 'moving *.conf failed'
107                 popd || die "failed to popd"
108                 insinto "${DOCINTO}/demo"
109                 doins demo/Makefile demo/README demo/*.c demo/*.h || die "doins failed"
110                 if [ -d demo/.deps ]; then
111                         insinto "${DOCINTO}/demo/.deps"
112                         doins -r demo/.deps
113                 fi
114                 if use python ; then
115                         insinto "${DOCINTO}/demo/python"
116                         doins demo/python/README demo/python/*.py || die "doins failed"
117                 fi
118                 if use ruby ; then
119                         insinto "${DOCINTO}/demo/ruby"
120                         doins swig/ruby/README swig/ruby/demo/*.rb swig/ruby/demo/{cmd,inp,outp} || die "doins failed"
121                 fi
122                 docompress -x "${DOCINTO}/demo"
123         else
124                 rm -rf "${DDOCINTO}"
125         fi
126         if use python ; then
127                 pushd "${S}/swig/python" || die "failed to pushd"
128                 distutils_src_install
129                 popd || die "failed to popd"
130         fi
131         if use ruby ; then
132                 pushd "${S}/swig/ruby" || die "failed to pushd"
133                 ruby setup.rb install || die "ruby setup.rb install failed"
134                 popd || die "failed to popd"
135         fi
136         # comedi.h already installed by sci-misc/comedi-headers
137         rm "${D}/usr/include/comedi.h" || die "failed to remove comedi.h"
138 }
139
140 pkg_postinst()
141 {
142         if use python ; then
143                 distutils_pkg_postinst
144         fi
145 }
146
147 pkg_postrm()
148 {
149         distutils_pkg_postrm
150 }