configure.ac 71.2 KB
Newer Older
D
Daniel Veillard 已提交
1
dnl Process this file with autoconf to produce a configure script.
2

D
Daniel Veillard 已提交
3
AC_INIT([libvirt], [0.8.1])
4 5
AC_CONFIG_SRCDIR([src/libvirt.c])
AC_CONFIG_AUX_DIR([build-aux])
E
Eric Blake 已提交
6
AC_CONFIG_HEADERS([config.h])
7
AC_CONFIG_MACRO_DIR([m4])
8 9
dnl Make automake keep quiet about wildcards & other GNUmake-isms
AM_INIT_AUTOMAKE([-Wno-portability])
10 11 12 13 14

# Use the silent-rules feature when possible.
m4_ifndef([AM_SILENT_RULES], [m4_define([AM_SILENT_RULES],[])])
AM_SILENT_RULES([yes])

D
Daniel Veillard 已提交
15 16
AC_CANONICAL_HOST

17 18 19
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}'`
20 21 22
LIBVIRT_VERSION=$LIBVIRT_MAJOR_VERSION.$LIBVIRT_MINOR_VERSION.$LIBVIRT_MICRO_VERSION$LIBVIRT_MICRO_VERSION_SUFFIX
LIBVIRT_VERSION_INFO=`expr $LIBVIRT_MAJOR_VERSION + $LIBVIRT_MINOR_VERSION`:$LIBVIRT_MICRO_VERSION:$LIBVIRT_MINOR_VERSION
LIBVIRT_VERSION_NUMBER=`expr $LIBVIRT_MAJOR_VERSION \* 1000000 + $LIBVIRT_MINOR_VERSION \* 1000 + $LIBVIRT_MICRO_VERSION`
D
Daniel Veillard 已提交
23

24 25 26 27 28 29
AC_SUBST([LIBVIRT_MAJOR_VERSION])
AC_SUBST([LIBVIRT_MINOR_VERSION])
AC_SUBST([LIBVIRT_MICRO_VERSION])
AC_SUBST([LIBVIRT_VERSION])
AC_SUBST([LIBVIRT_VERSION_INFO])
AC_SUBST([LIBVIRT_VERSION_NUMBER])
D
Daniel Veillard 已提交
30

31
dnl Required minimum versions of all libs we depend on
D
Daniel Veillard 已提交
32
LIBXML_REQUIRED="2.6.0"
33
GNUTLS_REQUIRED="1.0.25"
34
AVAHI_REQUIRED="0.6.0"
35
POLKIT_REQUIRED="0.6"
36
PARTED_REQUIRED="1.8.0"
D
Daniel Veillard 已提交
37
NETCF_REQUIRED="0.1.4"
38 39 40 41 42 43
UDEV_REQUIRED=145
PCIACCESS_REQUIRED=0.10.0
XMLRPC_REQUIRED=1.14.0
HAL_REQUIRED=0.5.0
DEVMAPPER_REQUIRED=1.0.0
LIBCURL_REQUIRED="7.18.0"
44
LIBPCAP_REQUIRED="1.0.0"
45

46
dnl Checks for C compiler.
47 48 49
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_CPP
50

51 52 53 54
gl_EARLY
gl_INIT

AM_PROG_CC_STDC
55
AC_TYPE_UID_T
56

57 58
dnl Make sure we have an ANSI compiler
AM_C_PROTOTYPES
59
test "x$U" != "x" && AC_MSG_ERROR([Compiler not ANSI compliant])
60

61 62 63
dnl Support building Win32 DLLs (must appear *before* AM_PROG_LIBTOOL)
AC_LIBTOOL_WIN32_DLL

64
AM_PROG_LIBTOOL
65
AM_PROG_CC_C_O
66
AM_PROG_LD
67

68
VERSION_SCRIPT_FLAGS=-Wl,--version-script=
69
`$LD --help 2>&1 | grep -- --version-script >/dev/null` || \
70 71
    VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,"

72
LIBVIRT_COMPILE_WARNINGS([maximum])
73

J
Jiri Denemark 已提交
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
AC_MSG_CHECKING([for CPUID instruction])
AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
  [[
    #include <stdint.h>
  ]],
  [[
    uint32_t eax, ebx, ecx, edx;
    asm volatile (
        "cpuid"
        : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
        : "a" (eax));
  ]]),
  [have_cpuid=yes],
  [have_cpuid=no])
if test "x$have_cpuid" = xyes; then
  AC_DEFINE_UNQUOTED([HAVE_CPUID], 1, [whether CPUID instruction is supported])
fi
AC_MSG_RESULT([$have_cpuid])


94
dnl Availability of various common functions (non-fatal if missing).
E
Eric Blake 已提交
95
AC_CHECK_FUNCS_ONCE([cfmakeraw regexec sched_getaffinity getuid getgid \
96
 posix_fallocate mmap])
97

98
dnl Availability of various not common threadsafe functions
99
AC_CHECK_FUNCS_ONCE([strerror_r getmntent_r getgrnam_r getpwuid_r])
100 101 102 103 104 105 106 107

dnl Availability of pthread functions (if missing, win32 threading is
dnl assumed).  Because of $LIB_PTHREAD, we cannot use AC_CHECK_FUNCS_ONCE.
dnl LIB_PTHREAD was set during gl_INIT by gnulib.
old_LIBS=$LIBS
LIBS="$LIBS $LIB_PTHREAD"
AC_CHECK_FUNCS([pthread_sigmask pthread_mutexattr_init])
LIBS=$old_libs
108

109
dnl Availability of various common headers (non-fatal if missing).
E
Eric Blake 已提交
110
AC_CHECK_HEADERS([pwd.h paths.h regex.h sys/syslimits.h \
E
Eric Blake 已提交
111
  sched.h termios.h sys/poll.h syslog.h mntent.h net/ethernet.h])
112

113 114
dnl Where are the XDR functions?
dnl If portablexdr is installed, prefer that.
J
John Levon 已提交
115 116
dnl Otherwise try -lrpc (Cygwin) -lxdr (some MinGW), -lnsl (Solaris)
dnl or none (most Unix)
117
AC_CHECK_LIB([portablexdr],[xdrmem_create],[],[
118 119
	AC_SEARCH_LIBS([xdrmem_create],[rpc xdr nsl],[],
		[AC_MSG_ERROR([Cannot find a XDR library])])
120
	])
121

122 123 124
dnl check for cygwin's variation in xdr function names
AC_CHECK_FUNCS([xdr_u_int64_t],[],[],[#include <rpc/xdr.h>])

D
Daniel P. Berrange 已提交
125 126
AC_CHECK_LIB([intl],[gettext],[])

127
dnl Do we have rpcgen?
128
AC_PATH_PROG([RPCGEN], [rpcgen], [no])
129
AM_CONDITIONAL([HAVE_RPCGEN], [test "x$ac_cv_path_RPCGEN" != "xno"])
130
dnl Is this GLIBC's buggy rpcgen?
131
AM_CONDITIONAL([HAVE_GLIBC_RPCGEN],
132 133
	       [test "x$ac_cv_path_RPCGEN" != "xno" &&
	        $ac_cv_path_RPCGEN -t </dev/null >/dev/null 2>&1])
134

135
dnl Miscellaneous external programs.
136 137 138 139
AC_PATH_PROG([RM], [rm], [/bin/rm])
AC_PATH_PROG([MV], [mv], [/bin/mv])
AC_PATH_PROG([TAR], [tar], [/bin/tar])
AC_PATH_PROG([XMLLINT], [xmllint], [/usr/bin/xmllint])
140
AC_PATH_PROG([XMLCATALOG], [xmlcatalog], [/usr/bin/xmlcatalog])
141
AC_PATH_PROG([XSLTPROC], [xsltproc], [/usr/bin/xsltproc])
142
AC_PATH_PROG([AUGPARSE], [augparse], [/usr/bin/augparse])
R
Richard W.M. Jones 已提交
143 144
AC_PROG_MKDIR_P

145 146 147 148
dnl External programs that we can use if they are available.
dnl We will hard-code paths to these programs unless we cannot
dnl detect them, in which case we'll search for the program
dnl along the $PATH at runtime and fail if it's not there.
149
AC_PATH_PROG([DNSMASQ], [dnsmasq], [dnsmasq],
150
	[/sbin:/usr/sbin:/usr/local/sbin:$PATH])
151
AC_PATH_PROG([BRCTL], [brctl], [brctl],
152
	[/sbin:/usr/sbin:/usr/local/sbin:$PATH])
153 154
AC_PATH_PROG([UDEVADM], [udevadm], [],
	[/sbin:/usr/sbin:/usr/local/sbin:$PATH])
155 156
AC_PATH_PROG([UDEVSETTLE], [udevsettle], [],
	[/sbin:/usr/sbin:/usr/local/sbin:$PATH])
157 158
AC_PATH_PROG([MODPROBE], [modprobe], [],
	[/sbin:/usr/sbin:/usr/local/sbin:$PATH])
159 160 161 162 163

AC_DEFINE_UNQUOTED([DNSMASQ],["$DNSMASQ"],
        [Location or name of the dnsmasq program])
AC_DEFINE_UNQUOTED([BRCTL],["$BRCTL"],
        [Location or name of the brctl program (see bridge-utils)])
164 165 166 167
if test -n "$UDEVADM"; then
  AC_DEFINE_UNQUOTED([UDEVADM],["$UDEVADM"],
        [Location or name of the udevadm program])
fi
168 169 170 171
if test -n "$UDEVSETTLE"; then
  AC_DEFINE_UNQUOTED([UDEVSETTLE],["$UDEVSETTLE"],
        [Location or name of the udevsettle program])
fi
172 173 174 175
if test -n "$MODPROBE"; then
  AC_DEFINE_UNQUOTED([MODPROBE],["$MODPROBE"],
        [Location or name of the modprobe program])
fi
176

177
dnl Specific dir for HTML output ?
178 179
AC_ARG_WITH([html-dir], [AC_HELP_STRING([--with-html-dir=path],
            [path to base html directory, default $datadir/doc/html])],
180 181
            [HTML_DIR=$withval], [HTML_DIR='$(datadir)/doc'])

182 183
AC_ARG_WITH([html-subdir], [AC_HELP_STRING([--with-html-subdir=path],
            [directory used under html-dir, default $PACKAGE-$VERSION/html])],
184 185
            [test "x$withval" != "x" && HTML_DIR="$HTML_DIR/$withval"],
            [HTML_DIR="$HTML_DIR/\$(PACKAGE)-\$(VERSION)/html"])
186
AC_SUBST([HTML_DIR])
187

188 189 190 191
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

192
if test "$prefix" = "/usr" && test "$localstatedir" = '${prefix}/var' ; then
193 194
    localstatedir='/var'
fi
195
if test "$prefix" = "/usr" && test "$sysconfdir" = '${prefix}/etc' ; then
196 197 198
    sysconfdir='/etc'
fi

199
dnl lxc and qemu drivers require linux headers
200 201 202 203 204
case "$host" in
  *-*-linux*)
    # match linux here so the *) case will match anything non-linux
    ;;
  *)
205 206 207 208 209 210 211 212
    if test "x$with_lxc" != "xyes"
    then
        with_lxc=no
    fi
    if test "x$with_qemu" != "xyes"
    then
        with_qemu=no
    fi
213 214
    ;;
esac
215

216
dnl Allow to build without Xen, QEMU/KVM, test or remote driver
217
AC_ARG_WITH([xen],
218
  AC_HELP_STRING([--with-xen], [add XEN support @<:@default=check@:>@]),[],[with_xen=check])
219
AC_ARG_WITH([xen-inotify],
220
  AC_HELP_STRING([--with-xen-inotify], [add XEN inotify support @<:@default=check@:>@]),[],[with_xen_inotify=check])
221
AC_ARG_WITH([qemu],
222
  AC_HELP_STRING([--with-qemu], [add QEMU/KVM support @<:@default=yes@:>@]),[],[with_qemu=yes])
223
AC_ARG_WITH([uml],
224
  AC_HELP_STRING([--with-uml], [add UML support @<:@default=check@:>@]),[],[with_uml=check])
225
AC_ARG_WITH([openvz],
226
  AC_HELP_STRING([--with-openvz], [add OpenVZ support @<:@default=yes@:>@]),[],[with_openvz=yes])
227
AC_ARG_WITH([libssh2],
228
  AC_HELP_STRING([--with-libssh2=@<:@PFX@:>@], [libssh2 location @<:@default=/usr/local/lib@:>@]),[],[with_libssh2=yes])
229
AC_ARG_WITH([phyp],
230
  AC_HELP_STRING([--with-phyp], [add PHYP support @<:@default=check@:>@]),[],[with_phyp=check])
231 232
AC_ARG_WITH([xenapi],
  AC_HELP_STRING([--with-xenapi], [add XenAPI support @<:@default=check@:>@]),[],[with_xenapi=check])
233
AC_ARG_WITH([vbox],
234
  AC_HELP_STRING([--with-vbox], [add VirtualBox support @<:@default=yes@:>@]),[],[with_vbox=yes])
235
AC_ARG_WITH([lxc],
236
  AC_HELP_STRING([--with-lxc], [add Linux Container support @<:@default=check@:>@]),[],[with_lxc=check])
D
Daniel Veillard 已提交
237
AC_ARG_WITH([one],
238
  AC_HELP_STRING([--with-one], [add ONE support @<:@default=check@:>@]),[],[with_one=check])
239
AC_ARG_WITH([esx],
240
  AC_HELP_STRING([--with-esx], [add ESX support @<:@default=check@:>@]),[],[with_esx=check])
241
AC_ARG_WITH([test],
242
  AC_HELP_STRING([--with-test], [add test driver support @<:@default=yes@:>@]),[],[with_test=yes])
243
AC_ARG_WITH([remote],
244
  AC_HELP_STRING([--with-remote], [add remote driver support @<:@default=yes@:>@]),[],[with_remote=yes])
245
AC_ARG_WITH([libvirtd],
246
  AC_HELP_STRING([--with-libvirtd], [add libvirtd support @<:@default=yes@:>@]),[],[with_libvirtd=yes])
