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

3
AC_INIT([libvirt], [0.4.4])
4 5 6
AC_CONFIG_SRCDIR([src/libvirt.c])
AC_CONFIG_AUX_DIR([build-aux])
AM_CONFIG_HEADER([config.h])
7 8
dnl Make automake keep quiet about wildcards & other GNUmake-isms
AM_INIT_AUTOMAKE([-Wno-portability])
D
Daniel Veillard 已提交
9 10
AC_CANONICAL_HOST

11 12 13
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}'`
14 15 16
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 已提交
17

18 19 20 21 22 23
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 已提交
24

25 26
dnl Required minimum versions of all libs we depend on
LIBXML_REQUIRED="2.5.0"
27
GNUTLS_REQUIRED="1.0.25"
28
AVAHI_REQUIRED="0.6.0"
29
POLKIT_REQUIRED="0.6"
30
PARTED_REQUIRED="1.8.0"
31

32
dnl Checks for C compiler.
33 34 35
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_CPP
36

37 38 39 40 41 42 43
dnl gl_INIT uses m4_foreach_w, yet that is not defined in autoconf-2.59.
dnl In order to accommodate developers with such old tools, here's a
dnl replacement definition.
m4_ifndef([m4_foreach_w],
  [m4_define([m4_foreach_w],
    [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])])

44 45 46 47 48 49
gl_EARLY
gl_INIT

AM_PROG_CC_STDC
AC_C_CONST

50 51
dnl Make sure we have an ANSI compiler
AM_C_PROTOTYPES
52
test "x$U" != "x" && AC_MSG_ERROR([Compiler not ANSI compliant])
53

54 55 56
dnl Support building Win32 DLLs (must appear *before* AM_PROG_LIBTOOL)
AC_LIBTOOL_WIN32_DLL

57 58
AM_PROG_LIBTOOL

59 60
AM_PROG_CC_C_O

61
LIBVIRT_COMPILE_WARNINGS([maximum])
62

R
Richard W.M. Jones 已提交
63 64 65 66
dnl Support large files / 64 bit seek offsets.
dnl Use --disable-largefile if you don't want this.
AC_SYS_LARGEFILE

67
dnl Availability of various common functions (non-fatal if missing).
68
AC_CHECK_FUNCS([cfmakeraw regexec uname sched_getaffinity])
69 70

dnl Availability of various common headers (non-fatal if missing).
71
AC_CHECK_HEADERS([pwd.h paths.h sys/syslimits.h sys/utsname.h sys/wait.h winsock2.h sched.h termios.h])
72

73 74 75 76 77 78
dnl Where are the XDR functions?
dnl If portablexdr is installed, prefer that.
dnl Otherwise try -lrpc (Cygwin) -lxdr (some MinGW) or none (most Unix)
AC_CHECK_LIB([portablexdr],[xdrmem_create],[],[
	AC_SEARCH_LIBS([xdrmem_create],[rpc xdr])
	])
79

80
dnl Do we have rpcgen?
81 82
AC_PATH_PROG([RPCGEN], [rpcgen], [no])
AM_CONDITIONAL([RPCGEN], [test "x$ac_cv_path_RPCGEN" != "xno"])
83
dnl Is this GLIBC's buggy rpcgen?
84
AM_CONDITIONAL([GLIBC_RPCGEN],
85 86
	       [test "x$ac_cv_path_RPCGEN" != "xno" &&
	        $ac_cv_path_RPCGEN -t </dev/null >/dev/null 2>&1])
87

R
Richard W.M. Jones 已提交
88
dnl pthread?
89 90
AC_CHECK_HEADER([pthread.h],
	[AC_CHECK_LIB([pthread],[pthread_join],[
R
Richard W.M. Jones 已提交
91 92
		AC_DEFINE([HAVE_LIBPTHREAD],[],[Define if pthread (-lpthread)])
		AC_DEFINE([HAVE_PTHREAD_H],[],[Define if <pthread.h>])
93
		LIBS="-lpthread $LIBS"
94
	])])
R
Richard W.M. Jones 已提交
95

96
dnl Miscellaneous external programs.
97 98 99 100
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])
101
AC_PATH_PROG([XMLCATALOG], [xmlcatalog], [/usr/bin/xmlcatalog])
102
AC_PATH_PROG([XSLTPROC], [xsltproc], [/usr/bin/xsltproc])
103
AC_PATH_PROG([AUGPARSE], [augparse], [/usr/bin/augparse])
R
Richard W.M. Jones 已提交
104 105
AC_PROG_MKDIR_P

106 107 108 109
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.
110
AC_PATH_PROG([DNSMASQ], [dnsmasq], [dnsmasq],
111
	[/sbin:/usr/sbin:/usr/local/sbin:$PATH])
112
AC_PATH_PROG([BRCTL], [brctl], [brctl],
113 114 115 116 117 118 119
	[/sbin:/usr/sbin:/usr/local/sbin:$PATH])

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)])

120
dnl Specific dir for HTML output ?
121 122
AC_ARG_WITH([html-dir], [AC_HELP_STRING([--with-html-dir=path],
            [path to base html directory, default $datadir/doc/html])],
123 124
            [HTML_DIR=$withval], [HTML_DIR='$(datadir)/doc'])

125 126
AC_ARG_WITH([html-subdir], [AC_HELP_STRING([--with-html-subdir=path],
            [directory used under html-dir, default $PACKAGE-$VERSION/html])],
127 128
            [test "x$withval" != "x" && HTML_DIR="$HTML_DIR/$withval"],
            [HTML_DIR="$HTML_DIR/\$(PACKAGE)-\$(VERSION)/html"])
