1 # Copyright 1999-2015 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
5 # @ECLASS: php-ext-pecl-r2.eclass
7 # Gentoo PHP team <php-bugs@gentoo.org>
9 # Author: Tal Peer <coredumb@gentoo.org>
10 # Author: Luca Longinotti <chtekk@gentoo.org>
11 # Author: Jakub Moc <jakub@gentoo.org>
12 # @BLURB: A uniform way of installing PECL extensions
14 # This eclass should be used by all dev-php[45]/pecl-* ebuilds
15 # as a uniform way of installing PECL extensions.
16 # For more information about PECL, see http://pecl.php.net/
18 # @ECLASS-VARIABLE: PHP_EXT_PECL_PKG
20 # Set in ebuild before inheriting this eclass if the tarball name
21 # differs from ${PN/pecl-/} so that SRC_URI and HOMEPAGE gets set
22 # correctly by the eclass.
24 # Setting this variable manually also affects PHP_EXT_NAME and ${S}
25 # unless you override those in ebuild. Also see PHP_EXT_PECL_FILENAME
26 # if this is not desired for whatever reason.
28 # @ECLASS-VARIABLE: PHP_EXT_PECL_FILENAME
30 # Set in ebuild before inheriting this eclass if the tarball name
31 # differs from ${PN/pecl-/} so that SRC_URI gets set correctly by
34 # Unlike PHP_EXT_PECL_PKG, setting this variable does not affect
35 # HOMEPAGE, PHP_EXT_NAME or ${S}.
38 [[ -z "${PHP_EXT_PECL_PKG}" ]] && PHP_EXT_PECL_PKG="${PN/pecl-/}"
41 [[ -z ${MY_PV} ]] && MY_PV=${PV}
43 PECL_PKG="${PHP_EXT_PECL_PKG}"
45 PECL_PKG_V="${PECL_PKG}-${MY_PV}"
47 [[ -z "${PHP_EXT_NAME}" ]] && PHP_EXT_NAME="${PECL_PKG}"
49 S="${WORKDIR}/${PECL_PKG_V}"
51 inherit php-ext-source-r2
53 EXPORT_FUNCTIONS src_compile src_install src_test
55 if [[ -n "${PHP_EXT_PECL_FILENAME}" ]] ; then
56 FILENAME="${PHP_EXT_PECL_FILENAME}-${MY_PV}.tgz"
58 FILENAME="${PECL_PKG_V}.tgz"
61 SRC_URI="http://pecl.php.net/get/${FILENAME}"
62 HOMEPAGE="http://pecl.php.net/${PECL_PKG}"
65 # @FUNCTION: php-ext-pecl-r2_src_compile
67 # Takes care of standard compile for PECL packages.
68 php-ext-pecl-r2_src_compile() {
69 php-ext-source-r2_src_compile
72 # @FUNCTION: php-ext-pecl-r2_src_install
74 # Takes care of standard install for PECL packages.
75 # You can also simply add examples to IUSE to automagically install
76 # examples supplied with the package.
80 # Set in ebuild if you wish to install additional, package-specific documentation.
81 php-ext-pecl-r2_src_install() {
82 php-ext-source-r2_src_install
84 for doc in ${DOCS} "${WORKDIR}"/package.xml CREDITS ; do
85 [[ -s ${doc} ]] && dodoc ${doc}
88 if has examples ${IUSE} && use examples ; then
89 insinto /usr/share/doc/${CATEGORY}/${PF}/examples
95 # @FUNCTION: php-ext-pecl-r2_src_test
97 # Takes care of running any tests delivered with the PECL package.
98 # Standard phpize generates a run-tests.php file that is executed in make test
99 # We only need to force it to non-interactive mode
100 php-ext-pecl-r2_src_test() {
101 for slot in `php_get_slots`; do
102 php_init_slot_env ${slot}
103 NO_INTERACTION="yes" emake test || die "emake test failed for slot ${slot}"