247

248 249 250
dnl
dnl specific tests to setup DV devel environments with debug etc ...
dnl
E
Eric Blake 已提交
251
if test "${LOGNAME}" = "veillard" && test "`pwd`" = "/u/veillard/libvirt" ; then
252 253 254 255
    STATIC_BINARIES="-static"
else
    STATIC_BINARIES=
fi
256
AC_SUBST([STATIC_BINARIES])
257

258
dnl --enable-debug=(yes|no)
259
AC_ARG_ENABLE([debug],
260 261
              [AC_HELP_STRING([--enable-debug=@<:@no|yes@:>@],
                             [enable debugging output @<:@default=yes@:>@])],[],[enable_debug=yes])
262
AM_CONDITIONAL([ENABLE_DEBUG], test x"$enable_debug" = x"yes")
263
if test x"$enable_debug" = x"yes"; then
264
   AC_DEFINE([ENABLE_DEBUG], [], [whether debugging is enabled])
265 266
fi

267

268
AC_MSG_CHECKING([where to write libvirtd PID file])
269
AC_ARG_WITH([remote-pid-file], [AC_HELP_STRING([--with-remote-pid-file=@<:@pidfile|none@:>@], [PID file for libvirtd])])
270 271 272 273 274 275 276
if test "x$with_remote_pid_file" == "x" ; then
   REMOTE_PID_FILE="$localstatedir/run/libvirtd.pid"
elif test "x$with_remote_pid_file" == "xnone" ; then
   REMOTE_PID_FILE=""
else
   REMOTE_PID_FILE="$with_remote_pid_file"
fi
277
AC_SUBST([REMOTE_PID_FILE])
278 279
AC_MSG_RESULT($REMOTE_PID_FILE)

280 281 282 283
dnl
dnl init script flavor
dnl
AC_MSG_CHECKING([for init script flavor])
284
AC_ARG_WITH([init-script],
285 286
            [AC_HELP_STRING([--with-init-script=@<:@redhat|auto|none@:>@],
		     [Style of init script to install @<:@default=auto@:>@])])
287
if test "x$with_init_script" = "x" || test "x$with_init_script" = "xauto"; then
288
    if test -f /etc/redhat-release ; then
289
        with_init_script=redhat
290
    else
291
        with_init_script=none
292 293
    fi
fi
294 295
AM_CONDITIONAL([LIBVIRT_INIT_SCRIPT_RED_HAT], test x$with_init_script = xredhat)
AC_MSG_RESULT($with_init_script)
296

297 298
dnl RHEL-5 has a peculiar version of Xen, which requires some special casing
AC_ARG_WITH([rhel5-api],
299 300
	[AC_HELP_STRING([--with-rhel5-api=@<:@ARG@:>@],
		[build for the RHEL-5 API @<:@default=no@:>@])])
301 302 303 304
if test x"$with_rhel5_api" = x"yes"; then
   AC_DEFINE([WITH_RHEL5_API], [1], [whether building for the RHEL-5 API])
fi

305 306
AC_PATH_PROG([IPTABLES_PATH], [iptables], /sbin/iptables, [/usr/sbin:$PATH])
AC_DEFINE_UNQUOTED([IPTABLES_PATH], "$IPTABLES_PATH", [path to iptables binary])
307

G
Gerhard Stenzel 已提交
308 309 310
AC_PATH_PROG([EBTABLES_PATH], [ebtables], /sbin/ebtables, [/usr/sbin:$PATH])
AC_DEFINE_UNQUOTED([EBTABLES_PATH], "$EBTABLES_PATH", [path to ebtables binary])

S
Stefan Berger 已提交
311

312
if test "$with_openvz" = "yes"; then
313
    AC_DEFINE_UNQUOTED([WITH_OPENVZ], 1, [whether OpenVZ driver is enabled])
314
fi
315 316
AM_CONDITIONAL([WITH_OPENVZ], [test "$with_openvz" = "yes"])

317
if test "x$with_vbox" = "xyes"; then
318 319 320 321 322 323
    AC_SEARCH_LIBS([dlopen], [dl], [], [AC_MSG_ERROR([Unable to find dlopen()])])
    case $ac_cv_search_dlopen in
      no*) DLOPEN_LIBS= ;;
      *) DLOPEN_LIBS=$ac_cv_search_dlopen ;;
    esac
    AC_SUBST([DLOPEN_LIBS])
324 325 326 327
    AC_DEFINE_UNQUOTED([WITH_VBOX], 1, [whether VirtualBox driver is enabled])
fi
AM_CONDITIONAL([WITH_VBOX], [test "$with_vbox" = "yes"])

328 329 330
if test "$with_libvirtd" = "no" ; then
  with_qemu=no
fi
D
Daniel P. Berrange 已提交
331
if test "$with_qemu" = "yes" ; then
332
    AC_DEFINE_UNQUOTED([WITH_QEMU], 1, [whether QEMU driver is enabled])
333
fi
334
AM_CONDITIONAL([WITH_QEMU], [test "$with_qemu" = "yes"])
335

D
Daniel Veillard 已提交
336 337 338 339 340
if test "$with_one" = "yes" ; then
    AC_DEFINE_UNQUOTED([WITH_ONE],1,[whether ONE driver is enabled])
fi
AM_CONDITIONAL([WITH_ONE],[test "$with_one" = "yes"])

D
Daniel P. Berrange 已提交
341
if test "$with_test" = "yes" ; then
342
    AC_DEFINE_UNQUOTED([WITH_TEST], 1, [whether Test driver is enabled])
343
fi
344
AM_CONDITIONAL([WITH_TEST], [test "$with_test" = "yes"])
345

D
Daniel P. Berrange 已提交
346
if test "$with_remote" = "yes" ; then
347
    AC_DEFINE_UNQUOTED([WITH_REMOTE], 1, [whether Remote driver is enabled])
348
fi
349
AM_CONDITIONAL([WITH_REMOTE], [test "$with_remote" = "yes"])
350

351
if test "$with_libvirtd" = "yes" ; then
352
    AC_DEFINE_UNQUOTED([WITH_LIBVIRTD], 1, [whether libvirtd daemon is enabled])
353
fi
354
AM_CONDITIONAL([WITH_LIBVIRTD], [test "$with_libvirtd" = "yes"])
355

356 357 358 359 360 361 362

old_LIBS="$LIBS"
old_CFLAGS="$CFLAGS"
LIBXENSERVER_LIBS=""
LIBXENSERVER_CFLAGS=""
dnl search for the XenServer library
if test "$with_xenapi" != "no" ; then
363
    if test "$with_xenapi" != "yes" && test "$with_xenapi" != "check" ; then
364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395
        LIBXENSERVER_CFLAGS="-I$with_xenapi/include"
        LIBXENSERVER_LIBS="-L$with_xenapi"
    fi
    fail=0
    CFLAGS="$CFLAGS $LIBXENSERVER_CFLAGS"
    LIBS="$LIBS $LIBXENSERVER_LIBS"
    AC_CHECK_LIB([xenserver], [xen_vm_start], [
        with_xenapi=yes
        LIBXENSERVER_LIBS="$LIBXENSERVER_LIBS -lxenserver"
    ],[
        if test "$with_xenapi" = "yes"; then
            fail=1
        fi
            with_xenapi=no
    ])
fi

LIBS="$old_LIBS"
CFLAGS="$old_CFLAGS"

if test $fail = 1; then
    AC_MSG_ERROR([You must install the XenServer Library to compile XenAPI driver with -lxenserver])
fi

if test "$with_xenapi" = "yes"; then
    AC_DEFINE_UNQUOTED([WITH_XENAPI], 1, [whether XenAPI driver is enabled])
fi

AC_SUBST([LIBXENSERVER_CFLAGS])
AC_SUBST([LIBXENSERVER_LIBS])


396 397
old_LIBS="$LIBS"
old_CFLAGS="$CFLAGS"
398 399 400 401
XEN_LIBS=""
XEN_CFLAGS=""
dnl search for the Xen store library
if test "$with_xen" != "no" ; then
402
    if test "$with_xen" != "yes" && test "$with_xen" != "check" ; then
403 404
        XEN_CFLAGS="-I$with_xen/include"
        XEN_LIBS="-L$with_xen/lib64 -L$with_xen/lib"
405
    fi
406 407 408 409 410 411 412
    fail=0
    CFLAGS="$CFLAGS $XEN_CFLAGS"
    LIBS="$LIBS $XEN_LIBS"
    AC_CHECK_LIB([xenstore], [xs_read], [
           with_xen=yes
           XEN_LIBS="$XEN_LIBS -lxenstore"
       ],[
413
           if test "$with_xen" = "yes"; then
414 415
               fail=1
           fi
416
           with_xen=no
417
       ])
418
fi
419

420
if test "$with_xen" != "no" ; then
421
    AC_CHECK_HEADERS([xen/xen.h xen/version.h xen/dom0_ops.h],,[
422 423 424 425
       if test "$with_xen" = "yes"; then
           fail=1
       fi
       with_xen=no
426 427 428 429
    ],
[#include <stdio.h>
#include <stdint.h>
])
430
fi
431

432
if test "$with_xen" != "no" ; then
433
    dnl Search for the location of <xen/{linux,sys}/privcmd.h>.
434 435 436 437 438 439 440 441 442 443 444 445
    found=
    AC_CHECK_HEADERS([xen/sys/privcmd.h xen/linux/privcmd.h], [found=yes; break;], [],
       [#include <stdio.h>
        #include <stdint.h>
        #include <xen/xen.h>
       ])
    if test "x$found" != "xyes"; then
        if test "$with_xen" = "yes"; then
            fail=1
        fi
        with_xen=no
    fi
446
fi
447 448 449 450 451 452 453 454

LIBS="$old_LIBS"
CFLAGS="$old_CFLAGS"

if test $fail = 1; then
    AC_MSG_ERROR([You must install the Xen development package to compile Xen driver with -lxenstore])
fi

455 456 457
if test "$with_xen" = "yes"; then
    AC_DEFINE_UNQUOTED([WITH_XEN], 1, [whether Xen driver is enabled])
fi
458

459 460 461
AM_CONDITIONAL([WITH_XEN], [test "$with_xen" = "yes"])
AC_SUBST([XEN_CFLAGS])
AC_SUBST([XEN_LIBS])
462

463 464 465 466 467 468 469
dnl
dnl check for kernel headers required by xen_inotify
dnl
if test "$with_xen" != "yes"; then
    with_xen_inotify=no
fi
if test "$with_xen_inotify" != "no"; then
470 471 472 473 474 475 476 477 478 479
    AC_CHECK_HEADER([sys/inotify.h], [
        with_xen_inotify=yes
    ], [
        if test "$with_xen_inotify" = "check"; then
            with_xen_inotify=no
            AC_MSG_NOTICE([Header file <sys/inotify.h> is required for Xen Inotify support, disabling it])
        else
            AC_MSG_ERROR([Header file <sys/inotify.h> is required for Xen Inotify support!])
        fi
    0])
480 481 482 483 484 485
fi
if test "$with_xen_inotify" = "yes"; then
    AC_DEFINE_UNQUOTED([WITH_XEN_INOTIFY], 1,[whether Xen inotify sub-driver is enabled])
fi
AM_CONDITIONAL([WITH_XEN_INOTIFY], [test "$with_xen_inotify" = "yes"])

486 487
dnl
dnl check for kvm headers
488
dnl
489 490
AC_CHECK_HEADERS([linux/kvm.h])

491 492 493
dnl
dnl check for sufficient headers for LXC
dnl
494 495 496
if test "$with_libvirtd" = "no" ; then
  with_lxc=no
fi
497
if test "$with_lxc" = "yes" || test "$with_lxc" = "check"; then
498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526
    AC_CHECK_HEADER([sched.h],
    dnl Header is there, check for unshare()
    [
        AC_TRY_LINK([#define _GNU_SOURCE
            #include <sched.h>], [
            unshare (1);
	], [
            with_lxc=yes
	], [
            if test "$with_lxc" = "check"; then
	        with_lxc=no
		AC_MSG_NOTICE([Function unshare() not present in <sched.h> header but required for LXC driver, disabling it])
            else
	        AC_MSG_ERROR([Function unshare() not present in <sched.h> header, but required for LXC driver])
            fi

        ])

    dnl Header is not there
    ],[
        if test "$with_lxc" = "check"; then
            with_lxc=no
            AC_MSG_NOTICE([Header <sched.h> not found but required for LXC driver, disabling it])
        else
            AC_MSG_ERROR([Header <sched.h> not found but required for LXC driver])
        fi

    ])
fi
527 528 529 530 531 532 533 534 535
if test "$with_lxc" = "yes" ; then
    AC_DEFINE_UNQUOTED([WITH_LXC], 1, [whether LXC driver is enabled])
fi
AM_CONDITIONAL([WITH_LXC], [test "$with_lxc" = "yes"])


dnl
dnl check for kernel headers required by src/bridge.c
dnl
536
if test "$with_qemu" = "yes" || test "$with_lxc" = "yes" ; then
537
  AC_CHECK_HEADERS([linux/param.h linux/sockios.h linux/if_bridge.h linux/if_tun.h],,
538
                   AC_MSG_ERROR([You must install kernel-headers in order to compile libvirt with QEMU or LXC support]))
539 540
fi

541

D
Daniel P. Berrange 已提交
542 543 544
dnl Need to test if pkg-config exists
PKG_PROG_PKG_CONFIG

D
Daniel Veillard 已提交
545 546 547
dnl OpenNebula driver Compilation setting
dnl

548 549 550
if test "$with_libvirtd" = "no" ; then
  with_one=no
