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