configure.in 36.2 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
	])])
R
Richard W.M. Jones 已提交
94

95
dnl Miscellaneous external programs.
96 97 98 99
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])
100
AC_PATH_PROG([XMLCATALOG], [xmlcatalog], [/usr/bin/xmlcatalog])
101
AC_PATH_PROG([XSLTPROC], [xsltproc], [/usr/bin/xsltproc])
102

R
Richard W.M. Jones 已提交
103 104
AC_PROG_MKDIR_P

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

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

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

130 131 132 133
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 已提交
134
if test "$prefix" = "/usr" -a "$localstatedir" = '${prefix}/var' ; then
135 136
    localstatedir='/var'
fi
D
Daniel P. Berrange 已提交
137
if test "$prefix" = "/usr" -a "$sysconfdir" = '${prefix}/etc' ; then
138 139 140 141
    sysconfdir='/etc'
fi


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

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

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

176

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

189 190 191 192
dnl
dnl init script flavor
dnl
AC_MSG_CHECKING([for init script flavor])
193 194 195
AC_ARG_WITH([init-script],
            [AC_HELP_STRING([--with-init-scripts=[redhat|auto|none]],
		     [Style of init scripts to install (defaults to auto)])])
196 197 198 199 200 201 202
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
203
AM_CONDITIONAL([LIBVIRT_INIT_SCRIPTS_RED_HAT], test x$with_init_scripts = xredhat)
204 205
AC_MSG_RESULT($with_init_scripts)

206 207 208 209
dnl
dnl ensure that Fedora's system-config-firewall knows
dnl about libvirt's iptables rules
dnl
210 211 212
AC_ARG_ENABLE([iptables-lokkit],
              [AC_HELP_STRING([--enable-iptables-lokkit=no/yes/check],
	   [enable registering libvirt's iptables rules with Fedora's lokkit])],
213 214
                             [],[enable_iptables_lokkit=check])
if test x"$enable_iptables_lokkit" != x"no"; then
215
   AC_PATH_PROG([LOKKIT_PATH],[lokkit], [], [/usr/sbin:$PATH])
216 217 218 219 220 221 222
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
223 224
   AC_DEFINE([ENABLE_IPTABLES_LOKKIT], [], [whether support for Fedora's lokkit is enabled])
   AC_DEFINE_UNQUOTED([LOKKIT_PATH], "$LOKKIT_PATH", [path to lokkit binary])
225 226
fi

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

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

242 243 244
LIBVIRT_FEATURES=
WITH_XEN=0

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

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

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

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

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

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

D
Daniel P. Berrange 已提交
275
if test "$with_xen" = "yes" ; then
276 277 278 279 280 281 282
    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
283

284
    AC_CHECK_HEADERS([xen/xen.h xen/version.h xen/dom0_ops.h],,[
285 286 287 288 289 290 291
	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>.
292 293
    AC_CHECK_HEADERS([xen/sys/privcmd.h],,[
	AC_CHECK_HEADERS([xen/linux/privcmd.h],,[
294 295 296 297 298 299 300 301 302 303 304
	    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>
])
305
fi
306
AM_CONDITIONAL([WITH_XEN], [test "$WITH_XEN" = "1"])
307

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

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

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

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

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

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

dnl GnuTLS library
370 371
GNUTLS_CFLAGS=
GNUTLS_LIBS=
372 373 374 375 376 377
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
378
  fail=0
379
  old_libs="$LIBS"
380 381 382 383 384 385
  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])

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

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

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

407

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

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


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

463 464 465 466 467 468 469 470 471 472 473
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
474
    AC_DEFINE_UNQUOTED([HAVE_POLKIT], 1,
475
      [use PolicyKit for UNIX socket access checks])
476 477 478 479 480

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

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

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

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

522
dnl SELinux
523
AC_ARG_WITH([selinux],
524 525 526 527 528 529 530 531 532 533 534
  [  --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])
535
    AC_CHECK_LIB([selinux], [fgetfilecon],[],[with_selinux=no])
536 537 538 539
    if test "$with_selinux" != "no"; then
      with_selinux="yes"
    fi
  else
540 541 542 543 544
    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])
545 546 547 548 549 550
  fi
  CFLAGS="$old_cflags"
  LIBS="$old_libs"
fi
if test "$with_selinux" = "yes"; then
  SELINUX_LIBS="-lselinux"
551
  AC_DEFINE_UNQUOTED([HAVE_SELINUX], 1, [whether SELinux is available for security])
552
fi
553 554 555
AM_CONDITIONAL([HAVE_SELINUX], [test "$with_selinux" != "no"])
AC_SUBST([SELINUX_CFLAGS])
AC_SUBST([SELINUX_LIBS])
556

557
dnl NUMA lib
558
AC_ARG_WITH([numactl],
559 560 561 562 563 564 565 566 567 568 569
  [  --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])
570
    AC_CHECK_LIB([numa], [numa_available],[],[with_numactl=no])
571 572 573 574
    if test "$with_numactl" != "no"; then
      with_numactl="yes"
    fi
  else
575 576 577 578 579
    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])