fi
551 552
XMLRPC_CFLAGS=
XMLRPC_LIBS=
553
if test "x$with_one" = "xyes" || test "x$with_one" = "xcheck"; then
554 555 556 557 558 559 560 561 562 563 564 565 566
    PKG_CHECK_MODULES(XMLRPC, xmlrpc_client >= $XMLRPC_REQUIRED,
      [with_one=yes], [
      if test "x$with_one" = "xcheck" ; then
          with_one=no
      else
          AC_MSG_ERROR(
            [You must install XMLRPC-C >= $XMLRPC_REQUIRED to compile libvirt ONE driver])
      fi
    ])
    if test "x$with_one" = "xyes" ; then
        AC_DEFINE_UNQUOTED([HAVE_XMLRPC], 1,
          [whether One is used to broadcast server presence])
    fi
D
Daniel Veillard 已提交
567
fi
568 569 570 571 572
AM_CONDITIONAL([HAVE_XMLRPC], [test "x$with_one" = "xyes"])
AM_CONDITIONAL([WITH_ONE], [test "x$with_one" = "xyes"])
AC_SUBST([XMLRPC_CFLAGS])
AC_SUBST([XMLRPC_LIBS])

D
Daniel Veillard 已提交
573

574 575 576 577 578 579 580
dnl ==========================================================================
dnl find libxml2 library, borrowed from xmlsec
dnl ==========================================================================
LIBXML_CONFIG="xml2-config"
LIBXML_CFLAGS=""
LIBXML_LIBS=""
LIBXML_FOUND="no"
581

582
AC_ARG_WITH([libxml], AC_HELP_STRING([--with-libxml=@<:@PFX@:>@], [libxml2 location]))
583
if test "x$with_libxml" = "xno" ; then
584
    AC_MSG_CHECKING(for libxml2 libraries >= $LIBXML_REQUIRED)
585
    AC_MSG_ERROR([libxml2 >= $LIBXML_REQUIRED is required for libvirt])
586
elif test "x$with_libxml" = "x" && test "x$PKG_CONFIG" != "x" ; then
587
    PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= $LIBXML_REQUIRED, [LIBXML_FOUND=yes], [LIBXML_FOUND=no])
588
fi
589 590
if test "$LIBXML_FOUND" = "no" ; then
    if test "x$with_libxml" != "x" ; then
591 592
	LIBXML_CONFIG=$with_libxml/bin/$LIBXML_CONFIG
    fi
593
    AC_MSG_CHECKING(libxml2 $LIBXML_CONFIG >= $LIBXML_REQUIRED )
594
    if ! $LIBXML_CONFIG --version > /dev/null 2>&1 ; then
595
	AC_MSG_ERROR([Could not find libxml2 anywhere (see config.log for details).])
596 597
    fi
    vers=`$LIBXML_CONFIG --version | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
598
    minvers=`echo $LIBXML_REQUIRED | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
599 600 601 602
    if test "$vers" -ge "$minvers" ; then
        LIBXML_LIBS="`$LIBXML_CONFIG --libs`"
        LIBXML_CFLAGS="`$LIBXML_CONFIG --cflags`"
	LIBXML_FOUND="yes"
603
        AC_MSG_RESULT(yes)
604
    else
605 606
        AC_MSG_ERROR(
          [You need at least libxml2 $LIBXML_REQUIRED for this version of libvirt])
607 608 609
    fi
fi

610 611
AC_SUBST([LIBXML_CFLAGS])
AC_SUBST([LIBXML_LIBS])
612

