configure.in 37.3 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.6])
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
AC_OBJEXT

39 40 41 42 43 44 45
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])])])

46 47 48 49 50 51
gl_EARLY
gl_INIT

AM_PROG_CC_STDC
AC_C_CONST

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

56 57 58
dnl Support building Win32 DLLs (must appear *before* AM_PROG_LIBTOOL)
AC_LIBTOOL_WIN32_DLL

59 60
AM_PROG_LIBTOOL

61 62
AM_PROG_CC_C_O

63
LIBVIRT_COMPILE_WARNINGS([maximum])
64

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

69
dnl Availability of various common functions (non-fatal if missing).
D
Daniel P. Berrange 已提交
70
AC_CHECK_FUNCS([cfmakeraw regexec uname sched_getaffinity getuid getgid])
71 72

dnl Availability of various common headers (non-fatal if missing).
D
Daniel P. Berrange 已提交
73
AC_CHECK_HEADERS([pwd.h paths.h regex.h sys/syslimits.h sys/utsname.h sys/wait.h winsock2.h sched.h termios.h])
74

75 76 77 78 79 80
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])
	])
81

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

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

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

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

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

124
dnl Specific dir for HTML output ?
125 126
AC_ARG_WITH([html-dir], [AC_HELP_STRING([--with-html-dir=path],
            [path to base html directory, default $datadir/doc/html])],
127 128
            [HTML_DIR=$withval], [HTML_DIR='$(datadir)/doc'])

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

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


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

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

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

181

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

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

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

232 233
AC_PATH_PROG([IPTABLES_PATH], [iptables], /sbin/iptables, [/usr/sbin:$PATH])
AC_DEFINE_UNQUOTED([IPTABLES_PATH], "$IPTABLES_PATH", [path to iptables binary])
234

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

247 248 249
LIBVIRT_FEATURES=
WITH_XEN=0

250
if test "$with_openvz" = "yes"; then
251 252
    LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_OPENVZ"
fi
253 254
AM_CONDITIONAL([WITH_OPENVZ], [test "$with_openvz" = "yes"])

D
Daniel Veillard 已提交
255 256 257
if test "$with_lxc" = "yes" ; then
    LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_LXC"
fi
258 259
AM_CONDITIONAL([WITH_LXC], [test "$with_lxc" = "yes"])

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

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

D
Daniel P. Berrange 已提交
270
if test "$with_remote" = "yes" ; then
271 272
    LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_REMOTE"
fi
273
AM_CONDITIONAL([WITH_REMOTE], [test "$with_remote" = "yes"])
274

275 276 277
if test "$with_libvirtd" = "yes" ; then
    LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_LIBVIRTD"
fi
278
AM_CONDITIONAL([WITH_LIBVIRTD], [test "$with_libvirtd" = "yes"])
279

D
Daniel P. Berrange 已提交
280
if test "$with_xen" = "yes" ; then
281 282 283 284 285 286 287
    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
288

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

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

321 322
dnl
dnl check for kvm headers
323
dnl
324 325
AC_CHECK_HEADERS([linux/kvm.h])

326 327 328
dnl Need to test if pkg-config exists
PKG_PROG_PKG_CONFIG

329 330 331 332 333 334 335
dnl ==========================================================================
dnl find libxml2 library, borrowed from xmlsec
dnl ==========================================================================
LIBXML_CONFIG="xml2-config"
LIBXML_CFLAGS=""
LIBXML_LIBS=""
LIBXML_FOUND="no"
336

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

365 366
AC_SUBST([LIBXML_CFLAGS])
AC_SUBST([LIBXML_LIBS])
367

368 369
dnl xmlURI structure has query_raw?
old_cflags="$CFLAGS"
370
old_ldflags="$LDFLAGS"
371
CFLAGS="$CFLAGS $LIBXML_CFLAGS"
372
LDFLAGS="$LDFLAGS $LIBXML_LIBS"
373 374
AC_CHECK_MEMBER([struct _xmlURI.query_raw],
		[AC_DEFINE([HAVE_XMLURI_QUERY_RAW], [], [Have query_raw field in libxml2 xmlURI structure])],,
375 376
		[#include <libxml/uri.h>])
CFLAGS="$old_cflags"
377
LDFLAGS="$old_ldflags"
378 379

dnl GnuTLS library
380 381
GNUTLS_CFLAGS=
GNUTLS_LIBS=
382 383 384 385 386 387
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
388
  fail=0
389
  old_libs="$LIBS"
390 391 392 393 394 395
  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])

