| @@ -1,148 +1,149 @@ | | | @@ -1,148 +1,149 @@ |
1 | # $NetBSD: ext.mk,v 1.41 2016/07/24 14:01:55 jdolecek Exp $ | | 1 | # $NetBSD: ext.mk,v 1.42 2016/07/26 08:19:45 jdolecek Exp $ |
2 | # | | 2 | # |
3 | # PHP extension package framework, for both PECL and bundled PHP extensions. | | 3 | # PHP extension package framework, for both PECL and bundled PHP extensions. |
4 | # | | 4 | # |
5 | # Just include this file, define MODNAME, define PKGREVISION if necessary, | | 5 | # Just include this file, define MODNAME, define PKGREVISION if necessary, |
6 | # add dependencies, and add the appropriate --with-configure-arg, then include | | 6 | # add dependencies, and add the appropriate --with-configure-arg, then include |
7 | # bsd.pkg.mk. | | 7 | # bsd.pkg.mk. |
8 | | | 8 | |
9 | .if !defined(PHPEXT_MK) | | 9 | .if !defined(PHPEXT_MK) |
10 | PHPEXT_MK= defined | | 10 | PHPEXT_MK= defined |
11 | | | 11 | |
12 | _VARGROUPS+= phpext | | 12 | _VARGROUPS+= phpext |
13 | _USER_VARS.phpext= # none | | 13 | _USER_VARS.phpext= # none |
14 | _PKG_VARS.phpext= MODNAME PECL_VERSION PKGMODNAME MODULESDIR \ | | 14 | _PKG_VARS.phpext= MODNAME PECL_VERSION PKGMODNAME MODULESDIR \ |
15 | USE_PHP_EXT_PATCHES | | 15 | USE_PHP_EXT_PATCHES |
16 | _SYS_VARS.phpext= DISTINFO_FILE PATCHDIR | | 16 | _SYS_VARS.phpext= DISTINFO_FILE PATCHDIR |
17 | | | 17 | |
18 | .if defined(PECL_VERSION) | | 18 | .if defined(PECL_VERSION) |
19 | HOMEPAGE?= http://pecl.php.net/package/${MODNAME} | | 19 | HOMEPAGE?= http://pecl.php.net/package/${MODNAME} |
20 | .endif | | 20 | .endif |
21 | | | 21 | |
22 | .include "../../lang/php/phpversion.mk" | | 22 | .include "../../lang/php/phpversion.mk" |
23 | | | 23 | |
24 | .if defined(PHPPKGSRCDIR) | | 24 | .if defined(PHPPKGSRCDIR) |
25 | .include "${PHPPKGSRCDIR}/Makefile.common" | | 25 | .include "${PHPPKGSRCDIR}/Makefile.common" |
26 | .endif | | 26 | .endif |
27 | | | 27 | |
28 | PKGMODNAME?= ${MODNAME:S/-/_/} | | 28 | PKGMODNAME?= ${MODNAME:S/-/_/} |
29 | PHPSETUPSUBDIR?= #empty | | 29 | PHPSETUPSUBDIR?= #empty |
30 | MODULESDIR?= ${WRKSRC}/modules | | 30 | MODULESDIR?= ${WRKSRC}/modules |
31 | PLIST_SUBST+= MODNAME=${PKGMODNAME} | | 31 | PLIST_SUBST+= MODNAME=${MODNAME} |
| | | 32 | PLIST_SUBST+= PKGMODNAME=${PKGMODNAME} |
32 | PLIST_SUBST+= SHLIB_SUFFIX=${SHLIB_SUFFIX} | | 33 | PLIST_SUBST+= SHLIB_SUFFIX=${SHLIB_SUFFIX} |
33 | PLIST_SUBST+= PKG_SYSCONFDIR=${PKG_SYSCONFDIR} | | 34 | PLIST_SUBST+= PKG_SYSCONFDIR=${PKG_SYSCONFDIR} |
34 | | | 35 | |
35 | .if !defined(PECL_VERSION) | | 36 | .if !defined(PECL_VERSION) |
36 | # bundled extension | | 37 | # bundled extension |
37 | PKGNAME?= ${PHP_PKG_PREFIX}-${MODNAME}-${PHP_VERSION} | | 38 | PKGNAME?= ${PHP_PKG_PREFIX}-${MODNAME}-${PHP_VERSION} |
38 | EXTRACT_ELEMENTS?= ${DISTNAME}/ext/${PKGMODNAME} | | 39 | EXTRACT_ELEMENTS?= ${DISTNAME}/ext/${PKGMODNAME} |
39 | WRKSRC?= ${WRKDIR}/${EXTRACT_ELEMENTS} | | 40 | WRKSRC?= ${WRKDIR}/${EXTRACT_ELEMENTS} |
40 | DISTINFO_FILE= ${.CURDIR}/${PHPPKGSRCDIR}/distinfo | | 41 | DISTINFO_FILE= ${.CURDIR}/${PHPPKGSRCDIR}/distinfo |
41 | .else | | 42 | .else |
42 | # PECL extension | | 43 | # PECL extension |
43 | PKGNAME?= ${PHP_PKG_PREFIX}-${MODNAME}-${PECL_VERSION} | | 44 | PKGNAME?= ${PHP_PKG_PREFIX}-${MODNAME}-${PECL_VERSION} |
44 | MASTER_SITES?= http://pecl.php.net/get/ | | 45 | MASTER_SITES?= http://pecl.php.net/get/ |
45 | PECL_DISTNAME?= ${MODNAME}-${PECL_VERSION} | | 46 | PECL_DISTNAME?= ${MODNAME}-${PECL_VERSION} |
46 | DISTNAME= ${PECL_DISTNAME} | | 47 | DISTNAME= ${PECL_DISTNAME} |
47 | DIST_SUBDIR?= php-${MODNAME} | | 48 | DIST_SUBDIR?= php-${MODNAME} |
48 | EXTRACT_SUFX?= .tgz | | 49 | EXTRACT_SUFX?= .tgz |
49 | .endif | | 50 | .endif |
50 | | | 51 | |
51 | EGDIR= ${PREFIX}/share/examples/php | | 52 | EGDIR= ${PREFIX}/share/examples/php |
52 | CONF_FILES= ${EGDIR}/${PKGMODNAME}.ini ${EXT_CONF_DIR}/${PKGMODNAME}.ini | | 53 | CONF_FILES= ${EGDIR}/${MODNAME}.ini ${EXT_CONF_DIR}/${MODNAME}.ini |
53 | | | 54 | |
54 | EXT_CONF_DIR= ${PKG_SYSCONFDIR}/php.d | | 55 | EXT_CONF_DIR= ${PKG_SYSCONFDIR}/php.d |
55 | MAKE_DIRS+= ${EXT_CONF_DIR} | | 56 | MAKE_DIRS+= ${EXT_CONF_DIR} |
56 | MAKE_DIRS+= ${EGDIR} | | 57 | MAKE_DIRS+= ${EGDIR} |
57 | | | 58 | |
58 | SUBST_CLASSES+= ext-ini | | 59 | SUBST_CLASSES+= ext-ini |
59 | SUBST_FILES.ext-ini= ${PKGMODNAME}.ini | | 60 | SUBST_FILES.ext-ini= ${MODNAME}.ini |
60 | SUBST_MESSAGE.ext-ini=Creating module ini file | | 61 | SUBST_MESSAGE.ext-ini=Creating module ini file |
61 | SUBST_SED.ext-ini+= -e 's,@MODNAME@,${PKGMODNAME},g' | | 62 | SUBST_SED.ext-ini+= -e 's,@MODNAME@,${PKGMODNAME},g' |
62 | SUBST_SED.ext-ini+= -e 's,@EXTENSION_FILE@,${EXTENSION_FILE},g' | | 63 | SUBST_SED.ext-ini+= -e 's,@EXTENSION_FILE@,${EXTENSION_FILE},g' |
63 | SUBST_SED.ext-ini+= -e 's,@EXTENSION_DIRECTIVE@,${EXTENSION_DIRECTIVE},g' | | 64 | SUBST_SED.ext-ini+= -e 's,@EXTENSION_DIRECTIVE@,${EXTENSION_DIRECTIVE},g' |
64 | SUBST_STAGE.ext-ini= post-build | | 65 | SUBST_STAGE.ext-ini= post-build |
65 | | | 66 | |
66 | PHPIZE?= ${BUILDLINK_PREFIX.php}/bin/phpize | | 67 | PHPIZE?= ${BUILDLINK_PREFIX.php}/bin/phpize |
67 | PHP_CONFIG?= ${BUILDLINK_PREFIX.php}/bin/php-config | | 68 | PHP_CONFIG?= ${BUILDLINK_PREFIX.php}/bin/php-config |
68 | | | 69 | |
69 | GNU_CONFIGURE= YES | | 70 | GNU_CONFIGURE= YES |
70 | CONFIGURE_ARGS+= --with-php-config=${PHP_CONFIG} | | 71 | CONFIGURE_ARGS+= --with-php-config=${PHP_CONFIG} |
71 | | | 72 | |
72 | USE_CONFIG_WRAPPER= YES | | 73 | USE_CONFIG_WRAPPER= YES |
73 | USE_LIBTOOL= YES | | 74 | USE_LIBTOOL= YES |
74 | LIBTOOL_OVERRIDE= YES | | 75 | LIBTOOL_OVERRIDE= YES |
75 | USE_TOOLS+= automake | | 76 | USE_TOOLS+= automake |
76 | | | 77 | |
77 | # Ensure we export symbols in the linked shared object. | | 78 | # Ensure we export symbols in the linked shared object. |
78 | LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS} | | 79 | LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS} |
79 | MAKE_ENV+= EXPORT_SYMBOLS_LDFLAGS="${EXPORT_SYMBOLS_LDFLAGS}" | | 80 | MAKE_ENV+= EXPORT_SYMBOLS_LDFLAGS="${EXPORT_SYMBOLS_LDFLAGS}" |
80 | | | 81 | |
81 | PLIST_SRC+= ${.CURDIR}/../../lang/php/PLIST.module | | 82 | PLIST_SRC+= ${.CURDIR}/../../lang/php/PLIST.module |
82 | MESSAGE_SRC+= ${.CURDIR}/../../lang/php/MESSAGE.module | | 83 | MESSAGE_SRC+= ${.CURDIR}/../../lang/php/MESSAGE.module |
83 | MESSAGE_SUBST+= MODNAME=${PKGMODNAME} | | 84 | MESSAGE_SUBST+= MODNAME=${PKGMODNAME} |
84 | MESSAGE_SUBST+= EXT_CONF_DIR=${EXT_CONF_DIR} | | 85 | MESSAGE_SUBST+= EXT_CONF_DIR=${EXT_CONF_DIR} |
85 | .if !empty(PHP_ZEND_EXTENSION:U:M[Yy][Ye][Ss]) | | 86 | .if !empty(PHP_ZEND_EXTENSION:U:M[Yy][Ye][Ss]) |
86 | EXTENSION_DIRECTIVE= zend_extension | | 87 | EXTENSION_DIRECTIVE= zend_extension |
87 | EXTENSION_FILE= ${PREFIX}/${PHP_EXTENSION_DIR}/${PKGMODNAME}.${SHLIB_SUFFIX} | | 88 | EXTENSION_FILE= ${PREFIX}/${PHP_EXTENSION_DIR}/${PKGMODNAME}.${SHLIB_SUFFIX} |
88 | .else | | 89 | .else |
89 | EXTENSION_DIRECTIVE= extension | | 90 | EXTENSION_DIRECTIVE= extension |
90 | EXTENSION_FILE= ${PKGMODNAME}.${SHLIB_SUFFIX} | | 91 | EXTENSION_FILE= ${PKGMODNAME}.${SHLIB_SUFFIX} |
91 | .endif | | 92 | .endif |
92 | MESSAGE_SUBST+= EXTENSION_DIRECTIVE=${EXTENSION_DIRECTIVE} | | 93 | MESSAGE_SUBST+= EXTENSION_DIRECTIVE=${EXTENSION_DIRECTIVE} |
93 | MESSAGE_SUBST+= EXTENSION_FILE=${EXTENSION_FILE} | | 94 | MESSAGE_SUBST+= EXTENSION_FILE=${EXTENSION_FILE} |
94 | | | 95 | |
95 | # Also include extension-specific message | | 96 | # Also include extension-specific message |
96 | .if exists(${.CURDIR}/MESSAGE) | | 97 | .if exists(${.CURDIR}/MESSAGE) |
97 | MESSAGE_SRC+= ${.CURDIR}/MESSAGE | | 98 | MESSAGE_SRC+= ${.CURDIR}/MESSAGE |
98 | .endif | | 99 | .endif |
99 | | | 100 | |
100 | .if ${OBJECT_FMT} == "SOM" | | 101 | .if ${OBJECT_FMT} == "SOM" |
101 | SHLIB_SUFFIX= sl | | 102 | SHLIB_SUFFIX= sl |
102 | .else | | 103 | .else |
103 | SHLIB_SUFFIX= so | | 104 | SHLIB_SUFFIX= so |
104 | .endif | | 105 | .endif |
105 | | | 106 | |
106 | pre-configure: phpize-module | | 107 | pre-configure: phpize-module |
107 | | | 108 | |
108 | phpize-module: | | 109 | phpize-module: |
109 | @cookie=${WRKDIR}/.phpize_module_done; \ | | 110 | @cookie=${WRKDIR}/.phpize_module_done; \ |
110 | if [ ! -f $${cookie} ]; then \ | | 111 | if [ ! -f $${cookie} ]; then \ |
111 | cd ${WRKSRC}/${PHPSETUPSUBDIR} && \ | | 112 | cd ${WRKSRC}/${PHPSETUPSUBDIR} && \ |
112 | ${SETENV} \ | | 113 | ${SETENV} \ |
113 | AUTOCONF=${TOOLS_DIR:Q}/bin/autoconf \ | | 114 | AUTOCONF=${TOOLS_DIR:Q}/bin/autoconf \ |
114 | AUTOHEADER=${TOOLS_DIR:Q}/bin/autoheader \ | | 115 | AUTOHEADER=${TOOLS_DIR:Q}/bin/autoheader \ |
115 | ACLOCAL=${TOOLS_DIR:Q}/bin/aclocal \ | | 116 | ACLOCAL=${TOOLS_DIR:Q}/bin/aclocal \ |
116 | LIBTOOLIZE=${LOCALBASE:Q}/bin/libtoolize \ | | 117 | LIBTOOLIZE=${LOCALBASE:Q}/bin/libtoolize \ |
117 | ${PHPIZE} && \ | | 118 | ${PHPIZE} && \ |
118 | ${TOUCH} ${TOUCH_FLAGS} $${cookie}; \ | | 119 | ${TOUCH} ${TOUCH_FLAGS} $${cookie}; \ |
119 | fi | | 120 | fi |
120 | | | 121 | |
121 | pre-build: | | 122 | pre-build: |
122 | ${CP} ${.CURDIR}/../../lang/php/ext.ini ${WRKSRC}/${PKGMODNAME}.ini | | 123 | ${CP} ${.CURDIR}/../../lang/php/ext.ini ${WRKSRC}/${MODNAME}.ini |
123 | | | 124 | |
124 | do-install: do-module-install | | 125 | do-install: do-module-install |
125 | | | 126 | |
126 | do-module-install: | | 127 | do-module-install: |
127 | ${INSTALL_DATA_DIR} ${DESTDIR}${PREFIX}/${PHP_EXTENSION_DIR} | | 128 | ${INSTALL_DATA_DIR} ${DESTDIR}${PREFIX}/${PHP_EXTENSION_DIR} |
128 | ${INSTALL_LIB} ${MODULESDIR}/${PKGMODNAME}.${SHLIB_SUFFIX} \ | | 129 | ${INSTALL_LIB} ${MODULESDIR}/${PKGMODNAME}.${SHLIB_SUFFIX} \ |
129 | ${DESTDIR}${PREFIX}/${PHP_EXTENSION_DIR} | | 130 | ${DESTDIR}${PREFIX}/${PHP_EXTENSION_DIR} |
130 | | | 131 | |
131 | ${INSTALL_DATA_DIR} ${DESTDIR}${EGDIR} | | 132 | ${INSTALL_DATA_DIR} ${DESTDIR}${EGDIR} |
132 | ${INSTALL_DATA} ${WRKSRC}/${PKGMODNAME}.ini ${DESTDIR}${EGDIR} | | 133 | ${INSTALL_DATA} ${WRKSRC}/${MODNAME}.ini ${DESTDIR}${EGDIR} |
133 | | | 134 | |
134 | .if defined(USE_PHP_EXT_PATCHES) | | 135 | .if defined(USE_PHP_EXT_PATCHES) |
135 | PATCHDIR= ${.CURDIR}/${PHPPKGSRCDIR}/patches | | 136 | PATCHDIR= ${.CURDIR}/${PHPPKGSRCDIR}/patches |
136 | do-patch: | | 137 | do-patch: |
137 | ${_PKG_SILENT}${_PKG_DEBUG} \ | | 138 | ${_PKG_SILENT}${_PKG_DEBUG} \ |
138 | cd ${WRKSRC}; \ | | 139 | cd ${WRKSRC}; \ |
139 | for p in `${EGREP} -l '^\+\+\+ ext/${MODNAME}/' ${PATCHDIR}/patch-*`;do\ | | 140 | for p in `${EGREP} -l '^\+\+\+ ext/${MODNAME}/' ${PATCHDIR}/patch-*`;do\ |
140 | ${SED} -e 's,^+++ ext/${MODNAME}/,+++ ,' $$p | ${PATCH} ${PATCH_ARGS}; \ | | 141 | ${SED} -e 's,^+++ ext/${MODNAME}/,+++ ,' $$p | ${PATCH} ${PATCH_ARGS}; \ |
141 | done || ${TRUE} | | 142 | done || ${TRUE} |
142 | .endif | | 143 | .endif |
143 | | | 144 | |
144 | .if defined(PHPPKGSRCDIR) | | 145 | .if defined(PHPPKGSRCDIR) |
145 | .include "${PHPPKGSRCDIR}/buildlink3.mk" | | 146 | .include "${PHPPKGSRCDIR}/buildlink3.mk" |
146 | .endif | | 147 | .endif |
147 | | | 148 | |
148 | .endif # PHPEXT_MK | | 149 | .endif # PHPEXT_MK |