Added virt-inspector program from virt-v2v.
[libguestfs.git] / configure.ac
index 02d983c..731867f 100644 (file)
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-AC_INIT([libguestfs],[1.0.11])
+AC_INIT([libguestfs],[1.0.14])
 AM_INIT_AUTOMAKE
 
 AC_CONFIG_MACRO_DIR([m4])
@@ -73,6 +73,34 @@ AC_PATH_PROGS([QEMU],[$with_qemu],[no],
 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
+if test "x$vmchannel_test" != "xno"; then
+    AC_MSG_CHECKING([for vmchannel 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([no])
+       AC_MSG_FAILURE(
+[I did not find 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:
+
+http://lists.gnu.org/archive/html/qemu-devel/2009-02/msg01042.html
+
+You can override this test by setting the environment variable
+vmchannel_test=no  However if you don't have vmchannel 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
+    AC_MSG_RESULT([yes])
+fi
+
 dnl Check for febootstrap etc.
 AC_CHECK_PROG([FEBOOTSTRAP],
        [febootstrap],[febootstrap],[no])
@@ -158,7 +186,7 @@ dnl test the Perl bindings.
 missing_perl_modules=no
 for pm in Test::More Test::Pod Test::Pod::Coverage ExtUtils::MakeMaker; do
     AC_MSG_CHECKING([for $pm])
-    if ! perl -M$pm >/dev/null 2>&1; then
+    if ! perl -M$pm -e1 >/dev/null 2>&1; then
         AC_MSG_RESULT([no])
         missing_perl_modules=yes
     else
@@ -348,6 +376,24 @@ AC_SUBST(JNI_VERSION_INFO)
 
 AM_CONDITIONAL([HAVE_JAVA],[test -n "$JAVAC"])
 
+dnl Check for Perl modules needed by the inspector.
+missing_perl_modules=no
+for pm in Pod::Usage Getopt::Long Sys::Virt Data::Dumper; do
+    AC_MSG_CHECKING([for $pm])
+    if ! perl -M$pm -e1 >/dev/null 2>&1; then
+        AC_MSG_RESULT([no])
+        missing_perl_modules=yes
+    else
+        AC_MSG_RESULT([yes])
+    fi
+done
+if test "x$missing_perl_modules" = "xyes"; then
+    AC_MSG_WARN([some Perl modules required to compile virt-inspector are missing])
+fi
+
+AM_CONDITIONAL([HAVE_INSPECTOR],
+    [test "x$PERL" != "xno" -a "x$missing_perl_modules" != "xyes"])
+
 dnl Run in subdirs.
 AC_CONFIG_SUBDIRS([daemon])
 
@@ -360,6 +406,7 @@ AC_CONFIG_FILES([Makefile src/Makefile fish/Makefile examples/Makefile
                 python/Makefile
                 ruby/Makefile ruby/Rakefile
                 java/Makefile
+                inspector/Makefile
                 make-initramfs.sh update-initramfs.sh
                 libguestfs.spec libguestfs.pc
                 ocaml/META perl/Makefile.PL])
@@ -387,6 +434,8 @@ echo -n "Ruby bindings ....................... "
 if test "x$HAVE_RUBY_TRUE" = "x"; then echo "yes"; else echo "no"; fi
 echo -n "Java bindings ....................... "
 if test "x$HAVE_JAVA_TRUE" = "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
 echo "If any optional component is configured 'no' when you expected 'yes'"
 echo "then you should check the preceeding messages."