396 397 398 399
  GNUTLS_LIBS=$LIBS
  LIBS="$old_libs"
fi

400 401
AC_SUBST([GNUTLS_CFLAGS])
AC_SUBST([GNUTLS_LIBS])
402

403 404 405
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.
406 407 408 409
old_cflags="$CFLAGS"
old_ldflags="$LDFLAGS"
CFLAGS="$CFLAGS $GNUTLS_CFLAGS"
LDFLAGS="$LDFLAGS $GNUTLS_LIBS"
410 411
AC_CHECK_TYPE([gnutls_session],
	AC_DEFINE([GNUTLS_1_0_COMPAT],[],
412 413
		[enable GnuTLS 1.0 compatibility macros]),,
	[#include <gnutls/gnutls.h>])
414 415
CFLAGS="$old_cflags"
LDFLAGS="$old_ldflags"
416

417

418
dnl Cyrus SASL
419
AC_ARG_WITH([sasl],
420 421
  [  --with-sasl         use cyrus SASL for authentication],
  [],
422
  [with_sasl=check])
423 424 425

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


465 466 467
dnl PolicyKit library
POLKIT_CFLAGS=
POLKIT_LIBS=
468
AC_ARG_WITH([polkit],
469 470 471 472
  [  --with-polkit         use PolicyKit for UNIX socket access checks],
  [],
  [with_polkit=check])

473 474 475 476 477 478 479 480 481 482 483
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
484
    AC_DEFINE_UNQUOTED([HAVE_POLKIT], 1,
485
      [use PolicyKit for UNIX socket access checks])
486 487 488 489 490

    old_CFLAGS=$CFLAGS
    old_LDFLAGS=$LDFLAGS
    CFLAGS="$CFLAGS $POLKIT_CFLAGS"
    LDFLAGS="$LDFLAGS $POLKIT_LIBS"
491
    AC_CHECK_FUNCS([polkit_context_is_caller_authorized])
492 493 494
    CFLAGS="$old_CFLAGS"
    LDFLAGS="$old_LDFLAGS"

495
    AC_PATH_PROG([POLKIT_AUTH], [polkit-auth])
496 497 498
    if test "x$POLKIT_AUTH" != "x"; then
      AC_DEFINE_UNQUOTED([POLKIT_AUTH],["$POLKIT_AUTH"],[Location of polkit-auth program])
    fi
499
  fi
500
fi
501 502 503
AM_CONDITIONAL([HAVE_POLKIT], [test "x$with_polkit" = "xyes"])
AC_SUBST([POLKIT_CFLAGS])
AC_SUBST([POLKIT_LIBS])
504

505
dnl Avahi library
506
AC_ARG_WITH([avahi],
507 508 509 510 511 512
  [  --with-avahi         use avahi to advertise remote daemon],
  [],
  [with_avahi=check])

AVAHI_CFLAGS=
AVAHI_LIBS=
513 514 515 516 517 518 519 520 521 522 523
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
524
    AC_DEFINE_UNQUOTED([HAVE_AVAHI], 1,
525 526
      [whether Avahi is used to broadcast server presense])
  fi
527
fi
528 529 530
AM_CONDITIONAL([HAVE_AVAHI], [test "x$with_avahi" = "xyes"])
AC_SUBST([AVAHI_CFLAGS])
AC_SUBST([AVAHI_LIBS])
531

532
dnl SELinux
533
AC_ARG_WITH([selinux],
534 535 536 537 538 539 540 541 542 543 544
  [  --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])
545
    AC_CHECK_LIB([selinux], [fgetfilecon],[],[with_selinux=no])
546 547 548 549
    if test "$with_selinux" != "no"; then
      with_selinux="yes"
    fi
  else
550 551 552 553 554
    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])
555 556 557 558 559 560
  fi
  CFLAGS="$old_cflags"
  LIBS="$old_libs"
fi
if test "$with_selinux" = "yes"; then
  SELINUX_LIBS="-lselinux"