129
AC_SUBST([HTML_DIR])
130

131 132 133 134
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

D
Daniel P. Berrange 已提交
135
if test "$prefix" = "/usr" -a "$localstatedir" = '${prefix}/var' ; then
136 137
    localstatedir='/var'
fi
D
Daniel P. Berrange 已提交
138
if test "$prefix" = "/usr" -a "$sysconfdir" = '${prefix}/etc' ; then
139 140 141 142
    sysconfdir='/etc'
fi


143
dnl Allow to build without Xen, QEMU/KVM, test or remote driver
144
AC_ARG_WITH([xen],
D
Daniel P. Berrange 已提交
145
[  --with-xen              add XEN support (on)],[],[with_xen=yes])
146
AC_ARG_WITH([qemu],
D
Daniel P. Berrange 已提交
147
[  --with-qemu             add QEMU/KVM support (on)],[],[with_qemu=yes])
148
AC_ARG_WITH([openvz],
149
[  --with-openvz           add OpenVZ support (on)],[],[with_openvz=yes])
150
AC_ARG_WITH([lxc],
151
[  --with-lxc              add Linux Container support (on)],[],[with_lxc=yes])
152
AC_ARG_WITH([test],
D
Daniel P. Berrange 已提交
153
[  --with-test             add test driver support (on)],[],[with_test=yes])
154
AC_ARG_WITH([remote],
D
Daniel P. Berrange 已提交
155
[  --with-remote           add remote driver support (on)],[],[with_remote=yes])
156
AC_ARG_WITH([libvirtd],
157
[  --with-libvirtd         add libvirtd support (on)],[],[with_libvirtd=yes])
158

