aboutsummaryrefslogtreecommitdiffstats
path: root/Mk
diff options
context:
space:
mode:
authorale <ale@FreeBSD.org>2004-07-19 15:15:24 +0800
committerale <ale@FreeBSD.org>2004-07-19 15:15:24 +0800
commitbb71dd127f2916fed6da6d1a60001f04131b3a63 (patch)
treeabc9f3e896de8579e32082914080beb5cee321e5 /Mk
parentdd26b450b15c9e5d672e1e69c3bd11ed1e29e836 (diff)
downloadfreebsd-ports-gnome-bb71dd127f2916fed6da6d1a60001f04131b3a63.tar.gz
freebsd-ports-gnome-bb71dd127f2916fed6da6d1a60001f04131b3a63.tar.zst
freebsd-ports-gnome-bb71dd127f2916fed6da6d1a60001f04131b3a63.zip
Second step of PHP mega-commit:
- update bsd.php.mk to handle the new PHP infrastructure
Diffstat (limited to 'Mk')
-rw-r--r--Mk/bsd.php.mk240
1 files changed, 205 insertions, 35 deletions
diff --git a/Mk/bsd.php.mk b/Mk/bsd.php.mk
index 440a515d8584..c0685fb4639b 100644
--- a/Mk/bsd.php.mk
+++ b/Mk/bsd.php.mk
@@ -10,13 +10,20 @@
# $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:
#
# 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_SCR=yes - Want the CLI or the CGI version of PHP.
# WANT_PHP_WEB=yes - Want the Apache Module or the CGI version of PHP.
# WANT_PHP_PEAR=yes - Want the PEAR framework.
#
@@ -47,19 +54,14 @@ PHP_EXT_DIR:= ${PHP_EXT_DIR}-zts
PHP_EXT_DIR:= ${PHP_EXT_DIR}-debug
.endif
.endif
-.if !defined(WITHOUT_PEAR)
-PHP_PEAR?= yes
-.else
-PHP_PEAR?= no
-.endif
PHP_SAPI?= ""
.if defined(BROKEN_WITH_PHP)
-. for VER in ${BROKEN_WITH_PHP}
-. if ${PHP_VER} == "${VER}"
-BROKEN= "Doesn't work with PHP version : ${PHP_VER} (Doesn't support PHP ${BROKEN_WITH_PHP})"
-. endif
-. endfor
+. for VER in ${BROKEN_WITH_PHP}
+. if ${PHP_VER} == "${VER}"
+BROKEN= "Doesn't work with PHP version : ${PHP_VER} (Doesn't support PHP ${BROKEN_WITH_PHP})"
+. endif
+. endfor
.endif
.if defined(WANT_PHP_WEB)
@@ -74,14 +76,23 @@ check-makevars::
@${ECHO_CMD} "This port requires the Apache Module or the CGI version of PHP, but you have"
@${ECHO_CMD} "already installed a conflicting PHP port without them."
@${FALSE}
-. else
-. if defined(WANT_PHP_CLI) || defined(WANT_PHP_PEAR)
-PHP_PORT?= ${PORTSDIR}/lang/php${PHP_VER}
-. else
-PHP_PORT?= ${PORTSDIR}/www/mod_php${PHP_VER}
-PHP_PEAR?= no
. endif
. endif
+.else
+
+.if defined(WANT_PHP_SCR)
+. if defined(WANT_PHP_CGI) || defined(WANT_PHP_CLI)
+check-makevars::
+ @${ECHO_CMD} "If you define WANT_PHP_SCR you cannot set also WANT_PHP_CGI"
+ @${ECHO_CMD} "or WANT_PHP_CLI. Use only one of them."
+ @${FALSE}
+. else
+. if defined(PHP_VERSION) && ${PHP_SAPI} == "mod"
+check-makevars::
+ @${ECHO_CMD} "This port requires the CLI or the CGI version of PHP, but you have"
+ @${ECHO_CMD} "already installed a conflicting PHP port without them."
+ @${FALSE}
+. endif
. endif
.else
@@ -99,35 +110,25 @@ check-makevars::
@${FALSE}
. else
PHP_PORT?= ${PORTSDIR}/www/php${PHP_VER}-cgi
-PHP_PEAR?= no
. endif
. endif
.else
-.if defined(WANT_PHP_CLI) && !defined(WANT_PHP_MOD)
+.if defined(WANT_PHP_CLI)
. if defined(PHP_VERSION) && ${PHP_SAPI} != "full" && ${PHP_SAPI} != "cli"
check-makevars::
@${ECHO_CMD} "This port requires the CLI version of PHP, but you have already"
@${ECHO_CMD} "installed a conflicting PHP port without CLI."
@${FALSE}
-. else
-PHP_PORT?= ${PORTSDIR}/lang/php${PHP_VER}-cli
. endif
.else
-.if !defined(WANT_PHP_CLI) && defined(WANT_PHP_MOD)
+.if defined(WANT_PHP_MOD)
. if defined(PHP_VERSION) && (${PHP_SAPI} != "full" && ${PHP_SAPI} != "mod")
check-makevars::
@${ECHO_CMD} "This port requires the Apache Module for PHP, but you have already"
@${ECHO_CMD} "installed a conflicting PHP port without the Apache Module."
@${FALSE}
-. else
-. if defined(WANT_PHP_PEAR)
-PHP_PORT?= ${PORTSDIR}/lang/php${PHP_VER}
-. else
-PHP_PORT?= ${PORTSDIR}/www/mod_php${PHP_VER}
-PHP_PEAR?= no
-. endif
. endif
.else
@@ -141,25 +142,194 @@ PHP_PORT?= ${PORTSDIR}/lang/php${PHP_VER}
.endif
-.if defined(WANT_PHP_PEAR) && ${PHP_PEAR} == "no"
-BROKEN= "This port requires the PEAR framework, but you have already" \
- "installed a PHP port without PEAR"
.endif
+.if defined(WANT_PHP_PEAR)
+. if defined(USE_PHP_BUILD)
+BUILD_DEPENDS+= pear:${PORTSDIR}/devel/php${PHP_VER}-pear
+. endif
+RUN_DEPENDS+= pear:${PORTSDIR}/devel/php${PHP_VER}-pear
+.endif
+
+.if defined(USE_PHP_BUILD)
+BUILD_DEPENDS+= ${LOCALBASE}/include/php/main/php.h:${PHP_PORT}
+.endif
RUN_DEPENDS+= ${LOCALBASE}/include/php/main/php.h:${PHP_PORT}
PLIST_SUB+= PHP_EXT_DIR=${PHP_EXT_DIR}
-.if defined(USE_PHPIZE)
+.if defined(USE_PHPIZE) || defined(USE_PHPEXT)
BUILD_DEPENDS+= phpize:${PHP_PORT}
USE_LIBTOOL_VER= 13
WANT_AUTOMAKE_VER= 15
WANT_AUTOCONF_VER= 253
CONFIGURE_ARGS+=--with-php-config=${LOCALBASE}/bin/php-config
-configure-message: phpize
+configure-message: phpize-message do-phpize
+
+phpize-message:
+ @${ECHO_MSG} "===> PHPizing for ${PKGNAME}"
-phpize:
- @${ECHO_MSG} "===> PHPizing for ${DISTNAME}"
+do-phpize:
@(cd ${WRKSRC}; ${SETENV} ${SCRIPTS_ENV} ${LOCALBASE}/bin/phpize)
.endif
+
+.if 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
+ @${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
+ @${ECHO_CMD} extension=${PHP_MODNAME}.so \
+ >> ${PREFIX}/etc/php.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 echo extension=${PHP_MODNAME}.so >> %D/etc/php.ini" \
+ >> ${TMPPLIST}
+ @${ECHO_CMD} "@unexec cp %D/etc/php.ini %D/etc/php.ini.orig" \
+ >> ${TMPPLIST}
+ @${ECHO_CMD} "@unexec grep -v ${PHP_MODNAME}\\\.so %D/etc/php.ini.orig > %D/etc/php.ini || true" \
+ >> ${TMPPLIST}
+ @${ECHO_CMD} "@unexec rm %D/etc/php.ini.orig" \
+ >> ${TMPPLIST}
+
+security-check: php-ini
+
+php-ini:
+ @${ECHO_CMD} "****************************************************************************"
+ @${ECHO_CMD} ""
+ @${ECHO_CMD} "The following line has been added to your ${PREFIX}/etc/php.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 ${USE_PHP:L} != "yes"
+# non-version specific components
+_USE_PHP_ALL= bcmath bz2 calendar crack ctype curl dba dbase dbx dio \
+ dom domxml exif filepro fribidi ftp gd gettext gmp \
+ iconv imap interbase ldap mbstring mcal mcrypt mcve mhash \
+ ming mnogosearch mssql mysql mysqli ncurses odbc \
+ openssl oracle overload panda pcntl pcre pdf pgsql posix \
+ pspell readline recode session shmop simplexml snmp soap \
+ sockets sqlite sybase sybase_ct sysvmsg sysvsem sysvshm \
+ tidy tokenizer wddx xml xmlrpc xsl xslt yaz yp zip zlib
+
+bcmath_DEPENDS= math/php${PHP_VER}-bcmath
+bz2_DEPENDS= archivers/php${PHP_VER}-bz2
+calendar_DEPENDS= misc/php${PHP_VER}-calendar
+crack_DEPENDS= security/php${PHP_VER}-crack
+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
+dbx_DEPENDS= databases/php${PHP_VER}-dbx
+dio_DEPENDS= devel/php${PHP_VER}-dio
+dom_DEPENDS= textproc/php${PHP_VER}-dom
+domxml_DEPENDS= textproc/php${PHP_VER}-domxml
+exif_DEPENDS= graphics/php${PHP_VER}-exif
+filepro_DEPENDS=databases/php${PHP_VER}-filepro
+fribidi_DEPENDS=converters/pecl-fribidi
+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
+ldap_DEPENDS= net/php${PHP_VER}-ldap
+mbstring_DEPENDS= converters/php${PHP_VER}-mbstring
+mcal_DEPENDS= misc/php${PHP_VER}-mcal
+mcrypt_DEPENDS= security/php${PHP_VER}-mcrypt
+mcve_DEPENDS= devel/php${PHP_VER}-mcve
+mhash_DEPENDS= security/php${PHP_VER}-mhash
+ming_DEPENDS= graphics/php${PHP_VER}-ming
+mnogosearch_DEPENDS= www/php${PHP_VER}-mnogosearch
+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
+openssl_DEPENDS=security/php${PHP_VER}-openssl
+oracle_DEPENDS= databases/php${PHP_VER}-oracle
+overload_DEPENDS=lang/php${PHP_VER}-overload
+panda_DEPENDS= print/pecl-panda
+pcntl_DEPENDS= devel/php${PHP_VER}-pcntl
+pcre_DEPENDS= devel/php${PHP_VER}-pcre
+pdf_DEPENDS= print/pecl-pdflib
+pgsql_DEPENDS= databases/php${PHP_VER}-pgsql
+posix_DEPENDS= sysutils/php${PHP_VER}-posix
+pspell_DEPENDS= textproc/php${PHP_VER}-pspell
+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
+sqlite_DEPENDS= databases/php${PHP_VER}-sqlite
+sybase_DEPENDS= databases/php${PHP_VER}-sybase
+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
+xmlrpc_DEPENDS= net/php${PHP_VER}-xmlrpc
+xsl_DEPENDS= textproc/php${PHP_VER}-xsl
+xslt_DEPENDS= textproc/php${PHP_VER}-xslt
+yaz_DEPENDS= net/pecl-yaz
+yp_DEPENDS= net/php${PHP_VER}-yp
+zip_DEPENDS= archivers/pecl-zip
+zlib_DEPENDS= archivers/php${PHP_VER}-zlib
+
+. for extension in ${USE_PHP}
+. if ${_USE_PHP_ALL:M${extension}} != "" && exists(${PORTSDIR}/${${extension}_DEPENDS})
+. if defined(USE_PHP_BUILD)
+BUILD_DEPENDS+= ${LOCALBASE}/lib/php/${PHP_EXT_DIR}/${extension}.so:${PORTSDIR}/${${extension}_DEPENDS}
+. endif
+RUN_DEPENDS+= ${LOCALBASE}/lib/php/${PHP_EXT_DIR}/${extension}.so:${PORTSDIR}/${${extension}_DEPENDS}
+. else
+isyes= ${extension}
+. if ${isyes:L} != "yes"
+check-makevars::
+ @${ECHO_CMD} "Unknown extension ${extension}."
+ @${FALSE}
+. endif
+. endif
+. endfor
+.endif