561
  AC_DEFINE_UNQUOTED([HAVE_SELINUX], 1, [whether SELinux is available for security])
562
fi
563 564 565
AM_CONDITIONAL([HAVE_SELINUX], [test "$with_selinux" != "no"])
AC_SUBST([SELINUX_CFLAGS])
AC_SUBST([SELINUX_LIBS])
566

567
dnl NUMA lib
568
AC_ARG_WITH([numactl],
569 570 571 572 573 574 575 576 577 578 579
  [  --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])
580
    AC_CHECK_LIB([numa], [numa_available],[],[with_numactl=no])
581 582 583 584
    if test "$with_numactl" != "no"; then
      with_numactl="yes"
    fi
  else
585 586 587 588 589
    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])
590 591 592 593 594 595
  fi
  CFLAGS="$old_cflags"
  LIBS="$old_libs"
fi
if test "$with_numactl" = "yes"; then
  NUMACTL_LIBS="-lnuma"
596
  AC_DEFINE_UNQUOTED([HAVE_NUMACTL], 1, [whether numactl is available for topology info])
597
fi
598 599 600
AM_CONDITIONAL([HAVE_NUMACTL], [test "$with_numactl" != "no"])
AC_SUBST([NUMACTL_CFLAGS])
AC_SUBST([NUMACTL_LIBS])
601

K
Karel Zak 已提交
602
dnl virsh libraries
603
AC_CHECK_HEADERS([readline/readline.h])
604 605

