| 1 | # Copyright 1999-2011 Gentoo Foundation |
1 | # Copyright 1999-2011 Gentoo Foundation |
| 2 | # Distributed under the terms of the GNU General Public License v2 |
2 | # Distributed under the terms of the GNU General Public License v2 |
| 3 | # $Header: /var/cvsroot/gentoo-x86/eclass/Attic/php-ext-pecl-r1.eclass,v 1.14 2011/08/22 04:46:32 vapier Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/Attic/php-ext-pecl-r1.eclass,v 1.15 2011/09/03 08:25:34 scarabeus Exp $ |
| 4 | |
4 | |
| 5 | # @ECLASS: php-ext-pecl-r1.eclass |
5 | # @DEAD |
| 6 | # @MAINTAINER: |
6 | # To be removed on 2011/11/03. |
| 7 | # Gentoo PHP team <php-bugs@gentoo.org> |
7 | ewarn "Please fix your package (${CATEGORY}/${PF}) to not use ${ECLASS}.eclass" |
| 8 | # @AUTHOR: |
|
|
| 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 |
|
|
| 13 | # @DESCRIPTION: |
|
|
| 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/ |
|
|
| 17 | |
|
|
| 18 | # @ECLASS-VARIABLE: PHP_EXT_PECL_PKG |
|
|
| 19 | # @DESCRIPTION: |
|
|
| 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. |
|
|
| 23 | # |
|
|
| 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. |
|
|
| 27 | |
|
|
| 28 | # @ECLASS-VARIABLE: PHP_EXT_PECL_FILENAME |
|
|
| 29 | # @DESCRIPTION: |
|
|
| 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 |
|
|
| 32 | # the eclass. |
|
|
| 33 | # |
|
|
| 34 | # Unlike PHP_EXT_PECL_PKG, setting this variable does not affect |
|
|
| 35 | # HOMEPAGE, PHP_EXT_NAME or ${S}. |
|
|
| 36 | |
|
|
| 37 | |
|
|
| 38 | [[ -z "${PHP_EXT_PECL_PKG}" ]] && PHP_EXT_PECL_PKG="${PN/pecl-/}" |
|
|
| 39 | |
|
|
| 40 | PECL_PKG="${PHP_EXT_PECL_PKG}" |
|
|
| 41 | MY_PV="${PV/_/}" |
|
|
| 42 | PECL_PKG_V="${PECL_PKG}-${MY_PV}" |
|
|
| 43 | |
|
|
| 44 | [[ -z "${PHP_EXT_NAME}" ]] && PHP_EXT_NAME="${PECL_PKG}" |
|
|
| 45 | |
|
|
| 46 | inherit php-ext-source-r1 depend.php |
|
|
| 47 | |
|
|
| 48 | EXPORT_FUNCTIONS src_compile src_install src_test |
|
|
| 49 | |
|
|
| 50 | if [[ -n "${PHP_EXT_PECL_FILENAME}" ]] ; then |
|
|
| 51 | FILENAME="${PHP_EXT_PECL_FILENAME}-${MY_PV}.tgz" |
|
|
| 52 | else |
|
|
| 53 | FILENAME="${PECL_PKG_V}.tgz" |
|
|
| 54 | fi |
|
|
| 55 | |
|
|
| 56 | SRC_URI="http://pecl.php.net/get/${FILENAME}" |
|
|
| 57 | HOMEPAGE="http://pecl.php.net/${PECL_PKG}" |
|
|
| 58 | |
|
|
| 59 | S="${WORKDIR}/${PECL_PKG_V}" |
|
|
| 60 | |
|
|
| 61 | # @FUNCTION: php-ext-pecl-r1_src_compile |
|
|
| 62 | # @DESCRIPTION: |
|
|
| 63 | # Takes care of standard compile for PECL packages. |
|
|
| 64 | php-ext-pecl-r1_src_compile() { |
|
|
| 65 | has_php |
|
|
| 66 | php-ext-source-r1_src_compile |
|
|
| 67 | } |
|
|
| 68 | |
|
|
| 69 | # @FUNCTION: php-ext-pecl-r1_src_install |
|
|
| 70 | # @DESCRIPTION: |
|
|
| 71 | # Takes care of standard install for PECL packages. |
|
|
| 72 | # You can also simply add examples to IUSE to automagically install |
|
|
| 73 | # examples supplied with the package. |
|
|
| 74 | |
|
|
| 75 | # @VARIABLE: DOCS |
|
|
| 76 | # @DESCRIPTION: |
|
|
| 77 | # Set in ebuild if you wish to install additional, package-specific documentation. |
|
|
| 78 | php-ext-pecl-r1_src_install() { |
|
|
| 79 | has_php |
|
|
| 80 | php-ext-source-r1_src_install |
|
|
| 81 | |
|
|
| 82 | for doc in ${DOCS} "${WORKDIR}"/package.xml CREDITS ; do |
|
|
| 83 | [[ -s ${doc} ]] && dodoc-php ${doc} |
|
|
| 84 | done |
|
|
| 85 | |
|
|
| 86 | if has examples ${IUSE} && use examples ; then |
|
|
| 87 | insinto /usr/share/doc/${CATEGORY}/${PF}/examples |
|
|
| 88 | doins -r examples/* |
|
|
| 89 | fi |
|
|
| 90 | } |
|
|
| 91 | |
|
|
| 92 | # @FUNCTION: php-ext-pecl-r1_src_test |
|
|
| 93 | # @DESCRIPTION: |
|
|
| 94 | # Takes care of running any tests delivered with the PECL package. |
|
|
| 95 | # Testing is somewhat standardized across pecl extensions through phpize's |
|
|
| 96 | # run-tests.php - unfortunatly there are some quirks we need to work around |
|
|
| 97 | php-ext-pecl-r1_src_test() { |
|
|
| 98 | # Makefile passes a hard-coded -d extension_dir=./modules, we move the lib |
|
|
| 99 | # away from there in src_compile |
|
|
| 100 | ln -s "${WORKDIR}/${PHP_EXT_NAME}-default.so" "${S}/modules/${PHP_EXT_NAME}.so" |
|
|
| 101 | |
|
|
| 102 | NO_INTERACTION="yes" emake test || die "emake test failed" |
|
|
| 103 | } |
|
|