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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.2 Revision 1.6
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.2 2005/09/18 12:57:22 hollow 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
25php_check_cflags() { 24php_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
44php_check_imap() { 43php_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
66php_check_java() { 72php_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
104php_install_java() { 110php_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
118 JAVA_LIBRARY="`grep -- '-DJAVALIB' Makefile | sed -e 's,.\+-DJAVALIB=\"\([^"]*\)\".*$,\1,g;'| sort | uniq `"
119 sed -e "s|;java.library .*$|java.library = ${JAVA_LIBRARY}|g" -i ${phpinisrc}
120 sed -e "s|;java.class.path .*$|java.class.path = ${PHPEXTDIR}/php_java.jar|g" -i ${phpinisrc}
121 sed -e "s|;java.library.path .*$|java.library.path = ${PHPEXTDIR}|g" -i ${phpinisrc}
122 sed -e "s|;extension=php_java.dll.*$|extension = java.so|g" -i ${phpinisrc}
123 123
124 einfo "Installing Java extension for PHP" 124 einfo "Installing Java extension for PHP"
125 doins modules/java.so 125 doins "modules/java.so"
126 126
127 dosym ${PHPEXTDIR}/java.so ${PHPEXTDIR}/libphp_java.so 127 dosym "${PHPEXTDIR}/java.so" "${PHPEXTDIR}/libphp_java.so"
128}
129
130php_install_java_inifile() {
131 if ! useq "java-internal" && ! phpconfutils_usecheck "java-internal" ; then
132 return
133 fi
134
135 JAVA_LIBRARY="`grep -- '-DJAVALIB' Makefile | sed -e 's,.\+-DJAVALIB=\"\([^"]*\)\".*$,\1,g;' | sort -u`"
136
137 echo "extension = java.so" >> "${D}/${PHP_EXT_INI_DIR}/java.ini"
138 echo "java.library = ${JAVA_LIBRARY}" >> "${D}/${PHP_EXT_INI_DIR}/java.ini"
139 echo "java.class.path = ${PHPEXTDIR}/php_java.jar" >> "${D}/${PHP_EXT_INI_DIR}/java.ini"
140 echo "java.library.path = ${PHPEXTDIR}" >> "${D}/${PHP_EXT_INI_DIR}/java.ini"
141
142 dosym "${PHP_EXT_INI_DIR}/java.ini" "${PHP_EXT_INI_DIR_ACTIVE}/java.ini"
128} 143}
129 144
130# ######################################################################## 145# ########################################################################
131# MTA SUPPORT 146# MTA SUPPORT
132# ######################################################################## 147# ########################################################################
133 148
134php_check_mta() { 149php_check_mta() {
135 [ -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
136} 159}
137 160
138# ######################################################################## 161# ########################################################################
139# ORACLE SUPPORT 162# ORACLE SUPPORT
140# ######################################################################## 163# ########################################################################
141 164
142php_check_oracle() { 165php_check_oracle_all() {
143 if useq oci8 && [ -z "${ORACLE_HOME}" ]; then 166 if useq "oci8" && [[ -z "${ORACLE_HOME}" ]] ; then
144 eerror 167 eerror
145 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."
146 eerror 170 eerror
147 die "Oracle configuration incorrect; user error" 171 die "Oracle configuration incorrect; user error"
148 fi 172 fi
149 173
150 if useq oci8 || useq oracle7 ; then 174 if useq "oci8" || useq "oracle7" ; then
151 if has_version 'dev-db/oracle-instantclient-basic' ; then 175 if has_version 'dev-db/oracle-instantclient-basic' ; then
176 ewarn
152 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."
153 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
182 fi
183 fi
184}
185
186php_check_oracle_8() {
187 if useq "oci8" && [[ -z "${ORACLE_HOME}" ]] ; then
188 eerror
189 eerror "You must have the ORACLE_HOME variable set in your environment to"
190 eerror "compile the Oracle extension."
191 eerror
192 die "Oracle configuration incorrect; user error"
193 fi
194
195 if useq "oci8" ; then
196 if has_version 'dev-db/oracle-instantclient-basic' ; then
197 ewarn
198 ewarn "Please ensure you have a full install of the Oracle client."
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
154 fi 203 fi
155 fi 204 fi
156} 205}
157 206
158# ######################################################################## 207# ########################################################################

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.6

  ViewVC Help
Powered by ViewVC 1.1.20