159 160 161
dnl
dnl specific tests to setup DV devel environments with debug etc ...
dnl
162
if [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/libvirt" ]] ; then
163 164 165 166
    STATIC_BINARIES="-static"
else
    STATIC_BINARIES=
fi
167
AC_SUBST([STATIC_BINARIES])
168

169
dnl --enable-debug=(yes|no)
170 171 172
AC_ARG_ENABLE([debug],
              [AC_HELP_STRING([--enable-debug=no/yes],
                             [enable debugging output])],[],[enable_debug=yes])
173
if test x"$enable_debug" = x"yes"; then
174
   AC_DEFINE([ENABLE_DEBUG], [], [whether debugging is enabled])
175 176
fi

177

178
AC_MSG_CHECKING([where to write libvirtd PID file])
179
AC_ARG_WITH([remote-pid-file], [AC_HELP_STRING([--with-remote-pid-file=[pidfile|none]], [PID file for libvirtd])])
180 181 182 183 184 185 186
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
187
AC_SUBST([REMOTE_PID_FILE])
188 189
AC_MSG_RESULT($REMOTE_PID_FILE)

190 191 192 193
dnl
dnl init script flavor
dnl
AC_MSG_CHECKING([for init script flavor])
194 195 196
AC_ARG_WITH([init-script],
            [AC_HELP_STRING([--with-init-scripts=[redhat|auto|none]],
		     [Style of init scripts to install (defaults to auto)])])
197 198 199 200 201 202 203
if test "x$with_init_scripts" = "x" -o "x$with_init_scripts" = "xauto"; then
    if test -f /etc/redhat-release ; then
        with_init_scripts=redhat
    else
        with_init_scripts=none
    fi
fi
204
AM_CONDITIONAL([LIBVIRT_INIT_SCRIPTS_RED_HAT], test x$with_init_scripts = xredhat)
205 206
AC_MSG_RESULT($with_init_scripts)

207 208 209 210
dnl
dnl ensure that Fedora's system-config-firewall knows
dnl about libvirt's iptables rules
dnl
211 212 213
AC_ARG_ENABLE([iptables-lokkit],
              [AC_HELP_STRING([--enable-iptables-lokkit=no/yes/check],
	   [enable registering libvirt's iptables rules with Fedora's lokkit])],
214 215
                             [],[enable_iptables_lokkit=check])
if test x"$enable_iptables_lokkit" != x"no"; then
216
   AC_PATH_PROG([LOKKIT_PATH],[lokkit], [], [/usr/sbin:$PATH])
217 218 219 220 221 222 223
fi

if test x"$enable_iptables_lokkit" = x"yes" -a x"$LOKKIT_PATH" = x; then
   AC_MSG_ERROR([Cannot find lokkit and --enable-iptables-lokkit specified])
fi

if test x"$LOKKIT_PATH" != x; then
224 225
   AC_DEFINE([ENABLE_IPTABLES_LOKKIT], [], [whether support for Fedora's lokkit is enabled])
   AC_DEFINE_UNQUOTED([LOKKIT_PATH], "$LOKKIT_PATH", [path to lokkit binary])
226 227
fi

228 229
AC_PATH_PROG([IPTABLES_PATH], [iptables], /sbin/iptables, [/usr/sbin:$PATH])
AC_DEFINE_UNQUOTED([IPTABLES_PATH], "$IPTABLES_PATH", [path to iptables binary])
230

231 232 233 234
dnl
dnl Specify the xen-distribution directory to be able to compile on a
dnl non-xenified host
dnl
235 236
AC_ARG_WITH([xen-distdir], [AC_HELP_STRING([--with-xen-distdir=path],
            [distribution directory of Xen, default /usr])])
237 238 239
if test "x$with_xen_distdir" != "x"
then
CPPFLAGS="$CPPFLAGS -I$withval/install/usr/include"
240
LDFLAGS="$LDFLAGS -L$withval/install/usr/lib -L$withval/install/usr/lib64"
241 242
fi

243 244 245
LIBVIRT_FEATURES=
WITH_XEN=0

246
if test "$with_openvz" = "yes"; then
247 248
    LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_OPENVZ"
fi
249 250
AM_CONDITIONAL([WITH_OPENVZ], [test "$with_openvz" = "yes"])

D
Daniel Veillard 已提交
251 252 253
if test "$with_lxc" = "yes" ; then
    LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_LXC"
fi
254 255
AM_CONDITIONAL([WITH_LXC], [test "$with_lxc" = "yes"])

D
Daniel P. Berrange 已提交
256
if test "$with_qemu" = "yes" ; then
257 258
    LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_QEMU"
fi
259
AM_CONDITIONAL([WITH_QEMU], [test "$with_qemu" = "yes"])
260

D
Daniel P. Berrange 已提交
261
if test "$with_test" = "yes" ; then
262 263
    LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_TEST"
fi
264
AM_CONDITIONAL([WITH_TEST], [test "$with_test" = "yes"])
265

D
Daniel P. Berrange 已提交
266
if test "$with_remote" = "yes" ; then
267 268
    LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_REMOTE"
fi
269
AM_CONDITIONAL([WITH_REMOTE], [test "$with_remote" = "yes"])
270

271 272 273
if test "$with_libvirtd" = "yes" ; then
    LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_LIBVIRTD"
fi
274
AM_CONDITIONAL([WITH_LIBVIRTD], [test "$with_libvirtd" = "yes"])
275

D
Daniel P. Berrange 已提交
276
if test "$with_xen" = "yes" ; then
277 278 279 280 281 282 283
    dnl search for the Xen store library
    AC_SEARCH_LIBS(xs_read, [xenstore],
                   [WITH_XEN=1],
                   [AC_MSG_RESULT([Xen store library not found])])
    if test "$WITH_XEN" != "0" ; then
        LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_XEN"
    fi
284

285
    AC_CHECK_HEADERS([xen/xen.h xen/version.h xen/dom0_ops.h],,[
286 287 288 289 290 291 292
	AC_MSG_ERROR([Cannot find standard Xen headers. Is xen-devel installed?])
    ],
[#include <stdio.h>
#include <stdint.h>
])

    dnl Search for the location of <xen/{linux,sys}/privcmd.h>.
293 294
    AC_CHECK_HEADERS([xen/sys/privcmd.h],,[
	AC_CHECK_HEADERS([xen/linux/privcmd.h],,[
295 296 297 298 299 300 301 302 303 304 305
	    AC_MSG_ERROR([Cannot find header file <xen/linux/privcmd.h> or <xen/sys/privcmd.h>.  Is xen-devel installed?])
	],
[#include <stdio.h>
#include <stdint.h>
#include <xen/xen.h>
])
    ],
[#include <stdio.h>
#include <stdint.h>
#include <xen/xen.h>
])
306
fi
307
AM_CONDITIONAL([WITH_XEN], [test "$WITH_XEN" = "1"])
308

309
dnl
310
dnl check for kernel headers required by src/bridge.c
311
dnl
312
if test "$with_qemu" = "yes" -o "$with_lxc" = "yes" ; then
313
  AC_CHECK_HEADERS([linux/param.h linux/sockios.h linux/if_bridge.h linux/if_tun.h],,
314 315
                   AC_MSG_ERROR([You must install kernel-headers in order to compile libvirt]))
fi
316

317 318 319
dnl Need to test if pkg-config exists
PKG_PROG_PKG_CONFIG

320 321 322 323 324 325 326
dnl ==========================================================================
dnl find libxml2 library, borrowed from xmlsec
dnl ==========================================================================
LIBXML_CONFIG="xml2-config"
LIBXML_CFLAGS=""
LIBXML_LIBS=""
LIBXML_FOUND="no"
327

328
AC_ARG_WITH([libxml], [  --with-libxml=[PFX]       libxml2 location])
329
if test "x$with_libxml" = "xno" ; then
330
    AC_MSG_CHECKING(for libxml2 libraries >= $LIBXML_REQUIRED)
331
    AC_MSG_ERROR([libxml2 >= $LIBXML_REQUIRED is required for libvirt])
R
Richard W.M. Jones 已提交
332
elif test "x$with_libxml" = "x" -a "x$PKG_CONFIG" != "x" ; then
333
    PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= $LIBXML_REQUIRED, [LIBXML_FOUND=yes], [LIBXML_FOUND=no])
334
fi
335 336
if test "$LIBXML_FOUND" = "no" ; then
    if test "x$with_libxml" != "x" ; then
337 338
	LIBXML_CONFIG=$with_libxml/bin/$LIBXML_CONFIG
    fi
339
    AC_MSG_CHECKING(libxml2 $LIBXML_CONFIG >= $LIBXML_REQUIRED )
340
    if ! $LIBXML_CONFIG --version > /dev/null 2>&1 ; then
341
	AC_MSG_ERROR([Could not find libxml2 anywhere (see config.log for details).])
342 343
    fi
    vers=`$LIBXML_CONFIG --version | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
344
    minvers=`echo $LIBXML_REQUIRED | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
345 346 347 348
    if test "$vers" -ge "$minvers" ; then
        LIBXML_LIBS="`$LIBXML_CONFIG --libs`"
        LIBXML_CFLAGS="`$LIBXML_CONFIG --cflags`"
	LIBXML_FOUND="yes"
349
        AC_MSG_RESULT(yes)
350
    else
351 352
        AC_MSG_ERROR(
          [You need at least libxml2 $LIBXML_REQUIRED for this version of libvirt])
353 354 355
    fi
fi

356 357
AC_SUBST([LIBXML_CFLAGS])
AC_SUBST([LIBXML_LIBS])
358

359 360
dnl xmlURI structure has query_raw?
old_cflags="$CFLAGS"
361
old_ldflags="$LDFLAGS"
362
CFLAGS="$CFLAGS $LIBXML_CFLAGS"
363
LDFLAGS="$LDFLAGS $LIBXML_LIBS"
364 365
AC_CHECK_MEMBER([struct _xmlURI.query_raw],
		[AC_DEFINE([HAVE_XMLURI_QUERY_RAW], [], [Have query_raw field in libxml2 xmlURI structure])],,
366 367
		[#include <libxml/uri.h>])
CFLAGS="$old_cflags"
368
LDFLAGS="$old_ldflags"
369 370

dnl GnuTLS library
371 372
GNUTLS_CFLAGS=
GNUTLS_LIBS=
373 374 375 376 377 378
GNUTLS_FOUND=no
if test -z "$PKG_CONFIG" ; then
  PKG_CHECK_MODULES(GNUTLS, gnutls >= $GNUTLS_REQUIRED,
     [GNUTLS_FOUND=yes], [GNUTLS_FOUND=no])
fi
if test "$GNUTLS_FOUND" = "no"; then
379
  fail=0
380
  old_libs="$LIBS"
381 382 383 384 385 386
  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])

387 388 389 390
  GNUTLS_LIBS=$LIBS
  LIBS="$old_libs"
fi

391 392
AC_SUBST([GNUTLS_CFLAGS])
AC_SUBST([GNUTLS_LIBS])
393

394 395 396
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.
397 398 399 400
old_cflags="$CFLAGS"
old_ldflags="$LDFLAGS"
CFLAGS="$CFLAGS $GNUTLS_CFLAGS"
LDFLAGS="$LDFLAGS $GNUTLS_LIBS"
401 402
AC_CHECK_TYPE([gnutls_session],
	AC_DEFINE([GNUTLS_1_0_COMPAT],[],
403 404
		[enable GnuTLS 1.0 compatibility macros]),,
	[#include <gnutls/gnutls.h>])
405 406
CFLAGS="$old_cflags"
LDFLAGS="$old_ldflags"
407

408

409
dnl Cyrus SASL
410
AC_ARG_WITH([sasl],
411 412
  [  --with-sasl         use cyrus SASL for authentication],
  [],
413
  [with_sasl=check])
414 415 416

SASL_CFLAGS=
SASL_LIBS=
417 418
if test "x$with_sasl" != "xno"; then
  if test "x$with_sasl" != "xyes" -a "x$with_sasl" != "xcheck"; then
419 420 421
    SASL_CFLAGS="-I$with_sasl"
    SASL_LIBS="-L$with_sasl"
  fi
422
  fail=0
423 424 425 426
  old_cflags="$CFLAGS"
  old_libs="$LIBS"
  CFLAGS="$CFLAGS $SASL_CFLAGS"
  LIBS="$LIBS $SASL_LIBS"
427 428 429 430
  AC_CHECK_HEADER([sasl/sasl.h],[],[
    if test "x$with_sasl" != "xcheck" ; then
        with_sasl=no
    else
431
        fail=1
432 433
    fi])
  if test "x$with_sasl" != "xno" ; then
434
    AC_CHECK_LIB([sasl2], [sasl_client_init],[with_sasl=yes],[
435 436 437
      if test "x$with_sasl" = "xcheck" ; then
          with_sasl=no
      else
438
          fail=1
439 440
      fi])
  fi
441 442
  test $fail = 1 &&
    AC_MSG_ERROR([You must install the Cyrus SASL development package in order to compile libvirt])
443 444 445
  CFLAGS="$old_cflags"
  LIBS="$old_libs"
  SASL_LIBS="$SASL_LIBS -lsasl2"
446
  if test "x$with_sasl" = "xyes" ; then
447
    AC_DEFINE_UNQUOTED([HAVE_SASL], 1,
448 449
      [whether Cyrus SASL is available for authentication])
  fi
450
fi
451 452 453
AM_CONDITIONAL([HAVE_SASL], [test "x$with_sasl" = "xyes"])
AC_SUBST([SASL_CFLAGS])
AC_SUBST([SASL_LIBS])
454 455


456 457 458
dnl PolicyKit library
POLKIT_CFLAGS=
POLKIT_LIBS=
459
AC_ARG_WITH([polkit],
460 461 462 463
  [  --with-polkit         use PolicyKit for UNIX socket access checks],
  [],
  [with_polkit=check])

464 465 466 467 468 469 470 471 472 473 474
if test "x$with_polkit" = "xyes" -o "x$with_polkit" = "xcheck"; then
  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
475
    AC_DEFINE_UNQUOTED([HAVE_POLKIT], 1,
476
      [use PolicyKit for UNIX socket access checks])
477 478 479 480 481

    old_CFLAGS=$CFLAGS
    old_LDFLAGS=$LDFLAGS
    CFLAGS="$CFLAGS $POLKIT_CFLAGS"
    LDFLAGS="$LDFLAGS $POLKIT_LIBS"
482
    AC_CHECK_FUNCS([polkit_context_is_caller_authorized])
483 484 485
    CFLAGS="$old_CFLAGS"
    LDFLAGS="$old_LDFLAGS"

486
    AC_PATH_PROG([POLKIT_AUTH], [polkit-auth])
487 488 489
    if test "x$POLKIT_AUTH" != "x"; then
      AC_DEFINE_UNQUOTED([POLKIT_AUTH],["$POLKIT_AUTH"],[Location of polkit-auth program])
    fi
490
  fi
491
fi
492 493 494
AM_CONDITIONAL([HAVE_POLKIT], [test "x$with_polkit" = "xyes"])
AC_SUBST([POLKIT_CFLAGS])
AC_SUBST([POLKIT_LIBS])
495

496
dnl Avahi library
497
AC_ARG_WITH([avahi],
498 499 500 501 502 503
  [  --with-avahi         use avahi to advertise remote daemon],
  [],
  [with_avahi=check])

AVAHI_CFLAGS=
AVAHI_LIBS=
504 505 506 507 508 509 510 511 512 513 514
if test "x$with_avahi" = "xyes" -o "x$with_avahi" = "xcheck"; then
  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
515
    AC_DEFINE_UNQUOTED([HAVE_AVAHI], 1,
516 517
      [whether Avahi is used to broadcast server presense])
  fi
518
fi
519 520 521
AM_CONDITIONAL([HAVE_AVAHI], [test "x$with_avahi" = "xyes"])
AC_SUBST([AVAHI_CFLAGS])
AC_SUBST([AVAHI_LIBS])
522

523
dnl SELinux
524
AC_ARG_WITH([selinux],
525 526 527 528 529 530 531 532 533 534 535
  [  --with-selinux         use SELinux to manage security],
  [],
  [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])
536
    AC_CHECK_LIB([selinux], [fgetfilecon],[],[with_selinux=no])
537 538 539 540
    if test "$with_selinux" != "no"; then
      with_selinux="yes"
    fi
  else
541 542 543 544 545
    fail=0
    AC_CHECK_HEADER([selinux/selinux.h],[],[fail=1])
    AC_CHECK_LIB([selinux], [fgetfilecon],[],[fail=1])
    test $fail = 1 &&
      AC_MSG_ERROR([You must install the SELinux development package in order to compile libvirt])
546 547 548 549 550 551
  fi
  CFLAGS="$old_cflags"
  LIBS="$old_libs"
fi
if test "$with_selinux" = "yes"; then
  SELINUX_LIBS="-lselinux"
552
  AC_DEFINE_UNQUOTED([HAVE_SELINUX], 1, [whether SELinux is available for security])
553
fi
554 555 556
AM_CONDITIONAL([HAVE_SELINUX], [test "$with_selinux" != "no"])
AC_SUBST([SELINUX_CFLAGS])
AC_SUBST([SELINUX_LIBS])
557

558
dnl NUMA lib
559
AC_ARG_WITH([numactl],
560 561 562 563 564 565 566 567 568 569 570
  [  --with-numactl         use numactl for host topology info],
  [],
  [with_numactl=check])

NUMACTL_CFLAGS=
NUMACTL_LIBS=
if test "$with_qemu" = "yes" -a "$with_numactl" != "no"; then
  old_cflags="$CFLAGS"
  old_libs="$LIBS"
  if test "$with_numactl" = "check"; then
    AC_CHECK_HEADER([numa.h],[],[with_numactl=no])
571
    AC_CHECK_LIB([numa], [numa_available],[],[with_numactl=no])
572 573 574 575
    if test "$with_numactl" != "no"; then
      with_numactl="yes"
    fi
  else
576 577 578 579 580
    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])
581 582 583 584 585 586
  fi
  CFLAGS="$old_cflags"
  LIBS="$old_libs"
fi
if test "$with_numactl" = "yes"; then
  NUMACTL_LIBS="-lnuma"
587
  AC_DEFINE_UNQUOTED([HAVE_NUMACTL], 1, [whether numactl is available for topology info])
588
fi
589 590 591
AM_CONDITIONAL([HAVE_NUMACTL], [test "$with_numactl" != "no"])
AC_SUBST([NUMACTL_CFLAGS])
AC_SUBST([NUMACTL_LIBS])
592

K
Karel Zak 已提交
593
dnl virsh libraries
594
AC_CHECK_HEADERS([readline/readline.h])
595 596

# Check for readline.
597
AC_CHECK_LIB([readline], [readline],
598 599 600 601 602 603 604 605 606
	[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=
607
    AC_SEARCH_LIBS([tgetent], [ncurses curses termcap termlib])
608 609 610 611 612 613
    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.
614
	AC_CHECK_LIB([readline], [rl_initialize],
615 616 617 618 619 620 621 622 623 624 625 626 627 628
		[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
629
else
630
    READLINE_CFLAGS=
631
fi
632 633
AC_SUBST([READLINE_CFLAGS])
AC_SUBST([VIRSH_LIBS])
K
Karel Zak 已提交
634

635 636
AC_SUBST([WITH_XEN])
AC_SUBST([LIBVIRT_FEATURES])
637

638 639 640 641 642

dnl
dnl Storage driver checks
dnl

643
AC_ARG_WITH([storage-fs],
644
[  --with-storage-fs           with FileSystem backend for the storage driver (on)],[],[with_storage_fs=check])
645
AC_ARG_WITH([storage-lvm],
646
[  --with-storage-lvm          with LVM backend for the storage driver (on)],[],[with_storage_lvm=check])
647
AC_ARG_WITH([storage-iscsi],
648
[  --with-storage-iscsi        with iSCSI backend for the storage driver (on)],[],[with_storage_iscsi=check])
649
AC_ARG_WITH([storage-disk],
650
[  --with-storage-disk         with GPartd Disk backend for the storage driver (on)],[],[with_storage_disk=check])
651 652

if test "$with_storage_fs" = "yes" -o "$with_storage_fs" = "check"; then
653 654
  AC_PATH_PROG([MOUNT], [mount], [], [$PATH:/sbin:/usr/sbin])
  AC_PATH_PROG([UMOUNT], [umount], [], [$PATH:/sbin:/usr/sbin])
655
  if test "$with_storage_fs" = "yes" ; then
656
    if test -z "$MOUNT" ; then AC_MSG_ERROR([We need mount for FS storage driver]) ; fi
657
    if test -z "$UMOUNT" ; then AC_MSG_ERROR([We need umount for FS storage driver]) ; fi
658 659 660 661 662 663 664 665
  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
666
    AC_DEFINE_UNQUOTED([WITH_STORAGE_FS], 1, [whether FS backend for storage driver is enabled])
667 668 669 670 671 672
    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
673
AM_CONDITIONAL([WITH_STORAGE_FS], [test "$with_storage_fs" = "yes"])
674 675 676 677 678
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
679

680
AC_PATH_PROG([QEMU_IMG], [qemu-img], [], [$PATH:/sbin:/usr/sbin:/bin:/usr/bin])
681
if test -n "$QEMU_IMG" ; then
682
  AC_DEFINE_UNQUOTED([HAVE_QEMU_IMG], 1, [whether qemu-img is available for non-raw files])
683 684 685 686
  AC_DEFINE_UNQUOTED([QEMU_IMG],["$QEMU_IMG"],
      [Location or name of the qemu-img program])
fi

687
AC_PATH_PROG([QCOW_CREATE], [qcow-create], [], [$PATH:/sbin:/usr/sbin:/bin:/usr/bin])
688
if test -n "$QCOW_CREATE" ; then
689
  AC_DEFINE_UNQUOTED([HAVE_QCOW_CREATE], 1, [whether qcow-create is available for non-raw files])
690 691 692 693 694
  AC_DEFINE_UNQUOTED([QCOW_CREATE],["$QCOW_CREATE"],
      [Location or name of the qcow-create program])
fi


695
if test "$with_storage_lvm" = "yes" -o "$with_storage_lvm" = "check"; then
696 697 698 699 700 701 702 703 704 705
  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])
  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])
706 707

  if test "$with_storage_lvm" = "yes" ; then
708 709 710 711 712 713 714 715 716 717
    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
    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
718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733
  else
    if test -z "$PVCREATE" ; then with_storage_lvm=no ; fi
    if test -z "$VGCREATE" ; then with_storage_lvm=no ; fi
    if test -z "$LVCREATE" ; then with_storage_lvm=no ; fi
    if test -z "$PVREMOVE" ; then with_storage_lvm=no ; fi
    if test -z "$VGREMOVE" ; then with_storage_lvm=no ; fi
    if test -z "$LVREMOVE" ; then with_storage_lvm=no ; fi
    if test -z "VGCHANGE" ; then with_storage_lvm=no ; fi
    if test -z "$PVS" ; then with_storage_lvm=no ; fi
    if test -z "$VGS" ; then with_storage_lvm=no ; fi
    if test -z "$LVS" ; then with_storage_lvm=no ; fi

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

  if test "$with_storage_lvm" = "yes" ; then
734
    AC_DEFINE_UNQUOTED([WITH_STORAGE_LVM], 1, [whether LVM backend for storage driver is enabled])
735 736 737 738 739 740 741 742 743 744 745 746
    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])
    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
