---
configure.ac | 134 +----------------------------------------------
m4/guestfs_qemu.m4 | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 151 insertions(+), 132 deletions(-)
create mode 100644 m4/guestfs_qemu.m4
diff --git a/configure.ac b/configure.ac
index a86d676..7782c3a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -741,138 +741,8 @@ AM_CONDITIONAL([HAVE_ZIP],[test "x$ZIP" !=
"xno"])
AC_PATH_PROGS([UNZIP],[unzip],[no])
AC_DEFINE_UNQUOTED([UNZIP],["$UNZIP"],[Name of unzip program.])
-dnl Check for QEMU for running binaries on this $host_cpu, fall
-dnl back to basic 'qemu'. Allow the user to override it.
-AS_CASE([$host_cpu],
- [i@<:@456@:>@86],[qemu_cpu=i386],
- [arm*],[qemu_cpu=arm],
- [amd64],[qemu_cpu=x86_64],
- [powerpc64 | ppc64le | powerpc64le],[qemu_cpu=ppc64],
- [qemu_cpu=$host_cpu])
-default_qemu="qemu-kvm kvm qemu-system-$qemu_cpu qemu"
-AC_ARG_WITH([qemu],
- [AS_HELP_STRING([--with-qemu="bin1 bin2 ..."],
- [set default QEMU binary @<:@default="[qemu-kvm] qemu-system-<host>
qemu"@:>@])],
- dnl --with-qemu or --without-qemu:
- [],
- dnl neither option was given:
- [with_qemu="$default_qemu"]
-)
-
-AS_IF([test "x$with_qemu" = "xno"],[
- AC_MSG_WARN([qemu was disabled, libguestfs may not work at all])
- QEMU=no
-],[
- AC_PATH_PROGS([QEMU],[$with_qemu],[no],
- [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin$PATH_SEPARATOR/usr/libexec])
- test "x$QEMU" = "xno" && AC_MSG_ERROR([qemu must be
installed])
-
- AC_DEFINE_UNQUOTED([QEMU],["$QEMU"],[Location of qemu binary.])
-
- dnl Does the user wish to specify -M, -cpu or other qemu options?
- AC_MSG_CHECKING([if the user specified extra options for qemu command line])
- AC_ARG_WITH([qemu-options],
- [AS_HELP_STRING([--with-qemu-options="-M ... -cpu ... etc"],
- [pass extra options for qemu command line @<:@default=no@:>@])],
- [QEMU_OPTIONS="$withval"],
- [QEMU_OPTIONS=no])
- AS_IF([test "x$QEMU_OPTIONS" = "xno"],[
- AC_MSG_RESULT([no])
- QEMU_OPTIONS=
- ],[
- AC_MSG_RESULT([$QEMU_OPTIONS])
- ])
- AC_DEFINE_UNQUOTED([QEMU_OPTIONS],["$QEMU_OPTIONS"],
- [Extra options for qemu command line.])
-
- dnl Check that the chosen qemu has virtio-serial support.
- dnl For historical reasons this can be disabled by setting
- dnl vmchannel_test=no.
- if test "x$vmchannel_test" != "xno"; then
- AC_MSG_CHECKING([that $QEMU -help works])
- if $QEMU -help >&AS_MESSAGE_LOG_FD 2>&1; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- AC_MSG_FAILURE(
-[$QEMU -help: command failed.
-
-This could be a very old version of qemu, or qemu might not be
-working.
-])
- fi
-
- AC_MSG_CHECKING([that $QEMU -version works])
- if $QEMU -version >&AS_MESSAGE_LOG_FD 2>&1; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- AC_MSG_FAILURE(
-[$QEMU -version: command failed.
-
-This could be a very old version of qemu, or qemu might not be
-working.
-])
- fi
-
- AC_MSG_CHECKING([for $QEMU version >= 1])
- if $QEMU -version | grep -sq 'version @<:@1-9@:>@'; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- AC_MSG_FAILURE([$QEMU version must be >= 1.0.])
- fi
-
- dnl Unfortunately $QEMU -device \? won't just work. We probably
- dnl need to add a cocktail of different arguments which differ
- dnl on the various emulators. Thanks, qemu.
- AC_MSG_CHECKING([what extra options we need to use for qemu feature tests])
- QEMU_OPTIONS_FOR_CONFIGURE=
- # Note: the order we test these matters.
- for opt in "-machine virt" "-machine accel=kvm:tcg" "-display
none"; do
- if $QEMU $QEMU_OPTIONS_FOR_CONFIGURE $opt -device \? >&AS_MESSAGE_LOG_FD
2>&1; then
- QEMU_OPTIONS_FOR_CONFIGURE="$QEMU_OPTIONS_FOR_CONFIGURE $opt"
- fi
- done
- AC_MSG_RESULT([$QEMU_OPTIONS_FOR_CONFIGURE])
-
- AC_MSG_CHECKING([that $QEMU $QEMU_OPTIONS_FOR_CONFIGURE -device ? works])
- if $QEMU $QEMU_OPTIONS_FOR_CONFIGURE -device \? >&AS_MESSAGE_LOG_FD
2>&1; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- AC_MSG_FAILURE([$QEMU $QEMU_OPTIONS_FOR_CONFIGURE -device ? doesn't
work.])
- fi
-
- AC_MSG_CHECKING([for virtio-serial support in $QEMU])
- if $QEMU $QEMU_OPTIONS_FOR_CONFIGURE -device \? 2>&1 | grep -sq
virtio-serial; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- AC_MSG_FAILURE(
-[I did not find virtio-serial support in
-$QEMU.
-
-virtio-serial support in qemu or KVM is essential for libguestfs
-to operate.
-
-Usually this means that you have to install a newer version of qemu
-and/or KVM. 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 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
-])
+dnl Check for QEMU.
+m4_include([m4/guestfs_qemu.m4])
dnl Enable packet dumps when in verbose mode. This generates lots
dnl of debug info, only useful for people debugging the RPC mechanism.
diff --git a/m4/guestfs_qemu.m4 b/m4/guestfs_qemu.m4
new file mode 100644
index 0000000..20a681e
--- /dev/null
+++ b/m4/guestfs_qemu.m4
@@ -0,0 +1,149 @@
+# libguestfs
+# Copyright (C) 2009-2015 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
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+dnl Check for QEMU for running binaries on this $host_cpu, fall
+dnl back to basic 'qemu'. Allow the user to override it.
+AS_CASE([$host_cpu],
+ [i@<:@456@:>@86],[qemu_cpu=i386],
+ [arm*],[qemu_cpu=arm],
+ [amd64],[qemu_cpu=x86_64],
+ [powerpc64 | ppc64le | powerpc64le],[qemu_cpu=ppc64],
+ [qemu_cpu=$host_cpu])
+default_qemu="qemu-kvm kvm qemu-system-$qemu_cpu qemu"
+AC_ARG_WITH([qemu],
+ [AS_HELP_STRING([--with-qemu="bin1 bin2 ..."],
+ [set default QEMU binary @<:@default="[qemu-kvm] qemu-system-<host>
qemu"@:>@])],
+ dnl --with-qemu or --without-qemu:
+ [],
+ dnl neither option was given:
+ [with_qemu="$default_qemu"]
+)
+
+AS_IF([test "x$with_qemu" = "xno"],[
+ AC_MSG_WARN([qemu was disabled, libguestfs may not work at all])
+ QEMU=no
+],[
+ AC_PATH_PROGS([QEMU],[$with_qemu],[no],
+ [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin$PATH_SEPARATOR/usr/libexec])
+ test "x$QEMU" = "xno" && AC_MSG_ERROR([qemu must be
installed])
+
+ AC_DEFINE_UNQUOTED([QEMU],["$QEMU"],[Location of qemu binary.])
+
+ dnl Does the user wish to specify -M, -cpu or other qemu options?
+ AC_MSG_CHECKING([if the user specified extra options for qemu command line])
+ AC_ARG_WITH([qemu-options],
+ [AS_HELP_STRING([--with-qemu-options="-M ... -cpu ... etc"],
+ [pass extra options for qemu command line @<:@default=no@:>@])],
+ [QEMU_OPTIONS="$withval"],
+ [QEMU_OPTIONS=no])
+ AS_IF([test "x$QEMU_OPTIONS" = "xno"],[
+ AC_MSG_RESULT([no])
+ QEMU_OPTIONS=
+ ],[
+ AC_MSG_RESULT([$QEMU_OPTIONS])
+ ])
+ AC_DEFINE_UNQUOTED([QEMU_OPTIONS],["$QEMU_OPTIONS"],
+ [Extra options for qemu command line.])
+
+ dnl Check that the chosen qemu has virtio-serial support.
+ dnl For historical reasons this can be disabled by setting
+ dnl vmchannel_test=no.
+ if test "x$vmchannel_test" != "xno"; then
+ AC_MSG_CHECKING([that $QEMU -help works])
+ if $QEMU -help >&AS_MESSAGE_LOG_FD 2>&1; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ AC_MSG_FAILURE(
+[$QEMU -help: command failed.
+
+This could be a very old version of qemu, or qemu might not be
+working.
+])
+ fi
+
+ AC_MSG_CHECKING([that $QEMU -version works])
+ if $QEMU -version >&AS_MESSAGE_LOG_FD 2>&1; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ AC_MSG_FAILURE(
+[$QEMU -version: command failed.
+
+This could be a very old version of qemu, or qemu might not be
+working.
+])
+ fi
+
+ AC_MSG_CHECKING([for $QEMU version >= 1])
+ if $QEMU -version | grep -sq 'version @<:@1-9@:>@'; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ AC_MSG_FAILURE([$QEMU version must be >= 1.0.])
+ fi
+
+ dnl Unfortunately $QEMU -device \? won't just work. We probably
+ dnl need to add a cocktail of different arguments which differ
+ dnl on the various emulators. Thanks, qemu.
+ AC_MSG_CHECKING([what extra options we need to use for qemu feature tests])
+ QEMU_OPTIONS_FOR_CONFIGURE=
+ # Note: the order we test these matters.
+ for opt in "-machine virt" "-machine accel=kvm:tcg" "-display
none"; do
+ if $QEMU $QEMU_OPTIONS_FOR_CONFIGURE $opt -device \? >&AS_MESSAGE_LOG_FD
2>&1; then
+ QEMU_OPTIONS_FOR_CONFIGURE="$QEMU_OPTIONS_FOR_CONFIGURE $opt"
+ fi
+ done
+ AC_MSG_RESULT([$QEMU_OPTIONS_FOR_CONFIGURE])
+
+ AC_MSG_CHECKING([that $QEMU $QEMU_OPTIONS_FOR_CONFIGURE -device ? works])
+ if $QEMU $QEMU_OPTIONS_FOR_CONFIGURE -device \? >&AS_MESSAGE_LOG_FD
2>&1; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ AC_MSG_FAILURE([$QEMU $QEMU_OPTIONS_FOR_CONFIGURE -device ? doesn't
work.])
+ fi
+
+ AC_MSG_CHECKING([for virtio-serial support in $QEMU])
+ if $QEMU $QEMU_OPTIONS_FOR_CONFIGURE -device \? 2>&1 | grep -sq
virtio-serial; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ AC_MSG_FAILURE(
+[I did not find virtio-serial support in
+$QEMU.
+
+virtio-serial support in qemu or KVM is essential for libguestfs
+to operate.
+
+Usually this means that you have to install a newer version of qemu
+and/or KVM. 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 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
+])
--
2.5.0