Version 1.11.5.
[libguestfs.git] / configure.ac
index 576f399..a746256 100644 (file)
@@ -17,8 +17,8 @@
 
 # major/minor/release must be numbers
 m4_define([libguestfs_major],   [1])
-m4_define([libguestfs_minor],   [9])
-m4_define([libguestfs_release], [6])
+m4_define([libguestfs_minor],   [11])
+m4_define([libguestfs_release], [5])
 # extra can be any string
 m4_define([libguestfs_extra],   [])
 
@@ -158,7 +158,7 @@ dnl Headers.
 AC_CHECK_HEADERS([errno.h sys/types.h sys/un.h sys/wait.h sys/socket.h endian.h byteswap.h])
 
 dnl Functions.
-AC_CHECK_FUNCS([posix_fallocate])
+AC_CHECK_FUNCS([futimens posix_fallocate])
 
 dnl Build the daemon?
 AC_MSG_CHECKING([if we should build the daemon])
@@ -249,10 +249,31 @@ 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],
+dnl Check if pod2man, pod2text take --stderr and -u options (not in RHEL 5).
+AC_MSG_CHECKING([if pod2man takes --stderr option])
+if "$POD2MAN" --stderr >/dev/null 2>&1; then
+    AC_MSG_RESULT([yes])
+    POD2_STDERR_OPTION="--stderr"
+else
+    AC_MSG_RESULT([no])
+    POD2_STDERR_OPTION=""
+fi
+AC_SUBST([POD2_STDERR_OPTION])
+
+AC_MSG_CHECKING([if pod2man takes -u option])
+if "$POD2MAN" -u >/dev/null 2>&1; then
+    AC_MSG_RESULT([yes])
+    POD2_UTF8_OPTION="-u"
+else
+    AC_MSG_RESULT([no])
+    POD2_UTF8_OPTION=""
+fi
+AC_SUBST([POD2_UTF8_OPTION])
+
+dnl Check for genisoimage.
+AC_PATH_PROGS([GENISOIMAGE],[genisoimage],[no],
         [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin])
-test "x$MKISOFS" = "xno" && AC_MSG_ERROR([mkisofs must be installed])
+test "x$GENISOIMAGE" = "xno" && AC_MSG_ERROR([genisoimage must be installed])
 
 dnl Check for optional xmllint.
 AC_CHECK_PROG([XMLLINT],[xmllint],[xmllint],[no])
@@ -292,7 +313,6 @@ if test "x$vmchannel_test" != "xno"; then
     AC_MSG_CHECKING([for virtio-serial support in $QEMU])
     if $QEMU -nographic -device \? 2>&1 | grep -sq virtio-serial; then
         AC_MSG_RESULT([yes])
-        vmchannel_guestfwd=guestfwd
     else
         AC_MSG_RESULT([no])
         AC_MSG_FAILURE(
@@ -411,6 +431,15 @@ PKG_CHECK_MODULES([LIBXML2], [libxml-2.0],
         [AC_MSG_WARN([libxml2 not found, some core features will be disabled])])
 AM_CONDITIONAL([HAVE_LIBXML2],[test "x$LIBXML2_LIBS" != "x"])
 
+dnl libconfig (highly recommended)
+PKG_CHECK_MODULES([LIBCONFIG], [libconfig],
+        [AC_SUBST([LIBCONFIG_CFLAGS])
+         AC_SUBST([LIBCONFIG_LIBS])
+         AC_DEFINE([HAVE_LIBCONFIG],[1],[libconfig found at compile time.])
+        ],
+        [AC_MSG_WARN([libconfig not found, some features will be disabled])])
+AM_CONDITIONAL([HAVE_LIBCONFIG],[test "x$LIBCONFIG_LIBS" != "x"])
+
 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.
@@ -420,6 +449,7 @@ PKG_CHECK_MODULES([HIVEX], [hivex],
          AC_DEFINE([HAVE_HIVEX],[1],[hivex library found at compile time.])
         ],
         [AC_MSG_WARN([hivex not found, some core features will be disabled])])
+AM_CONDITIONAL([HAVE_HIVEX],[test "x$HIVEX_LIBS" != "x"])
 
 dnl FUSE is optional to build the FUSE module.
 AC_ARG_ENABLE([fuse],
@@ -446,9 +476,14 @@ AS_IF([test "x$enable_ocaml" != "xno"],
          OCAMLFIND=
          AC_PROG_OCAML
          AC_PROG_FINDLIB
+
+         AS_IF([test "x$OCAMLC" != "xno" && test "x$OCAMLFIND" != "xno"],
+               [AC_CHECK_OCAML_PKG([pcre])])
         ])
 AM_CONDITIONAL([HAVE_OCAML],
                [test "x$OCAMLC" != "xno" && test "x$OCAMLFIND" != "xno"])
+AM_CONDITIONAL([HAVE_OCAML_PCRE],
+               [test "x$OCAMLC" != "xno" && test "x$OCAMLFIND" != "xno" && test "x$OCAML_PKG_pcre" != "xno"])
 
 dnl Check for Perl (optional, for Perl bindings).
 PERL=no
