# $Id: Portfile,v 1.31 2006/05/03 11:47:44 jwa Exp $

PortSystem 1.0
name            php4
version         4.4.2
revision        2

categories      lang php www
maintainers    	jwa@opendarwin.org
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}
use_bzip2	yes
checksums	md5 28051cd9ef43490dd9727a4d442011b5

depends_lib	port:libiconv \
		port:expat  \
		port:gettext \
		port:zlib \
		port:openssl \
		port:tiff \
		port:libxml2

configure.args	--mandir=${prefix}/share/man --infodir=${prefix}/share/info \
		--includedir=${prefix}/include/php4 --libdir=${prefix}/lib/php4 \
		--sysconfdir=${prefix}/etc/php4 --with-config-file-path=${prefix}/etc \
		--with-pear=${prefix}/lib/php4 --program-suffix=4 \
		--enable-mbstring --enable-dbx --enable-safe-mode --enable-dba \
		--enable-calendar --enable-exif --enable-ftp --enable-wddx \
		--enable-filepro --enable-bcmath --enable-trans-sid --enable-cli \
		--with-xml --with-xmlrpc \
		--without-mysql \
		--with-iconv=${prefix} \
		--with-zlib=${prefix} \
		--with-gettext=${prefix} \
		--with-expat-dir=${prefix} \
		--with-dom=${prefix} \
		--with-openssl=${prefix}
configure.env

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

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

platform darwin 8 {
	configure.env-append	CC=/usr/bin/gcc-4.0 CPP=/usr/bin/cpp-4.0
}

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

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

variant apache {
	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 {
	depends_lib-append	path:${prefix}/apache2/bin/apxs:apache2
	configure.args-append 	--with-apxs2=${prefix}/apache2/bin/apxs
}

variant crypt {
	depends_lib-append	port:mhash port:libmcrypt
	configure.args-append	--with-mhash=${prefix} --with-mcrypt=${prefix}
}	

variant curl {
	depends_lib-append	port:curl
	configure.args-append	--with-curl=${prefix}
}

variant gd {
	depends_lib-append	port:jpeg port:libpng port:freetype
	
	configure.args-append	--with-gd \
				--with-jpeg-dir=${prefix} \
				--with-png-dir=${prefix} \
				--enable-gd-native-ttf \
				--with-freetype-dir=${prefix}
}

variant mysql3 {
	depends_lib-append	port:mysql3
	configure.args-append	--with-mysql=${prefix}
}

variant mysql4 {
	depends_lib-append	port:mysql4
	configure.args-append	--with-mysql=${prefix}
}


variant mysql5 {
        depends_lib-append      port:mysql5
        configure.args-delete   --without-mysql
        configure.args-append   --with-mysql=${workpath}/mysql5
        post-extract {
                file mkdir "${workpath}/mysql5"
                file link -symbolic "${workpath}/mysql5/lib" "${prefix}/lib/mysql5"
                file link -symbolic "${workpath}/mysql5/include" "${prefix}/include/mysql5"
        }

	post-destroot {
		reinplace "s;${workpath}/mysql5/lib;${prefix}/lib/mysql5;" ${destroot}${prefix}/bin/php-config4
	}
}

variant postgresql8 {
	pre-configure {
		file mkdir ${workpath}/pgsql8
		system "cd ${workpath}/pgsql8 && \
			ln -sf ${prefix}/include/pgsql8 include && \
			ln -sf ${prefix}/lib/pgsql8 lib && \
			ln -sf ${prefix}/lib/pgsql8/bin bin"
	}
	depends_lib-append	port:postgresql8
	configure.args-append	--with-pgsql=${workpath}/pgsql8
}

variant ldap {
	depends_lib-append	port:openldap
	configure.args-append --with-ldap=${prefix}
}

variant imap {
	depends_lib-append		port:cclient
	configure.env-append	 CFLAGS=-I${prefix}/include/c-client
	configure.args-append 	--with-imap=${prefix} --with-imap-ssl=/usr
}

variant xslt {
	depends_lib-append	port:sablotron
	configure.args-append	--enable-xslt --with-xslt-sablot=${prefix} --with-iconv-dir=${prefix}
}
 
# if no apache/apache2 variant is set, we set it (waiting a better default variant management)
if { ![variant_isset apache] && ![variant_isset 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
	}
}

destroot.args	INSTALL_ROOT=${destroot} PHP_PEAR_INSTALL_DIR=${prefix}/lib/php
destroot.target	install-cli install-pear install-build install-headers install-programs

post-destroot	{
	#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/libphp4.so ${destroot}${prefix}/libexec/apache/
		xinstall -m 755 -c ${filespath}/mod_php.conf ${destroot}$prefix/etc/apache/extras-conf/mod_php.conf.sample
	}

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

	file rename ${destroot}${prefix}/etc/php4/pear.conf ${destroot}${prefix}/etc/php4/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

	# rename files
	cd ${destroot}${prefix}
	file rename bin/pear bin/pear4
	reinplace "s|${prefix}/bin/php|${prefix}/bin/php4|g" bin/pear4

	# remove crap
	system "cd ${destroot} && rm -r .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 \"php4\" libphp4.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 \"php4\" libphp4.so\n"
		ui_msg "* copy  ${prefix}/etc/php.ini-dist to  ${prefix}/etc/php.ini"
	}
	
	ui_msg "* copy  ${prefix}/etc/php4/pear.conf.sample to  ${prefix}/etc/php4/pear.conf" 
}
