configure.in 38.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.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).
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 sys/poll.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
if test "$with_openvz" = "yes"; then
236
    AC_DEFINE_UNQUOTED([WITH_OPENVZ], 1, [whether OpenVZ driver is enabled])
237
fi
238 239
AM_CONDITIONAL([WITH_OPENVZ], [test "$with_openvz" = "yes"])

240 241 242
if test "$with_libvirtd" = "no" ; then
  with_lxc=no
fi
D
Daniel Veillard 已提交
243
if test "$with_lxc" = "yes" ; then
244
    AC_DEFINE_UNQUOTED([WITH_LXC], 1, [whether LXC driver is enabled])
D
Daniel Veillard 已提交
245
fi
246 247
AM_CONDITIONAL([WITH_LXC], [test "$with_lxc" = "yes"])

248 249 250
if test "$with_libvirtd" = "no" ; then
  with_qemu=no
fi
D
Daniel P. Berrange 已提交
251
if test "$with_qemu" = "yes" ; then
252
    AC_DEFINE_UNQUOTED([WITH_QEMU], 1, [whether QEMU driver is enabled])
253
fi
254
AM_CONDITIONAL([WITH_QEMU], [test "$with_qemu" = "yes"])
255

D
Daniel P. Berrange 已提交
256
if test "$with_test" = "yes" ; then
257
    AC_DEFINE_UNQUOTED([WITH_TEST], 1, [whether Test driver is enabled])
258
fi
259
AM_CONDITIONAL([WITH_TEST], [test "$with_test" = "yes"])
260

D
Daniel P. Berrange 已提交
261
if test "$with_remote" = "yes" ; then
262
    AC_DEFINE_UNQUOTED([WITH_REMOTE], 1, [whether Remote driver is enabled])
263
fi
264
AM_CONDITIONAL([WITH_REMOTE], [test "$with_remote" = "yes"])
265

266
if test "$with_libvirtd" = "yes" ; then
267
    AC_DEFINE_UNQUOTED([WITH_LIBVIRTD], 1, [whether libvirtd daemon is enabled])
268
fi
269
AM_CONDITIONAL([WITH_LIBVIRTD], [test "$with_libvirtd" = "yes"])
270

271 272 273 274 275 276 277
XEN_LIBS=""
XEN_CFLAGS=""
dnl search for the Xen store library
if test "$with_xen" != "no" ; then
    if test "$with_xen" != "yes" -a "$with_xen" != "check" ; then
        XEN_CFLAGS="-I$with_xen/include"
        XEN_LIBS="-L$with_xen/lib64 -L$with_xen/lib"
278
    fi
279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297
    fail=0
    old_LIBS="$LIBS"
    old_CFLAGS="$CFLAGS"
    CFLAGS="$CFLAGS $XEN_CFLAGS"
    LIBS="$LIBS $XEN_LIBS"
    AC_CHECK_LIB([xenstore], [xs_read], [
           with_xen=yes
           XEN_LIBS="$XEN_LIBS -lxenstore"
       ],[
           if test "$with_xen" = "check" ; then
               with_xen=no
           else
               with_xen=no
               fail=1
           fi
       ])

    test $fail = 1 &&
      AC_MSG_ERROR([You must install the Xen development package to compile Xen driver with -lxenstore])
298