# Check for readline.
606
AC_CHECK_LIB([readline], [readline],
607 608 609 610 611 612 613 614 615
	[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=
616
    AC_SEARCH_LIBS([tgetent], [ncurses curses termcap termlib])
617 618 619 620 621 622
    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.
623
	AC_CHECK_LIB([readline], [rl_initialize],
624 625 626 627 628 629 630 631 632 633 634 635 636 637
		[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
638
else
639
    READLINE_CFLAGS=
640
fi
641 642
AC_SUBST([READLINE_CFLAGS])
AC_SUBST([VIRSH_LIBS])
K
Karel Zak 已提交
643

644 645
AC_SUBST([WITH_XEN])
AC_SUBST([LIBVIRT_FEATURES])
646

647

648 649 650 651 652 653 654 655 656 657 658
AC_ARG_WITH([network],
[  --with-network              with virtual network driver (on)],[],[with_network=yes])
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"])


659 660 661 662
dnl
dnl Storage driver checks
dnl

663
AC_ARG_WITH([storage-fs],
664
[  --with-storage-fs           with FileSystem backend for the storage driver (on)],[],[with_storage_fs=check])
665
AC_ARG_WITH([storage-lvm],
666
[  --with-storage-lvm          with LVM backend for the storage driver (on)],[],[with_storage_lvm=check])
667
AC_ARG_WITH([storage-iscsi],
668
[  --with-storage-iscsi        with iSCSI backend for the storage driver (on)],[],[with_storage_iscsi=check])
669
AC_ARG_WITH([storage-disk],
670
[  --with-storage-disk         with GPartd Disk backend for the storage driver (on)],[],[with_storage_disk=check])
671

D
Daniel P. Berrange 已提交
672 673 674 675 676 677 678 679 680 681 682 683 684 685
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
  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"])


686
if test "$with_storage_fs" = "yes" -o "$with_storage_fs" = "check"; then
687 688
  AC_PATH_PROG([MOUNT], [mount], [], [$PATH:/sbin:/usr/sbin])
  AC_PATH_PROG([UMOUNT], [umount], [], [$PATH:/sbin:/usr/sbin])
689
  if test "$with_storage_fs" = "yes" ; then
690
    if test -z "$MOUNT" ; then AC_MSG_ERROR([We need mount for FS storage driver]) ; fi
691
    if test -z "$UMOUNT" ; then AC_MSG_ERROR([We need umount for FS storage driver]) ; fi
692 693 694 695 696 697 698 699
  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
700
    AC_DEFINE_UNQUOTED([WITH_STORAGE_FS], 1, [whether FS backend for storage driver is enabled])
701 702 703 704 705 706
    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
707
AM_CONDITIONAL([WITH_STORAGE_FS], [test "$with_storage_fs" = "yes"])
708 709 710 711 712
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
713

714
AC_PATH_PROG([QEMU_IMG], [qemu-img], [], [$PATH:/sbin:/usr/sbin:/bin:/usr/bin])
715
if test -n "$QEMU_IMG" ; then
716
  AC_DEFINE_UNQUOTED([HAVE_QEMU_IMG], 1, [whether qemu-img is available for non-raw files])
717 718 719 720
  AC_DEFINE_UNQUOTED([QEMU_IMG],["$QEMU_IMG"],
      [Location or name of the qemu-img program])
fi

721
AC_PATH_PROG([QCOW_CREATE], [qcow-create], [], [$PATH:/sbin:/usr/sbin:/bin:/usr/bin])
722
if test -n "$QCOW_CREATE" ; then
723
  AC_DEFINE_UNQUOTED([HAVE_QCOW_CREATE], 1, [whether qcow-create is available for non-raw files])
724 725 726 727 728
  AC_DEFINE_UNQUOTED([QCOW_CREATE],["$QCOW_CREATE"],
      [Location or name of the qcow-create program])
fi


729
if test "$with_storage_lvm" = "yes" -o "$with_storage_lvm" = "check"; then
730 731 732 733 734 735 736 737 738 739
  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])
740 741

  if test "$with_storage_lvm" = "yes" ; then
742 743 744 745 746 747 748 749 750 751
    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
752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767
  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
768
    AC_DEFINE_UNQUOTED([WITH_STORAGE_LVM], 1, [whether LVM backend for storage driver is enabled])
769 770 771 772 773 774 775 776 777 778 779 780
    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
781
AM_CONDITIONAL([WITH_STORAGE_LVM], [test "$with_storage_lvm" = "yes"])
782 783


784 785

if test "$with_storage_iscsi" = "yes" -o "$with_storage_iscsi" = "check"; then
786
  AC_PATH_PROG([ISCSIADM], [iscsiadm], [], [$PATH:/sbin:/usr/sbin])
787
  if test "$with_storage_iscsi" = "yes" ; then
788
    if test -z "$ISCSIADM" ; then AC_MSG_ERROR([We need iscsiadm for iSCSI storage driver]) ; fi
789 790 791 792 793 794 795
  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
796
    AC_DEFINE_UNQUOTED([WITH_STORAGE_ISCSI], 1, [whether iSCSI backend for storage driver is enabled])
797 798 799
    AC_DEFINE_UNQUOTED([ISCSIADM],["$ISCSIADM"],[Location of iscsiadm program])
  fi
fi
800
AM_CONDITIONAL([WITH_STORAGE_ISCSI], [test "$with_storage_iscsi" = "yes"])
801 802


803 804 805 806

LIBPARTED_CFLAGS=
LIBPARTED_LIBS=
if test "$with_storage_disk" = "yes" -o "$with_storage_disk" = "check"; then
807
  AC_PATH_PROG([PARTED], [parted], [], [$PATH:/sbin:/usr/sbin])
808 809 810 811 812 813
  if test -z "$PARTED" ; then
    with_storage_disk=no
    PARTED_FOUND=no
  else
    PARTED_FOUND=yes
  fi
814 815 816 817 818 819 820 821 822

  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
823 824 825
    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])
826 827 828 829 830 831 832
    LIBPARTED_LIBS="-luuid -lparted"
    LIBS="$save_LIBS"
    CFLAGS="$save_CFLAGS"
  fi

  if test "$PARTED_FOUND" = "no" ; then
    if test "$with_storage_disk" = "yes" ; then
833
      AC_MSG_ERROR([We need parted for disk storage driver])
834 835 836 837 838 839 840 841
    else
      with_storage_disk=no
    fi
  else
    with_storage_disk=yes
  fi

  if test "$with_storage_disk" = "yes"; then
842
    AC_DEFINE_UNQUOTED([WITH_STORAGE_DISK], 1, [whether Disk backend for storage driver is enabled])
843 844 845
    AC_DEFINE_UNQUOTED([PARTED],["$PARTED"], [Location or name of the parted program])
  fi
fi
846 847 848
AM_CONDITIONAL([WITH_STORAGE_DISK], [test "$with_storage_disk" = "yes"])
AC_SUBST([LIBPARTED_CFLAGS])
AC_SUBST([LIBPARTED_LIBS])
849 850


