1 dnl Process this file with autoconf to produce a configure script.
3 dnl Copyright (C) 2005-2015 Red Hat, Inc.
5 dnl This library is free software; you can redistribute it and/or
6 dnl modify it under the terms of the GNU Lesser General Public
7 dnl License as published by the Free Software Foundation; either
8 dnl version 2.1 of the License, or (at your option) any later version.
10 dnl This library is distributed in the hope that it will be useful,
11 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
12 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 dnl Lesser General Public License for more details.
15 dnl You should have received a copy of the GNU Lesser General Public
16 dnl License along with this library. If not, see
17 dnl <http://www.gnu.org/licenses/>.
19 AC_INIT([libvirt], [5.6.0], [libvir-list@redhat.com], [], [https://libvirt.org])
20 AC_CONFIG_SRCDIR([src/libvirt.c])
21 AC_CONFIG_AUX_DIR([build-aux])
22 AC_CONFIG_HEADERS([config.h])
23 AH_BOTTOM([#include <config-post.h>])
24 AC_CONFIG_MACRO_DIR([m4])
25 dnl Make automake keep quiet about wildcards & other GNUmake-isms
34 dnl older automake's default of ARFLAGS=cru is noisy on newer binutils;
35 dnl we don't really need the 'u' even in older toolchains. Then there is
36 dnl older libtool, which spelled it AR_FLAGS
37 m4_divert_text([DEFAULTS], [: "${ARFLAGS=cr} ${AR_FLAGS=cr}"])
39 # Maintainer note - comment this line out if you plan to rerun
40 # GNULIB_POSIXCHECK testing to see if libvirt should be using more modules.
41 # Leave it uncommented for normal releases, for faster ./configure.
42 gl_ASSERT_NO_GNULIB_POSIXCHECK
44 # Default to using the silent-rules feature when possible. Formatting
45 # chosen to bypass 'grep' checks that cause older automake to warn.
46 # Users (include rpm) can still change the default at configure time.
47 m4_ifndef([AM_SILENT_RULES],
48 [m4_define([AM_SILENT_RULES],[])])AM_SILENT_RULES([yes])
52 # First extract pieces from the version number string
53 LIBVIRT_MAJOR_VERSION=`echo $VERSION | awk -F. '{print $1}'`
54 LIBVIRT_MINOR_VERSION=`echo $VERSION | awk -F. '{print $2}'`
55 LIBVIRT_MICRO_VERSION=`echo $VERSION | awk -F. '{print $3}'`
56 LIBVIRT_VERSION=$LIBVIRT_MAJOR_VERSION.$LIBVIRT_MINOR_VERSION.$LIBVIRT_MICRO_VERSION$LIBVIRT_MICRO_VERSION_SUFFIX
57 LIBVIRT_VERSION_NUMBER=`expr $LIBVIRT_MAJOR_VERSION \* 1000000 + $LIBVIRT_MINOR_VERSION \* 1000 + $LIBVIRT_MICRO_VERSION`
59 # In libtool terminology we need to figure out:
62 # The most recent interface number that this library implements.
65 # The implementation number of the CURRENT interface.
68 # The difference between the newest and oldest interfaces that this
71 # In other words, the library implements all the interface numbers
72 # in the range from number `CURRENT - AGE' to `CURRENT'.
74 # Libtool assigns the soname version from `CURRENT - AGE', and we
75 # don't want that to ever change in libvirt. ie it must always be
76 # zero, to produce libvirt.so.0.
78 # We would, however, like the libvirt version number reflected
79 # in the so version'd symlinks, and this is based on AGE.REVISION
80 # eg libvirt.so.0.AGE.REVISION
82 # Assuming we do ever want to break soname version, this can
83 # toggled. But seriously, don't ever touch this.
86 # The following examples show what libtool will do
88 # Input: 0.9.14 -> libvirt.so.0.9.14
89 # Input: 1.0.0 -> libvirt.so.0.1000.0
90 # Input: 2.5.8 -> libvirt.so.0.2005.8
92 AGE=`expr $LIBVIRT_MAJOR_VERSION '*' 1000 + $LIBVIRT_MINOR_VERSION`
93 REVISION=$LIBVIRT_MICRO_VERSION
94 CURRENT=`expr $LIBVIRT_SONUM + $AGE`
95 LIBVIRT_VERSION_INFO=$CURRENT:$REVISION:$AGE
97 AC_SUBST([LIBVIRT_MAJOR_VERSION])
98 AC_SUBST([LIBVIRT_MINOR_VERSION])
99 AC_SUBST([LIBVIRT_MICRO_VERSION])
100 AC_SUBST([LIBVIRT_SONUM])
101 AC_SUBST([LIBVIRT_VERSION])
102 AC_SUBST([LIBVIRT_VERSION_INFO])
103 AC_SUBST([LIBVIRT_VERSION_NUMBER])
105 LIBVIRT_ARG_WITH([PACKAGER], [Extra packager name], [no])
106 LIBVIRT_ARG_WITH([PACKAGER_VERSION], [Extra packager version], [no])
107 if test "x$with_packager" != "xno"
109 AC_DEFINE_UNQUOTED([PACKAGER], ["$with_packager"],
110 [Extra package name])
112 if test "x$with_packager_version" != "xno"
114 AC_DEFINE_UNQUOTED([PACKAGER_VERSION], ["$with_packager_version"],
115 [Extra package version])
118 dnl Where we look for daemons and admin binaries during configure
119 LIBVIRT_SBIN_PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin"
121 dnl Checks for C compiler.
126 dnl Setting AB_VERSION makes the 'autobuild' lines of configure output
127 dnl slightly more useful
128 if test -d $srcdir/.git && git --version >/dev/null 2>&1 ; then
129 AB_VERSION=`cd $srcdir && git describe --match 'v[[0-9]]*' 2>/dev/null`
137 dnl Support building Win32 DLLs (must appear *before* AM_PROG_LIBTOOL)
142 m4_ifndef([LT_INIT], [
145 LT_INIT([shared disable-static])
150 AC_MSG_CHECKING([for how to mark DSO non-deletable at runtime])
152 `$LD --help 2>&1 | grep -- "-z nodelete" >/dev/null` && \
153 LIBVIRT_NODELETE="-Wl,-z -Wl,nodelete"
154 AC_MSG_RESULT([$LIBVIRT_NODELETE])
155 AC_SUBST([LIBVIRT_NODELETE])
157 AC_MSG_CHECKING([for how to set DSO symbol versions])
159 *-*-mingw* | *-*-msvc* )
160 # mingw's ld has the --version-script parameter, but it requires a .def file
161 # instead to work properly, therefore clear --version-script here and use
162 # -Wl, to pass the .def file to the linker
163 # cygwin's ld has the --version-script parameter too, but for some reason
164 # it's working there as expected
165 VERSION_SCRIPT_FLAGS="-Wl,"
168 VERSION_SCRIPT_FLAGS=-Wl,--version-script=
169 `$LD --help 2>&1 | grep -- --version-script >/dev/null` || \
170 VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,"
173 AC_MSG_RESULT([$VERSION_SCRIPT_FLAGS])
174 AC_SUBST([VERSION_SCRIPT_FLAGS])
176 dnl Specify if we rely on ifconfig instead of iproute2 (e.g. in case
177 dnl we're working on BSD)
180 dnl Make some notes about which OS we're compiling for, as the lxc and qemu
181 dnl drivers require linux headers, and storage_mpath, dtrace, and nwfilter
182 dnl are also linux specific. The "network" and storage_fs drivers are known
183 dnl to not work on macOS presently, so we also make a note if compiling
186 with_linux=no with_macos=no with_freebsd=no with_win=no with_cygwin=no
188 *-*-linux*) with_linux=yes ;;
189 *-*-darwin*) with_macos=yes ;;
190 *-*-freebsd*) with_freebsd=yes ;;
191 *-*-mingw* | *-*-msvc* ) with_win=yes ;;
192 *-*-cygwin*) with_cygwin=yes ;;
195 if test $with_linux = no; then
196 if test "x$with_lxc" != xyes
204 if test $with_freebsd = yes; then
209 if test $with_cygwin = yes; then
213 AM_CONDITIONAL([WITH_LINUX], [test "$with_linux" = "yes"])
214 AM_CONDITIONAL([WITH_FREEBSD], [test "$with_freebsd" = "yes"])
216 # We don't support the daemon yet
217 if test "$with_win" = "yes" ; then
221 # The daemon requires remote support. Likewise, if we are not using
222 # RPC, we don't need several libraries.
223 if test "$with_remote" = "no" ; then
229 # Stateful drivers are useful only when building the daemon.
230 if test "$with_libvirtd" = "no" ; then
237 # Check for compiler and library settings.
239 LIBVIRT_COMPILE_WARNINGS
242 LIBVIRT_LINKER_NO_INDIRECT
243 LIBVIRT_LINKER_NO_UNDEFINED
248 LIBVIRT_ARG_BASH_COMPLETION
253 LIBVIRT_ARG_FIREWALLD
254 LIBVIRT_ARG_FIREWALLD_ZONE
267 LIBVIRT_ARG_OPENWSMAN
268 LIBVIRT_ARG_PCIACCESS
277 LIBVIRT_ARG_VIRTUALPORT
278 LIBVIRT_ARG_WIRESHARK
282 LIBVIRT_CHECK_APPARMOR
286 LIBVIRT_CHECK_BASH_COMPLETION
291 LIBVIRT_CHECK_DEVMAPPER
293 LIBVIRT_CHECK_FIREWALLD
294 LIBVIRT_CHECK_FIREWALLD_ZONE
296 LIBVIRT_CHECK_GLUSTER
299 LIBVIRT_CHECK_LIBISCSI
301 LIBVIRT_CHECK_LIBPARTED
302 LIBVIRT_CHECK_LIBPCAP
305 LIBVIRT_CHECK_MACVTAP
308 LIBVIRT_CHECK_NUMACTL
309 LIBVIRT_CHECK_NWFILTER
310 LIBVIRT_CHECK_OPENWSMAN
311 LIBVIRT_CHECK_PCIACCESS
312 LIBVIRT_CHECK_PM_UTILS
314 LIBVIRT_CHECK_PTHREAD
315 LIBVIRT_CHECK_READLINE
316 LIBVIRT_CHECK_SANLOCK
318 LIBVIRT_CHECK_SELINUX
321 LIBVIRT_CHECK_VIRTUALPORT
322 LIBVIRT_CHECK_WIRESHARK
326 AC_CHECK_SIZEOF([long])
328 dnl Availability of various common functions (non-fatal if missing),
329 dnl and various less common threadsafe functions
330 AC_CHECK_FUNCS_ONCE([\
356 dnl Availability of various common headers (non-fatal if missing).
373 dnl Check whether endian provides handy macros.
374 AC_CHECK_DECLS([htole64], [], [], [[#include <endian.h>]])
375 AC_CHECK_FUNCS([stat stat64 __xstat __xstat64 lstat lstat64 __lxstat __lxstat64])
377 AC_CHECK_TYPE([struct ifreq],
378 [AC_DEFINE([HAVE_STRUCT_IFREQ],[1],
379 [Defined if struct ifreq exists in net/if.h])],
380 [], [[#include <sys/socket.h>
384 AC_CHECK_TYPE([struct sockpeercred],
385 [AC_DEFINE([HAVE_STRUCT_SOCKPEERCRED], [1],
386 [Defined if struct sockpeercred is available])],
387 [], [[#include <sys/socket.h>
390 AC_CHECK_DECLS([ETH_FLAG_TXVLAN, ETH_FLAG_NTUPLE, ETH_FLAG_RXHASH, ETH_FLAG_LRO,
391 ETHTOOL_GGSO, ETHTOOL_GGRO, ETHTOOL_GFLAGS, ETHTOOL_GFEATURES,
392 ETHTOOL_SCOALESCE, ETHTOOL_GCOALESCE],
393 [], [], [[#include <linux/ethtool.h>
396 AC_CHECK_DECLS([SEEK_HOLE], [], [],
397 [#include <sys/types.h>
398 #include <unistd.h>])
401 dnl Our only use of libtasn1.h is in the testsuite, and can be skipped
402 dnl if the header is not present. Assume -ltasn1 is present if the
403 dnl header could be found.
404 AM_CONDITIONAL([HAVE_LIBTASN1], [test "x$ac_cv_header_libtasn1_h" = "xyes"])
406 AC_CHECK_LIB([intl],[gettext],[])
410 dnl Check for external programs
413 LIBVIRT_CHECK_EXTERNAL_PROGRAMS
415 dnl if --prefix is /usr, don't use /usr/var for localstatedir
416 dnl or /usr/etc for sysconfdir
417 dnl as this makes a lot of things break in testing situations
419 if test "$prefix" = "/usr" && test "$localstatedir" = '${prefix}/var' ; then
422 if test "$prefix" = "/usr" && test "$sysconfdir" = '${prefix}/etc' ; then
427 dnl Virtualization drivers check
430 LIBVIRT_DRIVER_ARG_QEMU
431 LIBVIRT_DRIVER_ARG_OPENVZ
432 LIBVIRT_DRIVER_ARG_VMWARE
433 LIBVIRT_DRIVER_ARG_PHYP
434 LIBVIRT_DRIVER_ARG_XENAPI
435 LIBVIRT_DRIVER_ARG_LIBXL
436 LIBVIRT_DRIVER_ARG_VBOX
437 LIBVIRT_DRIVER_ARG_LXC
438 LIBVIRT_DRIVER_ARG_VZ
439 LIBVIRT_DRIVER_ARG_BHYVE
440 LIBVIRT_DRIVER_ARG_ESX
441 LIBVIRT_DRIVER_ARG_HYPERV
442 LIBVIRT_DRIVER_ARG_TEST
443 LIBVIRT_DRIVER_ARG_REMOTE
444 LIBVIRT_DRIVER_ARG_LIBVIRTD
445 LIBVIRT_DRIVER_ARG_NETWORK
446 LIBVIRT_DRIVER_ARG_INTERFACE
448 LIBVIRT_DRIVER_CHECK_QEMU
449 LIBVIRT_DRIVER_CHECK_OPENVZ
450 LIBVIRT_DRIVER_CHECK_VMWARE
451 LIBVIRT_DRIVER_CHECK_PHYP
452 LIBVIRT_DRIVER_CHECK_XENAPI
453 LIBVIRT_DRIVER_CHECK_LIBXL
454 LIBVIRT_DRIVER_CHECK_VBOX
455 LIBVIRT_DRIVER_CHECK_LXC
456 LIBVIRT_DRIVER_CHECK_VZ
457 LIBVIRT_DRIVER_CHECK_BHYVE
458 LIBVIRT_DRIVER_CHECK_ESX
459 LIBVIRT_DRIVER_CHECK_HYPERV
460 LIBVIRT_DRIVER_CHECK_TEST
461 LIBVIRT_DRIVER_CHECK_REMOTE
462 LIBVIRT_DRIVER_CHECK_LIBVIRTD
463 LIBVIRT_DRIVER_CHECK_NETWORK
464 LIBVIRT_DRIVER_CHECK_INTERFACE
466 AM_CONDITIONAL([WITH_XENCONFIG], [test "$with_libxl" = "yes"])
470 dnl in case someone want to build static binaries
471 dnl STATIC_BINARIES="-static"
474 AC_SUBST([STATIC_BINARIES])
477 dnl Miscellaneous checks
483 LIBVIRT_ARG_INIT_SCRIPT
484 LIBVIRT_ARG_CHRDEV_LOCK_FILES
485 LIBVIRT_ARG_DEFAULT_EDITOR
486 LIBVIRT_ARG_LOADER_NVRAM
487 LIBVIRT_ARG_LOGIN_SHELL
488 LIBVIRT_ARG_HOST_VALIDATE
489 LIBVIRT_ARG_TLS_PRIORITY
490 LIBVIRT_ARG_SYSCTL_CONFIG
496 LIBVIRT_CHECK_INIT_SCRIPT
497 LIBVIRT_CHECK_CHRDEV_LOCK_FILES
498 LIBVIRT_CHECK_DEFAULT_EDITOR
499 LIBVIRT_CHECK_LOADER_NVRAM
500 LIBVIRT_CHECK_LOGIN_SHELL
501 LIBVIRT_CHECK_HOST_VALIDATE
502 LIBVIRT_CHECK_TLS_PRIORITY
503 LIBVIRT_CHECK_SYSCTL_CONFIG
510 dnl check for kvm headers
512 AC_CHECK_HEADERS([linux/kvm.h])
515 AM_CONDITIONAL([WITH_SETUID_RPC_CLIENT], [test "$with_lxc$with_login_shell" != "nono"])
519 dnl check for kernel headers required by src/bridge.c
521 if test "$with_linux" = "yes"; then
522 # Various kernel versions have headers that are not self-standing, but
523 # yet are incompatible with the corresponding glibc headers. In order
524 # to guarantee compilation across a wide range of versions (from RHEL 5
525 # to rawhide), we first have to probe whether glibc and kernel can be
526 # used in tandem; and if not, provide workarounds that ensure that
527 # ABI-compatible IPv6 types are present for use by the kernel headers.
528 # These probes mirror the usage in virnetdevbridge.c
530 [whether <linux/*.h> and <netinet/*.h> headers are compatible],
531 [lv_cv_netinet_linux_compatible],
532 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
533 #include <netinet/in.h>
534 #include <linux/in6.h>
536 [lv_cv_netinet_linux_compatible=yes],
537 [lv_cv_netinet_linux_compatible=no])])
538 if test "x$lv_cv_netinet_linux_compatible" != xyes; then
539 AC_DEFINE([NETINET_LINUX_WORKAROUND], [1],
540 [define to 1 if Linux kernel headers require a workaround to avoid
541 compilation errors when mixed with glibc netinet headers])
543 AC_CHECK_HEADERS([linux/param.h linux/sockios.h linux/if_bridge.h linux/if_tun.h],,
544 [AC_MSG_ERROR([You must install kernel-headers in order to compile libvirt with QEMU or LXC support])],
545 [[#include <netinet/in.h>
546 #if NETINET_LINUX_WORKAROUND
547 # define in6_addr in6_addr_
548 # define sockaddr_in6 sockaddr_in6_
549 # define ipv6_mreq ipv6_mreq_
550 # define in6addr_any in6addr_any_
551 # define in6addr_loopback in6addr_loopback_
553 #include <linux/in6.h>
558 dnl Need to test if pkg-config exists
562 dnl Security driver checks
563 LIBVIRT_SECDRIVER_ARG_SELINUX
564 LIBVIRT_SECDRIVER_ARG_APPARMOR
566 LIBVIRT_SECDRIVER_CHECK_SELINUX
567 LIBVIRT_SECDRIVER_CHECK_APPARMOR
570 LIBVIRT_ARG_WITH_FEATURE([SECRETS], [local secrets management driver], [yes])
572 if test "$with_libvirtd" = "no"; then
575 if test "$with_secrets" = "yes" ; then
576 AC_DEFINE_UNQUOTED([WITH_SECRETS], 1, [whether local secrets management driver is available])
578 AM_CONDITIONAL([WITH_SECRETS], [test "$with_secrets" = "yes"])
582 dnl Storage driver checks
585 LIBVIRT_STORAGE_ARG_DIR
586 LIBVIRT_STORAGE_ARG_FS
587 LIBVIRT_STORAGE_ARG_LVM
588 LIBVIRT_STORAGE_ARG_ISCSI
589 LIBVIRT_STORAGE_ARG_ISCSI_DIRECT
590 LIBVIRT_STORAGE_ARG_SCSI
591 LIBVIRT_STORAGE_ARG_MPATH
592 LIBVIRT_STORAGE_ARG_DISK
593 LIBVIRT_STORAGE_ARG_RBD
594 LIBVIRT_STORAGE_ARG_SHEEPDOG
595 LIBVIRT_STORAGE_ARG_GLUSTER
596 LIBVIRT_STORAGE_ARG_ZFS
597 LIBVIRT_STORAGE_ARG_VSTORAGE
599 if test "$with_libvirtd" = "no"; then
603 with_storage_iscsi=no
604 with_storage_iscsi_direct=no
606 with_storage_mpath=no
609 with_storage_sheepdog=no
610 with_storage_gluster=no
612 with_storage_vstorage=no
615 dnl storage-fs does not work on macOS
617 if test "$with_macos" = "yes"; then
621 LIBVIRT_STORAGE_CHECK_DIR
622 LIBVIRT_STORAGE_CHECK_FS
623 LIBVIRT_STORAGE_CHECK_LVM
624 LIBVIRT_STORAGE_CHECK_ISCSI
625 LIBVIRT_STORAGE_CHECK_ISCSI_DIRECT
626 LIBVIRT_STORAGE_CHECK_SCSI
627 LIBVIRT_STORAGE_CHECK_MPATH
628 LIBVIRT_STORAGE_CHECK_DISK
629 LIBVIRT_STORAGE_CHECK_RBD
630 LIBVIRT_STORAGE_CHECK_SHEEPDOG
631 LIBVIRT_STORAGE_CHECK_GLUSTER
632 LIBVIRT_STORAGE_CHECK_ZFS
633 LIBVIRT_STORAGE_CHECK_VSTORAGE
636 for backend in dir fs lvm iscsi iscsi_direct scsi mpath rbd disk; do
637 if eval test \$with_storage_$backend = yes; then
642 if test $with_storage = yes; then
643 AC_DEFINE([WITH_STORAGE], [1],
644 [Define to 1 if at least one storage backend is in use])
646 AM_CONDITIONAL([WITH_STORAGE], [test "$with_storage" = "yes"])
649 dnl check for kernel headers required by btrfs ioctl
651 if test "$with_linux" = "yes"; then
652 AC_CHECK_HEADERS([linux/btrfs.h])
656 dnl check for xfs dev headers required by xfs ioctl
658 if test "$with_linux" = "yes"; then
659 AC_CHECK_HEADERS([xfs/xfs.h])
663 dnl check for DEVLINK_CMD_ESWITCH_GET
665 dnl Assume DEVLINK_ESWITCH_MODE_SWITCHDEV is also
666 dnl available, as it was introudced in kernel 4.8
667 dnl along with the original spelling of this constant
668 dnl (DEVLINK_CMD_ESWITCH_MODE_GET, not supported by libvirt)
670 if test "$with_linux" = "yes"; then
671 AC_CHECK_HEADERS([linux/devlink.h])
672 AC_CHECK_DECLS([DEVLINK_CMD_ESWITCH_GET], [], [],
673 [[#include <linux/devlink.h>]])
677 dnl check for VHOST_VSOCK_SET_GUEST_CID
679 if test "$with_linux" = "yes"; then
680 AC_CHECK_DECLS([VHOST_VSOCK_SET_GUEST_CID], [], [],
681 [[#include <linux/vhost.h>]])
684 dnl Allow perl/python overrides
685 AC_PATH_PROGS([PYTHON], [python3 python2 python])
686 if test -z "$PYTHON"; then
687 AC_MSG_ERROR(['python3', 'python2' or 'python' binary is required to build libvirt])
689 AC_PATH_PROG([PERL], [perl])
690 if test -z "$PERL"; then
691 AC_MSG_ERROR(['perl' binary is required to build libvirt])
694 LIBVIRT_ARG_WITH([TEST_SUITE], [build test suite by default], [check])
695 case "$with_test_suite" in
697 *) AC_MSG_ERROR([bad value ${withval} for tests option]) ;;
700 AC_MSG_CHECKING([Whether to build test suite by default])
701 if test "$with_test_suite" = "check" ; then
702 if test -d $srcdir/.git ; then
708 AC_MSG_RESULT([$with_test_suite])
709 AM_CONDITIONAL([WITH_TESTS], [test "$with_test_suite" = "yes"])
711 LIBVIRT_ARG_ENABLE([EXPENSIVE_TESTS],
712 [set the default for enabling expensive tests ]
713 [(gnulib and long timeouts), use VIR_TEST_EXPENSIVE to ]
714 [override during make],
716 case "$enable_expensive_tests" in
717 0|no) VIR_TEST_EXPENSIVE_DEFAULT=0 ;;
718 1|yes) VIR_TEST_EXPENSIVE_DEFAULT=1 ;;
720 *) AC_MSG_ERROR([bad value ${enable_expensive_tests} for enable-expensive-tests option]) ;;
722 if test "$enable_expensive_tests" = check; then
723 if test -d $srcdir/.git ; then
724 VIR_TEST_EXPENSIVE_DEFAULT=0
726 VIR_TEST_EXPENSIVE_DEFAULT=1
729 AC_SUBST([VIR_TEST_EXPENSIVE_DEFAULT])
730 AM_CONDITIONAL([WITH_EXPENSIVE_TESTS], [test $VIR_TEST_EXPENSIVE_DEFAULT = 1])
732 LIBVIRT_ARG_ENABLE([TEST_OOM], [memory allocation failure checking], [no])
733 case "$enable_test_oom" in
735 *) AC_MSG_ERROR([bad value ${enable_test_oom} for test-oom option]) ;;
738 if test "$enable_test_oom" = yes; then
740 AC_CHECK_HEADER([execinfo.h],[],[have_trace=no])
741 AC_CHECK_FUNC([backtrace],[],[have_trace=no])
742 if test "$have_trace" = "yes"; then
743 AC_DEFINE([TEST_OOM_TRACE], 1, [Whether backtrace() is available])
745 AC_DEFINE([TEST_OOM], 1, [Whether malloc OOM checking is enabled])
748 LIBVIRT_ARG_ENABLE([TEST_LOCKING], [thread locking tests using CIL], [no])
749 case "$enable_test_locking" in
751 *) AC_MSG_ERROR([bad value ${enable_test_locking} for test-locking option]) ;;
754 if test "$enable_test_locking" = "yes"; then
755 LOCK_CHECKING_CFLAGS="-save-temps"
756 AC_SUBST([LOCK_CHECKING_CFLAGS])
758 AM_CONDITIONAL([WITH_CIL],[test "$enable_test_locking" = "yes"])
760 dnl Cygwin, MinGW and MSVC checks
761 LIBVIRT_WIN_CHECK_COMMON
762 LIBVIRT_WIN_CHECK_CYGWIN
763 LIBVIRT_WIN_CHECK_MINGW
764 LIBVIRT_WIN_CHECK_SYMBOLS
765 LIBVIRT_WIN_CHECK_WINDRES
768 dnl Driver-Modules library support
769 LIBVIRT_ARG_DRIVER_MODULES
770 LIBVIRT_CHECK_DRIVER_MODULES
773 # Set LV_LIBTOOL_OBJDIR to "." or $lt_cv_objdir, depending on whether
774 # we're building shared libraries. This is the name of the directory
775 # in which .o files will be created.
776 test "$enable_shared" = no && lt_cv_objdir=.
777 LV_LIBTOOL_OBJDIR=${lt_cv_objdir-.}
778 AC_SUBST([LV_LIBTOOL_OBJDIR])
782 if test "$with_hal" = "yes" || test "$with_udev" = "yes";
785 AC_DEFINE_UNQUOTED([WITH_NODE_DEVICES], 1, [with node device driver])
787 AM_CONDITIONAL([WITH_NODE_DEVICES], [test "$with_nodedev" = "yes"])
789 dnl GET_VLAN_VID_CMD is required for virNetDevGetVLanID
790 AC_CHECK_DECLS([GET_VLAN_VID_CMD], [], [], [[#include <linux/if_vlan.h>]])
792 # Check for Linux vs. BSD ifreq members
793 AC_CHECK_MEMBERS([struct ifreq.ifr_newname,
794 struct ifreq.ifr_ifindex,
795 struct ifreq.ifr_index,
796 struct ifreq.ifr_hwaddr],
798 [#include <sys/socket.h>
802 # Check for BSD approach for setting MAC addr
803 AC_LINK_IFELSE([AC_LANG_PROGRAM(
805 #include <sys/types.h>
806 #include <sys/socket.h>
807 #include <net/if_dl.h>
811 [AC_DEFINE([HAVE_DECL_LINK_ADDR],
813 [whether link_addr is available])])
815 # Check for BSD approach for bridge management
816 AC_CHECK_DECLS([BRDGSFD, BRDGADD, BRDGDEL],
817 [AC_DEFINE([HAVE_BSD_BRIDGE_MGMT],
819 [whether BSD style bridge management is available])],
823 #include <net/ethernet.h>
824 #include <net/if_bridgevar.h>
827 # Check for BSD CPU affinity availability
828 AC_CHECK_DECLS([cpuset_getaffinity],
829 [AC_DEFINE([HAVE_BSD_CPU_AFFINITY],
831 [whether BSD CPU affinity management is available])],
833 [#include <sys/param.h>
834 #include <sys/cpuset.h>
837 # Check for BSD kvm (kernel memory interface)
838 if test $with_freebsd = yes; then
839 AC_CHECK_LIB([kvm], [kvm_getprocs], [],
840 [AC_MSG_ERROR([BSD kernel memory interface library is required to build on FreeBSD])]
844 # FreeBSD 10-STABLE requires _IFI_OQDROPS to be defined for if_data.ifi_oqdrops
847 CFLAGS="$CFLAGS -D_IFI_OQDROPS"
849 AC_CHECK_MEMBERS([struct if_data.ifi_oqdrops],
851 [CFLAGS="$old_CFLAGS"],
855 AC_CHECK_DECLS([clock_serv_t, host_get_clock_service, clock_get_time],
856 [AC_DEFINE([HAVE_MACH_CLOCK_ROUTINES],
858 [whether Mach clock routines are available])],
860 [#include <mach/clock.h>
861 #include <mach/mach.h>
864 # Check if we need to look for ifconfig
865 if test "$want_ifconfig" = "yes"; then
866 AC_PATH_PROG([IFCONFIG_PATH], [ifconfig])
867 if test -z "$IFCONFIG_PATH"; then
868 AC_MSG_ERROR([Failed to find ifconfig.])
870 AC_DEFINE_UNQUOTED([IFCONFIG_PATH], "$IFCONFIG_PATH", [path to ifconfig binary])
873 # Detect when running under the clang static analyzer's scan-build driver
874 # or Coverity-prevent's cov-build. Define STATIC_ANALYSIS accordingly.
875 AC_CACHE_CHECK([whether this build is done by a static analysis tool],
876 [lv_cv_static_analysis], [
877 lv_cv_static_analysis=no
878 if test -n "${CCC_ANALYZER_ANALYSIS+set}" || \
879 test -n "$COVERITY_BUILD_COMMAND$COVERITY_LD_PRELOAD"; then
880 lv_cv_static_analysis=yes
884 test "x$lv_cv_static_analysis" = xyes && t=1
885 AC_DEFINE_UNQUOTED([STATIC_ANALYSIS], [$t],
886 [Define to 1 when performing static analysis.])
888 # Some GNULIB base64 symbols clash with a kerberos library
889 AC_DEFINE_UNQUOTED([isbase64],[libvirt_gl_isbase64],[Hack to avoid symbol clash])
890 AC_DEFINE_UNQUOTED([base64_encode],[libvirt_gl_base64_encode],[Hack to avoid symbol clash])
891 AC_DEFINE_UNQUOTED([base64_encode_alloc],[libvirt_gl_base64_encode_alloc],[Hack to avoid symbol clash])
893 AC_CONFIG_FILES([run],
896 Makefile src/Makefile include/libvirt/Makefile docs/Makefile \
897 gnulib/lib/Makefile \
898 gnulib/tests/Makefile \
906 src/libvirt-qemu.pc \
908 libvirt.spec mingw-libvirt.spec \
910 include/libvirt/libvirt-common.h \
917 AC_MSG_NOTICE([Configuration summary])
918 AC_MSG_NOTICE([=====================])
920 AC_MSG_NOTICE([Drivers])
922 LIBVIRT_DRIVER_RESULT_QEMU
923 LIBVIRT_DRIVER_RESULT_OPENVZ
924 LIBVIRT_DRIVER_RESULT_VMWARE
925 LIBVIRT_DRIVER_RESULT_VBOX
926 LIBVIRT_DRIVER_RESULT_XENAPI
927 LIBVIRT_DRIVER_RESULT_LIBXL
928 LIBVIRT_DRIVER_RESULT_LXC
929 LIBVIRT_DRIVER_RESULT_PHYP
930 LIBVIRT_DRIVER_RESULT_ESX
931 LIBVIRT_DRIVER_RESULT_HYPERV
932 LIBVIRT_DRIVER_RESULT_VZ
933 LIBVIRT_DRIVER_RESULT_BHYVE
934 LIBVIRT_DRIVER_RESULT_TEST
935 LIBVIRT_DRIVER_RESULT_REMOTE
936 LIBVIRT_DRIVER_RESULT_NETWORK
937 LIBVIRT_DRIVER_RESULT_LIBVIRTD
938 LIBVIRT_DRIVER_RESULT_INTERFACE
940 AC_MSG_NOTICE([Storage Drivers])
942 LIBVIRT_STORAGE_RESULT_DIR
943 LIBVIRT_STORAGE_RESULT_FS
944 LIBVIRT_STORAGE_RESULT_LVM
945 LIBVIRT_STORAGE_RESULT_ISCSI
946 LIBVIRT_STORAGE_RESULT_ISCSI_DIRECT
947 LIBVIRT_STORAGE_RESULT_SCSI
948 LIBVIRT_STORAGE_RESULT_MPATH
949 LIBVIRT_STORAGE_RESULT_DISK
950 LIBVIRT_STORAGE_RESULT_RBD
951 LIBVIRT_STORAGE_RESULT_SHEEPDOG
952 LIBVIRT_STORAGE_RESULT_GLUSTER
953 LIBVIRT_STORAGE_RESULT_ZFS
954 LIBVIRT_STORAGE_RESULT_VSTORAGE
956 AC_MSG_NOTICE([Security Drivers])
958 LIBVIRT_SECDRIVER_RESULT_SELINUX
959 LIBVIRT_SECDRIVER_RESULT_APPARMOR
961 AC_MSG_NOTICE([Driver Loadable Modules])
963 LIBVIRT_RESULT_DRIVER_MODULES
965 AC_MSG_NOTICE([Libraries])
968 LIBVIRT_RESULT_APPARMOR
971 LIBVIRT_RESULT_BASH_COMPLETION
976 LIBVIRT_RESULT_DLOPEN
977 LIBVIRT_RESULT_FIREWALLD
978 LIBVIRT_RESULT_FIREWALLD_ZONE
980 LIBVIRT_RESULT_GLUSTER
981 LIBVIRT_RESULT_GNUTLS
983 LIBVIRT_RESULT_LIBISCSI
985 LIBVIRT_RESULT_LIBPCAP
986 LIBVIRT_RESULT_LIBSSH
988 LIBVIRT_RESULT_LIBXML
989 LIBVIRT_RESULT_MACVTAP
993 LIBVIRT_RESULT_NUMACTL
994 LIBVIRT_RESULT_OPENWSMAN
995 LIBVIRT_RESULT_PCIACCESS
996 LIBVIRT_RESULT_PM_UTILS
997 LIBVIRT_RESULT_POLKIT
999 LIBVIRT_RESULT_READLINE
1000 LIBVIRT_RESULT_SANLOCK
1002 LIBVIRT_RESULT_SELINUX
1005 LIBVIRT_RESULT_VIRTUALPORT
1007 LIBVIRT_RESULT_XENAPI
1010 AC_MSG_NOTICE([Windows])
1012 LIBVIRT_WIN_RESULT_COMMON
1013 LIBVIRT_WIN_RESULT_WINDRES
1015 AC_MSG_NOTICE([Test suite])
1017 AC_MSG_NOTICE([ Alloc OOM: $enable_test_oom])
1019 AC_MSG_NOTICE([Miscellaneous])
1021 LIBVIRT_RESULT_DEBUG
1022 AC_MSG_NOTICE([ Use -Werror: $enable_werror])
1023 AC_MSG_NOTICE([ Warning Flags: $WARN_CFLAGS])
1024 LIBVIRT_RESULT_DTRACE
1025 LIBVIRT_RESULT_NUMAD
1026 LIBVIRT_RESULT_INIT_SCRIPT
1027 LIBVIRT_RESULT_CHRDEV_LOCK_FILES
1028 LIBVIRT_RESULT_DEFAULT_EDITOR
1029 LIBVIRT_RESULT_LOADER_NVRAM
1030 LIBVIRT_RESULT_LOGIN_SHELL
1031 LIBVIRT_RESULT_HOST_VALIDATE
1032 LIBVIRT_RESULT_TLS_PRIORITY
1034 AC_MSG_NOTICE([Developer Tools])
1036 LIBVIRT_RESULT_WIRESHARK
1038 AC_MSG_NOTICE([Privileges])
1040 LIBVIRT_RESULT_QEMU_PRIVILEGES