Add commented-out support for alternate guestfwd syntax.
[libguestfs.git] / configure.ac
index 91e4792..1bc1109 100644 (file)
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
 # 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.51])
-AM_INIT_AUTOMAKE
+# major/minor/release must be numbers
+m4_define([libguestfs_major],   [1])
+m4_define([libguestfs_minor],   [0])
+m4_define([libguestfs_release], [62])
+# extra can be any string
+m4_define([libguestfs_extra],   [])
+
+AC_INIT([libguestfs],libguestfs_major.libguestfs_minor.libguestfs_release[]libguestfs_extra)
+AM_INIT_AUTOMAKE([foreign])
 
 AC_CONFIG_MACRO_DIR([m4])
 
 AC_PROG_LIBTOOL
 
 
 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])
+
 dnl Check for basic C environment.
 AC_PROG_CC_STDC
 AC_PROG_INSTALL
 dnl Check for basic C environment.
 AC_PROG_CC_STDC
 AC_PROG_INSTALL
@@ -70,19 +83,25 @@ AC_ARG_WITH([qemu],
        [],
        [with_qemu="$default_qemu"])
 AC_PATH_PROGS([QEMU],[$with_qemu],[no],
        [],
        [with_qemu="$default_qemu"])
 AC_PATH_PROGS([QEMU],[$with_qemu],[no],
-       [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin])
+       [$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 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
 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(
+    AC_MSG_CHECKING([for "guestfwd" support in $QEMU])
+    if qemu-kvm --help | grep -sq guestfwd; then
+        AC_MSG_RESULT([yes])
+    else
+        AC_MSG_CHECKING([for "-net channel" 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])
+       else
+           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
 [I did not find vmchannel support in $QEMU.
 
 vmchannel support is vital for libguestfs to operate.  You need a version
@@ -98,10 +117,22 @@ 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.
 ])
 and install it in another location, then you should configure with
 the --with-qemu option.
 ])
+       fi
     fi
     fi
-    AC_MSG_RESULT([yes])
 fi
 
 fi
 
+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.
+AC_ARG_WITH([drive-if],
+       [AS_HELP_STRING([--with-drive-if],
+         [set default driver (ide|scsi|virtio) @<:@default=ide@:>@])],
+       [],
+       [with_drive_if=ide])
+AC_DEFINE_UNQUOTED([DRIVE_IF],["$with_drive_if"],[Default drive interface.])
+
 dnl Check for febootstrap etc.
 AC_CHECK_PROG([FEBOOTSTRAP],
        [febootstrap],[febootstrap],[no])
 dnl Check for febootstrap etc.
 AC_CHECK_PROG([FEBOOTSTRAP],
        [febootstrap],[febootstrap],[no])
@@ -144,6 +175,7 @@ if test "x$FEBOOTSTRAP" != "xno"; then
         AC_MSG_ERROR([fakechroot version must be >= 2.9])
     fi
   fi
         AC_MSG_ERROR([fakechroot version must be >= 2.9])
     fi
   fi
