Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
configure.ac | 55 +++------------------------------------
m4/virt-libxml.m4 | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 81 insertions(+), 52 deletions(-)
create mode 100644 m4/virt-libxml.m4
diff --git a/configure.ac b/configure.ac
index a710a4f050..26174cc2e4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -110,7 +110,6 @@ then
fi
dnl Required minimum versions of all libs we depend on
-LIBXML_REQUIRED="2.6.0"
POLKIT_REQUIRED="0.6"
PARTED_REQUIRED="1.8.0"
DEVMAPPER_REQUIRED=1.0.0
@@ -995,56 +994,8 @@ dnl Need to test if pkg-config exists
PKG_PROG_PKG_CONFIG
-dnl ==========================================================================
-dnl find libxml2 library, borrowed from xmlsec
-dnl ==========================================================================
-LIBXML_CONFIG="xml2-config"
-LIBXML_CFLAGS=""
-LIBXML_LIBS=""
-LIBXML_FOUND="no"
-
-LIBVIRT_ARG_WITH_ALT([LIBXML], [libxml2 (>= 2.6.0) location], [check])
-
-if test "x$with_libxml" = "xno" ; then
- AC_MSG_CHECKING(for libxml2 libraries >= $LIBXML_REQUIRED)
- AC_MSG_ERROR([libxml2 >= $LIBXML_REQUIRED is required for libvirt])
-elif test "x$with_libxml" != "xno" && test
"x$PKG_CONFIG" != "x" ; then
- PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= $LIBXML_REQUIRED, [LIBXML_FOUND=yes],
[LIBXML_FOUND=no])
-fi
-if test "$LIBXML_FOUND" = "no" ; then
- if test "x$with_libxml" != "xyes" ; then
- LIBXML_CONFIG=$with_libxml/bin/$LIBXML_CONFIG
- fi
- AC_MSG_CHECKING(libxml2 $LIBXML_CONFIG >= $LIBXML_REQUIRED )
- if ! $LIBXML_CONFIG --version > /dev/null 2>&1 ; then
- AC_MSG_ERROR([Could not find libxml2 anywhere (see config.log for details).])
- fi
- vers=`$LIBXML_CONFIG --version | awk -F. '{ printf "%d", ($1 * 1000 +
$2) * 1000 + $3;}'`
- minvers=`echo $LIBXML_REQUIRED | awk -F. '{ printf "%d", ($1 * 1000 +
$2) * 1000 + $3;}'`
- if test "$vers" -ge "$minvers" ; then
- LIBXML_LIBS="`$LIBXML_CONFIG --libs`"
- LIBXML_CFLAGS="`$LIBXML_CONFIG --cflags`"
- LIBXML_FOUND="yes"
- AC_MSG_RESULT(yes)
- else
- AC_MSG_ERROR(
- [You need at least libxml2 $LIBXML_REQUIRED for this version of libvirt])
- fi
-fi
-
-AC_SUBST([LIBXML_CFLAGS])
-AC_SUBST([LIBXML_LIBS])
-
-dnl xmlURI structure has query_raw?
-old_CFLAGS="$CFLAGS"
-old_LIBS="$LIBS"
-CFLAGS="$CFLAGS $LIBXML_CFLAGS"
-LIBS="$LIBS $LIBXML_LIBS"
-AC_CHECK_MEMBER([struct _xmlURI.query_raw],
- [AC_DEFINE([HAVE_XMLURI_QUERY_RAW], [], [Have query_raw field in libxml2 xmlURI
structure])],,
- [#include <libxml/uri.h>])
-CFLAGS="$old_CFLAGS"
-LIBS="$old_LIBS"
+LIBVIRT_ARG_LIBXML
+LIBVIRT_CHECK_LIBXML
LIBVIRT_ARG_WITH_ALT([TLS_PRIORITY],
@@ -2456,6 +2407,7 @@ LIBVIRT_RESULT_GLUSTER
LIBVIRT_RESULT_GNUTLS
LIBVIRT_RESULT_HAL
LIBVIRT_RESULT_LIBSSH
+LIBVIRT_RESULT_LIBXML
LIBVIRT_RESULT_NETCF
LIBVIRT_RESULT_NSS
LIBVIRT_RESULT_NUMACTL
@@ -2468,7 +2420,6 @@ LIBVIRT_RESULT_SELINUX
LIBVIRT_RESULT_SSH2
LIBVIRT_RESULT_UDEV
LIBVIRT_RESULT_YAJL
-AC_MSG_NOTICE([ libxml: $LIBXML_CFLAGS $LIBXML_LIBS])
AC_MSG_NOTICE([ dlopen: $DLOPEN_LIBS])
AC_MSG_NOTICE([firewalld: $with_firewalld])
if test "$with_polkit" = "yes" ; then
diff --git a/m4/virt-libxml.m4 b/m4/virt-libxml.m4
new file mode 100644
index 0000000000..8bb092f610
--- /dev/null
+++ b/m4/virt-libxml.m4
@@ -0,0 +1,78 @@
+dnl The libxml-2.0 library
+dnl
+dnl Copyright (C) 2016 Red Hat, Inc.
+dnl
+dnl This library is free software; you can redistribute it and/or
+dnl modify it under the terms of the GNU Lesser General Public
+dnl License as published by the Free Software Foundation; either
+dnl version 2.1 of the License, or (at your option) any later version.
+dnl
+dnl This library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl Lesser General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU Lesser General Public
+dnl License along with this library. If not, see
+dnl <
http://www.gnu.org/licenses/>.
+dnl
+
+AC_DEFUN([LIBVIRT_ARG_LIBXML], [
+ LIBVIRT_ARG_WITH_ALT([LIBXML], [libxml-2.0 (>= 2.6.0) location], [check])
+])
+
+AC_DEFUN([LIBVIRT_CHECK_LIBXML], [
+ LIBXML_REQUIRED="2.6.0"
+ LIBXML_CONFIG="xml2-config"
+ LIBXML_CFLAGS=""
+ LIBXML_LIBS=""
+ LIBXML_FOUND="no"
+
+ if test "x$with_libxml" = "xno" ; then
+ AC_MSG_CHECKING(for libxml2 libraries >= $LIBXML_REQUIRED)
+ AC_MSG_ERROR([libxml2 >= $LIBXML_REQUIRED is required for libvirt])
+ elif test "x$with_libxml" != "xno" && test
"x$PKG_CONFIG" != "x" ; then
+ PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= $LIBXML_REQUIRED, [LIBXML_FOUND=yes],
[LIBXML_FOUND=no])
+ fi
+ if test "$LIBXML_FOUND" = "no" ; then
+ if test "x$with_libxml" != "xyes" ; then
+ LIBXML_CONFIG=$with_libxml/bin/$LIBXML_CONFIG
+ fi
+ AC_MSG_CHECKING(libxml2 $LIBXML_CONFIG >= $LIBXML_REQUIRED )
+ if ! $LIBXML_CONFIG --version > /dev/null 2>&1 ; then
+ AC_MSG_ERROR([Could not find libxml2 anywhere (see config.log for details).])
+ fi
+ vers=`$LIBXML_CONFIG --version | awk -F. '{ printf "%d", ($1 * 1000 +
$2) * 1000 + $3;}'`
+ minvers=`echo $LIBXML_REQUIRED | awk -F. '{ printf "%d", ($1 * 1000 +
$2) * 1000 + $3;}'`
+ if test "$vers" -ge "$minvers" ; then
+ LIBXML_LIBS="`$LIBXML_CONFIG --libs`"
+ LIBXML_CFLAGS="`$LIBXML_CONFIG --cflags`"
+ LIBXML_FOUND="yes"
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_ERROR(
+ [You need at least libxml2 $LIBXML_REQUIRED for this version of libvirt])
+ fi
+ fi
+
+ AC_SUBST([LIBXML_CFLAGS])
+ AC_SUBST([LIBXML_LIBS])
+
+ dnl xmlURI structure has query_raw?
+ old_CFLAGS="$CFLAGS"
+ old_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $LIBXML_CFLAGS"
+ LIBS="$LIBS $LIBXML_LIBS"
+
+ AC_CHECK_MEMBER([struct _xmlURI.query_raw],
+ [AC_DEFINE([HAVE_XMLURI_QUERY_RAW], [1],
+ [Have query_raw field in libxml2 xmlURI structure])],
+ [], [#include <libxml/uri.h>])
+
+ CFLAGS="$old_CFLAGS"
+ LIBS="$old_LIBS"
+])
+
+AC_DEFUN([LIBVIRT_RESULT_LIBXML], [
+ LIBVIRT_RESULT_LIB([LIBXML])
+])
--
2.11.0