1 # Copyright 1999-2017 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
6 PYTHON_COMPAT=( python2_7 )
9 inherit autotools eutils python-r1 toolchain-funcs multilib-minimal
11 DESCRIPTION="XSLT libraries and tools"
12 HOMEPAGE="http://www.xmlsoft.org/"
13 SRC_URI="ftp://xmlsoft.org/${PN}/${P}.tar.gz"
17 KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
19 IUSE="crypt debug examples python static-libs"
20 REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
23 >=dev-libs/libxml2-2.9.1-r5:2[${MULTILIB_USEDEP}]
24 crypt? ( >=dev-libs/libgcrypt-1.5.3:0=[${MULTILIB_USEDEP}] )
27 dev-libs/libxml2:2[python,${PYTHON_USEDEP}] )
31 MULTILIB_CHOST_TOOLS=(
35 MULTILIB_WRAPPED_HEADERS=(
36 /usr/include/libxslt/xsltconfig.h
42 DOCS=( AUTHORS ChangeLog FEATURES NEWS README TODO )
44 # https://bugzilla.gnome.org/show_bug.cgi?id=684621
45 eapply "${FILESDIR}"/${PN}.m4-${PN}-1.1.26.patch
47 # Simplify python setup
48 eapply "${FILESDIR}"/${PN}-1.1.28-simplify-python.patch
49 eapply "${FILESDIR}"/${PN}-1.1.28-disable-static-modules.patch
51 mv configure.{in,ac} || die
54 # If eautoreconf'd with new autoconf, then epunt_cxx is not necessary
55 # and it is propably otherwise too if upstream generated with new
58 # But Prefix always needs elibtoolize if not eautoreconf'd.
62 multilib_src_configure() {
64 ECONF_SOURCE="${S}" econf \
65 --with-html-dir="${EPREFIX}"/usr/share/doc/${PF} \
66 --with-html-subdir=html \
67 $(use_with crypt crypto) \
69 $(use_with debug mem-debug) \
70 $(use_enable static-libs static) \
74 libxslt_py_configure() {
75 mkdir -p "${BUILD_DIR}" || die # ensure python build dirs exist
76 run_in_build_dir libxslt_configure --with-python
79 libxslt_configure --without-python # build python bindings separately
81 if multilib_is_native_abi && use python; then
82 python_foreach_impl libxslt_py_configure
86 multilib_src_compile() {
88 multilib_is_native_abi && use python && libxslt_foreach_py_emake all
93 multilib_is_native_abi && use python && libxslt_foreach_py_emake test
96 multilib_src_install() {
97 # "default" does not work here - docs are installed by multilib_src_install_all
98 emake DESTDIR="${D}" install
100 if multilib_is_native_abi && use python; then
101 libxslt_foreach_py_emake \
103 docsdir="${EPREFIX}"/usr/share/doc/${PF}/python \
104 EXAMPLE_DIR="${EPREFIX}"/usr/share/doc/${PF}/python/examples \
106 python_foreach_impl python_optimize
110 multilib_src_install_all() {
113 if ! use examples; then
114 rm -rf "${ED}"/usr/share/doc/${PF}/examples
115 rm -rf "${ED}"/usr/share/doc/${PF}/python/examples
118 prune_libtool_files --modules
121 libxslt_foreach_py_emake() {
123 pushd "${BUILD_DIR}/python" > /dev/null || die
127 local native_builddir=${BUILD_DIR}
128 python_foreach_impl libxslt_py_emake top_builddir="${native_builddir}" "$@"