Check for php program in autoconf

Use the detected PHP (minimum 7.1) to run gen_stubs, and other
code generation scripts in the future.
This commit is contained in:
Nikita Popov 2021-03-16 12:28:47 +01:00
parent 9140c9038a
commit fa9e2b31b8
3 changed files with 27 additions and 8 deletions

View File

@ -142,17 +142,11 @@ prof-clean:
prof-use:
CCACHE_DISABLE=1 $(MAKE) PROF_FLAGS=-fprofile-use all
# only php above 7.1.0 supports nullable return type
%_arginfo.h: %.stub.php
@if test -e "$(top_srcdir)/build/gen_stub.php"; then \
if test ! -z "$(PHP_EXECUTABLE)" && test -x "$(PHP_EXECUTABLE)"; then \
if test ! -z "$(PHP)" && test -x "$(PHP)"; then \
echo Parse $< to generate $@;\
$(PHP_EXECUTABLE) $(top_srcdir)/build/gen_stub.php $<; \
elif type php >/dev/null 2>/dev/null; then \
if test `php -v | head -n1 | cut -d" " -f 2 | sed "s/$$/\n7.0.99/" | sort -rV | head -n1` != "7.0.99"; then \
echo Parse $< to generate $@;\
php $(top_srcdir)/build/gen_stub.php $<; \
fi; \
$(PHP) $(top_srcdir)/build/gen_stub.php $<; \
fi; \
fi;

View File

@ -1876,6 +1876,30 @@ AC_DEFUN([PHP_PROG_RE2C],[
PHP_SUBST(RE2C)
])
AC_DEFUN([PHP_PROG_PHP],[
AC_CHECK_PROG(PHP, php, php)
if test -n "$PHP"; then
AC_MSG_CHECKING([for php version])
php_version=$($PHP -v | head -n1 | cut -d ' ' -f 2)
if test -z "$php_version"; then
php_version=0.0.0
fi
ac_IFS=$IFS; IFS="."
set $php_version
IFS=$ac_IFS
php_version_num=`expr [$]{1:-0} \* 10000 + [$]{2:-0} \* 100 + [$]{3:-0}`
dnl Minimum supported version for gen_stubs.php is PHP 7.1.
if test "$php_version_num" -lt 70100; then
AC_MSG_RESULT([$php_version (too old)])
unset PHP
else
AC_MSG_RESULT([$php_version (ok)])
fi
fi
PHP_SUBST(PHP)
])
dnl ----------------------------------------------------------------------------
dnl Common setup macros: PHP_SETUP_<what>
dnl ----------------------------------------------------------------------------

View File

@ -155,6 +155,7 @@ dnl Checks for some support/generator progs.
PHP_PROG_AWK
PHP_PROG_BISON([3.0.0])
PHP_PROG_RE2C([0.13.4])
PHP_PROG_PHP()
PHP_ARG_ENABLE([re2c-cgoto],
[whether to enable computed goto gcc extension with re2c],