# $Id: Portfile,v 1.29 2006/06/07 18:18:29 dluke Exp $

PortSystem 1.0

name			php5
version			5.1.4
revision		3

categories      lang php www
maintainers     opendarwin-2006@ryandesign.com

description     PHP: Hypertext Preprocessor
long_description 	PHP is a widely-used general-purpose scripting language \
			that is especially suited for Web development and can be \
			embedded into HTML. 
platforms	darwin freebsd

master_sites 	http://www.php.net/distributions/:release \
                http://it.php.net/distributions/:release \
                http://fi.php.net/distributions/:release \
                http://de.php.net/distributions/:release \
                http://gr.php.net/distributions/:release \
                http://fr.php.net/distributions/:release \
                http://es.php.net/distributions/:release \
                http://se.php.net/distributions/:release \
                http://downloads.php.net/ilia/:rc \
                http://downloads.php.net/jani/:rc 
                
distfiles	php-${version}.tar.bz2:release
worksrcdir	php-${version}
checksums	md5 66a806161d4a2d3b5153ebe4cd0f2e1c \
			sha1 83d4c5a4a3e8f3bcb0da841edd8d55893dbf5394
use_bzip2	yes

depends_lib	port:libxml2  \
		port:libxslt \
		port:openssl \
		port:tidy \
		port:zlib \
		port:libiconv \
		lib:libexpat.0.4:expat  \
		lib:libintl.3:gettext \
		lib:libtiff.3:tiff \
		lib:libmhash:mhash \
		port:libmcrypt \
		lib:c-client:cclient \
		port:curl \
		port:jpeg \
		port:libpng \
		port:freetype

configure.args	\
			--mandir=${prefix}/share/man \
			--infodir=${prefix}/share/info \
			--with-config-file-path=${prefix}/etc \
			--enable-calendar \
			--with-iconv=${prefix} \
			--enable-exif \
			--enable-ftp \
			--enable-wddx\
			--with-zlib=${prefix} \
			--without-mysql \
			--with-libxml-dir=${prefix} \
			--with-gettext=${prefix} \
			--with-libxml-dir=${prefix} \
			--with-xml \
			--with-expat-dir=${prefix} \
			--with-xmlrpc \
			--enable-filepro \
			--enable-bcmath \
			--enable-trans-sid  \
			--enable-mbstring \
			--enable-dbx \
			--with-openssl=${prefix} \
			--with-mhash=${prefix} \
			--with-mcrypt=${prefix} \
			--with-tidy=${prefix} \
			--with-xsl=${prefix} \
			--with-imap=${prefix} \
			--with-imap-ssl=${prefix} \
			--with-curl=${prefix} \
			--with-gd \
			--with-jpeg-dir=${prefix} \
			--with-png-dir=${prefix} \
			--enable-gd-native-ttf \
			--with-freetype-dir=${prefix}
			
configure.env	CFLAGS=-I${prefix}/include/c-client

platform darwin 6 {
	depends_lib-append	lib:libdl:dlcompat
	configure.env-append	LDFLAGS=-L${prefix}/lib \
			CPPFLAGS="-I${prefix}/include -no-cpp-precomp -DBIND_8_COMPAT" \
			LIBS=-ldl
	configure.args-append --enable-sqlite-utf8
}

platform darwin 7 {
	configure.env-append	LDFLAGS="-L${prefix}/lib" \
			CPPFLAGS="-I${prefix}/include -no-cpp-precomp" \
			LIBS=-ldl
	configure.args-append --enable-sqlite-utf8
}

platform darwin 8 {
	configure.env-append	CC=/usr/bin/gcc-4.0 CPP=/usr/bin/cpp-4.0 CXX=/usr/bin/g++-4.0
	configure.args-append --enable-sqlite-utf8
}

platform freebsd {
	configure.env-append	LDFLAGS=-L${prefix}/lib \
					CPPFLAGS="-I${prefix}/include
}

variant macosx {
	configure.args-append	--with-kerberos=/usr --with-iodbc=/usr
}

variant apache conflicts apache2 {
	if { ! [variant_isset macosx] } {
		depends_lib-append	path:${prefix}/sbin/apxs:apache
		configure.args-append 	--with-apxs=${prefix}/sbin/apxs
	} else {
		configure.args-append	--with-apxs=/usr/sbin/apxs
	}
}

variant apache2 conflicts apache {
	depends_lib-append	path:${prefix}/apache2/bin/apxs:apache2
	configure.args-append 	--with-apxs2=${prefix}/apache2/bin/apxs
}

variant fastcgi {
	configure.args-append --enable-fastcgi \
				--enable-force-cgi-redirect \
				--enable-memory-limit
}