299
    AC_CHECK_HEADERS([xen/xen.h xen/version.h xen/dom0_ops.h],,[
300 301 302 303 304 305 306
	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>.
307 308
    AC_CHECK_HEADERS([xen/sys/privcmd.h],,[
	AC_CHECK_HEADERS([xen/linux/privcmd.h],,[
309 310 311 312 313 314 315 316 317 318 319
	    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>
])
320 321
    LIBS="$old_LIBS"
    CFLAGS="$old_CFLAGS"
322
fi
323 324 325 326 327 328
if test "$with_xen" = "yes"; then
    AC_DEFINE_UNQUOTED([WITH_XEN], 1, [whether Xen driver is enabled])
fi
AM_CONDITIONAL([WITH_XEN], [test "$with_xen" = "yes"])
AC_SUBST([XEN_CFLAGS])
AC_SUBST([XEN_LIBS])
329

330
dnl
331
dnl check for kernel headers required by src/bridge.c
332
dnl
333
if test "$with_qemu" = "yes" -o "$with_lxc" = "yes" ; then
334
  AC_CHECK_HEADERS([linux/param.h linux/sockios.h linux/if_bridge.h linux/if_tun.h],,
335 336
                   AC_MSG_ERROR([You must install kernel-headers in order to compile libvirt]))
fi
337

338 339
dnl
dnl check for kvm headers
340
dnl
341 342
AC_CHECK_HEADERS([linux/kvm.h])

343 344 345
dnl Need to test if pkg-config exists
PKG_PROG_PKG_CONFIG

346 347 348 349 350 351 352
dnl ==========================================================================
dnl find libxml2 library, borrowed from xmlsec
dnl ==========================================================================
LIBXML_CONFIG="xml2-config"
LIBXML_CFLAGS=""
LIBXML_LIBS=""
LIBXML_FOUND="no"
353

354
AC_ARG_WITH([libxml], [  --with-libxml=[PFX]       libxml2 location])
355
if test "x$with_libxml" = "xno" ; then
356
    AC_MSG_CHECKING(for libxml2 libraries >= $LIBXML_REQUIRED)
357
    AC_MSG_ERROR([libxml2 >= $LIBXML_REQUIRED is required for libvirt])
R
Richard W.M. Jones 已提交
358
elif test "x$with_libxml" = "x" -a "x$PKG_CONFIG" != "x" ; then
359
    PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= $LIBXML_REQUIRED, [LIBXML_FOUND=yes], [LIBXML_FOUND=no])
360
fi
361 362
if test "$LIBXML_FOUND" = "no" ; then
    if test "x$with_libxml" != "x" ; then
363 364
	LIBXML_CONFIG=$with_libxml/bin/$LIBXML_CONFIG
    fi
365
    AC_MSG_CHECKING(libxml2 $LIBXML_CONFIG >= $LIBXML_REQUIRED )
366
    if ! $LIBXML_CONFIG --version > /dev/null 2>&1 ; then
367
	AC_MSG_ERROR([Could not find libxml2 anywhere (see config.log for details).])
368 369
    fi
    vers=`$LIBXML_CONFIG --version | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
370
    minvers=`echo $LIBXML_REQUIRED | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
371 372 373 374
    if test "$vers" -ge "$minvers" ; then
        LIBXML_LIBS="`$LIBXML_CONFIG --libs`"
        LIBXML_CFLAGS="`$LIBXML_CONFIG --cflags`"
	LIBXML_FOUND="yes"
375
        AC_MSG_RESULT(yes)
376
    else
377 378
        AC_MSG_ERROR(
          [You need at least libxml2 $LIBXML_REQUIRED for this version of libvirt])
379 380 381
    fi
fi

382 383
AC_SUBST([LIBXML_CFLAGS])
AC_SUBST([LIBXML_LIBS])
384

385 386
dnl xmlURI structure has query_raw?
old_cflags="$CFLAGS"
387
old_ldflags="$LDFLAGS"
388
CFLAGS="$CFLAGS $LIBXML_CFLAGS"
389
LDFLAGS="$LDFLAGS $LIBXML_LIBS"
390 391
AC_CHECK_MEMBER([struct _xmlURI.query_raw],
		[AC_DEFINE([HAVE_XMLURI_QUERY_RAW], [], [Have query_raw field in libxml2 xmlURI structure])],,
392 393
		[#include <libxml/uri.h>])
CFLAGS="$old_cflags"
394
LDFLAGS="$old_ldflags"
395 396

dnl GnuTLS library
397 398
GNUTLS_CFLAGS=
GNUTLS_LIBS=
399 400 401 402 403 404
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
405
  fail=0
406
  old_libs="$LIBS"
407 408 409 410 411 412
  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])

413 414 415 416
  GNUTLS_LIBS=$LIBS
  LIBS="$old_libs"
fi

417 418
AC_SUBST([GNUTLS_CFLAGS])
AC_SUBST([GNUTLS_LIBS])
419

420 421 422
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.
423 424 425 426
old_cflags="$CFLAGS"
old_ldflags="$LDFLAGS"
CFLAGS="$CFLAGS $GNUTLS_CFLAGS"
LDFLAGS="$LDFLAGS $GNUTLS_LIBS"
427 428
AC_CHECK_TYPE([gnutls_session],
	AC_DEFINE([GNUTLS_1_0_COMPAT],[],
429 430
		[enable GnuTLS 1.0 compatibility macros]),,
	[#include <gnutls/gnutls.h>])
431 432
CFLAGS="$old_cflags"
LDFLAGS="$old_ldflags"
433

434

435
dnl Cyrus SASL
436
AC_ARG_WITH([sasl],
437 438
  [  --with-sasl         use cyrus SASL for authentication],
  [],
439
  [with_sasl=check])
440 441 442

SASL_CFLAGS=
SASL_LIBS=
443 444
if test "x$with_sasl" != "xno"; then
  if test "x$with_sasl" != "xyes" -a "x$with_sasl" != "xcheck"; then
445 446 447
    SASL_CFLAGS="-I$with_sasl"
    SASL_LIBS="-L$with_sasl"
  fi
448
  fail=0
449 450 451 452
  old_cflags="$CFLAGS"
  old_libs="$LIBS"
  CFLAGS="$CFLAGS $SASL_CFLAGS"
  LIBS="$LIBS $SASL_LIBS"
453 454 455 456
  AC_CHECK_HEADER([sasl/sasl.h],[],[
    if test "x$with_sasl" != "xcheck" ; then
        with_sasl=no
    else
457
        fail=1
458 459
    fi])
  if test "x$with_sasl" != "xno" ; then
460
    AC_CHECK_LIB([sasl2], [sasl_client_init],[with_sasl=yes],[
461 462 463
      if test "x$with_sasl" = "xcheck" ; then
          with_sasl=no
      else
464
          fail=1
465 466
      fi])
  fi
467 468
  test $fail = 1 &&
    AC_MSG_ERROR([You must install the Cyrus SASL development package in order to compile libvirt])
469 470 471
  CFLAGS="$old_cflags"
  LIBS="$old_libs"
  SASL_LIBS="$SASL_LIBS -lsasl2"
472
  if test "x$with_sasl" = "xyes" ; then
473
    AC_DEFINE_UNQUOTED([HAVE_SASL], 1,
474 475
      [whether Cyrus SASL is available for authentication])
  fi
476
fi
477 478 479
AM_CONDITIONAL([HAVE_SASL], [test "x$with_sasl" = "xyes"])
AC_SUBST([SASL_CFLAGS])
AC_SUBST([SASL_LIBS])
480 481


482 483 484
dnl PolicyKit library
POLKIT_CFLAGS=
POLKIT_LIBS=
485
AC_ARG_WITH([polkit],
486 487 488 489
  [  --with-polkit         use PolicyKit for UNIX socket access checks],
  [],
  [with_polkit=check])

490 491 492 493 494 495 496 497 498 499 500
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
501
    AC_DEFINE_UNQUOTED([HAVE_POLKIT], 1,
502
      [use PolicyKit for UNIX socket access checks])
503 504 505 506 507

    old_CFLAGS=$CFLAGS
    old_LDFLAGS=$LDFLAGS
    CFLAGS="$CFLAGS $POLKIT_CFLAGS"
    LDFLAGS="$LDFLAGS $POLKIT_LIBS"
508
    AC_CHECK_FUNCS([polkit_context_is_caller_authorized])
509 510 511
    CFLAGS="$old_CFLAGS"
    LDFLAGS="$old_LDFLAGS"

512
    AC_PATH_PROG([POLKIT_AUTH], [polkit-auth])
513 514 515
    if test "x$POLKIT_AUTH" != "x"; then
      AC_DEFINE_UNQUOTED([POLKIT_AUTH],["$POLKIT_AUTH"],[Location of polkit-auth program])
    fi
516
  fi
517
fi
518 519 520
AM_CONDITIONAL([HAVE_POLKIT], [test "x$with_polkit" = "xyes"])
AC_SUBST([POLKIT_CFLAGS])
AC_SUBST([POLKIT_LIBS])
521

522
dnl Avahi library
523
AC_ARG_WITH([avahi],
524 525 526 527 528 529
  [  --with-avahi         use avahi to advertise remote daemon],
  [],
  [with_avahi=check])

AVAHI_CFLAGS=
AVAHI_LIBS=
530 531 532 533 534 535 536 537 538 539 540
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
541
    AC_DEFINE_UNQUOTED([HAVE_AVAHI], 1,
542 543
      [whether Avahi is used to broadcast server presense])
  fi
544
fi
545 546 547
AM_CONDITIONAL([HAVE_AVAHI], [test "x$with_avahi" = "xyes"])
AC_SUBST([AVAHI_CFLAGS])
AC_SUBST([AVAHI_LIBS])
548

549
dnl SELinux
550
AC_ARG_WITH([selinux],
551 552 553 554 555 556 557 558 559 560 561
  [  --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])
562
    AC_CHECK_LIB([selinux], [fgetfilecon],[],[with_selinux=no])
563 564 565 566
    if test "$with_selinux" != "no"; then
      with_selinux="yes"
    fi
  else
567 568 569 570 571
    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])
572 573 574 575 576 577
  fi
  CFLAGS="$old_cflags"
  LIBS="$old_libs"
fi
if test "$with_selinux" = "yes"; then
  SELINUX_LIBS="-lselinux"
578
  AC_DEFINE_UNQUOTED([HAVE_SELINUX], 1, [whether SELinux is available for security])
579
fi
580 581 582
AM_CONDITIONAL([HAVE_SELINUX], [test "$with_selinux" != "no"])
AC_SUBST([SELINUX_CFLAGS])
AC_SUBST([SELINUX_LIBS])
583

584
dnl NUMA lib
585
AC_ARG_WITH([numactl],
586 587 588 589 590 591 592 593 594 595 596
  [  --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])
597
    AC_CHECK_LIB([numa], [numa_available],[],[with_numactl=no])
598 599 600 601
    if test "$with_numactl" != "no"; then
      with_numactl="yes"
    fi
  else
602 603 604 605 606
    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])
607 608 609 610 611 612
  fi
  CFLAGS="$old_cflags"
  LIBS="$old_libs"
fi
if test "$with_numactl" = "yes"; then
  NUMACTL_LIBS="-lnuma"
613
  AC_DEFINE_UNQUOTED([HAVE_NUMACTL], 1, [whether numactl is available for topology info])
614
fi
615 616 617
AM_CONDITIONAL([HAVE_NUMACTL], [test "$with_numactl" != "no"])
AC_SUBST([NUMACTL_CFLAGS])
AC_SUBST([NUMACTL_LIBS])
618

K
Karel Zak 已提交
619
dnl virsh libraries
620
AC_CHECK_HEADERS([readline/readline.h])
621 622

# Check for readline.
623
AC_CHECK_LIB([readline], [readline],
624 625 626 627 628 629 630 631 632
	[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=
633
    AC_SEARCH_LIBS([tgetent], [ncurses curses termcap termlib])
634 635 636 637 638 639
    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.
640
	AC_CHECK_LIB([readline], [rl_initialize],
641 642 643 644 645 646 647 648 649 650 651 652 653 654
		[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
655
else
656
    READLINE_CFLAGS=
657
fi
658 659
AC_SUBST([READLINE_CFLAGS])
AC_SUBST([VIRSH_LIBS])
K
Karel Zak 已提交
660

661

662 663 664 665 666 667 668 669 670 671 672
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"])


673 674 675 676
dnl
dnl Storage driver checks
dnl

677
AC_ARG_WITH([storage-fs],
678
[  --with-storage-fs           with FileSystem backend for the storage driver (on)],[],[with_storage_fs=check])
679
AC_ARG_WITH([storage-lvm],
680
[  --with-storage-lvm          with LVM backend for the storage driver (on)],[],[with_storage_lvm=check])
681
AC_ARG_WITH([storage-iscsi],
682
[  --with-storage-iscsi        with iSCSI backend for the storage driver (on)],[],[with_storage_iscsi=check])
683
AC_ARG_WITH([storage-disk],
684
[  --with-storage-disk         with GPartd Disk backend for the storage driver (on)],[],[with_storage_disk=check])
685

D
Daniel P. Berrange 已提交
686 687 688 689 690 691 692 693 694 695 696 697 698 699
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"])


700
if test "$with_storage_fs" = "yes" -o "$with_storage_fs" = "check"; then
701 702
  AC_PATH_PROG([MOUNT], [mount], [], [$PATH:/sbin:/usr/sbin])
  AC_PATH_PROG([UMOUNT], [umount], [], [$PATH:/sbin:/usr/sbin])
703
  if test "$with_storage_fs" = "yes" ; then
704
    if test -z "$MOUNT" ; then AC_MSG_ERROR([We need mount for FS storage driver]) ; fi
705
    if test -z "$UMOUNT" ; then AC_MSG_ERROR([We need umount for FS storage driver]) ; fi
706 707 708 709 710 711 712 713
  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
714
    AC_DEFINE_UNQUOTED([WITH_STORAGE_FS], 1, [whether FS backend for storage driver is enabled])
715 716 717 718 719 720
    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
721
AM_CONDITIONAL([WITH_STORAGE_FS], [test "$with_storage_fs" = "yes"])
722 723 724 725 726
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
727

728
AC_PATH_PROG([QEMU_IMG], [qemu-img], [], [$PATH:/sbin:/usr/sbin:/bin:/usr/bin])
729
if test -n "$QEMU_IMG" ; then
730
  AC_DEFINE_UNQUOTED([HAVE_QEMU_IMG], 1, [whether qemu-img is available for non-raw files])
731 732 733 734
  AC_DEFINE_UNQUOTED([QEMU_IMG],["$QEMU_IMG"],
      [Location or name of the qemu-img program])
fi

735
AC_PATH_PROG([QCOW_CREATE], [qcow-create], [], [$PATH:/sbin:/usr/sbin:/bin:/usr/bin])
736
if test -n "$QCOW_CREATE" ; then
737
  AC_DEFINE_UNQUOTED([HAVE_QCOW_CREATE], 1, [whether qcow-create is available for non-raw files])
738 739 740 741 742
  AC_DEFINE_UNQUOTED([QCOW_CREATE],["$QCOW_CREATE"],
      [Location or name of the qcow-create program])
fi


743
if test "$with_storage_lvm" = "yes" -o "$with_storage_lvm" = "check"; then
744 745 746 747 748 749 750
  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])
751
  AC_PATH_PROG([VGSCAN], [vgscan], [], [$PATH:/sbin:/usr/sbin])
752 753 754
  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])
755 756

  if test "$with_storage_lvm" = "yes" ; then
757 758 759 760 761 762 763
    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
764
    if test -z "$VGSCAN" ; then AC_MSG_ERROR([We need vgscan for LVM storage driver]) ; fi
765 766 767
    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
768 769 770 771 772 773 774
  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
775 776
    if test -z "$VGCHANGE" ; then with_storage_lvm=no ; fi
    if test -z "$VGSCAN" ; then with_storage_lvm=no ; fi
777 778 779 780 781 782 783 784
    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
785
    AC_DEFINE_UNQUOTED([WITH_STORAGE_LVM], 1, [whether LVM backend for storage driver is enabled])
786 787 788 789 790 791 792
    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])
