mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-24 14:45:24 +00:00
191053b53d
* configure.in src/Makefile.am: change detection and flags * src/phyp/phyp_driver.c src/phyp/phyp_driver.h: connection now need to be done as part of the driver code, cleaned up by DV
1783 lines
57 KiB
Plaintext
1783 lines
57 KiB
Plaintext
dnl Process this file with autoconf to produce a configure script.
|
|
|
|
AC_INIT([libvirt], [0.7.0])
|
|
AC_CONFIG_SRCDIR([src/libvirt.c])
|
|
AC_CONFIG_AUX_DIR([build-aux])
|
|
AM_CONFIG_HEADER([config.h])
|
|
dnl Make automake keep quiet about wildcards & other GNUmake-isms
|
|
AM_INIT_AUTOMAKE([-Wno-portability])
|
|
|
|
# Use the silent-rules feature when possible.
|
|
m4_ifndef([AM_SILENT_RULES], [m4_define([AM_SILENT_RULES],[])])
|
|
AM_SILENT_RULES([yes])
|
|
|
|
AC_CANONICAL_HOST
|
|
|
|
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}'`
|
|
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`
|
|
|
|
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])
|
|
|
|
dnl Required minimum versions of all libs we depend on
|
|
LIBXML_REQUIRED="2.6.0"
|
|
GNUTLS_REQUIRED="1.0.25"
|
|
AVAHI_REQUIRED="0.6.0"
|
|
POLKIT_REQUIRED="0.6"
|
|
PARTED_REQUIRED="1.8.0"
|
|
NETCF_REQUIRED="0.0.1"
|
|
|
|
dnl Checks for C compiler.
|
|
AC_PROG_CC
|
|
AC_PROG_INSTALL
|
|
AC_PROG_CPP
|
|
|
|
AC_OBJEXT
|
|
|
|
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])])])
|
|
|
|
gl_EARLY
|
|
gl_INIT
|
|
|
|
AM_PROG_CC_STDC
|
|
AC_C_CONST
|
|
|
|
dnl Make sure we have an ANSI compiler
|
|
AM_C_PROTOTYPES
|
|
test "x$U" != "x" && AC_MSG_ERROR([Compiler not ANSI compliant])
|
|
|
|
dnl Support building Win32 DLLs (must appear *before* AM_PROG_LIBTOOL)
|
|
AC_LIBTOOL_WIN32_DLL
|
|
|
|
AM_PROG_LIBTOOL
|
|
AM_PROG_CC_C_O
|
|
|
|
VERSION_SCRIPT_FLAGS=-Wl,--version-script=
|
|
`/usr/bin/ld --help 2>&1 | grep -- --version-script >/dev/null` || \
|
|
VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,"
|
|
AC_SUBST(VERSION_SCRIPT_FLAGS)
|
|
|
|
LIBVIRT_COMPILE_WARNINGS([maximum])
|
|
|
|
dnl Support large files / 64 bit seek offsets.
|
|
dnl Use --disable-largefile if you don't want this.
|
|
AC_SYS_LARGEFILE
|
|
|
|
dnl Availability of various common functions (non-fatal if missing).
|
|
AC_CHECK_FUNCS([cfmakeraw regexec uname sched_getaffinity getuid getgid posix_fallocate mmap readlink])
|
|
|
|
dnl Availability of various not common threadsafe functions
|
|
AC_CHECK_FUNCS([strerror_r strtok_r getmntent_r getgrnam_r getpwuid_r])
|
|
|
|
dnl Availability of various common headers (non-fatal if missing).
|
|
AC_CHECK_HEADERS([pwd.h paths.h regex.h sys/syslimits.h sys/utsname.h sys/wait.h winsock2.h sched.h termios.h sys/poll.h syslog.h mntent.h])
|
|
|
|
dnl Where are the XDR functions?
|
|
dnl If portablexdr is installed, prefer that.
|
|
dnl Otherwise try -lrpc (Cygwin) -lxdr (some MinGW), -lnsl (Solaris)
|
|
dnl or none (most Unix)
|
|
AC_CHECK_LIB([portablexdr],[xdrmem_create],[],[
|
|
AC_SEARCH_LIBS([xdrmem_create],[rpc xdr nsl])
|
|
])
|
|
|
|
AC_CHECK_LIB([intl],[gettext],[])
|
|
|
|
dnl Do we have rpcgen?
|
|
AC_PATH_PROG([RPCGEN], [rpcgen], [no])
|
|
AM_CONDITIONAL([HAVE_RPCGEN], [test "x$ac_cv_path_RPCGEN" != "xno"])
|
|
dnl Is this GLIBC's buggy rpcgen?
|
|
AM_CONDITIONAL([HAVE_GLIBC_RPCGEN],
|
|
[test "x$ac_cv_path_RPCGEN" != "xno" &&
|
|
$ac_cv_path_RPCGEN -t </dev/null >/dev/null 2>&1])
|
|
|
|
dnl pthread?
|
|
AC_CHECK_HEADER([pthread.h],
|
|
[AC_CHECK_LIB([pthread],[pthread_join],[
|
|
AC_DEFINE([HAVE_LIBPTHREAD],[],[Define if pthread (-lpthread)])
|
|
AC_DEFINE([HAVE_PTHREAD_H],[],[Define if <pthread.h>])
|
|
LIBS="-lpthread $LIBS"
|
|
])])
|
|
|
|
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([XMLCATALOG], [xmlcatalog], [/usr/bin/xmlcatalog])
|
|
AC_PATH_PROG([XSLTPROC], [xsltproc], [/usr/bin/xsltproc])
|
|
AC_PATH_PROG([AUGPARSE], [augparse], [/usr/bin/augparse])
|
|
AC_PROG_MKDIR_P
|
|
|
|
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_PATH_PROG([UDEVADM], [udevadm], [],
|
|
[/sbin:/usr/sbin:/usr/local/sbin:$PATH])
|
|
AC_PATH_PROG([UDEVSETTLE], [udevsettle], [],
|
|
[/sbin:/usr/sbin:/usr/local/sbin:$PATH])
|
|
AC_PATH_PROG([MODPROBE], [modprobe], [],
|
|
[/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)])
|
|
if test -n "$UDEVADM"; then
|
|
AC_DEFINE_UNQUOTED([UDEVADM],["$UDEVADM"],
|
|
[Location or name of the udevadm program])
|
|
fi
|
|
if test -n "$UDEVSETTLE"; then
|
|
AC_DEFINE_UNQUOTED([UDEVSETTLE],["$UDEVSETTLE"],
|
|
[Location or name of the udevsettle program])
|
|
fi
|
|
if test -n "$MODPROBE"; then
|
|
AC_DEFINE_UNQUOTED([MODPROBE],["$MODPROBE"],
|
|
[Location or name of the modprobe program])
|
|
fi
|
|
|
|
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])
|
|
|
|
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
|
|
|
|
if test "$prefix" = "/usr" -a "$localstatedir" = '${prefix}/var' ; then
|
|
localstatedir='/var'
|
|
fi
|
|
if test "$prefix" = "/usr" -a "$sysconfdir" = '${prefix}/etc' ; then
|
|
sysconfdir='/etc'
|
|
fi
|
|
|
|
|
|
dnl Allow to build without Xen, QEMU/KVM, test or remote driver
|
|
AC_ARG_WITH([xen],
|
|
[ --with-xen add XEN support (on)],[],[with_xen=yes])
|
|
AC_ARG_WITH([xen-inotify],
|
|
[ --with-xen-inotify add XEN inotify support (on)],[],[with_xen_inotify=check])
|
|
AC_ARG_WITH([qemu],
|
|
[ --with-qemu add QEMU/KVM support (on)],[],[with_qemu=yes])
|
|
AC_ARG_WITH([uml],
|
|
[ --with-uml add UML support (on)],[],[with_uml=check])
|
|
AC_ARG_WITH([openvz],
|
|
[ --with-openvz add OpenVZ support (on)],[],[with_openvz=yes])
|
|
AC_ARG_WITH([libssh2],
|
|
[ --with-libssh2=[PFX] libssh2 location],[],[with_libssh2=yes])
|
|
AC_ARG_WITH([phyp],
|
|
[ --with-phyp=[PFX] add PHYP support (on)],[],[with_phyp=check])
|
|
AC_ARG_WITH([vbox],
|
|
[ --with-vbox add VirtualBox support (on)],[],[with_vbox=yes])
|
|
AC_ARG_WITH([lxc],
|
|
[ --with-lxc add Linux Container support (on)],[],[with_lxc=check])
|
|
AC_ARG_WITH([one],
|
|
[ --with-one add ONE support (on)],[],[with_one=check])
|
|
AC_ARG_WITH([esx],
|
|
[ --with-esx add ESX support (on)],[],[with_esx=check])
|
|
AC_ARG_WITH([test],
|
|
[ --with-test add test driver support (on)],[],[with_test=yes])
|
|
AC_ARG_WITH([remote],
|
|
[ --with-remote add remote driver support (on)],[],[with_remote=yes])
|
|
AC_ARG_WITH([libvirtd],
|
|
[ --with-libvirtd add libvirtd support (on)],[],[with_libvirtd=yes])
|
|
|
|
dnl
|
|
dnl specific tests to setup DV devel environments with debug etc ...
|
|
dnl
|
|
if [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/libvirt" ]] ; then
|
|
STATIC_BINARIES="-static"
|
|
else
|
|
STATIC_BINARIES=
|
|
fi
|
|
AC_SUBST([STATIC_BINARIES])
|
|
|
|
dnl --enable-debug=(yes|no)
|
|
AC_ARG_ENABLE([debug],
|
|
[AC_HELP_STRING([--enable-debug=no/yes],
|
|
[enable debugging output])],[],[enable_debug=yes])
|
|
AM_CONDITIONAL([ENABLE_DEBUG], test x"$enable_debug" = x"yes")
|
|
if test x"$enable_debug" = x"yes"; then
|
|
AC_DEFINE([ENABLE_DEBUG], [], [whether debugging is enabled])
|
|
fi
|
|
|
|
|
|
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)
|
|
|
|
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)
|
|
|
|
dnl RHEL-5 has a peculiar version of Xen, which requires some special casing
|
|
AC_ARG_WITH([rhel5-api],
|
|
[AC_HELP_STRING([--with-rhel5-api=[ARG]],
|
|
[build for the RHEL-5 API [default=no]])])
|
|
if test x"$with_rhel5_api" = x"yes"; then
|
|
AC_DEFINE([WITH_RHEL5_API], [1], [whether building for the RHEL-5 API])
|
|
fi
|
|
|
|
dnl
|
|
dnl ensure that Fedora's system-config-firewall knows
|
|
dnl about libvirt's iptables rules
|
|
dnl
|
|
AC_ARG_ENABLE([iptables-lokkit],
|
|
[AC_HELP_STRING([--enable-iptables-lokkit=no/yes/check],
|
|
[enable registering libvirt's iptables rules with Fedora's lokkit])],
|
|
[],[enable_iptables_lokkit=check])
|
|
if test x"$enable_iptables_lokkit" != x"no"; then
|
|
AC_PATH_PROG([LOKKIT_PATH],[lokkit], [], [/usr/sbin:$PATH])
|
|
fi
|
|
|
|
if test x"$enable_iptables_lokkit" = x"yes" -a x"$LOKKIT_PATH" = x; then
|
|
AC_MSG_ERROR([Cannot find lokkit and --enable-iptables-lokkit specified])
|
|
fi
|
|
|
|
if test x"$LOKKIT_PATH" != x; then
|
|
AC_DEFINE([ENABLE_IPTABLES_LOKKIT], [], [whether support for Fedora's lokkit is enabled])
|
|
AC_DEFINE_UNQUOTED([LOKKIT_PATH], "$LOKKIT_PATH", [path to lokkit binary])
|
|
fi
|
|
|
|
AC_PATH_PROG([IPTABLES_PATH], [iptables], /sbin/iptables, [/usr/sbin:$PATH])
|
|
AC_DEFINE_UNQUOTED([IPTABLES_PATH], "$IPTABLES_PATH", [path to iptables binary])
|
|
|
|
if test "$with_openvz" = "yes"; then
|
|
AC_DEFINE_UNQUOTED([WITH_OPENVZ], 1, [whether OpenVZ driver is enabled])
|
|
fi
|
|
AM_CONDITIONAL([WITH_OPENVZ], [test "$with_openvz" = "yes"])
|
|
|
|
if test "x$with_vbox" = "xyes"; then
|
|
AC_DEFINE_UNQUOTED([WITH_VBOX], 1, [whether VirtualBox driver is enabled])
|
|
fi
|
|
AM_CONDITIONAL([WITH_VBOX], [test "$with_vbox" = "yes"])
|
|
|
|
if test "$with_libvirtd" = "no" ; then
|
|
with_qemu=no
|
|
fi
|
|
if test "$with_qemu" = "yes" ; then
|
|
AC_DEFINE_UNQUOTED([WITH_QEMU], 1, [whether QEMU driver is enabled])
|
|
fi
|
|
AM_CONDITIONAL([WITH_QEMU], [test "$with_qemu" = "yes"])
|
|
|
|
if test "$with_one" = "yes" ; then
|
|
AC_DEFINE_UNQUOTED([WITH_ONE],1,[whether ONE driver is enabled])
|
|
fi
|
|
AM_CONDITIONAL([WITH_ONE],[test "$with_one" = "yes"])
|
|
|
|
if test "$with_test" = "yes" ; then
|
|
AC_DEFINE_UNQUOTED([WITH_TEST], 1, [whether Test driver is enabled])
|
|
fi
|
|
AM_CONDITIONAL([WITH_TEST], [test "$with_test" = "yes"])
|
|
|
|
if test "$with_remote" = "yes" ; then
|
|
AC_DEFINE_UNQUOTED([WITH_REMOTE], 1, [whether Remote driver is enabled])
|
|
fi
|
|
AM_CONDITIONAL([WITH_REMOTE], [test "$with_remote" = "yes"])
|
|
|
|
if test "$with_libvirtd" = "yes" ; then
|
|
AC_DEFINE_UNQUOTED([WITH_LIBVIRTD], 1, [whether libvirtd daemon is enabled])
|
|
fi
|
|
AM_CONDITIONAL([WITH_LIBVIRTD], [test "$with_libvirtd" = "yes"])
|
|
|
|
XEN_LIBS=""
|
|
XEN_CFLAGS=""
|
|
dnl search for the Xen store library
|
|
if test "$with_xen" != "no" ; then
|
|
if test "$with_xen" != "yes" -a "$with_xen" != "check" ; then
|
|
XEN_CFLAGS="-I$with_xen/include"
|
|
XEN_LIBS="-L$with_xen/lib64 -L$with_xen/lib"
|
|
fi
|
|
fail=0
|
|
old_LIBS="$LIBS"
|
|
old_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS $XEN_CFLAGS"
|
|
LIBS="$LIBS $XEN_LIBS"
|
|
AC_CHECK_LIB([xenstore], [xs_read], [
|
|
with_xen=yes
|
|
XEN_LIBS="$XEN_LIBS -lxenstore"
|
|
],[
|
|
if test "$with_xen" = "check" ; then
|
|
with_xen=no
|
|
else
|
|
with_xen=no
|
|
fail=1
|
|
fi
|
|
])
|
|
|
|
test $fail = 1 &&
|
|
AC_MSG_ERROR([You must install the Xen development package to compile Xen driver with -lxenstore])
|
|
|
|
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>
|
|
])
|
|
LIBS="$old_LIBS"
|
|
CFLAGS="$old_CFLAGS"
|
|
fi
|
|
if test "$with_xen" = "yes"; then
|
|
AC_DEFINE_UNQUOTED([WITH_XEN], 1, [whether Xen driver is enabled])
|
|
fi
|
|
AM_CONDITIONAL([WITH_XEN], [test "$with_xen" = "yes"])
|
|
AC_SUBST([XEN_CFLAGS])
|
|
AC_SUBST([XEN_LIBS])
|
|
|
|
dnl
|
|
dnl check for kernel headers required by xen_inotify
|
|
dnl
|
|
if test "$with_xen" != "yes"; then
|
|
with_xen_inotify=no
|
|
fi
|
|
if test "$with_xen_inotify" != "no"; then
|
|
AC_CHECK_HEADER([sys/inotify.h], [
|
|
with_xen_inotify=yes
|
|
], [
|
|
if test "$with_xen_inotify" = "check"; then
|
|
with_xen_inotify=no
|
|
AC_MSG_NOTICE([Header file <sys/inotify.h> is required for Xen Inotify support, disabling it])
|
|
else
|
|
AC_MSG_ERROR([Header file <sys/inotify.h> is required for Xen Inotify support!])
|
|
fi
|
|
0])
|
|
fi
|
|
if test "$with_xen_inotify" = "yes"; then
|
|
AC_DEFINE_UNQUOTED([WITH_XEN_INOTIFY], 1,[whether Xen inotify sub-driver is enabled])
|
|
fi
|
|
AM_CONDITIONAL([WITH_XEN_INOTIFY], [test "$with_xen_inotify" = "yes"])
|
|
|
|
dnl
|
|
dnl check for kvm headers
|
|
dnl
|
|
AC_CHECK_HEADERS([linux/kvm.h])
|
|
|
|
dnl
|
|
dnl check for sufficient headers for LXC
|
|
dnl
|
|
if test "$with_lxc" = "yes" -o "$with_lxc" = "check"; then
|
|
AC_CHECK_HEADER([sched.h],
|
|
dnl Header is there, check for unshare()
|
|
[
|
|
AC_TRY_LINK([#define _GNU_SOURCE
|
|
#include <sched.h>], [
|
|
unshare (1);
|
|
], [
|
|
with_lxc=yes
|
|
], [
|
|
if test "$with_lxc" = "check"; then
|
|
with_lxc=no
|
|
AC_MSG_NOTICE([Function unshare() not present in <sched.h> header but required for LXC driver, disabling it])
|
|
else
|
|
AC_MSG_ERROR([Function unshare() not present in <sched.h> header, but required for LXC driver])
|
|
fi
|
|
|
|
])
|
|
|
|
dnl Header is not there
|
|
],[
|
|
if test "$with_lxc" = "check"; then
|
|
with_lxc=no
|
|
AC_MSG_NOTICE([Header <sched.h> not found but required for LXC driver, disabling it])
|
|
else
|
|
AC_MSG_ERROR([Header <sched.h> not found but required for LXC driver])
|
|
fi
|
|
|
|
])
|
|
fi
|
|
if test "$with_libvirtd" = "no" ; then
|
|
with_lxc=no
|
|
fi
|
|
if test "$with_lxc" = "yes" ; then
|
|
AC_DEFINE_UNQUOTED([WITH_LXC], 1, [whether LXC driver is enabled])
|
|
fi
|
|
AM_CONDITIONAL([WITH_LXC], [test "$with_lxc" = "yes"])
|
|
|
|
|
|
dnl
|
|
dnl check for kernel headers required by src/bridge.c
|
|
dnl
|
|
if test "$with_qemu" = "yes" -o "$with_lxc" = "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
|
|
|
|
|
|
dnl OpenNebula driver Compilation setting
|
|
dnl
|
|
|
|
XMLRPC_REQUIRED=1.14.0
|
|
|
|
XMLRPC_CFLAGS=
|
|
XMLRPC_LIBS=
|
|
if test "x$with_one" = "xyes" -o "x$with_one" = "xcheck"; then
|
|
PKG_CHECK_MODULES(XMLRPC, xmlrpc_client >= $XMLRPC_REQUIRED,
|
|
[with_one=yes], [
|
|
if test "x$with_one" = "xcheck" ; then
|
|
with_one=no
|
|
else
|
|
AC_MSG_ERROR(
|
|
[You must install XMLRPC-C >= $XMLRPC_REQUIRED to compile libvirt ONE driver])
|
|
fi
|
|
])
|
|
if test "x$with_one" = "xyes" ; then
|
|
AC_DEFINE_UNQUOTED([HAVE_XMLRPC], 1,
|
|
[whether One is used to broadcast server presence])
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL([HAVE_XMLRPC], [test "x$with_one" = "xyes"])
|
|
AM_CONDITIONAL([WITH_ONE], [test "x$with_one" = "xyes"])
|
|
AC_SUBST([XMLRPC_CFLAGS])
|
|
AC_SUBST([XMLRPC_LIBS])
|
|
|
|
|
|
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"
|
|
|
|
AC_ARG_WITH([libxml], [ --with-libxml=[PFX] libxml2 location])
|
|
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" = "x" -a "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" != "x" ; 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_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
|
|
GNUTLS_CFLAGS=
|
|
GNUTLS_LIBS=
|
|
GNUTLS_FOUND=no
|
|
if test -z "$PKG_CONFIG" ; then
|
|
PKG_CHECK_MODULES(GNUTLS, gnutls >= $GNUTLS_REQUIRED,
|
|
[GNUTLS_FOUND=yes], [GNUTLS_FOUND=no])
|
|
fi
|
|
if test "$GNUTLS_FOUND" = "no"; then
|
|
fail=0
|
|
old_libs="$LIBS"
|
|
AC_CHECK_HEADER([gnutls/gnutls.h], [], [fail=1])
|
|
AC_CHECK_LIB([gnutls], [gnutls_handshake],[], [fail=1], [-lgcrypt])
|
|
|
|
test $fail = 1 &&
|
|
AC_MSG_ERROR([You must install the GnuTLS library in order to compile and run libvirt])
|
|
|
|
GNUTLS_LIBS=$LIBS
|
|
LIBS="$old_libs"
|
|
fi
|
|
|
|
AC_SUBST([GNUTLS_CFLAGS])
|
|
AC_SUBST([GNUTLS_LIBS])
|
|
|
|
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.
|
|
old_cflags="$CFLAGS"
|
|
old_ldflags="$LDFLAGS"
|
|
CFLAGS="$CFLAGS $GNUTLS_CFLAGS"
|
|
LDFLAGS="$LDFLAGS $GNUTLS_LIBS"
|
|
AC_CHECK_TYPE([gnutls_session],
|
|
AC_DEFINE([GNUTLS_1_0_COMPAT],[],
|
|
[enable GnuTLS 1.0 compatibility macros]),,
|
|
[#include <gnutls/gnutls.h>])
|
|
CFLAGS="$old_cflags"
|
|
LDFLAGS="$old_ldflags"
|
|
|
|
|
|
dnl Cyrus SASL
|
|
AC_ARG_WITH([sasl],
|
|
[ --with-sasl use cyrus SASL for authentication],
|
|
[],
|
|
[with_sasl=check])
|
|
|
|
SASL_CFLAGS=
|
|
SASL_LIBS=
|
|
if test "x$with_sasl" != "xno"; then
|
|
if test "x$with_sasl" != "xyes" -a "x$with_sasl" != "xcheck"; then
|
|
SASL_CFLAGS="-I$with_sasl"
|
|
SASL_LIBS="-L$with_sasl"
|
|
fi
|
|
fail=0
|
|
old_cflags="$CFLAGS"
|
|
old_libs="$LIBS"
|
|
CFLAGS="$CFLAGS $SASL_CFLAGS"
|
|
LIBS="$LIBS $SASL_LIBS"
|
|
AC_CHECK_HEADER([sasl/sasl.h],[],[
|
|
if test "x$with_sasl" != "xcheck" ; then
|
|
with_sasl=no
|
|
else
|
|
fail=1
|
|
fi])
|
|
if test "x$with_sasl" != "xno" ; then
|
|
AC_CHECK_LIB([sasl2], [sasl_client_init],[
|
|
SASL_LIBS="$SASL_LIBS -lsasl2"
|
|
with_sasl=yes
|
|
],[
|
|
AC_CHECK_LIB([sasl], [sasl_client_init],[
|
|
SASL_LIBS="$SASL_LIBS -lsasl"
|
|
with_sasl=yes
|
|
],[
|
|
if test "x$with_sasl" = "xcheck" ; then
|
|
with_sasl=no
|
|
else
|
|
fail=1
|
|
fi
|
|
])
|
|
])
|
|
fi
|
|
test $fail = 1 &&
|
|
AC_MSG_ERROR([You must install the Cyrus SASL development package in order to compile libvirt])
|
|
CFLAGS="$old_cflags"
|
|
LIBS="$old_libs"
|
|
if test "x$with_sasl" = "xyes" ; then
|
|
AC_DEFINE_UNQUOTED([HAVE_SASL], 1,
|
|
[whether Cyrus SASL is available for authentication])
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL([HAVE_SASL], [test "x$with_sasl" = "xyes"])
|
|
AC_SUBST([SASL_CFLAGS])
|
|
AC_SUBST([SASL_LIBS])
|
|
|
|
|
|
dnl PolicyKit library
|
|
POLKIT_CFLAGS=
|
|
POLKIT_LIBS=
|
|
PKCHECK_PATH=
|
|
AC_ARG_WITH([polkit],
|
|
[ --with-polkit use PolicyKit for UNIX socket access checks],
|
|
[],
|
|
[with_polkit=check])
|
|
|
|
with_polkit0=no
|
|
with_polkit1=no
|
|
if test "x$with_polkit" = "xyes" -o "x$with_polkit" = "xcheck"; then
|
|
dnl Check for new polkit first - just a binary
|
|
AC_PATH_PROG([PKCHECK_PATH],[pkcheck], [], [/usr/sbin:$PATH])
|
|
if test "x$PKCHECK_PATH" != "x" ; then
|
|
AC_DEFINE_UNQUOTED([PKCHECK_PATH],["$PKCHECK_PATH"],[Location of pkcheck program])
|
|
AC_DEFINE_UNQUOTED([HAVE_POLKIT], 1,
|
|
[use PolicyKit for UNIX socket access checks])
|
|
AC_DEFINE_UNQUOTED([HAVE_POLKIT1], 1,
|
|
[use PolicyKit for UNIX socket access checks])
|
|
with_polkit="yes"
|
|
with_polkit1="yes"
|
|
else
|
|
dnl Check for old polkit second - library + binary
|
|
PKG_CHECK_MODULES(POLKIT, polkit-dbus >= $POLKIT_REQUIRED,
|
|
[with_polkit=yes], [
|
|
if test "x$with_polkit" = "xcheck" ; then
|
|
with_polkit=no
|
|
else
|
|
AC_MSG_ERROR(
|
|
[You must install PolicyKit >= $POLKIT_REQUIRED to compile libvirt])
|
|
fi
|
|
])
|
|
if test "x$with_polkit" = "xyes" ; then
|
|
AC_DEFINE_UNQUOTED([HAVE_POLKIT], 1,
|
|
[use PolicyKit for UNIX socket access checks])
|
|
AC_DEFINE_UNQUOTED([HAVE_POLKIT0], 1,
|
|
[use PolicyKit for UNIX socket access checks])
|
|
|
|
old_CFLAGS=$CFLAGS
|
|
old_LDFLAGS=$LDFLAGS
|
|
CFLAGS="$CFLAGS $POLKIT_CFLAGS"
|
|
LDFLAGS="$LDFLAGS $POLKIT_LIBS"
|
|
AC_CHECK_FUNCS([polkit_context_is_caller_authorized])
|
|
CFLAGS="$old_CFLAGS"
|
|
LDFLAGS="$old_LDFLAGS"
|
|
|
|
AC_PATH_PROG([POLKIT_AUTH], [polkit-auth])
|
|
if test "x$POLKIT_AUTH" != "x"; then
|
|
AC_DEFINE_UNQUOTED([POLKIT_AUTH],["$POLKIT_AUTH"],[Location of polkit-auth program])
|
|
fi
|
|
with_polkit0="yes"
|
|
fi
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL([HAVE_POLKIT], [test "x$with_polkit" = "xyes"])
|
|
AM_CONDITIONAL([HAVE_POLKIT0], [test "x$with_polkit0" = "xyes"])
|
|
AM_CONDITIONAL([HAVE_POLKIT1], [test "x$with_polkit1" = "xyes"])
|
|
AC_SUBST([POLKIT_CFLAGS])
|
|
AC_SUBST([POLKIT_LIBS])
|
|
|
|
dnl Avahi library
|
|
AC_ARG_WITH([avahi],
|
|
[ --with-avahi use avahi to advertise remote daemon],
|
|
[],
|
|
[with_avahi=check])
|
|
|
|
AVAHI_CFLAGS=
|
|
AVAHI_LIBS=
|
|
if test "x$with_avahi" = "xyes" -o "x$with_avahi" = "xcheck"; then
|
|
PKG_CHECK_MODULES(AVAHI, avahi-client >= $AVAHI_REQUIRED,
|
|
[with_avahi=yes], [
|
|
if test "x$with_avahi" = "xcheck" ; then
|
|
with_avahi=no
|
|
else
|
|
AC_MSG_ERROR(
|
|
[You must install Avahi >= $AVAHI_REQUIRED to compile libvirt])
|
|
fi
|
|
])
|
|
if test "x$with_avahi" = "xyes" ; then
|
|
AC_DEFINE_UNQUOTED([HAVE_AVAHI], 1,
|
|
[whether Avahi is used to broadcast server presense])
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL([HAVE_AVAHI], [test "x$with_avahi" = "xyes"])
|
|
AC_SUBST([AVAHI_CFLAGS])
|
|
AC_SUBST([AVAHI_LIBS])
|
|
|
|
dnl SELinux
|
|
AC_ARG_WITH([selinux],
|
|
[ --with-selinux use SELinux to manage security],
|
|
[],
|
|
[with_selinux=check])
|
|
|
|
SELINUX_CFLAGS=
|
|
SELINUX_LIBS=
|
|
if test "$with_selinux" != "no"; then
|
|
old_cflags="$CFLAGS"
|
|
old_libs="$LIBS"
|
|
if test "$with_selinux" = "check"; then
|
|
AC_CHECK_HEADER([selinux/selinux.h],[],[with_selinux=no])
|
|
AC_CHECK_LIB([selinux], [fgetfilecon],[],[with_selinux=no])
|
|
if test "$with_selinux" != "no"; then
|
|
with_selinux="yes"
|
|
fi
|
|
else
|
|
fail=0
|
|
AC_CHECK_HEADER([selinux/selinux.h],[],[fail=1])
|
|
AC_CHECK_LIB([selinux], [fgetfilecon],[],[fail=1])
|
|
test $fail = 1 &&
|
|
AC_MSG_ERROR([You must install the SELinux development package in order to compile libvirt])
|
|
fi
|
|
CFLAGS="$old_cflags"
|
|
LIBS="$old_libs"
|
|
fi
|
|
if test "$with_selinux" = "yes"; then
|
|
SELINUX_LIBS="-lselinux"
|
|
AC_DEFINE_UNQUOTED([HAVE_SELINUX], 1, [whether SELinux is available for security])
|
|
fi
|
|
AM_CONDITIONAL([HAVE_SELINUX], [test "$with_selinux" != "no"])
|
|
AC_SUBST([SELINUX_CFLAGS])
|
|
AC_SUBST([SELINUX_LIBS])
|
|
|
|
|
|
AC_ARG_WITH([secdriver-selinux],
|
|
[ --with-secdriver-selinux use SELinux security driver],
|
|
[],
|
|
[with_secdriver_selinux=check])
|
|
|
|
if test "$with_selinux" != "yes" ; then
|
|
if test "$with_secdriver_selinux" = "check" ; then
|
|
with_secdriver_selinux=no
|
|
else
|
|
AC_MSG_ERROR([You must install the SELinux development package in order to compile libvirt])
|
|
fi
|
|
else
|
|
old_cflags="$CFLAGS"
|
|
old_libs="$LIBS"
|
|
CFLAGS="$CFLAGS $SELINUX_CFLAGS"
|
|
LIBS="$CFLAGS $SELINUX_LIBS"
|
|
|
|
fail=0
|
|
AC_CHECK_FUNC([selinux_virtual_domain_context_path], [], [fail=1])
|
|
AC_CHECK_FUNC([selinux_virtual_image_context_path], [], [fail=1])
|
|
CFLAGS="$old_cflags"
|
|
LIBS="$old_libs"
|
|
|
|
if test "$fail" = "1" ; then
|
|
if test "$with_secdriver_selinux" = "check" ; then
|
|
with_secdriver_selinux=no
|
|
else
|
|
AC_MSG_ERROR([You must install the SELinux development package in order to compile libvirt])
|
|
fi
|
|
else
|
|
with_secdriver_selinux=yes
|
|
AC_DEFINE_UNQUOTED([WITH_SECDRIVER_SELINUX], 1, [whether SELinux security driver is available])
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL([WITH_SECDRIVER_SELINUX], [test "$with_secdriver_selinux" != "no"])
|
|
|
|
|
|
|
|
dnl NUMA lib
|
|
AC_ARG_WITH([numactl],
|
|
[ --with-numactl use numactl for host topology info],
|
|
[],
|
|
[with_numactl=check])
|
|
|
|
NUMACTL_CFLAGS=
|
|
NUMACTL_LIBS=
|
|
if test "$with_qemu" = "yes" -a "$with_numactl" != "no"; then
|
|
old_cflags="$CFLAGS"
|
|
old_libs="$LIBS"
|
|
if test "$with_numactl" = "check"; then
|
|
AC_CHECK_HEADER([numa.h],[],[with_numactl=no])
|
|
AC_CHECK_LIB([numa], [numa_available],[],[with_numactl=no])
|
|
if test "$with_numactl" != "no"; then
|
|
with_numactl="yes"
|
|
fi
|
|
else
|
|
fail=0
|
|
AC_CHECK_HEADER([numa.h],[],[fail=1])
|
|
AC_CHECK_LIB([numa], [numa_available],[],[fail=1])
|
|
test $fail = 1 &&
|
|
AC_MSG_ERROR([You must install the numactl development package in order to compile and run libvirt])
|
|
fi
|
|
CFLAGS="$old_cflags"
|
|
LIBS="$old_libs"
|
|
fi
|
|
if test "$with_numactl" = "yes"; then
|
|
NUMACTL_LIBS="-lnuma"
|
|
AC_DEFINE_UNQUOTED([HAVE_NUMACTL], 1, [whether numactl is available for topology info])
|
|
fi
|
|
AM_CONDITIONAL([HAVE_NUMACTL], [test "$with_numactl" != "no"])
|
|
AC_SUBST([NUMACTL_CFLAGS])
|
|
AC_SUBST([NUMACTL_LIBS])
|
|
|
|
|
|
dnl
|
|
dnl Checks for the UML driver
|
|
dnl
|
|
|
|
if test "$with_uml" = "yes" -o "$with_uml" = "check"; then
|
|
AC_CHECK_HEADER([sys/inotify.h], [
|
|
with_uml=yes
|
|
], [
|
|
if test "$with_uml" = "check"; then
|
|
with_uml=no
|
|
AC_MSG_NOTICE([<sys/inotify.h> is required for the UML driver, disabling it])
|
|
else
|
|
AC_MSG_ERROR([The <sys/inotify.h> is required for the UML driver. Upgrade your libc6.])
|
|
fi
|
|
])
|
|
fi
|
|
if test "$with_libvirtd" = "no" ; then
|
|
with_uml=no
|
|
fi
|
|
if test "$with_uml" = "yes" ; then
|
|
AC_DEFINE_UNQUOTED([WITH_UML], 1, [whether UML driver is enabled])
|
|
fi
|
|
AM_CONDITIONAL([WITH_UML], [test "$with_uml" = "yes"])
|
|
|
|
|
|
|
|
dnl
|
|
dnl libssh checks
|
|
dnl
|
|
|
|
if test "$with_libssh2" != "yes" -a "$with_libssh2" != "no"; then
|
|
libssh2_path="$with_libssh2"
|
|
elif test "$with_libssh2" = "yes"; then
|
|
libssh2_path="/usr/local/lib/"
|
|
elif test "$with_libssh2" = "no"; then
|
|
with_phyp="no";
|
|
fi
|
|
|
|
if test "$with_phyp" = "check"; then
|
|
AC_CHECK_LIB([ssh2],[libssh2_session_startup],[
|
|
LIBSSH2_LIBS="$LIBSSH2_LIBS -lssh2 -L$libssh2_path"
|
|
AC_SUBST([LIBSSH2_LIBS])],[
|
|
with_phyp="no"
|
|
with_libssh2="no";
|
|
],[])
|
|
|
|
if test "$with_phyp" != "no"; then
|
|
AC_CHECK_HEADERS([libssh2.h],[
|
|
with_phyp="yes"
|
|
LIBSSH2_CFLAGS="-I/usr/local/include"
|
|
AC_SUBST([LIBSSH2_CFLAGS])
|
|
AC_DEFINE_UNQUOTED([WITH_PHYP], 1,
|
|
[whether IBM HMC / IVM driver is enabled])
|
|
],[
|
|
with_phyp="no"
|
|
with_libssh2="no";
|
|
],[])
|
|
fi
|
|
elif test "$with_phyp" = "yes"; then
|
|
AC_CHECK_LIB([ssh2],[libssh2_session_startup],[
|
|
LIBSSH2_LIBS="$LIBSSH2_LIBS -lssh2 -L$libssh2_path"
|
|
AC_SUBST([LIBSSH2_LIBS])],[
|
|
AC_MSG_ERROR([You must install the libssh2 to compile Phype driver.])
|
|
])
|
|
|
|
AC_CHECK_HEADERS([libssh2.h],[
|
|
LIBSSH2_CFLAGS="-I/usr/local/include"
|
|
AC_SUBST([LIBSSH2_CFLAGS])],[
|
|
AC_MSG_ERROR([Cannot find libssh2 headers.Is libssh2 installed ?])
|
|
],[])
|
|
AC_DEFINE_UNQUOTED([WITH_PHYP], 1,
|
|
[whether IBM HMC / IVM driver is enabled])
|
|
fi
|
|
AM_CONDITIONAL([WITH_PHYP],[test "$with_phyp" = "yes"])
|
|
|
|
dnl libcap-ng
|
|
AC_ARG_WITH([capng],
|
|
[ --with-capng use libcap-ng to reduce libvirtd privileges],
|
|
[],
|
|
[with_capng=check])
|
|
|
|
dnl
|
|
dnl This check looks for 'capng_updatev' since that was
|
|
dnl introduced in 0.4.0 release which need as minimum
|
|
dnl
|
|
CAPNG_CFLAGS=
|
|
CAPNG_LIBS=
|
|
if test "$with_qemu" = "yes" -a "$with_capng" != "no"; then
|
|
old_cflags="$CFLAGS"
|
|
old_libs="$LIBS"
|
|
if test "$with_capng" = "check"; then
|
|
AC_CHECK_HEADER([cap-ng.h],[],[with_capng=no])
|
|
AC_CHECK_LIB([cap-ng], [capng_updatev],[],[with_capng=no])
|
|
if test "$with_capng" != "no"; then
|
|
with_capng="yes"
|
|
fi
|
|
else
|
|
fail=0
|
|
AC_CHECK_HEADER([cap-ng.h],[],[fail=1])
|
|
AC_CHECK_LIB([cap-ng], [capng_updatev],[],[fail=1])
|
|
test $fail = 1 &&
|
|
AC_MSG_ERROR([You must install the capng >= 0.4.0 development package in order to compile and run libvirt])
|
|
fi
|
|
CFLAGS="$old_cflags"
|
|
LIBS="$old_libs"
|
|
fi
|
|
if test "$with_capng" = "yes"; then
|
|
CAPNG_LIBS="-lcap-ng"
|
|
AC_DEFINE_UNQUOTED([HAVE_CAPNG], 1, [whether capng is available for privilege reduction])
|
|
fi
|
|
AM_CONDITIONAL([HAVE_CAPNG], [test "$with_capng" != "no"])
|
|
AC_SUBST([CAPNG_CFLAGS])
|
|
AC_SUBST([CAPNG_LIBS])
|
|
|
|
|
|
|
|
dnl virsh libraries
|
|
AC_CHECK_HEADERS([readline/readline.h])
|
|
|
|
# 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
|
|
else
|
|
READLINE_CFLAGS=
|
|
fi
|
|
AC_SUBST([READLINE_CFLAGS])
|
|
AC_SUBST([VIRSH_LIBS])
|
|
|
|
|
|
AC_ARG_WITH([network],
|
|
[ --with-network with virtual network driver (on)],[],[with_network=yes])
|
|
if test "$with_libvirtd" = "no" ; then
|
|
with_network=no
|
|
fi
|
|
if test "$with_network" = "yes" ; then
|
|
AC_DEFINE_UNQUOTED([WITH_NETWORK], 1, [whether network driver is enabled])
|
|
fi
|
|
AM_CONDITIONAL([WITH_NETWORK], [test "$with_network" = "yes"])
|
|
|
|
with_bridge=no
|
|
if test "$with_qemu:$with_lxc:$with_network" != "no:no:no"; then
|
|
with_bridge=yes
|
|
AC_DEFINE_UNQUOTED([WITH_BRIDGE], 1, [whether bridge code is needed])
|
|
fi
|
|
AM_CONDITIONAL([WITH_BRIDGE], [test "$with_bridge" = "yes"])
|
|
|
|
dnl netcf library
|
|
AC_ARG_WITH([netcf],
|
|
[ --with-netcf libnetcf support to configure physical host network interfaces],
|
|
[], [with_netcf=check])
|
|
|
|
NETCF_CFLAGS=
|
|
NETCF_LIBS=
|
|
if test "$with_netcf" = "yes" -o "$with_netcf" = "check"; then
|
|
PKG_CHECK_MODULES(NETCF, netcf >= $NETCF_REQUIRED,
|
|
[with_netcf=yes], [
|
|
if test "$with_netcf" = "check" ; then
|
|
with_netcf=no
|
|
else
|
|
AC_MSG_ERROR(
|
|
[You must install libnetcf >= $NETCF_REQUIRED to compile libvirt])
|
|
fi
|
|
])
|
|
if test "$with_netcf" = "yes" ; then
|
|
AC_DEFINE_UNQUOTED([WITH_NETCF], 1,
|
|
[whether libnetcf is available to configure physical host network interfaces])
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL([WITH_NETCF], [test "$with_netcf" = "yes"])
|
|
AC_SUBST([NETCF_CFLAGS])
|
|
AC_SUBST([NETCF_LIBS])
|
|
|
|
AC_ARG_WITH([storage-fs],
|
|
[ --with-storage-fs with FileSystem backend for the storage driver (on)],[],[with_storage_fs=check])
|
|
AC_ARG_WITH([storage-lvm],
|
|
[ --with-storage-lvm with LVM backend for the storage driver (on)],[],[with_storage_lvm=check])
|
|
AC_ARG_WITH([storage-iscsi],
|
|
[ --with-storage-iscsi with iSCSI backend for the storage driver (on)],[],[with_storage_iscsi=check])
|
|
AC_ARG_WITH([storage-scsi],
|
|
[ --with-storage-scsi with SCSI backend for the storage driver (on)],[],[with_storage_scsi=check])
|
|
AC_ARG_WITH([storage-disk],
|
|
[ --with-storage-disk with GPartd Disk backend for the storage driver (on)],[],[with_storage_disk=check])
|
|
|
|
with_storage_dir=yes
|
|
if test "$with_libvirtd" = "no"; then
|
|
with_storage_dir=no
|
|
with_storage_fs=no
|
|
with_storage_lvm=no
|
|
with_storage_iscsi=no
|
|
with_storage_scsi=no
|
|
with_storage_disk=no
|
|
fi
|
|
if test "$with_storage_dir" = "yes" ; then
|
|
AC_DEFINE_UNQUOTED([WITH_STORAGE_DIR], 1, [whether directory backend for storage driver is enabled])
|
|
fi
|
|
AM_CONDITIONAL([WITH_STORAGE_DIR], [test "$with_storage_dir" = "yes"])
|
|
|
|
|
|
if test "$with_storage_fs" = "yes" -o "$with_storage_fs" = "check"; then
|
|
AC_PATH_PROG([MOUNT], [mount], [], [$PATH:/sbin:/usr/sbin])
|
|
AC_PATH_PROG([UMOUNT], [umount], [], [$PATH:/sbin:/usr/sbin])
|
|
if test "$with_storage_fs" = "yes" ; then
|
|
if test -z "$MOUNT" ; then AC_MSG_ERROR([We need mount for FS storage driver]) ; fi
|
|
if test -z "$UMOUNT" ; then AC_MSG_ERROR([We need umount for FS storage driver]) ; fi
|
|
else
|
|
if test -z "$MOUNT" ; then with_storage_fs=no ; fi
|
|
if test -z "$UMOUNT" ; then with_storage_fs=no ; fi
|
|
|
|
if test "$with_storage_fs" = "check" ; then with_storage_fs=yes ; fi
|
|
fi
|
|
|
|
if test "$with_storage_fs" = "yes" ; then
|
|
AC_DEFINE_UNQUOTED([WITH_STORAGE_FS], 1, [whether FS backend for storage driver is enabled])
|
|
AC_DEFINE_UNQUOTED([MOUNT],["$MOUNT"],
|
|
[Location or name of the mount program])
|
|
AC_DEFINE_UNQUOTED([UMOUNT],["$UMOUNT"],
|
|
[Location or name of the mount program])
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL([WITH_STORAGE_FS], [test "$with_storage_fs" = "yes"])
|
|
if test "$with_storage_fs" = "yes"; then
|
|
AC_PATH_PROG([SHOWMOUNT], [showmount], [], [$PATH:/sbin:/usr/sbin])
|
|
AC_DEFINE_UNQUOTED([SHOWMOUNT], ["$SHOWMOUNT"],
|
|
[Location or name of the showmount program])
|
|
fi
|
|
|
|
if test "$with_storage_lvm" = "yes" -o "$with_storage_lvm" = "check"; then
|
|
AC_PATH_PROG([PVCREATE], [pvcreate], [], [$PATH:/sbin:/usr/sbin])
|
|
AC_PATH_PROG([VGCREATE], [vgcreate], [], [$PATH:/sbin:/usr/sbin])
|
|
AC_PATH_PROG([LVCREATE], [lvcreate], [], [$PATH:/sbin:/usr/sbin])
|
|
AC_PATH_PROG([PVREMOVE], [pvremove], [], [$PATH:/sbin:/usr/sbin])
|
|
AC_PATH_PROG([VGREMOVE], [vgremove], [], [$PATH:/sbin:/usr/sbin])
|
|
AC_PATH_PROG([LVREMOVE], [lvremove], [], [$PATH:/sbin:/usr/sbin])
|
|
AC_PATH_PROG([VGCHANGE], [vgchange], [], [$PATH:/sbin:/usr/sbin])
|
|
AC_PATH_PROG([VGSCAN], [vgscan], [], [$PATH:/sbin:/usr/sbin])
|
|
AC_PATH_PROG([PVS], [pvs], [], [$PATH:/sbin:/usr/sbin])
|
|
AC_PATH_PROG([VGS], [vgs], [], [$PATH:/sbin:/usr/sbin])
|
|
AC_PATH_PROG([LVS], [lvs], [], [$PATH:/sbin:/usr/sbin])
|
|
|
|
if test "$with_storage_lvm" = "yes" ; then
|
|
if test -z "$PVCREATE" ; then AC_MSG_ERROR([We need pvcreate for LVM storage driver]) ; fi
|
|
if test -z "$VGCREATE" ; then AC_MSG_ERROR([We need vgcreate for LVM storage driver]) ; fi
|
|
if test -z "$LVCREATE" ; then AC_MSG_ERROR([We need lvcreate for LVM storage driver]) ; fi
|
|
if test -z "$PVREMOVE" ; then AC_MSG_ERROR([We need pvremove for LVM storage driver]) ; fi
|
|
if test -z "$VGREMOVE" ; then AC_MSG_ERROR([We need vgremove for LVM storage driver]) ; fi
|
|
if test -z "$LVREMOVE" ; then AC_MSG_ERROR([We need lvremove for LVM storage driver]) ; fi
|
|
if test -z "$VGCHANGE" ; then AC_MSG_ERROR([We need vgchange for LVM storage driver]) ; fi
|
|
if test -z "$VGSCAN" ; then AC_MSG_ERROR([We need vgscan for LVM storage driver]) ; fi
|
|
if test -z "$PVS" ; then AC_MSG_ERROR([We need pvs for LVM storage driver]) ; fi
|
|
if test -z "$VGS" ; then AC_MSG_ERROR([We need vgs for LVM storage driver]) ; fi
|
|
if test -z "$LVS" ; then AC_MSG_ERROR([We need lvs for LVM storage driver]) ; fi
|
|
else
|
|
if test -z "$PVCREATE" ; then with_storage_lvm=no ; fi
|
|
if test -z "$VGCREATE" ; then with_storage_lvm=no ; fi
|
|
if test -z "$LVCREATE" ; then with_storage_lvm=no ; fi
|
|
if test -z "$PVREMOVE" ; then with_storage_lvm=no ; fi
|
|
if test -z "$VGREMOVE" ; then with_storage_lvm=no ; fi
|
|
if test -z "$LVREMOVE" ; then with_storage_lvm=no ; fi
|
|
if test -z "$VGCHANGE" ; then with_storage_lvm=no ; fi
|
|
if test -z "$VGSCAN" ; then with_storage_lvm=no ; fi
|
|
if test -z "$PVS" ; then with_storage_lvm=no ; fi
|
|
if test -z "$VGS" ; then with_storage_lvm=no ; fi
|
|
if test -z "$LVS" ; then with_storage_lvm=no ; fi
|
|
|
|
if test "$with_storage_lvm" = "check" ; then with_storage_lvm=yes ; fi
|
|
fi
|
|
|
|
if test "$with_storage_lvm" = "yes" ; then
|
|
AC_DEFINE_UNQUOTED([WITH_STORAGE_LVM], 1, [whether LVM backend for storage driver is enabled])
|
|
AC_DEFINE_UNQUOTED([PVCREATE],["$PVCREATE"],[Location of pvcreate program])
|
|
AC_DEFINE_UNQUOTED([VGCREATE],["$VGCREATE"],[Location of vgcreate program])
|
|
AC_DEFINE_UNQUOTED([LVCREATE],["$LVCREATE"],[Location of lvcreate program])
|
|
AC_DEFINE_UNQUOTED([PVREMOVE],["$PVREMOVE"],[Location of pvcreate program])
|
|
AC_DEFINE_UNQUOTED([VGREMOVE],["$VGREMOVE"],[Location of vgcreate program])
|
|
AC_DEFINE_UNQUOTED([LVREMOVE],["$LVREMOVE"],[Location of lvcreate program])
|
|
AC_DEFINE_UNQUOTED([VGCHANGE],["$VGCHANGE"],[Location of vgchange program])
|
|
AC_DEFINE_UNQUOTED([VGSCAN],["$VGSCAN"],[Location of vgscan program])
|
|
AC_DEFINE_UNQUOTED([PVS],["$PVS"],[Location of pvs program])
|
|
AC_DEFINE_UNQUOTED([VGS],["$VGS"],[Location of vgs program])
|
|
AC_DEFINE_UNQUOTED([LVS],["$LVS"],[Location of lvs program])
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL([WITH_STORAGE_LVM], [test "$with_storage_lvm" = "yes"])
|
|
|
|
|
|
|
|
if test "$with_storage_iscsi" = "yes" -o "$with_storage_iscsi" = "check"; then
|
|
AC_PATH_PROG([ISCSIADM], [iscsiadm], [], [$PATH:/sbin:/usr/sbin])
|
|
if test "$with_storage_iscsi" = "yes" ; then
|
|
if test -z "$ISCSIADM" ; then AC_MSG_ERROR([We need iscsiadm for iSCSI storage driver]) ; fi
|
|
else
|
|
if test -z "$ISCSIADM" ; then with_storage_iscsi=no ; fi
|
|
|
|
if test "$with_storage_iscsi" = "check" ; then with_storage_iscsi=yes ; fi
|
|
fi
|
|
|
|
if test "$with_storage_iscsi" = "yes" ; then
|
|
AC_DEFINE_UNQUOTED([WITH_STORAGE_ISCSI], 1, [whether iSCSI backend for storage driver is enabled])
|
|
AC_DEFINE_UNQUOTED([ISCSIADM],["$ISCSIADM"],[Location of iscsiadm program])
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL([WITH_STORAGE_ISCSI], [test "$with_storage_iscsi" = "yes"])
|
|
|
|
if test "$with_storage_scsi" = "check"; then
|
|
with_storage_scsi=yes
|
|
|
|
AC_DEFINE_UNQUOTED([WITH_STORAGE_SCSI], 1,
|
|
[whether SCSI backend for storage driver is enabled])
|
|
fi
|
|
AM_CONDITIONAL([WITH_STORAGE_SCSI], [test "$with_storage_scsi" = "yes"])
|
|
|
|
|
|
LIBPARTED_CFLAGS=
|
|
LIBPARTED_LIBS=
|
|
if test "$with_storage_disk" = "yes" -o "$with_storage_disk" = "check"; then
|
|
AC_PATH_PROG([PARTED], [parted], [], [$PATH:/sbin:/usr/sbin])
|
|
if test -z "$PARTED" ; then
|
|
with_storage_disk=no
|
|
PARTED_FOUND=no
|
|
else
|
|
PARTED_FOUND=yes
|
|
fi
|
|
|
|
if test "$with_storage_disk" != "no" -a "x$PKG_CONFIG" != "x" ; then
|
|
PKG_CHECK_MODULES(LIBPARTED, libparted >= $PARTED_REQUIRED, [], [PARTED_FOUND=no])
|
|
fi
|
|
if test "$PARTED_FOUND" = "no"; then
|
|
# RHEL-5 vintage parted is missing pkg-config files
|
|
save_LIBS="$LIBS"
|
|
save_CFLAGS="$CFLAGS"
|
|
PARTED_FOUND=yes
|
|
AC_CHECK_HEADER([parted/parted.h],,[PARTED_FOUND=no])
|
|
AC_CHECK_LIB([uuid], [uuid_generate],,[PARTED_FOUND=no])
|
|
AC_CHECK_LIB([parted], [ped_device_read],,[PARTED_FOUND=no])
|
|
LIBPARTED_LIBS="-luuid -lparted"
|
|
LIBS="$save_LIBS"
|
|
CFLAGS="$save_CFLAGS"
|
|
fi
|
|
|
|
if test "$PARTED_FOUND" = "no" ; then
|
|
if test "$with_storage_disk" = "yes" ; then
|
|
AC_MSG_ERROR([We need parted for disk storage driver])
|
|
else
|
|
with_storage_disk=no
|
|
fi
|
|
else
|
|
with_storage_disk=yes
|
|
fi
|
|
|
|
if test "$with_storage_disk" = "yes"; then
|
|
AC_DEFINE_UNQUOTED([WITH_STORAGE_DISK], 1, [whether Disk backend for storage driver is enabled])
|
|
AC_DEFINE_UNQUOTED([PARTED],["$PARTED"], [Location or name of the parted program])
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL([WITH_STORAGE_DISK], [test "$with_storage_disk" = "yes"])
|
|
AC_SUBST([LIBPARTED_CFLAGS])
|
|
AC_SUBST([LIBPARTED_LIBS])
|
|
|
|
dnl
|
|
dnl check for libcurl (ESX)
|
|
dnl
|
|
|
|
LIBCURL_CFLAGS=""
|
|
LIBCURL_LIBS=""
|
|
LIBCURL_REQUIRED="7.18.0"
|
|
LIBCURL_FOUND="no"
|
|
|
|
if test "$with_esx" = "yes" -o "$with_esx" = "check"; then
|
|
PKG_CHECK_MODULES(LIBCURL, libcurl >= $LIBCURL_REQUIRED, [
|
|
LIBCURL_FOUND=yes
|
|
with_esx="yes"
|
|
], [
|
|
if test "$with_esx" = "check"; then
|
|
with_esx=no
|
|
AC_MSG_NOTICE([libcurl is required for ESX driver, disabling it])
|
|
else
|
|
AC_MSG_ERROR([libcurl >= $LIBCURL_REQUIRED is required for the ESX driver])
|
|
fi
|
|
])
|
|
fi
|
|
if test "$with_esx" = "yes" ; then
|
|
AC_DEFINE_UNQUOTED([WITH_ESX], 1, [whether ESX driver is enabled])
|
|
fi
|
|
AM_CONDITIONAL([WITH_ESX], [test "$with_esx" = "yes"])
|
|
|
|
AC_SUBST([LIBCURL_CFLAGS])
|
|
AC_SUBST([LIBCURL_LIBS])
|
|
|
|
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
|
|
with_python=`$PYTHON -c "import sys; print sys.exec_prefix"`
|
|
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
|
|
PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
|
|
else
|
|
if test -r $prefix/include/python$PYTHON_VERSION/Python.h
|
|
then
|
|
PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
|
|
PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
|
|
else
|
|
if test -r /usr/include/python$PYTHON_VERSION/Python.h
|
|
then
|
|
PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
|
|
PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
|
|
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
|
|
pythondir='$(libdir)/python$(PYTHON_VERSION)/site-packages'
|
|
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])
|
|
|
|
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"])
|
|
|
|
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])
|
|
enable_coverage=$enableval
|
|
|
|
if test "${enable_coverage}" = 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
|
|
|
|
AC_ARG_ENABLE([test-oom],
|
|
[ --enable-test-oom memory allocation failure checking],
|
|
[case "${enableval}" in
|
|
yes|no) ;;
|
|
*) AC_MSG_ERROR([bad value ${enableval} for test-oom option]) ;;
|
|
esac],
|
|
[enableval=no])
|
|
enable_oom=$enableval
|
|
|
|
if test "${enable_oom}" = yes; then
|
|
have_trace=yes
|
|
AC_CHECK_HEADER([execinfo.h],[],[have_trace=no])
|
|
AC_CHECK_FUNC([backtrace],[],[have_trace=no])
|
|
if test "$have_trace" = "yes"; then
|
|
AC_DEFINE([TEST_OOM_TRACE], 1, [Whether backtrace() is available])
|
|
fi
|
|
AC_DEFINE([TEST_OOM], 1, [Whether malloc OOM checking is enabled])
|
|
fi
|
|
|
|
|
|
AC_ARG_ENABLE([test-locking],
|
|
[ --enable-test-locking thread locking tests using CIL],
|
|
[case "${enableval}" in
|
|
yes|no) ;;
|
|
*) AC_MSG_ERROR([bad value ${enableval} for test-locking option]) ;;
|
|
esac],
|
|
[enableval=no])
|
|
enable_locking=$enableval
|
|
|
|
if test "$enable_locking" = "yes"; then
|
|
LOCK_CHECKING_CFLAGS="-Dbool=char -D_Bool=char -save-temps"
|
|
AC_SUBST([LOCK_CHECKING_CFLAGS])
|
|
fi
|
|
AM_CONDITIONAL([WITH_CIL],[test "$enable_locking" = "yes"])
|
|
|
|
dnl Enable building the proxy?
|
|
|
|
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"])
|
|
if test "$with_xen_proxy" = "yes"; then
|
|
AC_DEFINE([WITH_PROXY], 1, [Whether Xen proxy is enabled])
|
|
fi
|
|
|
|
dnl Enable building libvirtd?
|
|
AM_CONDITIONAL([WITH_LIBVIRTD],[test "x$with_libvirtd" = "xyes"])
|
|
|
|
dnl Check for gettext
|
|
AM_GNU_GETTEXT_VERSION([0.14.1])
|
|
AM_GNU_GETTEXT([external])
|
|
ALL_LINGUAS=`cd "$srcdir/po" > /dev/null && ls *.po | sed 's+\.po$++'`
|
|
|
|
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=
|
|
MINGW_EXTRA_LDFLAGS=
|
|
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
|
|
;;
|
|
*-*-mingw*)
|
|
MINGW_EXTRA_LDFLAGS="-no-undefined"
|
|
;;
|
|
esac
|
|
AC_SUBST([CYGWIN_EXTRA_LDFLAGS])
|
|
AC_SUBST([CYGWIN_EXTRA_LIBADD])
|
|
AC_SUBST([CYGWIN_EXTRA_PYTHON_LIBADD])
|
|
AC_SUBST([MINGW_EXTRA_LDFLAGS])
|
|
|
|
dnl Look for windres to build a Windows icon resource.
|
|
AC_CHECK_TOOL([WINDRES], [windres], [no])
|
|
AM_CONDITIONAL([WITH_WIN_ICON], [test "$WINDRES" != "no"])
|
|
|
|
|
|
|
|
dnl Driver-Modules library
|
|
AC_ARG_WITH([driver-modules],
|
|
[ --with-driver-modules build drivers as loadable modules],
|
|
[],
|
|
[with_driver_modules=no])
|
|
|
|
DRIVER_MODULES_CFLAGS=
|
|
DRIVER_MODULES_LIBS=
|
|
if test "x$with_driver_modules" = "xyes" ; then
|
|
old_cflags="$CFLAGS"
|
|
old_libs="$LIBS"
|
|
fail=0
|
|
AC_CHECK_HEADER([dlfcn.h],[],[fail=1])
|
|
AC_CHECK_LIB([dl], [dlopen],[],[fail=1])
|
|
test $fail = 1 &&
|
|
AC_MSG_ERROR([You must have dlfcn.h / dlopen() support to build driver modules])
|
|
|
|
CFLAGS="$old_cflags"
|
|
LIBS="$old_libs"
|
|
fi
|
|
if test "$with_driver_modules" = "yes"; then
|
|
DRIVER_MODULES_CFLAGS="-export-dynamic"
|
|
DRIVER_MODULES_LIBS="-ldl"
|
|
AC_DEFINE_UNQUOTED([WITH_DRIVER_MODULES], 1, [whether to build drivers as modules])
|
|
fi
|
|
AM_CONDITIONAL([WITH_DRIVER_MODULES], [test "$with_driver_modules" != "no"])
|
|
AC_SUBST([DRIVER_MODULES_CFLAGS])
|
|
AC_SUBST([DRIVER_MODULES_LIBS])
|
|
|
|
|
|
# Set LV_LIBTOOL_OBJDIR to "." or $lt_cv_objdir, depending on whether
|
|
# we're building shared libraries. This is the name of the directory
|
|
# in which .o files will be created.
|
|
test "$enable_shared" = no && lt_cv_objdir=.
|
|
LV_LIBTOOL_OBJDIR=${lt_cv_objdir-.}
|
|
AC_SUBST([LV_LIBTOOL_OBJDIR])
|
|
|
|
dnl HAL or DeviceKit library for host device enumeration
|
|
HAL_REQUIRED=0.0
|
|
HAL_CFLAGS=
|
|
HAL_LIBS=
|
|
AC_ARG_WITH([hal],
|
|
[ --with-hal use HAL for host device enumeration],
|
|
[],
|
|
[with_hal=check])
|
|
|
|
if test "$with_libvirtd" = "no" ; then
|
|
with_hal=no
|
|
fi
|
|
if test "x$with_hal" = "xyes" -o "x$with_hal" = "xcheck"; then
|
|
PKG_CHECK_MODULES(HAL, hal >= $HAL_REQUIRED,
|
|
[with_hal=yes], [
|
|
if test "x$with_hal" = "xcheck" ; then
|
|
with_hal=no
|
|
else
|
|
AC_MSG_ERROR(
|
|
[You must install hal-devel >= $HAL_REQUIRED to compile libvirt])
|
|
fi
|
|
])
|
|
if test "x$with_hal" = "xyes" ; then
|
|
AC_DEFINE_UNQUOTED([HAVE_HAL], 1,
|
|
[use HAL for host device enumeration])
|
|
|
|
old_CFLAGS=$CFLAGS
|
|
old_LDFLAGS=$LDFLAGS
|
|
CFLAGS="$CFLAGS $HAL_CFLAGS"
|
|
LDFLAGS="$LDFLAGS $HAL_LIBS"
|
|
AC_CHECK_FUNCS([libhal_get_all_devices],,[with_hal=no])
|
|
AC_CHECK_FUNCS([dbus_watch_get_unix_fd])
|
|
CFLAGS="$old_CFLAGS"
|
|
LDFLAGS="$old_LDFLAGS"
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL([HAVE_HAL], [test "x$with_hal" = "xyes"])
|
|
AC_SUBST([HAL_CFLAGS])
|
|
AC_SUBST([HAL_LIBS])
|
|
|
|
DEVKIT_REQUIRED=0.0
|
|
DEVKIT_CFLAGS=
|
|
DEVKIT_LIBS=
|
|
AC_ARG_WITH([devkit],
|
|
[ --with-devkit use DeviceKit for host device enumeration],
|
|
[],
|
|
[with_devkit=no])
|
|
|
|
if test "$with_libvirtd" = "no" ; then
|
|
with_devkit=no
|
|
fi
|
|
|
|
dnl Extra check needed while devkit pkg-config info missing glib2 dependency
|
|
PKG_CHECK_MODULES(GLIB2, glib-2.0 >= 0.0,,[
|
|
if test "x$with_devkit" = "xcheck"; then
|
|
with_devkit=no
|
|
elif test "x$with_devkit" = "xyes"; then
|
|
AC_MSG_ERROR([required package DeviceKit requires package glib-2.0])
|
|
fi])
|
|
|
|
if test "x$with_devkit" = "xyes" -o "x$with_devkit" = "xcheck"; then
|
|
PKG_CHECK_MODULES(DEVKIT, devkit-gobject >= $DEVKIT_REQUIRED,
|
|
[with_devkit=yes], [
|
|
if test "x$with_devkit" = "xcheck" ; then
|
|
with_devkit=no
|
|
else
|
|
AC_MSG_ERROR(
|
|
[You must install DeviceKit-devel >= $DEVKIT_REQUIRED to compile libvirt])
|
|
fi
|
|
])
|
|
if test "x$with_devkit" = "xyes" ; then
|
|
AC_DEFINE_UNQUOTED([HAVE_DEVKIT], 1,
|
|
[use DeviceKit for host device enumeration])
|
|
|
|
dnl Add glib2 flags explicitly while devkit pkg-config info missing glib2 dependency
|
|
DEVKIT_CFLAGS="$GLIB2_CFLAGS $DEVKIT_CFLAGS"
|
|
DEVKIT_LIBS="$GLIB2_LIBS $DEVKIT_LIBS"
|
|
|
|
dnl Add more flags apparently required for devkit to work properly
|
|
DEVKIT_CFLAGS="$DEVKIT_CFLAGS -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT"
|
|
|
|
old_CFLAGS=$CFLAGS
|
|
old_LDFLAGS=$LDFLAGS
|
|
CFLAGS="$CFLAGS $DEVKIT_CFLAGS"
|
|
LDFLAGS="$LDFLAGS $DEVKIT_LIBS"
|
|
AC_CHECK_FUNCS([devkit_client_connect],,[with_devkit=no])
|
|
CFLAGS="$old_CFLAGS"
|
|
LDFLAGS="$old_LDFLAGS"
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL([HAVE_DEVKIT], [test "x$with_devkit" = "xyes"])
|
|
AC_SUBST([DEVKIT_CFLAGS])
|
|
AC_SUBST([DEVKIT_LIBS])
|
|
|
|
with_nodedev=no;
|
|
if test "$with_devkit" = "yes" -o "$with_hal" = "yes";
|
|
then
|
|
with_nodedev=yes
|
|
AC_DEFINE_UNQUOTED([WITH_NODE_DEVICES], 1, [with node device driver])
|
|
fi
|
|
AM_CONDITIONAL([WITH_NODE_DEVICES], [test "$with_nodedev" = "yes"])
|
|
|
|
AM_CONDITIONAL([WITH_LINUX], [test `uname -s` = "Linux"])
|
|
|
|
|
|
AC_ARG_WITH([qemu-user],
|
|
[ --with-qemu-user username to run QEMU system instance as],
|
|
[QEMU_USER=${withval}],
|
|
[QEMU_USER=root])
|
|
AC_ARG_WITH([qemu-group],
|
|
[ --with-qemu-group groupname to run QEMU system instance as],
|
|
[QEMU_GROUP=${withval}],
|
|
[QEMU_GROUP=root])
|
|
AC_DEFINE_UNQUOTED([QEMU_USER], ["$QEMU_USER"], [QEMU user account])
|
|
AC_DEFINE_UNQUOTED([QEMU_GROUP], ["$QEMU_GROUP"], [QEMU group account])
|
|
|
|
|
|
# Only COPYING.LIB is under version control, yet COPYING
|
|
# is included as part of the distribution tarball.
|
|
# Copy one to the other, but only if this is a srcdir-build.
|
|
# You are unlikely to be doing distribution-related things in a non-srcdir build
|
|
test "x$srcdir" = x. && ! test -f COPYING &&
|
|
cp -f COPYING.LIB COPYING
|
|
|
|
AC_OUTPUT(Makefile src/Makefile include/Makefile docs/Makefile \
|
|
docs/examples/Makefile docs/devhelp/Makefile \
|
|
docs/examples/python/Makefile \
|
|
docs/schemas/Makefile \
|
|
gnulib/lib/Makefile \
|
|
gnulib/tests/Makefile \
|
|
libvirt.pc libvirt.spec mingw32-libvirt.spec \
|
|
po/Makefile.in \
|
|
include/libvirt/Makefile include/libvirt/libvirt.h \
|
|
python/Makefile python/tests/Makefile \
|
|
qemud/Makefile \
|
|
tools/Makefile \
|
|
tests/Makefile proxy/Makefile \
|
|
tests/xml2sexprdata/Makefile \
|
|
tests/sexpr2xmldata/Makefile \
|
|
tests/xmconfigdata/Makefile \
|
|
tests/xencapsdata/Makefile \
|
|
tests/confdata/Makefile \
|
|
examples/domain-events/events-c/Makefile \
|
|
examples/hellolibvirt/Makefile)
|
|
|
|
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])
|
|
AC_MSG_NOTICE([ Proxy: $with_xen_proxy])
|
|
AC_MSG_NOTICE([ QEMU: $with_qemu])
|
|
AC_MSG_NOTICE([ UML: $with_uml])
|
|
AC_MSG_NOTICE([ OpenVZ: $with_openvz])
|
|
AC_MSG_NOTICE([ VBox: $with_vbox])
|
|
AC_MSG_NOTICE([ LXC: $with_lxc])
|
|
AC_MSG_NOTICE([ PHYP: $with_phyp])
|
|
AC_MSG_NOTICE([ ONE: $with_one])
|
|
AC_MSG_NOTICE([ ESX: $with_esx])
|
|
AC_MSG_NOTICE([ Test: $with_test])
|
|
AC_MSG_NOTICE([ Remote: $with_remote])
|
|
AC_MSG_NOTICE([ Network: $with_network])
|
|
AC_MSG_NOTICE([Libvirtd: $with_libvirtd])
|
|
AC_MSG_NOTICE([ netcf: $with_netcf])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([Storage Drivers])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([ Dir: $with_storage_dir])
|
|
AC_MSG_NOTICE([ FS: $with_storage_fs])
|
|
AC_MSG_NOTICE([ NetFS: $with_storage_fs])
|
|
AC_MSG_NOTICE([ LVM: $with_storage_lvm])
|
|
AC_MSG_NOTICE([ iSCSI: $with_storage_iscsi])
|
|
AC_MSG_NOTICE([ SCSI: $with_storage_scsi])
|
|
AC_MSG_NOTICE([ Disk: $with_storage_disk])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([Security Drivers])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([ SELinux: $with_secdriver_selinux])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([Driver Loadable Modules])
|
|
AC_MSG_NOTICE([])
|
|
if test "$with_driver_modules" != "no" ; then
|
|
AC_MSG_NOTICE([ dlopen: $DRIVER_MODULES_CFLAGS $DRIVER_MODULES_LIBS])
|
|
else
|
|
AC_MSG_NOTICE([ dlopen: no])
|
|
fi
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([Libraries])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([ libxml: $LIBXML_CFLAGS $LIBXML_LIBS])
|
|
if test "$with_esx" = "yes" ; then
|
|
AC_MSG_NOTICE([ libcurl: $LIBCURL_CFLAGS $LIBCURL_LIBS])
|
|
else
|
|
AC_MSG_NOTICE([ libcurl: no])
|
|
fi
|
|
if test "$with_libssh2" != "no" ; then
|
|
AC_MSG_NOTICE([ libssh2: $LIBSSH2_CFLAGS $LIBSSH2_LIBS])
|
|
else
|
|
AC_MSG_NOTICE([ libssh2: no])
|
|
fi
|
|
AC_MSG_NOTICE([ gnutls: $GNUTLS_CFLAGS $GNUTLS_LIBS])
|
|
if test "$with_sasl" != "no" ; then
|
|
AC_MSG_NOTICE([ sasl: $SASL_CFLAGS $SASL_LIBS])
|
|
else
|
|
AC_MSG_NOTICE([ sasl: no])
|
|
fi
|
|
if test "$with_avahi" = "yes" ; then
|
|
AC_MSG_NOTICE([ avahi: $AVAHI_CFLAGS $AVAHI_LIBS])
|
|
else
|
|
AC_MSG_NOTICE([ avahi: no])
|
|
fi
|
|
if test "$with_polkit" = "yes" ; then
|
|
if test "$with_polkit0" = "yes" ; then
|
|
AC_MSG_NOTICE([ polkit: $POLKIT_CFLAGS $POLKIT_LIBS (version 0)])
|
|
else
|
|
AC_MSG_NOTICE([ polkit: $PKCHECK_PATH (version 1)])
|
|
fi
|
|
else
|
|
AC_MSG_NOTICE([ polkit: no])
|
|
fi
|
|
if test "$with_selinux" = "yes" ; then
|
|
AC_MSG_NOTICE([ selinux: $SELINUX_CFLAGS $SELINUX_LIBS])
|
|
else
|
|
AC_MSG_NOTICE([ selinux: no])
|
|
fi
|
|
if test "$with_numactl" = "yes" ; then
|
|
AC_MSG_NOTICE([ numactl: $NUMACTL_CFLAGS $NUMACTL_LIBS])
|
|
else
|
|
AC_MSG_NOTICE([ numactl: no])
|
|
fi
|
|
if test "$with_capng" = "yes" ; then
|
|
AC_MSG_NOTICE([ capng: $CAPNG_CFLAGS $CAPNG_LIBS])
|
|
else
|
|
AC_MSG_NOTICE([ capng: no])
|
|
fi
|
|
if test "$with_xen" = "yes" ; then
|
|
AC_MSG_NOTICE([ xen: $XEN_CFLAGS $XEN_LIBS])
|
|
else
|
|
AC_MSG_NOTICE([ xen: no])
|
|
fi
|
|
if test "$with_hal" = "yes" ; then
|
|
AC_MSG_NOTICE([ hal: $HAL_CFLAGS $HAL_LIBS])
|
|
else
|
|
AC_MSG_NOTICE([ hal: no])
|
|
fi
|
|
if test "$with_devkit" = "yes" ; then
|
|
AC_MSG_NOTICE([ devkit: $DEVKIT_CFLAGS $DEVKIT_LIBS])
|
|
else
|
|
AC_MSG_NOTICE([ devkit: no])
|
|
fi
|
|
if test "$with_netcf" = "yes" ; then
|
|
AC_MSG_NOTICE([ netcf: $NETCF_CFLAGS $NETCF_LIBS])
|
|
else
|
|
AC_MSG_NOTICE([ netcf: no])
|
|
fi
|
|
if test "$with_one" = "yes" ; then
|
|
AC_MSG_NOTICE([ xmlrpc: $XMLRPC_CFLAGS $XMLRPC_LIBS])
|
|
else
|
|
AC_MSG_NOTICE([ xmlrpc: no])
|
|
fi
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([Test suite])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([ Coverage: $enable_coverage])
|
|
AC_MSG_NOTICE([ Alloc OOM: $enable_oom])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([Miscellaneous])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([ Debug: $enable_debug])
|
|
AC_MSG_NOTICE([ Warnings: $enable_compile_warnings])
|
|
AC_MSG_NOTICE([ Readline: $lv_use_readline])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([Privileges])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([ QEMU: $QEMU_USER:$QEMU_GROUP])
|
|
AC_MSG_NOTICE([])
|