dnl Some macros to test for the existance and features of libvirt. dnl By Richard W.M. Jones dnl AC_LIBVIRT dnl Test for libvirt library, and fail if not present. dnl Sets LIBVIRT_VERSION to the version (1000000*major + 1000*minor dnl + release), for example 2002 for version 0.2.2. AC_DEFUN([AC_LIBVIRT],[ AC_CHECK_LIB(virt, virGetVersion, [], [ AC_MSG_ERROR([libvirt not installed]) ]) dnl Get the version number by calling virGetVersion. AC_MSG_CHECKING([for encoded libvirt version]) AC_RUN_IFELSE([ AC_LANG_PROGRAM([[ #include #include #include /* Don't require libvirt-devel. */ extern int virGetVersion (unsigned long *, const char *, unsigned long *); ]],[[ FILE *fp; unsigned long ver; if (virGetVersion (&ver, NULL, NULL) == 0 && (fp = fopen ("ac_libvirt_version", "w")) != NULL) { fprintf (fp, "%lu", ver); fclose (fp); exit (0); } else exit (1); ]]) ],[ LIBVIRT_VERSION=`cat ac_libvirt_version` rm -f ac_libvirt_version AC_MSG_RESULT([$LIBVIRT_VERSION]) ],[ AC_MSG_ERROR([cannot determine version of libvirt]) ],[ AC_MSG_WARN([cannot determine version of libvirt because cross-compiling]) LIBVIRT_VERSION=0 ]) AC_SUBST(LIBVIRT_VERSION) ]) dnl AC_LIBVIRT_PYTHON dnl Test for the libvirt python bindings, and fail if not present. dnl Sets LIBVIRT_PYTHON_VERSION to the version of libvirt used by dnl the Python bindings. dnl dnl Requires $PYTHON to be path to the python interpreter (eg. from dnl previous call to AC_PYTHON_DEVEL). AC_DEFUN([AC_LIBVIRT_PYTHON],[ AC_MSG_CHECKING([for libvirt python bindings]) if echo "import libvirt; libvirt.open" | $PYTHON; then AC_MSG_RESULT([ok]) else AC_MSG_ERROR([libvirt Python bindings not installed]) fi dnl Do we have libvirt.getVersion (since libvirt 0.2.3)? AC_MSG_CHECKING([for getVersion in libvirt]) if echo "import libvirt; libvirt.getVersion" | $PYTHON >/dev/null 2>&1 then HAVE_LIBVIRT_PYTHON_GETVERSION=1 AC_MSG_RESULT([ok]) else HAVE_LIBVIRT_PYTHON_GETVERSION= AC_MSG_RESULT([no]) fi dnl Get the version if libvirt.getVersion call is available. AC_MSG_CHECKING([for libvirt python version]) if test -n "$HAVE_LIBVIRT_PYTHON_GETVERSION"; then LIBVIRT_PYTHON_VERSION=`echo "import libvirt; print libvirt.getVersion(None)[[0]]" | $PYTHON` AC_MSG_RESULT([$LIBVIRT_PYTHON_VERSION]) else LIBVIRT_PYTHON_VERSION=0 AC_MSG_RESULT([skipped - no getVersion call]) fi AC_SUBST(HAVE_LIBVIRT_PYTHON_GETVERSION) AC_SUBST(LIBVIRT_PYTHON_VERSION) ])