variant mysql3 conflicts mysql4 mysql5 {
	depends_lib-append	port:mysql
	configure.args-delete	--without-mysql
	configure.args-append	--with-mysql=${prefix} \
				--with-pdo-mysql=${prefix}
}

variant mysql4 conflicts mysql3 mysql5 {
	depends_lib-append	port:mysql4
	configure.args-delete	--without-mysql
	configure.args-append	--with-mysql=${prefix} \
				--with-pdo-mysql=${prefix}
}

variant mysql5 conflicts mysql3 mysql4 {
	depends_lib-append	port:mysql5
	configure.args-delete	--without-mysql
	configure.args-append	--with-mysql=${workpath}/mysql5 \
				--with-pdo-mysql=${prefix}/bin/mysql_config5 \
				--with-mysql-sock=${prefix}/var/run/mysql5/mysqld.sock \
				--with-mysqli=${prefix}/bin/mysql_config5
	post-extract {
		file mkdir "${workpath}/mysql5"
		file link -symbolic "${workpath}/mysql5/lib" "${prefix}/lib/mysql5"
		file link -symbolic "${workpath}/mysql5/include" "${prefix}/include/mysql5"
	}	
}

variant postgresql {
	depends_lib-append	port:postgresql8
	configure.args-append	--with-pgsql=${prefix}/lib/pgsql8/bin \
				--with-pdo-pgsql=${prefix}/lib/pgsql8/bin
}

# if no apache/apache2/fastcgi variant is set, we set it (need better default variant management)
if { ![variant_isset apache] && ![variant_isset apache2] && ![variant_isset fastcgi] } {
	if { ! [variant_isset macosx] } {
		depends_lib-append	path:${prefix}/sbin/apxs:apache
		configure.args-append 	--with-apxs=${prefix}/sbin/apxs
	} else {
		configure.args-append	--with-apxs=/usr/sbin/apxs
	}
}

destroot.args	INSTALL_ROOT=${destroot} PHP_PEAR_INSTALL_DIR=${prefix}/lib/php

destroot.target	install-cli install-build install-headers install-programs

post-destroot	{
	# copy fastcgi php binary to the bin dir under a new name so it doesn't overwrite cli version
	if { [variant_isset fastcgi] } {
		xinstall -m 755 ${worksrcpath}/sapi/cgi/php ${destroot}${prefix}/bin/php-fcgi
	}

	#copy module
	if { [variant_isset apache] } {

		xinstall -m 755 -d ${destroot}${prefix}/libexec/apache \
			${destroot}${prefix}/etc/apache/extras-conf
		xinstall -m 755 ${worksrcpath}/libs/libphp5.so ${destroot}${prefix}/libexec/apache/
		xinstall -m 755 -c ${filespath}/mod_php.conf ${destroot}$prefix/etc/apache/extras-conf
	} 
	
	if { [variant_isset apache2] } {
		xinstall -m 755 -d ${destroot}${prefix}/apache2/modules \
			${destroot}${prefix}/apache2/conf/extras-conf
		xinstall -m 755 ${worksrcpath}/libs/libphp5.so ${destroot}${prefix}/apache2/modules/
		xinstall -m 755 -c ${filespath}/mod_php.conf ${destroot}${prefix}/apache2/conf/extras-conf
	}

#	file rename ${destroot}${prefix}/etc/pear.conf ${destroot}${prefix}/etc/pear.conf.sample

	#copy php.ini
	xinstall -m 755 -d ${destroot}${prefix}/etc
	xinstall -m 755 ${workpath}/${worksrcdir}/php.ini-dist ${destroot}${prefix}/etc/php.ini-dist
	xinstall -m 755 ${workpath}/${worksrcdir}/php.ini-recommended ${destroot}${prefix}/etc/php.ini-recommended

	#nuke pear-stuff in ${destroot}
	system "cd ${destroot} && rm -rf .channels .depdb .depdblock .filemap .lock"
}

post-install {
	ui_msg "\nIf this is your first install, you might want"

	if { [variant_isset apache] } {
		ui_msg " * enable php in apache :\n"

		ui_msg "cd ${prefix}/libexec/apache"
		ui_msg "${prefix}/apache/bin/apxs -a -e -n \"php5\" libphp5.so\n"
		ui_msg "* copy  ${prefix}/etc/php.ini-dist to  ${prefix}/etc/php.ini"
	}

	if { [variant_isset apache2] } {
		ui_msg "cd ${prefix}/apache2/modules"
		ui_msg "${prefix}/apache2/bin/apxs -a -e -n \"php5\" libphp5.so\n"
		ui_msg "* copy  ${prefix}/etc/php.ini-dist to  ${prefix}/etc/php.ini"
	}

#	ui_msg "* copy  ${prefix}/etc/pear.conf.sample to  ${prefix}/etc/pear.conf" 
}

