/[gentoo-x86]/eclass/php-common-r1.eclass
Gentoo

Contents of /eclass/php-common-r1.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (hide annotations) (download)
Wed Jan 4 09:22:48 2006 UTC (8 years, 9 months ago) by chtekk
Branch: MAIN
Changes since 1.4: +18 -2 lines
Update the PHP packages, sync with overlay.

1 stuart 1.1 # Copyright 1999-2005 Gentoo Foundation
2     # Distributed under the terms of the GNU General Public License v2
3 chtekk 1.5 # $Header: /var/cvsroot/gentoo-x86/eclass/php-common-r1.eclass,v 1.4 2005/11/01 10:04:13 chtekk Exp $
4 stuart 1.1
5     # ########################################################################
6     #
7     # eclass/php-common-r1.eclass
8     # Contains common functions which are shared between the
9     # PHP4 and PHP5 packages
10     #
11     # USE THIS ECLASS FOR THE "CONSOLIDATED" PACKAGES
12     #
13     # Based on robbat2's work on the php4 sapi eclass
14     # Based on stuart's work on the php5 sapi eclass
15     #
16     # Maintainer:
17     # php-bugs@gentoo.org
18     #
19     # ########################################################################
20    
21     # ########################################################################
22     # CFLAG SANITY
23     # ########################################################################
24    
25     php_check_cflags() {
26     # filter the following from C[XX]FLAGS regardless, as apache won't be
27     # supporting LFS until 2.2 is released and in the tree. Fixes bug #24373.
28     filter-flags "-D_FILE_OFFSET_BITS=64"
29     filter-flags "-D_FILE_OFFSET_BITS=32"
30     filter-flags "-D_LARGEFILE_SOURCE=1"
31     filter-flags "-D_LARGEFILE_SOURCE"
32    
33     #fixes bug #14067
34     # changed order to run it in reverse for bug #32022 and #12021
35     replace-flags "-march=k6-3" "-march=i586"
36     replace-flags "-march=k6-2" "-march=i586"
37     replace-flags "-march=k6" "-march=i586"
38     }
39    
40     # ########################################################################
41     # IMAP SUPPORT
42     # ########################################################################
43    
44     php_check_imap() {
45     if ! useq imap ; then
46     return
47     fi
48    
49     if useq ssl ; then
50     if ! built_with_use virtual/imap-c-client ssl ; then
51     eerror
52     eerror "IMAP+SSL requested, but your IMAP libraries are built without SSL!"
53     eerror
54     die "Please recompile IMAP libraries w/ SSL support enabled"
55     fi
56     fi
57     }
58    
59     # ########################################################################
60     # JAVA EXTENSION SUPPORT
61     #
62     # The bundled java extension is unique to PHP4 at the time of writing, but
63     # there is now the PHP-Java-Bridge that works under both PHP4 and PHP5.
64     # ########################################################################
65    
66 hollow 1.2 php_check_java() {
67     if ! useq java-internal ; then
68 stuart 1.1 return 1
69     fi
70    
71     JDKHOME="`java-config --jdk-home`"
72     NOJDKERROR="You need to use java-config to set your JVM to a JDK!"
73     if [ -z "${JDKHOME}" ] || [ ! -d "${JDKHOME}" ]; then
74     eerror "${NOJDKERROR}"
75     die "${NOJDKERROR}"
76     fi
77    
78     # stuart@gentoo.org - 2003/05/18
79     # Kaffe JVM is not a drop-in replacement for the Sun JDK at this time
80     if echo ${JDKHOME} | grep kaffe > /dev/null 2>&1 ; then
81     eerror
82     eerror "PHP will not build using the Kaffe Java Virtual Machine."
83     eerror "Please change your JVM to either Blackdown or Sun's."
84     eerror
85     eerror "To build PHP without Java support, please re-run this emerge"
86     eerror "and place the line:"
87 hollow 1.2 eerror " USE='-java-internal'"
88 stuart 1.1 eerror "in front of your emerge command; e.g."
89 hollow 1.2 eerror " USE='-java-internal' emerge =dev-lang/php-4*"
90 stuart 1.1 eerror
91     eerror "or edit your USE flags in /etc/make.conf"
92     die "Kaffe JVM not supported"
93     fi
94    
95 hollow 1.2 JDKVER=$(java-config --java-version 2>&1 | awk '/^java version/ { print $3 }' | xargs )
96 stuart 1.1 einfo "Active JDK version: ${JDKVER}"
97 chtekk 1.3 case "${JDKVER}" in
98 stuart 1.1 1.4.*) ;;
99     1.5.*) ewarn "Java 1.5 is NOT supported at this time, and might not work." ;;
100     *) eerror "A Java 1.4 JDK is required for Java support in PHP." ; die ;;
101     esac
102     }
103    
104     php_install_java() {
105 hollow 1.2 if ! useq java-internal ; then
106     return 1
107 stuart 1.1 fi
108    
109     # we put these into /usr/lib so that they cannot conflict with
110     # other versions of PHP (e.g. PHP 4 & PHP 5)
111     insinto ${PHPEXTDIR}
112     einfo "Installing JAR for PHP"
113     doins ext/java/php_java.jar
114    
115     einfo "Installing Java test page"
116     newins ext/java/except.php java-test.php
117    
118     einfo "Installing Java extension for PHP"
119     doins modules/java.so
120    
121     dosym ${PHPEXTDIR}/java.so ${PHPEXTDIR}/libphp_java.so
122     }
123    
124 chtekk 1.3 php_install_java_inifile() {
125 chtekk 1.4 if ! useq java-internal ; then
126     return 1
127     fi
128    
129 chtekk 1.3 JAVA_LIBRARY="`grep -- '-DJAVALIB' Makefile | sed -e 's,.\+-DJAVALIB=\"\([^"]*\)\".*$,\1,g;'| sort | uniq `"
130    
131     echo "extension = java.so" >> "${D}/${PHP_EXT_INI_DIR}/java.ini"
132     echo "java.library = ${JAVA_LIBRARY}" >> "${D}/${PHP_EXT_INI_DIR}/java.ini"
133     echo "java.class.path = ${PHPEXTDIR}/php_java.jar" >> "${D}/${PHP_EXT_INI_DIR}/java.ini"
134     echo "java.library.path = ${PHPEXTDIR}" >> "${D}/${PHP_EXT_INI_DIR}/java.ini"
135    
136     dosym "${PHP_EXT_INI_DIR}/java.ini" "${PHP_EXT_INI_DIR_ACTIVE}/java.ini"
137     }
138    
139 stuart 1.1 # ########################################################################
140     # MTA SUPPORT
141     # ########################################################################
142    
143     php_check_mta() {
144     [ -x "${ROOT}/usr/sbin/sendmail" ] || die "You need a virtual/mta that provides /usr/sbin/sendmail!"
145     }
146    
147     # ########################################################################
148     # ORACLE SUPPORT
149     # ########################################################################
150    
151 chtekk 1.5 php_check_oracle_all() {
152 stuart 1.1 if useq oci8 && [ -z "${ORACLE_HOME}" ]; then
153     eerror
154     eerror "You must have the ORACLE_HOME variable in your environment!"
155     eerror
156     die "Oracle configuration incorrect; user error"
157     fi
158    
159     if useq oci8 || useq oracle7 ; then
160     if has_version 'dev-db/oracle-instantclient-basic' ; then
161     ewarn "Please ensure you have a full install of the Oracle client."
162     ewarn "dev-db/oracle-instantclient* is NOT sufficient."
163     fi
164     fi
165     }
166    
167 chtekk 1.5 php_check_oracle_8() {
168     if useq oci8 && [ -z "${ORACLE_HOME}" ]; then
169     eerror
170     eerror "You must have the ORACLE_HOME variable in your environment!"
171     eerror
172     die "Oracle configuration incorrect; user error"
173     fi
174    
175     if useq oci8 ; then
176     if has_version 'dev-db/oracle-instantclient-basic' ; then
177     ewarn "Please ensure you have a full install of the Oracle client."
178     ewarn "dev-db/oracle-instantclient* is NOT sufficient."
179     fi
180     fi
181     }
182    
183 stuart 1.1 # ########################################################################
184     # END OF ECLASS
185     # ########################################################################

  ViewVC Help
Powered by ViewVC 1.1.20