747
AM_CONDITIONAL([WITH_STORAGE_LVM], [test "$with_storage_lvm" = "yes"])
748 749


750 751

if test "$with_storage_iscsi" = "yes" -o "$with_storage_iscsi" = "check"; then
752
  AC_PATH_PROG([ISCSIADM], [iscsiadm], [], [$PATH:/sbin:/usr/sbin])
753
  if test "$with_storage_iscsi" = "yes" ; then
754
    if test -z "$ISCSIADM" ; then AC_MSG_ERROR([We need iscsiadm for iSCSI storage driver]) ; fi
755 756 757 758 759 760 761
  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
762
    AC_DEFINE_UNQUOTED([WITH_STORAGE_ISCSI], 1, [whether iSCSI backend for storage driver is enabled])
763 764 765
    AC_DEFINE_UNQUOTED([ISCSIADM],["$ISCSIADM"],[Location of iscsiadm program])
  fi
fi
766
AM_CONDITIONAL([WITH_STORAGE_ISCSI], [test "$with_storage_iscsi" = "yes"])
767 768


769 770 771 772

LIBPARTED_CFLAGS=
LIBPARTED_LIBS=
if test "$with_storage_disk" = "yes" -o "$with_storage_disk" = "check"; then
773
  AC_PATH_PROG([PARTED], [parted], [], [$PATH:/sbin:/usr/sbin])
