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.7.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])
516 dnl check for kernel headers required by src/bridge.c
518 if test "$with_linux" = "yes"; then
519 # Various kernel versions have headers that are not self-standing, but
520 # yet are incompatible with the corresponding glibc headers. In order
521 # to guarantee compilation across a wide range of versions (from RHEL 5
522 # to rawhide), we first have to probe whether glibc and kernel can be
523 # used in tandem; and if not, provide workarounds that ensure that
524 # ABI-compatible IPv6 types are present for use by the kernel headers.
525 # These probes mirror the usage in virnetdevbridge.c
527 [whether <linux/*.h> and <netinet/*.h> headers are compatible],
528 [lv_cv_netinet_linux_compatible],
529 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
530 #include <netinet/in.h>
531 #include <linux/in6.h>
533 [lv_cv_netinet_linux_compatible=yes],
534 [lv_cv_netinet_linux_compatible=no])])
535 if test "x$lv_cv_netinet_linux_compatible" != xyes; then
536 AC_DEFINE([NETINET_LINUX_WORKAROUND], [1],
537 [define to 1 if Linux kernel headers require a workaround to avoid
538 compilation errors when mixed with glibc netinet headers])
540 AC_CHECK_HEADERS([linux/param.h linux/sockios.h linux/if_bridge.h linux/if_tun.h],,
541 [AC_MSG_ERROR([You must install kernel-headers in order to compile libvirt with QEMU or LXC support])],
542 [[#include <netinet/in.h>
543 #if NETINET_LINUX_WORKAROUND
544 # define in6_addr in6_addr_
545 # define sockaddr_in6 sockaddr_in6_
546 # define ipv6_mreq ipv6_mreq_
547 # define in6addr_any in6addr_any_
548 # define in6addr_loopback in6addr_loopback_
550 #include <linux/in6.h>
555 dnl Need to test if pkg-config exists
559 dnl Security driver checks
560 LIBVIRT_SECDRIVER_ARG_SELINUX
561 LIBVIRT_SECDRIVER_ARG_APPARMOR
563 LIBVIRT_SECDRIVER_CHECK_SELINUX
564 LIBVIRT_SECDRIVER_CHECK_APPARMOR
567 LIBVIRT_ARG_WITH_FEATURE([SECRETS], [local secrets management driver], [yes])
569 if test "$with_libvirtd" = "no"; then
572 if test "$with_secrets" = "yes" ; then
573 AC_DEFINE_UNQUOTED([WITH_SECRETS], 1, [whether local secrets management driver is available])
575 AM_CONDITIONAL([WITH_SECRETS], [test "$with_secrets" = "yes"])
579 dnl Storage driver checks
582 LIBVIRT_STORAGE_ARG_DIR
583 LIBVIRT_STORAGE_ARG_FS
584 LIBVIRT_STORAGE_ARG_LVM
585 LIBVIRT_STORAGE_ARG_ISCSI
586 LIBVIRT_STORAGE_ARG_ISCSI_DIRECT
587 LIBVIRT_STORAGE_ARG_SCSI
588 LIBVIRT_STORAGE_ARG_MPATH
589 LIBVIRT_STORAGE_ARG_DISK
590 LIBVIRT_STORAGE_ARG_RBD
591 LIBVIRT_STORAGE_ARG_SHEEPDOG
592 LIBVIRT_STORAGE_ARG_GLUSTER
593 LIBVIRT_STORAGE_ARG_ZFS
594 LIBVIRT_STORAGE_ARG_VSTORAGE
596 if test "$with_libvirtd" = "no"; then
600 with_storage_iscsi=no
601 with_storage_iscsi_direct=no
603 with_storage_mpath=no
606 with_storage_sheepdog=no
607 with_storage_gluster=no
609 with_storage_vstorage=no
612 dnl storage-fs does not work on macOS
614 if test "$with_macos" = "yes"; then
618 LIBVIRT_STORAGE_CHECK_DIR
619 LIBVIRT_STORAGE_CHECK_FS
620 LIBVIRT_STORAGE_CHECK_LVM
621 LIBVIRT_STORAGE_CHECK_ISCSI
622 LIBVIRT_STORAGE_CHECK_ISCSI_DIRECT
623 LIBVIRT_STORAGE_CHECK_SCSI
624 LIBVIRT_STORAGE_CHECK_MPATH
625 LIBVIRT_STORAGE_CHECK_DISK
626 LIBVIRT_STORAGE_CHECK_RBD
627 LIBVIRT_STORAGE_CHECK_SHEEPDOG
628 LIBVIRT_STORAGE_CHECK_GLUSTER
629 LIBVIRT_STORAGE_CHECK_ZFS
630 LIBVIRT_STORAGE_CHECK_VSTORAGE
633 for backend in dir fs lvm iscsi iscsi_direct scsi mpath rbd disk; do
634 if eval test \$with_storage_$backend = yes; then
639 if test $with_storage = yes; then
640 AC_DEFINE([WITH_STORAGE], [1],
641 [Define to 1 if at least one storage backend is in use])
643 AM_CONDITIONAL([WITH_STORAGE], [test "$with_storage" = "yes"])
646 dnl check for kernel headers required by btrfs ioctl
648 if test "$with_linux" = "yes"; then
649 AC_CHECK_HEADERS([linux/btrfs.h])
653 dnl check for xfs dev headers required by xfs ioctl
655 if test "$with_linux" = "yes"; then
656 AC_CHECK_HEADERS([xfs/xfs.h])
660 dnl check for DEVLINK_CMD_ESWITCH_GET
662 dnl Assume DEVLINK_ESWITCH_MODE_SWITCHDEV is also
663 dnl available, as it was introudced in kernel 4.8
664 dnl along with the original spelling of this constant
665 dnl (DEVLINK_CMD_ESWITCH_MODE_GET, not supported by libvirt)
667 if test "$with_linux" = "yes"; then
668 AC_CHECK_HEADERS([linux/devlink.h])
669 AC_CHECK_DECLS([DEVLINK_CMD_ESWITCH_GET], [], [],
670 [[#include <linux/devlink.h>]])
674 dnl check for VHOST_VSOCK_SET_GUEST_CID
676 if test "$with_linux" = "yes"; then
677 AC_CHECK_DECLS([VHOST_VSOCK_SET_GUEST_CID], [], [],
678 [[#include <linux/vhost.h>]])
681 dnl Allow perl/python overrides
682 AC_PATH_PROGS([PYTHON], [python3 python2 python])
683 if test -z "$PYTHON"; then
684 AC_MSG_ERROR(['python3', 'python2' or 'python' binary is required to build libvirt])
686 AC_PATH_PROG([PERL], [perl])
687 if test -z "$PERL"; then
688 AC_MSG_ERROR(['perl' binary is required to build libvirt])
691 LIBVIRT_ARG_WITH([TEST_SUITE], [build test suite by default], [check])
692 case "$with_test_suite" in
694 *) AC_MSG_ERROR([bad value ${withval} for tests option]) ;;
697 AC_MSG_CHECKING([Whether to build test suite by default])
698 if test "$with_test_suite" = "check" ; then
699 if test -d $srcdir/.git ; then
705 AC_MSG_RESULT([$with_test_suite])
706 AM_CONDITIONAL([WITH_TESTS], [test "$with_test_suite" = "yes"])
708 LIBVIRT_ARG_ENABLE([EXPENSIVE_TESTS],
709 [set the default for enabling expensive tests ]
710 [(gnulib and long timeouts), use VIR_TEST_EXPENSIVE to ]
711 [override during make],
713 case "$enable_expensive_tests" in
714 0|no) VIR_TEST_EXPENSIVE_DEFAULT=0 ;;
715 1|yes) VIR_TEST_EXPENSIVE_DEFAULT=1 ;;
717 *) AC_MSG_ERROR([bad value ${enable_expensive_tests} for enable-expensive-tests option]) ;;
719 if test "$enable_expensive_tests" = check; then
720 if test -d $srcdir/.git ; then
721 VIR_TEST_EXPENSIVE_DEFAULT=0
723 VIR_TEST_EXPENSIVE_DEFAULT=1
726 AC_SUBST([VIR_TEST_EXPENSIVE_DEFAULT])
727 AM_CONDITIONAL([WITH_EXPENSIVE_TESTS], [test $VIR_TEST_EXPENSIVE_DEFAULT = 1])
729 LIBVIRT_ARG_ENABLE([TEST_COVERAGE], [turn on code coverage instrumentation], [no])
730 case "$enable_test_coverage" in
732 *) AC_MSG_ERROR([bad value ${enable_test_coverga} for test-coverage option]) ;;
735 if test "$enable_test_coverage" = yes; then
736 save_WARN_CFLAGS=$WARN_CFLAGS
738 gl_WARN_ADD([-fprofile-arcs])
739 gl_WARN_ADD([-ftest-coverage])
740 COVERAGE_FLAGS=$WARN_CFLAGS
741 AC_SUBST([COVERAGE_CFLAGS], [$COVERAGE_FLAGS])
742 AC_SUBST([COVERAGE_LDFLAGS], [$COVERAGE_FLAGS])
743 WARN_CFLAGS=$save_WARN_CFLAGS
746 LIBVIRT_ARG_ENABLE([TEST_OOM], [memory allocation failure checking], [no])
747 case "$enable_test_oom" in
749 *) AC_MSG_ERROR([bad value ${enable_test_oom} for test-oom option]) ;;
752 if test "$enable_test_oom" = yes; then
754 AC_CHECK_HEADER([execinfo.h],[],[have_trace=no])
755 AC_CHECK_FUNC([backtrace],[],[have_trace=no])
756 if test "$have_trace" = "yes"; then
757 AC_DEFINE([TEST_OOM_TRACE], 1, [Whether backtrace() is available])
759 AC_DEFINE([TEST_OOM], 1, [Whether malloc OOM checking is enabled])
762 LIBVIRT_ARG_ENABLE([TEST_LOCKING], [thread locking tests using CIL], [no])
763 case "$enable_test_locking" in
765 *) AC_MSG_ERROR([bad value ${enable_test_locking} for test-locking option]) ;;
768 if test "$enable_test_locking" = "yes"; then
769 LOCK_CHECKING_CFLAGS="-save-temps"
770 AC_SUBST([LOCK_CHECKING_CFLAGS])
772 AM_CONDITIONAL([WITH_CIL],[test "$enable_test_locking" = "yes"])
774 dnl Cygwin, MinGW and MSVC checks
775 LIBVIRT_WIN_CHECK_COMMON
776 LIBVIRT_WIN_CHECK_CYGWIN
777 LIBVIRT_WIN_CHECK_MINGW
778 LIBVIRT_WIN_CHECK_SYMBOLS
779 LIBVIRT_WIN_CHECK_WINDRES
782 dnl Driver-Modules library support
783 LIBVIRT_ARG_DRIVER_MODULES
784 LIBVIRT_CHECK_DRIVER_MODULES
787 # Set LV_LIBTOOL_OBJDIR to "." or $lt_cv_objdir, depending on whether
788 # we're building shared libraries. This is the name of the directory
789 # in which .o files will be created.
790 test "$enable_shared" = no && lt_cv_objdir=.
791 LV_LIBTOOL_OBJDIR=${lt_cv_objdir-.}
792 AC_SUBST([LV_LIBTOOL_OBJDIR])
796 if test "$with_hal" = "yes" || test "$with_udev" = "yes";
799 AC_DEFINE_UNQUOTED([WITH_NODE_DEVICES], 1, [with node device driver])
801 AM_CONDITIONAL([WITH_NODE_DEVICES], [test "$with_nodedev" = "yes"])
803 dnl GET_VLAN_VID_CMD is required for virNetDevGetVLanID
804 AC_CHECK_DECLS([GET_VLAN_VID_CMD], [], [], [[#include <linux/if_vlan.h>]])
806 # Check for Linux vs. BSD ifreq members
807 AC_CHECK_MEMBERS([struct ifreq.ifr_newname,
808 struct ifreq.ifr_ifindex,
809 struct ifreq.ifr_index,
810 struct ifreq.ifr_hwaddr],
812 [#include <sys/socket.h>
816 # Check for BSD approach for setting MAC addr
817 AC_LINK_IFELSE([AC_LANG_PROGRAM(
819 #include <sys/types.h>
820 #include <sys/socket.h>
821 #include <net/if_dl.h>
825 [AC_DEFINE([HAVE_DECL_LINK_ADDR],
827 [whether link_addr is available])])
829 # Check for BSD approach for bridge management
830 AC_CHECK_DECLS([BRDGSFD, BRDGADD, BRDGDEL],
831 [AC_DEFINE([HAVE_BSD_BRIDGE_MGMT],
833 [whether BSD style bridge management is available])],
837 #include <net/ethernet.h>
838 #include <net/if_bridgevar.h>
841 # Check for BSD CPU affinity availability
842 AC_CHECK_DECLS([cpuset_getaffinity],
843 [AC_DEFINE([HAVE_BSD_CPU_AFFINITY],
845 [whether BSD CPU affinity management is available])],
847 [#include <sys/param.h>
848 #include <sys/cpuset.h>
851 # Check for BSD kvm (kernel memory interface)
852 if test $with_freebsd = yes; then
853 AC_CHECK_LIB([kvm], [kvm_getprocs], [],
854 [AC_MSG_ERROR([BSD kernel memory interface library is required to build on FreeBSD])]
858 # FreeBSD 10-STABLE requires _IFI_OQDROPS to be defined for if_data.ifi_oqdrops
861 CFLAGS="$CFLAGS -D_IFI_OQDROPS"
863 AC_CHECK_MEMBERS([struct if_data.ifi_oqdrops],
865 [CFLAGS="$old_CFLAGS"],
869 AC_CHECK_DECLS([clock_serv_t, host_get_clock_service, clock_get_time],
870 [AC_DEFINE([HAVE_MACH_CLOCK_ROUTINES],
872 [whether Mach clock routines are available])],
874 [#include <mach/clock.h>
875 #include <mach/mach.h>
878 # Check if we need to look for ifconfig
879 if test "$want_ifconfig" = "yes"; then
880 AC_PATH_PROG([IFCONFIG_PATH], [ifconfig])
881 if test -z "$IFCONFIG_PATH"; then
882 AC_MSG_ERROR([Failed to find ifconfig.])
884 AC_DEFINE_UNQUOTED([IFCONFIG_PATH], "$IFCONFIG_PATH", [path to ifconfig binary])
887 # Detect when running under the clang static analyzer's scan-build driver
888 # or Coverity-prevent's cov-build. Define STATIC_ANALYSIS accordingly.
889 AC_CACHE_CHECK([whether this build is done by a static analysis tool],
890 [lv_cv_static_analysis], [
891 lv_cv_static_analysis=no
892 if test -n "${CCC_ANALYZER_ANALYSIS+set}" || \
893 test -n "$COVERITY_BUILD_COMMAND$COVERITY_LD_PRELOAD"; then
894 lv_cv_static_analysis=yes
898 test "x$lv_cv_static_analysis" = xyes && t=1
899 AC_DEFINE_UNQUOTED([STATIC_ANALYSIS], [$t],
900 [Define to 1 when performing static analysis.])
902 # Some GNULIB base64 symbols clash with a kerberos library
903 AC_DEFINE_UNQUOTED([isbase64],[libvirt_gl_isbase64],[Hack to avoid symbol clash])
904 AC_DEFINE_UNQUOTED([base64_encode],[libvirt_gl_base64_encode],[Hack to avoid symbol clash])
905 AC_DEFINE_UNQUOTED([base64_encode_alloc],[libvirt_gl_base64_encode_alloc],[Hack to avoid symbol clash])
907 AC_CONFIG_FILES([run],
910 Makefile src/Makefile include/libvirt/Makefile docs/Makefile \
911 gnulib/lib/Makefile \
912 gnulib/tests/Makefile \
920 src/libvirt-qemu.pc \
922 libvirt.spec mingw-libvirt.spec \
924 include/libvirt/libvirt-common.h \
931 AC_MSG_NOTICE([Configuration summary])
932 AC_MSG_NOTICE([=====================])
934 AC_MSG_NOTICE([Drivers])
936 LIBVIRT_DRIVER_RESULT_QEMU
937 LIBVIRT_DRIVER_RESULT_OPENVZ
938 LIBVIRT_DRIVER_RESULT_VMWARE
939 LIBVIRT_DRIVER_RESULT_VBOX
940 LIBVIRT_DRIVER_RESULT_XENAPI
941 LIBVIRT_DRIVER_RESULT_LIBXL
942 LIBVIRT_DRIVER_RESULT_LXC
943 LIBVIRT_DRIVER_RESULT_PHYP
944 LIBVIRT_DRIVER_RESULT_ESX
945 LIBVIRT_DRIVER_RESULT_HYPERV
946 LIBVIRT_DRIVER_RESULT_VZ
947 LIBVIRT_DRIVER_RESULT_BHYVE
948 LIBVIRT_DRIVER_RESULT_TEST
949 LIBVIRT_DRIVER_RESULT_REMOTE
950 LIBVIRT_DRIVER_RESULT_NETWORK
951 LIBVIRT_DRIVER_RESULT_LIBVIRTD
952 LIBVIRT_DRIVER_RESULT_INTERFACE
954 AC_MSG_NOTICE([Storage Drivers])
956 LIBVIRT_STORAGE_RESULT_DIR
957 LIBVIRT_STORAGE_RESULT_FS
958 LIBVIRT_STORAGE_RESULT_LVM
959 LIBVIRT_STORAGE_RESULT_ISCSI
960 LIBVIRT_STORAGE_RESULT_ISCSI_DIRECT
961 LIBVIRT_STORAGE_RESULT_SCSI
962 LIBVIRT_STORAGE_RESULT_MPATH
963 LIBVIRT_STORAGE_RESULT_DISK
964 LIBVIRT_STORAGE_RESULT_RBD
965 LIBVIRT_STORAGE_RESULT_SHEEPDOG
966 LIBVIRT_STORAGE_RESULT_GLUSTER
967 LIBVIRT_STORAGE_RESULT_ZFS
968 LIBVIRT_STORAGE_RESULT_VSTORAGE
970 AC_MSG_NOTICE([Security Drivers])
972 LIBVIRT_SECDRIVER_RESULT_SELINUX
973 LIBVIRT_SECDRIVER_RESULT_APPARMOR
975 AC_MSG_NOTICE([Driver Loadable Modules])
977 LIBVIRT_RESULT_DRIVER_MODULES
979 AC_MSG_NOTICE([Libraries])
982 LIBVIRT_RESULT_APPARMOR
985 LIBVIRT_RESULT_BASH_COMPLETION
990 LIBVIRT_RESULT_DLOPEN
991 LIBVIRT_RESULT_FIREWALLD
992 LIBVIRT_RESULT_FIREWALLD_ZONE
994 LIBVIRT_RESULT_GLUSTER
995 LIBVIRT_RESULT_GNUTLS
997 LIBVIRT_RESULT_LIBISCSI
999 LIBVIRT_RESULT_LIBPCAP
1000 LIBVIRT_RESULT_LIBSSH
1001 LIBVIRT_RESULT_LIBXL
1002 LIBVIRT_RESULT_LIBXML
1003 LIBVIRT_RESULT_MACVTAP
1004 LIBVIRT_RESULT_NETCF
1007 LIBVIRT_RESULT_NUMACTL
1008 LIBVIRT_RESULT_OPENWSMAN
1009 LIBVIRT_RESULT_PCIACCESS
1010 LIBVIRT_RESULT_PM_UTILS
1011 LIBVIRT_RESULT_POLKIT
1013 LIBVIRT_RESULT_READLINE
1014 LIBVIRT_RESULT_SANLOCK
1016 LIBVIRT_RESULT_SELINUX
1019 LIBVIRT_RESULT_VIRTUALPORT
1021 LIBVIRT_RESULT_XENAPI
1024 AC_MSG_NOTICE([Windows])
1026 LIBVIRT_WIN_RESULT_COMMON
1027 LIBVIRT_WIN_RESULT_WINDRES
1029 AC_MSG_NOTICE([Test suite])
1031 AC_MSG_NOTICE([ Coverage: $enable_test_coverage])
1032 AC_MSG_NOTICE([ Alloc OOM: $enable_test_oom])
1034 AC_MSG_NOTICE([Miscellaneous])
1036 LIBVIRT_RESULT_DEBUG
1037 AC_MSG_NOTICE([ Use -Werror: $enable_werror])
1038 AC_MSG_NOTICE([ Warning Flags: $WARN_CFLAGS])
1039 LIBVIRT_RESULT_DTRACE
1040 LIBVIRT_RESULT_NUMAD
1041 LIBVIRT_RESULT_INIT_SCRIPT
1042 LIBVIRT_RESULT_CHRDEV_LOCK_FILES
1043 LIBVIRT_RESULT_DEFAULT_EDITOR
1044 LIBVIRT_RESULT_LOADER_NVRAM
1045 LIBVIRT_RESULT_LOGIN_SHELL
1046 LIBVIRT_RESULT_HOST_VALIDATE
1047 LIBVIRT_RESULT_TLS_PRIORITY
1049 AC_MSG_NOTICE([Developer Tools])
1051 LIBVIRT_RESULT_WIRESHARK
1053 AC_MSG_NOTICE([Privileges])
1055 LIBVIRT_RESULT_QEMU_PRIVILEGES