/[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.5 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.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
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 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
124php_install_java_inifile() { 130php_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
143php_check_mta() { 149php_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
151php_check_oracle_all() { 165php_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
167php_check_oracle_8() { 186php_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# ########################################################################

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

  ViewVC Help
Powered by ViewVC 1.1.20