build: Add ./configure --disable-perl option.
[libguestfs.git] / configure.ac
index fb19f2d..439846d 100644 (file)
@@ -17,8 +17,8 @@
 
 # major/minor/release must be numbers
 m4_define([libguestfs_major],   [1])
 
 # major/minor/release must be numbers
 m4_define([libguestfs_major],   [1])
-m4_define([libguestfs_minor],   [5])
-m4_define([libguestfs_release], [23])
+m4_define([libguestfs_minor],   [7])
+m4_define([libguestfs_release], [2])
 # extra can be any string
 m4_define([libguestfs_extra],   [])
 
 # extra can be any string
 m4_define([libguestfs_extra],   [])
 
@@ -129,6 +129,9 @@ if test "$gl_gcc_warnings" = yes; then
   # gcc 4.5.0 20090517, and it provokes warnings in cat.c, dd.c, truncate.c
   gl_WARN_ADD([-Wno-logical-op])
 
   # gcc 4.5.0 20090517, and it provokes warnings in cat.c, dd.c, truncate.c
   gl_WARN_ADD([-Wno-logical-op])
 
+  # Work around warning in src/inspect.c.  This seems to be a bug in gcc 4.5.1.
+  gl_WARN_ADD([-Wno-strict-overflow])
+
   gl_WARN_ADD([-fdiagnostics-show-option])
 
   AC_SUBST([WARN_CFLAGS])
   gl_WARN_ADD([-fdiagnostics-show-option])
 
   AC_SUBST([WARN_CFLAGS])
@@ -206,6 +209,11 @@ AC_CHECK_PROG([CPIO],[cpio],[cpio],[no])
 test "x$CPIO" = "xno" &&
      AC_MSG_ERROR([cpio must be installed])
 
 test "x$CPIO" = "xno" &&
      AC_MSG_ERROR([cpio must be installed])
 
+dnl Check for gperf.
+AC_CHECK_PROG([GPERF],[gperf],[gperf],[no])
+test "x$GPERF" = "xno" &&
+     AC_MSG_ERROR([gperf must be installed])
+
 dnl Check for pod2man and pod2text.
 AC_CHECK_PROG([POD2MAN],[pod2man],[pod2man],[no])
 test "x$POD2MAN" = "xno" &&
 dnl Check for pod2man and pod2text.
 AC_CHECK_PROG([POD2MAN],[pod2man],[pod2man],[no])
 test "x$POD2MAN" = "xno" &&
@@ -225,7 +233,7 @@ 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.
 
 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"
