/[gentoo-x86]/eclass/depend.php.eclass
Gentoo

Contents of /eclass/depend.php.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.25 - (hide annotations) (download)
Tue Feb 26 16:26:08 2008 UTC (6 years, 6 months ago) by armin76
Branch: MAIN
Changes since 1.24: +8 -16 lines
import from php overlay

1 chtekk 1.18 # Copyright 1999-2007 Gentoo Foundation
2 stuart 1.1 # Distributed under the terms of the GNU General Public License v2
3 armin76 1.25 # $Header: /var/cvsroot/gentoo-x86/eclass/depend.php.eclass,v 1.24 2008/02/11 20:47:35 armin76 Exp $
4 jokey 1.21
5     # Author: Stuart Herbert <stuart@gentoo.org>
6     # Author: Luca Longinotti <chtekk@gentoo.org>
7     # Author: Jakub Moc <jakub@gentoo.org> (documentation)
8    
9     # @ECLASS: depend.php.eclass
10     # @MAINTAINER:
11     # Gentoo PHP team <php-bugs@gentoo.org>
12     # @BLURB: Functions to allow ebuilds to depend on php[45] and check for specific features.
13     # @DESCRIPTION:
14 swegener 1.23 # This eclass provides functions that allow ebuilds to depend on php[45] and check
15 jokey 1.21 # for specific PHP features, SAPIs etc. Also provides dodoc-php wrapper to install
16     # documentation for PHP packages to php-specific location.
17 chtekk 1.18
18 stuart 1.1
19 chtekk 1.12 inherit eutils phpconfutils
20 stuart 1.1
21 trapni 1.4 # PHP4-only depend functions
22 jokey 1.21
23     # @FUNCTION: need_php4_cli
24     # @DESCRIPTION:
25     # Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP4
26     # with cli SAPI.
27 chtekk 1.12 need_php4_cli() {
28 stuart 1.1 DEPEND="${DEPEND} =virtual/php-4*"
29     RDEPEND="${RDEPEND} =virtual/php-4*"
30 chtekk 1.12 PHP_VERSION="4"
31 stuart 1.1 }
32    
33 jokey 1.21 # @FUNCTION: need_php4_httpd
34     # @DESCRIPTION:
35     # Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP4
36     # with either cgi or apache2 SAPI.
37 chtekk 1.12 need_php4_httpd() {
38 stuart 1.1 DEPEND="${DEPEND} =virtual/httpd-php-4*"
39     RDEPEND="${RDEPEND} =virtual/httpd-php-4*"
40 chtekk 1.12 PHP_VERSION="4"
41 stuart 1.1 }
42    
43 jokey 1.21 # @FUNCTION: need_php4
44     # @DESCRIPTION:
45     # Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP4
46     # (with any SAPI).
47 chtekk 1.12 need_php4() {
48 stuart 1.1 DEPEND="${DEPEND} =dev-lang/php-4*"
49     RDEPEND="${RDEPEND} =dev-lang/php-4*"
50 chtekk 1.12 PHP_VERSION="4"
51 stuart 1.1 PHP_SHARED_CAT="php4"
52     }
53    
54     # common settings go in here
55 chtekk 1.12 uses_php4() {
56 stuart 1.1 # cache this
57     libdir=$(get_libdir)
58    
59     PHPIZE="/usr/${libdir}/php4/bin/phpize"
60     PHPCONFIG="/usr/${libdir}/php4/bin/php-config"
61     PHPCLI="/usr/${libdir}/php4/bin/php"
62     PHPCGI="/usr/${libdir}/php4/bin/php-cgi"
63 armin76 1.22 PHP_PKG="$(best_version =dev-lang/php-4*)"
64 stuart 1.1 PHPPREFIX="/usr/${libdir}/php4"
65 armin76 1.22 EXT_DIR="$(${PHPCONFIG} --extension-dir 2>/dev/null)"
66 stuart 1.1
67     einfo
68     einfo "Using ${PHP_PKG}"
69     einfo
70     }
71    
72 trapni 1.4 # PHP5-only depend functions
73 jokey 1.21
74     # @FUNCTION: need_php5_cli
75     # @DESCRIPTION:
76     # Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP5
77     # with cli SAPI.
78 chtekk 1.12 need_php5_cli() {
79 stuart 1.1 DEPEND="${DEPEND} =virtual/php-5*"
80     RDEPEND="${RDEPEND} =virtual/php-5*"
81 chtekk 1.12 PHP_VERSION="5"
82 stuart 1.1 }
83    
84 jokey 1.21 # @FUNCTION: need_php5_httpd
85     # @DESCRIPTION:
86     # Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP5
87     # with either cgi or apache2 SAPI.
88 chtekk 1.12 need_php5_httpd() {
89 stuart 1.1 DEPEND="${DEPEND} =virtual/httpd-php-5*"
90     RDEPEND="${RDEPEND} =virtual/httpd-php-5*"
91 chtekk 1.12 PHP_VERSION="5"
92 stuart 1.1 }
93    
94 jokey 1.21 # @FUNCTION: need_php5
95     # @DESCRIPTION:
96     # Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP5
97     # (with any SAPI).
98 chtekk 1.12 need_php5() {
99 stuart 1.1 DEPEND="${DEPEND} =dev-lang/php-5*"
100     RDEPEND="${RDEPEND} =dev-lang/php-5*"
101 chtekk 1.12 PHP_VERSION="5"
102 stuart 1.1 PHP_SHARED_CAT="php5"
103     }
104    
105     # common settings go in here
106 chtekk 1.12 uses_php5() {
107 stuart 1.1 # cache this
108     libdir=$(get_libdir)
109    
110     PHPIZE="/usr/${libdir}/php5/bin/phpize"
111     PHPCONFIG="/usr/${libdir}/php5/bin/php-config"
112     PHPCLI="/usr/${libdir}/php5/bin/php"
113     PHPCGI="/usr/${libdir}/php5/bin/php-cgi"
114 armin76 1.22 PHP_PKG="$(best_version =dev-lang/php-5*)"
115 stuart 1.1 PHPPREFIX="/usr/${libdir}/php5"
116 armin76 1.22 EXT_DIR="$(${PHPCONFIG} --extension-dir 2>/dev/null)"
117 stuart 1.1
118     einfo
119     einfo "Using ${PHP_PKG}"
120     einfo
121     }
122    
123 trapni 1.4 # general PHP depend functions
124 jokey 1.21
125     # @FUNCTION: need_php_cli
126     # @DESCRIPTION:
127     # Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP
128     # (any version) with cli SAPI.
129 chtekk 1.12 need_php_cli() {
130 trapni 1.4 DEPEND="${DEPEND} virtual/php"
131     RDEPEND="${RDEPEND} virtual/php"
132     }
133    
134 jokey 1.21 # @FUNCTION: need_php_httpd
135     # @DESCRIPTION:
136     # Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP
137     # (any version) with either cgi or apache2 SAPI.
138 chtekk 1.12 need_php_httpd() {
139 trapni 1.4 DEPEND="${DEPEND} virtual/httpd-php"
140     RDEPEND="${RDEPEND} virtual/httpd-php"
141     }
142    
143 jokey 1.21 # @FUNCTION: need_php
144     # @DESCRIPTION:
145     # Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP
146     # (any version with any SAPI).
147 chtekk 1.12 need_php() {
148 stuart 1.1 DEPEND="${DEPEND} dev-lang/php"
149     RDEPEND="${RDEPEND} dev-lang/php"
150     PHP_SHARED_CAT="php"
151     }
152    
153 jokey 1.21 # @FUNCTION: need_php_by_category
154     # @DESCRIPTION:
155     # Set this after setting DEPEND/RDEPEND in your ebuild to depend on PHP version
156     # determined by ${CATEGORY} - any PHP version, PHP4 or PHP5 for dev-php, dev-php4 and
157     # dev-php5, respectively.
158 chtekk 1.12 need_php_by_category() {
159 stuart 1.1 case "${CATEGORY}" in
160     dev-php) need_php ;;
161     dev-php4) need_php4 ;;
162     dev-php5) need_php5 ;;
163 chtekk 1.18 *) die "Version of PHP required by packages in category ${CATEGORY} unknown"
164 stuart 1.1 esac
165     }
166    
167 chtekk 1.12
168 jokey 1.21 # @FUNCTION: has_php
169     # @DESCRIPTION:
170     # Call this function from your pkg_setup, src_compile, src_install etc. if you
171 swegener 1.23 # need to know which PHP version is being used and where the PHP binaries/data
172 jokey 1.21 # are installed.
173 chtekk 1.12 has_php() {
174 armin76 1.25 # Detect which PHP version we have installed
175     if has_version '=dev-lang/php-5*' ; then
176     PHP_VERSION="5"
177     elif has_version '=dev-lang/php-4*' ; then
178     PHP_VERSION="4"
179     else
180     die "Unable to find an installed dev-lang/php package"
181 chtekk 1.12 fi
182    
183     # If we get here, then PHP_VERSION tells us which version of PHP we
184     # want to use
185     uses_php${PHP_VERSION}
186     }
187    
188 jokey 1.21 # @FUNCTION: require_php_sapi_from
189     # @USAGE: <list of SAPIs>
190     # @DESCRIPTION:
191 chtekk 1.12 # Call this function from pkg_setup if your package only works with
192 jokey 1.21 # specific SAPI(s) and specify a list of PHP SAPI USE flags that are
193     # required (one or more from cli, cgi, apache2) as arguments.
194     # Returns if any of the listed SAPIs have been installed, dies if none
195     # of them is available.
196     #
197     # Unfortunately, if you want to be really sure that the required SAPI is
198     # provided by PHP, you will have to use this function or similar ones (like
199     # require_php_cli or require_php_cgi) in pkg_setup until we are able to
200 swegener 1.23 # depend on USE flags being enabled. The above described need_php[45]_cli
201 jokey 1.21 # and need_php[45]_httpd functions cannot guarantee these requirements.
202     # See Bug 2272 for details.
203 chtekk 1.12 require_php_sapi_from() {
204 stuart 1.1 has_php
205    
206 chtekk 1.12 local has_sapi="0"
207 stuart 1.1 local x
208    
209     einfo "Checking for compatible SAPI(s)"
210    
211     for x in $@ ; do
212 chtekk 1.13 if built_with_use =${PHP_PKG} ${x} || phpconfutils_built_with_use =${PHP_PKG} ${x} ; then
213 stuart 1.1 einfo " Discovered compatible SAPI ${x}"
214 chtekk 1.12 has_sapi="1"
215 stuart 1.1 fi
216     done
217    
218 chtekk 1.12 if [[ "${has_sapi}" == "1" ]] ; then
219 stuart 1.1 return
220     fi
221    
222     eerror
223     eerror "${PHP_PKG} needs to be re-installed with one of the following"
224     eerror "USE flags enabled:"
225     eerror
226     eerror " $@"
227     eerror
228 chtekk 1.12 die "No compatible PHP SAPIs found"
229 stuart 1.1 }
230    
231 jokey 1.21 # @FUNCTION: require_php_with_use
232     # @USAGE: <list of USE flags>
233     # @DESCRIPTION:
234 chtekk 1.12 # Call this function from pkg_setup if your package requires PHP compiled
235 jokey 1.21 # with specific USE flags. Returns if all of the listed USE flags are enabled.
236     # Dies if any of the listed USE flags are disabled.
237 stuart 1.1
238 jokey 1.21 # @VARIABLE: PHPCHECKNODIE
239     # @DESCRIPTION:
240     # You can set PHPCHECKNODIE to non-empty value in your ebuild to chain multiple
241     # require_php_with_(any)_use checks without making the ebuild die on every failure.
242 swegener 1.23 # This is useful in cases when certain PHP features are only required if specific
243 jokey 1.21 # USE flag(s) are enabled for that ebuild.
244     # @CODE
245     # Example:
246     #
247     # local flags="pcre session snmp sockets wddx"
248     # use mysql && flags="${flags} mysql"
249     # use postgres && flags="${flags} postgres"
250     # if ! PHPCHECKNODIE="yes" require_php_with_use ${flags} \
251     # || ! PHPCHECKNODIE="yes" require_php_with_any_use gd gd-external ; then
252     # die "Re-install ${PHP_PKG} with ${flags} and either gd or gd-external"
253     # fi
254     # @CODE
255 chtekk 1.12 require_php_with_use() {
256 stuart 1.1 has_php
257    
258 chtekk 1.11 local missing_use=""
259 stuart 1.1 local x
260    
261 chtekk 1.14 einfo "Checking for required PHP feature(s) ..."
262 stuart 1.1
263     for x in $@ ; do
264 chtekk 1.12 if ! built_with_use =${PHP_PKG} ${x} && ! phpconfutils_built_with_use =${PHP_PKG} ${x} ; then
265 chtekk 1.14 einfo " Discovered missing USE flag: ${x}"
266 stuart 1.1 missing_use="${missing_use} ${x}"
267     fi
268     done
269    
270 chtekk 1.15 if [[ -z "${missing_use}" ]] ; then
271     if [[ -z "${PHPCHECKNODIE}" ]] ; then
272     return
273     else
274     return 0
275     fi
276 stuart 1.1 fi
277    
278 chtekk 1.15 if [[ -z "${PHPCHECKNODIE}" ]] ; then
279     eerror
280     eerror "${PHP_PKG} needs to be re-installed with all of the following"
281     eerror "USE flags enabled:"
282     eerror
283     eerror " $@"
284     eerror
285     die "Missing PHP USE flags found"
286     else
287     return 1
288     fi
289 stuart 1.1 }
290    
291 jokey 1.21 # @FUNCTION: require_php_with_any_use
292     # @USAGE: <list of USE flags>
293     # @DESCRIPTION:
294     # Call this function from pkg_setup if your package requires PHP compiled with
295     # any of specified USE flags. Returns if any of the listed USE flags are enabled.
296     # Dies if all of the listed USE flags are disabled.
297 chtekk 1.12 require_php_with_any_use() {
298     has_php
299 stuart 1.1
300 chtekk 1.12 local missing_use=""
301     local x
302 hollow 1.3
303 chtekk 1.14 einfo "Checking for required PHP feature(s) ..."
304 stuart 1.1
305 chtekk 1.12 for x in $@ ; do
306     if built_with_use =${PHP_PKG} ${x} || phpconfutils_built_with_use =${PHP_PKG} ${x} ; then
307     einfo " USE flag ${x} is enabled, ok ..."
308     return
309 stuart 1.1 else
310 chtekk 1.12 missing_use="${missing_use} ${x}"
311 stuart 1.1 fi
312 chtekk 1.12 done
313    
314 chtekk 1.15 if [[ -z "${missing_use}" ]] ; then
315     if [[ -z "${PHPCHECKNODIE}" ]] ; then
316     return
317     else
318     return 0
319     fi
320 stuart 1.1 fi
321    
322 chtekk 1.15 if [[ -z "${PHPCHECKNODIE}" ]] ; then
323     eerror
324     eerror "${PHP_PKG} needs to be re-installed with any of the following"
325     eerror "USE flags enabled:"
326     eerror
327     eerror " $@"
328     eerror
329     die "Missing PHP USE flags found"
330     else
331     return 1
332     fi
333 stuart 1.1 }
334    
335     # ========================================================================
336     # has_*() functions
337     #
338 chtekk 1.12 # These functions return 0 if the condition is satisfied, 1 otherwise
339 stuart 1.1 # ========================================================================
340    
341 jokey 1.21 # @FUNCTION: has_zts
342     # @DESCRIPTION:
343     # Check if our PHP was compiled with ZTS (Zend Thread Safety) enabled.
344     # @RETURN: 0 if true, 1 otherwise
345 chtekk 1.12 has_zts() {
346 stuart 1.1 has_php
347    
348 chtekk 1.13 if built_with_use =${PHP_PKG} apache2 threads || phpconfutils_built_with_use =${PHP_PKG} apache2 threads ; then
349 stuart 1.1 return 0
350     fi
351    
352     return 1
353     }
354    
355 jokey 1.21 # @FUNCTION: has_debug
356     # @DESCRIPTION:
357     # Check if our PHP was built with debug support enabled.
358     # @RETURN: 0 if true, 1 otherwise
359 chtekk 1.18 has_debug() {
360 hollow 1.3 has_php
361    
362 chtekk 1.18 if built_with_use =${PHP_PKG} debug || phpconfutils_built_with_use =${PHP_PKG} debug ; then
363 hollow 1.3 return 0
364     fi
365    
366     return 1
367     }
368    
369 jokey 1.21 # @FUNCTION: has_concurrentmodphp
370     # @DESCRIPTION:
371     # Check if our PHP was built with the concurrentmodphp support enabled.
372     # @RETURN: 0 if true, 1 otherwise
373 chtekk 1.18 has_concurrentmodphp() {
374 chtekk 1.12 has_php
375    
376 chtekk 1.18 if built_with_use =${PHP_PKG} apache2 concurrentmodphp || phpconfutils_built_with_use =${PHP_PKG} apache2 concurrentmodphp ; then
377 chtekk 1.12 return 0
378     fi
379    
380     return 1
381     }
382    
383 stuart 1.1 # ========================================================================
384     # require_*() functions
385     #
386 chtekk 1.12 # These functions die() if PHP was built without the required features
387 stuart 1.1 # ========================================================================
388    
389 jokey 1.21 # @FUNCTION: require_pdo
390     # @DESCRIPTION:
391     # Require a PHP built with PDO support (PHP5 only).
392 armin76 1.22 # This function is now redundant and DEPRECATED since
393     # pdo-external use flag and pecl-pdo-* ebuilds were removed.
394     # You should use require_php_with_use pdo instead now.
395 jokey 1.21 # @RETURN: die if feature is missing
396 chtekk 1.12 require_pdo() {
397 stuart 1.1 has_php
398    
399 chtekk 1.12 # Do we have PHP5 installed?
400     if [[ "${PHP_VERSION}" == "4" ]] ; then
401 stuart 1.1 eerror
402 hollow 1.3 eerror "This package requires PDO."
403     eerror "PDO is only available for PHP 5."
404 armin76 1.22 eerror "You must install >=dev-lang/php-5.1 with USE=\"pdo\"."
405     eerror "pdo USE flags turned on."
406 stuart 1.1 eerror
407     die "PHP 5 not installed"
408     fi
409    
410 chtekk 1.12 # Was PHP5 compiled with internal PDO support?
411 chtekk 1.13 if built_with_use =${PHP_PKG} pdo || phpconfutils_built_with_use =${PHP_PKG} pdo ; then
412 stuart 1.1 return
413 armin76 1.22 else
414     eerror
415     eerror "No PDO extension for PHP found."
416     eerror "Please note that PDO only exists for PHP 5."
417     eerror "Please install a PDO extension for PHP 5."
418     eerror "You must install >=dev-lang/php-5.1 with USE=\"pdo\"."
419     eerror
420     die "No PDO extension for PHP 5 found"
421 stuart 1.1 fi
422     }
423    
424 jokey 1.21 # @FUNCTION: require_php_cli
425     # @DESCRIPTION:
426     # Determines which installed PHP version has the CLI SAPI enabled.
427     # Useful for PEAR stuff, or anything which needs to run PHP script
428     # depending on the CLI SAPI.
429     # @RETURN: die if feature is missing
430 chtekk 1.12 require_php_cli() {
431     # If PHP_PKG is set, then we have remembered our PHP settings
432 stuart 1.1 # from last time
433 chtekk 1.11 if [[ -n ${PHP_PKG} ]] ; then
434 stuart 1.1 return
435     fi
436    
437 chtekk 1.12 local PHP_PACKAGE_FOUND=""
438    
439     # Detect which PHP version we have installed
440 chtekk 1.6 if has_version '=dev-lang/php-4*' ; then
441 chtekk 1.12 PHP_PACKAGE_FOUND="1"
442 armin76 1.22 pkg="$(best_version '=dev-lang/php-4*')"
443 chtekk 1.13 if built_with_use =${pkg} cli || phpconfutils_built_with_use =${pkg} cli ; then
444 chtekk 1.12 PHP_VERSION="4"
445 chtekk 1.6 fi
446 sebastian 1.10 fi
447    
448     if has_version '=dev-lang/php-5*' ; then
449 chtekk 1.12 PHP_PACKAGE_FOUND="1"
450 armin76 1.22 pkg="$(best_version '=dev-lang/php-5*')"
451 chtekk 1.13 if built_with_use =${pkg} cli || phpconfutils_built_with_use =${pkg} cli ; then
452 chtekk 1.12 PHP_VERSION="5"
453 stuart 1.1 fi
454 sebastian 1.10 fi
455    
456 chtekk 1.11 if [[ -z ${PHP_PACKAGE_FOUND} ]] ; then
457 stuart 1.1 die "Unable to find an installed dev-lang/php package"
458     fi
459    
460 chtekk 1.11 if [[ -z ${PHP_VERSION} ]] ; then
461 hoffie 1.20 die "No PHP CLI installed. Re-emerge dev-lang/php with USE=cli."
462 stuart 1.1 fi
463    
464 chtekk 1.12 # If we get here, then PHP_VERSION tells us which version of PHP we
465 stuart 1.1 # want to use
466 hollow 1.3 uses_php${PHP_VERSION}
467     }
468    
469 jokey 1.21 # @FUNCTION: require_php_cgi
470     # @DESCRIPTION:
471     # Determines which installed PHP version has the CGI SAPI enabled.
472     # Useful for anything which needs to run PHP scripts depending on the CGI SAPI.
473     # @RETURN: die if feature is missing
474 chtekk 1.12 require_php_cgi() {
475     # If PHP_PKG is set, then we have remembered our PHP settings
476 hollow 1.3 # from last time
477 chtekk 1.11 if [[ -n ${PHP_PKG} ]] ; then
478 hollow 1.3 return
479     fi
480    
481 chtekk 1.12 local PHP_PACKAGE_FOUND=""
482    
483     # Detect which PHP version we have installed
484 chtekk 1.6 if has_version '=dev-lang/php-4*' ; then
485 chtekk 1.12 PHP_PACKAGE_FOUND="1"
486 armin76 1.22 pkg="$(best_version '=dev-lang/php-4*')"
487 chtekk 1.13 if built_with_use =${pkg} cgi || phpconfutils_built_with_use =${pkg} cgi ; then
488 chtekk 1.12 PHP_VERSION="4"
489 chtekk 1.6 fi
490 sebastian 1.9 fi
491    
492     if has_version '=dev-lang/php-5*' ; then
493 chtekk 1.12 PHP_PACKAGE_FOUND="1"
494 armin76 1.22 pkg="$(best_version '=dev-lang/php-5*')"
495 chtekk 1.13 if built_with_use =${pkg} cgi || phpconfutils_built_with_use =${pkg} cgi ; then
496 chtekk 1.12 PHP_VERSION="5"
497 hollow 1.3 fi
498 sebastian 1.9 fi
499 chtekk 1.11
500     if [[ -z ${PHP_PACKAGE_FOUND} ]] ; then
501 hollow 1.3 die "Unable to find an installed dev-lang/php package"
502     fi
503    
504 chtekk 1.11 if [[ -z ${PHP_VERSION} ]] ; then
505 hoffie 1.20 die "No PHP CGI installed. Re-emerge dev-lang/php with USE=cgi."
506 hollow 1.3 fi
507    
508 chtekk 1.12 # If we get here, then PHP_VERSION tells us which version of PHP we
509 hollow 1.3 # want to use
510 stuart 1.1 uses_php${PHP_VERSION}
511     }
512    
513 jokey 1.21 # @FUNCTION: require_sqlite
514     # @DESCRIPTION:
515 chtekk 1.12 # Require a PHP built with SQLite support
516 jokey 1.21 # @RETURN: die if feature is missing
517 chtekk 1.12 require_sqlite() {
518 stuart 1.1 has_php
519    
520 chtekk 1.12 # Has our PHP been built with SQLite support?
521     if built_with_use =${PHP_PKG} sqlite || phpconfutils_built_with_use =${PHP_PKG} sqlite ; then
522 stuart 1.1 return
523     fi
524    
525 chtekk 1.12 # Do we have pecl-sqlite installed for PHP4?
526     if [[ "${PHP_VERSION}" == "4" ]] ; then
527     if has_version 'dev-php4/pecl-sqlite' ; then
528 stuart 1.1 return
529     fi
530     fi
531    
532 chtekk 1.12 # If we get here, then we don't have any SQLite support for PHP installed
533 stuart 1.1 eerror
534 chtekk 1.12 eerror "No SQLite extension for PHP found."
535     eerror "Please install an SQLite extension for PHP,"
536 stuart 1.1 eerror "this is done best by simply adding the"
537     eerror "'sqlite' USE flag when emerging dev-lang/php."
538     eerror
539 chtekk 1.12 die "No SQLite extension for PHP found"
540 stuart 1.1 }
541 hollow 1.3
542 jokey 1.21 # @FUNCTION: require_gd
543     # @DESCRIPTION:
544 chtekk 1.12 # Require a PHP built with GD support
545 jokey 1.21 # @RETURN: die if feature is missing
546 chtekk 1.12 require_gd() {
547 hollow 1.3 has_php
548    
549 chtekk 1.12 # Do we have the internal GD support installed?
550     if built_with_use =${PHP_PKG} gd || phpconfutils_built_with_use =${PHP_PKG} gd ; then
551 hollow 1.3 return
552     fi
553    
554 chtekk 1.12 # Ok, maybe GD was built using the external library support?
555     if built_with_use =${PHP_PKG} gd-external || phpconfutils_built_with_use =${PHP_PKG} gd-external ; then
556 hollow 1.3 return
557     fi
558    
559 chtekk 1.12 # If we get here, then we have no GD support
560 hollow 1.3 eerror
561     eerror "No GD support for PHP found."
562     eerror "Please install the GD support for PHP,"
563     eerror "you must install dev-lang/php with either"
564     eerror "the 'gd' or the 'gd-external' USE flags"
565     eerror "turned on."
566     eerror
567     die "No GD support found for PHP"
568     }
569 chtekk 1.6
570     # ========================================================================
571     # Misc functions
572     #
573     # These functions provide miscellaneous checks and functionality.
574     # ========================================================================
575    
576 jokey 1.21 # @FUNCTION: php_binary_extension
577     # @DESCRIPTION:
578     # Executes some checks needed when installing a binary PHP extension.
579 chtekk 1.6 php_binary_extension() {
580     has_php
581    
582 chtekk 1.12 local PUSE_ENABLED=""
583    
584     # Binary extensions do not support the change of PHP
585 chtekk 1.6 # API version, so they can't be installed when USE flags
586 chtekk 1.16 # are enabled which change the PHP API version, they also
587     # don't provide correctly versioned symbols for our use
588 chtekk 1.6
589 chtekk 1.18 if has_debug ; then
590 chtekk 1.6 eerror
591     eerror "You cannot install binary PHP extensions"
592     eerror "when the 'debug' USE flag is enabled!"
593     eerror "Please reemerge dev-lang/php with the"
594     eerror "'debug' USE flag turned off."
595     eerror
596 chtekk 1.12 PUSE_ENABLED="1"
597     fi
598    
599 chtekk 1.18 if has_concurrentmodphp ; then
600 chtekk 1.16 eerror
601     eerror "You cannot install binary PHP extensions when"
602     eerror "the 'concurrentmodphp' USE flag is enabled!"
603     eerror "Please reemerge dev-lang/php with the"
604     eerror "'concurrentmodphp' USE flag turned off."
605     eerror
606     PUSE_ENABLED="1"
607     fi
608    
609 chtekk 1.12 if [[ -n ${PUSE_ENABLED} ]] ; then
610 chtekk 1.18 die "'debug' and/or 'concurrentmodphp' USE flags turned on!"
611 chtekk 1.6 fi
612     }
613    
614 jokey 1.21 # @FUNCTION: dodoc-php
615     # @USAGE: <list of docs>
616     # @DESCRIPTION:
617     # Alternative to dodoc function for use in our PHP eclasses and ebuilds.
618 swegener 1.23 # Stored here because depend.php gets always sourced everywhere in the PHP
619 jokey 1.21 # ebuilds and eclasses. It simply is dodoc with a changed path to the docs.
620     # NOTE: No support for docinto is provided!
621 chtekk 1.12 dodoc-php() {
622     if [[ $# -lt 1 ]] ; then
623 chtekk 1.6 echo "$0: at least one argument needed" 1>&2
624     exit 1
625     fi
626    
627 armin76 1.24 phpdocdir="/usr/share/doc/${CATEGORY}/${PF}/"
628 chtekk 1.6
629 armin76 1.24 for x in $@ ; do
630     if [[ -s "${x}" ]] ; then
631     insinto "${phpdocdir}"
632     doins "${x}"
633     gzip -f -9 "${D}/${phpdocdir}/${x##*/}"
634     elif [[ ! -e "${x}" ]] ; then
635     echo "dodoc-php: ${x} does not exist" 1>&2
636     fi
637     done
638     }
639    
640     # @FUNCTION: dohtml-php
641     # @USAGE: <list of html docs>
642     # @DESCRIPTION:
643     # Alternative to dohtml function for use in our PHP eclasses and ebuilds.
644     # Stored here because depend.php gets always sourced everywhere in the PHP
645     # ebuilds and eclasses. It simply is dohtml with a changed path to the docs.
646     # NOTE: No support for [-a|-A|-p|-x] options is provided!
647     dohtml-php() {
648     if [[ $# -lt 1 ]] ; then
649     echo "$0: at least one argument needed" 1>&2
650     exit 1
651 chtekk 1.6 fi
652    
653 armin76 1.24 phphtmldir="/usr/share/doc/${CATEGORY}/${PF}/html"
654    
655 chtekk 1.12 for x in $@ ; do
656     if [[ -s "${x}" ]] ; then
657 armin76 1.24 insinto "${phphtmldir}"
658     doins "${x}"
659 chtekk 1.12 elif [[ ! -e "${x}" ]] ; then
660 armin76 1.24 echo "dohtml-php: ${x} does not exist" 1>&2
661 chtekk 1.6 fi
662     done
663     }

  ViewVC Help
Powered by ViewVC 1.1.20