613 614
dnl xmlURI structure has query_raw?
old_cflags="$CFLAGS"
615
old_libs="$LIBS"
616
CFLAGS="$CFLAGS $LIBXML_CFLAGS"
617
LIBS="$LIBS $LIBXML_LIBS"
618 619
AC_CHECK_MEMBER([struct _xmlURI.query_raw],
		[AC_DEFINE([HAVE_XMLURI_QUERY_RAW], [], [Have query_raw field in libxml2 xmlURI structure])],,
620 621
		[#include <libxml/uri.h>])
CFLAGS="$old_cflags"
622
LIBS="$old_libs"
623 624

dnl GnuTLS library
625 626
GNUTLS_CFLAGS=
GNUTLS_LIBS=
627
GNUTLS_FOUND=no
M
Matthias Bolte 已提交
628
if test -x "$PKG_CONFIG" ; then
629 630 631 632
  PKG_CHECK_MODULES(GNUTLS, gnutls >= $GNUTLS_REQUIRED,
     [GNUTLS_FOUND=yes], [GNUTLS_FOUND=no])
fi
if test "$GNUTLS_FOUND" = "no"; then
633
  fail=0
634
  old_libs="$LIBS"
635 636 637 638 639 640
  AC_CHECK_HEADER([gnutls/gnutls.h], [], [fail=1])
  AC_CHECK_LIB([gnutls], [gnutls_handshake],[], [fail=1], [-lgcrypt])

  test $fail = 1 &&
    AC_MSG_ERROR([You must install the GnuTLS library in order to compile and run libvirt])

D
Daniel P. Berrange 已提交
641 642 643
  dnl Not all versions of gnutls include -lgcrypt, and so we add
  dnl it explicitly for the calls to gcry_control/check_version
  GNUTLS_LIBS="$LIBS -lgcrypt"
644
  LIBS="$old_libs"
M
Matthias Bolte 已提交
645 646
else
  GNUTLS_LIBS="$GNUTLS_LIBS -lgcrypt"
647 648
fi

649 650
AC_SUBST([GNUTLS_CFLAGS])
AC_SUBST([GNUTLS_LIBS])
651

652 653 654
dnl Old versions of GnuTLS uses types like 'gnutls_session' instead
dnl of 'gnutls_session_t'.  Try to detect this type if defined so
dnl that we can offer backwards compatibility.
655
old_cflags="$CFLAGS"
656
old_libs="$LIBS"
657
CFLAGS="$CFLAGS $GNUTLS_CFLAGS"
658
LIBS="$LIBS $GNUTLS_LIBS"
659 660
AC_CHECK_TYPE([gnutls_session],
	AC_DEFINE([GNUTLS_1_0_COMPAT],[],
661 662
		[enable GnuTLS 1.0 compatibility macros]),,
	[#include <gnutls/gnutls.h>])
663
CFLAGS="$old_cflags"
664
LIBS="$old_libs"
665

666

667
dnl Cyrus SASL
668
AC_ARG_WITH([sasl],
669
  AC_HELP_STRING([--with-sasl], [use cyrus SASL for authentication @<:@default=check@:>@]),
670
  [],
671
  [with_sasl=check])
672 673 674

SASL_CFLAGS=
SASL_LIBS=
675
if test "x$with_sasl" != "xno"; then
676
  if test "x$with_sasl" != "xyes" && test "x$with_sasl" != "xcheck"; then
677 678 679
    SASL_CFLAGS="-I$with_sasl"
    SASL_LIBS="-L$with_sasl"
  fi
680
  fail=0
681 682 683 684
  old_cflags="$CFLAGS"
  old_libs="$LIBS"
  CFLAGS="$CFLAGS $SASL_CFLAGS"
  LIBS="$LIBS $SASL_LIBS"
685
  AC_CHECK_HEADER([sasl/sasl.h],[],[
M
Matthias Bolte 已提交
686
    if test "x$with_sasl" = "xcheck" ; then
687 688
        with_sasl=no
    else
689
        fail=1
690 691
    fi])
  if test "x$with_sasl" != "xno" ; then
692 693 694 695 696 697 698 699 700
    AC_CHECK_LIB([sasl2], [sasl_client_init],[
      SASL_LIBS="$SASL_LIBS -lsasl2"
      with_sasl=yes
    ],[
      AC_CHECK_LIB([sasl], [sasl_client_init],[
        SASL_LIBS="$SASL_LIBS -lsasl"
        with_sasl=yes
      ],[
        if test "x$with_sasl" = "xcheck" ; then
701
          with_sasl=no
702
        else
703
          fail=1
704 705 706
        fi
      ])
    ])
707
  fi
708 709
  test $fail = 1 &&
    AC_MSG_ERROR([You must install the Cyrus SASL development package in order to compile libvirt])
710 711
  CFLAGS="$old_cflags"
  LIBS="$old_libs"
712
  if test "x$with_sasl" = "xyes" ; then
713
    AC_DEFINE_UNQUOTED([HAVE_SASL], 1,
714 715
      [whether Cyrus SASL is available for authentication])
  fi
716
fi
717 718 719
AM_CONDITIONAL([HAVE_SASL], [test "x$with_sasl" = "xyes"])
AC_SUBST([SASL_CFLAGS])
AC_SUBST([SASL_LIBS])
720 721


722 723
dnl YAJL JSON library http://lloyd.github.com/yajl/
AC_ARG_WITH([yajl],
724
  AC_HELP_STRING([--with-yajl], [use YAJL for JSON parsing/formatting @<:@default=check@:>@]),
725 726 727 728 729 730
  [],
  [with_yajl=check])

YAJL_CFLAGS=
YAJL_LIBS=
if test "x$with_yajl" != "xno"; then
731
  if test "x$with_yajl" != "xyes" && test "x$with_yajl" != "xcheck"; then
732 733 734 735 736
    YAJL_CFLAGS="-I$with_yajl/include"
    YAJL_LIBS="-L$with_yajl/lib"
  fi
  fail=0
  old_cppflags="$CPPFLAGS"
737
  old_libs="$LIBS"
738
  CPPFLAGS="$CPPFLAGS $YAJL_CFLAGS"
739
  LIBS="$LIBS $YAJL_LIBS"
740
  AC_CHECK_HEADER([yajl/yajl_common.h],[],[
741
    if test "x$with_yajl" = "xcheck" ; then
742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760
        with_yajl=no
    else
        fail=1
    fi])
  if test "x$with_yajl" != "xno" ; then
    AC_CHECK_LIB([yajl], [yajl_parse],[
      YAJL_LIBS="$YAJL_LIBS -lyajl"
      with_yajl=yes
    ],[
      if test "x$with_yajl" = "xcheck" ; then
        with_yajl=no
      else
        fail=1
      fi
    ])
  fi
  test $fail = 1 &&
    AC_MSG_ERROR([You must install the YAJL development package in order to compile libvirt])
  CPPFLAGS="$old_cppflags"
761
  LIBS="$old_libs"
762 763 764 765 766 767 768 769 770 771
  if test "x$with_yajl" = "xyes" ; then
    AC_DEFINE_UNQUOTED([HAVE_YAJL], 1,
      [whether YAJL is available for JSON parsing/formatting])
  fi
fi
AM_CONDITIONAL([HAVE_YAJL], [test "x$with_yajl" = "xyes"])
AC_SUBST([YAJL_CFLAGS])
AC_SUBST([YAJL_LIBS])


772 773 774
dnl PolicyKit library
POLKIT_CFLAGS=
POLKIT_LIBS=
775
PKCHECK_PATH=
776
AC_ARG_WITH([polkit],
777
  AC_HELP_STRING([--with-polkit], [use PolicyKit for UNIX socket access checks @<:@default=check@:>@]),
778 779 780
  [],
  [with_polkit=check])

781 782
with_polkit0=no
with_polkit1=no
783
if test "x$with_polkit" = "xyes" || test "x$with_polkit" = "xcheck"; then
784 785 786 787
  dnl Check for new polkit first - just a binary
  AC_PATH_PROG([PKCHECK_PATH],[pkcheck], [], [/usr/sbin:$PATH])
  if test "x$PKCHECK_PATH" != "x" ; then
    AC_DEFINE_UNQUOTED([PKCHECK_PATH],["$PKCHECK_PATH"],[Location of pkcheck program])
788
    AC_DEFINE_UNQUOTED([HAVE_POLKIT], 1,
789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811
        [use PolicyKit for UNIX socket access checks])
    AC_DEFINE_UNQUOTED([HAVE_POLKIT1], 1,
        [use PolicyKit for UNIX socket access checks])
    with_polkit="yes"
    with_polkit1="yes"
  else
    dnl Check for old polkit second - library + binary
    PKG_CHECK_MODULES(POLKIT, polkit-dbus >= $POLKIT_REQUIRED,
      [with_polkit=yes], [
      if test "x$with_polkit" = "xcheck" ; then
         with_polkit=no
      else
         AC_MSG_ERROR(
           [You must install PolicyKit >= $POLKIT_REQUIRED to compile libvirt])
      fi
    ])
    if test "x$with_polkit" = "xyes" ; then
      AC_DEFINE_UNQUOTED([HAVE_POLKIT], 1,
        [use PolicyKit for UNIX socket access checks])
      AC_DEFINE_UNQUOTED([HAVE_POLKIT0], 1,
        [use PolicyKit for UNIX socket access checks])

      old_CFLAGS=$CFLAGS
812
      old_LIBS=$LIBS
813
      CFLAGS="$CFLAGS $POLKIT_CFLAGS"
814
      LIBS="$LIBS $POLKIT_LIBS"
815 816
      AC_CHECK_FUNCS([polkit_context_is_caller_authorized])
      CFLAGS="$old_CFLAGS"
817
      LIBS="$old_LIBS"
818 819 820 821 822 823

      AC_PATH_PROG([POLKIT_AUTH], [polkit-auth])
      if test "x$POLKIT_AUTH" != "x"; then
        AC_DEFINE_UNQUOTED([POLKIT_AUTH],["$POLKIT_AUTH"],[Location of polkit-auth program])
      fi
      with_polkit0="yes"
824
    fi
825
  fi
826
fi
827
AM_CONDITIONAL([HAVE_POLKIT], [test "x$with_polkit" = "xyes"])
828 829
AM_CONDITIONAL([HAVE_POLKIT0], [test "x$with_polkit0" = "xyes"])
AM_CONDITIONAL([HAVE_POLKIT1], [test "x$with_polkit1" = "xyes"])
830 831
AC_SUBST([POLKIT_CFLAGS])
AC_SUBST([POLKIT_LIBS])
832

833
dnl Avahi library
834
AC_ARG_WITH([avahi],
835
  AC_HELP_STRING([--with-avahi], [use avahi to advertise remote daemon @<:@default=check@:>@]),
836 837 838 839 840
  [],
  [with_avahi=check])

AVAHI_CFLAGS=
AVAHI_LIBS=
841
if test "x$with_avahi" = "xyes" || test "x$with_avahi" = "xcheck"; then
842 843 844 845 846 847 848 849 850 851
  PKG_CHECK_MODULES(AVAHI, avahi-client >= $AVAHI_REQUIRED,
    [with_avahi=yes], [
    if test "x$with_avahi" = "xcheck" ; then
       with_avahi=no
    else
       AC_MSG_ERROR(
         [You must install Avahi >= $AVAHI_REQUIRED to compile libvirt])
    fi
  ])
  if test "x$with_avahi" = "xyes" ; then
852
    AC_DEFINE_UNQUOTED([HAVE_AVAHI], 1,
853 854
      [whether Avahi is used to broadcast server presense])
  fi
855
fi
856 857 858
AM_CONDITIONAL([HAVE_AVAHI], [test "x$with_avahi" = "xyes"])
AC_SUBST([AVAHI_CFLAGS])
AC_SUBST([AVAHI_LIBS])
859

860
dnl SELinux
861
AC_ARG_WITH([selinux],
862
  AC_HELP_STRING([--with-selinux], [use SELinux to manage security @<:@default=check@:>@]),
863 864 865 866 867 868 869 870 871 872
  [],
  [with_selinux=check])

SELINUX_CFLAGS=
SELINUX_LIBS=
if test "$with_selinux" != "no"; then
  old_cflags="$CFLAGS"
  old_libs="$LIBS"
  if test "$with_selinux" = "check"; then
    AC_CHECK_HEADER([selinux/selinux.h],[],[with_selinux=no])
873
    AC_CHECK_LIB([selinux], [fgetfilecon],[],[with_selinux=no])
874 875 876 877
    if test "$with_selinux" != "no"; then
      with_selinux="yes"
    fi
  else
878 879 880 881
    fail=0
    AC_CHECK_HEADER([selinux/selinux.h],[],[fail=1])
    AC_CHECK_LIB([selinux], [fgetfilecon],[],[fail=1])
    test $fail = 1 &&
S
Spencer Shimko 已提交
882
      AC_MSG_ERROR([You must install the libselinux development package in order to compile libvirt with basic SELinux support])
883 884 885 886 887 888
  fi
  CFLAGS="$old_cflags"
  LIBS="$old_libs"
fi
if test "$with_selinux" = "yes"; then
  SELINUX_LIBS="-lselinux"
S
Spencer Shimko 已提交
889
  AC_DEFINE_UNQUOTED([HAVE_SELINUX], 1, [whether basic SELinux functionality is available])
890
fi
891 892 893
AM_CONDITIONAL([HAVE_SELINUX], [test "$with_selinux" != "no"])
AC_SUBST([SELINUX_CFLAGS])
AC_SUBST([SELINUX_LIBS])
894

895 896

AC_ARG_WITH([secdriver-selinux],
897
  AC_HELP_STRING([--with-secdriver-selinux], [use SELinux security driver @<:@default=check@:>@]),
898 899 900 901 902 903
  [],
  [with_secdriver_selinux=check])

if test "$with_selinux" != "yes" ; then
  if test "$with_secdriver_selinux" = "check" ; then
    with_secdriver_selinux=no
S
Spencer Shimko 已提交
904 905
  elif test "$with_secdriver_selinux" = "yes"; then
        AC_MSG_ERROR([You must install the libselinux development package and enable SELinux with the --with-selinux=yes in order to compile libvirt --with-secdriver-selinux=yes])
906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922
  fi
else
  old_cflags="$CFLAGS"
  old_libs="$LIBS"
  CFLAGS="$CFLAGS $SELINUX_CFLAGS"
  LIBS="$CFLAGS $SELINUX_LIBS"

  fail=0
  AC_CHECK_FUNC([selinux_virtual_domain_context_path], [], [fail=1])
  AC_CHECK_FUNC([selinux_virtual_image_context_path], [], [fail=1])
  CFLAGS="$old_cflags"
  LIBS="$old_libs"

  if test "$fail" = "1" ; then
    if test "$with_secdriver_selinux" = "check" ; then
      with_secdriver_selinux=no
    else
S
Spencer Shimko 已提交
923
      AC_MSG_ERROR([You must install libselinux development package >= 2.0.82 in order to compile libvirt --with-secdriver-selinux=yes])
924 925 926 927 928 929 930 931 932
    fi
  else
    with_secdriver_selinux=yes
    AC_DEFINE_UNQUOTED([WITH_SECDRIVER_SELINUX], 1, [whether SELinux security driver is available])
  fi
fi
AM_CONDITIONAL([WITH_SECDRIVER_SELINUX], [test "$with_secdriver_selinux" != "no"])


J
Jamie Strandboge 已提交
933 934
dnl AppArmor
AC_ARG_WITH([apparmor],
935
  AC_HELP_STRING([--with-apparmor], [use AppArmor to manage security @<:@default=check@:>@]),
J
Jamie Strandboge 已提交
936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973
  [],
  [with_apparmor=check])

APPARMOR_CFLAGS=
APPARMOR_LIBS=
if test "$with_apparmor" != "no"; then
  old_cflags="$CFLAGS"
  old_libs="$LIBS"
  if test "$with_apparmor" = "check"; then
    AC_CHECK_HEADER([sys/apparmor.h],[],[with_apparmor=no])
    AC_CHECK_LIB([apparmor], [aa_change_profile],[],[with_apparmor=no])
    AC_CHECK_LIB([apparmor], [aa_change_hat],[],[with_apparmor=no])
    if test "$with_apparmor" != "no"; then
      with_apparmor="yes"
    fi
  else
    fail=0
    AC_CHECK_HEADER([sys/apparmor.h],[],[fail=1])
    AC_CHECK_LIB([apparmor], [aa_change_profile],[],[fail=1])
    AC_CHECK_LIB([apparmor], [aa_change_hat],[],[fail=1])
    test $fail = 1 &&
      AC_MSG_ERROR([You must install the AppArmor development package in order to compile libvirt])
  fi
  CFLAGS="$old_cflags"
  LIBS="$old_libs"
fi
if test "$with_apparmor" = "yes"; then
  APPARMOR_LIBS="-lapparmor"
  AC_DEFINE_UNQUOTED([HAVE_APPARMOR], 1, [whether AppArmor is available for security])
  AC_DEFINE_UNQUOTED([APPARMOR_DIR], "/etc/apparmor.d", [path to apparmor directory])
  AC_DEFINE_UNQUOTED([APPARMOR_PROFILES_PATH], "/sys/kernel/security/apparmor/profiles", [path to kernel profiles])
fi
AM_CONDITIONAL([HAVE_APPARMOR], [test "$with_apparmor" != "no"])
AC_SUBST([APPARMOR_CFLAGS])
AC_SUBST([APPARMOR_LIBS])


AC_ARG_WITH([secdriver-apparmor],
974
  AC_HELP_STRING([--with-secdriver-apparmor], [use AppArmor security driver @<:@default=check@:>@]),
J
Jamie Strandboge 已提交
975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009
  [],
  [with_secdriver_apparmor=check])

if test "$with_apparmor" != "yes" ; then
  if test "$with_secdriver_apparmor" = "check" ; then
    with_secdriver_apparmor=no
  else
    AC_MSG_ERROR([You must install the AppArmor development package in order to compile libvirt])
  fi
else
  old_cflags="$CFLAGS"
  old_libs="$LIBS"
  CFLAGS="$CFLAGS $APPARMOR_CFLAGS"
  LIBS="$CFLAGS $APPARMOR_LIBS"

  fail=0
  AC_CHECK_FUNC([change_hat], [], [fail=1])
  AC_CHECK_FUNC([aa_change_profile], [], [fail=1])
  CFLAGS="$old_cflags"
  LIBS="$old_libs"

  if test "$fail" = "1" ; then
    if test "$with_secdriver_apparmor" = "check" ; then
      with_secdriver_apparmor=no
    else
      AC_MSG_ERROR([You must install the AppArmor development package in order to compile libvirt])
    fi
  else
    with_secdriver_apparmor=yes
    AC_DEFINE_UNQUOTED([WITH_SECDRIVER_APPARMOR], 1, [whether AppArmor security driver is available])
  fi
fi
AM_CONDITIONAL([WITH_SECDRIVER_APPARMOR], [test "$with_secdriver_apparmor" != "no"])


1010

1011
dnl NUMA lib
1012
AC_ARG_WITH([numactl],
1013
  AC_HELP_STRING([--with-numactl], [use numactl for host topology info @<:@default=check@:>@]),
1014 1015 1016 1017 1018
  [],
  [with_numactl=check])

NUMACTL_CFLAGS=
NUMACTL_LIBS=
1019
if test "$with_qemu" = "yes" && test "$with_numactl" != "no"; then
1020 1021 1022 1023
  old_cflags="$CFLAGS"
  old_libs="$LIBS"
  if test "$with_numactl" = "check"; then
    AC_CHECK_HEADER([numa.h],[],[with_numactl=no])
1024
    AC_CHECK_LIB([numa], [numa_available],[],[with_numactl=no])
1025 1026 1027 1028
    if test "$with_numactl" != "no"; then
      with_numactl="yes"
    fi
  else
1029 1030 1031 1032 1033
    fail=0
    AC_CHECK_HEADER([numa.h],[],[fail=1])
    AC_CHECK_LIB([numa], [numa_available],[],[fail=1])
    test $fail = 1 &&
      AC_MSG_ERROR([You must install the numactl development package in order to compile and run libvirt])
1034 1035 1036 1037 1038 1039
  fi
  CFLAGS="$old_cflags"
  LIBS="$old_libs"
fi
if test "$with_numactl" = "yes"; then
  NUMACTL_LIBS="-lnuma"
1040
  AC_DEFINE_UNQUOTED([HAVE_NUMACTL], 1, [whether numactl is available for topology info])
1041
fi
1042 1043 1044
AM_CONDITIONAL([HAVE_NUMACTL], [test "$with_numactl" != "no"])
AC_SUBST([NUMACTL_CFLAGS])
AC_SUBST([NUMACTL_LIBS])
1045

1046

1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079
dnl pcap lib
LIBPCAP_CONFIG="pcap-config"
LIBPCAP_CFLAGS=""
LIBPCAP_LIBS=""
LIBPCAP_FOUND="no"

AC_ARG_WITH([libpcap], AC_HELP_STRING([--with-libpcap=@<:@PFX@:>@], [libpcap location]))
if test "$with_qemu" = "yes"; then
    if test "x$with_libpcap" != "xno" ; then
        if test "x$with_libpcap" != "x" ; then
            LIBPCAP_CONFIG=$with_libpcap/bin/$LIBPCAP_CONFIG
        fi
        AC_MSG_CHECKING(libpcap $LIBPCAP_CONFIG >= $LIBPCAP_REQUIRED )
        if ! $LIBPCAP_CONFIG --libs > /dev/null 2>&1 ; then
	    AC_MSG_RESULT(no)
	else
            LIBPCAP_LIBS="`$LIBPCAP_CONFIG --libs`"
            LIBPCAP_CFLAGS="`$LIBPCAP_CONFIG --cflags`"
            LIBPCAP_FOUND="yes"
            AC_MSG_RESULT(yes)
        fi
    fi
fi

if test "x$LIBPCAP_FOUND" = "xyes"; then
  AC_DEFINE_UNQUOTED([HAVE_LIBPCAP], 1, [whether libpcap can be used])
fi

AC_SUBST([LIBPCAP_CFLAGS])
AC_SUBST([LIBPCAP_LIBS])



1080 1081 1082 1083
dnl
dnl Checks for the UML driver
dnl

1084 1085 1086
if test "$with_libvirtd" = "no" ; then
  with_uml=no
fi
1087
if test "$with_uml" = "yes" || test "$with_uml" = "check"; then
1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098
    AC_CHECK_HEADER([sys/inotify.h], [
        with_uml=yes
    ], [
        if test "$with_uml" = "check"; then
            with_uml=no
            AC_MSG_NOTICE([<sys/inotify.h> is required for the UML driver, disabling it])
        else
            AC_MSG_ERROR([The <sys/inotify.h> is required for the UML driver. Upgrade your libc6.])
        fi
    ])
fi
1099 1100 1101 1102 1103
if test "$with_uml" = "yes" ; then
    AC_DEFINE_UNQUOTED([WITH_UML], 1, [whether UML driver is enabled])
fi
AM_CONDITIONAL([WITH_UML], [test "$with_uml" = "yes"])

1104 1105 1106 1107 1108 1109


dnl
dnl libssh checks
dnl

1110
if test "$with_libssh2" != "yes" && test "$with_libssh2" != "no"; then
1111 1112 1113 1114
		libssh2_path="$with_libssh2"
elif test "$with_libssh2" = "yes"; then
		libssh2_path="/usr/local/lib/"
elif test "$with_libssh2" = "no"; then
1115 1116 1117 1118
		with_phyp="no";
fi

if test "$with_phyp" = "check"; then
1119
    AC_CHECK_LIB([ssh2],[libssh2_session_startup],[
1120
        LIBSSH2_LIBS="$LIBSSH2_LIBS -lssh2 -L$libssh2_path"
1121 1122
        AC_SUBST([LIBSSH2_LIBS])
    ],[
1123
        with_phyp="no"
1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137
        with_libssh2="no";
    ],[])

    if test "$with_phyp" != "no"; then
        AC_CHECK_HEADERS([libssh2.h],[
            with_phyp="yes"
            LIBSSH2_CFLAGS="-I/usr/local/include"
            AC_SUBST([LIBSSH2_CFLAGS])
        ],[
            with_phyp="no"
            with_libssh2="no";
        ],[
        ])
    fi
1138

1139 1140
    if test "$with_phyp" != "no"; then
        saved_libs="$LIBS"
M
Matthias Bolte 已提交
1141
        LIBS="$LIBS -L$libssh2_path -lssh2"
1142 1143 1144 1145 1146 1147 1148 1149 1150 1151
        AC_TRY_LINK([#include <libssh2.h>], [
            (void) libssh2_session_block_directions(NULL);
        ], [
            AC_DEFINE_UNQUOTED([WITH_PHYP], 1, [whether IBM HMC / IVM driver is enabled])
        ], [
            with_phyp=no
            AC_MSG_NOTICE([Function libssh2_session_block_directions() not present in  your version of libssh2 but required for Phyp driver, disabling it])
        ])
        LIBS="$saved_libs"
    fi
1152
elif test "$with_phyp" = "yes"; then
1153 1154 1155
  AC_CHECK_LIB([ssh2],[libssh2_session_startup],[
        LIBSSH2_LIBS="$LIBSSH2_LIBS -lssh2 -L$libssh2_path"
        AC_SUBST([LIBSSH2_LIBS])],[
1156
        AC_MSG_ERROR([You must install the libssh2 to compile Phyp driver.])
1157 1158
				])

1159 1160 1161
  AC_CHECK_HEADERS([libssh2.h],[
        LIBSSH2_CFLAGS="-I/usr/local/include"
        AC_SUBST([LIBSSH2_CFLAGS])],[
1162
        AC_MSG_ERROR([Cannot find libssh2 headers. Is libssh2 installed ?])
1163
				],[])
1164 1165 1166 1167 1168 1169 1170 1171 1172 1173

  saved_libs="$LIBS"
  LIBS="$LIBS -lssh2"
  AC_TRY_LINK([#include <libssh2.h>], [
  (void) libssh2_session_block_directions(NULL);
  ], [], [
  AC_MSG_ERROR([Function libssh2_session_block_directions() not present in your version of libssh2. Need >= 1.0])
  ])
  LIBS="$saved_libs"

1174 1175 1176 1177
  AC_DEFINE_UNQUOTED([WITH_PHYP], 1,
        [whether IBM HMC / IVM driver is enabled])
fi
AM_CONDITIONAL([WITH_PHYP],[test "$with_phyp" = "yes"])
D
Daniel P. Berrange 已提交
1178 1179 1180

dnl libcap-ng
AC_ARG_WITH([capng],
1181
  AC_HELP_STRING([--with-capng], [use libcap-ng to reduce libvirtd privileges @<:@default=check@:>@]),
D
Daniel P. Berrange 已提交
1182 1183 1184 1185 1186 1187 1188 1189 1190
  [],
  [with_capng=check])

dnl
dnl This check looks for 'capng_updatev' since that was
dnl introduced in 0.4.0 release which need as minimum
dnl
CAPNG_CFLAGS=
CAPNG_LIBS=
1191
if test "$with_qemu" = "yes" && test "$with_capng" != "no"; then
D
Daniel P. Berrange 已提交
1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219
  old_cflags="$CFLAGS"
  old_libs="$LIBS"
  if test "$with_capng" = "check"; then
    AC_CHECK_HEADER([cap-ng.h],[],[with_capng=no])
    AC_CHECK_LIB([cap-ng], [capng_updatev],[],[with_capng=no])
    if test "$with_capng" != "no"; then
      with_capng="yes"
    fi
  else
    fail=0
    AC_CHECK_HEADER([cap-ng.h],[],[fail=1])
    AC_CHECK_LIB([cap-ng], [capng_updatev],[],[fail=1])
    test $fail = 1 &&
      AC_MSG_ERROR([You must install the capng >= 0.4.0 development package in order to compile and run libvirt])
  fi
  CFLAGS="$old_cflags"
  LIBS="$old_libs"
fi
if test "$with_capng" = "yes"; then
  CAPNG_LIBS="-lcap-ng"
  AC_DEFINE_UNQUOTED([HAVE_CAPNG], 1, [whether capng is available for privilege reduction])
fi
AM_CONDITIONAL([HAVE_CAPNG], [test "$with_capng" != "no"])
AC_SUBST([CAPNG_CFLAGS])
AC_SUBST([CAPNG_LIBS])



K
Karel Zak 已提交
1220
dnl virsh libraries
1221
AC_CHECK_HEADERS([readline/readline.h])
1222 1223

# Check for readline.
1224
AC_CHECK_LIB([readline], [readline],
1225 1226 1227 1228 1229 1230 1231 1232 1233
	[lv_use_readline=yes; VIRSH_LIBS="$VIRSH_LIBS -lreadline"],
	[lv_use_readline=no])

# If the above test failed, it may simply be that -lreadline requires
# some termcap-related code, e.g., from one of the following libraries.
# See if adding one of them to LIBS helps.
if test $lv_use_readline = no; then
    lv_saved_libs=$LIBS
    LIBS=
1234
    AC_SEARCH_LIBS([tgetent], [ncurses curses termcap termlib])
1235 1236 1237 1238 1239 1240
    case $LIBS in
      no*) ;;  # handle "no" and "none required"
      *) # anything else is a -lLIBRARY
	# Now, check for -lreadline again, also using $LIBS.
	# Note: this time we use a different function, so that
	# we don't get a cached "no" result.
1241
	AC_CHECK_LIB([readline], [rl_initialize],
1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255
		[lv_use_readline=yes
		 VIRSH_LIBS="$VIRSH_LIBS -lreadline $LIBS"],,
		[$LIBS])
	;;
    esac
    test $lv_use_readline = no &&
	AC_MSG_WARN([readline library not found])
    LIBS=$lv_saved_libs
fi

if test $lv_use_readline = yes; then
    AC_DEFINE_UNQUOTED([USE_READLINE], 1,
		       [whether virsh can use readline])
    READLINE_CFLAGS=-DUSE_READLINE
1256
else
1257
    READLINE_CFLAGS=
1258
fi
1259 1260
AC_SUBST([READLINE_CFLAGS])
AC_SUBST([VIRSH_LIBS])
K
Karel Zak 已提交
1261

1262

1263
AC_ARG_WITH([network],
1264
  AC_HELP_STRING([--with-network], [with virtual network driver @<:@default=yes@:>@]),[],[with_network=yes])
1265 1266 1267 1268 1269 1270 1271 1272
if test "$with_libvirtd" = "no" ; then
  with_network=no
fi
if test "$with_network" = "yes" ; then
  AC_DEFINE_UNQUOTED([WITH_NETWORK], 1, [whether network driver is enabled])
fi
AM_CONDITIONAL([WITH_NETWORK], [test "$with_network" = "yes"])

1273 1274 1275 1276 1277 1278
with_bridge=no
if test "$with_qemu:$with_lxc:$with_network" != "no:no:no"; then
    with_bridge=yes
    AC_DEFINE_UNQUOTED([WITH_BRIDGE], 1, [whether bridge code is needed])
fi
AM_CONDITIONAL([WITH_BRIDGE], [test "$with_bridge" = "yes"])
1279

D
Daniel Veillard 已提交
1280 1281
dnl netcf library
AC_ARG_WITH([netcf],
1282
  AC_HELP_STRING([--with-netcf], [libnetcf support to configure physical host network interfaces @<:@default=check@:>@]),
D
Daniel Veillard 已提交
1283 1284 1285 1286
[], [with_netcf=check])

NETCF_CFLAGS=
NETCF_LIBS=
1287
if test "$with_netcf" = "yes" || test "$with_netcf" = "check"; then
D
Daniel Veillard 已提交
1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304
  PKG_CHECK_MODULES(NETCF, netcf >= $NETCF_REQUIRED,
    [with_netcf=yes], [
    if test "$with_netcf" = "check" ; then
       with_netcf=no
    else
       AC_MSG_ERROR(
         [You must install libnetcf >= $NETCF_REQUIRED to compile libvirt])
    fi
  ])
  if test "$with_netcf" = "yes" ; then
    AC_DEFINE_UNQUOTED([WITH_NETCF], 1,
      [whether libnetcf is available to configure physical host network interfaces])
  fi
fi
AM_CONDITIONAL([WITH_NETCF], [test "$with_netcf" = "yes"])
AC_SUBST([NETCF_CFLAGS])
AC_SUBST([NETCF_LIBS])
1305

D
Daniel P. Berrange 已提交
1306 1307 1308 1309 1310 1311 1312 1313 1314 1315

with_secrets=yes
if test "$with_libvirtd" = "no"; then
  with_secrets=no
fi
if test "$with_secrets" = "yes" ; then
  AC_DEFINE_UNQUOTED([WITH_SECRETS], 1, [whether local secrets management driver is available])
fi
AM_CONDITIONAL([WITH_SECRETS], [test "$with_secrets" = "yes"])

1316 1317 1318 1319 1320 1321 1322 1323 1324
with_nwfilter=yes
if test "$with_libvirtd" = "no"; then
  with_nwfilter=no
fi
if test "$with_nwfilter" = "yes" ; then
  AC_DEFINE([WITH_NWFILTER], 1, [whether local network filter management driver is available])
fi
AM_CONDITIONAL([WITH_NWFILTER], [test "$with_nwfilter" = "yes"])

D
Daniel P. Berrange 已提交
1325

1326
AC_ARG_WITH([storage-fs],
1327
  AC_HELP_STRING([--with-storage-fs], [with FileSystem backend for the storage driver @<:@default=check@:>@]),[],[with_storage_fs=check])
1328
AC_ARG_WITH([storage-lvm],
1329
  AC_HELP_STRING([--with-storage-lvm], [with LVM backend for the storage driver @<:@default=check@:>@]),[],[with_storage_lvm=check])
1330
AC_ARG_WITH([storage-iscsi],
1331
  AC_HELP_STRING([--with-storage-iscsi], [with iSCSI backend for the storage driver @<:@default=check@:>@]),[],[with_storage_iscsi=check])
1332
AC_ARG_WITH([storage-scsi],
1333
  AC_HELP_STRING([--with-storage-scsi], [with SCSI backend for the storage driver @<:@default=check@:>@]),[],[with_storage_scsi=check])
D
Dave Allan 已提交
1334
AC_ARG_WITH([storage-mpath],
1335
  AC_HELP_STRING([--with-storage-mpath], [with mpath backend for the storage driver @<:@default=check@:>@]),[],[with_storage_mpath=check])
1336
AC_ARG_WITH([storage-disk],
1337
  AC_HELP_STRING([--with-storage-disk], [with GPartd Disk backend for the storage driver @<:@default=check@:>@]),[],[with_storage_disk=check])
1338

D
Daniel P. Berrange 已提交
1339 1340 1341 1342 1343 1344
with_storage_dir=yes
if test "$with_libvirtd" = "no"; then
  with_storage_dir=no
  with_storage_fs=no
  with_storage_lvm=no
  with_storage_iscsi=no
1345
  with_storage_scsi=no
D
Dave Allan 已提交
1346
  with_storage_mpath=no
D
Daniel P. Berrange 已提交
1347 1348 1349 1350 1351 1352 1353 1354
  with_storage_disk=no
fi
if test "$with_storage_dir" = "yes" ; then
  AC_DEFINE_UNQUOTED([WITH_STORAGE_DIR], 1, [whether directory backend for storage driver is enabled])
fi
AM_CONDITIONAL([WITH_STORAGE_DIR], [test "$with_storage_dir" = "yes"])


1355
if test "$with_storage_fs" = "yes" || test "$with_storage_fs" = "check"; then
1356 1357
  AC_PATH_PROG([MOUNT], [mount], [], [$PATH:/sbin:/usr/sbin])
  AC_PATH_PROG([UMOUNT], [umount], [], [$PATH:/sbin:/usr/sbin])
1358
  if test "$with_storage_fs" = "yes" ; then
1359
    if test -z "$MOUNT" ; then AC_MSG_ERROR([We need mount for FS storage driver]) ; fi
1360
    if test -z "$UMOUNT" ; then AC_MSG_ERROR([We need umount for FS storage driver]) ; fi
1361 1362 1363 1364 1365 1366 1367 1368
  else
    if test -z "$MOUNT" ; then with_storage_fs=no ; fi
    if test -z "$UMOUNT" ; then with_storage_fs=no ; fi

    if test "$with_storage_fs" = "check" ; then with_storage_fs=yes ; fi
  fi

  if test "$with_storage_fs" = "yes" ; then
1369
    AC_DEFINE_UNQUOTED([WITH_STORAGE_FS], 1, [whether FS backend for storage driver is enabled])
1370 1371 1372 1373 1374 1375
    AC_DEFINE_UNQUOTED([MOUNT],["$MOUNT"],
        [Location or name of the mount program])
    AC_DEFINE_UNQUOTED([UMOUNT],["$UMOUNT"],
        [Location or name of the mount program])
  fi
fi
1376
AM_CONDITIONAL([WITH_STORAGE_FS], [test "$with_storage_fs" = "yes"])
1377 1378 1379 1380 1381
if test "$with_storage_fs" = "yes"; then
  AC_PATH_PROG([SHOWMOUNT], [showmount], [], [$PATH:/sbin:/usr/sbin])
  AC_DEFINE_UNQUOTED([SHOWMOUNT], ["$SHOWMOUNT"],
    [Location or name of the showmount program])
fi
1382

1383
if test "$with_storage_lvm" = "yes" || test "$with_storage_lvm" = "check"; then
1384 1385 1386 1387 1388 1389 1390
  AC_PATH_PROG([PVCREATE], [pvcreate], [], [$PATH:/sbin:/usr/sbin])
  AC_PATH_PROG([VGCREATE], [vgcreate], [], [$PATH:/sbin:/usr/sbin])
  AC_PATH_PROG([LVCREATE], [lvcreate], [], [$PATH:/sbin:/usr/sbin])
  AC_PATH_PROG([PVREMOVE], [pvremove], [], [$PATH:/sbin:/usr/sbin])
  AC_PATH_PROG([VGREMOVE], [vgremove], [], [$PATH:/sbin:/usr/sbin])
  AC_PATH_PROG([LVREMOVE], [lvremove], [], [$PATH:/sbin:/usr/sbin])
  AC_PATH_PROG([VGCHANGE], [vgchange], [], [$PATH:/sbin:/usr/sbin])
1391
  AC_PATH_PROG([VGSCAN], [vgscan], [], [$PATH:/sbin:/usr/sbin])
1392 1393 1394
  AC_PATH_PROG([PVS], [pvs], [], [$PATH:/sbin:/usr/sbin])
  AC_PATH_PROG([VGS], [vgs], [], [$PATH:/sbin:/usr/sbin])
  AC_PATH_PROG([LVS], [lvs], [], [$PATH:/sbin:/usr/sbin])
1395 1396

  if test "$with_storage_lvm" = "yes" ; then
1397 1398 1399 1400 1401 1402 1403
    if test -z "$PVCREATE" ; then AC_MSG_ERROR([We need pvcreate for LVM storage driver]) ; fi
    if test -z "$VGCREATE" ; then AC_MSG_ERROR([We need vgcreate for LVM storage driver]) ; fi
    if test -z "$LVCREATE" ; then AC_MSG_ERROR([We need lvcreate for LVM storage driver]) ; fi
    if test -z "$PVREMOVE" ; then AC_MSG_ERROR([We need pvremove for LVM storage driver]) ; fi
    if test -z "$VGREMOVE" ; then AC_MSG_ERROR([We need vgremove for LVM storage driver]) ; fi
    if test -z "$LVREMOVE" ; then AC_MSG_ERROR([We need lvremove for LVM storage driver]) ; fi
    if test -z "$VGCHANGE" ; then AC_MSG_ERROR([We need vgchange for LVM storage driver]) ; fi
1404
    if test -z "$VGSCAN" ; then AC_MSG_ERROR([We need vgscan for LVM storage driver]) ; fi
1405 1406 1407
    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
1408 1409 1410 1411 1412 1413 1414
  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
1415 1416
    if test -z "$VGCHANGE" ; then with_storage_lvm=no ; fi
    if test -z "$VGSCAN" ; then with_storage_lvm=no ; fi
1417 1418 1419 1420 1421 1422 1423 1424
    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
1425
    AC_DEFINE_UNQUOTED([WITH_STORAGE_LVM], 1, [whether LVM backend for storage driver is enabled])
1426 1427 1428 1429 1430 1431 1432
    AC_DEFINE_UNQUOTED([PVCREATE],["$PVCREATE"],[Location of pvcreate program])
    AC_DEFINE_UNQUOTED([VGCREATE],["$VGCREATE"],[Location of vgcreate program])
    AC_DEFINE_UNQUOTED([LVCREATE],["$LVCREATE"],[Location of lvcreate program])
    AC_DEFINE_UNQUOTED([PVREMOVE],["$PVREMOVE"],[Location of pvcreate program])
    AC_DEFINE_UNQUOTED([VGREMOVE],["$VGREMOVE"],[Location of vgcreate program])
    AC_DEFINE_UNQUOTED([LVREMOVE],["$LVREMOVE"],[Location of lvcreate program])
    AC_DEFINE_UNQUOTED([VGCHANGE],["$VGCHANGE"],[Location of vgchange program])
1433
    AC_DEFINE_UNQUOTED([VGSCAN],["$VGSCAN"],[Location of vgscan program])
1434 1435 1436 1437 1438
    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
1439
AM_CONDITIONAL([WITH_STORAGE_LVM], [test "$with_storage_lvm" = "yes"])
1440 1441


1442

1443
if test "$with_storage_iscsi" = "yes" || test "$with_storage_iscsi" = "check"; then
1444
  AC_PATH_PROG([ISCSIADM], [iscsiadm], [], [$PATH:/sbin:/usr/sbin])
1445
  if test "$with_storage_iscsi" = "yes" ; then
1446
    if test -z "$ISCSIADM" ; then AC_MSG_ERROR([We need iscsiadm for iSCSI storage driver]) ; fi
1447 1448 1449 1450 1451 1452 1453
  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
1454
    AC_DEFINE_UNQUOTED([WITH_STORAGE_ISCSI], 1, [whether iSCSI backend for storage driver is enabled])
1455 1456 1457
    AC_DEFINE_UNQUOTED([ISCSIADM],["$ISCSIADM"],[Location of iscsiadm program])
  fi
fi
1458
AM_CONDITIONAL([WITH_STORAGE_ISCSI], [test "$with_storage_iscsi" = "yes"])
1459

1460 1461 1462 1463 1464 1465
if test "$with_storage_scsi" = "check"; then
   with_storage_scsi=yes

   AC_DEFINE_UNQUOTED([WITH_STORAGE_SCSI], 1,
     [whether SCSI backend for storage driver is enabled])
fi
D
Daniel P. Berrange 已提交
1466
AM_CONDITIONAL([WITH_STORAGE_SCSI], [test "$with_storage_scsi" = "yes"])
1467

D
Dave Allan 已提交
1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478
if test "$with_storage_mpath" = "check"; then
   with_storage_mpath=yes

   AC_DEFINE_UNQUOTED([WITH_STORAGE_MPATH], 1,
     [whether mpath backend for storage driver is enabled])
fi
AM_CONDITIONAL([WITH_STORAGE_MPATH], [test "$with_storage_mpath" = "yes"])

if test "$with_storage_mpath" = "yes"; then
   DEVMAPPER_CFLAGS=
   DEVMAPPER_LIBS=
1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494
   PKG_CHECK_MODULES([DEVMAPPER], [devmapper >= $DEVMAPPER_REQUIRED], [], [DEVMAPPER_FOUND=no])
   if test "$DEVMAPPER_FOUND" = "no"; then
     # devmapper is missing pkg-config files in ubuntu, suse, etc
     save_LIBS="$LIBS"
     save_CFLAGS="$CFLAGS"
     DEVMAPPER_FOUND=yes
     AC_CHECK_HEADER([libdevmapper.h],,[DEVMAPPER_FOUND=no])
     AC_CHECK_LIB([devmapper], [dm_task_run],,[DEVMAPPER_FOUND=no])
     DEVMAPPER_LIBS="-ldevmapper"
     LIBS="$save_LIBS"
     CFLAGS="$save_CFLAGS"
   fi
   if test "$DEVMAPPER_FOUND" = "no" ; then
     AC_MSG_ERROR([You must install device-mapper-devel/libdevmapper >= $DEVMAPPER_REQUIRED to compile libvirt])
   fi

D
Dave Allan 已提交
1495 1496 1497
fi
AC_SUBST([DEVMAPPER_CFLAGS])
AC_SUBST([DEVMAPPER_LIBS])
1498 1499 1500

LIBPARTED_CFLAGS=
LIBPARTED_LIBS=
1501
if test "$with_storage_disk" = "yes" || test "$with_storage_disk" = "check"; then
1502
  AC_PATH_PROG([PARTED], [parted], [], [$PATH:/sbin:/usr/sbin])
1503 1504 1505 1506 1507 1508
  if test -z "$PARTED" ; then
    with_storage_disk=no
    PARTED_FOUND=no
  else
    PARTED_FOUND=yes
  fi
1509

1510
  if test "$with_storage_disk" != "no" && test "x$PKG_CONFIG" != "x" ; then
1511 1512 1513 1514 1515 1516 1517
    PKG_CHECK_MODULES(LIBPARTED, libparted >= $PARTED_REQUIRED, [], [PARTED_FOUND=no])
  fi
  if test "$PARTED_FOUND" = "no"; then
    # RHEL-5 vintage parted is missing pkg-config files
    save_LIBS="$LIBS"
    save_CFLAGS="$CFLAGS"
    PARTED_FOUND=yes
1518 1519 1520
    AC_CHECK_HEADER([parted/parted.h],,[PARTED_FOUND=no])
    AC_CHECK_LIB([uuid], [uuid_generate],,[PARTED_FOUND=no])
    AC_CHECK_LIB([parted], [ped_device_read],,[PARTED_FOUND=no])
1521 1522 1523 1524 1525 1526 1527
    LIBPARTED_LIBS="-luuid -lparted"
    LIBS="$save_LIBS"
    CFLAGS="$save_CFLAGS"
  fi

  if test "$PARTED_FOUND" = "no" ; then
    if test "$with_storage_disk" = "yes" ; then
1528
      AC_MSG_ERROR([We need parted for disk storage driver])
1529 1530 1531 1532 1533 1534 1535 1536
    else
      with_storage_disk=no
    fi
  else
    with_storage_disk=yes
  fi

  if test "$with_storage_disk" = "yes"; then
1537
    AC_DEFINE_UNQUOTED([WITH_STORAGE_DISK], 1, [whether Disk backend for storage driver is enabled])
1538 1539 1540
    AC_DEFINE_UNQUOTED([PARTED],["$PARTED"], [Location or name of the parted program])
  fi
fi
1541 1542 1543
AM_CONDITIONAL([WITH_STORAGE_DISK], [test "$with_storage_disk" = "yes"])
AC_SUBST([LIBPARTED_CFLAGS])
AC_SUBST([LIBPARTED_LIBS])
1544

1545
dnl
1546
dnl check for libcurl (ESX/XenAPI)
1547 1548 1549 1550 1551
dnl

LIBCURL_CFLAGS=""
LIBCURL_LIBS=""

1552
if test "$with_esx" = "yes" || test "$with_esx" = "check" || test "$with_xenapi" = "yes" || test "$with_xenapi" = "check"; then
1553
    PKG_CHECK_MODULES(LIBCURL, libcurl >= $LIBCURL_REQUIRED, [
1554 1555 1556 1557 1558 1559 1560
        if test "$with_esx" = "check"; then
            with_esx=yes
        fi

        if test "$with_xenapi" = "check"; then
            with_xenapi=yes
        fi
1561 1562 1563
    ], [
        if test "$with_esx" = "check"; then
            with_esx=no
1564 1565
            AC_MSG_NOTICE([libcurl is required for the ESX driver, disabling it])
        elif test "$with_esx" = "yes"; then
1566 1567
            AC_MSG_ERROR([libcurl >= $LIBCURL_REQUIRED is required for the ESX driver])
        fi
1568 1569 1570 1571 1572 1573 1574

        if test "$with_xenapi" = "check"; then
            with_xenapi=no
            AC_MSG_NOTICE([libcurl is required for the XenAPI driver, disabling it])
        elif test "$with_xenapi" = "yes"; then
            AC_MSG_ERROR([libcurl >= $LIBCURL_REQUIRED is required for the XenAPI driver])
        fi
1575
    ])
1576
fi
1577 1578


1579 1580 1581 1582
if test "$with_esx" = "yes" ; then
    AC_DEFINE_UNQUOTED([WITH_ESX], 1, [whether ESX driver is enabled])
fi
AM_CONDITIONAL([WITH_ESX], [test "$with_esx" = "yes"])
1583

1584 1585 1586 1587 1588 1589
if test "$with_xenapi" = "yes" ; then
    AC_DEFINE_UNQUOTED([WITH_XENAPI], 1, [whether XenAPI driver is enabled])
fi
AM_CONDITIONAL([WITH_XENAPI], [test "$with_xenapi" = "yes"])


1590 1591
AC_SUBST([LIBCURL_CFLAGS])
AC_SUBST([LIBCURL_LIBS])
1592

1593 1594 1595 1596
dnl
dnl check for python
dnl

1597
AC_ARG_WITH([python],
1598
  AC_HELP_STRING([--with-python], [Build python bindings @<:@default=yes@:>@]),[],[with_python=yes])
1599

1600 1601 1602 1603 1604 1605
if test "$enable_shared:$with_python" = no:yes; then
  AC_MSG_WARN([Disabling shared libraries is incompatible with building Python extensions.])
  AC_MSG_WARN([Ignoring --with-python.])
  with_python=no
fi

1606 1607 1608 1609 1610
PYTHON_VERSION=
PYTHON_INCLUDES=
if test "$with_python" != "no" ; then
    if test -x "$with_python/bin/python"
    then
1611
        AC_MSG_NOTICE(Found python in $with_python/bin/python)
1612
        PYTHON="$with_python/bin/python"
1613
        with_python=yes
1614
    else
1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626
        if test -x "$with_python"
        then
            AC_MSG_NOTICE(Found python in $with_python)
            PYTHON="$with_python"
            with_python=yes
        else
            if test -x "$PYTHON"
            then
                AC_MSG_NOTICE(Found python in environment PYTHON=$PYTHON)
                with_python=yes
            fi
        fi
1627
    fi
1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660

    if test "$with_python" == "yes" ; then
        AM_PATH_PYTHON(,, [:])

        if test "$PYTHON" != : ; then
            PYTHON_CONFIG="$PYTHON-config"

            if test -x "$PYTHON_CONFIG"
            then
                PYTHON_INCLUDES=`$PYTHON_CONFIG --includes`
            else
                if test -r $PYTHON_EXEC_PREFIX/include/python$PYTHON_VERSION/Python.h
                then
                    PYTHON_INCLUDES=-I$PYTHON_EXEC_PREFIX/include/python$PYTHON_VERSION
                else
                    if test -r $prefix/include/python$PYTHON_VERSION/Python.h
                    then
                        PYTHON_INCLUDES=-I$prefix/include/python$PYTHON_VERSION
                    else
                        if test -r /usr/include/python$PYTHON_VERSION/Python.h
                        then
                            PYTHON_INCLUDES=-I/usr/include/python$PYTHON_VERSION
                        else
                            AC_MSG_NOTICE([Could not find python$PYTHON_VERSION/Python.h, disabling bindings])
                            with_python=no
                        fi
                    fi
                fi
            fi
        else
            AC_MSG_NOTICE([Could not find python interpreter, disabling bindings])
            with_python=no
        fi
1661
    else
1662 1663
        AC_MSG_NOTICE([Could not find python in $with_python, disabling bindings])
        with_python=no
1664 1665
    fi
fi
1666
AM_CONDITIONAL([WITH_PYTHON], [test "$with_python" = "yes"])
1667 1668
AC_SUBST([PYTHON_VERSION])
AC_SUBST([PYTHON_INCLUDES])
1669 1670


1671

1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691
AC_MSG_CHECKING([whether this host is running a Xen kernel])
RUNNING_XEN=
if test -d /proc/sys/xen
then
    RUNNING_XEN=yes
else
    RUNNING_XEN=no
fi
AC_MSG_RESULT($RUNNING_XEN)

AC_MSG_CHECKING([If XenD UNIX socket /var/run/xend/xmlrpc.sock is accessible])
RUNNING_XEND=
if test -S /var/run/xend/xmlrpc.sock
then
    RUNNING_XEND=yes
else
    RUNNING_XEND=no
fi
AC_MSG_RESULT($RUNNING_XEND)

1692
AM_CONDITIONAL([ENABLE_XEN_TESTS], [test "$RUNNING_XEN" != "no" && test "$RUNNING_XEND" != "no"])
1693

1694
AC_ARG_ENABLE([test-coverage],
1695
  AC_HELP_STRING([--enable-test-coverage], [turn on code coverage instrumentation @<:@default=no@:>@]),
1696 1697 1698 1699 1700
[case "${enableval}" in
   yes|no) ;;
   *)      AC_MSG_ERROR([bad value ${enableval} for test-coverage option]) ;;
 esac],
              [enableval=no])
