/[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.1 - (show annotations) (download)
Sun Sep 4 10:54:53 2005 UTC (9 years, 1 month ago) by stuart
Branch: MAIN
New & updated eclasses for new PHP packages

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 # ########################################################################

  ViewVC Help
Powered by ViewVC 1.1.20