1 # Copyright 1999-2016 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
7 PYTHON_COMPAT=( python2_7 )
8 PYTHON_REQ_USE="threads"
14 PHP_EXT_OPTIONAL_USE="php"
16 #mono violates sandbox, we disable it until we figure this out
17 #inherit java-pkg-opt-2 mono-env php-ext-source-r2 python
18 inherit java-pkg-opt-2 php-ext-source-r2 python-r1 toolchain-funcs
20 DESCRIPTION="SWIG and JNI bindings for Xapian"
21 HOMEPAGE="http://www.xapian.org/"
22 SRC_URI="http://oligarchy.co.uk/xapian/${PV}/${P}.tar.xz"
26 KEYWORDS="~alpha amd64 arm ~ia64 ~mips ~ppc ~ppc64 ~sparc x86"
27 #IUSE="java lua mono perl php python ruby tcl"
28 #REQUIRED_USE="|| ( java lua mono perl php python ruby tcl )"
29 IUSE="java lua perl php python ruby tcl"
30 REQUIRED_USE="|| ( java lua perl php python ruby tcl )"
32 COMMONDEPEND="dev-libs/xapian:0/1.2.22
33 lua? ( dev-lang/lua:0 )
34 perl? ( dev-lang/perl:= )
35 ruby? ( dev-lang/ruby:= )
36 tcl? ( >=dev-lang/tcl-8.1:0= )"
37 # mono? ( >=dev-lang/mono-1.0.8 )
38 DEPEND="${COMMONDEPEND}
40 java? ( >=virtual/jdk-1.3 )"
41 RDEPEND="${COMMONDEPEND}
42 java? ( >=virtual/jre-1.3 )"
45 java-pkg-opt-2_pkg_setup
53 java-pkg-opt-2_src_prepare
56 -e 's/$(JAVAC)/$(JAVAC) $(JAVACFLAGS)/' \
57 -i java{/,/org/xapian/errors/,/org/xapian/}Makefile.in || die "sed failed"
62 -e 's:\(^pkgpylib_DATA = xapian/__init__.py\).*:\1:' \
63 -e 's|\(^xapian/__init__.py: modern/xapian.py\)|\1 xapian/_xapian.so|' \
64 -i python/Makefile.in || die "sed failed"
70 CXXFLAGS="${CXXFLAGS} $(java-pkg_get-jni-cflags)"
74 export PERL_ARCH="$(perl -MConfig -e 'print $Config{installvendorarch}')"
75 export PERL_LIB="$(perl -MConfig -e 'print $Config{installvendorlib}')"
79 export LUA_LIB="$($(tc-getPKG_CONFIG) --variable=INSTALL_CMOD lua)"
90 # $(use_with mono csharp) \
92 # PHP and Python bindings are built/tested/installed manually.
93 sed -e "/SUBDIRS =/s/ php//" -i Makefile || die "sed Makefile"
94 sed -e "/SUBDIRS =/s/ python//" -i Makefile || die "sed Makefile"
102 for php_slot in $(php_get_slots); do
103 cp -r php php-${php_slot}
104 emake -C php-${php_slot} \
105 PHP="${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php" \
106 PHP_CONFIG="${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php-config" \
107 PHP_EXTENSION_DIR="$("${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php-config" --extension-dir)" \
108 PHP_INC="$("${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php-config" --includes)"
116 # PYTHON="$(PYTHON)" \
117 # PYTHON_INC="$(python_get_includedir)" \
118 # PYTHON_LIB="$(python_get_libdir)" \
119 # PYTHON_SO="$("$(PYTHON)" -c 'import distutils.sysconfig; print(distutils.sysconfig.get_config_vars("SO")[0])')" \
120 # pkgpylibdir="$(python_get_sitedir)/xapian"
124 PYTHON_INC="$(python_get_includedir)" \
125 pkgpylibdir="$(python_get_sitedir)/xapian"
128 python_foreach_impl building
137 for php_slot in $(php_get_slots); do
138 emake -C php-${php_slot} \
139 PHP="${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php" \
140 PHP_CONFIG="${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php-config" \
141 PHP_EXTENSION_DIR="$("${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php-config" --extension-dir)" \
142 PHP_INC="$("${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php-config" --includes)" \
150 PYTHON_INC="$(python_get_includedir)" \
151 pkgpylibdir="$(python_get_sitedir)/xapian" \
155 python_foreach_impl testing
160 emake DESTDIR="${D}" install
163 java-pkg_dojar java/built/xapian_jni.jar
164 # TODO: make the build system not install this...
165 java-pkg_doso "${D}/${S}/java/built/libxapian_jni.so"
166 rm "${D}/${S}/java/built/libxapian_jni.so"
167 rmdir -p "${D}/${S}/java/built"
168 rmdir -p "${D}/${S}/java/native"
173 for php_slot in $(php_get_slots); do
174 emake DESTDIR="${D}" -C php-${php_slot} \
175 PHP="${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php" \
176 PHP_CONFIG="${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php-config" \
177 PHP_EXTENSION_DIR="$("${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php-config" --extension-dir)" \
178 PHP_INC="$("${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php-config" --includes)" \
182 php-ext-source-r2_createinifiles
189 PYTHON_INC="$(python_get_includedir)" \
190 pkgpylibdir="$(python_get_sitedir)/xapian" \
194 python_foreach_impl installation
197 # For some USE combinations this directory is not created
198 if [[ -d "${D}/usr/share/doc/xapian-bindings" ]]; then
199 mv "${D}/usr/share/doc/xapian-bindings" "${D}/usr/share/doc/${PF}"
202 dodoc AUTHORS HACKING NEWS TODO README