[Libvir] PATCH 1/5: Use pkg-config for libxml
Daniel P. Berrange
berrange at redhat.com
Tue Sep 18 23:30:18 UTC 2007
On Tue, Sep 18, 2007 at 02:29:50AM +0100, Daniel P. Berrange wrote:
> Currently if you have a configured working directory and you touch some
> file that would cause autoconf to re-run configure it'll crash & burn with
> an error like
Here is an alternative version which makes the pkg-config checks for libxml
actually work, and still lets it fall back to xml-config if pkg-config is
either not installed, or missing the .pc file. It also fixes the AC_MSG
usage in the xml-config path so you get newlines in the right place.
Dan.
--
|=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=|
|=- Perl modules: http://search.cpan.org/~danberr/ -=|
|=- Projects: http://freshmeat.net/~danielpb/ -=|
|=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|
-------------- next part --------------
diff -r 3f7a134be060 configure.in
--- a/configure.in Mon Sep 17 04:02:55 2007 -0400
+++ b/configure.in Tue Sep 18 14:09:27 2007 -0400
@@ -28,6 +28,8 @@ AC_SUBST(LIBVIRT_VERSION_INFO)
AC_SUBST(LIBVIRT_VERSION_INFO)
AC_SUBST(LIBVIRT_VERSION_NUMBER)
AC_SUBST(LIBVIRT_VERSION_EXTRA)
+
+LIBXML_REQUIRED="2.5.0"
VERSION=${LIBVIRT_VERSION}
@@ -253,57 +255,60 @@ AC_CHECK_HEADERS(linux/param.h linux/soc
AC_CHECK_HEADERS(linux/param.h linux/sockios.h linux/if_bridge.h linux/if_tun.h,,
AC_MSG_ERROR([You must install kernel-headers in order to compile libvirt]))
+dnl Need to check if pkg-config exists
+PKG_PROG_PKG_CONFIG
+
dnl ==========================================================================
dnl find libxml2 library, borrowed from xmlsec
dnl ==========================================================================
-LIBXML_MIN_VERSION="2.5.0"
LIBXML_CONFIG="xml2-config"
LIBXML_CFLAGS=""
LIBXML_LIBS=""
LIBXML_FOUND="no"
+
AC_ARG_WITH(libxml, [ --with-libxml=[PFX] libxml2 location])
if test "z$with_libxml" = "zno" ; then
- AC_MSG_CHECKING(for libxml2 libraries >= $LIBXML_MIN_VERSION)
- AC_MSG_ERROR(libxml2 >= $LIBXML_MIN_VERSION is required for $XMLSEC_PACKAGE)
-elif test "z$with_libxml" = "z" -a "z$PKG_CONFIG_ENABLED" = "zyes" ; then
- PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= $LIBXML_MIN_VERSION,
- [LIBXML_FOUND=yes],
- [LIBXML_FOUND=no])
-fi
-AC_MSG_CHECKING(libxml2 $with_libxml $LIBXML_FOUND )
+ AC_MSG_CHECKING(for libxml2 libraries >= $LIBXML_REQUIRED)
+ AC_MSG_ERROR(libxml2 >= $LIBXML_REQUIRED is required for libvirt)
+elif test "z$with_libxml" = "z" -a "x$PKG_CONFIG" != "x" ; then
+ PKG_CHECK_EXISTS(libxml-2.0,[LIBXML_FOUND=yes])
+ if test "$LIBXML_FOUND" != "no" ; then
+ PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= $LIBXML_REQUIRED)
+ fi
+fi
if test "z$LIBXML_FOUND" = "zno" ; then
- AC_MSG_CHECKING(for libxml2 libraries >= $LIBXML_MIN_VERSION)
if test "z$with_libxml" != "z" ; then
LIBXML_CONFIG=$with_libxml/bin/$LIBXML_CONFIG
fi
- AC_MSG_CHECKING(libxml2 $with_libxml $LIBXML_CONFIG )
+ 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_MIN_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 ('$LIBXML_VERSION'))
+ AC_MSG_RESULT(yes)
else
- AC_MSG_ERROR(You need at least libxml2 $LIBXML_MIN_VERSION for this version of $XMLSEC_PACKAGE)
+ 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)
-AC_SUBST(LIBXML_CONFIG)
-AC_SUBST(LIBXML_MIN_VERSION)
dnl xmlURI structure has query_raw?
old_cflags="$CFLAGS"
+old_ldflags="$LDFLAGS"
CFLAGS="$CFLAGS $LIBXML_CFLAGS"
+LDFLAGS="$LDFLAGS $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"
+LDFLAGS="$old_ldflags"
dnl GnuTLS library
AC_CHECK_HEADER([gnutls/gnutls.h],
More information about the libvir-list
mailing list