774 775 776 777 778 779
  if test -z "$PARTED" ; then
    with_storage_disk=no
    PARTED_FOUND=no
  else
    PARTED_FOUND=yes
  fi
780 781 782 783 784 785 786 787 788

  if test "$with_storage_disk" != "no" -a "x$PKG_CONFIG" != "x" ; then
    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
789 790 791
    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])
792 793 794 795 796 797 798
    LIBPARTED_LIBS="-luuid -lparted"
    LIBS="$save_LIBS"
    CFLAGS="$save_CFLAGS"
  fi

  if test "$PARTED_FOUND" = "no" ; then
    if test "$with_storage_disk" = "yes" ; then
799
      AC_MSG_ERROR([We need parted for disk storage driver])
800 801 802 803 804 805 806 807
    else
      with_storage_disk=no
    fi
  else
    with_storage_disk=yes
  fi

  if test "$with_storage_disk" = "yes"; then
808
    AC_DEFINE_UNQUOTED([WITH_STORAGE_DISK], 1, [whether Disk backend for storage driver is enabled])
809 810 811
    AC_DEFINE_UNQUOTED([PARTED],["$PARTED"], [Location or name of the parted program])
  fi
fi
812 813 814
AM_CONDITIONAL([WITH_STORAGE_DISK], [test "$with_storage_disk" = "yes"])
AC_SUBST([LIBPARTED_CFLAGS])
AC_SUBST([LIBPARTED_LIBS])
815 816