+default_qemu="qemu-kvm kvm qemu-system-$host_cpu qemu"
 AC_ARG_WITH([qemu],
         [AS_HELP_STRING([--with-qemu],
           [set default QEMU binary @<:@default=[qemu-kvm] qemu-system-<host> qemu@:>@])],
 AC_ARG_WITH([qemu],
         [AS_HELP_STRING([--with-qemu],
           [set default QEMU binary @<:@default=[qemu-kvm] qemu-system-<host> qemu@:>@])],
@@ -381,7 +389,7 @@ if test "x$enable_appliance" = "xyes"; then
     AC_SUBST(MIRROR)
 fi
 
     AC_SUBST(MIRROR)
 fi
 
-dnl --with-repo to specify a Fedora repository.
+dnl --with-repo to specify a repository.
 AC_ARG_WITH([repo],
         [AS_HELP_STRING([--with-repo],
           [set name of Fedora repository @<:@default=fedora-13@:>@])],
 AC_ARG_WITH([repo],
         [AS_HELP_STRING([--with-repo],
           [set name of Fedora repository @<:@default=fedora-13@:>@])],
@@ -389,14 +397,14 @@ AC_ARG_WITH([repo],
         [with_repo=fedora-13])
 REPO="$with_repo"
 AC_SUBST(REPO)
         [with_repo=fedora-13])
 REPO="$with_repo"
 AC_SUBST(REPO)
-AC_DEFINE_UNQUOTED([REPO],["$REPO"],[Name of Fedora repository.])
+AC_DEFINE_UNQUOTED([REPO],["$REPO"],[Name of software repository.])
 
 dnl Build the supermin appliance?  Please see README file before
 dnl enabling this option.
 AC_ARG_ENABLE([supermin],
         [AS_HELP_STRING([--enable-supermin],
           [enable supermin appliance (see README) @<:@default=no@:>@])],
 
 dnl Build the supermin appliance?  Please see README file before
 dnl enabling this option.
 AC_ARG_ENABLE([supermin],
         [AS_HELP_STRING([--enable-supermin],
           [enable supermin appliance (see README) @<:@default=no@:>@])],
-        [],
+        [AC_DEFINE([ENABLE_SUPERMIN],[1],[Supermin appliance enabled.])],
         [enable_supermin=no])
 AM_CONDITIONAL([SUPERMIN],[test "x$enable_supermin" = "xyes"])
 
         [enable_supermin=no])
 AM_CONDITIONAL([SUPERMIN],[test "x$enable_supermin" = "xyes"])
 
@@ -470,54 +478,67 @@ AC_SUBST([HIVEX_CFLAGS])
 AC_SUBST([HIVEX_LIBS])
 
 dnl FUSE is optional to build the FUSE module.
 AC_SUBST([HIVEX_LIBS])
 
 dnl FUSE is optional to build the FUSE module.
-HAVE_FUSE=yes
-PKG_CHECK_MODULES([FUSE],[fuse],,[
-        HAVE_FUSE=no
-        AC_MSG_WARN([FUSE library and headers are missing, so optional FUSE module won't be built])])
-AM_CONDITIONAL([HAVE_FUSE],[test "x$HAVE_FUSE" = "xyes"])
+AC_ARG_ENABLE([fuse],
+        AS_HELP_STRING([--disable-fuse], [Disable FUSE (guestmount) support]),
+        [],
+        [enable_fuse=yes])
+AS_IF([test "x$enable_fuse" != "xno"],
+        [PKG_CHECK_MODULES([FUSE],[fuse],,[
+                enable_fuse=no
+                AC_MSG_WARN([FUSE library and headers are missing, so optional FUSE module won't be built])])])
+AM_CONDITIONAL([HAVE_FUSE],[test "x$enable_fuse" != "xno"])
 
 dnl Check for OCaml (optional, for OCaml bindings).
 
 dnl Check for OCaml (optional, for OCaml bindings).
-AC_PROG_OCAML
-AC_PROG_FINDLIB
-AM_CONDITIONAL([HAVE_OCAML],[test "x$OCAMLC" != "xno" && test "x$OCAMLFIND" != "xno"])
-
-dnl Optional xml-light for running the generator.
+OCAMLC=no
+OCAMLFIND=no
 OCAML_PKG_xml_light=no
 OCAML_PKG_xml_light=no
-if test "x$OCAMLC" != "xno" && test "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@:>@])],
+AC_ARG_ENABLE([ocaml],
+        AS_HELP_STRING([--disable-ocaml], [Disable OCaml language bindings]),
         [],
         [],
-        [enable_ocaml_viewer=no])
-AM_CONDITIONAL([BUILD_OCAML_VIEWER],[test "x$enable_ocaml_viewer" = "xyes"])
+        [enable_ocaml=yes])
+AS_IF([test "x$enable_ocaml" != "xno"],
+        [dnl OCAMLC and OCAMLFIND have to be unset first, otherwise
+         dnl AC_CHECK_TOOL (inside AC_PROG_OCAML) will not look.
+         OCAMLC=
+         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).
 
 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])
-
-dnl Check for Perl modules that must be present to compile and
-dnl test the Perl bindings.
-missing_perl_modules=no
-for pm in Test::More ExtUtils::MakeMaker; 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 or test the Perl bindings are missing])
-fi
-
+PERL=no
+AC_ARG_ENABLE([perl],
+        AS_HELP_STRING([--disable-perl], [Disable Perl language bindings]),
+        [],
+        [enable_perl=yes])
+AS_IF([test "x$enable_perl" != "xno"],
+        [
+        PERL=
+        AC_CHECK_PROG([PERL],[perl],[perl],[no])
+
+        dnl Check for Perl modules that must be present to compile and
+        dnl test the Perl bindings.
+        missing_perl_modules=no
+        for pm in Test::More ExtUtils::MakeMaker; 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 or test the Perl bindings are missing])
+        fi
+        ])
 AM_CONDITIONAL([HAVE_PERL],
     [test "x$PERL" != "xno" && test "x$missing_perl_modules" != "xyes"])
 
 AM_CONDITIONAL([HAVE_PERL],
     [test "x$PERL" != "xno" && test "x$missing_perl_modules" != "xyes"])
 
@@ -795,6 +816,7 @@ AC_CONFIG_FILES([Makefile
                  po-docs/Makefile
                  po-docs/ja/Makefile
                  php/Makefile
                  po-docs/Makefile
                  po-docs/ja/Makefile
                  php/Makefile
+                 csharp/Makefile
                  ocaml/META perl/Makefile.PL])
 AC_OUTPUT
 
                  ocaml/META perl/Makefile.PL])
 AC_OUTPUT
 
@@ -828,7 +850,7 @@ 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"
 echo -n "virt-* tools ........................ "
 if test "x$HAVE_TOOLS_TRUE" = "x"; then echo "yes"; else echo "no"; fi
 echo "supermin appliance .................. $enable_supermin"
-echo "FUSE filesystem ..................... $HAVE_FUSE"
+echo "FUSE filesystem ..................... $enable_fuse"
 echo
 echo "If any optional component is configured 'no' when you expected 'yes'"
 echo "then you should check the preceeding messages."
 echo
 echo "If any optional component is configured 'no' when you expected 'yes'"
 echo "then you should check the preceeding messages."