793
    AC_DEFINE_UNQUOTED([VGSCAN],["$VGSCAN"],[Location of vgscan program])
794 795 796 797 798
    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
799
AM_CONDITIONAL([WITH_STORAGE_LVM], [test "$with_storage_lvm" = "yes"])
800 801


802 803

if test "$with_storage_iscsi" = "yes" -o "$with_storage_iscsi" = "check"; then
804
  AC_PATH_PROG([ISCSIADM], [iscsiadm], [], [$PATH:/sbin:/usr/sbin])
805
  if test "$with_storage_iscsi" = "yes" ; then
806
    if test -z "$ISCSIADM" ; then AC_MSG_ERROR([We need iscsiadm for iSCSI storage driver]) ; fi
807 808 809 810 811 812 813
  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
814
    AC_DEFINE_UNQUOTED([WITH_STORAGE_ISCSI], 1, [whether iSCSI backend for storage driver is enabled])
815 816 817
    AC_DEFINE_UNQUOTED([ISCSIADM],["$ISCSIADM"],[Location of iscsiadm program])
  fi
fi
818
AM_CONDITIONAL([WITH_STORAGE_ISCSI], [test "$with_storage_iscsi" = "yes"])
819 820


821 822 823 824

LIBPARTED_CFLAGS=
LIBPARTED_LIBS=
if test "$with_storage_disk" = "yes" -o "$with_storage_disk" = "check"; then
825
  AC_PATH_PROG([PARTED], [parted], [], [$PATH:/sbin:/usr/sbin])
