# libguestfs
-# Copyright (C) 2009 Red Hat Inc.
+# Copyright (C) 2009-2010 Red Hat Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# major/minor/release must be numbers
m4_define([libguestfs_major], [1])
m4_define([libguestfs_minor], [0])
-m4_define([libguestfs_release], [82])
+m4_define([libguestfs_release], [86])
# extra can be any string
m4_define([libguestfs_extra], [])
dnl Check sizeof long.
AC_CHECK_SIZEOF([long])
+dnl Define a C symbol for the host CPU architecture.
+AC_DEFINE_UNQUOTED([host_cpu],["$host_cpu"],[Host architecture.])
+
dnl Headers.
AC_CHECK_HEADERS([errno.h sys/types.h sys/un.h sys/wait.h sys/socket.h endian.h byteswap.h])
+dnl Build the daemon?
+AC_MSG_CHECKING([if we should build the daemon])
+AC_ARG_ENABLE([daemon],
+ [AS_HELP_STRING([--enable-daemon],
+ [enable building the daemon @<:@default=yes@:>@])],
+ [],
+ [enable_daemon=yes])
+AM_CONDITIONAL([ENABLE_DAEMON],[test "x$enable_daemon" = "xyes"])
+AC_MSG_RESULT([$enable_daemon])
+
+dnl Build the appliance?
+AC_MSG_CHECKING([if we should build the appliance])
+AC_ARG_ENABLE([appliance],
+ [AS_HELP_STRING([--enable-appliance],
+ [enable building the appliance @<:@default=yes@:>@])],
+ [],
+ [enable_appliance=yes])
+AM_CONDITIONAL([ENABLE_APPLIANCE],[test "x$enable_appliance" = "xyes"])
+AC_MSG_RESULT([$enable_appliance])
+
dnl Check for rpcgen and XDR library. rpcgen is optional.
AC_CHECK_PROG([RPCGEN],[rpcgen],[rpcgen],[no])
AM_CONDITIONAL([HAVE_RPCGEN],[test "x$RPCGEN" != "xno"])
dnl discussion in the README file.
if test "x$vmchannel_test" != "xno"; then
AC_MSG_CHECKING([for guestfwd support in $QEMU])
- if $QEMU --help | grep -sq guestfwd; then
+ if $QEMU -nographic --help | grep -sq guestfwd; then
AC_MSG_RESULT([yes])
vmchannel_guestfwd=guestfwd
else
# test failing. This is because recent qemu will throw
# up an SDL window and hang if we try to run this test.
AC_MSG_CHECKING([for "-net channel" (old guestfwd) support in $QEMU])
- vmchannelout=`$QEMU -net channel /dev/zero 2>&1 ||:`
+ vmchannelout=`$QEMU -nographic -net channel /dev/zero 2>&1 ||:`
echo "vmchannel test command output: $vmchannelout" >&AS_MESSAGE_LOG_FD
if echo "$vmchannelout" | grep -sq "vmchannel wrong port number" ; then
AC_MSG_RESULT([yes])
fi
AC_MSG_CHECKING([for "-net user" (user mode network) support in $QEMU])
- if $QEMU --help | grep -sq -- "-net user"; then
+ if $QEMU -nographic --help | grep -sq -- "-net user"; then
AC_MSG_RESULT([yes])
vmchannel_net_user=yes
else
dnl Set drive interface used by the guestfs_add_drive{,_ro} calls
dnl ('-drive ...,if=...' option to qemu).
dnl
-dnl NB. We will change the default in future to virtio, but at the
-dnl moment this causes a performance problem, RHBZ#509383.
+dnl If you encounter performance problems with virtio (RHBZ#509383)
+dnl then try '--with-drive-if=ide'.
AC_ARG_WITH([drive-if],
[AS_HELP_STRING([--with-drive-if],
- [set default driver (ide|scsi|virtio) @<:@default=ide@:>@])],
+ [set default driver (ide|scsi|virtio) @<:@default=virtio@:>@])],
[],
- [with_drive_if=ide])
+ [with_drive_if=virtio])
AC_DEFINE_UNQUOTED([DRIVE_IF],["$with_drive_if"],[Default drive interface.])
dnl Set interface used by the network. Normally you should
AC_DEFINE_UNQUOTED([NET_IF],["$with_net_if"],[Default network interface.])
dnl Check for febootstrap etc.
-AC_CHECK_PROG([FEBOOTSTRAP],
- [febootstrap],[febootstrap],[no])
-if test "x$FEBOOTSTRAP" != "xno"; then
- AC_CHECK_PROG([FEBOOTSTRAP_RUN],
- [febootstrap-run],[febootstrap-run],[no])
- test "x$FEBOOTSTRAP_RUN" = "xno" && \
- AC_MSG_ERROR([febootstrap-run must be installed])
- AC_CHECK_PROG([FEBOOTSTRAP_INSTALL],
- [febootstrap-install],[febootstrap-install],[no])
- test "x$FEBOOTSTRAP_INSTALL" = "xno" && \
- AC_MSG_ERROR([febootstrap-install must be installed])
- AC_CHECK_PROG([FEBOOTSTRAP_MINIMIZE],
- [febootstrap-minimize],[febootstrap-minimize],[no])
- test "x$FEBOOTSTRAP_MINIMIZE" = "xno" && \
- AC_MSG_ERROR([febootstrap-minimize must be installed])
- AC_CHECK_PROG([FEBOOTSTRAP_TO_INITRAMFS],
- [febootstrap-to-initramfs],[febootstrap-to-initramfs],[no])
- test "x$FEBOOTSTRAP_TO_INITRAMFS" = "xno" && \
- AC_MSG_ERROR([febootstrap-to-initramfs must be installed])
-
- dnl Check we have fakechroot >= 2.9 (it's an indirect requirement
- dnl of febootstrap, but old versions will fail with yum).
- AC_CHECK_PROG([FAKECHROOT],
- [fakechroot],[fakechroot],[no])
- test "x$FAKECHROOT" = "xno" && \
- AC_MSG_ERROR([fakechroot must be installed])
-
- AC_MSG_CHECKING([fakechroot version])
- fakechroot_version=`$FAKECHROOT --version | awk '{print $3}'`
- if test -z "$fakechroot_version"; then
- AC_MSG_RESULT([failed])
- AC_MSG_WARN([fakechroot --version command failed, proceeding anyway])
- else
- AC_MSG_RESULT([$fakechroot_version])
- fakechroot_major=`echo "$fakechroot_version" | awk -F. '{print $1}'`
- fakechroot_minor=`echo "$fakechroot_version" | awk -F. '{print $2}'`
- if test "$fakechroot_major" -lt 2 -o \
+if test "x$enable_appliance" = "xyes"; then
+ AC_CHECK_PROG([FEBOOTSTRAP],
+ [febootstrap],[febootstrap],[no])
+ if test "x$FEBOOTSTRAP" != "xno"; then
+ AC_CHECK_PROG([FEBOOTSTRAP_RUN],
+ [febootstrap-run],[febootstrap-run],[no])
+ test "x$FEBOOTSTRAP_RUN" = "xno" && \
+ AC_MSG_ERROR([febootstrap-run must be installed])
+ AC_CHECK_PROG([FEBOOTSTRAP_INSTALL],
+ [febootstrap-install],[febootstrap-install],[no])
+ test "x$FEBOOTSTRAP_INSTALL" = "xno" && \
+ AC_MSG_ERROR([febootstrap-install must be installed])
+ AC_CHECK_PROG([FEBOOTSTRAP_MINIMIZE],
+ [febootstrap-minimize],[febootstrap-minimize],[no])
+ test "x$FEBOOTSTRAP_MINIMIZE" = "xno" && \
+ AC_MSG_ERROR([febootstrap-minimize must be installed])
+ AC_CHECK_PROG([FEBOOTSTRAP_TO_INITRAMFS],
+ [febootstrap-to-initramfs],[febootstrap-to-initramfs],[no])
+ test "x$FEBOOTSTRAP_TO_INITRAMFS" = "xno" && \
+ AC_MSG_ERROR([febootstrap-to-initramfs must be installed])
+
+ dnl Check we have fakechroot >= 2.9 (it's an indirect requirement
+ dnl of febootstrap, but old versions will fail with yum).
+ AC_CHECK_PROG([FAKECHROOT],
+ [fakechroot],[fakechroot],[no])
+ test "x$FAKECHROOT" = "xno" && \
+ AC_MSG_ERROR([fakechroot must be installed])
+
+ AC_MSG_CHECKING([fakechroot version])
+ fakechroot_version=`$FAKECHROOT --version | awk '{print $3}'`
+ if test -z "$fakechroot_version"; then
+ AC_MSG_RESULT([failed])
+ AC_MSG_WARN([fakechroot --version command failed, proceeding anyway])
+ else
+ AC_MSG_RESULT([$fakechroot_version])
+ fakechroot_major=`echo "$fakechroot_version" | awk -F. '{print $1}'`
+ fakechroot_minor=`echo "$fakechroot_version" | awk -F. '{print $2}'`
+ if test "$fakechroot_major" -lt 2 -o \
\( "$fakechroot_major" -eq 2 -a "$fakechroot_minor" -lt 9 \); then
- AC_MSG_ERROR([fakechroot version must be >= 2.9])
- fi
- fi
- DIST="REDHAT"
-else
- # check for debootstrap and debirf
- AC_CHECK_PROG([DEBOOTSTRAP],
- [debootstrap],[debootstrap],[no])
- test "x$DEBOOTSTRAP" = "xno" && \
- AC_MSG_ERROR([Either febootstrap or debootstrap must be installed])
- AC_CHECK_PROG([DEBIRF],[debirf],[debirf],[no])
- test "x$DEBIRF" = "xno" &&
- AC_MSG_ERROR([debirf must be installed])
- DIST="DEBIAN"
- case "$host_cpu" in
+ AC_MSG_ERROR([fakechroot version must be >= 2.9])
+ fi
+ fi
+ DIST="REDHAT"
+ else
+ # check for debootstrap and debirf
+ AC_CHECK_PROG([DEBOOTSTRAP],
+ [debootstrap],[debootstrap],[no])
+ test "x$DEBOOTSTRAP" = "xno" && \
+ AC_MSG_ERROR([Either febootstrap or debootstrap must be installed])
+ AC_CHECK_PROG([DEBIRF],[debirf],[debirf],[no])
+ test "x$DEBIRF" = "xno" &&
+ AC_MSG_ERROR([debirf must be installed])
+ DIST="DEBIAN"
+ case "$host_cpu" in
*86)
DEBIAN_KERNEL_ARCH=486
;;
*)
DEBIAN_KERNEL_ARCH=$host_cpu
;;
- esac
- AC_SUBST(DEBIAN_KERNEL_ARCH)
-fi
-AC_SUBST(DIST)
+ esac
+ AC_SUBST(DEBIAN_KERNEL_ARCH)
+ fi
+ AC_SUBST(DIST)
+
+ dnl --with-updates to specify a Fedora updates repository.
+ AC_ARG_WITH([updates],
+ [AS_HELP_STRING([--with-updates],
+ [set name of Fedora updates repository @<:@default=updates-released-f11@:>@])],
+ [],
+ [with_updates=updates-released-f11])
+ UPDATES="$with_updates"
+ AC_SUBST(UPDATES)
+ dnl --with-mirror to specify a local Fedora mirror.
+ AC_ARG_WITH([mirror],
+ [AS_HELP_STRING([--with-mirror],
+ [set URI of a local Fedora mirror])],
+ [],
+ [with_mirror=])
+ MIRROR="$with_mirror"
+ AC_SUBST(MIRROR)
+fi
dnl --with-repo to specify a Fedora repository.
AC_ARG_WITH([repo],
AC_SUBST(REPO)
AC_DEFINE_UNQUOTED([REPO],["$REPO"],[Name of Fedora repository.])
-dnl --with-updates to specify a Fedora updates repository.
-AC_ARG_WITH([updates],
- [AS_HELP_STRING([--with-updates],
- [set name of Fedora updates repository @<:@default=updates-released-f11@:>@])],
- [],
- [with_updates=updates-released-f11])
-UPDATES="$with_updates"
-AC_SUBST(UPDATES)
-
-dnl Define a symbol for the host CPU architecture.
-AC_DEFINE_UNQUOTED([host_cpu],["$host_cpu"],[Host architecture.])
-
-dnl --with-mirror to specify a local Fedora mirror.
-AC_ARG_WITH([mirror],
- [AS_HELP_STRING([--with-mirror],
- [set URI of a local Fedora mirror])],
- [],
- [with_mirror=])
-MIRROR="$with_mirror"
-AC_SUBST(MIRROR)
-
dnl Build the supermin appliance? Please see README file before
dnl enabling this option.
AC_ARG_ENABLE([supermin],
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.17])
-dnl libxml2 is used by the hivex library.
-PKG_CHECK_MODULES([LIBXML2], [libxml-2.0])
-AC_SUBST([LIBXML2_CFLAGS])
-AC_SUBST([LIBXML2_LIBS])
+dnl hivex library (highly recommended).
+dnl This used to be a part of libguestfs, but was spun off into its
+dnl own separate upstream project in libguestfs 1.0.85.
+HAVE_HIVEX=yes
+PKG_CHECK_MODULES([HIVEX], [hivex],,[
+ HAVE_HIVEX=no
+ AC_MSG_WARN([Hivex library and headers are missing, so optional Windows Registry tools won't be built])])
+AM_CONDITIONAL([HAVE_HIVEX],[test "x$HAVE_HIVEX" = "xyes"])
+AC_SUBST([HIVEX_CFLAGS])
+AC_SUBST([HIVEX_LIBS])
dnl FUSE is optional to build the FUSE module.
HAVE_FUSE=yes
AC_SUBST(MAX_PROC_NR)
dnl Run in subdirs.
-AC_CONFIG_SUBDIRS([daemon])
+if test "x$enable_daemon" = "xyes"; then
+ AC_CONFIG_SUBDIRS([daemon])
+fi
dnl Produce output files.
AC_CONFIG_HEADERS([config.h])
libguestfs.pc
gnulib/lib/Makefile
gnulib/tests/Makefile
- hivex/Makefile
- hivex/tools/Makefile
fuse/Makefile
ocaml/META perl/Makefile.PL])
AC_OUTPUT
echo
echo "This is how we have configured the optional components for you today:"
echo
+echo "Daemon .............................. $enable_daemon"
+echo "Appliance ........................... $enable_appliance"
echo "QEMU ................................ $QEMU"
echo -n "OCaml bindings ...................... "
if test "x$HAVE_OCAML_TRUE" = "x"; then echo "yes"; else echo "no"; fi