mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-11 02:50:24 +00:00
0926c2d681
- add support for embedded php library - add support for dtrace Re-organize bsd.php.mk: - add WANT_PHP_EMD - fix handling of WANT_PHP_* - remove php4 extensions From UPDATING: Suhosin patch has been disabled until the new version will be released (soon). Suhosing extension will take more time. LINKTHR option is now enabled by default, be sure to flag it if you are updating using an old saved configuration. sqlite2 extension has been permanently removed. If you want to remain at PHP 5.3, a new port (lang/php53) will be committed soon.
353 lines
12 KiB
Makefile
353 lines
12 KiB
Makefile
#
|
|
# bsd.php.mk - Support for PHP-based ports.
|
|
#
|
|
# Created by: Alex Dupre <ale@FreeBSD.org>
|
|
#
|
|
# For FreeBSD committers:
|
|
# Please send all suggested changes to the maintainer instead of committing
|
|
# them to CVS yourself.
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
# Adding 'USE_PHP=yes' to a port includes this Makefile after bsd.ports.pre.mk.
|
|
# If the port requires a predefined set of PHP extensions, they can be
|
|
# listed in this way:
|
|
#
|
|
# USE_PHP= ext1 ext2 ext3
|
|
#
|
|
# The port can set these options in its Makefile before bsd.ports.pre.mk:
|
|
#
|
|
# DEFAULT_PHP_VER=N - Use PHP version N if PHP is not yet installed.
|
|
# IGNORE_WITH_PHP=N - The port doesn't work with PHP version N.
|
|
# USE_PHPIZE=yes - Use to build a PHP extension.
|
|
# USE_PHPEXT=yes - Use to build, install and register a PHP extension.
|
|
# USE_PHP_BUILD=yes - Set PHP also as a build dependency.
|
|
# WANT_PHP_CLI=yes - Want the CLI version of PHP.
|
|
# WANT_PHP_CGI=yes - Want the CGI version of PHP.
|
|
# WANT_PHP_MOD=yes - Want the Apache Module for PHP.
|
|
# WANT_PHP_WEB=yes - Want the Apache Module or the CGI version of PHP.
|
|
# WANT_PHP_EMB=yes - Want the embedded library version of PHP.
|
|
#
|
|
# You may combine multiple WANT_PHP_* knobs.
|
|
# Don't specify any WANT_PHP_* knob if your port will work with every PHP SAPI.
|
|
#
|
|
|
|
.if !defined(_PHPMKINCLUDED)
|
|
|
|
PHP_Include_MAINTAINER= ale@FreeBSD.org
|
|
|
|
_PHPMKINCLUDED= yes
|
|
|
|
PHPBASE?= ${LOCALBASE}
|
|
.if exists(${PHPBASE}/etc/php.conf)
|
|
.include "${PHPBASE}/etc/php.conf"
|
|
PHP_EXT_DIR!= ${PHPBASE}/bin/php-config --extension-dir | ${SED} -ne 's,^${PHPBASE}/lib/php/\(.*\),\1,p'
|
|
|
|
.else
|
|
DEFAULT_PHP_VER?= 5
|
|
|
|
PHP_VER?= ${DEFAULT_PHP_VER}
|
|
.if ${PHP_VER} == 52
|
|
PHP_EXT_DIR= 20060613
|
|
.elif ${PHP_VER} == 53
|
|
PHP_EXT_DIR= 20090626
|
|
PHP_EXT_INC= pcre spl
|
|
.else
|
|
PHP_EXT_DIR= 20100412
|
|
PHP_EXT_INC= pcre spl
|
|
.endif
|
|
|
|
HTTPD?= ${LOCALBASE}/sbin/httpd
|
|
.if exists(${HTTPD})
|
|
APACHE_VERSION!= ${HTTPD} -V | ${SED} -ne 's/^Server version: Apache\/\([0-9]\)\.\([0-9]*\).*/\1\2/p'
|
|
. if ${APACHE_VERSION} > 13
|
|
APXS?= ${LOCALBASE}/sbin/apxs
|
|
APACHE_MPM!= ${APXS} -q MPM_NAME
|
|
. if ${APACHE_MPM} == "worker"
|
|
PHP_EXT_DIR:= ${PHP_EXT_DIR}-zts
|
|
. endif
|
|
. endif
|
|
.elif defined(APACHE_PORT)
|
|
APACHE_VERSION!= ${ECHO_CMD} ${APACHE_PORT} | ${SED} -ne 's,.*/apache\([0-9]*\).*,\1,p'
|
|
. if ${APACHE_VERSION} > 13 && defined(WITH_MPM) && ${WITH_MPM} == "worker"
|
|
PHP_EXT_DIR:= ${PHP_EXT_DIR}-zts
|
|
. endif
|
|
.endif
|
|
|
|
.if defined(WITH_DEBUG)
|
|
PHP_EXT_DIR:= ${PHP_EXT_DIR}-debug
|
|
.endif
|
|
PHP_SAPI?= ""
|
|
.endif # .if exists(${PHPBASE}/etc/php.conf)
|
|
PHP_EXT_INC?= ""
|
|
|
|
.if defined(IGNORE_WITH_PHP)
|
|
. for VER in ${IGNORE_WITH_PHP}
|
|
. if ${PHP_VER} == "${VER}"
|
|
IGNORE= cannot install: doesn't work with PHP version : ${PHP_VER} (Doesn't support PHP ${IGNORE_WITH_PHP})
|
|
. endif
|
|
. endfor
|
|
.endif
|
|
|
|
.if defined(WANT_PHP_WEB)
|
|
. if defined(WANT_PHP_CGI) || defined(WANT_PHP_MOD)
|
|
check-makevars::
|
|
@${ECHO_CMD} "If you define WANT_PHP_WEB you cannot set also WANT_PHP_CGI"
|
|
@${ECHO_CMD} "or WANT_PHP_MOD. Use only one of them."
|
|
@${FALSE}
|
|
. elif defined(PHP_VERSION) && ${PHP_SAPI:Mcgi} == "" && ${PHP_SAPI:Mfpm} == "" && ${PHP_SAPI:Mmod} == ""
|
|
check-makevars::
|
|
@${ECHO_CMD} "This port requires the Apache Module or the CGI version of PHP, but you have"
|
|
@${ECHO_CMD} "already installed a PHP port without them."
|
|
@${FALSE}
|
|
. endif
|
|
.endif
|
|
|
|
.if defined(WANT_PHP_CGI)
|
|
. if defined(PHP_VERSION) && ${PHP_SAPI:Mcgi} == "" && ${PHP_SAPI:Mfpm} == ""
|
|
check-makevars::
|
|
@${ECHO_CMD} "This port requires the CGI version of PHP, but you have already"
|
|
@${ECHO_CMD} "installed a PHP port without CGI."
|
|
@${FALSE}
|
|
. endif
|
|
.endif
|
|
|
|
.if defined(WANT_PHP_CLI)
|
|
. if defined(PHP_VERSION) && ${PHP_SAPI:Mcli} == ""
|
|
check-makevars::
|
|
@${ECHO_CMD} "This port requires the CLI version of PHP, but you have already"
|
|
@${ECHO_CMD} "installed a PHP port without CLI."
|
|
@${FALSE}
|
|
. endif
|
|
.endif
|
|
|
|
.if defined(WANT_PHP_MOD)
|
|
. if defined(PHP_VERSION) && ${PHP_SAPI:Mmod} == ""
|
|
check-makevars::
|
|
@${ECHO_CMD} "This port requires the Apache Module for PHP, but you have already"
|
|
@${ECHO_CMD} "installed a PHP port without the Apache Module."
|
|
@${FALSE}
|
|
. endif
|
|
.endif
|
|
|
|
.if defined(WANT_PHP_EMB)
|
|
. if defined(PHP_VERSION) && ${PHP_SAPI:Membed} == ""
|
|
check-makevars::
|
|
@${ECHO_CMD} "This port requires the embedded library version of PHP, but you have already"
|
|
@${ECHO_CMD} "installed a PHP port without the embedded library."
|
|
@${FALSE}
|
|
. endif
|
|
.endif
|
|
|
|
PHP_PORT?= lang/php${PHP_VER}
|
|
|
|
.if defined(USE_PHP_BUILD)
|
|
BUILD_DEPENDS+= ${PHPBASE}/include/php/main/php.h:${PORTSDIR}/${PHP_PORT}
|
|
.endif
|
|
RUN_DEPENDS+= ${PHPBASE}/include/php/main/php.h:${PORTSDIR}/${PHP_PORT}
|
|
|
|
PLIST_SUB+= PHP_EXT_DIR=${PHP_EXT_DIR}
|
|
SUB_LIST+= PHP_EXT_DIR=${PHP_EXT_DIR}
|
|
|
|
.if defined(USE_PHPIZE) || defined(USE_PHPEXT)
|
|
BUILD_DEPENDS+= ${PHPBASE}/bin/phpize:${PORTSDIR}/${PHP_PORT}
|
|
GNU_CONFIGURE= yes
|
|
USE_AUTOTOOLS+= autoconf:env
|
|
CONFIGURE_ARGS+=--with-php-config=${PHPBASE}/bin/php-config
|
|
|
|
configure-message: phpize-message do-phpize
|
|
|
|
phpize-message:
|
|
@${ECHO_MSG} "===> PHPizing for ${PKGNAME}"
|
|
|
|
do-phpize:
|
|
@(cd ${WRKSRC}; ${SETENV} ${SCRIPTS_ENV} ${PHPBASE}/bin/phpize)
|
|
.endif
|
|
|
|
.endif
|
|
|
|
.if defined(_POSTMKINCLUDED) && defined(USE_PHPEXT)
|
|
PHP_MODNAME?= ${PORTNAME}
|
|
PHP_HEADER_DIRS?= ""
|
|
|
|
do-install:
|
|
@${MKDIR} ${PREFIX}/lib/php/${PHP_EXT_DIR}
|
|
@${INSTALL_DATA} ${WRKSRC}/modules/${PHP_MODNAME}.so \
|
|
${PREFIX}/lib/php/${PHP_EXT_DIR}
|
|
. for header in . ${PHP_HEADER_DIRS}
|
|
@${MKDIR} ${PREFIX}/include/php/ext/${PHP_MODNAME}/${header}
|
|
@${INSTALL_DATA} ${WRKSRC}/${header}/*.h \
|
|
${PREFIX}/include/php/ext/${PHP_MODNAME}/${header}
|
|
. endfor
|
|
@${RM} -f ${PREFIX}/include/php/ext/${PHP_MODNAME}/config.h
|
|
@${GREP} "#define \(COMPILE\|HAVE\|USE\)_" ${WRKSRC}/config.h \
|
|
> ${PREFIX}/include/php/ext/${PHP_MODNAME}/config.h
|
|
@${ECHO_CMD} \#include \"ext/${PHP_MODNAME}/config.h\" \
|
|
>> ${PREFIX}/include/php/ext/php_config.h
|
|
@${MKDIR} ${PREFIX}/etc/php
|
|
@${ECHO_CMD} extension=${PHP_MODNAME}.so \
|
|
>> ${PREFIX}/etc/php/extensions.ini
|
|
|
|
add-plist-info: add-plist-phpext
|
|
add-plist-phpext:
|
|
@${ECHO_CMD} "lib/php/${PHP_EXT_DIR}/${PHP_MODNAME}.so" \
|
|
>> ${TMPPLIST}
|
|
@${ECHO_CMD} "@unexec rmdir %D/lib/php/${PHP_EXT_DIR} 2> /dev/null || true" \
|
|
>> ${TMPPLIST}
|
|
@${FIND} -P ${PREFIX}/include/php/ext/${PHP_MODNAME} ! -type d 2>/dev/null | \
|
|
${SED} -ne 's,^${PREFIX}/,,p' >> ${TMPPLIST}
|
|
@${FIND} -P -d ${PREFIX}/include/php/ext/${PHP_MODNAME} -type d 2>/dev/null | \
|
|
${SED} -ne 's,^${PREFIX}/,@dirrm ,p' >> ${TMPPLIST}
|
|
@${ECHO_CMD} "@exec echo \#include \\\"ext/${PHP_MODNAME}/config.h\\\" >> %D/include/php/ext/php_config.h" \
|
|
>> ${TMPPLIST}
|
|
@${ECHO_CMD} "@unexec cp %D/include/php/ext/php_config.h %D/include/php/ext/php_config.h.orig" \
|
|
>> ${TMPPLIST}
|
|
@${ECHO_CMD} "@unexec grep -v ext/${PHP_MODNAME}/config.h %D/include/php/ext/php_config.h.orig > %D/include/php/ext/php_config.h || true" \
|
|
>> ${TMPPLIST}
|
|
@${ECHO_CMD} "@unexec rm %D/include/php/ext/php_config.h.orig" \
|
|
>> ${TMPPLIST}
|
|
@${ECHO_CMD} "@exec mkdir -p %D/etc/php" \
|
|
>> ${TMPPLIST}
|
|
@${ECHO_CMD} "@exec echo extension=${PHP_MODNAME}.so >> %D/etc/php/extensions.ini" \
|
|
>> ${TMPPLIST}
|
|
@${ECHO_CMD} "@unexec cp %D/etc/php/extensions.ini %D/etc/php/extensions.ini.orig" \
|
|
>> ${TMPPLIST}
|
|
@${ECHO_CMD} "@unexec grep -v extension=${PHP_MODNAME}\\\.so %D/etc/php/extensions.ini.orig > %D/etc/php/extensions.ini || true" \
|
|
>> ${TMPPLIST}
|
|
@${ECHO_CMD} "@unexec rm %D/etc/php/extensions.ini.orig" \
|
|
>> ${TMPPLIST}
|
|
@${ECHO_CMD} "@unexec [ -s %D/etc/php/extensions.ini ] || rm %D/etc/php/extensions.ini" \
|
|
>> ${TMPPLIST}
|
|
@${ECHO_CMD} "@unexec rmdir %D/etc/php 2> /dev/null || true" \
|
|
>> ${TMPPLIST}
|
|
|
|
security-check: php-ini
|
|
|
|
php-ini:
|
|
@${ECHO_CMD} "****************************************************************************"
|
|
@${ECHO_CMD} ""
|
|
@${ECHO_CMD} "The following line has been added to your ${PREFIX}/etc/php/extensions.ini"
|
|
@${ECHO_CMD} "configuration file to automatically load the installed extension:"
|
|
@${ECHO_CMD} ""
|
|
@${ECHO_CMD} "extension=${PHP_MODNAME}.so"
|
|
@${ECHO_CMD} ""
|
|
@${ECHO_CMD} "****************************************************************************"
|
|
.endif
|
|
|
|
# Extensions
|
|
.if defined(_POSTMKINCLUDED) && ${USE_PHP:L} != "yes"
|
|
# non-version specific components
|
|
_USE_PHP_ALL= apc bcmath bitset bz2 calendar ctype curl dba dom \
|
|
exif fileinfo filter ftp gd gettext gmp \
|
|
hash iconv imap interbase intl json ldap mbstring mcrypt \
|
|
memcache mssql mysql mysqli odbc \
|
|
openssl pcntl pcre pdf pdo pdo_mysql pdo_pgsql pdo_sqlite pgsql posix \
|
|
pspell radius readline recode session shmop simplexml snmp soap\
|
|
sockets spl sybase_ct sysvmsg sysvsem sysvshm \
|
|
tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zip zlib
|
|
# version specific components
|
|
_USE_PHP_VER5= ${_USE_PHP_ALL} phar sqlite3
|
|
_USE_PHP_VER52= ${_USE_PHP_ALL} dbase mhash ming ncurses oci8 sqlite
|
|
_USE_PHP_VER53= ${_USE_PHP_ALL} phar sqlite sqlite3
|
|
|
|
apc_DEPENDS= www/pecl-APC
|
|
bcmath_DEPENDS= math/php${PHP_VER}-bcmath
|
|
bitset_DEPENDS= math/pecl-bitset
|
|
bz2_DEPENDS= archivers/php${PHP_VER}-bz2
|
|
calendar_DEPENDS= misc/php${PHP_VER}-calendar
|
|
ctype_DEPENDS= textproc/php${PHP_VER}-ctype
|
|
curl_DEPENDS= ftp/php${PHP_VER}-curl
|
|
dba_DEPENDS= databases/php${PHP_VER}-dba
|
|
dbase_DEPENDS= databases/php${PHP_VER}-dbase
|
|
dom_DEPENDS= textproc/php${PHP_VER}-dom
|
|
exif_DEPENDS= graphics/php${PHP_VER}-exif
|
|
filter_DEPENDS= security/php${PHP_VER}-filter
|
|
ftp_DEPENDS= ftp/php${PHP_VER}-ftp
|
|
gd_DEPENDS= graphics/php${PHP_VER}-gd
|
|
gettext_DEPENDS=devel/php${PHP_VER}-gettext
|
|
gmp_DEPENDS= math/php${PHP_VER}-gmp
|
|
iconv_DEPENDS= converters/php${PHP_VER}-iconv
|
|
imap_DEPENDS= mail/php${PHP_VER}-imap
|
|
interbase_DEPENDS= databases/php${PHP_VER}-interbase
|
|
intl_DEPENDS= devel/pecl-intl
|
|
ldap_DEPENDS= net/php${PHP_VER}-ldap
|
|
mbstring_DEPENDS= converters/php${PHP_VER}-mbstring
|
|
mcrypt_DEPENDS= security/php${PHP_VER}-mcrypt
|
|
memcache_DEPENDS= databases/pecl-memcache
|
|
mhash_DEPENDS= security/php${PHP_VER}-mhash
|
|
mssql_DEPENDS= databases/php${PHP_VER}-mssql
|
|
mysql_DEPENDS= databases/php${PHP_VER}-mysql
|
|
mysqli_DEPENDS= databases/php${PHP_VER}-mysqli
|
|
ncurses_DEPENDS=devel/php${PHP_VER}-ncurses
|
|
odbc_DEPENDS= databases/php${PHP_VER}-odbc
|
|
oci8_DEPENDS= databases/php${PHP_VER}-oci8
|
|
openssl_DEPENDS=security/php${PHP_VER}-openssl
|
|
pcntl_DEPENDS= devel/php${PHP_VER}-pcntl
|
|
pcre_DEPENDS= devel/php${PHP_VER}-pcre
|
|
pdf_DEPENDS= print/pecl-pdflib
|
|
pdo_DEPENDS= databases/php${PHP_VER}-pdo
|
|
pdo_mysql_DEPENDS= databases/php${PHP_VER}-pdo_mysql
|
|
pdo_pgsql_DEPENDS= databases/php${PHP_VER}-pdo_pgsql
|
|
pdo_sqlite_DEPENDS= databases/php${PHP_VER}-pdo_sqlite
|
|
pgsql_DEPENDS= databases/php${PHP_VER}-pgsql
|
|
phar_DEPENDS= archivers/php${PHP_VER}-phar
|
|
posix_DEPENDS= sysutils/php${PHP_VER}-posix
|
|
pspell_DEPENDS= textproc/php${PHP_VER}-pspell
|
|
radius_DEPENDS= net/pecl-radius
|
|
readline_DEPENDS= devel/php${PHP_VER}-readline
|
|
recode_DEPENDS= converters/php${PHP_VER}-recode
|
|
session_DEPENDS=www/php${PHP_VER}-session
|
|
shmop_DEPENDS= devel/php${PHP_VER}-shmop
|
|
simplexml_DEPENDS= textproc/php${PHP_VER}-simplexml
|
|
snmp_DEPENDS= net-mgmt/php${PHP_VER}-snmp
|
|
soap_DEPENDS= net/php${PHP_VER}-soap
|
|
sockets_DEPENDS=net/php${PHP_VER}-sockets
|
|
spl_DEPENDS= devel/php${PHP_VER}-spl
|
|
sqlite_DEPENDS= databases/php${PHP_VER}-sqlite
|
|
sqlite3_DEPENDS=databases/php${PHP_VER}-sqlite3
|
|
sybase_ct_DEPENDS= databases/php${PHP_VER}-sybase_ct
|
|
sysvmsg_DEPENDS=devel/php${PHP_VER}-sysvmsg
|
|
sysvsem_DEPENDS=devel/php${PHP_VER}-sysvsem
|
|
sysvshm_DEPENDS=devel/php${PHP_VER}-sysvshm
|
|
tidy_DEPENDS= www/php${PHP_VER}-tidy
|
|
tokenizer_DEPENDS= devel/php${PHP_VER}-tokenizer
|
|
wddx_DEPENDS= textproc/php${PHP_VER}-wddx
|
|
xml_DEPENDS= textproc/php${PHP_VER}-xml
|
|
xmlreader_DEPENDS= textproc/php${PHP_VER}-xmlreader
|
|
xmlrpc_DEPENDS= net/php${PHP_VER}-xmlrpc
|
|
xmlwriter_DEPENDS= textproc/php${PHP_VER}-xmlwriter
|
|
xsl_DEPENDS= textproc/php${PHP_VER}-xsl
|
|
zlib_DEPENDS= archivers/php${PHP_VER}-zlib
|
|
.if ${PHP_VER} == 52
|
|
fileinfo_DEPENDS= sysutils/pecl-fileinfo
|
|
.else
|
|
fileinfo_DEPENDS= sysutils/php${PHP_VER}-fileinfo
|
|
.endif
|
|
hash_DEPENDS= security/php${PHP_VER}-hash
|
|
json_DEPENDS= devel/php${PHP_VER}-json
|
|
zip_DEPENDS= archivers/php${PHP_VER}-zip
|
|
|
|
. for extension in ${USE_PHP}
|
|
. if ${_USE_PHP_VER${PHP_VER}:M${extension}} != ""
|
|
. if ${PHP_EXT_INC:M${extension}} == ""
|
|
. if defined(USE_PHP_BUILD)
|
|
BUILD_DEPENDS+= ${PHPBASE}/lib/php/${PHP_EXT_DIR}/${extension}.so:${PORTSDIR}/${${extension}_DEPENDS}
|
|
. endif
|
|
RUN_DEPENDS+= ${PHPBASE}/lib/php/${PHP_EXT_DIR}/${extension}.so:${PORTSDIR}/${${extension}_DEPENDS}
|
|
. endif
|
|
. else
|
|
ext= ${extension}
|
|
. if ${ext} == "mhash"
|
|
. if defined(USE_PHP_BUILD)
|
|
BUILD_DEPENDS+= ${PHPBASE}/lib/php/${PHP_EXT_DIR}/hash.so:${PORTSDIR}/${hash_DEPENDS}
|
|
. endif
|
|
RUN_DEPENDS+= ${PHPBASE}/lib/php/${PHP_EXT_DIR}/hash.so:${PORTSDIR}/${hash_DEPENDS}
|
|
. elif ${ext:L} != "yes"
|
|
check-makevars::
|
|
@${ECHO_CMD} "Unknown extension ${extension} for PHP ${PHP_VER}."
|
|
@${FALSE}
|
|
. endif
|
|
. endif
|
|
. endfor
|
|
.endif
|