# major/minor/release must be numbers
m4_define([libguestfs_major], [1])
m4_define([libguestfs_minor], [0])
-m4_define([libguestfs_release], [68])
+m4_define([libguestfs_release], [71])
# extra can be any string
m4_define([libguestfs_extra], [])
AC_CONFIG_MACRO_DIR([m4])
-AC_PROG_LIBTOOL
-
dnl Split up the version string.
AC_DEFINE([PACKAGE_VERSION_MAJOR],[libguestfs_major],[Major version number])
AC_DEFINE([PACKAGE_VERSION_MINOR],[libguestfs_minor],[Minor version number])
AC_DEFINE([PACKAGE_VERSION_RELEASE],[libguestfs_release],[Release number])
AC_DEFINE([PACKAGE_VERSION_EXTRA],["libguestfs_extra"],[Extra version string])
+gl_EARLY
+gl_INIT
+
+AC_PROG_LIBTOOL
+
dnl Check for basic C environment.
AC_PROG_CC_STDC
AC_PROG_INSTALL
AC_PROG_CPP
-gl_EARLY
-gl_INIT
-
AC_ARG_ENABLE([gcc-warnings],
[AS_HELP_STRING([--enable-gcc-warnings],
[turn on lots of GCC warnings (for developers)])],
nw="$nw -Winline" # daemon.h's asprintf_nowarn
nw="$nw -Wshadow" # numerous, plus we're not unanimous
# ?? -Wstrict-overflow
+ nw="$nw -Wunsafe-loop-optimizations" # just a warning that an optimization
+ # was not possible, safe to ignore
gl_MANYWARN_ALL_GCC([ws])
gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw])
test "x$QEMU" = "xno" && AC_MSG_ERROR([qemu must be installed])
AC_DEFINE_UNQUOTED([QEMU],["$QEMU"],[Location of qemu binary.])
-dnl Check that the chosen qemu has vmchannel support.
-dnl http://lists.gnu.org/archive/html/qemu-devel/2009-02/msg01042.html
+dnl Check that the chosen qemu has vmchannel support or we can
+dnl fallback to null vmchannel (still using SLIRP). See the
+dnl discussion in the README file.
if test "x$vmchannel_test" != "xno"; then
- AC_MSG_CHECKING([for "guestfwd" support in $QEMU])
+ AC_MSG_CHECKING([for guestfwd support in $QEMU])
if $QEMU --help | grep -sq guestfwd; then
AC_MSG_RESULT([yes])
+ vmchannel_guestfwd=guestfwd
else
AC_MSG_RESULT([no])
- AC_MSG_CHECKING([for "-net channel" support in $QEMU])
+ # Note that this test must be conditional on the previous
+ # 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 ||:`
echo "vmchannel test command output: $vmchannelout" >&AS_MESSAGE_LOG_FD
if echo "$vmchannelout" | grep -sq "vmchannel wrong port number" ; then
AC_MSG_RESULT([yes])
+ vmchannel_guestfwd=net_channel
else
AC_MSG_RESULT([no])
- AC_MSG_FAILURE(
-[I did not find vmchannel support in $QEMU.
+ vmchannel_guestfwd=no
+ fi
+ fi
+
+ AC_MSG_CHECKING([for "-net user" (user mode network) support in $QEMU])
+ if $QEMU --help | grep -sq -- "-net user"; then
+ AC_MSG_RESULT([yes])
+ vmchannel_net_user=yes
+ else
+ AC_MSG_RESULT([no])
+ vmchannel_net_user=no
+ fi
+
+ if test "x$vmchannel_net_user" = "xno" -a "x$vmchannel_guestfwd" = "xno"; then
+ AC_MSG_FAILURE(
+[I did not find user mode network or vmchannel support in
+$QEMU.
-vmchannel support is vital for libguestfs to operate. You need a version
-of qemu >= 0.10, or the following patch backported to earlier versions:
+Either user mode networking or vmchannel support is vital for
+libguestfs to operate.
-http://lists.gnu.org/archive/html/qemu-devel/2009-02/msg01042.html
+Please read the relevant section in the README file for more
+information about this.
You can override this test by setting the environment variable
-vmchannel_test=no However if you don't have vmchannel support
+vmchannel_test=no However if you don't have the right support
in your qemu, then this just delays the pain.
If I am using the wrong qemu or you want to compile qemu from source
and install it in another location, then you should configure with
the --with-qemu option.
])
- fi
fi
fi
AC_MSG_RESULT([yes])
fi
+dnl Enable packet dumps when in verbose mode. This generates lots
+dnl of debug info, only useful for people debugging the RPC mechanism.
+AC_ARG_ENABLE([packet-dump],
+ [AS_HELP_STRING([--enable-packet-dump],
+ [enable packet dumps in verbose mode @<:@default=no@:>@])],
+ [AC_DEFINE([ENABLE_PACKET_DUMP],[1],[Enable packet dumps in verbose mode.])],
+ [])
+
dnl Readline.
AC_ARG_WITH([readline],
[AS_HELP_STRING([--with-readline],
dnl For i18n.
AM_GNU_GETTEXT([external])
-AM_GNU_GETTEXT_VERSION([0.14])
+AM_GNU_GETTEXT_VERSION([0.17])
dnl Check for OCaml (optional, for OCaml bindings).
AC_PROG_OCAML