851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873
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
874
		with_python=`$PYTHON -c "import sys; print sys.exec_prefix"`
875
	    else
876
		AC_PATH_PROG([PYTHON], [python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5])
877 878 879 880 881 882 883 884 885 886 887 888 889 890
	    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
891
	    PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
892 893 894
	else
	    if test -r $prefix/include/python$PYTHON_VERSION/Python.h
	    then
895 896
	        PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
	        PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
897 898 899 900
	    else
		if test -r /usr/include/python$PYTHON_VERSION/Python.h
		then
		    PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
901
	            PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
902 903 904 905 906 907 908 909 910 911 912 913 914 915
		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
916
        pythondir='$(libdir)/python$(PYTHON_VERSION)/site-packages'
917 918 919 920
    fi
else
    PYTHON=
fi
921 922 923 924 925
AM_CONDITIONAL([WITH_PYTHON], test "$PYTHON_INCLUDES" != "")
AC_SUBST([pythondir])
AC_SUBST([PYTHON_VERSION])
AC_SUBST([PYTHON_INCLUDES])
AC_SUBST([PYTHON_SITE_PACKAGES])
926

927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946
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)

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

949
AC_ARG_ENABLE([test-coverage],
D
Daniel P. Berrange 已提交
950
[  --enable-test-coverage  turn on code coverage instrumentation],
951 952 953 954 955
[case "${enableval}" in
   yes|no) ;;
   *)      AC_MSG_ERROR([bad value ${enableval} for test-coverage option]) ;;
 esac],
              [enableval=no])
D
Daniel P. Berrange 已提交
956
enable_coverage=$enableval
957

D
Daniel P. Berrange 已提交
958
if test "${enable_coverage}" = yes; then
959 960 961 962 963 964 965
  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 已提交
966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984
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

985
dnl Enable building the proxy?
986

987
AC_ARG_WITH([xen-proxy],
988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002
[  --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])

1003
AM_CONDITIONAL([WITH_PROXY],[test "$with_xen_proxy" = "yes"])
1004
if test "$with_xen_proxy" = "yes"; then
1005
  AC_DEFINE([WITH_PROXY], 1, [Whether Xen proxy is enabled])
1006
fi
1007

1008
dnl Enable building libvirtd?
1009
AM_CONDITIONAL([WITH_LIBVIRTD],[test "x$with_libvirtd" = "xyes"])
1010

1011
dnl Check for gettext
1012 1013
AM_GNU_GETTEXT_VERSION([0.14.1])
AM_GNU_GETTEXT([external])
1014
ALL_LINGUAS=`{cd "$srcdir/po" > /dev/null && ls *.po} | sed 's+\.po$++'`
1015

1016 1017 1018 1019 1020 1021
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=
1022
MINGW_EXTRA_LDFLAGS=
1023 1024 1025 1026 1027 1028 1029 1030
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
    ;;
1031 1032 1033
  *-*-mingw*)
    MINGW_EXTRA_LDFLAGS="-no-undefined"
    ;;
1034
esac
1035 1036 1037 1038
AC_SUBST([CYGWIN_EXTRA_LDFLAGS])
AC_SUBST([CYGWIN_EXTRA_LIBADD])
AC_SUBST([CYGWIN_EXTRA_PYTHON_LIBADD])
AC_SUBST([MINGW_EXTRA_LDFLAGS])
1039

1040 1041 1042 1043
dnl Look for windres to build a Windows icon resource.
AC_CHECK_TOOL([WINDRES], [windres], [no])
AM_CONDITIONAL([WITH_WIN_ICON], [test "$WINDRES" != "no"])

1044 1045 1046 1047 1048
# 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-.}
1049
AC_SUBST([LV_LIBTOOL_OBJDIR])
1050

1051 1052
# very annoying
rm -f COPYING
1053
cp COPYING.LIB COPYING
1054