826 827 828 829 830 831
  if test -z "$PARTED" ; then
    with_storage_disk=no
    PARTED_FOUND=no
  else
    PARTED_FOUND=yes
  fi
832 833 834 835 836 837 838 839 840

  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
841 842 843
    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])
844 845 846 847 848 849 850
    LIBPARTED_LIBS="-luuid -lparted"
    LIBS="$save_LIBS"
    CFLAGS="$save_CFLAGS"
  fi

  if test "$PARTED_FOUND" = "no" ; then
    if test "$with_storage_disk" = "yes" ; then
851
      AC_MSG_ERROR([We need parted for disk storage driver])
852 853 854 855 856 857 858 859
    else
      with_storage_disk=no
    fi
  else
    with_storage_disk=yes
  fi

  if test "$with_storage_disk" = "yes"; then
860
    AC_DEFINE_UNQUOTED([WITH_STORAGE_DISK], 1, [whether Disk backend for storage driver is enabled])
861 862 863
    AC_DEFINE_UNQUOTED([PARTED],["$PARTED"], [Location or name of the parted program])
  fi
fi
864 865 866
AM_CONDITIONAL([WITH_STORAGE_DISK], [test "$with_storage_disk" = "yes"])
AC_SUBST([LIBPARTED_CFLAGS])
AC_SUBST([LIBPARTED_LIBS])
867 868


