2005-11-02 12:50:21 +00:00
dnl Process this file with autoconf to produce a configure script.
2007-09-18 23:46:18 +00:00
2007-09-30 21:09:29 +00:00
AC_INIT(libvirt, 0.3.3)
2007-09-18 23:46:18 +00:00
AC_CONFIG_SRCDIR(src/libvirt.c)
Use gnulib, starting with its physmem and getaddrinfo modules.
New files go into these directories:
gnulib/lib
gnulib/m4
gnulib/tests
* bootstrap: A wrapper around gnulib-tool.
* configure.in: Invoke gl_EARLY and gl_INIT, being careful to put gl_EARLY
before any macro that uses AC_COMPILE_IFELSE.
(AC_OUTPUT): Add lib/Makefile and gl-tests/Makefile. Remove m4/Makefile.
* Makefile.am (SUBDIRS): Add gnulib/lib and remove m4. Add gnulib/tests
early enough that those tests run before any libvirt unit tests.
* m4/Makefile.am: Remove file. Not needed.
* src/Makefile.am (INCLUDES): Add -I$(top_srcdir)/gnulib/lib -I../gnulib/lib.
(LDADDS, libvirt_la_LIBADD): Add ../gnulib/lib/libgnu.la.
* src/nodeinfo.c: Include "physmem.h".
* qemud/qemud.c, src/remote_internal.c: Include "getaddrinfo.h".
(MEMINFO_PATH, linuxNodeInfoMemPopulate): Remove definitions.
(virNodeInfoPopulate): Use physmem_total, not linuxNodeInfoMemPopulate.
* tests/Makefile.am (INCLUDES): Add -I$(top_srcdir)/gnulib/lib -I../gnulib/lib.
(LDADDS): Add ../gnulib/lib/libgnu.la.
* qemud/Makefile.am (libvirtd_LDADD): Add ../gnulib/lib/libgnu.la.
* tests/nodeinfotest.c (linuxTestCompareFiles): No longer read total
memory from a file.
Update expected output not to include "Memory: NNNN"
* tests/nodeinfodata/linux-nodeinfo-1.txt:
* tests/nodeinfodata/linux-nodeinfo-2.txt:
* tests/nodeinfodata/linux-nodeinfo-3.txt:
* tests/nodeinfodata/linux-nodeinfo-4.txt:
* tests/nodeinfodata/linux-nodeinfo-5.txt:
* tests/nodeinfodata/linux-nodeinfo-6.txt:
* src/test.c [WITH_TEST]: Remove definition of _GNU_SOURCE that
would conflict with the one now in "config.h".
* autogen.sh: Add -I gnulib/m4.
* src/conf.c, src/sexpr.c: Don't define _GNU_SOURCE.
Instead, include "config.h".
* qemud/qemud.c: Remove definition of _GNU_SOURCE.
* src/openvz_driver.c: Likewise.
* src/qemu_driver.c: Likewise.
* src/remote_internal.c: Likewise.
* configure.in: Use AC_CONFIG_AUX_DIR(build-aux), so that a bunch
of gettextize-generated files go into build-aux/, rather than in
the top-level directory.
* .cvsignore: Adjust.
* build-aux/.cvsignore: New file.
Author: Jim Meyering <meyering@redhat.com>
2007-12-05 21:31:07 +00:00
AC_CONFIG_AUX_DIR(build-aux)
2005-11-02 12:50:21 +00:00
AM_CONFIG_HEADER(config.h)
2007-09-18 23:46:18 +00:00
dnl Make automake keep quiet about wildcards & other GNUmake-isms
AM_INIT_AUTOMAKE([-Wno-portability])
2005-11-02 12:50:21 +00:00
AC_CANONICAL_HOST
2007-09-18 23:46:18 +00:00
LIBVIRT_MAJOR_VERSION=`echo $VERSION | awk -F . '{print $1}'`
LIBVIRT_MINOR_VERSION=`echo $VERSION | awk -F . '{print $2}'`
LIBVIRT_MICRO_VERSION=`echo $VERSION | awk -F . '{print $3}'`
2006-02-15 13:21:17 +00:00
LIBVIRT_VERSION=$LIBVIRT_MAJOR_VERSION.$LIBVIRT_MINOR_VERSION.$LIBVIRT_MICRO_VERSION$LIBVIRT_MICRO_VERSION_SUFFIX
LIBVIRT_VERSION_INFO=`expr $LIBVIRT_MAJOR_VERSION + $LIBVIRT_MINOR_VERSION`:$LIBVIRT_MICRO_VERSION:$LIBVIRT_MINOR_VERSION
LIBVIRT_VERSION_NUMBER=`expr $LIBVIRT_MAJOR_VERSION \* 1000000 + $LIBVIRT_MINOR_VERSION \* 1000 + $LIBVIRT_MICRO_VERSION`
2005-11-02 12:50:21 +00:00
2006-02-15 13:21:17 +00:00
AC_SUBST(LIBVIRT_MAJOR_VERSION)
AC_SUBST(LIBVIRT_MINOR_VERSION)
AC_SUBST(LIBVIRT_MICRO_VERSION)
AC_SUBST(LIBVIRT_VERSION)
AC_SUBST(LIBVIRT_VERSION_INFO)
AC_SUBST(LIBVIRT_VERSION_NUMBER)
2005-11-02 12:50:21 +00:00
2007-09-19 15:35:00 +00:00
dnl Required minimum versions of all libs we depend on
LIBXML_REQUIRED="2.5.0"
2007-11-26 11:34:57 +00:00
GNUTLS_REQUIRED="1.0.25"
2007-09-19 01:56:55 +00:00
AVAHI_REQUIRED="0.6.0"
2007-12-05 18:21:27 +00:00
POLKIT_REQUIRED="0.6"
2007-09-19 01:56:55 +00:00
2007-11-29 17:41:57 +00:00
dnl Checks for C compiler.
2005-11-02 13:19:10 +00:00
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_CPP
2007-09-20 18:40:36 +00:00
2007-12-05 23:02:13 +00:00
dnl gl_INIT uses m4_foreach_w, yet that is not defined in autoconf-2.59.
dnl In order to accommodate developers with such old tools, here's a
dnl replacement definition.
m4_ifndef([m4_foreach_w],
[m4_define([m4_foreach_w],
[m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])])
Use gnulib, starting with its physmem and getaddrinfo modules.
New files go into these directories:
gnulib/lib
gnulib/m4
gnulib/tests
* bootstrap: A wrapper around gnulib-tool.
* configure.in: Invoke gl_EARLY and gl_INIT, being careful to put gl_EARLY
before any macro that uses AC_COMPILE_IFELSE.
(AC_OUTPUT): Add lib/Makefile and gl-tests/Makefile. Remove m4/Makefile.
* Makefile.am (SUBDIRS): Add gnulib/lib and remove m4. Add gnulib/tests
early enough that those tests run before any libvirt unit tests.
* m4/Makefile.am: Remove file. Not needed.
* src/Makefile.am (INCLUDES): Add -I$(top_srcdir)/gnulib/lib -I../gnulib/lib.
(LDADDS, libvirt_la_LIBADD): Add ../gnulib/lib/libgnu.la.
* src/nodeinfo.c: Include "physmem.h".
* qemud/qemud.c, src/remote_internal.c: Include "getaddrinfo.h".
(MEMINFO_PATH, linuxNodeInfoMemPopulate): Remove definitions.
(virNodeInfoPopulate): Use physmem_total, not linuxNodeInfoMemPopulate.
* tests/Makefile.am (INCLUDES): Add -I$(top_srcdir)/gnulib/lib -I../gnulib/lib.
(LDADDS): Add ../gnulib/lib/libgnu.la.
* qemud/Makefile.am (libvirtd_LDADD): Add ../gnulib/lib/libgnu.la.
* tests/nodeinfotest.c (linuxTestCompareFiles): No longer read total
memory from a file.
Update expected output not to include "Memory: NNNN"
* tests/nodeinfodata/linux-nodeinfo-1.txt:
* tests/nodeinfodata/linux-nodeinfo-2.txt:
* tests/nodeinfodata/linux-nodeinfo-3.txt:
* tests/nodeinfodata/linux-nodeinfo-4.txt:
* tests/nodeinfodata/linux-nodeinfo-5.txt:
* tests/nodeinfodata/linux-nodeinfo-6.txt:
* src/test.c [WITH_TEST]: Remove definition of _GNU_SOURCE that
would conflict with the one now in "config.h".
* autogen.sh: Add -I gnulib/m4.
* src/conf.c, src/sexpr.c: Don't define _GNU_SOURCE.
Instead, include "config.h".
* qemud/qemud.c: Remove definition of _GNU_SOURCE.
* src/openvz_driver.c: Likewise.
* src/qemu_driver.c: Likewise.
* src/remote_internal.c: Likewise.
* configure.in: Use AC_CONFIG_AUX_DIR(build-aux), so that a bunch
of gettextize-generated files go into build-aux/, rather than in
the top-level directory.
* .cvsignore: Adjust.
* build-aux/.cvsignore: New file.
Author: Jim Meyering <meyering@redhat.com>
2007-12-05 21:31:07 +00:00
gl_EARLY
gl_INIT
AM_PROG_CC_STDC
AC_C_CONST
2005-11-02 13:19:10 +00:00
dnl Make sure we have an ANSI compiler
AM_C_PROTOTYPES
test "x$U" != "x" && AC_MSG_ERROR(Compiler not ANSI compliant)
2007-11-29 17:41:57 +00:00
dnl Support building Win32 DLLs (must appear *before* AM_PROG_LIBTOOL)
AC_LIBTOOL_WIN32_DLL
2005-11-02 13:19:10 +00:00
AM_PROG_LIBTOOL
2007-03-15 17:24:56 +00:00
AM_PROG_CC_C_O
2007-03-01 16:18:55 +00:00
LIBVIRT_COMPILE_WARNINGS(maximum)
2007-06-15 15:24:20 +00:00
dnl Availability of various common functions (non-fatal if missing).
2007-12-07 14:35:18 +00:00
AC_CHECK_FUNCS([cfmakeraw regexec uname])
2007-06-15 15:24:20 +00:00
dnl Availability of various common headers (non-fatal if missing).
2007-12-07 14:35:18 +00:00
AC_CHECK_HEADERS([pwd.h paths.h sys/syslimits.h sys/utsname.h sys/wait.h winsock2.h])
2007-06-15 15:24:20 +00:00
2007-11-26 11:43:01 +00:00
dnl Need -lrpc? (Cygwin needs this)
AC_SEARCH_LIBS(xdrmem_create,rpc)
2007-11-26 11:45:26 +00:00
dnl Do we have rpcgen?
AC_PATH_PROG(RPCGEN, rpcgen, no)
AM_CONDITIONAL(RPCGEN, [test "x$ac_cv_path_RPCGEN" != "xno"])
2007-12-04 19:14:11 +00:00
dnl Is this GLIBC's buggy rpcgen?
AM_CONDITIONAL(GLIBC_RPCGEN,
[test "x$ac_cv_path_RPCGEN" != "xno" &&
$ac_cv_path_RPCGEN -t </dev/null >/dev/null 2>&1])
2007-11-26 11:45:26 +00:00
2007-11-29 17:41:57 +00:00
dnl Miscellaneous external programs.
AC_PATH_PROG(RM, rm, /bin/rm)
AC_PATH_PROG(MV, mv, /bin/mv)
AC_PATH_PROG(TAR, tar, /bin/tar)
AC_PATH_PROG(XMLLINT, xmllint, /usr/bin/xmllint)
AC_PATH_PROG(XSLTPROC, xsltproc, /usr/bin/xsltproc)
dnl External programs that we can use if they are available.
dnl We will hard-code paths to these programs unless we cannot
dnl detect them, in which case we'll search for the program
dnl along the $PATH at runtime and fail if it's not there.
AC_PATH_PROG(DNSMASQ, dnsmasq, dnsmasq,
[/sbin:/usr/sbin:/usr/local/sbin:$PATH])
AC_PATH_PROG(BRCTL, brctl, brctl,
[/sbin:/usr/sbin:/usr/local/sbin:$PATH])
AC_DEFINE_UNQUOTED([DNSMASQ],["$DNSMASQ"],
[Location or name of the dnsmasq program])
AC_DEFINE_UNQUOTED([BRCTL],["$BRCTL"],
[Location or name of the brctl program (see bridge-utils)])
2005-12-07 13:45:20 +00:00
dnl Specific dir for HTML output ?
AC_ARG_WITH(html-dir, AC_HELP_STRING([--with-html-dir=path],
[path to base html directory, default $datadir/doc/html]),
[HTML_DIR=$withval], [HTML_DIR='$(datadir)/doc'])
AC_ARG_WITH(html-subdir, AC_HELP_STRING([--with-html-subdir=path],
[directory used under html-dir, default $PACKAGE-$VERSION/html]),
[test "x$withval" != "x" && HTML_DIR="$HTML_DIR/$withval"],
[HTML_DIR="$HTML_DIR/\$(PACKAGE)-\$(VERSION)/html"])
AC_SUBST(HTML_DIR)
2007-11-27 14:39:42 +00:00
dnl if --prefix is /usr, don't use /usr/var for localstatedir
dnl or /usr/etc for sysconfdir
dnl as this makes a lot of things break in testing situations
2007-12-07 15:17:42 +00:00
if test "$prefix" = "/usr" -a "$localstatedir" = '${prefix}/var' ; then
2007-11-27 14:39:42 +00:00
localstatedir='/var'
fi
2007-12-07 15:17:42 +00:00
if test "$prefix" = "/usr" -a "$sysconfdir" = '${prefix}/etc' ; then
2007-11-27 14:39:42 +00:00
sysconfdir='/etc'
fi
2007-06-11 12:19:46 +00:00
dnl Allow to build without Xen, QEMU/KVM, test or remote driver
2007-03-15 07:43:16 +00:00
AC_ARG_WITH(xen,
2007-09-18 23:36:30 +00:00
[ --with-xen add XEN support (on)],[],[with_xen=yes])
2007-03-15 07:43:16 +00:00
AC_ARG_WITH(qemu,
2007-09-18 23:36:30 +00:00
[ --with-qemu add QEMU/KVM support (on)],[],[with_qemu=yes])
2007-07-17 13:27:26 +00:00
AC_ARG_WITH(openvz,
2007-09-18 23:36:30 +00:00
[ --with-openvz add OpenVZ support (off)],[],[with_openvz=no])
2007-03-15 07:43:16 +00:00
AC_ARG_WITH(test,
2007-09-18 23:36:30 +00:00
[ --with-test add test driver support (on)],[],[with_test=yes])
2007-06-11 12:19:46 +00:00
AC_ARG_WITH(remote,
2007-09-18 23:36:30 +00:00
[ --with-remote add remote driver support (on)],[],[with_remote=yes])
2007-12-06 16:34:48 +00:00
AC_ARG_WITH(libvirtd,
[ --with-libvirtd add libvirtd support (on)],[],[with_libvirtd=yes])
2007-03-15 07:43:16 +00:00
2005-12-02 12:11:06 +00:00
dnl
dnl specific tests to setup DV devel environments with debug etc ...
dnl
2006-02-10 10:28:59 +00:00
if [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/libvirt" ]] ; then
2005-12-02 12:11:06 +00:00
STATIC_BINARIES="-static"
else
STATIC_BINARIES=
fi
AC_SUBST(STATIC_BINARIES)
2007-02-16 18:30:55 +00:00
dnl --enable-debug=(yes|no)
AC_ARG_ENABLE(debug,
AC_HELP_STRING([--enable-debug=no/yes],
2007-09-18 23:36:30 +00:00
[enable debugging output]),[],[enable_debug=no])
2007-02-16 18:30:55 +00:00
if test x"$enable_debug" = x"yes"; then
AC_DEFINE(ENABLE_DEBUG, [], [whether debugging is enabled])
fi
2007-08-07 13:02:35 +00:00
2007-06-11 12:19:46 +00:00
AC_MSG_CHECKING([where to write libvirtd PID file])
AC_ARG_WITH(remote-pid-file, AC_HELP_STRING([--with-remote-pid-file=[pidfile|none]], [PID file for libvirtd]))
if test "x$with_remote_pid_file" == "x" ; then
REMOTE_PID_FILE="$localstatedir/run/libvirtd.pid"
elif test "x$with_remote_pid_file" == "xnone" ; then
REMOTE_PID_FILE=""
else
REMOTE_PID_FILE="$with_remote_pid_file"
fi
AC_SUBST(REMOTE_PID_FILE)
AC_MSG_RESULT($REMOTE_PID_FILE)
2007-02-23 12:50:58 +00:00
dnl
dnl init script flavor
dnl
AC_MSG_CHECKING([for init script flavor])
AC_ARG_WITH(init-script,
AC_HELP_STRING([--with-init-scripts=[redhat|auto|none]],
[Style of init scripts to install (defaults to auto)]))
if test "x$with_init_scripts" = "x" -o "x$with_init_scripts" = "xauto"; then
if test -f /etc/redhat-release ; then
with_init_scripts=redhat
else
with_init_scripts=none
fi
fi
AM_CONDITIONAL(LIBVIRT_INIT_SCRIPTS_RED_HAT, test x$with_init_scripts = xredhat)
AC_MSG_RESULT($with_init_scripts)
2007-02-14 16:26:42 +00:00
dnl
dnl allow the creation of iptables rules in chains with a
dnl specific prefix rather than in the standard toplevel chains
dnl
AC_ARG_WITH(iptables-prefix,
AC_HELP_STRING([--with-iptables-prefix=prefix],
[prefix used for iptables chains, default is to use standard toplevel chains]),
[IPTABLES_PREFIX=$withval])
AC_DEFINE_UNQUOTED(IPTABLES_PREFIX, "$IPTABLES_PREFIX", [prefix used for iptables chains])
dnl
dnl also support saving the various chains to files
dnl in e.g. /etc/sysconfig/iptables.d
dnl
AC_ARG_WITH(iptables-dir,
AC_HELP_STRING([--with-iptables-dir=path],
[directory used to save iptables chains, defaults to not saving]),
[IPTABLES_DIR=$withval])
if test x"$IPTABLES_DIR" != "x"; then
AC_DEFINE_UNQUOTED(IPTABLES_DIR, "$IPTABLES_DIR", [directory used for saving iptables chains])
fi
AC_PATH_PROG(IPTABLES_PATH, iptables, /sbin/iptables)
AC_DEFINE_UNQUOTED(IPTABLES_PATH, "$IPTABLES_PATH", [path to iptables binary])
2006-03-10 10:21:41 +00:00
dnl
dnl Specify the xen-distribution directory to be able to compile on a
dnl non-xenified host
dnl
AC_ARG_WITH(xen-distdir, AC_HELP_STRING([--with-xen-distdir=path],
[distribution directory of Xen, default /usr]))
if test "x$with_xen_distdir" != "x"
then
CPPFLAGS="$CPPFLAGS -I$withval/install/usr/include"
LDFLAGS="$LDFLAGS -L$withval/install/usr/lib"
fi
2005-12-09 10:16:33 +00:00
dnl
dnl To be able to make dist on a non-xenified host
dnl
AC_ARG_WITH(depends,
2006-05-09 15:35:46 +00:00
[ --with-depends check for dependancies (on)])
2005-12-09 10:16:33 +00:00
2007-03-15 07:43:16 +00:00
LIBVIRT_FEATURES=
WITH_XEN=0
2007-07-17 13:27:26 +00:00
if test "$with_openvz" = "yes" ; then
LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_OPENVZ"
fi
2007-09-18 23:36:30 +00:00
if test "$with_qemu" = "yes" ; then
2007-03-15 07:43:16 +00:00
LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_QEMU"
fi
2007-09-18 23:36:30 +00:00
if test "$with_test" = "yes" ; then
2007-03-15 07:43:16 +00:00
LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_TEST"
fi
2007-09-18 23:36:30 +00:00
if test "$with_remote" = "yes" ; then
2007-06-11 12:19:46 +00:00
LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_REMOTE"
fi
2005-12-09 10:16:33 +00:00
if test "$with_depends" != "no"
then
2007-09-18 23:36:30 +00:00
if test "$with_xen" = "yes" ; then
2007-03-15 07:43:16 +00:00
dnl search for the Xen store library
AC_SEARCH_LIBS(xs_read, [xenstore],
[WITH_XEN=1],
[AC_MSG_RESULT([Xen store library not found])])
if test "$WITH_XEN" != "0" ; then
LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_XEN"
fi
2007-07-19 15:37:54 +00:00
AC_CHECK_HEADERS(xen/xen.h xen/version.h xen/dom0_ops.h,,[
AC_MSG_ERROR([Cannot find standard Xen headers. Is xen-devel installed?])
],
[#include <stdio.h>
#include <stdint.h>
])
dnl Search for the location of <xen/{linux,sys}/privcmd.h>.
AC_CHECK_HEADERS(xen/sys/privcmd.h,,[
AC_CHECK_HEADERS(xen/linux/privcmd.h,,[
AC_MSG_ERROR([Cannot find header file <xen/linux/privcmd.h> or <xen/sys/privcmd.h>. Is xen-devel installed?])
],
[#include <stdio.h>
#include <stdint.h>
#include <xen/xen.h>
])
],
[#include <stdio.h>
#include <stdint.h>
#include <xen/xen.h>
])
2007-03-15 07:43:16 +00:00
fi
2005-11-02 13:19:10 +00:00
2007-02-14 16:02:40 +00:00
dnl
dnl check for kernel headers required by qemud/bridge.c
dnl
2007-09-18 23:40:34 +00:00
if test "$with_qemu" = "yes" ; then
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]))
fi
2007-02-14 16:02:40 +00:00
2007-09-19 01:56:55 +00:00
dnl Need to test if pkg-config exists
PKG_PROG_PKG_CONFIG
2006-02-16 22:50:52 +00:00
dnl ==========================================================================
dnl find libxml2 library, borrowed from xmlsec
dnl ==========================================================================
LIBXML_CONFIG="xml2-config"
LIBXML_CFLAGS=""
LIBXML_LIBS=""
LIBXML_FOUND="no"
2007-09-19 15:35:00 +00:00
2006-02-16 22:50:52 +00:00
AC_ARG_WITH(libxml, [ --with-libxml=[PFX] libxml2 location])
2007-12-05 23:02:13 +00:00
if test "z$with_libxml" = "zno" ; then
AC_MSG_CHECKING(for libxml2 libraries >= $LIBXML_REQUIRED)
2007-09-19 15:35:00 +00:00
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
2006-02-16 22:50:52 +00:00
fi
if test "z$LIBXML_FOUND" = "zno" ; then
2007-12-05 23:02:13 +00:00
if test "z$with_libxml" != "z" ; then
2006-02-16 22:50:52 +00:00
LIBXML_CONFIG=$with_libxml/bin/$LIBXML_CONFIG
fi
2007-09-19 15:35:00 +00:00
AC_MSG_CHECKING(libxml2 $LIBXML_CONFIG >= $LIBXML_REQUIRED )
2006-02-16 22:50:52 +00:00
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;}'`
2007-09-19 15:35:00 +00:00
minvers=`echo $LIBXML_REQUIRED | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
2006-02-16 22:50:52 +00:00
if test "$vers" -ge "$minvers" ; then
LIBXML_LIBS="`$LIBXML_CONFIG --libs`"
LIBXML_CFLAGS="`$LIBXML_CONFIG --cflags`"
LIBXML_FOUND="yes"
2007-09-19 15:35:00 +00:00
AC_MSG_RESULT(yes)
2006-02-16 22:50:52 +00:00
else
2007-09-19 15:35:00 +00:00
AC_MSG_ERROR(You need at least libxml2 $LIBXML_REQUIRED for this version of libvirt)
2006-02-16 22:50:52 +00:00
fi
fi
AC_SUBST(LIBXML_CFLAGS)
AC_SUBST(LIBXML_LIBS)
2007-06-11 12:19:46 +00:00
dnl xmlURI structure has query_raw?
old_cflags="$CFLAGS"
2007-09-19 15:35:00 +00:00
old_ldflags="$LDFLAGS"
2007-06-11 12:19:46 +00:00
CFLAGS="$CFLAGS $LIBXML_CFLAGS"
2007-09-19 15:35:00 +00:00
LDFLAGS="$LDFLAGS $LIBXML_LIBS"
2007-06-11 12:19:46 +00:00
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"
2007-09-19 15:35:00 +00:00
LDFLAGS="$old_ldflags"
2007-06-11 12:19:46 +00:00
dnl GnuTLS library
2007-09-19 17:42:40 +00:00
GNUTLS_CFLAGS=
GNUTLS_LIBS=
if test "x$PKG_CONFIG" != "x" ; then
PKG_CHECK_MODULES(GNUTLS, gnutls >= $GNUTLS_REQUIRED)
else
AC_CHECK_HEADER([gnutls/gnutls.h],
2007-06-11 12:19:46 +00:00
[],
AC_MSG_ERROR([You must install the GnuTLS development package in order to compile libvirt]))
2007-09-19 17:42:40 +00:00
old_libs="$LIBS"
AC_CHECK_LIB(gnutls, gnutls_handshake,
2007-06-11 12:19:46 +00:00
[],
[AC_MSG_ERROR([You must install the GnuTLS library in order to compile and run libvirt])])
2007-09-19 17:42:40 +00:00
GNUTLS_LIBS=$LIBS
LIBS="$old_libs"
fi
AC_SUBST(GNUTLS_CFLAGS)
AC_SUBST(GNUTLS_LIBS)
2007-06-11 12:19:46 +00:00
2007-08-07 13:02:35 +00:00
dnl Old versions of GnuTLS uses types like 'gnutls_session' instead
dnl of 'gnutls_session_t'. Try to detect this type if defined so
dnl that we can offer backwards compatibility.
2007-09-19 17:42:40 +00:00
old_cflags="$CFLAGS"
old_ldflags="$LDFLAGS"
CFLAGS="$CFLAGS $GNUTLS_CFLAGS"
LDFLAGS="$LDFLAGS $GNUTLS_LIBS"
2007-08-07 13:02:35 +00:00
AC_CHECK_TYPE(gnutls_session,
AC_DEFINE(GNUTLS_1_0_COMPAT,[],
[enable GnuTLS 1.0 compatibility macros]),,
[#include <gnutls/gnutls.h>])
2007-09-19 17:42:40 +00:00
CFLAGS="$old_cflags"
LDFLAGS="$old_ldflags"
2007-08-07 13:02:35 +00:00
2007-09-19 01:56:55 +00:00
2007-12-05 15:24:15 +00:00
dnl Cyrus SASL
AC_ARG_WITH(sasl,
[ --with-sasl use cyrus SASL for authentication],
[],
[with_sasl=yes])
SASL_CFLAGS=
SASL_LIBS=
if test "$with_sasl" != "no"; then
if test "$with_sasl" != "yes"; then
SASL_CFLAGS="-I$with_sasl"
SASL_LIBS="-L$with_sasl"
fi
old_cflags="$CFLAGS"
old_libs="$LIBS"
CFLAGS="$CFLAGS $SASL_CFLAGS"
LIBS="$LIBS $SASL_LIBS"
AC_CHECK_HEADER([sasl/sasl.h],
[],
AC_MSG_ERROR([You must install the Cyrus SASL development package in order to compile libvirt]))
AC_CHECK_LIB(sasl2, sasl_client_init,
[],
[AC_MSG_ERROR([You must install the Cyrus SASL library in order to compile and run libvirt])])
CFLAGS="$old_cflags"
LIBS="$old_libs"
SASL_LIBS="$SASL_LIBS -lsasl2"
AC_DEFINE_UNQUOTED(HAVE_SASL, 1, [whether Cyrus SASL is available for authentication])
fi
AM_CONDITIONAL(HAVE_SASL, [test "$with_sasl" != "no"])
AC_SUBST(SASL_CFLAGS)
AC_SUBST(SASL_LIBS)
2007-12-05 18:21:27 +00:00
dnl PolicyKit library
POLKIT_CFLAGS=
POLKIT_LIBS=
AC_ARG_WITH(polkit,
[ --with-polkit use PolicyKit for UNIX socket access checks],
[],
[with_polkit=check])
if test "$with_polkit" = "check"; then
PKG_CHECK_EXISTS(polkit-dbus >= $POLKIT_REQUIRED, [with_polkit=yes], [with_polkit=no])
fi
if test "$with_polkit" = "yes"; then
PKG_CHECK_MODULES(POLKIT, polkit-dbus >= $POLKIT_REQUIRED)
AC_DEFINE_UNQUOTED(HAVE_POLKIT, 1, [use PolicyKit for UNIX socket access checks])
fi
AM_CONDITIONAL(HAVE_POLKIT, [test "$with_polkit" = "yes"])
AC_SUBST(POLKIT_CFLAGS)
AC_SUBST(POLKIT_LIBS)
2007-12-05 15:24:15 +00:00
2007-09-19 01:56:55 +00:00
dnl Avahi library
AC_ARG_WITH(avahi,
[ --with-avahi use avahi to advertise remote daemon],
[],
[with_avahi=check])
if test "$with_avahi" = "check" -a "x$PKG_CONFIG" != "x" ; then
PKG_CHECK_EXISTS(avahi-client >= $AVAHI_REQUIRED, [with_avahi=yes], [with_avahi=no])
fi
AVAHI_CFLAGS=
AVAHI_LIBS=
if test "$with_avahi" = "yes"; then
PKG_CHECK_MODULES(AVAHI, avahi-client >= $AVAHI_REQUIRED)
AC_DEFINE_UNQUOTED(HAVE_AVAHI, 1, [whether Avahi is used to broadcast server presense])
fi
AM_CONDITIONAL(HAVE_AVAHI, [test "$with_avahi" = "yes"])
AC_SUBST(AVAHI_CFLAGS)
AC_SUBST(AVAHI_LIBS)
2005-12-08 10:23:34 +00:00
dnl virsh libraries
2007-12-04 18:27:52 +00:00
AC_CHECK_HEADERS([readline/readline.h])
2007-12-06 11:42:26 +00:00
# Check for readline.
AC_CHECK_LIB(readline, readline,
[lv_use_readline=yes; VIRSH_LIBS="$VIRSH_LIBS -lreadline"],
[lv_use_readline=no])
# If the above test failed, it may simply be that -lreadline requires
# some termcap-related code, e.g., from one of the following libraries.
# See if adding one of them to LIBS helps.
if test $lv_use_readline = no; then
lv_saved_libs=$LIBS
LIBS=
AC_SEARCH_LIBS(tgetent, ncurses curses termcap termlib)
case $LIBS in
no*) ;; # handle "no" and "none required"
*) # anything else is a -lLIBRARY
# Now, check for -lreadline again, also using $LIBS.
# Note: this time we use a different function, so that
# we don't get a cached "no" result.
AC_CHECK_LIB(readline, rl_initialize,
[lv_use_readline=yes
VIRSH_LIBS="$VIRSH_LIBS -lreadline $LIBS"],,
[$LIBS])
;;
esac
test $lv_use_readline = no &&
AC_MSG_WARN([readline library not found])
LIBS=$lv_saved_libs
fi
if test $lv_use_readline = yes; then
AC_DEFINE_UNQUOTED([USE_READLINE], 1,
[whether virsh can use readline])
READLINE_CFLAGS=-DUSE_READLINE
2007-12-06 10:24:52 +00:00
else
2007-12-06 11:42:26 +00:00
READLINE_CFLAGS=
2007-12-06 10:24:52 +00:00
fi
AC_SUBST(READLINE_CFLAGS)
2005-12-08 10:23:34 +00:00
AC_SUBST(VIRSH_LIBS)
2006-02-10 08:40:20 +00:00
# end of if with_depends
fi
2007-03-15 07:43:16 +00:00
AC_SUBST(WITH_XEN)
AC_SUBST(LIBVIRT_FEATURES)
2005-12-19 16:34:11 +00:00
dnl
dnl check for python
dnl
PYTHON_VERSION=
PYTHON_INCLUDES=
PYTHON_SITE_PACKAGES=
PYTHON_TESTS=
pythondir=
if test "$with_python" != "no" ; then
if test -x "$with_python/bin/python"
then
echo Found python in $with_python/bin/python
PYTHON="$with_python/bin/python"
else
if test -x "$with_python"
then
echo Found python in $with_python
PYTHON="$with_python"
else
if test -x "$PYTHON"
then
echo Found python in environment PYTHON=$PYTHON
2006-08-11 11:57:52 +00:00
with_python=`$PYTHON -c "import sys; print sys.exec_prefix"`
2005-12-19 16:34:11 +00:00
else
AC_PATH_PROG(PYTHON, python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5)
fi
fi
fi
if test "$PYTHON" != ""
then
PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[[0:3]]"`
echo Found Python version $PYTHON_VERSION
fi
if test "$PYTHON_VERSION" != ""
then
if test -r $with_python/include/python$PYTHON_VERSION/Python.h -a \
-d $with_python/lib/python$PYTHON_VERSION/site-packages
then
PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
2006-08-11 11:57:52 +00:00
PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
2005-12-19 16:34:11 +00:00
else
if test -r $prefix/include/python$PYTHON_VERSION/Python.h
then
2006-08-11 11:57:52 +00:00
PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
2005-12-19 16:34:11 +00:00
else
if test -r /usr/include/python$PYTHON_VERSION/Python.h
then
PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
2006-08-11 11:57:52 +00:00
PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
2005-12-19 16:34:11 +00:00
else
echo could not find python$PYTHON_VERSION/Python.h
fi
fi
if test ! -d "$PYTHON_SITE_PACKAGES"
then
PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib()"`
fi
fi
fi
if test "$with_python" != ""
then
pythondir='$(PYTHON_SITE_PACKAGES)'
else
2006-08-11 11:57:52 +00:00
pythondir='$(libdir)/python$(PYTHON_VERSION)/site-packages'
2005-12-19 16:34:11 +00:00
fi
else
PYTHON=
fi
AM_CONDITIONAL(WITH_PYTHON, test "$PYTHON_INCLUDES" != "")
AC_SUBST(pythondir)
AC_SUBST(PYTHON_VERSION)
AC_SUBST(PYTHON_INCLUDES)
AC_SUBST(PYTHON_SITE_PACKAGES)
2007-02-07 13:41:44 +00:00
AC_MSG_CHECKING([whether this host is running a Xen kernel])
RUNNING_XEN=
if test -d /proc/sys/xen
then
RUNNING_XEN=yes
else
RUNNING_XEN=no
fi
AC_MSG_RESULT($RUNNING_XEN)
AC_MSG_CHECKING([If XenD UNIX socket /var/run/xend/xmlrpc.sock is accessible])
RUNNING_XEND=
if test -S /var/run/xend/xmlrpc.sock
then
RUNNING_XEND=yes
else
RUNNING_XEND=no
fi
AC_MSG_RESULT($RUNNING_XEND)
AM_CONDITIONAL(ENABLE_XEN_TESTS, [test "$RUNNING_XEN" != "no" -a "$RUNNING_XEND" != "no"])
2007-02-14 02:12:41 +00:00
AC_ARG_ENABLE(test-coverage,
[ --enable-test-coverage turn on code coverage instrumentation],
[case "${enableval}" in
yes|no) ;;
*) AC_MSG_ERROR([bad value ${enableval} for test-coverage option]) ;;
esac],
[enableval=no])
if test "${enableval}" = yes; then
gl_COMPILER_FLAGS(-fprofile-arcs)
gl_COMPILER_FLAGS(-ftest-coverage)
AC_SUBST([COVERAGE_CFLAGS], [$COMPILER_FLAGS])
AC_SUBST([COVERAGE_LDFLAGS], [$COMPILER_FLAGS])
COMPILER_FLAGS=
fi
2007-11-26 11:52:38 +00:00
dnl Enable building the proxy?
2007-12-05 19:11:01 +00:00
AC_ARG_WITH(xen-proxy,
[ --with-xen-proxy add XEN setuid proxy support (on)],[],[with_xen_proxy=auto])
AC_MSG_CHECKING([if Xen setuid proxy is needed])
if test "$with_xen_proxy" = "auto"; then
if test "$with_polkit" = "yes"; then
with_xen_proxy="no"
else
with_xen_proxy="yes"
fi
fi
if test "$with_xen" != "yes"; then
with_xen_proxy="no"
fi
AC_MSG_RESULT([$with_xen_proxy])
AM_CONDITIONAL(WITH_PROXY,[test "$with_xen_proxy" = "yes"])
2007-02-14 02:12:41 +00:00
2007-12-06 16:34:48 +00:00
dnl Enable building libvirtd?
AM_CONDITIONAL(WITH_LIBVIRTD,[test "x$with_libvirtd" = "xyes"])
2007-11-26 11:52:38 +00:00
dnl Check for gettext
2006-09-21 15:24:37 +00:00
AM_GNU_GETTEXT_VERSION([0.14.1])
AM_GNU_GETTEXT([external])
2006-11-28 13:05:37 +00:00
if test -d po
then
ALL_LINGUAS=`(cd po > /dev/null && ls *.po) | sed 's+\.po$++'`
else
ALL_LINGUAS="af am ar as be bg bn_IN bn ca cs cy da de el en_GB es et eu_ES fa fi fr gl gu he hi hr hu hy id is it ja ka kn ko ku lo lt lv mk ml mr ms my nb nl nn no nso or pa pl pt_BR pt ro ru si sk sl sq sr@Latn sr sv ta te th tr uk ur vi zh_CN zh_TW zu"
fi
2006-09-21 15:24:37 +00:00
2007-11-29 17:44:01 +00:00
dnl Extra link-time flags for Cygwin.
dnl Copied from libxml2 configure.in, but I removed mingw changes
dnl for now since I'm not supporting mingw at present. - RWMJ
CYGWIN_EXTRA_LDFLAGS=
CYGWIN_EXTRA_LIBADD=
CYGWIN_EXTRA_PYTHON_LIBADD=
case "$host" in
*-*-cygwin*)
CYGWIN_EXTRA_LDFLAGS="-no-undefined"
CYGWIN_EXTRA_LIBADD="${INTLLIBS}"
if test "x$PYTHON_VERSION" != "x"; then
CYGWIN_EXTRA_PYTHON_LIBADD="-L/usr/lib/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}"
fi
;;
esac
AC_SUBST(CYGWIN_EXTRA_LDFLAGS)
AC_SUBST(CYGWIN_EXTRA_LIBADD)
AC_SUBST(CYGWIN_EXTRA_PYTHON_LIBADD)
2005-12-09 10:37:37 +00:00
# very annoying
rm -f COPYING
2006-02-10 08:40:20 +00:00
cp COPYING.LIB COPYING
2005-12-09 10:37:37 +00:00
2005-12-08 15:08:46 +00:00
AC_OUTPUT(Makefile src/Makefile include/Makefile docs/Makefile \
2006-02-22 10:54:54 +00:00
docs/examples/Makefile docs/devhelp/Makefile \
2006-04-25 16:08:48 +00:00
docs/examples/python/Makefile \
2007-12-07 14:35:18 +00:00
gnulib/lib/Makefile \
2007-12-10 18:26:56 +00:00
gnulib/tests/Makefile \
2006-06-26 15:02:18 +00:00
libvirt.pc libvirt.spec \
2007-02-14 02:12:41 +00:00
po/Makefile.in scripts/Makefile \
2006-06-26 15:02:18 +00:00
include/libvirt/Makefile include/libvirt/libvirt.h \
2006-05-09 15:35:46 +00:00
python/Makefile python/tests/Makefile \
Use gnulib, starting with its physmem and getaddrinfo modules.
New files go into these directories:
gnulib/lib
gnulib/m4
gnulib/tests
* bootstrap: A wrapper around gnulib-tool.
* configure.in: Invoke gl_EARLY and gl_INIT, being careful to put gl_EARLY
before any macro that uses AC_COMPILE_IFELSE.
(AC_OUTPUT): Add lib/Makefile and gl-tests/Makefile. Remove m4/Makefile.
* Makefile.am (SUBDIRS): Add gnulib/lib and remove m4. Add gnulib/tests
early enough that those tests run before any libvirt unit tests.
* m4/Makefile.am: Remove file. Not needed.
* src/Makefile.am (INCLUDES): Add -I$(top_srcdir)/gnulib/lib -I../gnulib/lib.
(LDADDS, libvirt_la_LIBADD): Add ../gnulib/lib/libgnu.la.
* src/nodeinfo.c: Include "physmem.h".
* qemud/qemud.c, src/remote_internal.c: Include "getaddrinfo.h".
(MEMINFO_PATH, linuxNodeInfoMemPopulate): Remove definitions.
(virNodeInfoPopulate): Use physmem_total, not linuxNodeInfoMemPopulate.
* tests/Makefile.am (INCLUDES): Add -I$(top_srcdir)/gnulib/lib -I../gnulib/lib.
(LDADDS): Add ../gnulib/lib/libgnu.la.
* qemud/Makefile.am (libvirtd_LDADD): Add ../gnulib/lib/libgnu.la.
* tests/nodeinfotest.c (linuxTestCompareFiles): No longer read total
memory from a file.
Update expected output not to include "Memory: NNNN"
* tests/nodeinfodata/linux-nodeinfo-1.txt:
* tests/nodeinfodata/linux-nodeinfo-2.txt:
* tests/nodeinfodata/linux-nodeinfo-3.txt:
* tests/nodeinfodata/linux-nodeinfo-4.txt:
* tests/nodeinfodata/linux-nodeinfo-5.txt:
* tests/nodeinfodata/linux-nodeinfo-6.txt:
* src/test.c [WITH_TEST]: Remove definition of _GNU_SOURCE that
would conflict with the one now in "config.h".
* autogen.sh: Add -I gnulib/m4.
* src/conf.c, src/sexpr.c: Don't define _GNU_SOURCE.
Instead, include "config.h".
* qemud/qemud.c: Remove definition of _GNU_SOURCE.
* src/openvz_driver.c: Likewise.
* src/qemu_driver.c: Likewise.
* src/remote_internal.c: Likewise.
* configure.in: Use AC_CONFIG_AUX_DIR(build-aux), so that a bunch
of gettextize-generated files go into build-aux/, rather than in
the top-level directory.
* .cvsignore: Adjust.
* build-aux/.cvsignore: New file.
Author: Jim Meyering <meyering@redhat.com>
2007-12-05 21:31:07 +00:00
qemud/Makefile \
2006-08-24 21:46:28 +00:00
tests/Makefile proxy/Makefile \
2006-09-12 01:16:22 +00:00
tests/xml2sexprdata/Makefile \
tests/sexpr2xmldata/Makefile \
2007-01-19 20:30:05 +00:00
tests/xmconfigdata/Makefile \
2007-03-27 14:45:17 +00:00
tests/xencapsdata/Makefile \
2006-08-29 22:27:07 +00:00
tests/virshdata/Makefile tests/confdata/Makefile)
2007-09-18 23:36:30 +00:00
AC_MSG_NOTICE([])
AC_MSG_NOTICE([Configuration summary])
AC_MSG_NOTICE([=====================])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([Drivers])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([ Xen: $with_xen])
2007-12-05 19:11:01 +00:00
AC_MSG_NOTICE([ Proxy: $with_xen_proxy])
2007-09-18 23:36:30 +00:00
AC_MSG_NOTICE([ QEMU: $with_qemu])
AC_MSG_NOTICE([ OpenVZ: $with_openvz])
AC_MSG_NOTICE([ Test: $with_test])
AC_MSG_NOTICE([ Remote: $with_remote])
2007-12-06 16:34:48 +00:00
AC_MSG_NOTICE([Libvirtd: $with_libvirtd])
2007-09-18 23:36:30 +00:00
AC_MSG_NOTICE([])
AC_MSG_NOTICE([Libraries])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([ libxml: $LIBXML_CFLAGS $LIBXML_LIBS])
2007-09-19 17:42:40 +00:00
AC_MSG_NOTICE([ gnutls: $GNUTLS_CFLAGS $GNUTLS_LIBS])
2007-12-05 15:24:15 +00:00
if test "$with_sasl" != "no" ; then
AC_MSG_NOTICE([ sasl: $SASL_CFLAGS $SASL_LIBS])
else
AC_MSG_NOTICE([ sasl: no])
fi
2007-09-19 01:56:55 +00:00
if test "$with_avahi" = "yes" ; then
AC_MSG_NOTICE([ avahi: $AVAHI_CFLAGS $AVAHI_LIBS])
else
AC_MSG_NOTICE([ avahi: no])
fi
2007-12-05 18:21:27 +00:00
if test "$with_polkit" = "yes" ; then
AC_MSG_NOTICE([ polkit: $POLKIT_CFLAGS $POLKIT_LIBS])
else
AC_MSG_NOTICE([ polkit: no])
fi
2007-09-18 23:36:30 +00:00
AC_MSG_NOTICE([])
AC_MSG_NOTICE([Miscellaneous])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([ Debug: $enable_debug])
2007-12-06 11:42:26 +00:00
AC_MSG_NOTICE([ Readline: $lv_use_readline])
2007-09-18 23:36:30 +00:00
AC_MSG_NOTICE([])