D
Daniel P. Berrange 已提交
1701
enable_coverage=$enableval
1702

D
Daniel P. Berrange 已提交
1703
if test "${enable_coverage}" = yes; then
1704 1705 1706 1707 1708 1709 1710
  gl_COMPILER_FLAGS(-fprofile-arcs)
  gl_COMPILER_FLAGS(-ftest-coverage)
  AC_SUBST([COVERAGE_CFLAGS], [$COMPILER_FLAGS])
  AC_SUBST([COVERAGE_LDFLAGS], [$COMPILER_FLAGS])
  COMPILER_FLAGS=
fi

D
Daniel P. Berrange 已提交
1711
AC_ARG_ENABLE([test-oom],
1712
  AC_HELP_STRING([--enable-test-oom], [memory allocation failure checking @<:@default=no@:>@]),
D
Daniel P. Berrange 已提交
1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729
[case "${enableval}" in
   yes|no) ;;
   *)      AC_MSG_ERROR([bad value ${enableval} for test-oom option]) ;;
 esac],
              [enableval=no])
enable_oom=$enableval

if test "${enable_oom}" = yes; then
  have_trace=yes
  AC_CHECK_HEADER([execinfo.h],[],[have_trace=no])
  AC_CHECK_FUNC([backtrace],[],[have_trace=no])
  if test "$have_trace" = "yes"; then
    AC_DEFINE([TEST_OOM_TRACE], 1, [Whether backtrace() is available])
  fi
  AC_DEFINE([TEST_OOM], 1, [Whether malloc OOM checking is enabled])
