# major/minor/release must be numbers
m4_define([libguestfs_major], [1])
m4_define([libguestfs_minor], [0])
-m4_define([libguestfs_release], [70])
+m4_define([libguestfs_release], [73])
# extra can be any string
m4_define([libguestfs_extra], [])
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])
[$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin])
test "x$MKISOFS" = "xno" && AC_MSG_ERROR([mkisofs must be installed])
+dnl Check for optional xmllint.
+AC_CHECK_PROG([XMLLINT],[xmllint],[xmllint],[no])
+AM_CONDITIONAL([HAVE_XMLLINT],[test "x$XMLLINT" != "xno"])
+
dnl Check for QEMU for running binaries on this $host_cpu, fall
dnl back to basic 'qemu'. Allow the user to override it.
default_qemu="qemu-kvm qemu-system-$host_cpu qemu"
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
-vmchannel support is vital for libguestfs to operate. You need a version
-of qemu >= 0.10, or the following patch backported to earlier versions:
+ 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.
-http://lists.gnu.org/archive/html/qemu-devel/2009-02/msg01042.html
+Either user mode networking or vmchannel support is vital for
+libguestfs to operate.
+
+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],
AC_PROG_FINDLIB
AM_CONDITIONAL([HAVE_OCAML],[test "x$OCAMLC" != "xno" -a "x$OCAMLFIND" != "xno"])
+dnl Optional xml-light for building virt-inspector language bindings
+dnl from the virt-inspector.rng file.
+OCAML_PKG_xml_light=no
+if test "x$OCAMLC" != "xno" -a "x$OCAMLFIND" != "xno"; then
+ AC_CHECK_OCAML_PKG([xml-light])
+fi
+AM_CONDITIONAL([HAVE_XML_LIGHT],[test "x$OCAML_PKG_xml_light" != "xno"])
+
+dnl Build the OCaml viewer example. This has a lengthy list of
+dnl dependencies and we don't attempt to detect them all. Read
+dnl the top of ocaml/examples/viewer.ml before enabling this.
+AC_ARG_ENABLE([ocaml-viewer],
+ [AS_HELP_STRING([--enable-ocaml-viewer],
+ [enable OCaml viewer (see ocaml/examples) @<:@default=no@:>@])],
+ [],
+ [enable_ocaml_viewer=no])
+AM_CONDITIONAL([BUILD_OCAML_VIEWER],[test "x$enable_ocaml_viewer" = "xyes"])
+
dnl Check for Perl (optional, for Perl bindings).
dnl XXX This isn't quite right, we should check for Perl devel library.
AC_CHECK_PROG([PERL],[perl],[perl],[no])
fi
done
if test "x$missing_perl_modules" = "xyes"; then
- AC_MSG_WARN([some Perl modules required to compile virt-cat, virt-df and virt-inspector are missing])
+ AC_MSG_WARN([some Perl modules required to compile virt-cat, virt-df, virt-edit, virt-inspector and virt-rescue are missing])
fi
AM_CONDITIONAL([HAVE_CAT],
[test "x$PERL" != "xno" -a "x$missing_perl_modules" != "xyes"])
AM_CONDITIONAL([HAVE_DF],
[test "x$PERL" != "xno" -a "x$missing_perl_modules" != "xyes"])
+AM_CONDITIONAL([HAVE_EDIT],
+ [test "x$PERL" != "xno" -a "x$missing_perl_modules" != "xyes"])
AM_CONDITIONAL([HAVE_INSPECTOR],
[test "x$PERL" != "xno" -a "x$missing_perl_modules" != "xyes"])
+AM_CONDITIONAL([HAVE_RESCUE],
+ [test "x$PERL" != "xno" -a "x$missing_perl_modules" != "xyes"])
dnl Library versioning.
MAX_PROC_NR=`cat $srcdir/src/MAX_PROC_NR`
haskell/Makefile
cat/Makefile
df/Makefile
+ edit/Makefile
inspector/Makefile
+ rescue/Makefile
libguestfs.pc
gnulib/lib/Makefile
gnulib/tests/Makefile
if test "x$HAVE_CAT" = "x"; then echo "yes"; else echo "no"; fi
echo -n "virt-df ............................. "
if test "x$HAVE_DF" = "x"; then echo "yes"; else echo "no"; fi
+echo -n "virt-edit ........................... "
+if test "x$HAVE_EDIT" = "x"; then echo "yes"; else echo "no"; fi
echo -n "virt-inspector ...................... "
if test "x$HAVE_INSPECTOR" = "x"; then echo "yes"; else echo "no"; fi
+echo -n "virt-rescue ......................... "
+if test "x$HAVE_RESCUE" = "x"; then echo "yes"; else echo "no"; fi
echo "supermin appliance .................. $enable_supermin"
echo
echo "If any optional component is configured 'no' when you expected 'yes'"