2005-11-02 20:50:21 +08:00
|
|
|
dnl Process this file with autoconf to produce a configure script.
|
2007-09-19 07:46:18 +08:00
|
|
|
|
2015-01-08 22:36:54 +08:00
|
|
|
dnl Copyright (C) 2005-2015 Red Hat, Inc.
|
2013-05-15 07:42:12 +08:00
|
|
|
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 <http://www.gnu.org/licenses/>.
|
2011-07-29 02:56:24 +08:00
|
|
|
|
2016-12-05 15:47:50 +08:00
|
|
|
AC_INIT([libvirt], [3.0.0], [libvir-list@redhat.com], [], [http://libvirt.org])
|
2008-05-22 23:34:02 +08:00
|
|
|
AC_CONFIG_SRCDIR([src/libvirt.c])
|
|
|
|
AC_CONFIG_AUX_DIR([build-aux])
|
2010-01-25 23:00:43 +08:00
|
|
|
AC_CONFIG_HEADERS([config.h])
|
2013-10-10 20:09:08 +08:00
|
|
|
AH_BOTTOM([#include <config-post.h>])
|
2010-02-17 21:45:10 +08:00
|
|
|
AC_CONFIG_MACRO_DIR([m4])
|
2013-09-05 00:26:30 +08:00
|
|
|
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
|
2016-06-15 19:19:32 +08:00
|
|
|
AM_INIT_AUTOMAKE([-Wno-portability -Wno-obsolete tar-pax no-dist-gzip dist-xz subdir-objects])
|
2015-06-02 23:17:43 +08:00
|
|
|
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}"])
|
2009-07-08 17:51:59 +08:00
|
|
|
|
2011-02-12 03:43:05 +08:00
|
|
|
# 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
|
|
|
|
|
2013-09-05 00:26:30 +08:00
|
|
|
# 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])
|
2009-07-08 17:51:59 +08:00
|
|
|
|
2005-11-02 20:50:21 +08:00
|
|
|
AC_CANONICAL_HOST
|
|
|
|
|
2012-08-11 01:39:41 +08:00
|
|
|
# First extract pieces from the version number string
|
2008-03-31 20:13:52 +08:00
|
|
|
LIBVIRT_MAJOR_VERSION=`echo $VERSION | awk -F. '{print $1}'`
|
|
|
|
LIBVIRT_MINOR_VERSION=`echo $VERSION | awk -F. '{print $2}'`
|
|
|
|
LIBVIRT_MICRO_VERSION=`echo $VERSION | awk -F. '{print $3}'`
|
2006-02-15 21:21:17 +08:00
|
|
|
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`
|
2005-11-02 20:50:21 +08:00
|
|
|
|
2012-08-11 01:39:41 +08:00
|
|
|
# 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
|
|
|
|
|
2008-05-22 23:34:02 +08:00
|
|
|
AC_SUBST([LIBVIRT_MAJOR_VERSION])
|
|
|
|
AC_SUBST([LIBVIRT_MINOR_VERSION])
|
|
|
|
AC_SUBST([LIBVIRT_MICRO_VERSION])
|
2012-08-11 01:39:41 +08:00
|
|
|
AC_SUBST([LIBVIRT_SONUM])
|
2008-05-22 23:34:02 +08:00
|
|
|
AC_SUBST([LIBVIRT_VERSION])
|
|
|
|
AC_SUBST([LIBVIRT_VERSION_INFO])
|
|
|
|
AC_SUBST([LIBVIRT_VERSION_NUMBER])
|
2005-11-02 20:50:21 +08:00
|
|
|
|
2016-11-14 22:25:41 +08:00
|
|
|
LIBVIRT_ARG_WITH_ALT([PACKAGER], [Extra packager name], [no])
|
|
|
|
LIBVIRT_ARG_WITH_ALT([PACKAGER_VERSION], [Extra packager version], [no])
|
Imprint all logs with version + package build information
The logging functions are enhanced so that immediately prior to
the first log message being printed to any output channel, the
libvirt package version will be printed.
eg
$ LIBVIRT_DEBUG=1 virsh
18:13:28.013: 17536: info : libvirt version: 0.8.7
18:13:28.013: 17536: debug : virInitialize:361 : register drivers
...
The 'configure' script gains two new arguments which can be
used as
--with-packager="Fedora Project, x86-01.phx2.fedoraproject.org, 01-27-2011-18:00:10"
--with-packager-version="1.fc14"
to allow distros to append a custom string with package specific
data.
The RPM specfile is modified so that it appends the RPM version,
the build host, the build date and the packager name.
eg
$ LIBVIRT_DEBUG=1 virsh
18:14:52.086: 17551: info : libvirt version: 0.8.7, package: 1.fc13 (Fedora Project, x86-01.phx2.fedoraproject.org, 01-27-2011-18:00:10)
18:14:52.086: 17551: debug : virInitialize:361 : register drivers
Thus when distro packagers receive bug reports they can clearly
see what version was in use, even if the bug reporter mistakenly
or intentionally lies about version/builds
* src/util/logging.c: Output version data prior to first log message
* libvirt.spec.in: Include RPM release, date, hostname & packager
* configure.ac: Add --with-packager & --with-packager-version args
2011-01-28 02:11:16 +08:00
|
|
|
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
|
|
|
|
|
2016-11-12 21:24:53 +08:00
|
|
|
dnl Where we look for daemons and admin binaries during configure
|
|
|
|
LIBVIRT_SBIN_PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin"
|
2007-09-19 09:56:55 +08:00
|
|
|
|
2007-11-30 01:41:57 +08:00
|
|
|
dnl Checks for C compiler.
|
2005-11-02 21:19:10 +08:00
|
|
|
AC_PROG_CC
|
|
|
|
AC_PROG_INSTALL
|
|
|
|
AC_PROG_CPP
|
2007-09-21 02:40:36 +08:00
|
|
|
|
2013-01-03 02:10:42 +08:00
|
|
|
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
|
|
|
|
|
Use gnulib, starting with its physmem and getaddrinfo modules.
New files go into these directories:
gnulib/lib
gnulib/m4
gnulib/tests
* bootstrap: A wrapper around gnulib-tool.
* configure.in: Invoke gl_EARLY and gl_INIT, being careful to put gl_EARLY
before any macro that uses AC_COMPILE_IFELSE.
(AC_OUTPUT): Add lib/Makefile and gl-tests/Makefile. Remove m4/Makefile.
* Makefile.am (SUBDIRS): Add gnulib/lib and remove m4. Add gnulib/tests
early enough that those tests run before any libvirt unit tests.
* m4/Makefile.am: Remove file. Not needed.
* src/Makefile.am (INCLUDES): Add -I$(top_srcdir)/gnulib/lib -I../gnulib/lib.
(LDADDS, libvirt_la_LIBADD): Add ../gnulib/lib/libgnu.la.
* src/nodeinfo.c: Include "physmem.h".
* qemud/qemud.c, src/remote_internal.c: Include "getaddrinfo.h".
(MEMINFO_PATH, linuxNodeInfoMemPopulate): Remove definitions.
(virNodeInfoPopulate): Use physmem_total, not linuxNodeInfoMemPopulate.
* tests/Makefile.am (INCLUDES): Add -I$(top_srcdir)/gnulib/lib -I../gnulib/lib.
(LDADDS): Add ../gnulib/lib/libgnu.la.
* qemud/Makefile.am (libvirtd_LDADD): Add ../gnulib/lib/libgnu.la.
* tests/nodeinfotest.c (linuxTestCompareFiles): No longer read total
memory from a file.
Update expected output not to include "Memory: NNNN"
* tests/nodeinfodata/linux-nodeinfo-1.txt:
* tests/nodeinfodata/linux-nodeinfo-2.txt:
* tests/nodeinfodata/linux-nodeinfo-3.txt:
* tests/nodeinfodata/linux-nodeinfo-4.txt:
* tests/nodeinfodata/linux-nodeinfo-5.txt:
* tests/nodeinfodata/linux-nodeinfo-6.txt:
* src/test.c [WITH_TEST]: Remove definition of _GNU_SOURCE that
would conflict with the one now in "config.h".
* autogen.sh: Add -I gnulib/m4.
* src/conf.c, src/sexpr.c: Don't define _GNU_SOURCE.
Instead, include "config.h".
* qemud/qemud.c: Remove definition of _GNU_SOURCE.
* src/openvz_driver.c: Likewise.
* src/qemu_driver.c: Likewise.
* src/remote_internal.c: Likewise.
* configure.in: Use AC_CONFIG_AUX_DIR(build-aux), so that a bunch
of gettextize-generated files go into build-aux/, rather than in
the top-level directory.
* .cvsignore: Adjust.
* build-aux/.cvsignore: New file.
Author: Jim Meyering <meyering@redhat.com>
2007-12-06 05:31:07 +08:00
|
|
|
gl_EARLY
|
|
|
|
gl_INIT
|
|
|
|
|
2010-03-15 09:02:10 +08:00
|
|
|
AC_TYPE_UID_T
|
Use gnulib, starting with its physmem and getaddrinfo modules.
New files go into these directories:
gnulib/lib
gnulib/m4
gnulib/tests
* bootstrap: A wrapper around gnulib-tool.
* configure.in: Invoke gl_EARLY and gl_INIT, being careful to put gl_EARLY
before any macro that uses AC_COMPILE_IFELSE.
(AC_OUTPUT): Add lib/Makefile and gl-tests/Makefile. Remove m4/Makefile.
* Makefile.am (SUBDIRS): Add gnulib/lib and remove m4. Add gnulib/tests
early enough that those tests run before any libvirt unit tests.
* m4/Makefile.am: Remove file. Not needed.
* src/Makefile.am (INCLUDES): Add -I$(top_srcdir)/gnulib/lib -I../gnulib/lib.
(LDADDS, libvirt_la_LIBADD): Add ../gnulib/lib/libgnu.la.
* src/nodeinfo.c: Include "physmem.h".
* qemud/qemud.c, src/remote_internal.c: Include "getaddrinfo.h".
(MEMINFO_PATH, linuxNodeInfoMemPopulate): Remove definitions.
(virNodeInfoPopulate): Use physmem_total, not linuxNodeInfoMemPopulate.
* tests/Makefile.am (INCLUDES): Add -I$(top_srcdir)/gnulib/lib -I../gnulib/lib.
(LDADDS): Add ../gnulib/lib/libgnu.la.
* qemud/Makefile.am (libvirtd_LDADD): Add ../gnulib/lib/libgnu.la.
* tests/nodeinfotest.c (linuxTestCompareFiles): No longer read total
memory from a file.
Update expected output not to include "Memory: NNNN"
* tests/nodeinfodata/linux-nodeinfo-1.txt:
* tests/nodeinfodata/linux-nodeinfo-2.txt:
* tests/nodeinfodata/linux-nodeinfo-3.txt:
* tests/nodeinfodata/linux-nodeinfo-4.txt:
* tests/nodeinfodata/linux-nodeinfo-5.txt:
* tests/nodeinfodata/linux-nodeinfo-6.txt:
* src/test.c [WITH_TEST]: Remove definition of _GNU_SOURCE that
would conflict with the one now in "config.h".
* autogen.sh: Add -I gnulib/m4.
* src/conf.c, src/sexpr.c: Don't define _GNU_SOURCE.
Instead, include "config.h".
* qemud/qemud.c: Remove definition of _GNU_SOURCE.
* src/openvz_driver.c: Likewise.
* src/qemu_driver.c: Likewise.
* src/remote_internal.c: Likewise.
* configure.in: Use AC_CONFIG_AUX_DIR(build-aux), so that a bunch
of gettextize-generated files go into build-aux/, rather than in
the top-level directory.
* .cvsignore: Adjust.
* build-aux/.cvsignore: New file.
Author: Jim Meyering <meyering@redhat.com>
2007-12-06 05:31:07 +08:00
|
|
|
|
2007-11-30 01:41:57 +08:00
|
|
|
dnl Support building Win32 DLLs (must appear *before* AM_PROG_LIBTOOL)
|
|
|
|
AC_LIBTOOL_WIN32_DLL
|
|
|
|
|
2016-04-14 21:11:45 +08:00
|
|
|
AC_HEADER_MAJOR
|
|
|
|
|
2013-04-02 23:52:31 +08:00
|
|
|
m4_ifndef([LT_INIT], [
|
|
|
|
AM_PROG_LIBTOOL
|
|
|
|
], [
|
|
|
|
LT_INIT([shared disable-static])
|
|
|
|
])
|
2007-03-16 01:24:56 +08:00
|
|
|
AM_PROG_CC_C_O
|
2010-04-27 15:43:55 +08:00
|
|
|
AM_PROG_LD
|
2007-03-16 01:24:56 +08:00
|
|
|
|
Prevent crash from dlclose() of libvirt.so
When libvirt calls virInitialize it creates a thread local
for the virErrorPtr storage, and registers a callback to
cleanup memory when a thread exits. When libvirt is dlclose()d
or otherwise made non-resident, the callback function is
removed from memory, but the thread local may still exist
and if a thread later exists, it will invoke the callback
and SEGV. There may also be other thread locals with callbacks
pointing to libvirt code, so it is in general never safe to
unload libvirt.so from memory once initialized.
To allow dlclose() to succeed, but keep libvirt.so resident
in memory, link with '-z nodelete'. This issue was first
found with the libvirt CIM provider, but can potentially
hit many of the dynamic language bindings which all ultimately
involve dlopen() in some way, either on libvirt.so itself,
or on the glue code for the binding which in turns links
to libvirt
* configure.ac, src/Makefile.am: Ensure libvirt.so is linked
with -z nodelete
* cfg.mk, .gitignore, tests/Makefile.am, tests/shunloadhelper.c,
tests/shunloadtest.c: A test case to unload libvirt while
a thread is still running.
2011-09-02 00:57:06 +08:00
|
|
|
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])
|
2016-12-08 21:12:18 +08:00
|
|
|
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
|
Prevent crash from dlclose() of libvirt.so
When libvirt calls virInitialize it creates a thread local
for the virErrorPtr storage, and registers a callback to
cleanup memory when a thread exits. When libvirt is dlclose()d
or otherwise made non-resident, the callback function is
removed from memory, but the thread local may still exist
and if a thread later exists, it will invoke the callback
and SEGV. There may also be other thread locals with callbacks
pointing to libvirt code, so it is in general never safe to
unload libvirt.so from memory once initialized.
To allow dlclose() to succeed, but keep libvirt.so resident
in memory, link with '-z nodelete'. This issue was first
found with the libvirt CIM provider, but can potentially
hit many of the dynamic language bindings which all ultimately
involve dlopen() in some way, either on libvirt.so itself,
or on the glue code for the binding which in turns links
to libvirt
* configure.ac, src/Makefile.am: Ensure libvirt.so is linked
with -z nodelete
* cfg.mk, .gitignore, tests/Makefile.am, tests/shunloadhelper.c,
tests/shunloadtest.c: A test case to unload libvirt while
a thread is still running.
2011-09-02 00:57:06 +08:00
|
|
|
AC_MSG_RESULT([$VERSION_SCRIPT_FLAGS])
|
2016-12-08 21:12:18 +08:00
|
|
|
AC_SUBST([VERSION_SCRIPT_FLAGS])
|
2008-12-18 05:39:41 +08:00
|
|
|
|
2013-09-18 00:25:42 +08:00
|
|
|
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
|
|
|
|
|
2015-10-14 04:47:42 +08:00
|
|
|
with_linux=no with_osx=no with_freebsd=no with_win=no with_cygwin=no
|
2013-09-18 00:25:42 +08:00
|
|
|
case $host in
|
|
|
|
*-*-linux*) with_linux=yes ;;
|
|
|
|
*-*-darwin*) with_osx=yes ;;
|
|
|
|
*-*-freebsd*) with_freebsd=yes ;;
|
2014-04-28 20:30:36 +08:00
|
|
|
*-*-mingw* | *-*-msvc* ) with_win=yes ;;
|
2015-10-14 04:47:42 +08:00
|
|
|
*-*-cygwin*) with_cygwin=yes ;;
|
2013-09-18 00:25:42 +08:00
|
|
|
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
|
2015-10-14 04:47:42 +08:00
|
|
|
want_ifconfig=yes
|
|
|
|
with_firewalld=no
|
|
|
|
fi
|
2013-09-18 00:25:42 +08:00
|
|
|
|
2015-10-14 04:47:42 +08:00
|
|
|
if test $with_cygwin = yes; then
|
|
|
|
with_vbox=no
|
2013-09-18 00:25:42 +08:00
|
|
|
fi
|
|
|
|
|
|
|
|
AM_CONDITIONAL([WITH_LINUX], [test "$with_linux" = "yes"])
|
|
|
|
AM_CONDITIONAL([WITH_FREEBSD], [test "$with_freebsd" = "yes"])
|
|
|
|
|
2014-04-28 20:30:36 +08:00
|
|
|
# We don't support the daemon yet
|
|
|
|
if test "$with_win" = "yes" ; then
|
|
|
|
with_libvirtd=no
|
|
|
|
fi
|
|
|
|
|
2013-09-28 07:09:20 +08:00
|
|
|
# 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
|
2016-11-09 22:28:35 +08:00
|
|
|
with_libssh=no
|
2013-09-28 07:09:20 +08:00
|
|
|
fi
|
|
|
|
# Stateful drivers are useful only when building the daemon.
|
2013-09-18 00:25:42 +08:00
|
|
|
if test "$with_libvirtd" = "no" ; then
|
|
|
|
with_qemu=no
|
2013-09-28 07:09:20 +08:00
|
|
|
with_xen=no
|
|
|
|
with_lxc=no
|
|
|
|
with_libxl=no
|
|
|
|
with_uml=no
|
|
|
|
with_vbox=no
|
2013-09-18 00:25:42 +08:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Check for compiler and library settings.
|
|
|
|
|
2012-03-27 23:47:11 +08:00
|
|
|
LIBVIRT_COMPILE_WARNINGS
|
2013-04-03 18:32:15 +08:00
|
|
|
LIBVIRT_COMPILE_PIE
|
2013-04-03 19:36:32 +08:00
|
|
|
LIBVIRT_LINKER_RELRO
|
2013-08-13 19:49:05 +08:00
|
|
|
LIBVIRT_LINKER_NO_INDIRECT
|
2007-03-02 00:18:55 +08:00
|
|
|
|
2016-12-13 01:11:51 +08:00
|
|
|
LIBVIRT_ARG_APPARMOR
|
|
|
|
LIBVIRT_ARG_ATTR
|
|
|
|
LIBVIRT_ARG_AUDIT
|
|
|
|
LIBVIRT_ARG_AVAHI
|
|
|
|
LIBVIRT_ARG_BLKID
|
|
|
|
LIBVIRT_ARG_CAPNG
|
|
|
|
LIBVIRT_ARG_CURL
|
|
|
|
LIBVIRT_ARG_DBUS
|
2016-12-15 21:56:29 +08:00
|
|
|
LIBVIRT_ARG_FIREWALLD
|
2016-12-13 01:11:51 +08:00
|
|
|
LIBVIRT_ARG_FUSE
|
|
|
|
LIBVIRT_ARG_GLUSTER
|
|
|
|
LIBVIRT_ARG_GNUTLS
|
|
|
|
LIBVIRT_ARG_HAL
|
2016-12-15 21:56:29 +08:00
|
|
|
LIBVIRT_ARG_LIBPCAP
|
2016-12-13 01:11:51 +08:00
|
|
|
LIBVIRT_ARG_LIBSSH
|
2016-12-15 21:56:29 +08:00
|
|
|
LIBVIRT_ARG_LIBXML
|
|
|
|
LIBVIRT_ARG_MACVTAP
|
2016-12-13 01:11:51 +08:00
|
|
|
LIBVIRT_ARG_NETCF
|
|
|
|
LIBVIRT_ARG_NSS
|
|
|
|
LIBVIRT_ARG_NUMACTL
|
|
|
|
LIBVIRT_ARG_OPENWSMAN
|
|
|
|
LIBVIRT_ARG_PCIACCESS
|
2016-12-15 21:56:29 +08:00
|
|
|
LIBVIRT_ARG_PM_UTILS
|
|
|
|
LIBVIRT_ARG_POLKIT
|
2016-12-13 01:11:51 +08:00
|
|
|
LIBVIRT_ARG_READLINE
|
|
|
|
LIBVIRT_ARG_SANLOCK
|
|
|
|
LIBVIRT_ARG_SASL
|
|
|
|
LIBVIRT_ARG_SELINUX
|
|
|
|
LIBVIRT_ARG_SSH2
|
|
|
|
LIBVIRT_ARG_UDEV
|
2016-12-15 21:56:29 +08:00
|
|
|
LIBVIRT_ARG_VIRTUALPORT
|
2016-12-13 01:11:51 +08:00
|
|
|
LIBVIRT_ARG_WIRESHARK
|
|
|
|
LIBVIRT_ARG_YAJL
|
|
|
|
|
2012-09-20 20:28:45 +08:00
|
|
|
LIBVIRT_CHECK_APPARMOR
|
2016-12-15 21:56:29 +08:00
|
|
|
LIBVIRT_CHECK_ATOMIC
|
2012-09-19 21:00:34 +08:00
|
|
|
LIBVIRT_CHECK_ATTR
|
2012-09-20 20:12:40 +08:00
|
|
|
LIBVIRT_CHECK_AUDIT
|
2012-09-20 22:22:09 +08:00
|
|
|
LIBVIRT_CHECK_AVAHI
|
2012-09-20 22:52:14 +08:00
|
|
|
LIBVIRT_CHECK_BLKID
|
2012-09-20 20:58:37 +08:00
|
|
|
LIBVIRT_CHECK_CAPNG
|
2013-01-09 05:31:58 +08:00
|
|
|
LIBVIRT_CHECK_CURL
|
2012-09-20 22:12:08 +08:00
|
|
|
LIBVIRT_CHECK_DBUS
|
2016-12-15 21:56:29 +08:00
|
|
|
LIBVIRT_CHECK_DEVMAPPER
|
|
|
|
LIBVIRT_CHECK_DLOPEN
|
|
|
|
LIBVIRT_CHECK_FIREWALLD
|
2013-01-09 05:06:57 +08:00
|
|
|
LIBVIRT_CHECK_FUSE
|
2013-11-20 07:26:05 +08:00
|
|
|
LIBVIRT_CHECK_GLUSTER
|
2016-11-10 21:33:41 +08:00
|
|
|
LIBVIRT_CHECK_GNUTLS
|
2012-09-20 22:39:12 +08:00
|
|
|
LIBVIRT_CHECK_HAL
|
2016-12-15 21:56:29 +08:00
|
|
|
LIBVIRT_CHECK_LIBNL
|
|
|
|
LIBVIRT_CHECK_LIBPARTED
|
|
|
|
LIBVIRT_CHECK_LIBPCAP
|
2016-11-09 22:28:35 +08:00
|
|
|
LIBVIRT_CHECK_LIBSSH
|
2016-12-15 21:56:29 +08:00
|
|
|
LIBVIRT_CHECK_LIBXML
|
|
|
|
LIBVIRT_CHECK_MACVTAP
|
2012-09-20 22:14:52 +08:00
|
|
|
LIBVIRT_CHECK_NETCF
|
2016-11-10 21:33:41 +08:00
|
|
|
LIBVIRT_CHECK_NSS
|
2012-09-20 20:47:23 +08:00
|
|
|
LIBVIRT_CHECK_NUMACTL
|
2016-12-06 23:00:41 +08:00
|
|
|
LIBVIRT_CHECK_NWFILTER
|
2013-01-09 06:08:53 +08:00
|
|
|
LIBVIRT_CHECK_OPENWSMAN
|
2012-09-20 22:34:13 +08:00
|
|
|
LIBVIRT_CHECK_PCIACCESS
|
2016-12-15 21:56:29 +08:00
|
|
|
LIBVIRT_CHECK_PM_UTILS
|
|
|
|
LIBVIRT_CHECK_POLKIT
|
|
|
|
LIBVIRT_CHECK_PTHREAD
|
2013-05-02 10:54:57 +08:00
|
|
|
LIBVIRT_CHECK_READLINE
|
2012-09-20 20:04:57 +08:00
|
|
|
LIBVIRT_CHECK_SANLOCK
|
2012-09-20 20:06:12 +08:00
|
|
|
LIBVIRT_CHECK_SASL
|
2012-09-20 20:21:48 +08:00
|
|
|
LIBVIRT_CHECK_SELINUX
|
2013-01-09 05:47:55 +08:00
|
|
|
LIBVIRT_CHECK_SSH2
|
2012-09-20 22:34:13 +08:00
|
|
|
LIBVIRT_CHECK_UDEV
|
2016-12-15 21:56:29 +08:00
|
|
|
LIBVIRT_CHECK_VIRTUALPORT
|
2015-03-16 19:52:13 +08:00
|
|
|
LIBVIRT_CHECK_WIRESHARK
|
2016-12-15 21:56:29 +08:00
|
|
|
LIBVIRT_CHECK_XDR
|
2012-09-20 20:03:27 +08:00
|
|
|
LIBVIRT_CHECK_YAJL
|
|
|
|
|
2011-05-30 18:58:57 +08:00
|
|
|
AC_CHECK_SIZEOF([long])
|
Adds CPU selection infrastructure
Each driver supporting CPU selection must fill in host CPU capabilities.
When filling them, drivers for hypervisors running on the same node as
libvirtd can use cpuNodeData() to obtain raw CPU data. Other drivers,
such as VMware, need to implement their own way of getting such data.
Raw data can be decoded into virCPUDefPtr using cpuDecode() function.
When implementing virConnectCompareCPU(), a hypervisor driver can just
call cpuCompareXML() function with host CPU capabilities.
For each guest for which a driver supports selecting CPU models, it must
set the appropriate feature in guest's capabilities:
virCapabilitiesAddGuestFeature(guest, "cpuselection", 1, 0)
Actions needed when a domain is being created depend on whether the
hypervisor understands raw CPU data (currently CPUID for i686, x86_64
architectures) or symbolic names has to be used.
Typical use by hypervisors which prefer CPUID (such as VMware and Xen):
- convert guest CPU configuration from domain's XML into a set of raw
data structures each representing one of the feature policies:
cpuEncode(conn, architecture, guest_cpu_config,
&forced_data, &required_data, &optional_data,
&disabled_data, &forbidden_data)
- create a mask or whatever the hypervisor expects to see and pass it
to the hypervisor
Typical use by hypervisors with symbolic model names (such as QEMU):
- get raw CPU data for a computed guest CPU:
cpuGuestData(conn, host_cpu, guest_cpu_config, &data)
- decode raw data into virCPUDefPtr with a possible restriction on
allowed model names:
cpuDecode(conn, guest, data, n_allowed_models, allowed_models)
- pass guest->model and guest->features to the hypervisor
* src/cpu/cpu.c src/cpu/cpu.h src/cpu/cpu_generic.c
src/cpu/cpu_generic.h src/cpu/cpu_map.c src/cpu/cpu_map.h
src/cpu/cpu_x86.c src/cpu/cpu_x86.h src/cpu/cpu_x86_data.h
* configure.in: check for CPUID instruction
* src/Makefile.am: glue the new files in
* src/libvirt_private.syms: add new private symbols
* po/POTFILES.in: add new cpu files containing translatable strings
2009-12-18 23:02:11 +08:00
|
|
|
|
2010-12-24 10:26:15 +08:00
|
|
|
dnl Availability of various common functions (non-fatal if missing),
|
|
|
|
dnl and various less common threadsafe functions
|
2013-10-01 00:57:35 +08:00
|
|
|
AC_CHECK_FUNCS_ONCE([cfmakeraw fallocate geteuid getgid getgrnam_r \
|
2015-11-21 00:06:41 +08:00
|
|
|
getmntent_r getpwuid_r getrlimit getuid kill mmap newlocale posix_fallocate \
|
2013-10-01 00:57:35 +08:00
|
|
|
posix_memalign prlimit regexec sched_getaffinity setgroups setns \
|
2016-11-10 21:55:48 +08:00
|
|
|
setrlimit symlink sysctlbyname getifaddrs sched_setscheduler unshare])
|
2010-04-29 10:39:11 +08:00
|
|
|
|
2007-06-15 23:24:20 +08:00
|
|
|
dnl Availability of various common headers (non-fatal if missing).
|
2016-03-17 18:44:01 +08:00
|
|
|
AC_CHECK_HEADERS([pwd.h regex.h sys/un.h \
|
2010-09-23 02:32:21 +08:00
|
|
|
sys/poll.h syslog.h mntent.h net/ethernet.h linux/magic.h \
|
2013-08-11 22:30:56 +08:00
|
|
|
sys/un.h sys/syscall.h sys/sysctl.h netinet/tcp.h ifaddrs.h \
|
2016-11-22 18:14:08 +08:00
|
|
|
libtasn1.h sys/ucred.h sys/mount.h sys/acl.h])
|
2012-10-02 06:38:56 +08:00
|
|
|
dnl Check whether endian provides handy macros.
|
|
|
|
AC_CHECK_DECLS([htole64], [], [], [[#include <endian.h>]])
|
virtestmock: Mock stat() properly
There is a lot to explain, but I try to make it as short as
possible. I'd start by pasting some parts of sys/stat.h:
extern int stat (const char *__restrict __file,
struct stat *__restrict __buf) __THROW __nonnull ((1, 2));
extern int __REDIRECT_NTH (stat, (const char *__restrict __file,
struct stat *__restrict __buf), stat64)
__nonnull ((1, 2));
__extern_inline int
__NTH (stat (const char *__path, struct stat *__statbuf))
{
return __xstat (_STAT_VER, __path, __statbuf);
}
Only one of these is effective at once, due to some usage of
the mess we are dealing with in here. So, basically, while
compiling or linking stat() in our code can be transformed into
some other func. Or a dragon.
Now, if you read stat(2) manpage, esp. "C library/kernel
differences" section, you'll learn that glibc uses some tricks
for older applications to work. I haven't gotten around actual
code that does this, but based on my observations, if 'stat'
symbol is found, glibc assumes it's dealing with ancient
application. Unfortunately, it can be just ours stat coming from
our mock. Therefore, calling stat() from a test will end up in
our mock. But since glibc is not exposing the symbol anymore, our
call of real_stat() will SIGSEGV immediately as the pointer to
function is NULL. Therefore, we should expose only those symbols
we know glibc has.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2016-05-17 22:26:53 +08:00
|
|
|
AC_CHECK_FUNCS([stat stat64 __xstat __xstat64 lstat lstat64 __lxstat __lxstat64])
|
2011-07-23 01:59:37 +08:00
|
|
|
|
2016-11-22 18:14:08 +08:00
|
|
|
ACL_CFLAGS=""
|
|
|
|
ACL_LIBS=""
|
2016-12-15 23:06:13 +08:00
|
|
|
if test "x$ac_cv_header_sys_acl_h:x$with_linux" = "xyes:xyes" ; then
|
2016-11-22 18:14:08 +08:00
|
|
|
ACL_LIBS="-lacl"
|
|
|
|
fi
|
|
|
|
AC_SUBST([ACL_CFLAGS])
|
|
|
|
AC_SUBST([ACL_LIBS])
|
|
|
|
|
2012-09-06 06:27:42 +08:00
|
|
|
AC_CHECK_TYPE([struct ifreq],
|
|
|
|
[AC_DEFINE([HAVE_STRUCT_IFREQ],[1],
|
|
|
|
[Defined if struct ifreq exists in net/if.h])],
|
|
|
|
[], [[#include <sys/socket.h>
|
|
|
|
#include <net/if.h>
|
|
|
|
]])
|
2011-12-01 21:31:18 +08:00
|
|
|
|
2016-01-08 05:31:17 +08:00
|
|
|
AC_CHECK_TYPE([struct sockpeercred],
|
|
|
|
[AC_DEFINE([HAVE_STRUCT_SOCKPEERCRED], [1],
|
|
|
|
[Defined if struct sockpeercred is available])],
|
|
|
|
[], [[#include <sys/socket.h>
|
|
|
|
]])
|
|
|
|
|
2015-03-11 00:00:15 +08:00
|
|
|
AC_CHECK_DECLS([ETH_FLAG_TXVLAN, ETH_FLAG_NTUPLE, ETH_FLAG_RXHASH, ETH_FLAG_LRO,
|
2015-07-19 18:11:07 +08:00
|
|
|
ETHTOOL_GGSO, ETHTOOL_GGRO, ETHTOOL_GFLAGS, ETHTOOL_GFEATURES],
|
2015-03-11 00:00:15 +08:00
|
|
|
[], [], [[#include <linux/ethtool.h>
|
|
|
|
]])
|
|
|
|
|
2011-07-23 01:59:37 +08:00
|
|
|
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"])
|
2007-06-15 23:24:20 +08:00
|
|
|
|
2008-09-05 20:03:45 +08:00
|
|
|
AC_CHECK_LIB([intl],[gettext],[])
|
|
|
|
|
2016-12-13 20:47:07 +08:00
|
|
|
|
|
|
|
dnl
|
|
|
|
dnl Check for external programs
|
|
|
|
dnl
|
|
|
|
|
|
|
|
LIBVIRT_CHECK_EXTERNAL_PROGRAMS
|
|
|
|
|
2007-11-30 01:41:57 +08:00
|
|
|
|
2005-12-07 21:45:20 +08:00
|
|
|
dnl Specific dir for HTML output ?
|
2016-11-14 22:25:41 +08:00
|
|
|
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
|
2008-05-22 23:34:02 +08:00
|
|
|
AC_SUBST([HTML_DIR])
|
2005-12-07 21:45:20 +08:00
|
|
|
|
2007-11-27 22:39:42 +08:00
|
|
|
dnl if --prefix is /usr, don't use /usr/var for localstatedir
|
|
|
|
dnl or /usr/etc for sysconfdir
|
|
|
|
dnl as this makes a lot of things break in testing situations
|
|
|
|
|
2010-03-24 16:10:13 +08:00
|
|
|
if test "$prefix" = "/usr" && test "$localstatedir" = '${prefix}/var' ; then
|
2007-11-27 22:39:42 +08:00
|
|
|
localstatedir='/var'
|
|
|
|
fi
|
2010-03-24 16:10:13 +08:00
|
|
|
if test "$prefix" = "/usr" && test "$sysconfdir" = '${prefix}/etc' ; then
|
2007-11-27 22:39:42 +08:00
|
|
|
sysconfdir='/etc'
|
|
|
|
fi
|
|
|
|
|
2016-12-14 22:28:55 +08:00
|
|
|
dnl
|
|
|
|
dnl Virtualization drivers check
|
|
|
|
dnl
|
|
|
|
|
2016-12-08 17:39:06 +08:00
|
|
|
LIBVIRT_DRIVER_ARG_XEN
|
2016-12-08 17:35:30 +08:00
|
|
|
LIBVIRT_DRIVER_ARG_QEMU
|
2016-11-29 15:50:58 +08:00
|
|
|
LIBVIRT_DRIVER_ARG_OPENVZ
|
2016-11-29 15:54:02 +08:00
|
|
|
LIBVIRT_DRIVER_ARG_VMWARE
|
2016-11-30 19:52:43 +08:00
|
|
|
LIBVIRT_DRIVER_ARG_PHYP
|
2016-12-12 23:20:41 +08:00
|
|
|
LIBVIRT_DRIVER_ARG_XENAPI
|
2016-12-12 23:18:02 +08:00
|
|
|
LIBVIRT_DRIVER_ARG_LIBXL
|
2016-12-13 01:19:21 +08:00
|
|
|
LIBVIRT_DRIVER_ARG_VBOX
|
2016-12-08 17:36:55 +08:00
|
|
|
LIBVIRT_DRIVER_ARG_LXC
|
2016-12-14 22:28:55 +08:00
|
|
|
LIBVIRT_DRIVER_ARG_VZ
|
|
|
|
LIBVIRT_DRIVER_ARG_BHYVE
|
|
|
|
LIBVIRT_DRIVER_ARG_UML
|
2016-12-01 17:40:31 +08:00
|
|
|
LIBVIRT_DRIVER_ARG_ESX
|
2016-12-01 17:43:13 +08:00
|
|
|
LIBVIRT_DRIVER_ARG_HYPERV
|
2016-12-01 17:23:41 +08:00
|
|
|
LIBVIRT_DRIVER_ARG_TEST
|
2016-12-01 17:27:19 +08:00
|
|
|
LIBVIRT_DRIVER_ARG_REMOTE
|
2016-12-01 19:01:33 +08:00
|
|
|
LIBVIRT_DRIVER_ARG_LIBVIRTD
|
2016-12-14 22:28:55 +08:00
|
|
|
LIBVIRT_DRIVER_ARG_NETWORK
|
|
|
|
LIBVIRT_DRIVER_ARG_INTERFACE
|
|
|
|
|
|
|
|
LIBVIRT_DRIVER_CHECK_XEN
|
|
|
|
LIBVIRT_DRIVER_CHECK_QEMU
|
|
|
|
LIBVIRT_DRIVER_CHECK_OPENVZ
|
|
|
|
LIBVIRT_DRIVER_CHECK_VMWARE
|
|
|
|
LIBVIRT_DRIVER_CHECK_PHYP
|
|
|
|
LIBVIRT_DRIVER_CHECK_XENAPI
|
|
|
|
LIBVIRT_DRIVER_CHECK_LIBXL
|
|
|
|
LIBVIRT_DRIVER_CHECK_VBOX
|
|
|
|
LIBVIRT_DRIVER_CHECK_LXC
|
|
|
|
LIBVIRT_DRIVER_CHECK_VZ
|
|
|
|
LIBVIRT_DRIVER_CHECK_BHYVE
|
|
|
|
LIBVIRT_DRIVER_CHECK_UML
|
|
|
|
LIBVIRT_DRIVER_CHECK_ESX
|
|
|
|
LIBVIRT_DRIVER_CHECK_HYPERV
|
|
|
|
LIBVIRT_DRIVER_CHECK_TEST
|
|
|
|
LIBVIRT_DRIVER_CHECK_REMOTE
|
|
|
|
LIBVIRT_DRIVER_CHECK_LIBVIRTD
|
|
|
|
LIBVIRT_DRIVER_CHECK_NETWORK
|
|
|
|
LIBVIRT_DRIVER_CHECK_INTERFACE
|
|
|
|
|
|
|
|
AM_CONDITIONAL([WITH_XENCONFIG], [test "$with_libxl" = "yes" || test "$with_xen" = "yes"])
|
|
|
|
|
2016-11-14 22:25:41 +08:00
|
|
|
|
2005-12-02 20:11:06 +08:00
|
|
|
dnl
|
2010-09-09 23:06:00 +08:00
|
|
|
dnl in case someone want to build static binaries
|
|
|
|
dnl STATIC_BINARIES="-static"
|
2005-12-02 20:11:06 +08:00
|
|
|
dnl
|
2010-09-09 23:06:00 +08:00
|
|
|
STATIC_BINARIES=
|
2008-05-22 23:34:02 +08:00
|
|
|
AC_SUBST([STATIC_BINARIES])
|
2005-12-02 20:11:06 +08:00
|
|
|
|
2016-12-15 22:04:23 +08:00
|
|
|
dnl
|
|
|
|
dnl Miscellaneous checks
|
|
|
|
dnl
|
2007-02-17 02:30:55 +08:00
|
|
|
|
2016-12-15 22:04:23 +08:00
|
|
|
LIBVIRT_ARG_DEBUG
|
|
|
|
LIBVIRT_ARG_DTRACE
|
|
|
|
LIBVIRT_ARG_NUMAD
|
|
|
|
LIBVIRT_ARG_XML_CATALOG
|
2016-12-13 01:11:51 +08:00
|
|
|
LIBVIRT_ARG_INIT_SCRIPT
|
2016-12-15 22:04:23 +08:00
|
|
|
LIBVIRT_ARG_CHRDEV_LOCK_FILES
|
|
|
|
LIBVIRT_ARG_DEFAULT_EDITOR
|
|
|
|
LIBVIRT_ARG_LOADER_NVRAM
|
|
|
|
LIBVIRT_ARG_LOGIN_SHELL
|
|
|
|
LIBVIRT_ARG_HOST_VALIDATE
|
|
|
|
LIBVIRT_ARG_TLS_PRIORITY
|
2016-11-29 15:33:19 +08:00
|
|
|
LIBVIRT_ARG_SYSCTL_CONFIG
|
2016-12-15 22:04:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
LIBVIRT_CHECK_DEBUG
|
|
|
|
LIBVIRT_CHECK_DTRACE
|
|
|
|
LIBVIRT_CHECK_NUMAD
|
|
|
|
LIBVIRT_CHECK_XML_CATALOG
|
|
|
|
LIBVIRT_CHECK_INIT_SCRIPT
|
|
|
|
LIBVIRT_CHECK_CHRDEV_LOCK_FILES
|
|
|
|
LIBVIRT_CHECK_DEFAULT_EDITOR
|
|
|
|
LIBVIRT_CHECK_LOADER_NVRAM
|
|
|
|
LIBVIRT_CHECK_LOGIN_SHELL
|
|
|
|
LIBVIRT_CHECK_HOST_VALIDATE
|
|
|
|
LIBVIRT_CHECK_TLS_PRIORITY
|
2016-11-29 15:33:19 +08:00
|
|
|
LIBVIRT_CHECK_SYSCTL_CONFIG
|
2012-04-04 18:16:34 +08:00
|
|
|
|
2010-03-26 01:46:12 +08:00
|
|
|
|
2005-11-02 21:19:10 +08:00
|
|
|
|
2011-03-29 20:39:18 +08:00
|
|
|
|
2008-09-17 22:07:49 +08:00
|
|
|
dnl
|
|
|
|
dnl check for kvm headers
|
2008-09-18 16:54:23 +08:00
|
|
|
dnl
|
2008-09-17 22:07:49 +08:00
|
|
|
AC_CHECK_HEADERS([linux/kvm.h])
|
|
|
|
|
2009-08-05 18:59:58 +08:00
|
|
|
|
2015-11-10 06:36:40 +08:00
|
|
|
AM_CONDITIONAL([WITH_SETUID_RPC_CLIENT], [test "$with_lxc$with_login_shell" != "nono"])
|
|
|
|
|
2009-08-05 18:59:58 +08:00
|
|
|
|
|
|
|
dnl
|
|
|
|
dnl check for kernel headers required by src/bridge.c
|
|
|
|
dnl
|
2012-12-12 15:44:21 +08:00
|
|
|
if test "$with_linux" = "yes"; then
|
2013-09-14 00:11:26 +08:00
|
|
|
# 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 <linux/*.h> and <netinet/*.h> headers are compatible],
|
|
|
|
[lv_cv_netinet_linux_compatible],
|
|
|
|
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
|
|
#include <netinet/in.h>
|
|
|
|
#include <linux/in6.h>
|
|
|
|
]])],
|
|
|
|
[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
|
2012-12-12 15:44:21 +08:00
|
|
|
AC_CHECK_HEADERS([linux/param.h linux/sockios.h linux/if_bridge.h linux/if_tun.h],,
|
2013-01-15 00:54:25 +08:00
|
|
|
[AC_MSG_ERROR([You must install kernel-headers in order to compile libvirt with QEMU or LXC support])],
|
2013-09-14 00:11:26 +08:00
|
|
|
[[#include <netinet/in.h>
|
|
|
|
#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
|
2013-08-08 00:34:08 +08:00
|
|
|
#include <linux/in6.h>
|
2013-01-15 00:54:25 +08:00
|
|
|
]])
|
2009-08-05 18:59:58 +08:00
|
|
|
fi
|
|
|
|
|
2009-08-05 16:52:14 +08:00
|
|
|
|
2009-09-10 21:21:10 +08:00
|
|
|
dnl Need to test if pkg-config exists
|
|
|
|
PKG_PROG_PKG_CONFIG
|
|
|
|
|
2009-05-25 19:56:00 +08:00
|
|
|
|
2016-12-13 01:20:45 +08:00
|
|
|
dnl Security driver checks
|
|
|
|
LIBVIRT_SECDRIVER_ARG_SELINUX
|
2016-12-01 19:08:20 +08:00
|
|
|
LIBVIRT_SECDRIVER_ARG_APPARMOR
|
2009-10-08 22:34:22 +08:00
|
|
|
|
2016-12-01 19:08:20 +08:00
|
|
|
LIBVIRT_SECDRIVER_CHECK_SELINUX
|
|
|
|
LIBVIRT_SECDRIVER_CHECK_APPARMOR
|
2009-10-08 22:34:22 +08:00
|
|
|
|
2009-09-14 20:31:23 +08:00
|
|
|
|
2016-11-14 22:25:41 +08:00
|
|
|
LIBVIRT_ARG_WITH([SECRETS], [local secrets management driver], [yes])
|
2011-05-24 19:21:51 +08:00
|
|
|
|
2009-09-14 20:31:23 +08:00
|
|
|
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"])
|
|
|
|
|
|
|
|
|
2016-12-07 15:46:51 +08:00
|
|
|
LIBVIRT_STORAGE_ARG_DIR
|
2016-11-14 22:25:41 +08:00
|
|
|
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])
|
2008-02-20 23:42:30 +08:00
|
|
|
|
2008-09-05 20:03:45 +08:00
|
|
|
if test "$with_libvirtd" = "no"; then
|
|
|
|
with_storage_dir=no
|
|
|
|
with_storage_fs=no
|
|
|
|
with_storage_lvm=no
|
|
|
|
with_storage_iscsi=no
|
2009-04-02 00:03:22 +08:00
|
|
|
with_storage_scsi=no
|
2009-09-08 21:47:45 +08:00
|
|
|
with_storage_mpath=no
|
2008-09-05 20:03:45 +08:00
|
|
|
with_storage_disk=no
|
2012-05-14 17:06:42 +08:00
|
|
|
with_storage_rbd=no
|
2012-07-19 03:06:58 +08:00
|
|
|
with_storage_sheepdog=no
|
2013-11-20 07:26:05 +08:00
|
|
|
with_storage_gluster=no
|
2014-07-21 22:38:42 +08:00
|
|
|
with_storage_zfs=no
|
2008-09-05 20:03:45 +08:00
|
|
|
fi
|
2016-12-07 15:46:51 +08:00
|
|
|
|
|
|
|
LIBVIRT_STORAGE_CHECK_DIR
|
2008-09-05 20:03:45 +08:00
|
|
|
|
2010-10-05 09:31:05 +08:00
|
|
|
dnl storage-fs does not work on MacOS X
|
|
|
|
|
|
|
|
if test "$with_osx" = "yes"; then
|
|
|
|
with_storage_fs=no
|
|
|
|
fi
|
2008-09-05 20:03:45 +08:00
|
|
|
|
2010-11-13 19:33:44 +08:00
|
|
|
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([<mntent.h> is required for the FS storage driver, disabling it])
|
|
|
|
else
|
|
|
|
AC_MSG_ERROR([<mntent.h> is required for the FS storage driver])
|
|
|
|
fi
|
|
|
|
])
|
|
|
|
fi
|
|
|
|
|
2010-03-25 05:31:31 +08:00
|
|
|
if test "$with_storage_fs" = "yes" || test "$with_storage_fs" = "check"; then
|
2016-11-12 21:24:53 +08:00
|
|
|
AC_PATH_PROG([MOUNT], [mount], [], [$LIBVIRT_SBIN_PATH])
|
|
|
|
AC_PATH_PROG([UMOUNT], [umount], [], [$LIBVIRT_SBIN_PATH])
|
|
|
|
AC_PATH_PROG([MKFS], [mkfs], [], [$LIBVIRT_SBIN_PATH])
|
2008-02-20 23:42:30 +08:00
|
|
|
if test "$with_storage_fs" = "yes" ; then
|
2008-05-22 23:34:02 +08:00
|
|
|
if test -z "$MOUNT" ; then AC_MSG_ERROR([We need mount for FS storage driver]) ; fi
|
2008-05-22 23:40:01 +08:00
|
|
|
if test -z "$UMOUNT" ; then AC_MSG_ERROR([We need umount for FS storage driver]) ; fi
|
2011-06-14 16:16:39 +08:00
|
|
|
if test -z "$MKFS" ; then AC_MSG_ERROR([We need mkfs for FS storage driver]) ; fi
|
2008-02-20 23:42:30 +08:00
|
|
|
else
|
|
|
|
if test -z "$MOUNT" ; then with_storage_fs=no ; fi
|
|
|
|
if test -z "$UMOUNT" ; then with_storage_fs=no ; fi
|
2011-06-14 16:16:39 +08:00
|
|
|
if test -z "$MKFS" ; then with_storage_fs=no ; fi
|
2008-02-20 23:42:30 +08:00
|
|
|
|
|
|
|
if test "$with_storage_fs" = "check" ; then with_storage_fs=yes ; fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
if test "$with_storage_fs" = "yes" ; then
|
2008-05-22 23:34:02 +08:00
|
|
|
AC_DEFINE_UNQUOTED([WITH_STORAGE_FS], 1, [whether FS backend for storage driver is enabled])
|
2008-02-20 23:42:30 +08:00
|
|
|
AC_DEFINE_UNQUOTED([MOUNT],["$MOUNT"],
|
|
|
|
[Location or name of the mount program])
|
|
|
|
AC_DEFINE_UNQUOTED([UMOUNT],["$UMOUNT"],
|
|
|
|
[Location or name of the mount program])
|
2011-06-14 16:16:39 +08:00
|
|
|
AC_DEFINE_UNQUOTED([MKFS],["$MKFS"],
|
|
|
|
[Location or name of the mkfs program])
|
2008-02-20 23:42:30 +08:00
|
|
|
fi
|
|
|
|
fi
|
2008-05-22 23:34:02 +08:00
|
|
|
AM_CONDITIONAL([WITH_STORAGE_FS], [test "$with_storage_fs" = "yes"])
|
2008-08-28 04:05:58 +08:00
|
|
|
if test "$with_storage_fs" = "yes"; then
|
2016-11-12 21:24:53 +08:00
|
|
|
AC_PATH_PROG([SHOWMOUNT], [showmount], [], [$LIBVIRT_SBIN_PATH])
|
2008-08-28 04:05:58 +08:00
|
|
|
AC_DEFINE_UNQUOTED([SHOWMOUNT], ["$SHOWMOUNT"],
|
|
|
|
[Location or name of the showmount program])
|
|
|
|
fi
|
2008-02-20 23:42:30 +08:00
|
|
|
|
2010-03-25 05:31:31 +08:00
|
|
|
if test "$with_storage_lvm" = "yes" || test "$with_storage_lvm" = "check"; then
|
2016-11-12 21:24:53 +08:00
|
|
|
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])
|
2008-02-20 23:45:33 +08:00
|
|
|
|
|
|
|
if test "$with_storage_lvm" = "yes" ; then
|
2008-05-22 23:34:02 +08:00
|
|
|
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
|
2011-11-22 15:24:25 +08:00
|
|
|
if test -z "$LVCHANGE" ; then AC_MSG_ERROR([We need lvchange for LVM storage driver]) ; fi
|
2008-05-22 23:34:02 +08:00
|
|
|
if test -z "$VGCHANGE" ; then AC_MSG_ERROR([We need vgchange for LVM storage driver]) ; fi
|
2008-11-05 19:41:43 +08:00
|
|
|
if test -z "$VGSCAN" ; then AC_MSG_ERROR([We need vgscan for LVM storage driver]) ; fi
|
2008-05-22 23:34:02 +08:00
|
|
|
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
|
2008-02-20 23:45:33 +08:00
|
|
|
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
|
2011-11-22 15:24:25 +08:00
|
|
|
if test -z "$LVCHANGE" ; then with_storage_lvm=no ; fi
|
2008-11-05 19:41:43 +08:00
|
|
|
if test -z "$VGCHANGE" ; then with_storage_lvm=no ; fi
|
|
|
|
if test -z "$VGSCAN" ; then with_storage_lvm=no ; fi
|
2008-02-20 23:45:33 +08:00
|
|
|
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
|
2008-05-22 23:34:02 +08:00
|
|
|
AC_DEFINE_UNQUOTED([WITH_STORAGE_LVM], 1, [whether LVM backend for storage driver is enabled])
|
2008-02-20 23:45:33 +08:00
|
|
|
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])
|
2011-06-08 15:07:24 +08:00
|
|
|
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])
|
2011-11-22 15:24:25 +08:00
|
|
|
AC_DEFINE_UNQUOTED([LVCHANGE],["$LVCHANGE"],[Location of lvchange program])
|
2008-02-20 23:45:33 +08:00
|
|
|
AC_DEFINE_UNQUOTED([VGCHANGE],["$VGCHANGE"],[Location of vgchange program])
|
2008-11-05 19:41:43 +08:00
|
|
|
AC_DEFINE_UNQUOTED([VGSCAN],["$VGSCAN"],[Location of vgscan program])
|
2008-02-20 23:45:33 +08:00
|
|
|
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
|
2008-05-22 23:34:02 +08:00
|
|
|
AM_CONDITIONAL([WITH_STORAGE_LVM], [test "$with_storage_lvm" = "yes"])
|
2008-02-20 23:45:33 +08:00
|
|
|
|
|
|
|
|
2008-02-20 23:49:25 +08:00
|
|
|
|
2010-03-25 05:31:31 +08:00
|
|
|
if test "$with_storage_iscsi" = "yes" || test "$with_storage_iscsi" = "check"; then
|
2016-11-12 21:24:53 +08:00
|
|
|
AC_PATH_PROG([ISCSIADM], [iscsiadm], [], [$LIBVIRT_SBIN_PATH])
|
2008-02-20 23:49:25 +08:00
|
|
|
if test "$with_storage_iscsi" = "yes" ; then
|
2008-05-22 23:34:02 +08:00
|
|
|
if test -z "$ISCSIADM" ; then AC_MSG_ERROR([We need iscsiadm for iSCSI storage driver]) ; fi
|
2008-02-20 23:49:25 +08:00
|
|
|
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
|
2008-05-22 23:34:02 +08:00
|
|
|
AC_DEFINE_UNQUOTED([WITH_STORAGE_ISCSI], 1, [whether iSCSI backend for storage driver is enabled])
|
2008-02-20 23:49:25 +08:00
|
|
|
fi
|
|
|
|
fi
|
2014-03-21 16:02:44 +08:00
|
|
|
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
|
2008-05-22 23:34:02 +08:00
|
|
|
AM_CONDITIONAL([WITH_STORAGE_ISCSI], [test "$with_storage_iscsi" = "yes"])
|
2008-02-20 23:49:25 +08:00
|
|
|
|
2016-06-17 16:59:35 +08:00
|
|
|
if test "$with_storage_scsi" = "check" || test "$with_storage_scsi" = "yes"; then
|
2009-04-02 00:03:22 +08:00
|
|
|
with_storage_scsi=yes
|
|
|
|
|
|
|
|
AC_DEFINE_UNQUOTED([WITH_STORAGE_SCSI], 1,
|
|
|
|
[whether SCSI backend for storage driver is enabled])
|
|
|
|
fi
|
2009-04-03 02:42:33 +08:00
|
|
|
AM_CONDITIONAL([WITH_STORAGE_SCSI], [test "$with_storage_scsi" = "yes"])
|
2008-02-20 23:49:25 +08:00
|
|
|
|
2016-06-17 16:59:35 +08:00
|
|
|
if test "$with_storage_mpath" = "check" || test "$with_storage_mpath" = "yes"; then
|
2011-05-13 12:47:50 +08:00
|
|
|
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
|
2016-06-17 17:55:04 +08:00
|
|
|
if test "$with_storage_mpath" = "yes"; then
|
|
|
|
AC_MSG_ERROR([mpath storage is only supported on Linux])
|
|
|
|
fi
|
2011-05-13 12:47:50 +08:00
|
|
|
with_storage_mpath=no
|
|
|
|
fi
|
2009-09-08 21:47:45 +08:00
|
|
|
fi
|
|
|
|
AM_CONDITIONAL([WITH_STORAGE_MPATH], [test "$with_storage_mpath" = "yes"])
|
|
|
|
|
2012-05-14 17:06:42 +08:00
|
|
|
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
|
2012-07-16 01:18:44 +08:00
|
|
|
LIBRBD_LIBS="-lrbd -lrados"
|
2012-05-14 17:06:42 +08:00
|
|
|
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])
|
|
|
|
|
2012-07-19 03:06:58 +08:00
|
|
|
if test "$with_storage_sheepdog" = "yes" ||
|
|
|
|
test "$with_storage_sheepdog" = "check"; then
|
2016-11-12 21:24:53 +08:00
|
|
|
AC_PATH_PROGS([SHEEPDOGCLI], [collie dog], [], [$LIBVIRT_SBIN_PATH])
|
2012-07-19 03:06:58 +08:00
|
|
|
|
|
|
|
if test "$with_storage_sheepdog" = "yes"; then
|
2015-06-18 21:20:42 +08:00
|
|
|
if test -z "$SHEEPDOGCLI"; then
|
|
|
|
AC_MSG_ERROR([We need sheepdog client for Sheepdog storage driver])
|
2012-07-19 03:06:58 +08:00
|
|
|
fi
|
|
|
|
else
|
2015-06-18 21:20:42 +08:00
|
|
|
if test -z "$SHEEPDOGCLI"; then
|
2012-07-19 03:06:58 +08:00
|
|
|
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])
|
2015-06-18 21:20:42 +08:00
|
|
|
AC_DEFINE_UNQUOTED([SHEEPDOGCLI],["$SHEEPDOGCLI"],[Location of sheepdog client program])
|
2012-07-19 03:06:58 +08:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
AM_CONDITIONAL([WITH_STORAGE_SHEEPDOG],
|
|
|
|
[test "$with_storage_sheepdog" = "yes"])
|
|
|
|
|
2013-11-20 07:26:05 +08:00
|
|
|
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"])
|
|
|
|
|
2014-07-21 22:38:42 +08:00
|
|
|
if test "$with_storage_zfs" = "yes" ||
|
|
|
|
test "$with_storage_zfs" = "check"; then
|
2016-11-12 21:24:53 +08:00
|
|
|
AC_PATH_PROG([ZFS], [zfs], [], [$LIBVIRT_SBIN_PATH])
|
|
|
|
AC_PATH_PROG([ZPOOL], [zpool], [], [$LIBVIRT_SBIN_PATH])
|
2014-07-21 22:38:42 +08:00
|
|
|
|
|
|
|
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"])
|
|
|
|
|
2014-03-27 02:17:55 +08:00
|
|
|
if test "$with_storage_fs" = "yes" ||
|
|
|
|
test "$with_storage_gluster" = "yes"; then
|
2016-11-12 21:24:53 +08:00
|
|
|
AC_PATH_PROG([GLUSTER_CLI], [gluster], [], [$LIBVIRT_SBIN_PATH])
|
2014-04-07 15:24:41 +08:00
|
|
|
if test "x$GLUSTER_CLI" != "x"; then
|
|
|
|
AC_DEFINE_UNQUOTED([GLUSTER_CLI], ["$GLUSTER_CLI"],
|
|
|
|
[Location or name of the gluster command line tool])
|
|
|
|
fi
|
2014-03-27 02:17:55 +08:00
|
|
|
fi
|
2012-07-19 03:06:58 +08:00
|
|
|
|
2011-02-01 06:08:26 +08:00
|
|
|
if test "$with_storage_disk" = "yes" ||
|
|
|
|
test "$with_storage_disk" = "check"; then
|
2011-02-17 15:29:07 +08:00
|
|
|
if test "$with_storage_disk" = "yes" &&
|
2016-12-12 20:46:19 +08:00
|
|
|
test "$with_libparted" != "yes"; then
|
2016-04-26 20:53:57 +08:00
|
|
|
AC_MSG_ERROR([Need parted for disk storage driver])
|
2011-02-17 15:29:07 +08:00
|
|
|
fi
|
|
|
|
|
|
|
|
if test "$with_storage_disk" = "check"; then
|
2016-12-12 20:46:19 +08:00
|
|
|
if test "$with_libparted" != "yes"; then
|
2008-02-20 23:52:17 +08:00
|
|
|
with_storage_disk=no
|
2011-02-17 15:29:07 +08:00
|
|
|
else
|
|
|
|
with_storage_disk=yes
|
2008-02-20 23:52:17 +08:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
if test "$with_storage_disk" = "yes"; then
|
2011-02-01 06:08:26 +08:00
|
|
|
AC_DEFINE_UNQUOTED([WITH_STORAGE_DISK], 1,
|
|
|
|
[whether Disk backend for storage driver is enabled])
|
2008-02-20 23:52:17 +08:00
|
|
|
fi
|
|
|
|
fi
|
2008-05-22 23:34:02 +08:00
|
|
|
AM_CONDITIONAL([WITH_STORAGE_DISK], [test "$with_storage_disk" = "yes"])
|
2008-02-20 23:52:17 +08:00
|
|
|
|
2011-02-21 09:57:24 +08:00
|
|
|
if test "$with_storage_mpath" = "yes" ||
|
|
|
|
test "$with_storage_disk" = "yes"; then
|
2016-12-12 20:33:42 +08:00
|
|
|
if test "$with_devmapper" = "no" ; then
|
2011-02-21 09:57:24 +08:00
|
|
|
AC_MSG_ERROR([You must install device-mapper-devel/libdevmapper >= $DEVMAPPER_REQUIRED to compile libvirt])
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2012-06-06 00:28:52 +08:00
|
|
|
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"])
|
|
|
|
|
2015-01-23 18:22:34 +08:00
|
|
|
dnl
|
|
|
|
dnl check for kernel headers required by btrfs ioctl
|
|
|
|
dnl
|
|
|
|
if test "$with_linux" = "yes"; then
|
|
|
|
AC_CHECK_HEADERS([linux/btrfs.h])
|
|
|
|
fi
|
|
|
|
|
2013-11-23 00:42:22 +08:00
|
|
|
dnl Allow perl/python overrides
|
2013-12-18 01:53:28 +08:00
|
|
|
AC_PATH_PROGS([PYTHON], [python2 python])
|
2012-05-30 05:49:13 +08:00
|
|
|
AC_PATH_PROG([PERL], [perl])
|
2014-08-14 11:37:45 +08:00
|
|
|
if test -z "$PERL"; then
|
|
|
|
AC_MSG_ERROR([Failed to find perl.])
|
|
|
|
fi
|
2012-05-30 05:49:13 +08:00
|
|
|
|
2016-11-14 22:25:41 +08:00
|
|
|
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
|
2012-03-27 23:35:01 +08:00
|
|
|
|
|
|
|
AC_MSG_CHECKING([Whether to build test suite by default])
|
2016-11-14 22:25:41 +08:00
|
|
|
if test "$with_test_suite" = "check" ; then
|
2012-03-27 23:35:01 +08:00
|
|
|
if test -d $srcdir/.git ; then
|
2016-11-14 22:25:41 +08:00
|
|
|
with_test_suite=yes
|
2012-03-27 23:35:01 +08:00
|
|
|
else
|
2016-11-14 22:25:41 +08:00
|
|
|
with_test_suite=no
|
2012-03-27 23:35:01 +08:00
|
|
|
fi
|
|
|
|
fi
|
2016-11-14 22:25:41 +08:00
|
|
|
AC_MSG_RESULT([$with_test_suite])
|
|
|
|
AM_CONDITIONAL([WITH_TESTS], [test "$with_test_suite" = "yes"])
|
2012-03-27 23:35:01 +08:00
|
|
|
|
2016-12-13 20:34:42 +08:00
|
|
|
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
|
build: add configure option to disable gnulib tests
The gnulib testsuite is relatively stable - the only times it is
likely to have a test change from pass to fail is on a gnulib
submodule update or a major system change (such as moving from
Fedora 18 to 19, or other large change to libc). While it is an
important test for end users on arbitrary machines (to make sure
that the portability glue works for their machine), it mostly
wastes time for development testing (as most developers aren't
making any of the major changes that would cause gnulib tests
to alter behavior). Thus, it pays to make the tests optional
at configure time, defaulting to off for development, on for
tarballs, with autobuilders requesting it to be on. It also
helps to allow a make-time override, via VIR_TEST_EXPENSIVE=[01]
(much the way automake sets up V=[01] for overriding the configure
time default of how verbose to be).
Automake has some pretty hard-coded magic with regards to the
TESTS variable; I had quite a job figuring out how to keep
'make distcheck' passing regardless of the configure option
setting in use, while still disabling the tests at runtime
when I did not configure them on and did not use the override
variable. Thankfully, we require GNU make, which lets me
hide some information from Automake's magic handling of TESTS.
* bootstrap.conf (bootstrap_epilogue): Munge gnulib test variable.
* configure.ac (--enable-expensive-tests): Add new enable switch.
(VIR_TEST_EXPENSIVE_DEFAULT, WITH_EXPENSIVE_TESTS): Set new
witnesses.
* gnulib/tests/Makefile.am (TESTS): Make tests conditional on
configure settings and the VIR_TEST_EXPENSIVE variable.
* tests/Makefile.am (TESTS_ENVIRONMENT): Expose VIR_TEST_EXPENSIVE
to all tests.
* autobuild.sh: Enable all tests during autobuilds.
* libvirt.spec.in (%configure): Likewise.
* mingw-libvirt.spec.in (%mingw_configure): Likewise.
* docs/hacking.html.in: Document the option.
* HACKING: Regenerate.
Signed-off-by: Eric Blake <eblake@redhat.com>
2013-07-31 21:18:58 +08:00
|
|
|
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])
|
|
|
|
|
2016-12-13 20:34:42 +08:00
|
|
|
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
|
2010-07-16 23:04:05 +08:00
|
|
|
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
|
2007-02-14 10:12:41 +08:00
|
|
|
fi
|
|
|
|
|
2016-12-13 20:34:42 +08:00
|
|
|
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
|
2008-05-29 23:13:07 +08:00
|
|
|
|
2016-12-13 20:34:42 +08:00
|
|
|
if test "$enable_test_oom" = yes; then
|
2008-05-29 23:13:07 +08:00
|
|
|
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
|
|
|
|
|
2016-12-13 20:34:42 +08:00
|
|
|
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
|
2009-05-19 18:17:17 +08:00
|
|
|
|
2016-12-13 20:34:42 +08:00
|
|
|
if test "$enable_test_locking" = "yes"; then
|
2013-12-19 00:15:08 +08:00
|
|
|
LOCK_CHECKING_CFLAGS="-save-temps"
|
2009-05-19 18:17:17 +08:00
|
|
|
AC_SUBST([LOCK_CHECKING_CFLAGS])
|
|
|
|
fi
|
2016-12-13 20:34:42 +08:00
|
|
|
AM_CONDITIONAL([WITH_CIL],[test "$enable_test_locking" = "yes"])
|
2009-05-19 18:17:17 +08:00
|
|
|
|
2011-05-12 23:29:51 +08:00
|
|
|
dnl Check for gettext - don't go any newer than what RHEL 5 supports
|
2011-07-28 20:55:21 +08:00
|
|
|
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"
|
2012-04-25 11:40:08 +08:00
|
|
|
AM_GNU_GETTEXT_VERSION([0.17])
|
2006-09-21 23:24:37 +08:00
|
|
|
AM_GNU_GETTEXT([external])
|
2011-07-28 20:55:21 +08:00
|
|
|
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])
|
2010-02-24 17:53:44 +08:00
|
|
|
|
2008-10-22 21:55:15 +08:00
|
|
|
ALL_LINGUAS=`cd "$srcdir/po" > /dev/null && ls *.po | sed 's+\.po$++'`
|
2006-09-21 23:24:37 +08:00
|
|
|
|
2016-12-15 18:48:38 +08:00
|
|
|
dnl Cygwin, MinGW and MSVC checks
|
|
|
|
LIBVIRT_WIN_CHECK_COMMON
|
2016-12-06 20:54:36 +08:00
|
|
|
LIBVIRT_WIN_CHECK_CYGWIN
|
2016-12-06 20:55:50 +08:00
|
|
|
LIBVIRT_WIN_CHECK_MINGW
|
2016-12-06 20:56:38 +08:00
|
|
|
LIBVIRT_WIN_CHECK_SYMBOLS
|
2016-12-06 20:57:12 +08:00
|
|
|
LIBVIRT_WIN_CHECK_WINDRES
|
2016-12-15 18:48:38 +08:00
|
|
|
|
|
|
|
|
2016-11-14 22:34:04 +08:00
|
|
|
dnl Driver-Modules library support
|
|
|
|
LIBVIRT_ARG_DRIVER_MODULES
|
|
|
|
LIBVIRT_CHECK_DRIVER_MODULES
|
2008-11-21 20:16:08 +08:00
|
|
|
|
|
|
|
|
2008-02-29 01:07:37 +08:00
|
|
|
# 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-.}
|
2008-05-22 23:34:02 +08:00
|
|
|
AC_SUBST([LV_LIBTOOL_OBJDIR])
|
2008-02-29 01:07:37 +08:00
|
|
|
|
2008-11-21 20:27:11 +08:00
|
|
|
|
|
|
|
with_nodedev=no;
|
2010-03-25 05:31:31 +08:00
|
|
|
if test "$with_hal" = "yes" || test "$with_udev" = "yes";
|
2008-11-21 20:27:11 +08:00
|
|
|
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"])
|
|
|
|
|
2014-02-10 22:08:26 +08:00
|
|
|
dnl GET_VLAN_VID_CMD is required for virNetDevGetVLanID
|
|
|
|
AC_CHECK_DECLS([GET_VLAN_VID_CMD], [], [], [[#include <linux/if_vlan.h>]])
|
2010-02-13 01:03:07 +08:00
|
|
|
|
2013-04-27 23:50:19 +08:00
|
|
|
# Check for Linux vs. BSD ifreq members
|
|
|
|
AC_CHECK_MEMBERS([struct ifreq.ifr_newname,
|
|
|
|
struct ifreq.ifr_ifindex,
|
2014-10-30 02:20:47 +08:00
|
|
|
struct ifreq.ifr_index,
|
|
|
|
struct ifreq.ifr_hwaddr],
|
2013-04-27 23:50:19 +08:00
|
|
|
[], [],
|
|
|
|
[#include <sys/socket.h>
|
|
|
|
#include <net/if.h>
|
|
|
|
])
|
2013-07-18 02:02:17 +08:00
|
|
|
|
2013-05-03 21:35:20 +08:00
|
|
|
# Check for BSD approach for setting MAC addr
|
2013-07-18 02:02:17 +08:00
|
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM(
|
|
|
|
[[
|
|
|
|
#include <sys/types.h>
|
|
|
|
#include <sys/socket.h>
|
|
|
|
#include <net/if_dl.h>
|
|
|
|
]],
|
|
|
|
[[
|
2013-07-24 21:02:00 +08:00
|
|
|
link_addr(0, 0)]])],
|
2013-07-18 02:02:17 +08:00
|
|
|
[AC_DEFINE([HAVE_DECL_LINK_ADDR],
|
|
|
|
[1],
|
|
|
|
[whether link_addr is available])])
|
2013-05-03 21:35:20 +08:00
|
|
|
|
2013-06-20 00:47:31 +08:00
|
|
|
# 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])],
|
|
|
|
[],
|
2013-07-10 17:38:06 +08:00
|
|
|
[#include <stdint.h>
|
|
|
|
#include <net/if.h>
|
2013-06-20 00:47:31 +08:00
|
|
|
#include <net/ethernet.h>
|
|
|
|
#include <net/if_bridgevar.h>
|
|
|
|
])
|
|
|
|
|
2014-01-30 02:31:44 +08:00
|
|
|
# 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 <sys/param.h>
|
|
|
|
#include <sys/cpuset.h>
|
|
|
|
])
|
|
|
|
|
2014-04-21 18:59:58 +08:00
|
|
|
# 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
|
|
|
|
|
2014-07-06 17:53:40 +08:00
|
|
|
# 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 <net/if.h>
|
|
|
|
])
|
|
|
|
|
2016-11-20 01:42:27 +08:00
|
|
|
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 <mach/clock.h>
|
|
|
|
#include <mach/mach.h>
|
|
|
|
])
|
|
|
|
|
2013-08-11 21:54:48 +08:00
|
|
|
# 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
|
|
|
|
|
2010-04-07 23:02:25 +08:00
|
|
|
# Detect when running under the clang static analyzer's scan-build driver
|
|
|
|
# or Coverity-prevent's cov-build. Define STATIC_ANALYSIS accordingly.
|
2011-08-03 02:25:58 +08:00
|
|
|
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
|
|
|
|
])
|
2011-06-04 03:43:15 +08:00
|
|
|
t=0
|
2011-08-03 02:25:58 +08:00
|
|
|
test "x$lv_cv_static_analysis" = xyes && t=1
|
2010-04-07 23:02:25 +08:00
|
|
|
AC_DEFINE_UNQUOTED([STATIC_ANALYSIS], [$t],
|
|
|
|
[Define to 1 when performing static analysis.])
|
|
|
|
|
2012-08-02 21:21:00 +08:00
|
|
|
# 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])
|
|
|
|
|
2012-09-14 17:08:54 +08:00
|
|
|
AC_CONFIG_FILES([run],
|
|
|
|
[chmod +x,-w run])
|
2013-08-01 04:52:16 +08:00
|
|
|
AC_CONFIG_FILES([\
|
makefile: Move include/Makefile.am to include/libvirt/Makefile.am
The reason for this is to fix the automatic rebuild of libvirt-common.h.in.
All *.in files should be automatically rebuilt each time they're modified.
It works well for makefiles and pkgconfig files, since they do have a valid
dependency in the top-level Makefile. However, with libvirt-common.h.in
there is no dependency in the top-level Makefile and there's no need for it
either, so this rule
include/libvirt/libvirt-common.h: $(top_builddir)/config.status \
$(top_srcdir)/include/libvirt/libvirt-common.h.in
cd $(top_builddir) && $(SHELL) ./config.status $@
is never hit and should be moved to include/Makefile, but that's automake's
job. According to GNU automake docs:
"Files created by AC_CONFIG_FILES, be they
Automake Makefiles or not, are all removed by ‘make distclean’. Their inputs
are automatically distributed, unless they are the output of prior
AC_CONFIG_FILES commands. Finally, rebuild rules are generated in the Automake
Makefile existing in the subdirectory of the output file, if there is one, or
in the top-level Makefile otherwise."
Which means that if we want to have the rule for libvirt-common.h automatically
generated by automake, the include/Makefile.am needs to be moved into libvirt/
subdirectory and $SUBDIRS in the top-level Makefile need to be adjusted as
well. This patch moves Makefile.am from include/ to include/libvirt, adjusting
the prefixes accordingly as well as updates the top-level Makefile $SUBDIRS to
properly hint automake to generate all rules at proper places.
Best way to see the changes, use -M with 'git show'.
Signed-off-by: Erik Skultety <eskultet@redhat.com>
2016-04-06 03:04:06 +08:00
|
|
|
Makefile src/Makefile include/libvirt/Makefile docs/Makefile \
|
2013-08-01 04:52:16 +08:00
|
|
|
gnulib/lib/Makefile \
|
|
|
|
gnulib/tests/Makefile \
|
2014-06-21 00:47:15 +08:00
|
|
|
libvirt.pc \
|
|
|
|
libvirt-qemu.pc \
|
|
|
|
libvirt-lxc.pc \
|
2015-04-15 22:16:24 +08:00
|
|
|
libvirt-admin.pc \
|
2014-06-21 00:48:12 +08:00
|
|
|
src/libvirt.pc \
|
|
|
|
src/libvirt-qemu.pc \
|
|
|
|
src/libvirt-lxc.pc \
|
2014-06-21 00:47:15 +08:00
|
|
|
libvirt.spec mingw-libvirt.spec \
|
2013-08-01 04:52:16 +08:00
|
|
|
po/Makefile.in \
|
2016-01-11 03:36:13 +08:00
|
|
|
include/libvirt/libvirt-common.h \
|
2013-08-01 04:52:16 +08:00
|
|
|
daemon/Makefile \
|
2016-01-10 07:03:56 +08:00
|
|
|
examples/Makefile \
|
2013-08-01 04:52:16 +08:00
|
|
|
tests/Makefile \
|
2016-01-11 04:35:36 +08:00
|
|
|
tools/Makefile])
|
2013-08-01 04:52:16 +08:00
|
|
|
AC_OUTPUT
|
2007-09-19 07:36:30 +08:00
|
|
|
|
|
|
|
AC_MSG_NOTICE([])
|
|
|
|
AC_MSG_NOTICE([Configuration summary])
|
|
|
|
AC_MSG_NOTICE([=====================])
|
|
|
|
AC_MSG_NOTICE([])
|
|
|
|
AC_MSG_NOTICE([Drivers])
|
|
|
|
AC_MSG_NOTICE([])
|
2016-12-08 17:39:06 +08:00
|
|
|
LIBVIRT_DRIVER_RESULT_XEN
|
2016-12-08 17:35:30 +08:00
|
|
|
LIBVIRT_DRIVER_RESULT_QEMU
|
2016-05-08 21:31:36 +08:00
|
|
|
LIBVIRT_DRIVER_RESULT_UML
|
2016-11-29 15:50:58 +08:00
|
|
|
LIBVIRT_DRIVER_RESULT_OPENVZ
|
2016-11-29 15:54:02 +08:00
|
|
|
LIBVIRT_DRIVER_RESULT_VMWARE
|
2016-12-13 01:19:21 +08:00
|
|
|
LIBVIRT_DRIVER_RESULT_VBOX
|
2016-12-12 23:20:41 +08:00
|
|
|
LIBVIRT_DRIVER_RESULT_XENAPI
|
2016-12-12 23:18:02 +08:00
|
|
|
LIBVIRT_DRIVER_RESULT_LIBXL
|
2016-12-08 17:36:55 +08:00
|
|
|
LIBVIRT_DRIVER_RESULT_LXC
|
2016-11-30 19:52:43 +08:00
|
|
|
LIBVIRT_DRIVER_RESULT_PHYP
|
2016-12-01 17:40:31 +08:00
|
|
|
LIBVIRT_DRIVER_RESULT_ESX
|
2016-12-01 17:43:13 +08:00
|
|
|
LIBVIRT_DRIVER_RESULT_HYPERV
|
2015-07-10 22:32:00 +08:00
|
|
|
LIBVIRT_DRIVER_RESULT_VZ
|
2014-02-18 18:08:10 +08:00
|
|
|
LIBVIRT_DRIVER_RESULT_BHYVE
|
2016-12-01 17:23:41 +08:00
|
|
|
LIBVIRT_DRIVER_RESULT_TEST
|
2016-12-01 17:27:19 +08:00
|
|
|
LIBVIRT_DRIVER_RESULT_REMOTE
|
2016-12-01 19:02:30 +08:00
|
|
|
LIBVIRT_DRIVER_RESULT_NETWORK
|
2016-12-01 19:01:33 +08:00
|
|
|
LIBVIRT_DRIVER_RESULT_LIBVIRTD
|
2016-12-01 22:50:59 +08:00
|
|
|
LIBVIRT_DRIVER_RESULT_INTERFACE
|
2007-09-19 07:36:30 +08:00
|
|
|
AC_MSG_NOTICE([])
|
2008-02-20 23:42:30 +08:00
|
|
|
AC_MSG_NOTICE([Storage Drivers])
|
|
|
|
AC_MSG_NOTICE([])
|
2016-12-07 15:46:51 +08:00
|
|
|
LIBVIRT_STORAGE_RESULT_DIR
|
2008-02-20 23:42:30 +08:00
|
|
|
AC_MSG_NOTICE([ FS: $with_storage_fs])
|
|
|
|
AC_MSG_NOTICE([ NetFS: $with_storage_fs])
|
2008-02-20 23:45:33 +08:00
|
|
|
AC_MSG_NOTICE([ LVM: $with_storage_lvm])
|
2008-02-20 23:49:25 +08:00
|
|
|
AC_MSG_NOTICE([ iSCSI: $with_storage_iscsi])
|
2009-04-02 00:03:22 +08:00
|
|
|
AC_MSG_NOTICE([ SCSI: $with_storage_scsi])
|
2009-09-08 21:47:45 +08:00
|
|
|
AC_MSG_NOTICE([ mpath: $with_storage_mpath])
|
2008-02-20 23:52:17 +08:00
|
|
|
AC_MSG_NOTICE([ Disk: $with_storage_disk])
|
2012-05-14 17:06:42 +08:00
|
|
|
AC_MSG_NOTICE([ RBD: $with_storage_rbd])
|
2012-07-19 03:06:58 +08:00
|
|
|
AC_MSG_NOTICE([Sheepdog: $with_storage_sheepdog])
|
2013-11-20 07:26:05 +08:00
|
|
|
AC_MSG_NOTICE([ Gluster: $with_storage_gluster])
|
2014-07-21 22:38:42 +08:00
|
|
|
AC_MSG_NOTICE([ ZFS: $with_storage_zfs])
|
2008-02-20 23:42:30 +08:00
|
|
|
AC_MSG_NOTICE([])
|
2009-03-03 18:06:49 +08:00
|
|
|
AC_MSG_NOTICE([Security Drivers])
|
|
|
|
AC_MSG_NOTICE([])
|
2016-12-13 01:20:45 +08:00
|
|
|
LIBVIRT_SECDRIVER_RESULT_SELINUX
|
2016-12-01 19:08:20 +08:00
|
|
|
LIBVIRT_SECDRIVER_RESULT_APPARMOR
|
2009-03-03 18:06:49 +08:00
|
|
|
AC_MSG_NOTICE([])
|
2008-11-21 20:16:08 +08:00
|
|
|
AC_MSG_NOTICE([Driver Loadable Modules])
|
|
|
|
AC_MSG_NOTICE([])
|
2016-11-14 22:34:04 +08:00
|
|
|
LIBVIRT_RESULT_DRIVER_MODULES
|
2009-08-05 16:43:37 +08:00
|
|
|
AC_MSG_NOTICE([])
|
|
|
|
AC_MSG_NOTICE([Libraries])
|
|
|
|
AC_MSG_NOTICE([])
|
2012-09-20 20:28:45 +08:00
|
|
|
LIBVIRT_RESULT_APPARMOR
|
2012-09-19 21:00:34 +08:00
|
|
|
LIBVIRT_RESULT_ATTR
|
2012-09-20 20:12:40 +08:00
|
|
|
LIBVIRT_RESULT_AUDIT
|
2012-09-20 22:22:09 +08:00
|
|
|
LIBVIRT_RESULT_AVAHI
|
2012-09-20 22:52:14 +08:00
|
|
|
LIBVIRT_RESULT_BLKID
|
2012-09-20 20:58:37 +08:00
|
|
|
LIBVIRT_RESULT_CAPNG
|
2013-01-09 05:31:58 +08:00
|
|
|
LIBVIRT_RESULT_CURL
|
2012-09-20 22:12:08 +08:00
|
|
|
LIBVIRT_RESULT_DBUS
|
2016-11-12 07:20:21 +08:00
|
|
|
LIBVIRT_RESULT_DLOPEN
|
2016-11-14 22:34:40 +08:00
|
|
|
LIBVIRT_RESULT_FIREWALLD
|
2013-01-09 05:06:57 +08:00
|
|
|
LIBVIRT_RESULT_FUSE
|
2013-11-20 07:26:05 +08:00
|
|
|
LIBVIRT_RESULT_GLUSTER
|
2016-11-10 21:33:41 +08:00
|
|
|
LIBVIRT_RESULT_GNUTLS
|
2012-09-20 22:39:12 +08:00
|
|
|
LIBVIRT_RESULT_HAL
|
2016-12-12 17:07:24 +08:00
|
|
|
LIBVIRT_RESULT_LIBNL
|
2016-12-09 18:01:47 +08:00
|
|
|
LIBVIRT_RESULT_LIBPCAP
|
2016-11-09 22:28:35 +08:00
|
|
|
LIBVIRT_RESULT_LIBSSH
|
2016-12-12 23:18:02 +08:00
|
|
|
LIBVIRT_RESULT_LIBXL
|
2016-12-19 22:11:06 +08:00
|
|
|
LIBVIRT_RESULT_LIBXML
|
2016-12-12 16:59:15 +08:00
|
|
|
LIBVIRT_RESULT_MACVTAP
|
2012-09-20 22:14:52 +08:00
|
|
|
LIBVIRT_RESULT_NETCF
|
2016-11-10 21:33:41 +08:00
|
|
|
LIBVIRT_RESULT_NSS
|
2012-09-20 20:47:23 +08:00
|
|
|
LIBVIRT_RESULT_NUMACTL
|
2013-01-09 06:08:53 +08:00
|
|
|
LIBVIRT_RESULT_OPENWSMAN
|
2012-09-20 22:34:13 +08:00
|
|
|
LIBVIRT_RESULT_PCIACCESS
|
2016-12-12 17:12:13 +08:00
|
|
|
LIBVIRT_RESULT_PM_UTILS
|
2016-12-12 15:05:18 +08:00
|
|
|
LIBVIRT_RESULT_POLKIT
|
2013-05-02 10:54:57 +08:00
|
|
|
LIBVIRT_RESULT_READLINE
|
2012-09-20 20:04:57 +08:00
|
|
|
LIBVIRT_RESULT_SANLOCK
|
2012-09-20 20:06:12 +08:00
|
|
|
LIBVIRT_RESULT_SASL
|
2012-09-20 20:21:48 +08:00
|
|
|
LIBVIRT_RESULT_SELINUX
|
2013-01-09 05:47:55 +08:00
|
|
|
LIBVIRT_RESULT_SSH2
|
2012-09-20 22:34:13 +08:00
|
|
|
LIBVIRT_RESULT_UDEV
|
2016-12-13 19:40:48 +08:00
|
|
|
LIBVIRT_RESULT_VIRTUALPORT
|
2016-12-13 19:40:30 +08:00
|
|
|
LIBVIRT_RESULT_XDR
|
2016-12-08 17:39:06 +08:00
|
|
|
LIBVIRT_RESULT_XEN
|
2016-12-12 23:20:41 +08:00
|
|
|
LIBVIRT_RESULT_XENAPI
|
2012-09-20 20:03:27 +08:00
|
|
|
LIBVIRT_RESULT_YAJL
|
2012-07-16 01:18:44 +08:00
|
|
|
if test "$with_storage_rbd" = "yes" ; then
|
|
|
|
AC_MSG_NOTICE([ rbd: $LIBRBD_LIBS])
|
|
|
|
else
|
|
|
|
AC_MSG_NOTICE([ rbd: no])
|
|
|
|
fi
|
|
|
|
|
2016-12-15 18:48:38 +08:00
|
|
|
AC_MSG_NOTICE([])
|
|
|
|
AC_MSG_NOTICE([Windows])
|
|
|
|
AC_MSG_NOTICE([])
|
|
|
|
LIBVIRT_WIN_RESULT_COMMON
|
2016-12-06 20:57:12 +08:00
|
|
|
LIBVIRT_WIN_RESULT_WINDRES
|
2007-09-19 07:36:30 +08:00
|
|
|
AC_MSG_NOTICE([])
|
2008-05-29 23:13:07 +08:00
|
|
|
AC_MSG_NOTICE([Test suite])
|
|
|
|
AC_MSG_NOTICE([])
|
2015-03-17 16:45:59 +08:00
|
|
|
AC_MSG_NOTICE([ Coverage: $enable_coverage])
|
|
|
|
AC_MSG_NOTICE([ Alloc OOM: $enable_oom])
|
2008-05-29 23:13:07 +08:00
|
|
|
AC_MSG_NOTICE([])
|
2007-09-19 07:36:30 +08:00
|
|
|
AC_MSG_NOTICE([Miscellaneous])
|
|
|
|
AC_MSG_NOTICE([])
|
2016-12-13 20:39:36 +08:00
|
|
|
LIBVIRT_RESULT_DEBUG
|
2016-12-13 20:34:42 +08:00
|
|
|
AC_MSG_NOTICE([ Use -Werror: $enable_werror])
|
2016-04-08 23:14:13 +08:00
|
|
|
AC_MSG_NOTICE([ Warning Flags: $WARN_CFLAGS])
|
2016-11-30 21:34:57 +08:00
|
|
|
LIBVIRT_RESULT_DTRACE
|
2016-12-12 20:54:35 +08:00
|
|
|
LIBVIRT_RESULT_NUMAD
|
2016-12-12 02:59:03 +08:00
|
|
|
LIBVIRT_RESULT_XML_CATALOG
|
2016-05-02 19:27:47 +08:00
|
|
|
LIBVIRT_RESULT_INIT_SCRIPT
|
2016-12-13 20:45:25 +08:00
|
|
|
LIBVIRT_RESULT_CHRDEV_LOCK_FILES
|
2016-12-09 18:04:33 +08:00
|
|
|
LIBVIRT_RESULT_DEFAULT_EDITOR
|
2016-12-15 20:39:21 +08:00
|
|
|
LIBVIRT_RESULT_LOADER_NVRAM
|
2016-12-14 23:51:30 +08:00
|
|
|
LIBVIRT_RESULT_LOGIN_SHELL
|
|
|
|
LIBVIRT_RESULT_HOST_VALIDATE
|
2016-12-14 23:33:57 +08:00
|
|
|
LIBVIRT_RESULT_TLS_PRIORITY
|
2007-09-19 07:36:30 +08:00
|
|
|
AC_MSG_NOTICE([])
|
2014-01-16 01:06:58 +08:00
|
|
|
AC_MSG_NOTICE([Developer Tools])
|
|
|
|
AC_MSG_NOTICE([])
|
2016-12-13 19:40:05 +08:00
|
|
|
LIBVIRT_RESULT_WIRESHARK
|
2014-01-16 01:06:58 +08:00
|
|
|
AC_MSG_NOTICE([])
|
2009-07-16 05:25:01 +08:00
|
|
|
AC_MSG_NOTICE([Privileges])
|
|
|
|
AC_MSG_NOTICE([])
|
2016-12-12 22:35:07 +08:00
|
|
|
LIBVIRT_RESULT_QEMU_PRIVILEGES
|
2009-07-24 22:17:06 +08:00
|
|
|
AC_MSG_NOTICE([])
|