+  DIST="REDHAT"
 else
   # check for debootstrap and debirf
   AC_CHECK_PROG([DEBOOTSTRAP],
 else
   # check for debootstrap and debirf
   AC_CHECK_PROG([DEBOOTSTRAP],
@@ -153,7 +185,21 @@ else
   AC_CHECK_PROG([DEBIRF],[debirf],[debirf],[no])
   test "x$DEBIRF" = "xno" &&
         AC_MSG_ERROR([debirf 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
+          ;;
+      x86_64)
+          DEBIAN_KERNEL_ARCH=amd64
+          ;;
+      *)
+         DEBIAN_KERNEL_ARCH=$host_cpu
+         ;;
+   esac
+   AC_SUBST(DEBIAN_KERNEL_ARCH)
 fi
 fi
+AC_SUBST(DIST)
 
 
 dnl --with-repo to specify a Fedora repository.
 
 
 dnl --with-repo to specify a Fedora repository.
@@ -166,8 +212,6 @@ REPO="$with_repo"
 AC_SUBST(REPO)
 AC_DEFINE_UNQUOTED([REPO],["$REPO"],[Name of Fedora repository.])
 
 AC_SUBST(REPO)
 AC_DEFINE_UNQUOTED([REPO],["$REPO"],[Name of Fedora repository.])
 
-AC_DEFINE_UNQUOTED([host_cpu],["$host_cpu"],[Host architecture.])
-
 dnl --with-updates to specify a Fedora updates repository.
 AC_ARG_WITH([updates],
        [AS_HELP_STRING([--with-updates],
 dnl --with-updates to specify a Fedora updates repository.
 AC_ARG_WITH([updates],
        [AS_HELP_STRING([--with-updates],
@@ -176,8 +220,8 @@ AC_ARG_WITH([updates],
        [with_updates=updates-released-f11])
 UPDATES="$with_updates"
 AC_SUBST(UPDATES)
        [with_updates=updates-released-f11])
 UPDATES="$with_updates"
 AC_SUBST(UPDATES)
-AC_DEFINE_UNQUOTED([UPDATES],["$UPDATES"],[Name of Fedora updates repository.])
 
 
+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_DEFINE_UNQUOTED([host_cpu],["$host_cpu"],[Host architecture.])
 
 dnl --with-mirror to specify a local Fedora mirror.
@@ -479,9 +523,9 @@ AC_CHECK_PROG([GHC],[ghc],[ghc],[no])
 AM_CONDITIONAL([HAVE_HASKELL],
     [test "x$GHC" != "xno"])
 
 AM_CONDITIONAL([HAVE_HASKELL],
     [test "x$GHC" != "xno"])
 
-dnl Check for Perl modules needed by the inspector.
+dnl Check for Perl modules needed by virt-df, inspector, V2V etc.
 missing_perl_modules=no
 missing_perl_modules=no
-for pm in Pod::Usage Getopt::Long Sys::Virt Data::Dumper; do
+for pm in Pod::Usage Getopt::Long Sys::Virt Data::Dumper XML::Writer Locale::TextDomain; do
     AC_MSG_CHECKING([for $pm])
     if ! perl -M$pm -e1 >/dev/null 2>&1; then
         AC_MSG_RESULT([no])
     AC_MSG_CHECKING([for $pm])
     if ! perl -M$pm -e1 >/dev/null 2>&1; then
         AC_MSG_RESULT([no])
@@ -491,11 +535,17 @@ for pm in Pod::Usage Getopt::Long Sys::Virt Data::Dumper; do
     fi
 done
 if test "x$missing_perl_modules" = "xyes"; then
     fi
 done
 if test "x$missing_perl_modules" = "xyes"; then
-    AC_MSG_WARN([some Perl modules required to compile virt-inspector are missing])
+    AC_MSG_WARN([some Perl modules required to compile virt-cat, virt-df, virt-inspector and virt-v2v are missing])
 fi
 
 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_INSPECTOR],
     [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_V2V],
+    [test "x$PERL" != "xno" -a "x$missing_perl_modules" != "xyes"])
 
 dnl Library versioning.
 MAX_PROC_NR=`cat $srcdir/src/MAX_PROC_NR`
 
 dnl Library versioning.
 MAX_PROC_NR=`cat $srcdir/src/MAX_PROC_NR`
@@ -506,12 +556,21 @@ AC_CONFIG_SUBDIRS([daemon])
 
 dnl Produce output files.
 AC_CONFIG_HEADERS([config.h])
 
 dnl Produce output files.
 AC_CONFIG_HEADERS([config.h])
+dnl http://www.mail-archive.com/automake@gnu.org/msg10204.html
+AC_CONFIG_FILES([appliance/make.sh],
+               [chmod +x appliance/make.sh])
+AC_CONFIG_FILES([appliance/update.sh],
+               [chmod +x appliance/update.sh])
+AC_CONFIG_FILES([appliance/supermin-split.sh],
+               [chmod +x appliance/supermin-split.sh])
+AC_CONFIG_FILES([appliance/supermin-make.sh],
+               [chmod +x appliance/supermin-make.sh])
+AC_CONFIG_FILES([appliance/libguestfs-supermin-helper],
+               [chmod +x appliance/libguestfs-supermin-helper])
 AC_CONFIG_FILES([Makefile
                 src/Makefile fish/Makefile po/Makefile.in examples/Makefile
                 appliance/Makefile
 AC_CONFIG_FILES([Makefile
                 src/Makefile fish/Makefile po/Makefile.in examples/Makefile
                 appliance/Makefile
-                appliance/make.sh appliance/update.sh
-                appliance/supermin-split.sh appliance/supermin-make.sh
-                appliance/libguestfs-supermin-helper
+                appliance/debian/debirf.conf
                 images/Makefile
                 capitests/Makefile
                 regressions/Makefile
                 images/Makefile
                 capitests/Makefile
                 regressions/Makefile
@@ -521,14 +580,14 @@ AC_CONFIG_FILES([Makefile
                 ruby/Makefile ruby/Rakefile
                 java/Makefile
                 haskell/Makefile
                 ruby/Makefile ruby/Rakefile
                 java/Makefile
                 haskell/Makefile
+                cat/Makefile
+                df/Makefile
                 inspector/Makefile
                 inspector/Makefile
+                v2v/Makefile
                 libguestfs.pc
                 ocaml/META perl/Makefile.PL])
 AC_OUTPUT
 
                 libguestfs.pc
                 ocaml/META perl/Makefile.PL])
 AC_OUTPUT
 
-dnl WTF?
-chmod +x appliance/*.sh appliance/libguestfs-supermin-helper
-
 dnl Produce summary.
 echo
 echo
 dnl Produce summary.
 echo
 echo
@@ -550,15 +609,21 @@ echo -n "Java bindings ....................... "
 if test "x$HAVE_JAVA_TRUE" = "x"; then echo "yes"; else echo "no"; fi
 echo -n "Haskell bindings .................... "
 if test "x$HAVE_HASKELL" = "x"; then echo "yes"; else echo "no"; fi
 if test "x$HAVE_JAVA_TRUE" = "x"; then echo "yes"; else echo "no"; fi
 echo -n "Haskell bindings .................... "
 if test "x$HAVE_HASKELL" = "x"; then echo "yes"; else echo "no"; fi
+echo -n "virt-cat ............................ "
+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-inspector ...................... "
 if test "x$HAVE_INSPECTOR" = "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-v2v ............................ "
+if test "x$HAVE_V2V" = "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'"
 echo "then you should check the preceeding messages."
 echo
 echo "supermin appliance .................. $enable_supermin"
 echo
 echo "If any optional component is configured 'no' when you expected 'yes'"
 echo "then you should check the preceeding messages."
 echo
-echo "Please report bugs back to the fedora-virt mailing list:"
-echo "http://www.redhat.com/mailman/listinfo/fedora-virt"
+echo "Please report bugs back to the mailing list:"
+echo "http://www.redhat.com/mailman/listinfo/libguestfs"
 echo
 echo "Next you should type 'make' to build the package,"
 echo "then 'make check' to run the tests."
 echo
 echo "Next you should type 'make' to build the package,"
 echo "then 'make check' to run the tests."