817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839
dnl
dnl check for python
dnl

PYTHON_VERSION=
PYTHON_INCLUDES=
PYTHON_SITE_PACKAGES=
PYTHON_TESTS=
pythondir=
if test "$with_python" != "no" ; then
    if test -x "$with_python/bin/python"
    then
        echo Found python in $with_python/bin/python
        PYTHON="$with_python/bin/python"
    else
	if test -x "$with_python"
	then
	    echo Found python in $with_python
	    PYTHON="$with_python"
	else
	    if test -x "$PYTHON"
	    then
	        echo Found python in environment PYTHON=$PYTHON
840
		with_python=`$PYTHON -c "import sys; print sys.exec_prefix"`
841
	    else
842
		AC_PATH_PROG([PYTHON], [python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5])
843 844 845 846 847 848 849 850 851 852 853 854 855 856
	    fi
	fi
    fi
    if test "$PYTHON" != ""
    then
        PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[[0:3]]"`
	echo Found Python version $PYTHON_VERSION
    fi
    if test "$PYTHON_VERSION" != ""
    then
	if test -r $with_python/include/python$PYTHON_VERSION/Python.h -a \
	   -d $with_python/lib/python$PYTHON_VERSION/site-packages
	then
	    PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
857
	    PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
858 859 860
	else
	    if test -r $prefix/include/python$PYTHON_VERSION/Python.h
	    then