fi

1730 1731

AC_ARG_ENABLE([test-locking],
1732
  AC_HELP_STRING([--enable-test-locking], [thread locking tests using CIL @<:@default=no@:>@]),
1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745
[case "${enableval}" in
   yes|no) ;;
   *)      AC_MSG_ERROR([bad value ${enableval} for test-locking option]) ;;
 esac],
              [enableval=no])
enable_locking=$enableval

if test "$enable_locking" = "yes"; then
  LOCK_CHECKING_CFLAGS="-Dbool=char -D_Bool=char -save-temps"
  AC_SUBST([LOCK_CHECKING_CFLAGS])
fi
AM_CONDITIONAL([WITH_CIL],[test "$enable_locking" = "yes"])

1746
dnl Enable building the proxy?
1747

1748
AC_ARG_WITH([xen-proxy],
1749
  AC_HELP_STRING([--with-xen-proxy], [add XEN setuid proxy support @<:@default=auto@:>@]),[],[with_xen_proxy=auto])
1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763

AC_MSG_CHECKING([if Xen setuid proxy is needed])
if test "$with_xen_proxy" = "auto"; then
  if test "$with_polkit" = "yes"; then
    with_xen_proxy="no"
  else
    with_xen_proxy="yes"
  fi
fi
if test "$with_xen" != "yes"; then
  with_xen_proxy="no"