869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891
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
892
		with_python=`$PYTHON -c "import sys; print sys.exec_prefix"`
893
	    else
894
		AC_PATH_PROG([PYTHON], [python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5])
895 896 897 898 899 900 901 902 903 904 905 906 907 908
	    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
909
	    PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
910 911 912
	else
	    if test -r $prefix/include/python$PYTHON_VERSION/Python.h
	    then
913 914
	        PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
	        PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
915 916 917 918
	    else
		if test -r /usr/include/python$PYTHON_VERSION/Python.h
		then
		    PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
919
	            PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
920 921 922 923 924 925 926 927 928 929 930 931 932 933
		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
934
        pythondir='$(libdir)/python$(PYTHON_VERSION)/site-packages'
935 936 937 938
    fi
else
    PYTHON=
fi
939 940 941 942 943
AM_CONDITIONAL([WITH_PYTHON], test "$PYTHON_INCLUDES" != "")
AC_SUBST([pythondir])
AC_SUBST([PYTHON_VERSION])
AC_SUBST([PYTHON_INCLUDES])
AC_SUBST([PYTHON_SITE_PACKAGES])
944

945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964
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)

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

967
AC_ARG_ENABLE([test-coverage],
D
Daniel P. Berrange 已提交
968
[  --enable-test-coverage  turn on code coverage instrumentation],
969 970 971 972 973
[case "${enableval}" in
   yes|no) ;;
   *)      AC_MSG_ERROR([bad value ${enableval} for test-coverage option]) ;;
 esac],
              [enableval=no])