580 581 582 583 584 585
  fi
  CFLAGS="$old_cflags"
  LIBS="$old_libs"
fi
if test "$with_numactl" = "yes"; then
  NUMACTL_LIBS="-lnuma"
586
  AC_DEFINE_UNQUOTED([HAVE_NUMACTL], 1, [whether numactl is available for topology info])
587
fi
588 589 590
AM_CONDITIONAL([HAVE_NUMACTL], [test "$with_numactl" != "no"])
AC_SUBST([NUMACTL_CFLAGS])
AC_SUBST([NUMACTL_LIBS])
591

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

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

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

637 638 639 640 641

dnl
dnl Storage driver checks
dnl

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

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

674
AC_PATH_PROG([QEMU_IMG], [qemu-img], [], [$PATH:/sbin:/usr/sbin:/bin:/usr/bin])
675
if test -n "$QEMU_IMG" ; then
676
  AC_DEFINE_UNQUOTED([HAVE_QEMU_IMG], 1, [whether qemu-img is available for non-raw files])
677 678 679 680
  AC_DEFINE_UNQUOTED([QEMU_IMG],["$QEMU_IMG"],
      [Location or name of the qemu-img program])
fi

681
AC_PATH_PROG([QCOW_CREATE], [qcow-create], [], [$PATH:/sbin:/usr/sbin:/bin:/usr/bin])
682
if test -n "$QCOW_CREATE" ; then
683
  AC_DEFINE_UNQUOTED([HAVE_QCOW_CREATE], 1, [whether qcow-create is available for non-raw files])
684 685 686 687 688
  AC_DEFINE_UNQUOTED([QCOW_CREATE],["$QCOW_CREATE"],
      [Location or name of the qcow-create program])
fi


689
if test "$with_storage_lvm" = "yes" -o "$with_storage_lvm" = "check"; then
690 691 692 693 694 695 696 697 698 699
  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])
700 701

  if test "$with_storage_lvm" = "yes" ; then
702 703 704 705 706 707 708 709 710 711
    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
712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727
  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
728
    AC_DEFINE_UNQUOTED([WITH_STORAGE_LVM], 1, [whether LVM backend for storage driver is enabled])
729 730 731 732 733 734 735 736 737 738 739 740
    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
741
AM_CONDITIONAL([WITH_STORAGE_LVM], [test "$with_storage_lvm" = "yes"])
742 743


744 745

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


763 764 765 766

LIBPARTED_CFLAGS=
LIBPARTED_LIBS=
if test "$with_storage_disk" = "yes" -o "$with_storage_disk" = "check"; then
767
  AC_PATH_PROG([PARTED], [parted], [], [$PATH:/sbin:/usr/sbin])
768 769 770 771 772 773
  if test -z "$PARTED" ; then
    with_storage_disk=no
    PARTED_FOUND=no
  else
    PARTED_FOUND=yes
  fi
774 775 776 777 778 779 780 781 782

  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
783 784 785
    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])
786 787 788 789 790 791 792
    LIBPARTED_LIBS="-luuid -lparted"
    LIBS="$save_LIBS"
    CFLAGS="$save_CFLAGS"
  fi

  if test "$PARTED_FOUND" = "no" ; then
    if test "$with_storage_disk" = "yes" ; then
793
      AC_MSG_ERROR([We need parted for disk storage driver])
794 795 796 797 798 799 800 801
    else
      with_storage_disk=no
    fi
  else
    with_storage_disk=yes
  fi

  if test "$with_storage_disk" = "yes"; then
