rescue: Rewrite virt-rescue in C.
[libguestfs.git] / configure.ac
index db2eb02..90dffb0 100644 (file)
@@ -18,7 +18,7 @@
 # major/minor/release must be numbers
 m4_define([libguestfs_major],   [1])
 m4_define([libguestfs_minor],   [7])
-m4_define([libguestfs_release], [2])
+m4_define([libguestfs_release], [14])
 # extra can be any string
 m4_define([libguestfs_extra],   [])
 
@@ -188,15 +188,6 @@ AC_ARG_ENABLE([appliance],
 AM_CONDITIONAL([ENABLE_APPLIANCE],[test "x$enable_appliance" = "xyes"])
 AC_MSG_RESULT([$enable_appliance])
 
-dnl Check for PCRE.
-AC_CHECK_LIB([pcre],[pcre_compile],
-        [AC_SUBST([LIBPCRE], ["-lpcre"])],
-        [AC_MSG_FAILURE(
-             [Perl Compatible Regular Expressions library (PCRE) is required])])
-AC_CHECK_HEADER([pcre.h],[],
-        [AC_MSG_FAILURE(
-             [Perl Compatible Regular Expressions library (PCRE) header file pcre.h is required])])
-
 dnl Check for rpcgen and XDR library.  rpcgen is optional.
 AC_CHECK_PROG([RPCGEN],[rpcgen],[rpcgen],[no])
 AM_CONDITIONAL([HAVE_RPCGEN],[test "x$RPCGEN" != "xno"])
@@ -214,13 +205,16 @@ AC_CHECK_PROG([GPERF],[gperf],[gperf],[no])
 test "x$GPERF" = "xno" &&
      AC_MSG_ERROR([gperf must be installed])
 
-dnl Check for pod2man and pod2text.
+dnl Check for pod2man, pod2text, pod2html.
 AC_CHECK_PROG([POD2MAN],[pod2man],[pod2man],[no])
 test "x$POD2MAN" = "xno" &&
      AC_MSG_ERROR([pod2man must be installed])
 AC_CHECK_PROG([POD2TEXT],[pod2text],[pod2text],[no])
 test "x$POD2TEXT" = "xno" &&
      AC_MSG_ERROR([pod2text must be installed])
+AC_CHECK_PROG([POD2HTML],[pod2html],[pod2html],[no])
+test "x$POD2HTML" = "xno" &&
+     AC_MSG_ERROR([pod2html must be installed])
 
 dnl Check for mkisofs.
 AC_PATH_PROGS([MKISOFS],[mkisofs],[no],
@@ -231,6 +225,20 @@ dnl Check for optional xmllint.
 AC_CHECK_PROG([XMLLINT],[xmllint],[xmllint],[no])
 AM_CONDITIONAL([HAVE_XMLLINT],[test "x$XMLLINT" != "xno"])
 
+dnl po4a for translating man pages and POD files (optional).
+AC_CHECK_PROG([PO4A],[po4a],[po4a],[no])
+AM_CONDITIONAL([HAVE_PO4A], [test "x$PO4A" != "xno"])
+
+dnl Check for db_dump, db_load (optional).
+AC_CHECK_PROGS([DB_DUMP],[db_dump db4_dump db4.8_dump],[no])
+AC_CHECK_PROGS([DB_LOAD],[db_load db4_load db4.8_load],[no])
+if test "x$DB_DUMP" != "xno"; then
+    AC_DEFINE_UNQUOTED([DB_DUMP],["$DB_DUMP"],[Name of db_dump program.])
+fi
+if test "x$DB_LOAD" != "xno"; then
+    AC_DEFINE_UNQUOTED([DB_LOAD],["$DB_LOAD"],[Name of db_load program.])
+fi
+
 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 kvm qemu-system-$host_cpu qemu"
@@ -445,37 +453,50 @@ dnl For i18n.
 AM_GNU_GETTEXT([external])
 AM_GNU_GETTEXT_VERSION([0.17])
 
-dnl libmagic (required)
-AC_CHECK_LIB([magic],[magic_file],[
-        AC_SUBST([LIBMAGIC], ["-lmagic"])
-    ],[
-        AC_MSG_FAILURE([libmagic is required])
-    ])
-AC_CHECK_HEADER([magic.h],[],[
-        AC_MSG_FAILURE([magic.h header file is required])
-    ])
-
-dnl libvirt (required)
-PKG_CHECK_MODULES([LIBVIRT], [libvirt])
-AC_SUBST([LIBVIRT_CFLAGS])
-AC_SUBST([LIBVIRT_LIBS])
+dnl libmagic (highly recommended)
+AC_CHECK_LIB([magic],[magic_file],
+        [AC_CHECK_HEADER([magic.h],
+                [AC_SUBST([MAGIC_LIBS], ["-lmagic"])
+                 AC_DEFINE([HAVE_LIBMAGIC],[1],[libmagic found at compile time.])
+                ], [])
+        ],
+        [AC_MSG_WARN([libmagic not found, some core features will be disabled])])
 
-dnl libxml2 (required)
-PKG_CHECK_MODULES([LIBXML2], [libxml-2.0])
-AC_SUBST([LIBXML2_CFLAGS])
-AC_SUBST([LIBXML2_LIBS])
+dnl Check for PCRE (highly recommended)
+PKG_CHECK_MODULES([PCRE], [libpcre],
+        [AC_SUBST([PCRE_CFLAGS])
+         AC_SUBST([PCRE_LIBS])
+         AC_DEFINE([HAVE_PCRE],[1],[PCRE found at compile time.])
+        ],
+        [AC_MSG_WARN([PCRE not found, some core features will be disabled])])
 
-dnl Augeas (required)
-PKG_CHECK_MODULES([AUGEAS], [augeas])
-AC_SUBST([AUGEAS_CFLAGS])
-AC_SUBST([AUGEAS_LIBS])
+dnl libvirt (highly recommended)
+PKG_CHECK_MODULES([LIBVIRT], [libvirt],
+        [AC_SUBST([LIBVIRT_CFLAGS])
+         AC_SUBST([LIBVIRT_LIBS])
+         AC_DEFINE([HAVE_LIBVIRT],[1],[libvirt found at compile time.])
+        ],
+        [AC_MSG_WARN([libvirt not found, some core features will be disabled])])
+AM_CONDITIONAL([HAVE_LIBVIRT],[test "x$LIBVIRT_LIBS" != "x"])
+
+dnl libxml2 (highly recommended)
+PKG_CHECK_MODULES([LIBXML2], [libxml-2.0],
+        [AC_SUBST([LIBXML2_CFLAGS])
+         AC_SUBST([LIBXML2_LIBS])
+         AC_DEFINE([HAVE_LIBXML2],[1],[libxml2 found at compile time.])
+        ],
+        [AC_MSG_WARN([libxml2 not found, some core features will be disabled])])
+AM_CONDITIONAL([HAVE_LIBXML2],[test "x$LIBXML2_LIBS" != "x"])
 
-dnl hivex library (required)
+dnl hivex library (highly recommended)
 dnl This used to be a part of libguestfs, but was spun off into its
 dnl own separate upstream project in libguestfs 1.0.85.
-PKG_CHECK_MODULES([HIVEX], [hivex])
-AC_SUBST([HIVEX_CFLAGS])
-AC_SUBST([HIVEX_LIBS])
+PKG_CHECK_MODULES([HIVEX], [hivex],
+        [AC_SUBST([HIVEX_CFLAGS])
+         AC_SUBST([HIVEX_LIBS])
+         AC_DEFINE([HAVE_HIVEX],[1],[hivex library found at compile time.])
+        ],
+        [AC_MSG_WARN([hivex not found, some core features will be disabled])])
 
 dnl FUSE is optional to build the FUSE module.
 AC_ARG_ENABLE([fuse],
@@ -491,7 +512,6 @@ AM_CONDITIONAL([HAVE_FUSE],[test "x$enable_fuse" != "xno"])
 dnl Check for OCaml (optional, for OCaml bindings).
 OCAMLC=no
 OCAMLFIND=no
-OCAML_PKG_xml_light=no
 AC_ARG_ENABLE([ocaml],
         AS_HELP_STRING([--disable-ocaml], [Disable OCaml language bindings]),
         [],
@@ -503,14 +523,9 @@ AS_IF([test "x$enable_ocaml" != "xno"],
          OCAMLFIND=
          AC_PROG_OCAML
          AC_PROG_FINDLIB
-
-         dnl Optional xml-light for running the generator.
-         if test "x$OCAMLC" != "xno" && test "x$OCAMLFIND" != "xno"; then
-             AC_CHECK_OCAML_PKG([xml-light])
-         fi])
+        ])
 AM_CONDITIONAL([HAVE_OCAML],
                [test "x$OCAMLC" != "xno" && test "x$OCAMLFIND" != "xno"])
-AM_CONDITIONAL([HAVE_XML_LIGHT],[test "x$OCAML_PKG_xml_light" != "xno"])
 
 dnl Check for Perl (optional, for Perl bindings).
 PERL=no
@@ -776,11 +791,25 @@ AS_IF([test "x$enable_haskell" != "xno"],
 AM_CONDITIONAL([HAVE_HASKELL],
     [test "x$GHC" != "xno"])
 
-dnl Check for Perl modules needed by virt-df, inspector, etc.
+dnl PHP
+PHP=no
+AC_ARG_ENABLE([php],
+        AS_HELP_STRING([--disable-php], [Disable PHP language bindings]),
+        [],
+        [enable_php=yes])
+AS_IF([test "x$enable_php" != "xno"],
+        [
+        PHP=
+        AC_CHECK_PROG([PHP],[php],[php],[no])
+        AC_CHECK_PROG([PHPIZE],[phpize],[phpize],[no])
+        ])
+AM_CONDITIONAL([HAVE_PHP], [test "x$PHP" != "xno" && test "x$PHPIZE" != "xno"])
+
+dnl Check for Perl modules needed by Perl virt tools (virt-df, etc.)
 AS_IF([test "x$PERL" != "xno"],
         [
         missing_perl_modules=no
-        for pm in Pod::Usage Getopt::Long Sys::Virt Data::Dumper XML::Writer Locale::TextDomain Win::Hivex Win::Hivex::Regedit; do
+        for pm in Pod::Usage Getopt::Long Sys::Virt Data::Dumper Locale::TextDomain Win::Hivex Win::Hivex::Regedit String::ShellQuote; do
             AC_MSG_CHECKING([for $pm])
             if ! $PERL -M$pm -e1 >/dev/null 2>&1; then
                 AC_MSG_RESULT([no])
@@ -790,24 +819,13 @@ AS_IF([test "x$PERL" != "xno"],
             fi
         done
         if test "x$missing_perl_modules" = "xyes"; then
-            AC_MSG_WARN([some Perl modules required to compile virt-inspector and the other virt-* tools are missing])
+            AC_MSG_WARN([some Perl modules required to compile the Perl virt-* tools are missing])
         fi
         ])
 
-AM_CONDITIONAL([HAVE_INSPECTOR],
-    [test "x$PERL" != "xno" && test "x$missing_perl_modules" != "xyes"])
 AM_CONDITIONAL([HAVE_TOOLS],
     [test "x$PERL" != "xno" && test "x$missing_perl_modules" != "xyes"])
 
-dnl po4a for translating man pages and POD files (optional).
-AC_CHECK_PROG([PO4A],[po4a],[po4a],[no])
-AM_CONDITIONAL([HAVE_PO4A], [test "x$PO4A" != "xno"])
-
-dnl PHP
-AC_CHECK_PROG([PHP],[php],[php],[no])
-AC_CHECK_PROG([PHPIZE],[phpize],[phpize],[no])
-AM_CONDITIONAL([HAVE_PHP], [test "x$PHP" != "xno" && test "x$PHPIZE" != "xno"])
-
 dnl Library versioning.
 MAX_PROC_NR=`cat $srcdir/src/MAX_PROC_NR`
 AC_SUBST(MAX_PROC_NR)
@@ -822,6 +840,8 @@ AC_CONFIG_HEADERS([config.h])
 dnl http://www.mail-archive.com/automake@gnu.org/msg10204.html
 AC_CONFIG_FILES([appliance/update.sh],
                 [chmod +x appliance/update.sh])
+AC_CONFIG_FILES([podwrapper.sh],
+                [chmod +x podwrapper.sh])
 AC_CONFIG_FILES([Makefile
                  generator/Makefile
                  src/Makefile fish/Makefile po/Makefile.in examples/Makefile
@@ -833,8 +853,8 @@ AC_CONFIG_FILES([Makefile
                  test-tool/Makefile
                  ocaml/Makefile ocaml/examples/Makefile
                  perl/Makefile
-                 python/Makefile
-                 ruby/Makefile ruby/Rakefile
+                 python/Makefile python/examples/Makefile
+                 ruby/Makefile ruby/Rakefile ruby/examples/Makefile
                  java/Makefile
                  haskell/Makefile
                  inspector/Makefile
@@ -847,6 +867,9 @@ AC_CONFIG_FILES([Makefile
                  po-docs/ja/Makefile
                  php/Makefile
                  csharp/Makefile
+                 cat/Makefile
+                 df/Makefile
+                 rescue/Makefile
                  ocaml/META perl/Makefile.PL])
 AC_OUTPUT
 
@@ -875,8 +898,6 @@ echo -n "Haskell bindings .................... "
 if test "x$HAVE_HASKELL_TRUE" = "x"; then echo "yes"; else echo "no"; fi
 echo -n "PHP bindings ........................ "
 if test "x$HAVE_PHP_TRUE" = "x"; then echo "yes"; else echo "no"; fi
-echo -n "virt-inspector ...................... "
-if test "x$HAVE_INSPECTOR_TRUE" = "x"; then echo "yes"; else echo "no"; fi
 echo -n "virt-* tools ........................ "
 if test "x$HAVE_TOOLS_TRUE" = "x"; then echo "yes"; else echo "no"; fi
 echo "supermin appliance .................. $enable_supermin"