D
Daniel P. Berrange 已提交
974
enable_coverage=$enableval
975

D
Daniel P. Berrange 已提交
976
if test "${enable_coverage}" = yes; then
977 978 979 980 981 982 983
  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 已提交
984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002
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

1003
dnl Enable building the proxy?
1004

1005
AC_ARG_WITH([xen-proxy],
1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020
[  --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])

1021
AM_CONDITIONAL([WITH_PROXY],[test "$with_xen_proxy" = "yes"])
1022
if test "$with_xen_proxy" = "yes"; then
1023
  AC_DEFINE([WITH_PROXY], 1, [Whether Xen proxy is enabled])
1024
fi
1025

1026
dnl Enable building libvirtd?
1027
AM_CONDITIONAL([WITH_LIBVIRTD],[test "x$with_libvirtd" = "xyes"])
1028

1029
dnl Check for gettext
1030 1031
AM_GNU_GETTEXT_VERSION([0.14.1])
AM_GNU_GETTEXT([external])
1032
ALL_LINGUAS=`cd "$srcdir/po" > /dev/null && ls *.po | sed 's+\.po$++'`
1033

1034 1035 1036 1037 1038 1039
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=
1040
MINGW_EXTRA_LDFLAGS=
1041 1042 1043 1044 1045 1046 1047 1048
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
    ;;
