| 1 |
# Copyright 1999-2005 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 |
# 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 |
php_uses_java() { |
| 67 |
if ! useq java ; then |
| 68 |
return 1 |
| 69 |
fi |
| 70 |
|
| 71 |
if useq alpha || useq amd64 ; then |
| 72 |
return 1 |
| 73 |
fi |
| 74 |
|
| 75 |
return 0 |
| 76 |
} |
| 77 |
|
| 78 |
php_check_java() { |
| 79 |
if ! php_uses_java ; then |
| 80 |
return |
| 81 |
fi |
| 82 |
|
| 83 |
JDKHOME="`java-config --jdk-home`" |
| 84 |
NOJDKERROR="You need to use java-config to set your JVM to a JDK!" |
| 85 |
if [ -z "${JDKHOME}" ] || [ ! -d "${JDKHOME}" ]; then |
| 86 |
eerror "${NOJDKERROR}" |
| 87 |
die "${NOJDKERROR}" |
| 88 |
fi |
| 89 |
|
| 90 |
# stuart@gentoo.org - 2003/05/18 |
| 91 |
# Kaffe JVM is not a drop-in replacement for the Sun JDK at this time |
| 92 |
|
| 93 |
if echo ${JDKHOME} | grep kaffe > /dev/null 2>&1 ; then |
| 94 |
eerror |
| 95 |
eerror "PHP will not build using the Kaffe Java Virtual Machine." |
| 96 |
eerror "Please change your JVM to either Blackdown or Sun's." |
| 97 |
eerror |
| 98 |
eerror "To build PHP without Java support, please re-run this emerge" |
| 99 |
eerror "and place the line:" |
| 100 |
eerror " USE='-java'" |
| 101 |
eerror "in front of your emerge command; e.g." |
| 102 |
eerror " USE='-java' emerge mod_php" |
| 103 |
eerror |
| 104 |
eerror "or edit your USE flags in /etc/make.conf" |
| 105 |
die "Kaffe JVM not supported" |
| 106 |
fi |
| 107 |
|
| 108 |
JDKVER=$(java-config --java-version 2>&1 | awk '/^java version/ { print $3 |
| 109 |
}' | xargs ) |
| 110 |
einfo "Active JDK version: ${JDKVER}" |
| 111 |
case ${JDKVER} in |
| 112 |
1.4.*) ;; |
| 113 |
1.5.*) ewarn "Java 1.5 is NOT supported at this time, and might not work." ;; |
| 114 |
*) eerror "A Java 1.4 JDK is required for Java support in PHP." ; die ;; |
| 115 |
esac |
| 116 |
} |
| 117 |
|
| 118 |
php_install_java() { |
| 119 |
if ! php_uses_java ; then |
| 120 |
return |
| 121 |
fi |
| 122 |
|
| 123 |
# we put these into /usr/lib so that they cannot conflict with |
| 124 |
# other versions of PHP (e.g. PHP 4 & PHP 5) |
| 125 |
insinto ${PHPEXTDIR} |
| 126 |
einfo "Installing JAR for PHP" |
| 127 |
doins ext/java/php_java.jar |
| 128 |
|
| 129 |
einfo "Installing Java test page" |
| 130 |
newins ext/java/except.php java-test.php |
| 131 |
|
| 132 |
JAVA_LIBRARY="`grep -- '-DJAVALIB' Makefile | sed -e 's,.\+-DJAVALIB=\"\([^"]*\)\".*$,\1,g;'| sort | uniq `" |
| 133 |
sed -e "s|;java.library .*$|java.library = ${JAVA_LIBRARY}|g" -i ${phpinisrc} |
| 134 |
sed -e "s|;java.class.path .*$|java.class.path = ${PHPEXTDIR}/php_java.jar|g" -i ${phpinisrc} |
| 135 |
sed -e "s|;java.library.path .*$|java.library.path = ${PHPEXTDIR}|g" -i ${phpinisrc} |
| 136 |
sed -e "s|;extension=php_java.dll.*$|extension = java.so|g" -i ${phpinisrc} |
| 137 |
|
| 138 |
einfo "Installing Java extension for PHP" |
| 139 |
doins modules/java.so |
| 140 |
|
| 141 |
dosym ${PHPEXTDIR}/java.so ${PHPEXTDIR}/libphp_java.so |
| 142 |
} |
| 143 |
|
| 144 |
# ######################################################################## |
| 145 |
# MTA SUPPORT |
| 146 |
# ######################################################################## |
| 147 |
|
| 148 |
php_check_mta() { |
| 149 |
[ -x "${ROOT}/usr/sbin/sendmail" ] || die "You need a virtual/mta that provides /usr/sbin/sendmail!" |
| 150 |
} |
| 151 |
|
| 152 |
# ######################################################################## |
| 153 |
# ORACLE SUPPORT |
| 154 |
# ######################################################################## |
| 155 |
|
| 156 |
php_check_oracle() { |
| 157 |
if useq oci8 && [ -z "${ORACLE_HOME}" ]; then |
| 158 |
eerror |
| 159 |
eerror "You must have the ORACLE_HOME variable in your environment!" |
| 160 |
eerror |
| 161 |
die "Oracle configuration incorrect; user error" |
| 162 |
fi |
| 163 |
|
| 164 |
if useq oci8 || useq oracle7 ; then |
| 165 |
if has_version 'dev-db/oracle-instantclient-basic' ; then |
| 166 |
ewarn "Please ensure you have a full install of the Oracle client." |
| 167 |
ewarn "dev-db/oracle-instantclient* is NOT sufficient." |
| 168 |
fi |
| 169 |
fi |
| 170 |
} |
| 171 |
|
| 172 |
# ######################################################################## |
| 173 |
# END OF ECLASS |
| 174 |
# ######################################################################## |