@@ -503,22 +538,13 @@ AS_IF([test "x$enable_python" != "xno"],
             PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[[0:3]]"`
            AC_MSG_RESULT([$PYTHON_VERSION])
 
-            for d in \
-                $PYTHON_PREFIX/include/python$PYTHON_VERSION \
-                /usr/include/python$PYTHON_VERSION \
-                /usr/local/include/python$PYTHON_VERSION
-            do
-                AC_MSG_CHECKING([Python.h in $d])
-                if test -r "$d/Python.h"; then
-                    AC_MSG_RESULT([found])
-                    PYTHON_INCLUDEDIR=$d
-                    break
-                fi
-                AC_MSG_RESULT([not found])
-            done
-            if test "x$PYTHON_INCLUDEDIR" = "x"; then
-                AC_MSG_WARN([Python include directory not found])
+            AC_MSG_CHECKING([for Python include path])
+            if test -z "$PYTHON_INCLUDEDIR"; then
+                python_path=`$PYTHON -c "import distutils.sysconfig; \
+                                         print (distutils.sysconfig.get_python_inc ());"`
+                PYTHON_INCLUDEDIR=$python_path
             fi
+            AC_MSG_RESULT([$PYTHON_INCLUDEDIR])
 
             AC_ARG_WITH([python-installdir],
                         [AS_HELP_STRING([--with-python-installdir],
@@ -529,24 +555,12 @@ AS_IF([test "x$enable_python" != "xno"],
 
            if test "x$PYTHON_INSTALLDIR" = "xcheck"; then
                PYTHON_INSTALLDIR=
-                for d in \
-                    $PYTHON_PREFIX/lib64/python$PYTHON_VERSION/site-packages \
-                    $PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages \
-                    /usr/lib64/python$PYTHON_VERSION/site-packages \
-                    /usr/lib/python$PYTHON_VERSION/site-packages \
-                    /usr/local/lib/python$PYTHON_VERSION/site-packages
-                do
-                    AC_MSG_CHECKING([for $d])
-                    if test -d "$d"; then
-                        AC_MSG_RESULT([found])
-                        PYTHON_INSTALLDIR=$d
-                        break
-                    fi
-                    AC_MSG_RESULT([not found])
-                done
-                if test "x$PYTHON_INSTALLDIR" = "x"; then
-                    AC_MSG_WARN([Python site-packages directory not found])
+                AC_MSG_CHECKING([for Python site-packages path])
+                if test -z "$PYTHON_INSTALLDIR"; then
+                    PYTHON_INSTALLDIR=`$PYTHON -c "import distutils.sysconfig; \
+                                                   print (distutils.sysconfig.get_python_lib(0,0));"`
                 fi
+                AC_MSG_RESULT([$PYTHON_INSTALLDIR])
             fi
 
             old_LIBS="$LIBS"
@@ -785,34 +799,46 @@ dnl http://www.mail-archive.com/automake@gnu.org/msg10204.html
 AC_CONFIG_FILES([podwrapper.sh],
                 [chmod +x podwrapper.sh])
 AC_CONFIG_FILES([Makefile
-                 generator/Makefile
-                 src/Makefile fish/Makefile po/Makefile.in examples/Makefile
                  appliance/Makefile
-                 images/Makefile
                  capitests/Makefile
-                 regressions/Makefile
-                 test-tool/Makefile
-                 ocaml/Makefile ocaml/examples/Makefile
-                 perl/Makefile perl/examples/Makefile
-                 python/Makefile python/examples/Makefile
-                 ruby/Makefile ruby/Rakefile ruby/examples/Makefile
-                 java/Makefile
+                 cat/Makefile
+                 csharp/Makefile
+                 debian/changelog
+                 df/Makefile
+                 edit/Makefile
+                 examples/Makefile
+                 fish/Makefile
+                 fuse/Makefile
+                 generator/Makefile
+                 gnulib/lib/Makefile
+                 gnulib/tests/Makefile
                  haskell/Makefile
+                 images/Makefile
                  inspector/Makefile
-                 tools/Makefile
+                 java/Makefile
                  libguestfs.pc
-                 gnulib/lib/Makefile
-                 gnulib/tests/Makefile
-                 fuse/Makefile
+                 ocaml/META
+                 ocaml/Makefile
+                 ocaml/examples/Makefile
+                 perl/Makefile
+                 perl/Makefile.PL
+                 perl/examples/Makefile
+                 php/Makefile
                  po-docs/Makefile
                  po-docs/ja/Makefile
-                 php/Makefile
-                 csharp/Makefile
-                 cat/Makefile
-                 df/Makefile
+                 po-docs/uk/Makefile
+                 po/Makefile.in
+                 python/Makefile
+                 python/examples/Makefile
+                 regressions/Makefile
                  rescue/Makefile
-                 debian/changelog
-                 ocaml/META perl/Makefile.PL])
+                 resize/Makefile
+                 ruby/Makefile
+                 ruby/Rakefile
+                 ruby/examples/Makefile
+                 src/Makefile
+                 test-tool/Makefile
+                 tools/Makefile])
 AC_OUTPUT
 
 dnl Produce summary.
@@ -840,8 +866,11 @@ 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-* tools ........................ "
+echo    "guestfish and C virt tools .......... yes"
+echo -n "Perl virt tools ..................... "
 if test "x$HAVE_TOOLS_TRUE" = "x"; then echo "yes"; else echo "no"; fi
+echo -n "virt-resize ......................... "
+if test "x$HAVE_OCAML" = "x" && test "x$HAVE_OCAML_PCRE" = "x"; then echo "yes"; else echo "no"; fi
 echo "FUSE filesystem ..................... $enable_fuse"
 echo
 echo "If any optional component is configured 'no' when you expected 'yes'"