summaryrefslogtreecommitdiff
blob: 3fa25f9fc8f41647faef64ab87d8dad82e4c1d60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
# Copyright 2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License, v2 or later
# Author: Robin H. Johnson <robbat2@gentoo.org>
# $Header: /var/cvsroot/gentoo-x86/eclass/php.eclass,v 1.4 2003/04/23 22:22:18 robbat2 Exp $

inherit eutils flag-o-matic

ECLASS=php
INHERITED="$INHERITED $ECLASS"

EXPORT_FUNCTIONS src_unpack src_compile src_install 

MY_P=php-${PV}
S=${WORKDIR}/${MY_P}
[ -z "$HOMEPAGE" ]	&& HOMEPAGE="http://www.php.net/"
[ -z "$LICENSE" ]	&& LICENSE="PHP"
[ -z "$SRC_URI" ] 	&& SRC_URI="http://us3.php.net/distributions/${MY_P}.tar.bz2"
[ -z "$PROVIDE" ]	&& PROVIDE="virtual/php"

IUSE="${IUSE} X berkdb cjk crypt curl firebird flash freetds gd gdbm imap jpeg ldap libwww mysql nls oci8 odbc pam pdflib png postgres qt snmp spell ssl tiff truetype xml xml2 java"
#removed: java gmp
#both cause breakage

DEPEND="${DEPEND}
    X? ( virtual/x11 )
    berkdb? ( >=sys-libs/db-3 )
    crypt? ( >=dev-libs/libmcrypt-2.4 >=app-crypt/mhash-0.8 )
    curl? ( >=net-ftp/curl-7.10.2 )
    firebird? ( >=dev-db/firebird-1.0 )
    flash? ( media-libs/libswf >=media-libs/ming-0.2a )
    freetds? ( >=dev-db/freetds-0.53 )
    gd? ( media-libs/libgd )
    gdbm? ( >=sys-libs/gdbm-1.8.0 )
    imap? ( >=net-mail/uw-imap-2001a-r1 )
	java? ( >=virtual/jdk-1.4 )
    jpeg? ( >=media-libs/jpeg-6b )
    ldap? ( >=net-nds/openldap-1.2.11 )
    libwww? ( >=net-libs/libwww-5.3.2 )
    mysql? ( >=dev-db/mysql-3.23.26 )
    nls? ( sys-devel/gettext )
    odbc? ( >=dev-db/unixODBC-1.8.13 )
    pam? ( >=sys-libs/pam-0.75 )
    pdflib? ( >=media-libs/pdflib-4.0.1-r2 )
    png? ( >=media-libs/libpng-1.2.5 )
    postgres? ( >=dev-db/postgresql-7.1 )
    qt? ( x11-libs/qt )
    snmp? ( >=net-analyzer/ucd-snmp-4.2.3 )
    spell? ( app-text/aspell )
    ssl? ( >=dev-libs/openssl-0.9.5 )
    tiff? ( >=media-libs/tiff-3.5.5 )
    truetype? ( ~media-libs/freetype-1.3.1 >=media-libs/t1lib-1.3.1 )
    xml2? ( dev-libs/libxml2 )
    xml? ( >=net-libs/libwww-5.3.2 >=app-text/sablotron-0.96 )
	"


RDEPEND="${RDEPEND}
	xml? ( >=app-text/sablotron-0.95-r1 >=net-libs/libwww-5.3.2 )
	qt? ( >=x11-libs/qt-2.3.0 )"


#fixes bug #14067
replace-flags "-march=k6*" "-march=i586"

php_src_unpack() {
    unpack ${MY_P}.tar.bz2
    cd ${S}

    # Configure Patch for wired uname -a
    mv configure configure.old
    cat configure.old | sed "s/PHP_UNAME=\`uname -a\`/PHP_UNAME=\`uname -s -n -r -v\`/g" > configure
    chmod 755 configure

    # fix PEAR installer
    cp pear/PEAR/Registry.php pear/PEAR/Registry.old
    sed "s:\$pear_install_dir\.:\'$D/usr/lib/php/\' . :g" pear/PEAR/Registry.old > pear/PEAR/Registry.php

	#if [ "`use java`" ] ; then

	#	cp configure configure.orig
	#	cat configure.orig | \
	#		sed -e 's/LIBS="-lttf $LIBS"/LIBS="-lttf $LIBS"/' \
	#		> configure

	#	cp ext/gd/gd.c ext/gd/gd.c.orig
	#	cat ext/gd/gd.c.orig | \
	#		sed -e "s/typedef FILE gdIOCtx;//" \
	#		> ext/gd/gd.c
	#	if [ "$JAVAC" ];
	#	then
	#              cp ext/java/Makefile.in ext/java/Makefile.in.orig
	#              cat ext/java/Makefile.in.orig | \
	#                      sed -e "s/^\tjavac/\t\$(JAVAC)/" \
	#                      > ext/java/Makefile.in
	#	fi
	#fi

	# pear's world writable files is a php issue fixed in their cvs tree.
	# http://bugs.php.net/bug.php?id=20978
	# http://bugs.php.net/bug.php?id=20974
	epatch ${FILESDIR}/pear_config.diff || die "epatch failed"

}

myconf="${myconf}"