1049 1050 1051
  *-*-mingw*)
    MINGW_EXTRA_LDFLAGS="-no-undefined"
    ;;
1052
esac
1053 1054 1055 1056
AC_SUBST([CYGWIN_EXTRA_LDFLAGS])
AC_SUBST([CYGWIN_EXTRA_LIBADD])
AC_SUBST([CYGWIN_EXTRA_PYTHON_LIBADD])
AC_SUBST([MINGW_EXTRA_LDFLAGS])
1057

1058 1059 1060 1061
dnl Look for windres to build a Windows icon resource.
AC_CHECK_TOOL([WINDRES], [windres], [no])
AM_CONDITIONAL([WITH_WIN_ICON], [test "$WINDRES" != "no"])

1062 1063 1064 1065 1066
# 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-.}
1067
AC_SUBST([LV_LIBTOOL_OBJDIR])
1068

1069 1070
# very annoying
rm -f COPYING
1071
cp COPYING.LIB COPYING
1072

1073
AC_OUTPUT(Makefile src/Makefile include/Makefile docs/Makefile \
1074
          docs/examples/Makefile docs/devhelp/Makefile \
1075
	  docs/examples/python/Makefile \
1076
	  gnulib/lib/Makefile \
J
Jim Meyering 已提交
1077
	  gnulib/tests/Makefile \
R
Richard W.M. Jones 已提交
1078
          libvirt.pc libvirt.spec mingw32-libvirt.spec \
1079
          po/Makefile.in \
1080
	  include/libvirt/Makefile include/libvirt/libvirt.h \
K
Karel Zak 已提交
1081
	  python/Makefile python/tests/Makefile \
1082
          qemud/Makefile \
1083
          tests/Makefile proxy/Makefile \
1084 1085
          tests/xml2sexprdata/Makefile \
          tests/sexpr2xmldata/Makefile \
1086
          tests/xmconfigdata/Makefile \
1087
          tests/xencapsdata/Makefile \
1088 1089
          tests/virshdata/Makefile tests/confdata/Makefile \
          examples/domain-events/events-c/Makefile)
