/[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.8 - (show annotations) (download)
Fri Jul 14 16:02:36 2006 UTC (8 years ago) by chtekk
Branch: MAIN
Changes since 1.7: +9 -7 lines
Update PHP eclasses, better ebuild/eclass separation, accomodate for new features.

1 # Copyright 1999-2006 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: $
4
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 # Maintained by the PHP Herd <php-bugs@gentoo.org>
17 #
18 # ########################################################################
19
20 # ########################################################################
21 # CFLAG SANITY
22 # ########################################################################
23
24 php_check_cflags() {
25 # Filter the following from C[XX]FLAGS regardless, as apache won't be
26 # supporting LFS until 2.2 is released and in the tree. Fixes bug #24373.
27 filter-flags "-D_FILE_OFFSET_BITS=64"
28 filter-flags "-D_FILE_OFFSET_BITS=32"
29 filter-flags "-D_LARGEFILE_SOURCE=1"
30 filter-flags "-D_LARGEFILE_SOURCE"
31
32 # Fixes bug #14067.
33 # Changed order to run it in reverse for bug #32022 and #12021.
34 replace-flags "-march=k6-3" "-march=i586"
35 replace-flags "-march=k6-2" "-march=i586"
36 replace-flags "-march=k6" "-march=i586"
37 }
38
39 # ########################################################################
40 # IMAP SUPPORT
41 # ########################################################################
42
43 php_check_imap() {
44 if ! useq "imap" && ! phpconfutils_usecheck "imap" ; then
45 return
46 fi
47
48 if useq "ssl" || phpconfutils_usecheck "ssl" ; then
49 if ! built_with_use virtual/imap-c-client ssl ; then
50 eerror
51 eerror "IMAP with SSL requested, but your IMAP C-Client libraries are built without SSL!"
52 eerror
53 die "Please recompile the IMAP C-Client libraries with SSL support enabled"
54 fi
55 else
56 if built_with_use virtual/imap-c-client ssl ; then
57 eerror
58 eerror "IMAP without SSL requested, but your IMAP C-Client libraries are built with SSL!"
59 eerror
60 die "Please recompile the IMAP C-Client libraries with SSL support disabled"
61 fi
62 fi
63 }
64
65 # ########################################################################
66 # JAVA EXTENSION SUPPORT
67 #
68 # The bundled java extension is unique to PHP4 at the time of writing, but
69 # there is now the PHP-Java-Bridge that works under both PHP4 and PHP5.
70 # ########################################################################
71
72 php_check_java() {
73 if ! useq "java-internal" && ! phpconfutils_usecheck "java-internal" ; then
74 return
75 fi
76
77 JDKHOME="`java-config --jdk-home`"
78 NOJDKERROR="You need to use the 'java-config' utility to set your JVM to a JDK!"
79 if [[ -z "${JDKHOME}" ]] || [[ ! -d "${JDKHOME}" ]] ; then
80 eerror "${NOJDKERROR}"
81 die "${NOJDKERROR}"
82 fi
83
84 # stuart@gentoo.org - 2003/05/18
85 # Kaffe JVM is not a drop-in replacement for the Sun JDK at this time
86 if echo ${JDKHOME} | grep kaffe > /dev/null 2>&1 ; then
87 eerror
88 eerror "PHP will not build using the Kaffe Java Virtual Machine."
89 eerror "Please change your JVM to either Blackdown or Sun's."
90 eerror
91 eerror "To build PHP without Java support, please re-run this emerge"
92 eerror "and place the line:"
93 eerror " USE='-java-internal'"
94 eerror "in front of your emerge command, for example:"
95 eerror " USE='-java-internal' emerge =dev-lang/php-4*"
96 eerror
97 eerror "or edit your USE flags in /etc/make.conf."
98 die "Kaffe JVM not supported"
99 fi
100
101 JDKVER=$(java-config --java-version 2>&1 | awk '/^java version/ { print $3 }' | xargs )
102 einfo "Active JDK version: ${JDKVER}"
103 case "${JDKVER}" in
104 1.4.*) ;;
105 1.5.*) ewarn "Java 1.5 is NOT supported at this time, and might not work." ;;
106 *) eerror "A Java 1.4 JDK is recommended for Java support in PHP." ; die ;;
107 esac
108 }
109
110 php_install_java() {
111 if ! useq "java-internal" && ! phpconfutils_usecheck "java-internal" ; then
112 return
113 fi
114
115 # We put these into /usr/lib so that they cannot conflict with
116 # other versions of PHP (e.g. PHP 4 & PHP 5)
117 insinto "${PHPEXTDIR}"
118
119 einfo "Installing PHP java extension"
120 doins "modules/java.so"
121
122 einfo "Creating PHP java extension symlink"
123 dosym "${PHPEXTDIR}/java.so" "${PHPEXTDIR}/libphp_java.so"
124
125 einfo "Installing JAR for PHP"
126 doins "ext/java/php_java.jar"
127
128 einfo "Installing Java test page"
129 newins "ext/java/except.php" "java-test.php"
130 }
131
132 php_install_java_inifile() {
133 if ! useq "java-internal" && ! phpconfutils_usecheck "java-internal" ; then
134 return
135 fi
136
137 JAVA_LIBRARY="`grep -- '-DJAVALIB' Makefile | sed -e 's,.\+-DJAVALIB=\"\([^"]*\)\".*$,\1,g;' | sort -u`"
138
139 echo "extension = java.so" >> "${D}/${PHP_EXT_INI_DIR}/java.ini"
140 echo "java.library = ${JAVA_LIBRARY}" >> "${D}/${PHP_EXT_INI_DIR}/java.ini"
141 echo "java.class.path = ${PHPEXTDIR}/php_java.jar" >> "${D}/${PHP_EXT_INI_DIR}/java.ini"
142 echo "java.library.path = ${PHPEXTDIR}" >> "${D}/${PHP_EXT_INI_DIR}/java.ini"
143
144 dosym "${PHP_EXT_INI_DIR}/java.ini" "${PHP_EXT_INI_DIR_ACTIVE}/java.ini"
145 }
146
147 # ########################################################################
148 # MTA SUPPORT
149 # ########################################################################
150
151 php_check_mta() {
152 if ! [[ -x "${ROOT}/usr/sbin/sendmail" ]] ; then
153 ewarn
154 ewarn "You need a virtual/mta that provides a sendmail compatible binary!"
155 ewarn "All major MTAs provide this, and it's usually some symlink created"
156 ewarn "as '${ROOT}/usr/sbin/sendmail*'. You should also be able to use other"
157 ewarn "MTAs directly, but you'll have to edit the sendmail_path directive"
158 ewarn "in your php.ini for this to work."
159 ewarn
160 fi
161 }
162
163 # ########################################################################
164 # ORACLE SUPPORT
165 # ########################################################################
166
167 php_check_oracle_all() {
168 if useq "oci8" && [[ -z "${ORACLE_HOME}" ]] ; then
169 eerror
170 eerror "You must have the ORACLE_HOME variable set in your environment to"
171 eerror "compile the Oracle extension."
172 eerror
173 die "Oracle configuration incorrect; user error"
174 fi
175
176 if useq "oci8" || useq "oracle7" ; then
177 if has_version 'dev-db/oracle-instantclient-basic' ; then
178 ewarn
179 ewarn "Please ensure you have a full install of the Oracle client."
180 ewarn "'dev-db/oracle-instantclient-basic' is NOT sufficient."
181 ewarn "Please enable the 'oci8-instant-client' USE flag instead, if you"
182 ewarn "want to use 'dev-db/oracle-instantclient-basic' as Oracle client."
183 ewarn
184 fi
185 fi
186 }
187
188 php_check_oracle_8() {
189 if useq "oci8" && [[ -z "${ORACLE_HOME}" ]] ; then
190 eerror
191 eerror "You must have the ORACLE_HOME variable set in your environment to"
192 eerror "compile the Oracle extension."
193 eerror
194 die "Oracle configuration incorrect; user error"
195 fi
196
197 if useq "oci8" ; then
198 if has_version 'dev-db/oracle-instantclient-basic' ; then
199 ewarn
200 ewarn "Please ensure you have a full install of the Oracle client."
201 ewarn "'dev-db/oracle-instantclient-basic' is NOT sufficient."
202 ewarn "Please enable the 'oci8-instant-client' USE flag instead, if you"
203 ewarn "want to use 'dev-db/oracle-instantclient-basic' as Oracle client."
204 ewarn
205 fi
206 fi
207 }
208
209 # ########################################################################
210 # POSTGRESQL SUPPORT
211 # ########################################################################
212
213 php_check_pgsql() {
214 if useq "postgres" \
215 && useq "apache2" && useq "threads" \
216 && has_version ">=dev-db/libpq-8.1.3-r1" \
217 && ! built_with_use ">=dev-db/libpq-8.1.3-r1" "threads" ; then
218 eerror
219 eerror "You must build dev-db/libpq with the 'threads' USE flag"
220 eerror "turned on if you want to build PHP with threads support!"
221 eerror
222 die "Rebuild dev-db/libpq with 'threads' USE flag enabled"
223 fi
224 }
225
226 # ########################################################################
227 # END OF ECLASS
228 # ########################################################################

  ViewVC Help
Powered by ViewVC 1.1.20