1055
AC_OUTPUT(Makefile src/Makefile include/Makefile docs/Makefile \
1056
          docs/examples/Makefile docs/devhelp/Makefile \
1057
	  docs/examples/python/Makefile \
1058
	  gnulib/lib/Makefile \
J
Jim Meyering 已提交
1059
	  gnulib/tests/Makefile \
R
Richard W.M. Jones 已提交
1060
          libvirt.pc libvirt.spec mingw32-libvirt.spec \
1061
          po/Makefile.in \
1062
	  include/libvirt/Makefile include/libvirt/libvirt.h \
K
Karel Zak 已提交
1063
	  python/Makefile python/tests/Makefile \
1064
          qemud/Makefile \
1065
          tests/Makefile proxy/Makefile \
1066 1067
          tests/xml2sexprdata/Makefile \
          tests/sexpr2xmldata/Makefile \
1068
          tests/xmconfigdata/Makefile \
1069
          tests/xencapsdata/Makefile \
D
Daniel Veillard 已提交
1070
          tests/virshdata/Makefile tests/confdata/Makefile)
D
Daniel P. Berrange 已提交
1071 1072 1073 1074 1075 1076 1077 1078

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])
1079
AC_MSG_NOTICE([   Proxy: $with_xen_proxy])
D
Daniel P. Berrange 已提交
1080 1081
AC_MSG_NOTICE([    QEMU: $with_qemu])
AC_MSG_NOTICE([  OpenVZ: $with_openvz])
D
Daniel Veillard 已提交
1082
AC_MSG_NOTICE([     LXC: $with_lxc])
D
Daniel P. Berrange 已提交
1083 1084
AC_MSG_NOTICE([    Test: $with_test])
AC_MSG_NOTICE([  Remote: $with_remote])
1085
AC_MSG_NOTICE([ Network: $with_network])
1086
AC_MSG_NOTICE([Libvirtd: $with_libvirtd])
D
Daniel P. Berrange 已提交
1087
AC_MSG_NOTICE([])
1088 1089
AC_MSG_NOTICE([Storage Drivers])
AC_MSG_NOTICE([])
D
Daniel P. Berrange 已提交
1090
AC_MSG_NOTICE([     Dir: $with_storage_dir])
1091 1092
AC_MSG_NOTICE([      FS: $with_storage_fs])
AC_MSG_NOTICE([   NetFS: $with_storage_fs])
1093
AC_MSG_NOTICE([     LVM: $with_storage_lvm])
1094
AC_MSG_NOTICE([   iSCSI: $with_storage_iscsi])
1095
AC_MSG_NOTICE([    Disk: $with_storage_disk])
1096
AC_MSG_NOTICE([])
D
Daniel P. Berrange 已提交
1097 1098 1099
AC_MSG_NOTICE([Libraries])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([  libxml: $LIBXML_CFLAGS $LIBXML_LIBS])
1100
AC_MSG_NOTICE([  gnutls: $GNUTLS_CFLAGS $GNUTLS_LIBS])
1101 1102 1103 1104 1105
if test "$with_sasl" != "no" ; then
AC_MSG_NOTICE([    sasl: $SASL_CFLAGS $SASL_LIBS])
else
AC_MSG_NOTICE([    sasl: no])
fi
1106 1107 1108 1109 1110
if test "$with_avahi" = "yes" ; then
AC_MSG_NOTICE([   avahi: $AVAHI_CFLAGS $AVAHI_LIBS])
else
AC_MSG_NOTICE([   avahi: no])
fi
1111 1112 1113 1114 1115
if test "$with_polkit" = "yes" ; then
AC_MSG_NOTICE([  polkit: $POLKIT_CFLAGS $POLKIT_LIBS])
else
AC_MSG_NOTICE([  polkit: no])
fi
1116 1117 1118 1119 1120
if test "$with_selinux" = "yes" ; then
AC_MSG_NOTICE([  selinux: $SELINUX_CFLAGS $SELINUX_LIBS])
else
AC_MSG_NOTICE([  selinux: no])
fi
1121 1122 1123 1124 1125
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 已提交
1126
AC_MSG_NOTICE([])
D
Daniel P. Berrange 已提交
1127 1128 1129 1130 1131
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 已提交
1132 1133 1134
AC_MSG_NOTICE([Miscellaneous])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([  Debug: $enable_debug])
1135
AC_MSG_NOTICE([  Warnings: $enable_compile_warnings])
1136
AC_MSG_NOTICE([  Readline: $lv_use_readline])
D
Daniel P. Berrange 已提交
1137
AC_MSG_NOTICE([])