| 1 | # Copyright 1999-2007 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/php-ext-source-r2.eclass,v 1.14 2011/08/19 09:15:51 olemarkus Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/php-ext-source-r2.eclass,v 1.19 2012/01/11 18:30:36 olemarkus Exp $ |
| 4 | # |
4 | |
|
|
5 | # @ECLASS: php-ext-source-r2.eclass |
|
|
6 | # @MAINTAINER: |
|
|
7 | # Gentoo PHP team <php-bugs@gentoo.org> |
|
|
8 | # @AUTHOR: |
| 5 | # Author: Tal Peer <coredumb@gentoo.org> |
9 | # Author: Tal Peer <coredumb@gentoo.org> |
| 6 | # Author: Stuart Herbert <stuart@gentoo.org> |
10 | # Author: Stuart Herbert <stuart@gentoo.org> |
| 7 | # Author: Luca Longinotti <chtekk@gentoo.org> |
11 | # Author: Luca Longinotti <chtekk@gentoo.org> |
| 8 | # Author: Jakub Moc <jakub@gentoo.org> (documentation) |
12 | # Author: Jakub Moc <jakub@gentoo.org> (documentation) |
| 9 | # Author: Ole Markus With <olemarkus@gentoo.org> |
13 | # Author: Ole Markus With <olemarkus@gentoo.org> |
| 10 | |
|
|
| 11 | # @ECLASS: php-ext-source-r2.eclass |
|
|
| 12 | # @MAINTAINER: |
|
|
| 13 | # Gentoo PHP team <php-bugs@gentoo.org> |
|
|
| 14 | # @BLURB: A unified interface for compiling and installing standalone PHP extensions. |
14 | # @BLURB: A unified interface for compiling and installing standalone PHP extensions. |
| 15 | # @DESCRIPTION: |
15 | # @DESCRIPTION: |
| 16 | # This eclass provides a unified interface for compiling and installing standalone |
16 | # This eclass provides a unified interface for compiling and installing standalone |
| 17 | # PHP extensions (modules). |
17 | # PHP extensions (modules). |
| 18 | |
18 | |
| 19 | inherit flag-o-matic autotools |
19 | inherit flag-o-matic autotools |
| 20 | |
20 | |
| 21 | EXPORT_FUNCTIONS src_unpack src_prepare src_configure src_compile src_install |
21 | EXPORT_FUNCTIONS src_unpack src_prepare src_configure src_compile src_install |
| 22 | |
|
|
| 23 | # @ECLASS-VARIABLE: PHP_EXT_NAME |
|
|
| 24 | # @DESCRIPTION: |
|
|
| 25 | # The extension name. This must be set, otherwise the eclass dies. |
|
|
| 26 | # Only automagically set by php-ext-pecl-r1.eclass, so unless your ebuild |
|
|
| 27 | # inherits that eclass, you must set this manually before inherit. |
|
|
| 28 | [[ -z "${PHP_EXT_NAME}" ]] && die "No module name specified for the php-ext-source-r2 eclass" |
|
|
| 29 | |
22 | |
| 30 | DEPEND=">=sys-devel/m4-1.4.3 |
23 | DEPEND=">=sys-devel/m4-1.4.3 |
| 31 | >=sys-devel/libtool-1.5.18" |
24 | >=sys-devel/libtool-1.5.18" |
| 32 | RDEPEND="" |
25 | RDEPEND="" |
| 33 | |
26 | |
| 34 | # Because of USE deps, we require at least EAPI 2 |
27 | # Because of USE deps, we require at least EAPI 2 |
| 35 | case ${EAPI} in |
28 | case ${EAPI} in |
| 36 | 2|3) ;; |
29 | 2|3|4) ;; |
| 37 | *) |
30 | *) |
| 38 | die "php-ext-source-r2 is not compatible with EAPI=${EAPI}" |
31 | die "php-ext-source-r2 is not compatible with EAPI=${EAPI}" |
| 39 | esac |
32 | esac |
| 40 | |
33 | |
| 41 | # @ECLASS-VARIABLE: PHP_EXT_NAME |
34 | # @ECLASS-VARIABLE: PHP_EXT_NAME |
| … | |
… | |
| 90 | ${PHP_EXT_OPTIONAL_USE}${PHP_EXT_OPTIONAL_USE:+? ( } |
83 | ${PHP_EXT_OPTIONAL_USE}${PHP_EXT_OPTIONAL_USE:+? ( } |
| 91 | || ( ${SELFDEPEND} ) |
84 | || ( ${SELFDEPEND} ) |
| 92 | ${PHPDEPEND} |
85 | ${PHPDEPEND} |
| 93 | ${PHP_EXT_OPTIONAL_USE:+ )}" |
86 | ${PHP_EXT_OPTIONAL_USE:+ )}" |
| 94 | |
87 | |
|
|
88 | DEPEND="${DEPEND} |
|
|
89 | ${PHPDEPEND}" |
| 95 | |
90 | |
| 96 | # @FUNCTION: php-ext-source-r2_src_unpack |
91 | # @FUNCTION: php-ext-source-r2_src_unpack |
| 97 | # @DESCRIPTION: |
92 | # @DESCRIPTION: |
| 98 | # runs standard src_unpack + _phpize |
93 | # runs standard src_unpack + _phpize |
| 99 | # |
94 | |
| 100 | # @VARIABLE: PHP_EXT_SKIP_PHPIZE |
95 | # @VARIABLE: PHP_EXT_SKIP_PHPIZE |
| 101 | # @DESCRIPTION: |
96 | # @DESCRIPTION: |
| 102 | # phpize will be run by default for all ebuilds that use |
97 | # phpize will be run by default for all ebuilds that use |
| 103 | # php-ext-source-r2_src_unpack |
98 | # php-ext-source-r2_src_unpack |
| 104 | # Set PHP_EXT_SKIP_PHPIZE="yes" in your ebuild if you do not want to run phpize. |
99 | # Set PHP_EXT_SKIP_PHPIZE="yes" in your ebuild if you do not want to run phpize. |
| … | |
… | |
| 116 | php_init_slot_env ${slot} |
111 | php_init_slot_env ${slot} |
| 117 | php-ext-source-r2_phpize |
112 | php-ext-source-r2_phpize |
| 118 | done |
113 | done |
| 119 | } |
114 | } |
| 120 | |
115 | |
| 121 | # @FUNCTION php-ext-source-r2_phpize |
116 | # @FUNCTION: php-ext-source-r2_phpize |
| 122 | # @DESCRIPTION: |
117 | # @DESCRIPTION: |
| 123 | # Runs phpize and autotools in addition to the standard src_unpack |
118 | # Runs phpize and autotools in addition to the standard src_unpack |
| 124 | php-ext-source-r2_phpize() { |
119 | php-ext-source-r2_phpize() { |
| 125 | if [[ "${PHP_EXT_SKIP_PHPIZE}" != 'yes' ]] ; then |
120 | if [[ "${PHP_EXT_SKIP_PHPIZE}" != 'yes' ]] ; then |
| 126 | # Create configure out of config.m4 |
121 | # Create configure out of config.m4 |
| 127 | # I wish I could run this to solve #329071, but I cannot |
122 | # I wish I could run this to solve #329071, but I cannot |
| 128 | #autotools_run_tool ${PHPIZE} |
123 | #autotools_run_tool ${PHPIZE} |
| 129 | ${PHPIZE} |
124 | ${PHPIZE} |
| 130 | # force run of libtoolize and regeneration of related autotools |
125 | # force run of libtoolize and regeneration of related autotools |
| 131 | # files (bug 220519) |
126 | # files (bug 220519) |
| 132 | rm aclocal.m4 |
127 | rm aclocal.m4 |
| 133 | eautoreconf |
128 | eautoreconf |
| … | |
… | |
| 135 | } |
130 | } |
| 136 | |
131 | |
| 137 | # @FUNCTION: php-ext-source-r2_src_configure |
132 | # @FUNCTION: php-ext-source-r2_src_configure |
| 138 | # @DESCRIPTION: |
133 | # @DESCRIPTION: |
| 139 | # Takes care of standard configure for PHP extensions (modules). |
134 | # Takes care of standard configure for PHP extensions (modules). |
| 140 | # |
135 | |
| 141 | # @VARIABLE: my_conf |
136 | # @VARIABLE: my_conf |
| 142 | # @DESCRIPTION: |
137 | # @DESCRIPTION: |
| 143 | # Set this in the ebuild to pass configure options to econf. |
138 | # Set this in the ebuild to pass configure options to econf. |
| 144 | php-ext-source-r2_src_configure() { |
139 | php-ext-source-r2_src_configure() { |
| 145 | local slot |
140 | local slot |
| … | |
… | |
| 247 | |
242 | |
| 248 | |
243 | |
| 249 | # Add the needed lines to the <ext>.ini files |
244 | # Add the needed lines to the <ext>.ini files |
| 250 | local file |
245 | local file |
| 251 | if [[ "${PHP_EXT_INI}" = "yes" ]] ; then |
246 | if [[ "${PHP_EXT_INI}" = "yes" ]] ; then |
| 252 | for file in ${PHPINIFILELIST}; do |
247 | for file in ${PHPINIFILELIST}; do |
| 253 | php-ext-source-r2_addextension "${PHP_EXT_NAME}.so" "${file}" |
248 | php-ext-source-r2_addextension "${PHP_EXT_NAME}.so" "${file}" |
| 254 | done |
249 | done |
| 255 | fi |
250 | fi |
| 256 | |
|
|
| 257 | |
251 | |
| 258 | # Symlink the <ext>.ini files from ext/ to ext-active/ |
252 | # Symlink the <ext>.ini files from ext/ to ext-active/ |
| 259 | local inifile |
253 | local inifile |
| 260 | for inifile in ${PHPINIFILELIST} ; do |
254 | for inifile in ${PHPINIFILELIST} ; do |
| 261 | if [[ -n "${PHP_EXT_INIFILE}" ]]; then |
255 | if [[ -n "${PHP_EXT_INIFILE}" ]]; then |
| … | |
… | |
| 273 | done |
267 | done |
| 274 | |
268 | |
| 275 | # Add support for installing PHP files into a version dependant directory |
269 | # Add support for installing PHP files into a version dependant directory |
| 276 | PHP_EXT_SHARED_DIR="/usr/share/php/${PHP_EXT_NAME}" |
270 | PHP_EXT_SHARED_DIR="/usr/share/php/${PHP_EXT_NAME}" |
| 277 | done |
271 | done |
| 278 | |
|
|
| 279 | } |
272 | } |
| 280 | |
273 | |
| 281 | php-ext-source-r2_addextension() { |
274 | php-ext-source-r2_addextension() { |
| 282 | if [[ "${PHP_EXT_ZENDEXT}" = "yes" ]] ; then |
275 | if [[ "${PHP_EXT_ZENDEXT}" = "yes" ]] ; then |
| 283 | # We need the full path for ZendEngine extensions |
276 | # We need the full path for ZendEngine extensions |