a project to simplify installation of open source software
on Mac OS X and Darwin
# $Id: Portfile 22500 2007-03-03 01:11:21Z ryandesign@macports.org $
PortSystem 1.0
name php5
version 5.2.1
revision 1
categories lang php www
maintainers ryandesign@macports.org jwa@macports.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}
checksums md5 261218e3569a777dbd87c16a15f05c8d \
sha1 978ce7cde3d988d9aa672e32e46f815a8b25baa0
use_bzip2 yes
depends_lib port:libxml2 \
port:libxslt \
port:openssl \
port:tidy \
port:zlib \
port:libiconv \
port:expat \
port:gettext \
port: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-xml \
--with-expat-dir=${prefix} \
--with-xmlrpc \
--enable-soap \
--enable-filepro \
--enable-bcmath \
--enable-trans-sid \
--enable-mbstring \
--enable-dbx \
--enable-dba \
--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 \
--without-pear \
--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
# Work around php bug #40410; should be able to remove this once php 5.2.2 is released
patchfiles-append patch-posix.c.diff
}
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
# Work around php bug #40410; should be able to remove this once php 5.2.2 is released
patchfiles-append patch-posix.c.diff
}
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-ldap=/usr --with-kerberos=/usr --with-iodbc=/usr
}
variant apache conflicts apache2 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
}
}
variant apache2 conflicts apache fastcgi {
depends_lib-append path:${prefix}/apache2/bin/apxs:apache2
configure.args-append --with-apxs2=${prefix}/apache2/bin/apxs
}
variant fastcgi conflicts apache apache2 {
configure.args-append --enable-fastcgi \
--enable-force-cgi-redirect \
--enable-memory-limit
}
variant snmp conflicts macports_snmp {
# This compiles PHP5 with SNMP linked against Apple's included NET-SNMP.
configure.args-append --with-snmp=/usr
}
variant macports_snmp conflicts snmp {
# This compiles PHP with SNMP linked against MacPorts' NET-SNMP.
depends_lib-append port:net-snmp
configure.args-append --with-snmp=${prefix}
}
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:postgresql82
configure.args-append --with-pgsql=${prefix}/lib/postgresql82/bin \
--with-pdo-pgsql=${prefix}/lib/postgresql82/bin
}
# add semaphore, shared memory and IPC functions; see http://www.php.net/sem
variant ipc {
configure.args-append \
--enable-shmop \
--enable-sysvsem \
--enable-sysvshm \
--enable-sysvmsg
}
# add process control functions; see http://www.php.net/pcntl
variant pcntl {
configure.args-append --enable-pcntl
}
# 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
}
}
variant pear {
configure.args-delete --without-pear
configure.args-append --with-pear=${prefix}/lib/php
destroot.target-append install-pear
destroot.args-append PHP_PEAR_INSTALL_DIR=${prefix}/lib/php
post-destroot {
#nuke pear-stuff in ${destroot}
system "cd ${destroot} && rm -rf .channels .depdb .depdblock .filemap .lock"
system "if \[ -f ${prefix}/lib/php/.depdblock \]; then rm -f ${destroot}${prefix}/lib/php/.depdblock; fi"
system "if \[ -f ${prefix}/lib/php/.depdb \]; then rm -f ${destroot}${prefix}/lib/php/.depdb; fi"
system "if \[ -f ${prefix}/lib/php/.filemap \]; then rm -f ${destroot}${prefix}/lib/php/.filemap; fi"
system "if \[ -f ${prefix}/lib/php/.lock \]; then rm -f ${destroot}${prefix}/lib/php/.lock; fi"
system "if \[ -d ${prefix}/lib/php/.channels \]; then rm -rf ${destroot}${prefix}/lib/php/.channels; fi"
}
}
destroot.args INSTALL_ROOT=${destroot}
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
}
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"
}