Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx> --- 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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list