D
Daniel P. Berrange 已提交
1090 1091 1092 1093 1094 1095 1096 1097

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])
1098
AC_MSG_NOTICE([   Proxy: $with_xen_proxy])
D
Daniel P. Berrange 已提交
1099 1100
AC_MSG_NOTICE([    QEMU: $with_qemu])
AC_MSG_NOTICE([  OpenVZ: $with_openvz])
D
Daniel Veillard 已提交
1101
AC_MSG_NOTICE([     LXC: $with_lxc])
D
Daniel P. Berrange 已提交
1102 1103
AC_MSG_NOTICE([    Test: $with_test])
AC_MSG_NOTICE([  Remote: $with_remote])
1104
AC_MSG_NOTICE([ Network: $with_network])
1105
AC_MSG_NOTICE([Libvirtd: $with_libvirtd])
D
Daniel P. Berrange 已提交
1106
AC_MSG_NOTICE([])
1107 1108
AC_MSG_NOTICE([Storage Drivers])
AC_MSG_NOTICE([])
D
Daniel P. Berrange 已提交
1109
AC_MSG_NOTICE([     Dir: $with_storage_dir])
1110 1111
AC_MSG_NOTICE([      FS: $with_storage_fs])
AC_MSG_NOTICE([   NetFS: $with_storage_fs])
1112
AC_MSG_NOTICE([     LVM: $with_storage_lvm])
1113
AC_MSG_NOTICE([   iSCSI: $with_storage_iscsi])
1114
AC_MSG_NOTICE([    Disk: $with_storage_disk])
1115
AC_MSG_NOTICE([])
D
Daniel P. Berrange 已提交
1116 1117 1118
AC_MSG_NOTICE([Libraries])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([  libxml: $LIBXML_CFLAGS $LIBXML_LIBS])
1119
AC_MSG_NOTICE([  gnutls: $GNUTLS_CFLAGS $GNUTLS_LIBS])
1120 1121 1122 1123 1124
if test "$with_sasl" != "no" ; then
AC_MSG_NOTICE([    sasl: $SASL_CFLAGS $SASL_LIBS])
else
AC_MSG_NOTICE([    sasl: no])
fi
1125 1126 1127 1128 1129
if test "$with_avahi" = "yes" ; then
AC_MSG_NOTICE([   avahi: $AVAHI_CFLAGS $AVAHI_LIBS])
else
AC_MSG_NOTICE([   avahi: no])
fi
1130 1131 1132 1133 1134
if test "$with_polkit" = "yes" ; then
AC_MSG_NOTICE([  polkit: $POLKIT_CFLAGS $POLKIT_LIBS])
else
AC_MSG_NOTICE([  polkit: no])
fi
1135 1136 1137 1138 1139
if test "$with_selinux" = "yes" ; then
AC_MSG_NOTICE([  selinux: $SELINUX_CFLAGS $SELINUX_LIBS])
else
AC_MSG_NOTICE([  selinux: no])
fi
1140 1141 1142 1143 1144
if test "$with_numactl" = "yes" ; then
AC_MSG_NOTICE([  numactl: $NUMACTL_CFLAGS $NUMACTL_LIBS])
else
AC_MSG_NOTICE([  numactl: no])
fi
1145 1146 1147 1148 1149
if test "$with_xen" = "yes" ; then
AC_MSG_NOTICE([  xen: $XEN_CFLAGS $XEN_LIBS])
else
AC_MSG_NOTICE([  xen: no])
fi
D
Daniel P. Berrange 已提交
1150
AC_MSG_NOTICE([])
D
Daniel P. Berrange 已提交
1151 1152 1153 1154 1155
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 已提交
1156 1157 1158
AC_MSG_NOTICE([Miscellaneous])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([  Debug: $enable_debug])
1159
AC_MSG_NOTICE([  Warnings: $enable_compile_warnings])
1160
AC_MSG_NOTICE([  Readline: $lv_use_readline])
D
Daniel P. Berrange 已提交
1161
AC_MSG_NOTICE([])