861 862
	        PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
	        PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
863 864 865 866
	    else
		if test -r /usr/include/python$PYTHON_VERSION/Python.h
		then
		    PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
867
	            PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
868 869 870 871 872 873 874 875 876 877 878 879 880 881
		else
		    echo could not find python$PYTHON_VERSION/Python.h
		fi
	    fi
	    if test ! -d "$PYTHON_SITE_PACKAGES"
	    then
		    PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib()"`
	    fi
	fi
    fi
    if test "$with_python" != ""
    then
        pythondir='$(PYTHON_SITE_PACKAGES)'
    else
882
        pythondir='$(libdir)/python$(PYTHON_VERSION)/site-packages'
883 884 885 886
    fi
else
    PYTHON=
fi
887 888 889 890 891
AM_CONDITIONAL([WITH_PYTHON], test "$PYTHON_INCLUDES" != "")
AC_SUBST([pythondir])
AC_SUBST([PYTHON_VERSION])
AC_SUBST([PYTHON_INCLUDES])
AC_SUBST([PYTHON_SITE_PACKAGES])
892

893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912
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)

913
AM_CONDITIONAL([ENABLE_XEN_TESTS], [test "$RUNNING_XEN" != "no" -a "$RUNNING_XEND" != "no"])
914

915
AC_ARG_ENABLE([test-coverage],
D
Daniel P. Berrange 已提交
916
[  --enable-test-coverage  turn on code coverage instrumentation],
917 918 919 920 921
[case "${enableval}" in
   yes|no) ;;
   *)      AC_MSG_ERROR([bad value ${enableval} for test-coverage option]) ;;
 esac],
              [enableval=no])
D
Daniel P. Berrange 已提交
922
enable_coverage=$enableval
923

D
Daniel P. Berrange 已提交
924
if test "${enable_coverage}" = yes; then
925 926 927 928 929 930 931
  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 已提交
932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950
AC_ARG_ENABLE([test-oom],
[  --enable-test-oom       memory allocation failure checking],
[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

951
dnl Enable building the proxy?
952

953
AC_ARG_WITH([xen-proxy],
954 955 956 957 958 959 960 961 962 963 964 965 966 967 968
[  --with-xen-proxy              add XEN setuid proxy support (on)],[],[with_xen_proxy=auto])

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])

969
AM_CONDITIONAL([WITH_PROXY],[test "$with_xen_proxy" = "yes"])
970
if test "$with_xen_proxy" = "yes"; then
971
  AC_DEFINE([WITH_PROXY], 1, [Whether Xen proxy is enabled])
972
fi
973

974
dnl Enable building libvirtd?
975
AM_CONDITIONAL([WITH_LIBVIRTD],[test "x$with_libvirtd" = "xyes"])
976

977
dnl Check for gettext
978 979
AM_GNU_GETTEXT_VERSION([0.14.1])
AM_GNU_GETTEXT([external])
980 981 982 983
if test -d po
then
    ALL_LINGUAS=`(cd po > /dev/null && ls *.po) | sed 's+\.po$++'`
else
984
    ALL_LINGUAS="af am ar as be bg bn_IN bn ca cs cy da de el en_GB es et eu_ES fa fi fr gl gu he hi hr hu hy id is it ja ka kn ko ku lo lt lv mk ml mr ms my nb nl nn no nso or pa pl pt_BR pt ro ru si sk sl sq sr@latin sr sv ta te th tr uk ur vi zh_CN zh_TW zu"
985
fi
986

987 988 989 990 991 992
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=
993
MINGW_EXTRA_LDFLAGS=
994 995 996 997 998 999 1000 1001
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
    ;;