fi
AC_MSG_RESULT([$with_xen_proxy])

1764
AM_CONDITIONAL([WITH_PROXY],[test "$with_xen_proxy" = "yes"])
1765
if test "$with_xen_proxy" = "yes"; then
1766
  AC_DEFINE([WITH_PROXY], 1, [Whether Xen proxy is enabled])
1767
fi
1768

1769
dnl Enable building libvirtd?
1770
AM_CONDITIONAL([WITH_LIBVIRTD],[test "x$with_libvirtd" = "xyes"])
1771

1772
dnl Check for gettext
1773 1774
AM_GNU_GETTEXT_VERSION([0.14.1])
AM_GNU_GETTEXT([external])
1775 1776 1777 1778 1779
dnl Since we're using such an old version of gettext, we must also define
dnl this symbol, in order to make the autopoint-supplied Makefile.in.in
dnl work properly.
AC_SUBST([MKINSTALLDIRS], ["\$(top_builddir)/$ac_aux_dir/mkinstalldirs"])

1780
ALL_LINGUAS=`cd "$srcdir/po" > /dev/null && ls *.po | sed 's+\.po$++'`
1781

1782 1783 1784 1785 1786 1787
dnl Extra link-time flags for Cygwin.
dnl Copied from libxml2 configure.in, but I removed mingw changes
dnl for now since I'm not supporting mingw at present.  - RWMJ
CYGWIN_EXTRA_LDFLAGS=
CYGWIN_EXTRA_LIBADD=
CYGWIN_EXTRA_PYTHON_LIBADD=
1788
MINGW_EXTRA_LDFLAGS=
1789
WIN32_EXTRA_CFLAGS=
1790
LIBVIRT_SYMBOL_FILE=libvirt.syms
1791 1792 1793 1794 1795 1796 1797 1798
case "$host" in
  *-*-cygwin*)
    CYGWIN_EXTRA_LDFLAGS="-no-undefined"
    CYGWIN_EXTRA_LIBADD="${INTLLIBS}"
    if test "x$PYTHON_VERSION" != "x"; then
      CYGWIN_EXTRA_PYTHON_LIBADD="-L/usr/lib/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}"
    fi
    ;;
1799 1800 1801
  *-*-mingw*)
    MINGW_EXTRA_LDFLAGS="-no-undefined"
    ;;
1802
esac
1803 1804 1805 1806 1807 1808 1809
case "$host" in
  *-*-mingw* | *-*-cygwin* | *-*-msvc* )
    # If the host is Windows, and shared libraries are disabled, we
    # need to add -DLIBVIRT_STATIC to the CFLAGS for proper linking
    if test "x$enable_shared" = "xno"; then
      WIN32_EXTRA_CFLAGS="-DLIBVIRT_STATIC"
    fi
1810 1811 1812
esac
case "$host" in
  *-*-mingw* | *-*-msvc* )
1813 1814 1815
    # Also set the symbol file to .def, so src/Makefile generates libvirt.def
    # from libvirt.syms and passes libvirt.def instead of libvirt.syms to the linker
    LIBVIRT_SYMBOL_FILE=libvirt.def
1816
    # mingw's ld has the --version-script parameter, but it requires a .def file
M
Matthias Bolte 已提交
1817 1818
    # instead to work properly, therefore clear --version-script here and use
    # -Wl, to pass the .def file to the linker
1819 1820
    # cygwin's ld has the --version-script parameter too, but for some reason
    # it's working there as expected
M
Matthias Bolte 已提交
1821
    VERSION_SCRIPT_FLAGS="-Wl,"
1822 1823
    ;;
esac
1824 1825 1826 1827
AC_SUBST([CYGWIN_EXTRA_LDFLAGS])
AC_SUBST([CYGWIN_EXTRA_LIBADD])
AC_SUBST([CYGWIN_EXTRA_PYTHON_LIBADD])
AC_SUBST([MINGW_EXTRA_LDFLAGS])
1828
AC_SUBST([WIN32_EXTRA_CFLAGS])
1829
AC_SUBST([LIBVIRT_SYMBOL_FILE])
M
Matthias Bolte 已提交
1830
AC_SUBST([VERSION_SCRIPT_FLAGS])
1831

1832

1833 1834 1835 1836 1837 1838 1839
dnl Look for windres to build a Windows icon resource.
case "$host" in
  *-*-mingw* | *-*-cygwin* | *-*-msvc* )
    AC_CHECK_TOOL([WINDRES], [windres], [])
    ;;
esac
AM_CONDITIONAL([WITH_WIN_ICON], [test "$WINDRES" != ""])
1840 1841 1842 1843


dnl Driver-Modules library
AC_ARG_WITH([driver-modules],
1844
  AC_HELP_STRING([--with-driver-modules], [build drivers as loadable modules @<:@default=no@:>@]),
1845 1846 1847
  [],
  [with_driver_modules=no])

1848 1849
DRIVER_MODULE_CFLAGS=
DRIVER_MODULE_LIBS=
1850 1851 1852 1853 1854
if test "x$with_driver_modules" = "xyes" ; then
  old_cflags="$CFLAGS"
  old_libs="$LIBS"
  fail=0
  AC_CHECK_HEADER([dlfcn.h],[],[fail=1])
1855
  AC_SEARCH_LIBS([dlopen], [dl], [], [fail=1])
1856 1857 1858 1859 1860 1861 1862
  test $fail = 1 &&
      AC_MSG_ERROR([You must have dlfcn.h / dlopen() support to build driver modules])

  CFLAGS="$old_cflags"
  LIBS="$old_libs"
fi
if test "$with_driver_modules" = "yes"; then
1863
  DRIVER_MODULE_CFLAGS="-export-dynamic"
1864 1865 1866 1867
  case $ac_cv_search_dlopen in
    no*) DRIVER_MODULE_LIBS= ;;
    *) DRIVER_MODULE_LIBS=$ac_cv_search_dlopen ;;
  esac
1868 1869 1870
  AC_DEFINE_UNQUOTED([WITH_DRIVER_MODULES], 1, [whether to build drivers as modules])
fi
AM_CONDITIONAL([WITH_DRIVER_MODULES], [test "$with_driver_modules" != "no"])
1871 1872
AC_SUBST([DRIVER_MODULE_CFLAGS])
AC_SUBST([DRIVER_MODULE_LIBS])
1873 1874


1875 1876 1877 1878 1879
# 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-.}
1880
AC_SUBST([LV_LIBTOOL_OBJDIR])
1881

D
Daniel P. Berrange 已提交
1882
dnl HAL library check for host device enumeration
1883 1884 1885
HAL_CFLAGS=
HAL_LIBS=
AC_ARG_WITH([hal],
1886
  AC_HELP_STRING([--with-hal], [use HAL for host device enumeration @<:@default=check@:>@]),
1887 1888 1889 1890 1891 1892
  [],
  [with_hal=check])

if test "$with_libvirtd" = "no" ; then
  with_hal=no
fi
1893
if test "x$with_hal" = "xyes" || test "x$with_hal" = "xcheck"; then
1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904
  PKG_CHECK_MODULES(HAL, hal >= $HAL_REQUIRED,
    [with_hal=yes], [
    if test "x$with_hal" = "xcheck" ; then
       with_hal=no
    else
       AC_MSG_ERROR(
         [You must install hal-devel >= $HAL_REQUIRED to compile libvirt])
    fi
  ])
  if test "x$with_hal" = "xyes" ; then
    old_CFLAGS=$CFLAGS
1905
    old_LIBS=$LIBS
1906
    CFLAGS="$CFLAGS $HAL_CFLAGS"
1907
    LIBS="$LIBS $HAL_LIBS"
1908
    AC_CHECK_FUNCS([libhal_get_all_devices],,[with_hal=no])
1909
    AC_CHECK_FUNCS([dbus_watch_get_unix_fd])
1910
    CFLAGS="$old_CFLAGS"
1911
    LIBS="$old_LIBS"
1912
  fi
1913 1914 1915 1916
  if test "x$with_hal" = "xyes" ; then
    AC_DEFINE_UNQUOTED([HAVE_HAL], 1,
      [use HAL for host device enumeration])
  fi
1917 1918 1919 1920 1921 1922
fi
AM_CONDITIONAL([HAVE_HAL], [test "x$with_hal" = "xyes"])
AC_SUBST([HAL_CFLAGS])
AC_SUBST([HAL_LIBS])


D
Daniel P. Berrange 已提交
1923
dnl udev/libpciaccess library check for alternate host device enumeration
1924 1925
UDEV_CFLAGS=
UDEV_LIBS=
D
Daniel P. Berrange 已提交
1926 1927
PCIACCESS_CFLAGS=
PCIACCESS_LIBS=
1928
AC_ARG_WITH([udev],
1929
  AC_HELP_STRING([--with-udev], [use libudev for host device enumeration @<:@default=check@:>@]),
1930 1931 1932 1933 1934 1935
  [],
  [with_udev=check])

if test "$with_libvirtd" = "no" ; then
  with_udev=no
fi
1936
if test "x$with_udev" = "xyes" || test "x$with_udev" = "xcheck"; then
1937
  PKG_CHECK_MODULES(UDEV, libudev >= $UDEV_REQUIRED,
D
Daniel P. Berrange 已提交
1938
    [], [
1939 1940 1941 1942 1943 1944 1945
    if test "x$with_udev" = "xcheck" ; then
       with_udev=no
    else
       AC_MSG_ERROR(
         [You must install libudev-devel >= $UDEV_REQUIRED to compile libvirt])
    fi
  ])
D
Daniel P. Berrange 已提交
1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957
  if test "x$with_udev" != "xno"; then
    PKG_CHECK_MODULES(PCIACCESS, pciaccess >= $PCIACCESS_REQUIRED,
      [with_udev=yes],
      [
        if test "x$with_udev" = "xcheck" ; then
          with_udev=no
        else
          AC_MSG_ERROR(
           [You must install libpciaccess-devel >= $PCIACCESS_REQUIRED to compile libvirt])
        fi
      ])
  fi
1958 1959 1960 1961 1962 1963 1964 1965
  if test "x$with_udev" = "xyes" ; then
    AC_DEFINE_UNQUOTED([HAVE_UDEV], 1,
      [use UDEV for host device enumeration])
  fi
fi
AM_CONDITIONAL([HAVE_UDEV], [test "x$with_udev" = "xyes"])
AC_SUBST([UDEV_CFLAGS])
AC_SUBST([UDEV_LIBS])
1966 1967
AC_SUBST([PCIACCESS_CFLAGS])
AC_SUBST([PCIACCESS_LIBS])
1968

