diff options
Diffstat (limited to 'auto/modules/php')
-rw-r--r-- | auto/modules/php | 126 |
1 files changed, 78 insertions, 48 deletions
diff --git a/auto/modules/php b/auto/modules/php index 97d1ac43..e2e5498a 100644 --- a/auto/modules/php +++ b/auto/modules/php @@ -58,6 +58,7 @@ NXT_PHP=${NXT_PHP_CONFIG%-config*} NXT_PHP_MODULE=${NXT_PHP_MODULE=${NXT_PHP##*/}} NXT_PHP_LIB_PATH=${NXT_PHP_LIB_PATH=} NXT_PHP_LIB_STATIC=${NXT_PHP_LIB_STATIC=no} +NXT_PHP_ADDITIONAL_FLAGS= $echo "configuring PHP module" @@ -75,6 +76,14 @@ if /bin/sh -c "${NXT_PHP_CONFIG} --version" >> $NXT_AUTOCONF_ERR 2>&1; then NXT_PHP_VERSION="`${NXT_PHP_CONFIG} --version`" $echo " + PHP SAPI: [`${NXT_PHP_CONFIG} --php-sapis`]" + NXT_PHP_MAJOR_VERSION=${NXT_PHP_VERSION%%.*} + NXT_PHP_MINOR_VERSION=${NXT_PHP_VERSION#??} + NXT_PHP_MINOR_VERSION=${NXT_PHP_MINOR_VERSION%.*} + + if [ $NXT_PHP_MAJOR_VERSION = 5 -a $NXT_PHP_MINOR_VERSION -lt 4 ]; then + NXT_PHP_ADDITIONAL_FLAGS=-Wno-write-strings + fi + NXT_PHP_INCLUDE="`${NXT_PHP_CONFIG} --includes`" if [ $NXT_PHP_LIB_STATIC = yes ]; then @@ -101,77 +110,98 @@ if /bin/sh -c "${NXT_PHP_CONFIG} --version" >> $NXT_AUTOCONF_ERR 2>&1; then fi fi - nxt_feature="PHP embed SAPI" - nxt_feature_name="" - nxt_feature_run=no - nxt_feature_incs="${NXT_PHP_INCLUDE}" - nxt_feature_libs="${NXT_PHP_LIB} ${NXT_PHP_LDFLAGS}" - nxt_feature_test=" - #include <php.h> - #include <php_main.h> - - int main() { - php_module_startup(NULL, NULL, 0); - return 0; - }" - - . auto/feature - - if [ $nxt_found = no ]; then - $echo - $echo $0: error: no PHP embed SAPI found. - $echo - exit 1; - fi +else + $echo + $echo $0: error: no PHP found. + $echo + exit 1; +fi - # Bug #71041 (https://bugs.php.net/bug.php?id=71041). - nxt_feature="PHP zend_signal_startup()" - nxt_feature_name="" - nxt_feature_run=no - nxt_feature_incs="${NXT_PHP_INCLUDE}" - nxt_feature_libs="${NXT_PHP_LIB} ${NXT_PHP_LDFLAGS}" - nxt_feature_test=" - #include <php.h> - #include <php_main.h> +nxt_feature="PHP version" +nxt_feature_name="" +nxt_feature_run=value +nxt_feature_incs="${NXT_PHP_INCLUDE}" +nxt_feature_libs="${NXT_PHP_LIB} ${NXT_PHP_LDFLAGS}" +nxt_feature_test=" + #include <php.h> - int main() { - zend_signal_startup(); - return 0; - }" + int main() { + printf(\"%s\", PHP_VERSION); + return 0; + }" - . auto/feature +. auto/feature - if [ $nxt_found = yes ]; then - NXT_ZEND_SIGNAL_STARTUP=1 - else - NXT_ZEND_SIGNAL_STARTUP=0 - fi -else +nxt_feature="PHP embed SAPI" +nxt_feature_name="" +nxt_feature_run=no +nxt_feature_incs="${NXT_PHP_INCLUDE}" +nxt_feature_libs="${NXT_PHP_LIB} ${NXT_PHP_LDFLAGS}" +nxt_feature_test=" + #include <php.h> + #include <php_main.h> + + int main() { + php_module_startup(NULL, NULL, 0); + return 0; + }" + +. auto/feature + +if [ $nxt_found = no ]; then $echo - $echo $0: error: no PHP found. + $echo $0: error: no PHP embed SAPI found. $echo exit 1; fi -nxt_feature="PHP version" +nxt_feature="PHP Zend Thread Safety" nxt_feature_name="" -nxt_feature_run=value +nxt_feature_run=no nxt_feature_incs="${NXT_PHP_INCLUDE}" nxt_feature_libs="${NXT_PHP_LIB} ${NXT_PHP_LDFLAGS}" nxt_feature_test=" #include <php.h> + #include <php_main.h> int main() { - printf(\"%s\", PHP_VERSION); + #ifndef ZTS + #error ZTS is not defined. + #endif return 0; }" . auto/feature +# Bug #71041 (https://bugs.php.net/bug.php?id=71041). + +nxt_feature="PHP zend_signal_startup()" +nxt_feature_name="" +nxt_feature_run=no +nxt_feature_incs="${NXT_PHP_INCLUDE}" +nxt_feature_libs="${NXT_PHP_LIB} ${NXT_PHP_LDFLAGS}" +nxt_feature_test=" + #include <php.h> + #include <php_main.h> + + int main() { + zend_signal_startup(); + return 0; + }" + +. auto/feature + +if [ $nxt_found = yes ]; then + NXT_ZEND_SIGNAL_STARTUP=1 +else + NXT_ZEND_SIGNAL_STARTUP=0 +fi + + if grep ^$NXT_PHP_MODULE: $NXT_MAKEFILE 2>&1 > /dev/null; then $echo $echo $0: error: duplicate \"$NXT_PHP_MODULE\" module configured. @@ -204,8 +234,8 @@ for nxt_src in $NXT_PHP_MODULE_SRCS; do cat << END >> $NXT_MAKEFILE $NXT_BUILD_DIR/$nxt_obj: $nxt_src $NXT_VERSION_H - \$(CC) -c \$(CFLAGS) \$(NXT_INCS) $NXT_PHP_INCLUDE \\ - -DNXT_ZEND_SIGNAL_STARTUP=$NXT_ZEND_SIGNAL_STARTUP \\ + \$(CC) -c \$(CFLAGS) $NXT_PHP_ADDITIONAL_FLAGS \$(NXT_INCS) \\ + $NXT_PHP_INCLUDE -DNXT_ZEND_SIGNAL_STARTUP=$NXT_ZEND_SIGNAL_STARTUP \\ $nxt_dep_flags \\ -o $NXT_BUILD_DIR/$nxt_obj $nxt_src $nxt_dep_post |