1002 1003 1004
  *-*-mingw*)
    MINGW_EXTRA_LDFLAGS="-no-undefined"
    ;;
1005
esac
1006 1007 1008 1009
AC_SUBST([CYGWIN_EXTRA_LDFLAGS])
AC_SUBST([CYGWIN_EXTRA_LIBADD])
AC_SUBST([CYGWIN_EXTRA_PYTHON_LIBADD])
AC_SUBST([MINGW_EXTRA_LDFLAGS])
1010

1011 1012 1013 1014 1015
# 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-.}
1016
AC_SUBST([LV_LIBTOOL_OBJDIR])
1017

1018 1019
# very annoying
rm -f COPYING
1020
cp COPYING.LIB COPYING
1021

1022
AC_OUTPUT(Makefile src/Makefile include/Makefile docs/Makefile \
1023
          docs/examples/Makefile docs/devhelp/Makefile \
1024
	  docs/examples/python/Makefile \
1025
	  gnulib/lib/Makefile \
J
Jim Meyering 已提交
1026
	  gnulib/tests/Makefile \
1027
          libvirt.pc libvirt.spec \
1028
          po/Makefile.in \
1029
	  include/libvirt/Makefile include/libvirt/libvirt.h \
K
Karel Zak 已提交
1030
	  python/Makefile python/tests/Makefile \
1031
          qemud/Makefile \
1032
          tests/Makefile proxy/Makefile \
1033 1034
          tests/xml2sexprdata/Makefile \
          tests/sexpr2xmldata/Makefile \
1035
          tests/xmconfigdata/Makefile \
1036
          tests/xencapsdata/Makefile \
D
Daniel Veillard 已提交
1037
          tests/virshdata/Makefile tests/confdata/Makefile)
D
Daniel P. Berrange 已提交
1038 1039 1040 1041 1042 1043 1044 1045

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])
1046
AC_MSG_NOTICE([   Proxy: $with_xen_proxy])
D
Daniel P. Berrange 已提交
1047 1048
AC_MSG_NOTICE([    QEMU: $with_qemu])
AC_MSG_NOTICE([  OpenVZ: $with_openvz])
D
Daniel Veillard 已提交
1049
AC_MSG_NOTICE([     LXC: $with_lxc])
D
Daniel P. Berrange 已提交
1050 1051
AC_MSG_NOTICE([    Test: $with_test])
AC_MSG_NOTICE([  Remote: $with_remote])
1052
AC_MSG_NOTICE([Libvirtd: $with_libvirtd])
D
Daniel P. Berrange 已提交
1053
AC_MSG_NOTICE([])
1054 1055 1056 1057 1058
AC_MSG_NOTICE([Storage Drivers])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([     Dir: yes])
AC_MSG_NOTICE([      FS: $with_storage_fs])
AC_MSG_NOTICE([   NetFS: $with_storage_fs])
1059
AC_MSG_NOTICE([     LVM: $with_storage_lvm])
1060
AC_MSG_NOTICE([   iSCSI: $with_storage_iscsi])
1061
AC_MSG_NOTICE([    Disk: $with_storage_disk])
1062
AC_MSG_NOTICE([])
D
Daniel P. Berrange 已提交
1063 1064 1065
AC_MSG_NOTICE([Libraries])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([  libxml: $LIBXML_CFLAGS $LIBXML_LIBS])
1066
AC_MSG_NOTICE([  gnutls: $GNUTLS_CFLAGS $GNUTLS_LIBS])
1067 1068 1069 1070 1071
if test "$with_sasl" != "no" ; then
AC_MSG_NOTICE([    sasl: $SASL_CFLAGS $SASL_LIBS])
else
AC_MSG_NOTICE([    sasl: no])
fi
1072 1073 1074 1075 1076
if test "$with_avahi" = "yes" ; then
AC_MSG_NOTICE([   avahi: $AVAHI_CFLAGS $AVAHI_LIBS])
else
AC_MSG_NOTICE([   avahi: no])
fi
1077 1078 1079 1080 1081
if test "$with_polkit" = "yes" ; then
AC_MSG_NOTICE([  polkit: $POLKIT_CFLAGS $POLKIT_LIBS])
else
AC_MSG_NOTICE([  polkit: no])
fi
1082 1083 1084 1085 1086
if test "$with_selinux" = "yes" ; then
AC_MSG_NOTICE([  selinux: $SELINUX_CFLAGS $SELINUX_LIBS])
else
AC_MSG_NOTICE([  selinux: no])
fi
1087 1088 1089 1090 1091
if test "$with_numactl" = "yes" ; then
AC_MSG_NOTICE([  numactl: $NUMACTL_CFLAGS $NUMACTL_LIBS])
else
AC_MSG_NOTICE([  numactl: no])
fi
D
Daniel P. Berrange 已提交
1092
AC_MSG_NOTICE([])
D
Daniel P. Berrange 已提交
1093 1094 1095 1096 1097
AC_MSG_NOTICE([Test suite])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([  Coverage: $enable_coverage])
AC_MSG_NOTICE([  Alloc OOM: $enable_oom])
AC_MSG_NOTICE([])
D
Daniel P. Berrange 已提交
1098 1099 1100
AC_MSG_NOTICE([Miscellaneous])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([  Debug: $enable_debug])
1101
AC_MSG_NOTICE([  Warnings: $enable_compile_warnings])
1102
AC_MSG_NOTICE([  Readline: $lv_use_readline])
D
Daniel P. Berrange 已提交
1103
AC_MSG_NOTICE([])