1969
with_nodedev=no;
1970
if test "$with_hal" = "yes" || test "$with_udev" = "yes";
1971 1972 1973 1974 1975 1976
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"])

1977 1978 1979 1980 1981 1982 1983
with_linux=no
case "$host" in
  *-*-linux*)
    with_linux=yes
    ;;
esac
AM_CONDITIONAL([WITH_LINUX], [test "$with_linux" = "yes"])
1984

1985 1986

AC_ARG_WITH([qemu-user],
1987
  AC_HELP_STRING([--with-qemu-user], [username to run QEMU system instance as @<:@default=root@:>@]),
1988 1989 1990
  [QEMU_USER=${withval}],
  [QEMU_USER=root])
AC_ARG_WITH([qemu-group],
1991
  AC_HELP_STRING([--with-qemu-group], [groupname to run QEMU system instance as @<:@default=root@:>@]),
1992 1993 1994 1995 1996
  [QEMU_GROUP=${withval}],
  [QEMU_GROUP=root])
AC_DEFINE_UNQUOTED([QEMU_USER], ["$QEMU_USER"], [QEMU user account])
AC_DEFINE_UNQUOTED([QEMU_GROUP], ["$QEMU_GROUP"], [QEMU group account])

1997 1998 1999 2000 2001 2002 2003

AC_ARG_WITH([macvtap],
  AC_HELP_STRING([--with-macvtap],[enable macvtap device @<:@default=check@:>@]),
  [with_macvtap=${withval}],
  [with_macvtap=check])

if test "$with_macvtap" != "no" ; then
S
Stefan Berger 已提交
2004 2005
    AC_TRY_COMPILE([ #include <sys/socket.h>
                     #include <linux/rtnetlink.h> ],
2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021
                   [ int x = MACVLAN_MODE_BRIDGE; ],
                   [ with_macvtap=yes ],
                   [ if test "$with_macvtap" = "yes" ; then
                         AC_MSG_ERROR([Installed linux headers don't show support for macvtap device.])
                     fi
                     with_macvtap=no ])
    if test "$with_macvtap" = "yes" ; then
        val=1
    else
        val=0
    fi
    AC_DEFINE_UNQUOTED([WITH_MACVTAP], $val, [whether macvtap support is enabled])
fi
AM_CONDITIONAL([WITH_MACVTAP], [test "$with_macvtap" = "yes"])


2022 2023 2024 2025 2026 2027
# Only COPYING.LIB is under version control, yet COPYING
# is included as part of the distribution tarball.
# Copy one to the other, but only if this is a srcdir-build.
# You are unlikely to be doing distribution-related things in a non-srcdir build
test "x$srcdir" = x. && ! test -f COPYING &&
cp -f COPYING.LIB COPYING
2028

2029 2030 2031 2032 2033 2034
# Detect when running under the clang static analyzer's scan-build driver
# or Coverity-prevent's cov-build.  Define STATIC_ANALYSIS accordingly.
test -n "$CCC_ANALYZER_ANALYSIS$COVERITY_BUILD_COMMAND" && t=1 || t=0
AC_DEFINE_UNQUOTED([STATIC_ANALYSIS], [$t],
  [Define to 1 when performing static analysis.])

2035
AC_OUTPUT(Makefile src/Makefile include/Makefile docs/Makefile \
2036
	  docs/schemas/Makefile \
2037
	  gnulib/lib/Makefile \
J
Jim Meyering 已提交
2038
	  gnulib/tests/Makefile \
R
Richard W.M. Jones 已提交
2039
          libvirt.pc libvirt.spec mingw32-libvirt.spec \
2040
          po/Makefile.in \
2041
	  include/libvirt/Makefile include/libvirt/libvirt.h \
K
Karel Zak 已提交
2042
	  python/Makefile python/tests/Makefile \
2043
          daemon/Makefile \
2044
          tools/Makefile \
2045
          tests/Makefile proxy/Makefile \
2046 2047
          tests/xml2sexprdata/Makefile \
          tests/sexpr2xmldata/Makefile \
2048
          tests/xmconfigdata/Makefile \
2049
          tests/xencapsdata/Makefile \
2050
          tests/confdata/Makefile \
2051
          examples/apparmor/Makefile \
D
Daniel Veillard 已提交
2052
          examples/domain-events/events-c/Makefile \
2053 2054 2055
          examples/domsuspend/Makefile \
          examples/dominfo/Makefile \
          examples/python/Makefile \
S
Stefan Berger 已提交
2056 2057
          examples/hellolibvirt/Makefile \
          examples/xml/nwfilter/Makefile)
D
Daniel P. Berrange 已提交
2058 2059 2060 2061 2062 2063 2064 2065

AC_MSG_NOTICE([])
AC_MSG_NOTICE([Configuration summary])
AC_MSG_NOTICE([=====================])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([Drivers])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([     Xen: $with_xen])
2066
AC_MSG_NOTICE([   Proxy: $with_xen_proxy])
D
Daniel P. Berrange 已提交
2067
AC_MSG_NOTICE([    QEMU: $with_qemu])
2068
AC_MSG_NOTICE([     UML: $with_uml])
D
Daniel P. Berrange 已提交
2069
AC_MSG_NOTICE([  OpenVZ: $with_openvz])
2070
AC_MSG_NOTICE([    VBox: $with_vbox])
2071
AC_MSG_NOTICE([  XenAPI: $with_xenapi])
D
Daniel Veillard 已提交
2072
AC_MSG_NOTICE([     LXC: $with_lxc])
2073
AC_MSG_NOTICE([    PHYP: $with_phyp])
D
Daniel Veillard 已提交
2074
AC_MSG_NOTICE([     ONE: $with_one])
2075
AC_MSG_NOTICE([     ESX: $with_esx])
D
Daniel P. Berrange 已提交
2076 2077
AC_MSG_NOTICE([    Test: $with_test])
AC_MSG_NOTICE([  Remote: $with_remote])
2078
AC_MSG_NOTICE([ Network: $with_network])
2079
AC_MSG_NOTICE([Libvirtd: $with_libvirtd])
D
Daniel Veillard 已提交
2080
AC_MSG_NOTICE([   netcf: $with_netcf])
2081
AC_MSG_NOTICE([ macvtap: $with_macvtap])
D
Daniel P. Berrange 已提交
2082
AC_MSG_NOTICE([])
2083 2084
AC_MSG_NOTICE([Storage Drivers])
AC_MSG_NOTICE([])
D
Daniel P. Berrange 已提交
2085
AC_MSG_NOTICE([     Dir: $with_storage_dir])
2086 2087
AC_MSG_NOTICE([      FS: $with_storage_fs])
AC_MSG_NOTICE([   NetFS: $with_storage_fs])
2088
AC_MSG_NOTICE([     LVM: $with_storage_lvm])
2089
AC_MSG_NOTICE([   iSCSI: $with_storage_iscsi])
2090
AC_MSG_NOTICE([    SCSI: $with_storage_scsi])
D
Dave Allan 已提交
2091
AC_MSG_NOTICE([   mpath: $with_storage_mpath])
2092
AC_MSG_NOTICE([    Disk: $with_storage_disk])
2093
AC_MSG_NOTICE([])
2094 2095 2096
AC_MSG_NOTICE([Security Drivers])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([ SELinux: $with_secdriver_selinux])
2097
AC_MSG_NOTICE([AppArmor: $with_secdriver_apparmor])
2098
AC_MSG_NOTICE([])
2099 2100 2101
AC_MSG_NOTICE([Driver Loadable Modules])
AC_MSG_NOTICE([])
if test "$with_driver_modules" != "no" ; then
2102
AC_MSG_NOTICE([  dlopen: $DRIVER_MODULE_CFLAGS $DRIVER_MODULE_LIBS])
2103 2104 2105
else
AC_MSG_NOTICE([  dlopen: no])
fi
2106 2107 2108 2109
AC_MSG_NOTICE([])
AC_MSG_NOTICE([Libraries])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([  libxml: $LIBXML_CFLAGS $LIBXML_LIBS])
2110 2111 2112 2113 2114
if test "$with_esx" = "yes" ; then
AC_MSG_NOTICE([ libcurl: $LIBCURL_CFLAGS $LIBCURL_LIBS])
else
AC_MSG_NOTICE([ libcurl: no])
fi
2115
if test "$with_libssh2" != "no" ; then
2116
AC_MSG_NOTICE([ libssh2: $LIBSSH2_CFLAGS $LIBSSH2_LIBS])
2117
else
2118
AC_MSG_NOTICE([ libssh2: no])
2119
fi
2120
AC_MSG_NOTICE([  gnutls: $GNUTLS_CFLAGS $GNUTLS_LIBS])
2121 2122 2123 2124 2125
if test "$with_sasl" != "no" ; then
AC_MSG_NOTICE([    sasl: $SASL_CFLAGS $SASL_LIBS])
else
AC_MSG_NOTICE([    sasl: no])
fi
2126 2127 2128 2129 2130
if test "$with_yajl" != "no" ; then
AC_MSG_NOTICE([    yajl: $YAJL_CFLAGS $YAJL_LIBS])
else
AC_MSG_NOTICE([    yajl: no])
fi
2131 2132 2133 2134 2135
if test "$with_avahi" = "yes" ; then
AC_MSG_NOTICE([   avahi: $AVAHI_CFLAGS $AVAHI_LIBS])
else
AC_MSG_NOTICE([   avahi: no])
fi
2136
if test "$with_polkit" = "yes" ; then
2137 2138 2139 2140 2141
if test "$with_polkit0" = "yes" ; then
AC_MSG_NOTICE([  polkit: $POLKIT_CFLAGS $POLKIT_LIBS (version 0)])
else
AC_MSG_NOTICE([  polkit: $PKCHECK_PATH (version 1)])
fi
2142 2143 2144
else
AC_MSG_NOTICE([  polkit: no])
fi
2145
if test "$with_selinux" = "yes" ; then
2146
AC_MSG_NOTICE([ selinux: $SELINUX_CFLAGS $SELINUX_LIBS])
2147
else
2148
AC_MSG_NOTICE([ selinux: no])
2149
fi
J
Jamie Strandboge 已提交
2150
if test "$with_apparmor" = "yes" ; then
2151
AC_MSG_NOTICE([apparmor: $APPARMOR_CFLAGS $APPARMOR_LIBS])
J
Jamie Strandboge 已提交
2152
else
2153
AC_MSG_NOTICE([apparmor: no])
J
Jamie Strandboge 已提交
2154
fi
2155
if test "$with_numactl" = "yes" ; then
2156
AC_MSG_NOTICE([ numactl: $NUMACTL_CFLAGS $NUMACTL_LIBS])
2157
else
2158
AC_MSG_NOTICE([ numactl: no])
2159
fi
D
Daniel P. Berrange 已提交
2160 2161 2162 2163 2164
if test "$with_capng" = "yes" ; then
AC_MSG_NOTICE([   capng: $CAPNG_CFLAGS $CAPNG_LIBS])
else
AC_MSG_NOTICE([   capng: no])
fi
2165
if test "$with_xen" = "yes" ; then
2166
AC_MSG_NOTICE([     xen: $XEN_CFLAGS $XEN_LIBS])
2167
else
2168
AC_MSG_NOTICE([     xen: no])
2169
fi
2170 2171 2172 2173 2174
if test "$with_xenapi" = "yes" ; then
AC_MSG_NOTICE([  xenapi: $LIBXENSERVER_CFLAGS $LIBXENSERVER_LIBS])
else
AC_MSG_NOTICE([  xenapi: no])
fi
2175
if test "$with_hal" = "yes" ; then
2176
AC_MSG_NOTICE([     hal: $HAL_CFLAGS $HAL_LIBS])
2177
else
2178
AC_MSG_NOTICE([     hal: no])
2179
fi
2180
if test "$with_udev" = "yes" ; then
2181
AC_MSG_NOTICE([    udev: $UDEV_CFLAGS $UDEV_LIBS $PCIACCESS_CFLAGS $PCIACCESS_LIBS])
2182 2183 2184
else
AC_MSG_NOTICE([    udev: no])
fi
D
Daniel Veillard 已提交
2185 2186 2187 2188 2189
if test "$with_netcf" = "yes" ; then
AC_MSG_NOTICE([   netcf: $NETCF_CFLAGS $NETCF_LIBS])
else
AC_MSG_NOTICE([   netcf: no])
fi
2190 2191 2192 2193 2194
if test "$with_one" = "yes" ; then
AC_MSG_NOTICE([  xmlrpc: $XMLRPC_CFLAGS $XMLRPC_LIBS])
else
AC_MSG_NOTICE([  xmlrpc: no])
fi
2195 2196 2197 2198 2199
if test "$with_qemu" = "yes" ; then
AC_MSG_NOTICE([    pcap: $LIBPCAP_CFLAGS $LIBPCAP_LIBS])
else
AC_MSG_NOTICE([    pcap: no])
fi
D
Daniel P. Berrange 已提交
2200
AC_MSG_NOTICE([])
D
Daniel P. Berrange 已提交
2201 2202
AC_MSG_NOTICE([Test suite])
AC_MSG_NOTICE([])
2203
AC_MSG_NOTICE([   Coverage: $enable_coverage])
D
Daniel P. Berrange 已提交
2204 2205
AC_MSG_NOTICE([  Alloc OOM: $enable_oom])
AC_MSG_NOTICE([])
D
Daniel P. Berrange 已提交
2206 2207
AC_MSG_NOTICE([Miscellaneous])
AC_MSG_NOTICE([])
2208
AC_MSG_NOTICE([     Debug: $enable_debug])
2209
AC_MSG_NOTICE([  Warnings: $enable_compile_warnings])
2210
AC_MSG_NOTICE([  Readline: $lv_use_readline])
2211
AC_MSG_NOTICE([    Python: $with_python])
D
Daniel P. Berrange 已提交
2212
AC_MSG_NOTICE([])
2213 2214 2215
AC_MSG_NOTICE([Privileges])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([      QEMU: $QEMU_USER:$QEMU_GROUP])
2216
AC_MSG_NOTICE([])