summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorobache <obache@pkgsrc.org>2014-11-02 08:51:41 +0000
committerobache <obache@pkgsrc.org>2014-11-02 08:51:41 +0000
commit92ec85fcc8377830def31ca3b1dc0a693d03ad82 (patch)
tree30821fa0cb88532ae1ba8174f988ffeb455cd5b4 /lang
parent109314d94162cc39c17e5cf34aa4aeb39fed2099 (diff)
downloadpkgsrc-92ec85fcc8377830def31ca3b1dc0a693d03ad82.tar.gz
Add experimental auto extension registory support with PHP_AUTO_REGISTER_EXT=yes
(=no by default).
Diffstat (limited to 'lang')
-rw-r--r--lang/php/ext.mk41
1 files changed, 37 insertions, 4 deletions
diff --git a/lang/php/ext.mk b/lang/php/ext.mk
index d4601c08bbd..2c8b9146967 100644
--- a/lang/php/ext.mk
+++ b/lang/php/ext.mk
@@ -1,4 +1,4 @@
-# $NetBSD: ext.mk,v 1.31 2014/11/02 06:49:28 obache Exp $
+# $NetBSD: ext.mk,v 1.32 2014/11/02 08:51:41 obache Exp $
#
# PHP extension package framework, for both PECL and bundled PHP extensions.
#
@@ -10,7 +10,7 @@
PHPEXT_MK= defined
_VARGROUPS+= phpext
-_USER_VARS.phpext= # none
+_USER_VARS.phpext= PHP_AUTO_REGISTER_EXT
_PKG_VARS.phpext= MODNAME PECL_VERSION PKGMODNAME MODULESDIR \
USE_PHP_EXT_PATCHES
_SYS_VARS.phpext= DISTINFO_FILE PATCHDIR
@@ -62,15 +62,19 @@ USE_LIBTOOL= YES
LIBTOOL_OVERRIDE= YES
USE_TOOLS+= automake
+PHP_AUTO_REGISTER_EXT?= NO
+
# Ensure we export symbols in the linked shared object.
LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS}
MAKE_ENV+= EXPORT_SYMBOLS_LDFLAGS="${EXPORT_SYMBOLS_LDFLAGS}"
PLIST_SRC+= ${.CURDIR}/../../lang/php/PLIST.module
-.if !empty(PHP_ZEND_EXTENSION:U:M[Yy][Ye][Ss])
+.if empty(PHP_AUTO_REGISTER_EXT:M[Yy][Ee][Ss])
+. if !empty(PHP_ZEND_EXTENSION:U:M[Yy][Ye][Ss])
MESSAGE_SRC= ${.CURDIR}/../../lang/php/MESSAGE.zend-module
-.else
+. else
MESSAGE_SRC= ${.CURDIR}/../../lang/php/MESSAGE.module
+. endif
.endif
MESSAGE_SUBST+= MODNAME=${PKGMODNAME}
MESSAGE_SUBST+= PHP_EXTENSION_DIR=${PHP_EXTENSION_DIR}
@@ -118,6 +122,35 @@ do-patch:
done || ${TRUE}
.endif
+.if !empty(PHP_AUTO_REGISTER_EXT:M[Yy][Ee][Ss])
+_PHP_EXT_INI_NAME= pkg-${MODNAME}.ini
+
+post-build: ${WRKDIR}/${_PHP_EXT_INI_NAME}
+
+${WRKDIR}/${_PHP_EXT_INI_NAME}:
+.if !empty(PHP_ZEND_EXTENSION:U:M[Yy][Ye][Ss])
+
+ @${ECHO} zend_extension=${PREFIX}/${PHP_EXTENSION_DIR}/${PKGMODNAME}.so > ${.TARGET}
+.else
+ @${ECHO} extension=${PKGMODNAME}.so > ${.TARGET}
+.endif
+
+
+post-install: install-php-ext-ini
+
+.PHONY: install-php-ext-ini
+install-php-ext-ini: ${WRKDIR}/${_PHP_EXT_INI_NAME}
+ ${INSTALL_DATA_DIR} ${DESTDIR}${PREFIX}/share/examples/php.d
+ ${INSTALL_DATA} ${WRKDIR}/${_PHP_EXT_INI_NAME} ${DESTDIR}${PREFIX}/share/examples/php.d/
+
+MAKE_DIRS+= ${PKG_SYSCONFDIR}/php.d
+CONF_FILES+= ${PREFIX}/share/examples/php.d/${_PHP_EXT_INI_NAME} ${PKG_SYSCONFDIR}/php.d/${_PHP_EXT_INI_NAME}
+
+GENERATE_PLIST+= ${ECHO} share/examples/php.d/${_PHP_EXT_INI_NAME};
+PRINT_PLIST_AWK+= /^share\/examples\/php.d\/${_PHP_EXT_INI_NAME}/ { next; }
+
+.endif
+
.if defined(PHPPKGSRCDIR)
.include "${PHPPKGSRCDIR}/buildlink3.mk"
.endif