summaryrefslogtreecommitdiff
path: root/acinclude.m4
diff options
context:
space:
mode:
authorJoe <krakjoe@php.net>2018-02-08 10:51:20 +0100
committerJoe <krakjoe@php.net>2018-02-08 10:51:47 +0100
commit47b90e910b1e58f8b35f79fb5cffe41df908e4a3 (patch)
tree65626fd8d3a29ef0bf966c160402942f0cd46589 /acinclude.m4
parent812303aa5e34de372899c2e049b5663266eba2c2 (diff)
parentf9a16d492e4ab5d9e98a68206b80a4753631d8c0 (diff)
downloadphp-git-47b90e910b1e58f8b35f79fb5cffe41df908e4a3.tar.gz
Merge branch 'PHP-7.2'
* PHP-7.2: Fixes bug #75871 Use pkg-config for libxml2 if available
Diffstat (limited to 'acinclude.m4')
-rw-r--r--acinclude.m481
1 files changed, 53 insertions, 28 deletions
diff --git a/acinclude.m4 b/acinclude.m4
index 347404bfae..86db581b95 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -2523,15 +2523,18 @@ dnl
dnl Common setup macro for libxml
dnl
AC_DEFUN([PHP_SETUP_LIBXML], [
-AC_CACHE_CHECK([for xml2-config path], ac_cv_php_xml2_config_path,
-[
- for i in $PHP_LIBXML_DIR /usr/local /usr; do
- if test -x "$i/bin/xml2-config"; then
- ac_cv_php_xml2_config_path="$i/bin/xml2-config"
- break
- fi
- done
-])
+ found_libxml=no
+
+ dnl First try to find xml2-config
+ AC_CACHE_CHECK([for xml2-config path], ac_cv_php_xml2_config_path,
+ [
+ for i in $PHP_LIBXML_DIR /usr/local /usr; do
+ if test -x "$i/bin/xml2-config"; then
+ ac_cv_php_xml2_config_path="$i/bin/xml2-config"
+ break
+ fi
+ done
+ ])
if test -x "$ac_cv_php_xml2_config_path"; then
XML2_CONFIG="$ac_cv_php_xml2_config_path"
@@ -2542,30 +2545,52 @@ AC_CACHE_CHECK([for xml2-config path], ac_cv_php_xml2_config_path,
IFS=$ac_IFS
LIBXML_VERSION=`expr [$]1 \* 1000000 + [$]2 \* 1000 + [$]3`
if test "$LIBXML_VERSION" -ge "2006011"; then
+ found_libxml=yes
LIBXML_LIBS=`$XML2_CONFIG --libs`
LIBXML_INCS=`$XML2_CONFIG --cflags`
- PHP_EVAL_LIBLINE($LIBXML_LIBS, $1)
- PHP_EVAL_INCLINE($LIBXML_INCS)
-
- dnl Check that build works with given libs
- AC_CACHE_CHECK(whether libxml build works, php_cv_libxml_build_works, [
- PHP_TEST_BUILD(xmlInitParser,
- [
- php_cv_libxml_build_works=yes
- ], [
- AC_MSG_RESULT(no)
- AC_MSG_ERROR([build test failed. Please check the config.log for details.])
- ], [
- [$]$1
- ])
- ])
- if test "$php_cv_libxml_build_works" = "yes"; then
- AC_DEFINE(HAVE_LIBXML, 1, [ ])
- fi
- $2
else
AC_MSG_ERROR([libxml2 version 2.6.11 or greater required.])
fi
+ fi
+
+ dnl If xml2-config fails, try pkg-config
+ if test "$found_libxml" = "no"; then
+ if test -z "$PKG_CONFIG"; then
+ AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+ fi
+
+ dnl If pkg-config is found try using it
+ if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libxml-2.0; then
+ if $PKG_CONFIG --atleast-version=2.6.11 libxml-2.0; then
+ found_libxml=yes
+ LIBXML_LIBS=`$PKG_CONFIG --libs libxml-2.0`
+ LIBXML_INCS=`$PKG_CONFIG --cflags-only-I libxml-2.0`
+ else
+ AC_MSG_ERROR([libxml2 version 2.6.11 or greater required.])
+ fi
+ fi
+ fi
+
+ if test "$found_libxml" = "yes"; then
+ PHP_EVAL_LIBLINE($LIBXML_LIBS, $1)
+ PHP_EVAL_INCLINE($LIBXML_INCS)
+
+ dnl Check that build works with given libs
+ AC_CACHE_CHECK(whether libxml build works, php_cv_libxml_build_works, [
+ PHP_TEST_BUILD(xmlInitParser,
+ [
+ php_cv_libxml_build_works=yes
+ ], [
+ AC_MSG_RESULT(no)
+ AC_MSG_ERROR([build test failed. Please check the config.log for details.])
+ ], [
+ [$]$1
+ ])
+ ])
+ if test "$php_cv_libxml_build_works" = "yes"; then
+ AC_DEFINE(HAVE_LIBXML, 1, [ ])
+ fi
+ $2
ifelse([$3],[],,[else $3])
fi
])