1
0
mirror of https://github.com/php/php-src.git synced 2026-04-20 06:21:12 +02:00

Revamp pcre config for build with external lib

- support multiarch in addition to the usual lib path
- fix symbol checks
- fix jit availability check
- exit early on unsupported version
This commit is contained in:
Anatol Belski
2018-04-25 16:15:28 +02:00
parent a19ce1eee6
commit 217354899b

View File

@@ -22,16 +22,6 @@ PHP_ARG_WITH(pcre-jit,,[ --with-pcre-jit Enable PCRE JIT functionality
fi
AC_MSG_RESULT([$PCRE_INCDIR])
AC_MSG_CHECKING([for PCRE library location])
for j in $PHP_PCRE_REGEX $PHP_PCRE_REGEX/$PHP_LIBDIR; do
test -f $j/libpcre2-8.a || test -f $j/libpcre2-8.$SHLIB_SUFFIX_NAME && PCRE_LIBDIR=$j
done
if test -z "$PCRE_LIBDIR" ; then
AC_MSG_ERROR([Could not find libpcre2-8.(a|$SHLIB_SUFFIX_NAME) in $PHP_PCRE_REGEX])
fi
AC_MSG_RESULT([$PCRE_LIBDIR])
changequote({,})
pcre_major=`grep PCRE2_MAJOR $PCRE_INCDIR/pcre2.h | sed -e 's/[^0-9]//g'`
pcre_minor=`grep PCRE2_MINOR $PCRE_INCDIR/pcre2.h | sed -e 's/[^0-9]//g'`
@@ -45,14 +35,42 @@ PHP_ARG_WITH(pcre-jit,,[ --with-pcre-jit Enable PCRE JIT functionality
AC_MSG_ERROR([The PCRE extension requires PCRE library version >= 10.30])
fi
PHP_CHECK_LIBRARY(pcre2, pcre2_jit_exec,
AC_MSG_CHECKING([for PCRE library location])
for j in $PHP_PCRE_REGEX $PHP_PCRE_REGEX/$PHP_LIBDIR; do
test -f $j/libpcre2-8.a || test -f $j/libpcre2-8.$SHLIB_SUFFIX_NAME && PCRE_LIBDIR=$j
done
if test -z "$PCRE_LIBDIR" ; then
AC_MSG_RESULT([not found])
if test -z "$PKG_CONFIG"; then
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
fi
dnl retry once more if pkg-config is available
if test -x "$PKG_CONFIG"; then
AC_MSG_CHECKING([for PCRE library flags with pkg-config])
if test "`$PKG_CONFIG --variable=prefix libpcre2-8`" = "$PHP_PCRE_REGEX"; then
PHP_PCRE2_LDFLAGS=`$PKG_CONFIG --libs libpcre2-8`
PHP_EVAL_LIBLINE($PHP_PCRE2_LDFLAGS)
AC_MSG_RESULT([$PHP_PCRE2_LDFLAGS])
else
AC_MSG_ERROR([Could not find libpcre2-8.(a|$SHLIB_SUFFIX_NAME) in $PHP_PCRE_REGEX])
fi
else
AC_MSG_ERROR([Could not find libpcre2-8.(a|$SHLIB_SUFFIX_NAME) in $PHP_PCRE_REGEX])
fi
else
PHP_PCRE2_LDFLAGS=-L$PCRE_LIBDIR
PHP_ADD_LIBRARY_WITH_PATH(pcre2-8, $PCRE_LIBDIR)
AC_MSG_RESULT([$PCRE_LIBDIR])
fi
PHP_CHECK_LIBRARY(pcre2-8, pcre2_jit_compile_8,
[
AC_DEFINE(HAVE_PCRE_JIT_SUPPORT, 1, [ ])
],[
],[
-L$PCRE_LIBDIR
$PHP_PCRE2_LDFLAGS
])
PHP_ADD_LIBRARY_WITH_PATH(pcre2, $PCRE_LIBDIR)
AC_DEFINE(HAVE_PCRE, 1, [ ])
AC_DEFINE(PCRE2_CODE_UNIT_WIDTH, 8, [ ])