802
    AC_DEFINE_UNQUOTED([WITH_STORAGE_DISK], 1, [whether Disk backend for storage driver is enabled])
803 804 805
    AC_DEFINE_UNQUOTED([PARTED],["$PARTED"], [Location or name of the parted program])
  fi
fi
806 807 808
AM_CONDITIONAL([WITH_STORAGE_DISK], [test "$with_storage_disk" = "yes"])
AC_SUBST([LIBPARTED_CFLAGS])
AC_SUBST([LIBPARTED_LIBS])
809 810


811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833
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
834
		with_python=`$PYTHON -c "import sys; print sys.exec_prefix"`
835
	    else
836
		AC_PATH_PROG([PYTHON], [python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5])
837 838 839 840 841 842 843 844 845 846 847 848 849 850
	    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
851
	    PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
852 853 854
	else
	    if test -r $prefix/include/python$PYTHON_VERSION/Python.h
	    then
855 856
	        PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
	        PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
857 858 859 860
	    else
		if test -r /usr/include/python$PYTHON_VERSION/Python.h
		then
		    PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
861
	            PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
862 863 864 865 866 867 868 869 870 871 872 873 874 875
		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
876
        pythondir='$(libdir)/python$(PYTHON_VERSION)/site-packages'
877 878 879 880
    fi
else
    PYTHON=
fi
881 882 883 884 885
AM_CONDITIONAL([WITH_PYTHON], test "$PYTHON_INCLUDES" != "")
AC_SUBST([pythondir])
AC_SUBST([PYTHON_VERSION])
AC_SUBST([PYTHON_INCLUDES])
AC_SUBST([PYTHON_SITE_PACKAGES])
886

887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906
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)

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

909
AC_ARG_ENABLE([test-coverage],
D
Daniel P. Berrange 已提交
910
[  --enable-test-coverage  turn on code coverage instrumentation],
911 912 913 914 915
[case "${enableval}" in
   yes|no) ;;
   *)      AC_MSG_ERROR([bad value ${enableval} for test-coverage option]) ;;
 esac],
              [enableval=no])
D
Daniel P. Berrange 已提交
916
enable_coverage=$enableval
917

D
Daniel P. Berrange 已提交
918
if test "${enable_coverage}" = yes; then
919 920 921 922 923 924 925
  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 已提交
926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944
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

945
dnl Enable building the proxy?
946

947
AC_ARG_WITH([xen-proxy],
948 949 950 951 952 953 954 955 956 957 958 959 960 961 962
[  --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])

963
AM_CONDITIONAL([WITH_PROXY],[test "$with_xen_proxy" = "yes"])
964
if test "$with_xen_proxy" = "yes"; then
965
  AC_DEFINE([WITH_PROXY], 1, [Whether Xen proxy is enabled])
966
fi
967

968
dnl Enable building libvirtd?
969
AM_CONDITIONAL([WITH_LIBVIRTD],[test "x$with_libvirtd" = "xyes"])
970

971
dnl Check for gettext
972 973
AM_GNU_GETTEXT_VERSION([0.14.1])
AM_GNU_GETTEXT([external])
974 975 976 977
if test -d po
then
    ALL_LINGUAS=`(cd po > /dev/null && ls *.po) | sed 's+\.po$++'`
else
978
    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"
979
fi
980

981 982 983 984 985 986
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=
987
MINGW_EXTRA_LDFLAGS=
988 989 990 991 992 993 994 995
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
    ;;
996 997 998
  *-*-mingw*)
    MINGW_EXTRA_LDFLAGS="-no-undefined"
    ;;
999
esac
1000 1001 1002 1003
AC_SUBST([CYGWIN_EXTRA_LDFLAGS])
AC_SUBST([CYGWIN_EXTRA_LIBADD])
AC_SUBST([CYGWIN_EXTRA_PYTHON_LIBADD])
AC_SUBST([MINGW_EXTRA_LDFLAGS])
1004

1005 1006 1007 1008 1009
# 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-.}
1010
AC_SUBST([LV_LIBTOOL_OBJDIR])
1011

1012 1013
# very annoying
rm -f COPYING
1014
cp COPYING.LIB COPYING
1015

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

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