Use a common setup macro to detect the Expat library

Closes GH-4221.
This commit is contained in:
Hugh McMaster 2019-05-29 23:09:43 +10:00 committed by Nikita Popov
parent 550f95e645
commit 32114b57f3
3 changed files with 23 additions and 27 deletions

View File

@ -2064,6 +2064,20 @@ AC_DEFUN([PHP_SETUP_LIBXML], [
$2
])
dnl
dnl PHP_SETUP_EXPAT([shared-add])
dnl
dnl Common setup macro for expat.
dnl
AC_DEFUN([PHP_SETUP_EXPAT], [
PKG_CHECK_MODULES([EXPAT], [expat])
PHP_EVAL_INCLINE($EXPAT_CFLAGS)
PHP_EVAL_LIBLINE($EXPAT_LIBS, $1)
AC_DEFINE(HAVE_LIBEXPAT, 1, [ ])
])
dnl ----------------------------------------------------------------------------
dnl Misc. macros
dnl ----------------------------------------------------------------------------

View File

@ -27,12 +27,7 @@ if test "$PHP_XML" != "no"; then
PHP_ADD_EXTENSION_DEP(xml, libxml)
])
else
PKG_CHECK_MODULES([EXPAT], [expat])
PHP_EVAL_INCLINE($EXPAT_CFLAGS)
PHP_EVAL_LIBLINE($EXPAT_LIBS, XML_SHARED_LIBADD)
AC_DEFINE(HAVE_LIBEXPAT, 1, [ ])
PHP_SETUP_EXPAT([XML_SHARED_LIBADD])
fi
PHP_NEW_EXTENSION(xml, xml.c $xml_extra_sources, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)

View File

@ -1,12 +1,12 @@
PHP_ARG_WITH([xmlrpc],
[for XMLRPC-EPI support],
[whether to build with XMLRPC-EPI support],
[AS_HELP_STRING([[--with-xmlrpc[=DIR]]],
[Include XMLRPC-EPI support])])
PHP_ARG_WITH([libexpat-dir],
[libexpat dir for XMLRPC-EPI],
[AS_HELP_STRING([--with-libexpat-dir=DIR],
[XMLRPC-EPI: libexpat dir for XMLRPC-EPI (deprecated)])],
PHP_ARG_WITH([expat],
[whether to build with expat support],
[AS_HELP_STRING([--with-expat],
[XMLRPC-EPI: use expat instead of libxml2])],
[no],
[no])
@ -24,9 +24,9 @@ if test "$PHP_XMLRPC" != "no"; then
AC_DEFINE(HAVE_XMLRPC,1,[ ])
dnl
dnl Default to libxml2 if --with-libexpat-dir is not used
dnl Default to libxml2 if --with-expat is not specified.
dnl
if test "$PHP_LIBEXPAT_DIR" = "no"; then
if test "$PHP_EXPAT" = "no"; then
if test "$PHP_LIBXML" = "no"; then
AC_MSG_ERROR([XML-RPC extension requires LIBXML extension, add --with-libxml])
@ -39,20 +39,7 @@ if test "$PHP_XMLRPC" != "no"; then
fi
])
else
testval=no
for i in $PHP_LIBEXPAT_DIR $XMLRPC_DIR /usr/local /usr; do
if test -f $i/$PHP_LIBDIR/libexpat.a || test -f $i/$PHP_LIBDIR/libexpat.$SHLIB_SUFFIX_NAME; then
AC_DEFINE(HAVE_LIBEXPAT,1,[ ])
PHP_ADD_LIBRARY_WITH_PATH(expat, $i/$PHP_LIBDIR, XMLRPC_SHARED_LIBADD)
PHP_ADD_INCLUDE($i/include)
testval=yes
break
fi
done
if test "$testval" = "no"; then
AC_MSG_ERROR([XML-RPC support requires libexpat. Use --with-libexpat-dir=<DIR> (deprecated!)])
fi
PHP_SETUP_EXPAT([XMLRPC_SHARED_LIBADD])
fi
dnl if iconv is shared or missing then we should build iconv ourselves