php_src_compile() {
	use berkdb && myconf="${myconf} --with-db3=/usr"
	#---
	use cjk && myconf="${myconf} --enable-mbstring --enable-mbregex"
	#use cjk && myconf="${myconf} --enable-mbstring"
	#---
	use curl && myconf="${myconf} --with-curl"
	use crypt && myconf="${myconf} --enable-mcrypt=/usr --with-mhash"
	use firebird && myconf="${myconf} --with-interbase=/opt/interbase"
	use flash && myconf="${myconf} --with-swf=/usr --with-ming=/usr"
	use freetds && myconf="${myconf} --with-sybase=/usr"
	use gd && myconf="${myconf} --with-gd=/usr"
	use gdbm && myconf="${myconf} --with-gdbm=/usr"
	use java && myconf="${myconf} --with-java=${JAVA_HOME}"
	#--- check out this weirdness
	#use jpeg && myconf="${myconf} --with-jpeg-dir=/usr"
	#use jpeg && myconf="${myconf} --with-jpeg-dir=/usr/lib" || myconf="${myconf} --without-jpeg"
	use jpeg && myconf="${myconf} --with-jpeg-dir=/usr" || myconf="${myconf} --without-jpeg"
	#---
	use libwww && myconf="${myconf} --with-xml" || myconf="${myconf} --disable-xml"
	use ldap &&  myconf="${myconf} --with-ldap"
	use mysql && myconf="${myconf} --with-mysql=/usr" || myconf="${myconf} --without-mysql"
	use nls && myconf="${myconf} --with-gettext" || myconf="${myconf} --without-gettext"
	use odbc && myconf="${myconf} --with-unixODBC=/usr"
	use pam && myconf="${myconf} --with-pam"
	use pdflib && myconf="${myconf} --with-pdflib=/usr"
	#---
	use png && myconf="${myconf} --with-png-dir=/usr"
	use png || myconf="${myconf} --without-png"
	#---
	use postgres && myconf="${myconf} --with-pgsql=/usr"
	use qt && myconf="${myconf} --with-qtdom" 
	use snmp && myconf="${myconf} --with-snmp --enable-ucd-snmp-hack"
	use spell && myconf="${myconf} --with-pspell"
	use ssl && myconf="${myconf} --with-openssl"
	use tiff && myconf="${myconf} --with-tiff-dir=/usr" || myconf="${myconf} --without-tiff"
	use truetype && myconf="${myconf} --with-ttf --with-t1lib"
	use xml2 && myconf="${myconf} --with-dom"
	use zlib && myconf="${myconf} --with-zlib --with-zlib-dir=/usr/lib"

	# optional support for oracle oci8
	use oci8 && [ -n "$ORACLE_HOME" ] && myconf="${myconf} --with-oci8=${ORACLE_HOME}"

	use imap && use ssl && \
	if [ "`strings ${ROOT}/usr/lib/c-client.a \ | grep ssl_onceonlyinit`" ] ; then
		echo "Compiling imap with SSL support"
		myconf="${myconf} --with-imap --with-imap-ssl"
	else
		echo "Compiling imap without SSL support"
		myconf="${myconf} --with-imap"
	fi

	LDFLAGS="$LDFLAGS -ltiff -ljpeg"
	if [ "`use X`" ] ; then
		myconf="${myconf} --with-xpm-dir=/usr/X11R6"
		LDFLAGS="$LDFLAGS -L/usr/X11R6/lib"
	fi
	
	if [ "`use xml`" ] ; then
		export LIBS="-lxmlparse -lxmltok"
		myconf="${myconf} --with-sablot=/usr"
		myconf="${myconf} --enable-xslt" 
		myconf="${myconf} --with-xslt-sablot" 
		myconf="${myconf} --with-xmlrpc"
	fi
	
	#use java && myconf="${myconf} --with-java=${JAVA_HOME}"

	myconf="${myconf} \
		--enable-bcmath \
		--enable-calendar \
		--enable-dbase \
		--enable-ftp \
		--enable-exif \
		--enable-inline-optimization \
		--enable-sockets \
		--enable-sysvsem \
		--enable-sysvshm \
		--enable-track-vars \
		--enable-trans-sid \
		--enable-versioning \
		--with-config-file-path=/etc/php4 \
		--with-bz2 \
	"
	#this is some stuff that MIGHT be questionable in some ebuilds
	myconf="${myconf} \
		--enable-wddx \
		--host=${CHOST} \
		--prefix=/usr"
	#dev-php/php: wddx pear
	#dev-php/mod_php: prefix host

	econf \
		${myconf} || die "bad ./configure"

	emake || die "compile problem"

}


php_src_install() {
	addwrite /usr/share/snmp/mibs/.index
	
	# put make here

	dodoc CODING_STANDARDS LICENSE EXTENSIONS 
	dodoc RELEASE_PROCESS README.* TODO NEWS
	dodoc ChangeLog* *.txt

	#install scripts
	exeinto /usr/bin
	doexe ${S}/pear/scripts/phpize
	doexe ${S}/pear/scripts/php-config
	doexe ${S}/pear/scripts/phpextdist
	doexe ${S}/ext/ext_skel
	
	# PHP module building stuff
	mkdir ${D}/usr/lib/php/build
	insinto /usr/lib/php/build
	doins build/* pear/pear.m4 acinclude.m4 configure.in Makefile.global scan_makefile_in.awk

    #revert Pear patch
    rm ${D}/usr/lib/php/PEAR/Registry.php
    mv ${S}/pear/PEAR/Registry.old ${D}/usr/lib/php/PEAR/Registry.php
	
}