dnl Process this file with autoconf to produce a configure script. dnl Copyright (C) 2005-2015 Red Hat, Inc. dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License, or (at your option) any later version. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library. If not, see dnl . AC_INIT([libvirt], [3.0.0], [libvir-list@redhat.com], [], [http://libvirt.org]) AC_CONFIG_SRCDIR([src/libvirt.c]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_HEADERS([config.h]) AH_BOTTOM([#include ]) AC_CONFIG_MACRO_DIR([m4]) dnl Make automake keep quiet about wildcards & other GNUmake-isms; also keep dnl quiet about the fact that we intentionally cater to automake 1.9 AM_INIT_AUTOMAKE([-Wno-portability -Wno-obsolete tar-pax no-dist-gzip dist-xz subdir-objects]) dnl older automake's default of ARFLAGS=cru is noisy on newer binutils; dnl we don't really need the 'u' even in older toolchains. Then there is dnl older libtool, which spelled it AR_FLAGS m4_divert_text([DEFAULTS], [: "${ARFLAGS=cr} ${AR_FLAGS=cr}"]) # Maintainer note - comment this line out if you plan to rerun # GNULIB_POSIXCHECK testing to see if libvirt should be using more modules. # Leave it uncommented for normal releases, for faster ./configure. gl_ASSERT_NO_GNULIB_POSIXCHECK # Default to using the silent-rules feature when possible. Formatting # chosen to bypass 'grep' checks that cause older automake to warn. # Users (include rpm) can still change the default at configure time. m4_ifndef([AM_SILENT_RULES], [m4_define([AM_SILENT_RULES],[])])AM_SILENT_RULES([yes]) AC_CANONICAL_HOST # First extract pieces from the version number string 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_NUMBER=`expr $LIBVIRT_MAJOR_VERSION \* 1000000 + $LIBVIRT_MINOR_VERSION \* 1000 + $LIBVIRT_MICRO_VERSION` # In libtool terminology we need to figure out: # # CURRENT # The most recent interface number that this library implements. # # REVISION # The implementation number of the CURRENT interface. # # AGE # The difference between the newest and oldest interfaces that this # library implements. # # In other words, the library implements all the interface numbers # in the range from number `CURRENT - AGE' to `CURRENT'. # # Libtool assigns the soname version from `CURRENT - AGE', and we # don't want that to ever change in libvirt. ie it must always be # zero, to produce libvirt.so.0. # # We would, however, like the libvirt version number reflected # in the so version'd symlinks, and this is based on AGE.REVISION # eg libvirt.so.0.AGE.REVISION # # Assuming we do ever want to break soname version, this can # toggled. But seriously, don't ever touch this. LIBVIRT_SONUM=0 # The following examples show what libtool will do # # Input: 0.9.14 -> libvirt.so.0.9.14 # Input: 1.0.0 -> libvirt.so.0.1000.0 # Input: 2.5.8 -> libvirt.so.0.2005.8 # AGE=`expr $LIBVIRT_MAJOR_VERSION '*' 1000 + $LIBVIRT_MINOR_VERSION` REVISION=$LIBVIRT_MICRO_VERSION CURRENT=`expr $LIBVIRT_SONUM + $AGE` LIBVIRT_VERSION_INFO=$CURRENT:$REVISION:$AGE AC_SUBST([LIBVIRT_MAJOR_VERSION]) AC_SUBST([LIBVIRT_MINOR_VERSION]) AC_SUBST([LIBVIRT_MICRO_VERSION]) AC_SUBST([LIBVIRT_SONUM]) AC_SUBST([LIBVIRT_VERSION]) AC_SUBST([LIBVIRT_VERSION_INFO]) AC_SUBST([LIBVIRT_VERSION_NUMBER]) LIBVIRT_ARG_WITH_ALT([PACKAGER], [Extra packager name], [no]) LIBVIRT_ARG_WITH_ALT([PACKAGER_VERSION], [Extra packager version], [no]) if test "x$with_packager" != "xno" then AC_DEFINE_UNQUOTED([PACKAGER], ["$with_packager"], [Extra package name]) fi if test "x$with_packager_version" != "xno" then AC_DEFINE_UNQUOTED([PACKAGER_VERSION], ["$with_packager_version"], [Extra package version]) fi dnl Required minimum versions of all libs we depend on PARTED_REQUIRED="1.8.0" DEVMAPPER_REQUIRED=1.0.0 PARALLELS_SDK_REQUIRED="7.0.22" dnl Where we look for daemons and admin binaries during configure LIBVIRT_SBIN_PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin" dnl Checks for C compiler. AC_PROG_CC AC_PROG_INSTALL AC_PROG_CPP dnl Setting AB_VERSION makes the 'autobuild' lines of configure output dnl slightly more useful if test -d $srcdir/.git && git --version >/dev/null 2>&1 ; then AB_VERSION=`cd $srcdir && git describe --match 'v[[0-9]]*' 2>/dev/null` fi gl_EARLY gl_INIT AC_TYPE_UID_T dnl Support building Win32 DLLs (must appear *before* AM_PROG_LIBTOOL) AC_LIBTOOL_WIN32_DLL AC_HEADER_MAJOR m4_ifndef([LT_INIT], [ AM_PROG_LIBTOOL ], [ LT_INIT([shared disable-static]) ]) AM_PROG_CC_C_O AM_PROG_LD AC_MSG_CHECKING([for how to mark DSO non-deletable at runtime]) LIBVIRT_NODELETE= `$LD --help 2>&1 | grep -- "-z nodelete" >/dev/null` && \ LIBVIRT_NODELETE="-Wl,-z -Wl,nodelete" AC_MSG_RESULT([$LIBVIRT_NODELETE]) AC_SUBST([LIBVIRT_NODELETE]) AC_MSG_CHECKING([for how to set DSO symbol versions]) case "$host" in *-*-mingw* | *-*-msvc* ) # mingw's ld has the --version-script parameter, but it requires a .def file # instead to work properly, therefore clear --version-script here and use # -Wl, to pass the .def file to the linker # cygwin's ld has the --version-script parameter too, but for some reason # it's working there as expected VERSION_SCRIPT_FLAGS="-Wl," ;; * ) VERSION_SCRIPT_FLAGS=-Wl,--version-script= `$LD --help 2>&1 | grep -- --version-script >/dev/null` || \ VERSION_SCRIPT_FLAGS="-Wl,-M -Wl," ;; esac AC_MSG_RESULT([$VERSION_SCRIPT_FLAGS]) AC_SUBST([VERSION_SCRIPT_FLAGS]) dnl Specify if we rely on ifconfig instead of iproute2 (e.g. in case dnl we're working on BSD) want_ifconfig=no dnl Make some notes about which OS we're compiling for, as the lxc and qemu dnl drivers require linux headers, and storage_mpath, dtrace, and nwfilter dnl are also linux specific. The "network" and storage_fs drivers are known dnl to not work on MacOS X presently, so we also make a note if compiling dnl for that with_linux=no with_osx=no with_freebsd=no with_win=no with_cygwin=no case $host in *-*-linux*) with_linux=yes ;; *-*-darwin*) with_osx=yes ;; *-*-freebsd*) with_freebsd=yes ;; *-*-mingw* | *-*-msvc* ) with_win=yes ;; *-*-cygwin*) with_cygwin=yes ;; esac if test $with_linux = no; then if test "x$with_lxc" != xyes then with_lxc=no fi with_dtrace=no fi if test $with_freebsd = yes; then want_ifconfig=yes with_firewalld=no fi if test $with_cygwin = yes; then with_vbox=no fi AM_CONDITIONAL([WITH_LINUX], [test "$with_linux" = "yes"]) AM_CONDITIONAL([WITH_FREEBSD], [test "$with_freebsd" = "yes"]) # We don't support the daemon yet if test "$with_win" = "yes" ; then with_libvirtd=no fi # The daemon requires remote support. Likewise, if we are not using # RPC, we don't need several libraries. if test "$with_remote" = "no" ; then with_libvirtd=no with_gnutls=no with_ssh2=no with_sasl=no with_libssh=no fi # Stateful drivers are useful only when building the daemon. if test "$with_libvirtd" = "no" ; then with_qemu=no with_xen=no with_lxc=no with_libxl=no with_uml=no with_vbox=no fi # Check for compiler and library settings. LIBVIRT_COMPILE_WARNINGS LIBVIRT_COMPILE_PIE LIBVIRT_LINKER_RELRO LIBVIRT_LINKER_NO_INDIRECT LIBVIRT_ARG_APPARMOR LIBVIRT_ARG_ATTR LIBVIRT_ARG_AUDIT LIBVIRT_ARG_AVAHI LIBVIRT_ARG_BLKID LIBVIRT_ARG_CAPNG LIBVIRT_ARG_CURL LIBVIRT_ARG_DBUS LIBVIRT_ARG_FUSE LIBVIRT_ARG_GLUSTER LIBVIRT_ARG_GNUTLS LIBVIRT_ARG_HAL LIBVIRT_ARG_LIBSSH LIBVIRT_ARG_NETCF LIBVIRT_ARG_NSS LIBVIRT_ARG_NUMACTL LIBVIRT_ARG_OPENWSMAN LIBVIRT_ARG_PCIACCESS LIBVIRT_ARG_READLINE LIBVIRT_ARG_SANLOCK LIBVIRT_ARG_SASL LIBVIRT_ARG_SELINUX LIBVIRT_ARG_SSH2 LIBVIRT_ARG_UDEV LIBVIRT_ARG_WIRESHARK LIBVIRT_ARG_YAJL LIBVIRT_CHECK_APPARMOR LIBVIRT_CHECK_ATTR LIBVIRT_CHECK_AUDIT LIBVIRT_CHECK_AVAHI LIBVIRT_CHECK_BLKID LIBVIRT_CHECK_CAPNG LIBVIRT_CHECK_CURL LIBVIRT_CHECK_DBUS LIBVIRT_CHECK_FUSE LIBVIRT_CHECK_GLUSTER LIBVIRT_CHECK_GNUTLS LIBVIRT_CHECK_HAL LIBVIRT_CHECK_LIBSSH LIBVIRT_CHECK_NETCF LIBVIRT_CHECK_NSS LIBVIRT_CHECK_NUMACTL LIBVIRT_CHECK_OPENWSMAN LIBVIRT_CHECK_PCIACCESS LIBVIRT_CHECK_READLINE LIBVIRT_CHECK_SANLOCK LIBVIRT_CHECK_SASL LIBVIRT_CHECK_SELINUX LIBVIRT_CHECK_SSH2 LIBVIRT_CHECK_UDEV LIBVIRT_CHECK_WIRESHARK LIBVIRT_CHECK_YAJL AC_CHECK_SIZEOF([long]) dnl Availability of various common functions (non-fatal if missing), dnl and various less common threadsafe functions AC_CHECK_FUNCS_ONCE([cfmakeraw fallocate geteuid getgid getgrnam_r \ getmntent_r getpwuid_r getrlimit getuid kill mmap newlocale posix_fallocate \ posix_memalign prlimit regexec sched_getaffinity setgroups setns \ setrlimit symlink sysctlbyname getifaddrs sched_setscheduler unshare]) LIBVIRT_CHECK_PTHREAD dnl Availability of various common headers (non-fatal if missing). AC_CHECK_HEADERS([pwd.h regex.h sys/un.h \ sys/poll.h syslog.h mntent.h net/ethernet.h linux/magic.h \ sys/un.h sys/syscall.h sys/sysctl.h netinet/tcp.h ifaddrs.h \ libtasn1.h sys/ucred.h sys/mount.h sys/acl.h]) dnl Check whether endian provides handy macros. AC_CHECK_DECLS([htole64], [], [], [[#include ]]) AC_CHECK_FUNCS([stat stat64 __xstat __xstat64 lstat lstat64 __lxstat __lxstat64]) ACL_CFLAGS="" ACL_LIBS="" if test "x$ac_cv_header_sys_acl_h:x$with_linux" = "xyes:xyes" ; then ACL_LIBS="-lacl" fi AC_SUBST([ACL_CFLAGS]) AC_SUBST([ACL_LIBS]) LIBVIRT_CHECK_ATOMIC AC_CHECK_TYPE([struct ifreq], [AC_DEFINE([HAVE_STRUCT_IFREQ],[1], [Defined if struct ifreq exists in net/if.h])], [], [[#include #include ]]) AC_CHECK_TYPE([struct sockpeercred], [AC_DEFINE([HAVE_STRUCT_SOCKPEERCRED], [1], [Defined if struct sockpeercred is available])], [], [[#include ]]) AC_CHECK_DECLS([ETH_FLAG_TXVLAN, ETH_FLAG_NTUPLE, ETH_FLAG_RXHASH, ETH_FLAG_LRO, ETHTOOL_GGSO, ETHTOOL_GGRO, ETHTOOL_GFLAGS, ETHTOOL_GFEATURES], [], [], [[#include ]]) dnl Our only use of libtasn1.h is in the testsuite, and can be skipped dnl if the header is not present. Assume -ltasn1 is present if the dnl header could be found. AM_CONDITIONAL([HAVE_LIBTASN1], [test "x$ac_cv_header_libtasn1_h" = "xyes"]) AC_CHECK_LIB([intl],[gettext],[]) dnl dnl Check for external programs dnl LIBVIRT_CHECK_EXTERNAL_PROGRAMS dnl Specific dir for HTML output ? LIBVIRT_ARG_WITH_ALT([HTML_DIR], [path to base html directory], ['$(datadir)/doc']) LIBVIRT_ARG_WITH_ALT([HTML_SUBDIR], [directory used under html-dir], ['$(PACKAGE)-$(VERSION)/html']) if test "x$with_html_subdir" != "x" ; then HTML_DIR="$with_html_dir/$with_html_subdir" else HTML_DIR="$with_html_dir" fi AC_SUBST([HTML_DIR]) dnl Specific XML catalog file for validation of generated html LIBVIRT_ARG_WITH_ALT([XML_CATALOG_FILE], [path to XML catalog file for validating generated html], ['/etc/xml/catalog']) AC_SUBST([XML_CATALOG_FILE], [$with_xml_catalog_file]) 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" && test "$localstatedir" = '${prefix}/var' ; then localstatedir='/var' fi if test "$prefix" = "/usr" && test "$sysconfdir" = '${prefix}/etc' ; then sysconfdir='/etc' fi dnl Allow to build without Xen, QEMU/KVM, test or remote driver LIBVIRT_ARG_WITH([XEN], [XEN], [check]) LIBVIRT_ARG_WITH([XEN_INOTIFY], [XEN inotify], [check]) LIBVIRT_ARG_WITH([QEMU], [QEMU/KVM], [yes]) LIBVIRT_ARG_WITH([OPENVZ], [OpenVZ], [check]) LIBVIRT_ARG_WITH([VMWARE], [VMware], [yes]) LIBVIRT_ARG_WITH([PHYP], [PHYP], [check]) LIBVIRT_ARG_WITH([XENAPI], [XenAPI], [check]) LIBVIRT_ARG_WITH([LIBXL], [libxenlight], [check]) LIBVIRT_ARG_WITH([VBOX], [VirtualBox XPCOMC], [yes]) LIBVIRT_ARG_WITH([LXC], [Linux Container], [check]) LIBVIRT_ARG_WITH([ESX], [ESX], [check]) LIBVIRT_ARG_WITH([HYPERV], [Hyper-V], [check]) LIBVIRT_ARG_WITH([TEST], [test driver], [yes]) LIBVIRT_ARG_WITH([REMOTE], [remote driver], [yes]) LIBVIRT_ARG_WITH([LIBVIRTD], [libvirtd], [yes]) LIBVIRT_ARG_WITH_ALT([CHRDEV_LOCK_FILES], [location for UUCP style lock files for character devices ] [(use auto for default paths on some platforms)], [auto]) LIBVIRT_ARG_WITH_ALT([PM_UTILS], [use pm-utils for power management], [check]) dnl dnl in case someone want to build static binaries dnl STATIC_BINARIES="-static" dnl STATIC_BINARIES= AC_SUBST([STATIC_BINARIES]) dnl --enable-debug=(yes|no) LIBVIRT_ARG_ENABLE([DEBUG], [enable debugging output], [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 LIBVIRT_ARG_INIT_SCRIPT LIBVIRT_CHECK_INIT_SCRIPT AC_MSG_CHECKING([for whether to install sysctl config]) LIBVIRT_ARG_WITH_ALT([SYSCTL], [Whether to install sysctl configs], [check]) if test "$with_sysctl" = "yes" || test "$with_sysctl" = "check" then case $host in *-*-linux*) with_sysctl=yes ;; **) if test "$with_sysctl" = "yes"; then AC_MSG_ERROR([No sysctl configuration supported for $host]) else with_sysctl=no fi ;; esac fi AM_CONDITIONAL([WITH_SYSCTL], test "$with_sysctl" = "yes") AC_MSG_RESULT($with_sysctl) dnl dnl Checks for the OpenVZ driver dnl if test "$with_openvz" = "check"; then with_openvz=$with_linux fi if test "$with_openvz" = "yes" && test "$with_linux" = "no"; then AC_MSG_ERROR([The OpenVZ driver can be enabled on Linux only.]) fi 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"]) dnl dnl Checks for the VMware Workstation/Player driver dnl if test "$with_vmware" = "yes"; then AC_DEFINE_UNQUOTED([WITH_VMWARE], 1, [whether VMware driver is enabled]) fi AM_CONDITIONAL([WITH_VMWARE], [test "$with_vmware" = "yes"]) dnl dnl check for XDR dnl LIBVIRT_CHECK_XDR dnl dnl check for libdl dnl LIBVIRT_CHECK_DLOPEN dnl dnl check for VirtualBox XPCOMC location dnl vbox_xpcomc_dir= if test "x$with_vbox" != "xyes" && test "x$with_vbox" != "xno"; then # intentionally don't do any further checks here on the provided path vbox_xpcomc_dir=$with_vbox with_vbox=yes fi AC_DEFINE_UNQUOTED([VBOX_XPCOMC_DIR], ["$vbox_xpcomc_dir"], [Location of directory containing VirtualBox XPCOMC library]) 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_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_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"]) old_LIBS="$LIBS" old_CFLAGS="$CFLAGS" LIBXENSERVER_LIBS="" LIBXENSERVER_CFLAGS="" dnl search for the XenServer library fail=0 if test "$with_xenapi" != "no" ; then if test "$with_xenapi" != "yes" && test "$with_xenapi" != "check" ; then LIBXENSERVER_CFLAGS="-I$with_xenapi/include" LIBXENSERVER_LIBS="-L$with_xenapi" fi CFLAGS="$CFLAGS $LIBXENSERVER_CFLAGS" LIBS="$LIBS $LIBXENSERVER_LIBS" AC_CHECK_LIB([xenserver], [xen_vm_start], [ LIBXENSERVER_LIBS="$LIBXENSERVER_LIBS -lxenserver" ],[ if test "$with_xenapi" = "yes"; then fail=1 fi with_xenapi=no ]) if test "$with_xenapi" != "no" ; then if test "$with_curl" = "no"; then if test "$with_xenapi" = "yes"; then fail=1 fi with_xenapi=no else with_xenapi=yes fi fi fi LIBS="$old_LIBS" CFLAGS="$old_CFLAGS" if test $fail = 1; then AC_MSG_ERROR([You must install libxenserver and libcurl to compile the XenAPI driver]) fi if test "$with_xenapi" = "yes"; then AC_DEFINE_UNQUOTED([WITH_XENAPI], 1, [whether XenAPI driver is enabled]) fi AC_SUBST([LIBXENSERVER_CFLAGS]) AC_SUBST([LIBXENSERVER_LIBS]) old_LIBS="$LIBS" old_CFLAGS="$CFLAGS" LIBXL_LIBS="" LIBXL_CFLAGS="" LIBXL_FIRMWARE_DIR="" LIBXL_EXECBIN_DIR="" dnl search for libxl, aka libxenlight dnl Xen > 4.5 introduced a pkgconfig file, check for it first fail=0 if test "$with_libxl" != "no" ; then PKG_CHECK_MODULES([LIBXL], [xenlight], [ LIBXL_FIRMWARE_DIR=`$PKG_CONFIG --variable xenfirmwaredir xenlight` LIBXL_EXECBIN_DIR=`$PKG_CONFIG --variable libexec_bin xenlight` with_libxl=yes ], [LIBXL_FOUND=no]) if test "$LIBXL_FOUND" = "no"; then dnl No xenlight pkg-config file if test "$with_libxl" != "yes" && test "$with_libxl" != "check" ; then LIBXL_CFLAGS="-I$with_libxl/include" LIBXL_LIBS="-L$with_libxl" fi CFLAGS="$CFLAGS $LIBXL_CFLAGS" LIBS="$LIBS $LIBXL_LIBS" AC_CHECK_LIB([xenlight], [libxl_ctx_alloc], [ with_libxl=yes LIBXL_LIBS="$LIBXL_LIBS -lxenlight" ],[ if test "$with_libxl" = "yes"; then fail=1 fi with_libxl=no ]) fi fi # LIBXL_API_VERSION 4.4.0 introduced a new parameter to # libxl_domain_create_restore for specifying restore parameters. # The libxl driver will make use of this new parameter for specifying # the Xen migration stream version. LIBXL_CFLAGS="$LIBXL_CFLAGS -DLIBXL_API_VERSION=0x040400" LIBS="$old_LIBS" CFLAGS="$old_CFLAGS" if test $fail = 1; then AC_MSG_ERROR([You must install the libxl Library from Xen >= 4.2 to compile libxenlight driver with -lxl]) fi if test "$with_libxl" = "yes"; then dnl If building with libxl, use the libxl utility header and lib too AC_CHECK_HEADERS([libxlutil.h]) LIBXL_LIBS="$LIBXL_LIBS -lxlutil" AC_DEFINE_UNQUOTED([WITH_LIBXL], 1, [whether libxenlight driver is enabled]) if test "x$LIBXL_FIRMWARE_DIR" != "x"; then AC_DEFINE_UNQUOTED([LIBXL_FIRMWARE_DIR], ["$LIBXL_FIRMWARE_DIR"], [directory containing Xen firmware blobs]) fi if test "x$LIBXL_EXECBIN_DIR" != "x"; then AC_DEFINE_UNQUOTED([LIBXL_EXECBIN_DIR], ["$LIBXL_EXECBIN_DIR"], [directory containing Xen libexec binaries]) fi dnl Check if the xtl_* infrastructure is in libxentoollog dnl (since Xen 4.7) if not then assume it is in libxenctrl dnl (as it was for 4.6 and earler) AC_CHECK_LIB([xentoollog], [xtl_createlogger_stdiostream], [ LIBXL_LIBS="$LIBXL_LIBS -lxentoollog" ],[ LIBXL_LIBS="$LIBXL_LIBS -lxenctrl" ]) fi AM_CONDITIONAL([WITH_LIBXL], [test "$with_libxl" = "yes"]) AC_SUBST([LIBXL_CFLAGS]) AC_SUBST([LIBXL_LIBS]) old_LIBS="$LIBS" old_CFLAGS="$CFLAGS" XEN_LIBS="" XEN_CFLAGS="" dnl search for the Xen store library if test "$with_xen" != "no" ; then if test "$with_xen" != "yes" && test "$with_xen" != "check" ; then XEN_CFLAGS="-I$with_xen/include" XEN_LIBS="-L$with_xen/lib64 -L$with_xen/lib" fi fail=0 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" = "yes"; then fail=1 fi with_xen=no ]) fi if test "$with_xen" != "no" ; then dnl In Xen 4.2, xs.h is deprecated in favor of xenstore.h. AC_CHECK_HEADERS([xenstore.h]) AC_CHECK_HEADERS([xen/xen.h xen/version.h xen/dom0_ops.h],,[ if test "$with_xen" = "yes"; then fail=1 fi with_xen=no ], [#include #include ]) fi if test "$with_xen" != "no" ; then dnl Search for the location of . found= AC_CHECK_HEADERS([xen/sys/privcmd.h xen/linux/privcmd.h], [found=yes; break;], [], [#include #include #include ]) if test "x$found" != "xyes"; then if test "$with_xen" = "yes"; then fail=1 fi with_xen=no fi fi LIBS="$old_LIBS" CFLAGS="$old_CFLAGS" if test $fail = 1; then AC_MSG_ERROR([You must install the Xen development package to compile Xen driver with -lxenstore]) 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]) AM_CONDITIONAL([WITH_XENCONFIG], [test "$with_libxl" = "yes" || test "$with_xen" = "yes"]) 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 is required for Xen Inotify support, disabling it]) else AC_MSG_ERROR([Header file 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_libvirtd" = "no" ; then with_lxc=no fi if test "$with_lxc" = "yes" || test "$with_lxc" = "check"; then AC_LINK_IFELSE([AC_LANG_PROGRAM( [[ #include #include #include ]], [[ unshare(!(LO_FLAGS_AUTOCLEAR + EPOLL_CLOEXEC)); ]])], [ with_lxc=yes AC_DEFINE([HAVE_DECL_LO_FLAGS_AUTOCLEAR], [1], [Define to 1 if you have the declaration of `LO_FLAGS_AUTOCLEAR', and to 0 if you don't.]) ], [ if test "$with_lxc" = "check"; then with_lxc=no AC_MSG_NOTICE([Required kernel features were not found, disabling LXC]) else AC_MSG_ERROR([Required kernel features for LXC were not found]) fi ]) AC_LINK_IFELSE([AC_LANG_PROGRAM( [[ #include #include #include ]], [[ unshare(!(LOOP_CTL_GET_FREE)); ]])], [ AC_DEFINE([HAVE_DECL_LOOP_CTL_GET_FREE], [1], [Define to 1 if you have the declaration of `LOOP_CTL_GET_FREE', and to 0 if you don't.]) ]) 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 virt-login-shell dnl LIBVIRT_ARG_LOGIN_SHELL LIBVIRT_CHECK_LOGIN_SHELL dnl dnl Check for virt-host-validate dnl LIBVIRT_ARG_HOST_VALIDATE LIBVIRT_CHECK_HOST_VALIDATE AM_CONDITIONAL([WITH_SETUID_RPC_CLIENT], [test "$with_lxc$with_login_shell" != "nono"]) dnl dnl Checks for the Parallels driver dnl LIBVIRT_DRIVER_ARG_VZ LIBVIRT_DRIVER_CHECK_VZ dnl dnl Checks for bhyve driver dnl LIBVIRT_DRIVER_ARG_BHYVE LIBVIRT_DRIVER_CHECK_BHYVE dnl dnl check for kernel headers required by src/bridge.c dnl if test "$with_linux" = "yes"; then # Various kernel versions have headers that are not self-standing, but # yet are incompatible with the corresponding glibc headers. In order # to guarantee compilation across a wide range of versions (from RHEL 5 # to rawhide), we first have to probe whether glibc and kernel can be # used in tandem; and if not, provide workarounds that ensure that # ABI-compatible IPv6 types are present for use by the kernel headers. # These probes mirror the usage in virnetdevbridge.c AC_CACHE_CHECK( [whether and headers are compatible], [lv_cv_netinet_linux_compatible], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #include ]])], [lv_cv_netinet_linux_compatible=yes], [lv_cv_netinet_linux_compatible=no])]) if test "x$lv_cv_netinet_linux_compatible" != xyes; then AC_DEFINE([NETINET_LINUX_WORKAROUND], [1], [define to 1 if Linux kernel headers require a workaround to avoid compilation errors when mixed with glibc netinet headers]) fi 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 with QEMU or LXC support])], [[#include #if NETINET_LINUX_WORKAROUND # define in6_addr in6_addr_ # define sockaddr_in6 sockaddr_in6_ # define ipv6_mreq ipv6_mreq_ # define in6addr_any in6addr_any_ # define in6addr_loopback in6addr_loopback_ #endif #include ]]) fi dnl Need to test if pkg-config exists PKG_PROG_PKG_CONFIG LIBVIRT_ARG_LIBXML LIBVIRT_CHECK_LIBXML LIBVIRT_ARG_WITH_ALT([TLS_PRIORITY], [set the default TLS session priority string], [NORMAL]) AC_DEFINE_UNQUOTED([TLS_PRIORITY], ["$with_tls_priority"], [TLS default priority string]) LIBVIRT_ARG_POLKIT LIBVIRT_CHECK_POLKIT LIBVIRT_ARG_FIREWALLD LIBVIRT_CHECK_FIREWALLD dnl UUCP style file locks for character devices if test "$with_chrdev_lock_files" != "no"; then case $with_chrdev_lock_files in yes | auto) dnl Default locations for platforms, or disable if unknown if test "$with_linux" = "yes"; then with_chrdev_lock_files=/var/lock elif test "$with_chrdev_lock_files" = "auto"; then with_chrdev_lock_files=no fi ;; esac if test "$with_chrdev_lock_files" = "yes"; then AC_MSG_ERROR([You must specify path for the lock files on this platform]) fi if test "$with_chrdev_lock_files" != "no"; then AC_DEFINE_UNQUOTED([VIR_CHRDEV_LOCK_FILE_PATH], "$with_chrdev_lock_files", [path to directory containing UUCP device lock files]) fi fi AM_CONDITIONAL([VIR_CHRDEV_LOCK_FILE_PATH], [test "$with_chrdev_lock_files" != "no"]) LIBVIRT_ARG_WITH_ALT([SECDRIVER_SELINUX], [use SELinux security driver], [check]) if test "$with_selinux" != "yes" ; then if test "$with_secdriver_selinux" = "check" ; then with_secdriver_selinux=no fi if test "$with_secdriver_selinux" != "no"; then AC_MSG_ERROR([You must install the libselinux development package and enable SELinux with the --with-selinux=yes in order to compile libvirt --with-secdriver-selinux=yes]) fi elif test "$with_secdriver_selinux" != "no"; then 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]) AC_CHECK_FUNCS([selinux_lxc_contexts_path]) 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 libselinux development package >= 2.0.82 in order to compile libvirt --with-secdriver-selinux=yes]) 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"]) LIBVIRT_ARG_WITH_ALT([SECDRIVER_APPARMOR], [use AppArmor security driver], [check]) if test "$with_apparmor" != "yes" ; then if test "$with_secdriver_apparmor" = "check" ; then with_secdriver_apparmor=no fi if test "$with_secdriver_apparmor" != "no" ; then AC_MSG_ERROR([You must install the AppArmor development package in order to compile libvirt]) fi elif test "with_secdriver_apparmor" != "no" ; then with_secdriver_apparmor=yes AC_DEFINE_UNQUOTED([WITH_SECDRIVER_APPARMOR], 1, [whether AppArmor security driver is available]) fi AM_CONDITIONAL([WITH_SECDRIVER_APPARMOR], [test "$with_secdriver_apparmor" != "no"]) LIBVIRT_ARG_WITH_ALT([APPARMOR_PROFILES], [install apparmor profiles], [no]) if test "$with_apparmor" = "no"; then with_apparmor_profiles="no" fi AM_CONDITIONAL([WITH_APPARMOR_PROFILES], [test "$with_apparmor_profiles" != "no"]) dnl DTrace static probes LIBVIRT_ARG_WITH_ALT([DTRACE], [use dtrace for static probing], [check]) if test "$with_dtrace" != "no" ; then AC_PATH_PROG([DTRACE], [dtrace], [], [$LIBVIRT_SBIN_PATH]) if test -z "$DTRACE" ; then if test "$with_dtrace" = "check"; then with_dtrace=no else AC_MSG_ERROR([You must install the 'dtrace' binary to enable libvirt static probes]) fi else with_dtrace=yes fi if test "$with_dtrace" = "yes"; then AC_DEFINE_UNQUOTED([WITH_DTRACE_PROBES], 1, [whether DTrace static probes are available]) fi fi AM_CONDITIONAL([WITH_DTRACE_PROBES], [test "$with_dtrace" != "no"]) dnl numad LIBVIRT_ARG_WITH_ALT([NUMAD], [use numad to manage CPU placement dynamically], [check]) if test "$with_numad" != "no" ; then fail=0 AC_PATH_PROG([NUMAD], [numad], [], [$LIBVIRT_SBIN_PATH]) if test "$with_numad" = "check"; then test "$with_numactl" = "yes" || fail=1 if test -z "$NUMAD" || test $fail = 1; then with_numad="no" else with_numad="yes" fi else test -z "$NUMAD" && AC_MSG_ERROR([You must install numad package to manage CPU and memory placement dynamically]) test "$with_numactl" = "yes" || fail=1 test $fail = 1 && AC_MSG_ERROR([You must install the numactl development package in order to compile and run libvirt]) fi fi if test "$with_numad" = "yes"; then AC_DEFINE_UNQUOTED([HAVE_NUMAD], 1, [whether numad is available]) AC_DEFINE_UNQUOTED([NUMAD],["$NUMAD"], [Location or name of the numad program]) fi AM_CONDITIONAL([HAVE_NUMAD], [test "$with_numad" != "no"]) LIBVIRT_ARG_LIBPCAP LIBVIRT_CHECK_LIBPCAP dnl dnl Checks for the UML driver dnl LIBVIRT_DRIVER_ARG_UML LIBVIRT_DRIVER_CHECK_UML dnl dnl check for PHYP dnl if test "$with_phyp" != "no"; then if test "$with_ssh2" = "no" ; then if test "$with_phyp" = "check"; then with_phyp=no else AC_MSG_ERROR([libssh2 is required for Phyp driver]) fi else with_phyp=yes fi fi if test "$with_phyp" = "yes"; then AC_DEFINE_UNQUOTED([WITH_PHYP], 1, [whether IBM HMC / IVM driver is enabled]) fi AM_CONDITIONAL([WITH_PHYP],[test "$with_phyp" = "yes"]) dnl dnl Should we build with pm-utils support? dnl if test "$with_pm_utils" = "check"; then with_pm_utils=yes if test "$with_dbus" = "yes"; then if test "$init_systemd" = "yes"; then with_pm_utils=no fi fi fi if test "$with_pm_utils" = "yes"; then AC_DEFINE_UNQUOTED([WITH_PM_UTILS], 1, [whether to use pm-utils]) fi AM_CONDITIONAL([WITH_PM_UTILS], [test "$with_pm_utils" = "yes"]) dnl check if the network driver should be compiled LIBVIRT_ARG_WITH_ALT([NETWORK], [with virtual network driver], [yes]) dnl there's no use compiling the network driver without the libvirt dnl daemon, nor compiling it for MacOS X, where it breaks the compile if test "$with_libvirtd" = "no" || test "$with_osx" = "yes"; 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"]) LIBVIRT_ARG_WITH([SECRETS], [local secrets management driver], [yes]) if test "$with_libvirtd" = "no"; then with_secrets=no fi if test "$with_secrets" = "yes" ; then AC_DEFINE_UNQUOTED([WITH_SECRETS], 1, [whether local secrets management driver is available]) fi AM_CONDITIONAL([WITH_SECRETS], [test "$with_secrets" = "yes"]) LIBVIRT_ARG_WITH([STORAGE_DIR], [directory backend for the storage driver], [yes]) LIBVIRT_ARG_WITH([STORAGE_FS], [FileSystem backend for the storage driver], [check]) LIBVIRT_ARG_WITH([STORAGE_LVM], [LVM backend for storage driver], [check]) LIBVIRT_ARG_WITH([STORAGE_ISCSI], [iSCSI backend for the storage driver], [check]) LIBVIRT_ARG_WITH([STORAGE_SCSI], [SCSI backend for the storage driver], [check]) LIBVIRT_ARG_WITH([STORAGE_MPATH], [mpath backend for the storage driver], [check]) LIBVIRT_ARG_WITH([STORAGE_DISK], [GPartd Disk backend for the storage driver], [check]) LIBVIRT_ARG_WITH([STORAGE_RBD], [RADOS Block Device backend for the storage driver], [check]) LIBVIRT_ARG_WITH([STORAGE_SHEEPDOG], [with Sheepdog backend for the storage driver], [check]) LIBVIRT_ARG_WITH([STORAGE_GLUSTER], [Gluster backend for the storage driver], [check]) LIBVIRT_ARG_WITH([STORAGE_ZFS], [ZFS backend for the storage driver], [check]) 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_mpath=no with_storage_disk=no with_storage_rbd=no with_storage_sheepdog=no with_storage_gluster=no with_storage_zfs=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"]) dnl storage-fs does not work on MacOS X if test "$with_osx" = "yes"; then with_storage_fs=no fi if test "$with_storage_fs" = "yes" || test "$with_storage_fs" = "check"; then AC_CHECK_HEADER([mntent.h],, [ if test "$with_storage_fs" = "check"; then with_storage_fs=no AC_MSG_NOTICE([ is required for the FS storage driver, disabling it]) else AC_MSG_ERROR([ is required for the FS storage driver]) fi ]) fi if test "$with_storage_fs" = "yes" || test "$with_storage_fs" = "check"; then AC_PATH_PROG([MOUNT], [mount], [], [$LIBVIRT_SBIN_PATH]) AC_PATH_PROG([UMOUNT], [umount], [], [$LIBVIRT_SBIN_PATH]) AC_PATH_PROG([MKFS], [mkfs], [], [$LIBVIRT_SBIN_PATH]) 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 if test -z "$MKFS" ; then AC_MSG_ERROR([We need mkfs 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 -z "$MKFS" ; 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]) AC_DEFINE_UNQUOTED([MKFS],["$MKFS"], [Location or name of the mkfs 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], [], [$LIBVIRT_SBIN_PATH]) AC_DEFINE_UNQUOTED([SHOWMOUNT], ["$SHOWMOUNT"], [Location or name of the showmount program]) fi if test "$with_storage_lvm" = "yes" || test "$with_storage_lvm" = "check"; then AC_PATH_PROG([PVCREATE], [pvcreate], [], [$LIBVIRT_SBIN_PATH]) AC_PATH_PROG([VGCREATE], [vgcreate], [], [$LIBVIRT_SBIN_PATH]) AC_PATH_PROG([LVCREATE], [lvcreate], [], [$LIBVIRT_SBIN_PATH]) AC_PATH_PROG([PVREMOVE], [pvremove], [], [$LIBVIRT_SBIN_PATH]) AC_PATH_PROG([VGREMOVE], [vgremove], [], [$LIBVIRT_SBIN_PATH]) AC_PATH_PROG([LVREMOVE], [lvremove], [], [$LIBVIRT_SBIN_PATH]) AC_PATH_PROG([LVCHANGE], [lvchange], [], [$LIBVIRT_SBIN_PATH]) AC_PATH_PROG([VGCHANGE], [vgchange], [], [$LIBVIRT_SBIN_PATH]) AC_PATH_PROG([VGSCAN], [vgscan], [], [$LIBVIRT_SBIN_PATH]) AC_PATH_PROG([PVS], [pvs], [], [$LIBVIRT_SBIN_PATH]) AC_PATH_PROG([VGS], [vgs], [], [$LIBVIRT_SBIN_PATH]) AC_PATH_PROG([LVS], [lvs], [], [$LIBVIRT_SBIN_PATH]) 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 "$LVCHANGE" ; then AC_MSG_ERROR([We need lvchange 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 "$LVCHANGE" ; 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 pvremove program]) AC_DEFINE_UNQUOTED([VGREMOVE],["$VGREMOVE"],[Location of vgremove program]) AC_DEFINE_UNQUOTED([LVREMOVE],["$LVREMOVE"],[Location of lvremove program]) AC_DEFINE_UNQUOTED([LVCHANGE],["$LVCHANGE"],[Location of lvchange 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" || test "$with_storage_iscsi" = "check"; then AC_PATH_PROG([ISCSIADM], [iscsiadm], [], [$LIBVIRT_SBIN_PATH]) 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]) fi fi if test -z "$ISCIADM" ; then AC_DEFINE_UNQUOTED([ISCSIADM],["iscsiadm"],[Name of iscsiadm program]) else AC_DEFINE_UNQUOTED([ISCSIADM],["$ISCSIADM"],[Location of iscsiadm program]) fi AM_CONDITIONAL([WITH_STORAGE_ISCSI], [test "$with_storage_iscsi" = "yes"]) if test "$with_storage_scsi" = "check" || test "$with_storage_scsi" = "yes"; 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"]) if test "$with_storage_mpath" = "check" || test "$with_storage_mpath" = "yes"; then if test "$with_linux" = "yes"; then with_storage_mpath=yes AC_DEFINE_UNQUOTED([WITH_STORAGE_MPATH], 1, [whether mpath backend for storage driver is enabled]) else if test "$with_storage_mpath" = "yes"; then AC_MSG_ERROR([mpath storage is only supported on Linux]) fi with_storage_mpath=no fi fi AM_CONDITIONAL([WITH_STORAGE_MPATH], [test "$with_storage_mpath" = "yes"]) LIBRBD_LIBS= if test "$with_storage_rbd" = "yes" || test "$with_storage_rbd" = "check"; then AC_CHECK_HEADER([rbd/librbd.h], [LIBRBD_FOUND=yes; break;]) if test "$LIBRBD_FOUND" = "yes"; then with_storage_rbd=yes LIBRBD_LIBS="-lrbd -lrados" AC_DEFINE_UNQUOTED([WITH_STORAGE_RBD], [1], [whether RBD backend for storage driver is enabled]) else with_storage_rbd=no fi fi AM_CONDITIONAL([WITH_STORAGE_RBD], [test "$with_storage_rbd" = "yes"]) AC_SUBST([LIBRBD_LIBS]) if test "$with_storage_sheepdog" = "yes" || test "$with_storage_sheepdog" = "check"; then AC_PATH_PROGS([SHEEPDOGCLI], [collie dog], [], [$LIBVIRT_SBIN_PATH]) if test "$with_storage_sheepdog" = "yes"; then if test -z "$SHEEPDOGCLI"; then AC_MSG_ERROR([We need sheepdog client for Sheepdog storage driver]) fi else if test -z "$SHEEPDOGCLI"; then with_storage_sheepdog=no fi if test "$with_storage_sheepdog" = "check"; then with_storage_sheepdog=yes fi fi if test "$with_storage_sheepdog" = "yes"; then AC_DEFINE_UNQUOTED([WITH_STORAGE_SHEEPDOG], 1, [whether Sheepdog backend for storage driver is enabled]) AC_DEFINE_UNQUOTED([SHEEPDOGCLI],["$SHEEPDOGCLI"],[Location of sheepdog client program]) fi fi AM_CONDITIONAL([WITH_STORAGE_SHEEPDOG], [test "$with_storage_sheepdog" = "yes"]) if test "$with_storage_gluster" = "check"; then with_storage_gluster=$with_glusterfs fi if test "$with_storage_gluster" = "yes"; then if test "$with_glusterfs" = no; then AC_MSG_ERROR([Need glusterfs (libgfapi) for gluster storage driver]) fi AC_DEFINE_UNQUOTED([WITH_STORAGE_GLUSTER], [1], [whether Gluster backend for storage driver is enabled]) fi AM_CONDITIONAL([WITH_STORAGE_GLUSTER], [test "$with_storage_gluster" = "yes"]) if test "$with_storage_zfs" = "yes" || test "$with_storage_zfs" = "check"; then AC_PATH_PROG([ZFS], [zfs], [], [$LIBVIRT_SBIN_PATH]) AC_PATH_PROG([ZPOOL], [zpool], [], [$LIBVIRT_SBIN_PATH]) if test "$with_storage_zfs" = "yes"; then if test -z "$ZFS" || test -z "$ZPOOL"; then AC_MSG_ERROR([We need zfs and zpool for ZFS storage driver]) fi else if test -z "$ZFS" || test -z "$ZPOOL"; then with_storage_zfs=no fi if test "$with_storage_zfs" = "check"; then with_storage_zfs=yes fi fi if test "$with_storage_zfs" = "yes"; then AC_DEFINE_UNQUOTED([WITH_STORAGE_ZFS], 1, [whether ZFS backend for storage driver is enabled]) AC_DEFINE_UNQUOTED([ZFS], ["$ZFS"], [Location of zfs program]) AC_DEFINE_UNQUOTED([ZPOOL], ["$ZPOOL"], [Location of zpool program]) fi fi AM_CONDITIONAL([WITH_STORAGE_ZFS], [test "$with_storage_zfs" = "yes"]) if test "$with_storage_fs" = "yes" || test "$with_storage_gluster" = "yes"; then AC_PATH_PROG([GLUSTER_CLI], [gluster], [], [$LIBVIRT_SBIN_PATH]) if test "x$GLUSTER_CLI" != "x"; then AC_DEFINE_UNQUOTED([GLUSTER_CLI], ["$GLUSTER_CLI"], [Location or name of the gluster command line tool]) fi fi LIBPARTED_CFLAGS= LIBPARTED_LIBS= if test "$with_storage_disk" = "yes" || test "$with_storage_disk" = "check"; then AC_PATH_PROG([PARTED], [parted], [], [$LIBVIRT_SBIN_PATH]) if test -z "$PARTED" ; then PARTED_FOUND=no else PARTED_FOUND=yes fi if test "$PARTED_FOUND" = "yes" && test "x$PKG_CONFIG" != "x" ; then PKG_CHECK_MODULES([LIBPARTED], [libparted >= $PARTED_REQUIRED], [], [PARTED_FOUND=no]) fi if test "$with_storage_disk" = "yes" && test "$PARTED_FOUND" != "yes"; then AC_MSG_ERROR([Need parted for disk storage driver]) fi if test "$with_storage_disk" = "check"; then if test "$PARTED_FOUND" != "yes"; then with_storage_disk=no else with_storage_disk=yes fi 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]) if test "$with_storage_mpath" = "yes" || test "$with_storage_disk" = "yes"; then DEVMAPPER_CFLAGS= DEVMAPPER_LIBS= PKG_CHECK_MODULES([DEVMAPPER], [devmapper >= $DEVMAPPER_REQUIRED], [], [DEVMAPPER_FOUND=no]) if test "$DEVMAPPER_FOUND" = "no"; then # devmapper is missing pkg-config files in ubuntu, suse, etc save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" DEVMAPPER_FOUND=yes AC_CHECK_LIB([devmapper], [dm_task_run],,[DEVMAPPER_FOUND=no]) DEVMAPPER_LIBS="-ldevmapper" LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" fi AC_CHECK_HEADERS([libdevmapper.h],,[DEVMAPPER_FOUND=no]) if test "$DEVMAPPER_FOUND" = "no" ; then AC_MSG_ERROR([You must install device-mapper-devel/libdevmapper >= $DEVMAPPER_REQUIRED to compile libvirt]) fi fi AC_SUBST([DEVMAPPER_CFLAGS]) AC_SUBST([DEVMAPPER_LIBS]) with_storage=no for backend in dir fs lvm iscsi scsi mpath rbd disk; do if eval test \$with_storage_$backend = yes; then with_storage=yes break fi done if test $with_storage = yes; then AC_DEFINE([WITH_STORAGE], [1], [Define to 1 if at least one storage backend is in use]) fi AM_CONDITIONAL([WITH_STORAGE], [test "$with_storage" = "yes"]) dnl dnl check for (ESX) dnl if test "$with_curl" != "yes" ; then if test "$with_esx" != "yes"; then with_esx=no else AC_MSG_ERROR([Curl is required for the ESX driver]) fi else if test "$with_esx" = "check"; then with_esx=yes 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"]) with_vmx=yes if test "$with_esx" != "yes" && test "$with_vmware" != "yes"; then with_vmx=no fi if test "$with_vmx" = "yes" ; then AC_DEFINE_UNQUOTED([WITH_VMX], 1, [whether VMware VMX config handling is enabled]) fi AM_CONDITIONAL([WITH_VMX], [test "$with_vmx" = "yes"]) if test "$with_xenapi" = "yes" ; then AC_DEFINE_UNQUOTED([WITH_XENAPI], 1, [whether XenAPI driver is enabled]) fi AM_CONDITIONAL([WITH_XENAPI], [test "$with_xenapi" = "yes"]) dnl dnl check for Hyper-V dnl if test "$with_hyperv" != "no"; then if test "$with_openwsman" != "yes"; then if test "$with_hyperv" = "check"; then with_hyperv=no else AC_MSG_ERROR([openwsman is required for the Hyper-V driver]) fi else with_hyperv=yes fi fi if test "$with_hyperv" = "yes" ; then AC_DEFINE_UNQUOTED([WITH_HYPERV], 1, [whether Hyper-V driver is enabled]) fi AM_CONDITIONAL([WITH_HYPERV], [test "$with_hyperv" = "yes"]) dnl dnl check for kernel headers required by btrfs ioctl dnl if test "$with_linux" = "yes"; then AC_CHECK_HEADERS([linux/btrfs.h]) fi dnl Allow perl/python overrides AC_PATH_PROGS([PYTHON], [python2 python]) AC_PATH_PROG([PERL], [perl]) if test -z "$PERL"; then AC_MSG_ERROR([Failed to find perl.]) fi LIBVIRT_ARG_WITH_ALT([TEST_SUITE], [build test suite by default], [check]) case "$with_test_suite" in yes|no|check) ;; *) AC_MSG_ERROR([bad value ${withval} for tests option]) ;; esac AC_MSG_CHECKING([Whether to build test suite by default]) if test "$with_test_suite" = "check" ; then if test -d $srcdir/.git ; then with_test_suite=yes else with_test_suite=no fi fi AC_MSG_RESULT([$with_test_suite]) AM_CONDITIONAL([WITH_TESTS], [test "$with_test_suite" = "yes"]) LIBVIRT_ARG_ENABLE([EXPENSIVE_TESTS], [set the default for enabling expensive tests ] [(gnulib and long timeouts), use VIR_TEST_EXPENSIVE to ] [override during make], [check]) case "$enable_expensive_tests" in 0|no) VIR_TEST_EXPENSIVE_DEFAULT=0 ;; 1|yes) VIR_TEST_EXPENSIVE_DEFAULT=1 ;; check) ;; *) AC_MSG_ERROR([bad value ${enable_expensive_tests} for enable-expensive-tests option]) ;; esac if test "$enable_expensive_tests" = check; then if test -d $srcdir/.git ; then VIR_TEST_EXPENSIVE_DEFAULT=0 else VIR_TEST_EXPENSIVE_DEFAULT=1 fi fi AC_SUBST([VIR_TEST_EXPENSIVE_DEFAULT]) AM_CONDITIONAL([WITH_EXPENSIVE_TESTS], [test $VIR_TEST_EXPENSIVE_DEFAULT = 1]) LIBVIRT_ARG_ENABLE([TEST_COVERAGE], [turn on code coverage instrumentation], [no]) case "$enable_test_coverage" in yes|no) ;; *) AC_MSG_ERROR([bad value ${enable_test_coverga} for test-coverage option]) ;; esac if test "$enable_test_coverage" = yes; then save_WARN_CFLAGS=$WARN_CFLAGS WARN_CFLAGS= gl_WARN_ADD([-fprofile-arcs]) gl_WARN_ADD([-ftest-coverage]) COVERAGE_FLAGS=$WARN_CFLAGS AC_SUBST([COVERAGE_CFLAGS], [$COVERAGE_FLAGS]) AC_SUBST([COVERAGE_LDFLAGS], [$COVERAGE_FLAGS]) WARN_CFLAGS=$save_WARN_CFLAGS fi LIBVIRT_ARG_ENABLE([TEST_OOM], [memory allocation failure checking], [no]) case "$enable_test_oom" in yes|no) ;; *) AC_MSG_ERROR([bad value ${enable_test_oom} for test-oom option]) ;; esac if test "$enable_test_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 LIBVIRT_ARG_ENABLE([TEST_LOCKING], [thread locking tests using CIL], [no]) case "$enable_test_locking" in yes|no) ;; *) AC_MSG_ERROR([bad value ${enable_test_locking} for test-locking option]) ;; esac if test "$enable_test_locking" = "yes"; then LOCK_CHECKING_CFLAGS="-save-temps" AC_SUBST([LOCK_CHECKING_CFLAGS]) fi AM_CONDITIONAL([WITH_CIL],[test "$enable_test_locking" = "yes"]) dnl Enable building libvirtd? AM_CONDITIONAL([WITH_LIBVIRTD],[test "x$with_libvirtd" = "xyes"]) dnl Check for gettext - don't go any newer than what RHEL 5 supports dnl dnl save and restore CPPFLAGS around gettext check as the internal iconv dnl check might leave -I/usr/local/include in CPPFLAGS on FreeBSD resulting dnl in the build picking up previously installed libvirt/libvirt.h instead dnl of the correct one from the source tree. dnl compute the difference between save_CPPFLAGS and CPPFLAGS and append it dnl to INCLUDES in order to preserve changes made by gettext but in a place dnl that does not break the build save_CPPFLAGS="$CPPFLAGS" AM_GNU_GETTEXT_VERSION([0.17]) AM_GNU_GETTEXT([external]) GETTEXT_CPPFLAGS= if test "x$save_CPPFLAGS" != "x$CPPFLAGS"; then set dummy $CPPFLAGS; shift for var do case " $var " in " $save_CPPFLAGS ") ;; *) GETTEXT_CPPFLAGS="$GETTEXT_CPPFLAGS $var" ;; esac done fi CPPFLAGS="$save_CPPFLAGS" AC_SUBST([GETTEXT_CPPFLAGS]) ALL_LINGUAS=`cd "$srcdir/po" > /dev/null && ls *.po | sed 's+\.po$++'` dnl Cygwin, MinGW and MSVC checks LIBVIRT_WIN_CHECK_COMMON LIBVIRT_WIN_CHECK_CYGWIN LIBVIRT_WIN_CHECK_MINGW LIBVIRT_WIN_CHECK_SYMBOLS LIBVIRT_WIN_CHECK_WINDRES dnl Driver-Modules library support LIBVIRT_ARG_DRIVER_MODULES LIBVIRT_CHECK_DRIVER_MODULES # 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]) with_nodedev=no; if test "$with_hal" = "yes" || test "$with_udev" = "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"]) dnl nwfilter should only be compiled for linux, and only if the dnl libvirt daemon is also being compiled with_nwfilter=yes if test "$with_libvirtd" = "no" || test "$with_linux" != "yes"; then with_nwfilter=no fi if test "$with_nwfilter" = "yes" ; then AC_DEFINE([WITH_NWFILTER], 1, [whether local network filter management driver is available]) fi AM_CONDITIONAL([WITH_NWFILTER], [test "$with_nwfilter" = "yes"]) dnl check if the interface driver should be compiled LIBVIRT_ARG_WITH([INTERFACE], [host interface driver], [check]) dnl Don't compile the interface driver without libvirtd if test "$with_libvirtd" = "no" ; then with_interface=no fi dnl The interface driver depends on the netcf library or udev library case $with_interface:$with_netcf:$with_udev in check:*yes*) with_interface=yes ;; check:no:no) with_interface=no ;; yes:no:no) AC_MSG_ERROR([Requested the Interface driver without netcf or udev support]) ;; esac if test "$with_interface" = "yes" ; then AC_DEFINE_UNQUOTED([WITH_INTERFACE], [1], [whether the interface driver is enabled]) fi AM_CONDITIONAL([WITH_INTERFACE], [test "$with_interface" = "yes"]) if test $with_freebsd = yes || test $with_osx = yes; then default_qemu_user=root default_qemu_group=wheel else default_qemu_user=root default_qemu_group=root fi LIBVIRT_ARG_WITH_ALT([QEMU_USER], [username to run QEMU system instance as], ['platform dependent']) LIBVIRT_ARG_WITH_ALT([QEMU_GROUP], [groupname to run QEMU system instance as], ['platform dependent']) if test "x$with_qemu_user" = "xplatform dependent" ; then QEMU_USER="$default_qemu_user" else QEMU_USER="$with_qemu_user" fi if test "x$with_qemu_group" = "xplatform dependent" ; then QEMU_GROUP="$default_qemu_group" else QEMU_GROUP="$with_qemu_group" fi AC_DEFINE_UNQUOTED([QEMU_USER], ["$QEMU_USER"], [QEMU user account]) AC_DEFINE_UNQUOTED([QEMU_GROUP], ["$QEMU_GROUP"], [QEMU group account]) AC_PATH_PROG([QEMU_BRIDGE_HELPER], [qemu-bridge-helper], [/usr/libexec/qemu-bridge-helper], [/usr/libexec:/usr/lib/qemu:/usr/lib]) AC_DEFINE_UNQUOTED([QEMU_BRIDGE_HELPER], ["$QEMU_BRIDGE_HELPER"], [QEMU bridge helper]) LIBVIRT_ARG_MACVTAP LIBVIRT_CHECK_MACVTAP LIBVIRT_ARG_VIRTUALPORT LIBVIRT_CHECK_VIRTUALPORT dnl GET_VLAN_VID_CMD is required for virNetDevGetVLanID AC_CHECK_DECLS([GET_VLAN_VID_CMD], [], [], [[#include ]]) dnl netlink library LIBVIRT_CHECK_LIBNL # Check for Linux vs. BSD ifreq members AC_CHECK_MEMBERS([struct ifreq.ifr_newname, struct ifreq.ifr_ifindex, struct ifreq.ifr_index, struct ifreq.ifr_hwaddr], [], [], [#include #include ]) # Check for BSD approach for setting MAC addr AC_LINK_IFELSE([AC_LANG_PROGRAM( [[ #include #include #include ]], [[ link_addr(0, 0)]])], [AC_DEFINE([HAVE_DECL_LINK_ADDR], [1], [whether link_addr is available])]) # Check for BSD approach for bridge management AC_CHECK_DECLS([BRDGSFD, BRDGADD, BRDGDEL], [AC_DEFINE([HAVE_BSD_BRIDGE_MGMT], [1], [whether BSD style bridge management is available])], [], [#include #include #include #include ]) # Check for BSD CPU affinity availability AC_CHECK_DECLS([cpuset_getaffinity], [AC_DEFINE([HAVE_BSD_CPU_AFFINITY], [1], [whether BSD CPU affinity management is available])], [], [#include #include ]) # Check for BSD kvm (kernel memory interface) if test $with_freebsd = yes; then AC_CHECK_LIB([kvm], [kvm_getprocs], [], [AC_MSG_ERROR([BSD kernel memory interface library is required to build on FreeBSD])] ) fi # FreeBSD 10-STABLE requires _IFI_OQDROPS to be defined for if_data.ifi_oqdrops # field be available old_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -D_IFI_OQDROPS" AC_CHECK_MEMBERS([struct if_data.ifi_oqdrops], [], [CFLAGS="$old_CFLAGS"], [#include ]) AC_CHECK_DECLS([clock_serv_t, host_get_clock_service, clock_get_time], [AC_DEFINE([HAVE_MACH_CLOCK_ROUTINES], [1], [whether Mach clock routines are available])], [], [#include #include ]) # Check if we need to look for ifconfig if test "$want_ifconfig" = "yes"; then AC_PATH_PROG([IFCONFIG_PATH], [ifconfig]) if test -z "$IFCONFIG_PATH"; then AC_MSG_ERROR([Failed to find ifconfig.]) fi AC_DEFINE_UNQUOTED([IFCONFIG_PATH], "$IFCONFIG_PATH", [path to ifconfig binary]) fi # Detect when running under the clang static analyzer's scan-build driver # or Coverity-prevent's cov-build. Define STATIC_ANALYSIS accordingly. AC_CACHE_CHECK([whether this build is done by a static analysis tool], [lv_cv_static_analysis], [ lv_cv_static_analysis=no if test -n "${CCC_ANALYZER_ANALYSIS+set}" || \ test -n "$COVERITY_BUILD_COMMAND$COVERITY_LD_PRELOAD"; then lv_cv_static_analysis=yes fi ]) t=0 test "x$lv_cv_static_analysis" = xyes && t=1 AC_DEFINE_UNQUOTED([STATIC_ANALYSIS], [$t], [Define to 1 when performing static analysis.]) LIBVIRT_ARG_WITH_ALT([DEFAULT_EDITOR], [Editor to use for interactive commands], [vi]) AC_DEFINE_UNQUOTED([DEFAULT_EDITOR], ["$with_default_editor"], [Default editor to use]) LIBVIRT_ARG_WITH_ALT([LOADER_NVRAM], [Pass list of pairs of : paths. Both pairs and list items are separated by a colon.], ['']) if test "x$with_loader_nvram" != "xno" && \ test "x$with_loader_nvram" != "x" ; then l=$(echo $with_loader_nvram | tr ':' '\n' | wc -l) if test $(expr $l % 2) -ne 0 ; then AC_MSG_ERROR([Malformed --with-loader-nvram argument]) fi AC_DEFINE_UNQUOTED([DEFAULT_LOADER_NVRAM], [$with_loader_nvram], [List of loader:nvram pairs]) fi # Some GNULIB base64 symbols clash with a kerberos library AC_DEFINE_UNQUOTED([isbase64],[libvirt_gl_isbase64],[Hack to avoid symbol clash]) AC_DEFINE_UNQUOTED([base64_encode],[libvirt_gl_base64_encode],[Hack to avoid symbol clash]) AC_DEFINE_UNQUOTED([base64_encode_alloc],[libvirt_gl_base64_encode_alloc],[Hack to avoid symbol clash]) AC_CONFIG_FILES([run], [chmod +x,-w run]) AC_CONFIG_FILES([\ Makefile src/Makefile include/libvirt/Makefile docs/Makefile \ gnulib/lib/Makefile \ gnulib/tests/Makefile \ libvirt.pc \ libvirt-qemu.pc \ libvirt-lxc.pc \ libvirt-admin.pc \ src/libvirt.pc \ src/libvirt-qemu.pc \ src/libvirt-lxc.pc \ libvirt.spec mingw-libvirt.spec \ po/Makefile.in \ include/libvirt/libvirt-common.h \ daemon/Makefile \ examples/Makefile \ tests/Makefile \ tools/Makefile]) AC_OUTPUT 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([ QEMU: $with_qemu]) LIBVIRT_DRIVER_RESULT_UML AC_MSG_NOTICE([ OpenVZ: $with_openvz]) AC_MSG_NOTICE([ VMware: $with_vmware]) AC_MSG_NOTICE([ VBox: $with_vbox]) AC_MSG_NOTICE([ XenAPI: $with_xenapi]) AC_MSG_NOTICE([ xenlight: $with_libxl]) AC_MSG_NOTICE([ LXC: $with_lxc]) AC_MSG_NOTICE([ PHYP: $with_phyp]) AC_MSG_NOTICE([ ESX: $with_esx]) AC_MSG_NOTICE([ Hyper-V: $with_hyperv]) LIBVIRT_DRIVER_RESULT_VZ LIBVIRT_DRIVER_RESULT_BHYVE 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([Interface: $with_interface]) 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([ mpath: $with_storage_mpath]) AC_MSG_NOTICE([ Disk: $with_storage_disk]) AC_MSG_NOTICE([ RBD: $with_storage_rbd]) AC_MSG_NOTICE([Sheepdog: $with_storage_sheepdog]) AC_MSG_NOTICE([ Gluster: $with_storage_gluster]) AC_MSG_NOTICE([ ZFS: $with_storage_zfs]) AC_MSG_NOTICE([]) AC_MSG_NOTICE([Security Drivers]) AC_MSG_NOTICE([]) AC_MSG_NOTICE([ SELinux: $with_secdriver_selinux ($SELINUX_MOUNT)]) AC_MSG_NOTICE([AppArmor: $with_secdriver_apparmor (install profiles: $with_apparmor_profiles)]) AC_MSG_NOTICE([]) AC_MSG_NOTICE([Driver Loadable Modules]) AC_MSG_NOTICE([]) LIBVIRT_RESULT_DRIVER_MODULES AC_MSG_NOTICE([]) AC_MSG_NOTICE([Libraries]) AC_MSG_NOTICE([]) LIBVIRT_RESULT_APPARMOR LIBVIRT_RESULT_ATTR LIBVIRT_RESULT_AUDIT LIBVIRT_RESULT_AVAHI LIBVIRT_RESULT_BLKID LIBVIRT_RESULT_CAPNG LIBVIRT_RESULT_CURL LIBVIRT_RESULT_DBUS LIBVIRT_RESULT_DLOPEN LIBVIRT_RESULT_FIREWALLD LIBVIRT_RESULT_FUSE LIBVIRT_RESULT_GLUSTER LIBVIRT_RESULT_GNUTLS LIBVIRT_RESULT_HAL LIBVIRT_RESULT_LIBNL LIBVIRT_RESULT_LIBPCAP LIBVIRT_RESULT_LIBSSH LIBVIRT_RESULT_LIBXML LIBVIRT_RESULT_MACVTAP LIBVIRT_RESULT_NETCF LIBVIRT_RESULT_NSS LIBVIRT_RESULT_NUMACTL LIBVIRT_RESULT_OPENWSMAN LIBVIRT_RESULT_PCIACCESS LIBVIRT_RESULT_POLKIT LIBVIRT_RESULT_READLINE LIBVIRT_RESULT_SANLOCK LIBVIRT_RESULT_SASL LIBVIRT_RESULT_SELINUX LIBVIRT_RESULT_SSH2 LIBVIRT_RESULT_UDEV LIBVIRT_RESULT_VIRTUALPORT LIBVIRT_RESULT_XDR LIBVIRT_RESULT_YAJL if test "$with_xen" = "yes" ; then AC_MSG_NOTICE([ xen: $XEN_CFLAGS $XEN_LIBS]) else AC_MSG_NOTICE([ xen: no]) fi if test "$with_xenapi" = "yes" ; then AC_MSG_NOTICE([ xenapi: $LIBXENSERVER_CFLAGS $LIBXENSERVER_LIBS]) else AC_MSG_NOTICE([ xenapi: no]) fi if test "$with_libxl" = "yes" ; then AC_MSG_NOTICE([xenlight: $LIBXL_CFLAGS $LIBXL_LIBS]) else AC_MSG_NOTICE([xenlight: no]) fi if test "$with_storage_rbd" = "yes" ; then AC_MSG_NOTICE([ rbd: $LIBRBD_LIBS]) else AC_MSG_NOTICE([ rbd: no]) fi AC_MSG_NOTICE([pm-utils: $with_pm_utils]) AC_MSG_NOTICE([]) AC_MSG_NOTICE([Windows]) AC_MSG_NOTICE([]) LIBVIRT_WIN_RESULT_COMMON LIBVIRT_WIN_RESULT_WINDRES 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([ Use -Werror: $enable_werror]) AC_MSG_NOTICE([ Warning Flags: $WARN_CFLAGS]) AC_MSG_NOTICE([ DTrace: $with_dtrace]) AC_MSG_NOTICE([ numad: $with_numad]) AC_MSG_NOTICE([ XML Catalog: $with_xml_catalog_file]) LIBVIRT_RESULT_INIT_SCRIPT AC_MSG_NOTICE([ Char device locks: $with_chrdev_lock_files]) AC_MSG_NOTICE([ Default Editor: $with_default_editor]) AC_MSG_NOTICE([ Loader/NVRAM: $with_loader_nvram]) LIBVIRT_RESULT_LOGIN_SHELL LIBVIRT_RESULT_HOST_VALIDATE AC_MSG_NOTICE([ TLS priority: $with_tls_priority]) AC_MSG_NOTICE([]) AC_MSG_NOTICE([Developer Tools]) AC_MSG_NOTICE([]) LIBVIRT_RESULT_WIRESHARK AC_MSG_NOTICE([]) AC_MSG_NOTICE([Privileges]) AC_MSG_NOTICE([]) AC_MSG_NOTICE([ QEMU: $QEMU_USER:$QEMU_GROUP]) AC_MSG_NOTICE([])