| 1 | # Copyright 1999-2011 Gentoo Foundation |
1 | # Copyright 1999-2012 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.18 2011/11/24 00:04:39 vapier Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/php-ext-source-r2.eclass,v 1.30 2012/09/27 16:35:41 axs Exp $ |
| 4 | |
4 | |
| 5 | # @ECLASS: php-ext-source-r2.eclass |
5 | # @ECLASS: php-ext-source-r2.eclass |
| 6 | # @MAINTAINER: |
6 | # @MAINTAINER: |
| 7 | # Gentoo PHP team <php-bugs@gentoo.org> |
7 | # Gentoo PHP team <php-bugs@gentoo.org> |
| 8 | # @AUTHOR: |
8 | # @AUTHOR: |
| … | |
… | |
| 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 multilib |
| 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 | |
22 | |
| 23 | DEPEND=">=sys-devel/m4-1.4.3 |
23 | DEPEND=">=sys-devel/m4-1.4.3 |
| 24 | >=sys-devel/libtool-1.5.18" |
24 | >=sys-devel/libtool-1.5.18" |
| 25 | RDEPEND="" |
25 | RDEPEND="" |
| 26 | |
26 | |
| 27 | # Because of USE deps, we require at least EAPI 2 |
27 | # Because of USE deps, we require at least EAPI 2 |
| 28 | case ${EAPI} in |
28 | case ${EAPI} in |
| 29 | 2|3|4) ;; |
29 | 2|3|4|5) ;; |
| 30 | *) |
30 | *) |
| 31 | die "php-ext-source-r2 is not compatible with EAPI=${EAPI}" |
31 | die "php-ext-source-r2 is not compatible with EAPI=${EAPI}" |
| 32 | esac |
32 | esac |
| 33 | |
33 | |
| 34 | # @ECLASS-VARIABLE: PHP_EXT_NAME |
34 | # @ECLASS-VARIABLE: PHP_EXT_NAME |
| … | |
… | |
| 51 | [[ -z "${PHP_EXT_ZENDEXT}" ]] && PHP_EXT_ZENDEXT="no" |
51 | [[ -z "${PHP_EXT_ZENDEXT}" ]] && PHP_EXT_ZENDEXT="no" |
| 52 | |
52 | |
| 53 | # @ECLASS-VARIABLE: USE_PHP |
53 | # @ECLASS-VARIABLE: USE_PHP |
| 54 | # @DESCRIPTION: |
54 | # @DESCRIPTION: |
| 55 | # Lists the PHP slots compatibile the extension is compatibile with |
55 | # Lists the PHP slots compatibile the extension is compatibile with |
| 56 | [[ -z "${USE_PHP}" ]] && USE_PHP="php5-3 php5-2" |
56 | [[ -z "${USE_PHP}" ]] && USE_PHP="php5-3" |
| 57 | |
57 | |
| 58 | # @ECLASS-VARIABLE: PHP_EXT_OPTIONAL_USE |
58 | # @ECLASS-VARIABLE: PHP_EXT_OPTIONAL_USE |
| 59 | # @DESCRIPTION: |
59 | # @DESCRIPTION: |
| 60 | # If set, this is the USE flag that the PHP dependencies are behind |
60 | # If set, this is the USE flag that the PHP dependencies are behind |
| 61 | # Most commonly set as PHP_EXT_OPTIONAL_USE=php to get the dependencies behind |
61 | # Most commonly set as PHP_EXT_OPTIONAL_USE=php to get the dependencies behind |
| … | |
… | |
| 83 | ${PHP_EXT_OPTIONAL_USE}${PHP_EXT_OPTIONAL_USE:+? ( } |
83 | ${PHP_EXT_OPTIONAL_USE}${PHP_EXT_OPTIONAL_USE:+? ( } |
| 84 | || ( ${SELFDEPEND} ) |
84 | || ( ${SELFDEPEND} ) |
| 85 | ${PHPDEPEND} |
85 | ${PHPDEPEND} |
| 86 | ${PHP_EXT_OPTIONAL_USE:+ )}" |
86 | ${PHP_EXT_OPTIONAL_USE:+ )}" |
| 87 | |
87 | |
|
|
88 | DEPEND="${DEPEND} |
|
|
89 | ${PHP_EXT_OPTIONAL_USE}${PHP_EXT_OPTIONAL_USE:+? ( } |
|
|
90 | ${PHPDEPEND} |
|
|
91 | ${PHP_EXT_OPTIONAL_USE:+ )} |
|
|
92 | " |
| 88 | |
93 | |
| 89 | # @FUNCTION: php-ext-source-r2_src_unpack |
94 | # @FUNCTION: php-ext-source-r2_src_unpack |
| 90 | # @DESCRIPTION: |
95 | # @DESCRIPTION: |
| 91 | # runs standard src_unpack + _phpize |
96 | # runs standard src_unpack + _phpize |
| 92 | |
97 | |
| … | |
… | |
| 97 | # Set PHP_EXT_SKIP_PHPIZE="yes" in your ebuild if you do not want to run phpize. |
102 | # Set PHP_EXT_SKIP_PHPIZE="yes" in your ebuild if you do not want to run phpize. |
| 98 | php-ext-source-r2_src_unpack() { |
103 | php-ext-source-r2_src_unpack() { |
| 99 | unpack ${A} |
104 | unpack ${A} |
| 100 | local slot orig_s="${PHP_EXT_S}" |
105 | local slot orig_s="${PHP_EXT_S}" |
| 101 | for slot in $(php_get_slots); do |
106 | for slot in $(php_get_slots); do |
| 102 | cp -r "${orig_s}" "${WORKDIR}/${slot}" |
107 | cp -r "${orig_s}" "${WORKDIR}/${slot}" || die "Failed to copy source ${orig_s} to PHP target directory" |
| 103 | done |
108 | done |
| 104 | } |
109 | } |
| 105 | |
110 | |
| 106 | php-ext-source-r2_src_prepare() { |
111 | php-ext-source-r2_src_prepare() { |
| 107 | local slot orig_s="${PHP_EXT_S}" |
112 | local slot orig_s="${PHP_EXT_S}" |
| … | |
… | |
| 133 | |
138 | |
| 134 | # @VARIABLE: my_conf |
139 | # @VARIABLE: my_conf |
| 135 | # @DESCRIPTION: |
140 | # @DESCRIPTION: |
| 136 | # Set this in the ebuild to pass configure options to econf. |
141 | # Set this in the ebuild to pass configure options to econf. |
| 137 | php-ext-source-r2_src_configure() { |
142 | php-ext-source-r2_src_configure() { |
|
|
143 | # net-snmp creates this file #385403 |
|
|
144 | addpredict /usr/share/snmp/mibs/.index |
|
|
145 | addpredict /var/lib/net-snmp/mib_indexes |
|
|
146 | |
| 138 | local slot |
147 | local slot |
| 139 | for slot in $(php_get_slots); do |
148 | for slot in $(php_get_slots); do |
| 140 | php_init_slot_env ${slot} |
149 | php_init_slot_env ${slot} |
| 141 | # Set the correct config options |
150 | # Set the correct config options |
| 142 | econf --with-php-config=${PHPCONFIG} ${my_conf} || die "Unable to configure code to compile" |
151 | econf --with-php-config=${PHPCONFIG} ${my_conf} || die "Unable to configure code to compile" |
| … | |
… | |
| 147 | # @DESCRIPTION: |
156 | # @DESCRIPTION: |
| 148 | # Takes care of standard compile for PHP extensions (modules). |
157 | # Takes care of standard compile for PHP extensions (modules). |
| 149 | php-ext-source-r2_src_compile() { |
158 | php-ext-source-r2_src_compile() { |
| 150 | # net-snmp creates this file #324739 |
159 | # net-snmp creates this file #324739 |
| 151 | addpredict /usr/share/snmp/mibs/.index |
160 | addpredict /usr/share/snmp/mibs/.index |
|
|
161 | addpredict /var/lib/net-snmp/mib_indexes |
|
|
162 | |
| 152 | # shm extension createss a semaphore file #173574 |
163 | # shm extension createss a semaphore file #173574 |
| 153 | addpredict /session_mm_cli0.sem |
164 | addpredict /session_mm_cli0.sem |
| 154 | local slot |
165 | local slot |
| 155 | for slot in $(php_get_slots); do |
166 | for slot in $(php_get_slots); do |
| 156 | php_init_slot_env ${slot} |
167 | php_init_slot_env ${slot} |
| 157 | emake || die "Unable to make code" |
168 | emake || die "Unable to make code" |
| 158 | |
169 | |
| 159 | done |
170 | done |
| 160 | } |
171 | } |
| 161 | |
172 | |
| 162 | # @FUNCTION: php-ext-source-r1_src_install |
173 | # @FUNCTION: php-ext-source-r2_src_install |
| 163 | # @DESCRIPTION: |
174 | # @DESCRIPTION: |
| 164 | # Takes care of standard install for PHP extensions (modules). |
175 | # Takes care of standard install for PHP extensions (modules). |
| 165 | |
176 | |
| 166 | # @VARIABLE: DOCS |
177 | # @VARIABLE: DOCS |
| 167 | # @DESCRIPTION: |
178 | # @DESCRIPTION: |
| … | |
… | |
| 211 | } |
222 | } |
| 212 | |
223 | |
| 213 | php-ext-source-r2_buildinilist() { |
224 | php-ext-source-r2_buildinilist() { |
| 214 | # Work out the list of <ext>.ini files to edit/add to |
225 | # Work out the list of <ext>.ini files to edit/add to |
| 215 | if [[ -z "${PHPSAPILIST}" ]] ; then |
226 | if [[ -z "${PHPSAPILIST}" ]] ; then |
| 216 | PHPSAPILIST="apache2 cli cgi fpm" |
227 | PHPSAPILIST="apache2 cli cgi fpm embed" |
| 217 | fi |
228 | fi |
| 218 | |
229 | |
| 219 | PHPINIFILELIST="" |
230 | PHPINIFILELIST="" |
| 220 | local x |
231 | local x |
| 221 | for x in ${PHPSAPILIST} ; do |
232 | for x in ${PHPSAPILIST} ; do |