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

1 stuart 1.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