# libguestfs
-# Copyright (C) 2009-2010 Red Hat Inc.
+# Copyright (C) 2009-2011 Red Hat Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# major/minor/release must be numbers
m4_define([libguestfs_major], [1])
-m4_define([libguestfs_minor], [7])
-m4_define([libguestfs_release], [19])
+m4_define([libguestfs_minor], [10])
+m4_define([libguestfs_release], [7])
# extra can be any string
m4_define([libguestfs_extra], [])
***])
])
-dnl Die if the user tries to configure as root, see:
-dnl https://www.redhat.com/archives/libguestfs/2010-April/msg00098.html
-AC_MSG_CHECKING([if you are trying to configure as root])
-AS_IF([test "`id -u`" = 0 ],[
- AC_MSG_RESULT([yes])
- AC_MSG_FAILURE([Don't run './configure' or 'make' as root.])
- ],[
- AC_MSG_RESULT([no])
- ])
-
dnl Early gnulib initialization.
gl_EARLY
gl_INIT
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])
test "x$FEBOOTSTRAP" = "xno" &&
AC_MSG_ERROR([febootstrap must be installed])
dnl febootstrap 2.x did not support the --version parameter
- $FEBOOTSTRAP --version >/dev/null 2>&1 ||
+ $FEBOOTSTRAP --version >&AS_MESSAGE_LOG_FD 2>&1 ||
AC_MSG_ERROR([febootstrap >= 3.0 must be installed, your version is too old])
- dnl Build from local package files, used when building with no network
- dnl access, ie. under Koji.
- AC_MSG_CHECKING([if we should build the appliance from local packages])
- AC_ARG_WITH([local-package-directory],
- [AS_HELP_STRING([--with-local-package-directory],
- [build from local packages in dir @<:@default=no@:>@])],
- [local_package_directory=$withval],
- [local_package_directory=no])
- AC_MSG_RESULT([$local_package_directory])
- PACKAGE_DIRECTORY=
- test "x$local_package_directory" != "xno" &&
- PACKAGE_DIRECTORY="$local_package_directory"
- AC_SUBST([PACKAGE_DIRECTORY])
+ dnl Pass a febootstrap --yum-config option.
+ AC_MSG_CHECKING([if user requested febootstrap --yum-config option])
+ AC_ARG_WITH([febootstrap-yum-config],
+ [AS_HELP_STRING([--with-febootstrap-yum-config=FILE],
+ [pass febootstrap --yum-config option @<:@default=no@:>@])],
+ [FEBOOTSTRAP_YUM_CONFIG="$withval"],
+ [FEBOOTSTRAP_YUM_CONFIG=no])
+ AC_MSG_RESULT([$FEBOOTSTRAP_YUM_CONFIG])
+ AC_SUBST([FEBOOTSTRAP_YUM_CONFIG])
dnl Which distro?
dnl
dnl This used to be Very Important but is now just used to select
dnl which packages to install in the appliance, since the package
- dnl names vary slightly across distros. (See appliance/packagelist.in)
+ dnl names vary slightly across distros. (See
+ dnl appliance/packagelist.in and appliance/excludelist.in)
AC_MSG_CHECKING([which Linux distro for package names])
DISTRO=REDHAT
if test -f /etc/debian_version; then
DISTRO=DEBIAN
- if grep -q 'DISTRIB_ID=Ubuntu' /etc/lsb-release 2>/dev/null; then
+ if grep -q 'DISTRIB_ID=Ubuntu' /etc/lsb-release 2>&AS_MESSAGE_LOG_FD; then
DISTRO=UBUNTU
fi
fi
+ if test -f /etc/arch-release; then
+ DISTRO=ARCHLINUX
+ fi
AC_MSG_RESULT([$DISTRO])
AC_SUBST([DISTRO])
fi
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 >&AS_MESSAGE_LOG_FD 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 >&AS_MESSAGE_LOG_FD 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])
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])
+AC_CHECK_PROGS([DB_DUMP],
+ [db_dump db4_dump db4.8_dump db4.7_dump db4.6_dump],[no])
+AC_CHECK_PROGS([DB_LOAD],
+ [db_load db4_load db4.8_load db4.7_load db4.6_load],[no])
if test "x$DB_DUMP" != "xno"; then
AC_DEFINE_UNQUOTED([DB_DUMP],["$DB_DUMP"],[Name of db_dump program.])
fi
dnl Check that the chosen qemu has virtio-serial support.
if test "x$vmchannel_test" != "xno"; then
+ AC_MSG_CHECKING([that $QEMU -help works])
+ if $QEMU -help >&AS_MESSAGE_LOG_FD 2>&1; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ AC_MSG_FAILURE(
+[$QEMU -help: command failed.
+
+This could be a very old version of qemu, or qemu might not be
+working.
+])
+ fi
+
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(
dnl For i18n.
AM_GNU_GETTEXT([external])
-AM_GNU_GETTEXT_VERSION([0.17])
dnl libmagic (highly recommended)
AC_CHECK_LIB([magic],[magic_file],
[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.
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],
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
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
+ if ! perl -M$pm -e1 >&AS_MESSAGE_LOG_FD 2>&1; then
AC_MSG_RESULT([no])
missing_perl_modules=yes
else
PYTHON_PREFIX=
PYTHON_VERSION=
PYTHON_INCLUDEDIR=
-PYTHON_SITE_PACKAGES=
+PYTHON_INSTALLDIR=
AC_ARG_ENABLE([python],
AS_HELP_STRING([--disable-python], [Disable Python language bindings]),
AC_CHECK_PROG([PYTHON],[python],[python],[no])
if test "x$PYTHON" != "xno"; then
+ AC_MSG_CHECKING([Python prefix])
PYTHON_PREFIX=`$PYTHON -c "import sys; print sys.prefix"`
+ AC_MSG_RESULT([$PYTHON_PREFIX])
+
+ AC_MSG_CHECKING([Python version])
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 \
AC_MSG_WARN([Python include directory not found])
fi
- 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_SITE_PACKAGES=$d
- break
+ AC_ARG_WITH([python-installdir],
+ [AS_HELP_STRING([--with-python-installdir],
+ [directory to install python modules @<:@default=check@:>@])],
+ [PYTHON_INSTALLDIR="$withval"
+ AC_MSG_NOTICE([Python install dir $PYTHON_INSTALLDIR])],
+ [PYTHON_INSTALLDIR=check])
+
+ 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])
fi
- AC_MSG_RESULT([not found])
- done
- if test "x$PYTHON_SITE_PACKAGES" = "x"; then
- AC_MSG_WARN([Python site-packages directory not found])
fi
old_LIBS="$LIBS"
AC_SUBST(PYTHON_PREFIX)
AC_SUBST(PYTHON_VERSION)
AC_SUBST(PYTHON_INCLUDEDIR)
- AC_SUBST(PYTHON_SITE_PACKAGES)
+ AC_SUBST(PYTHON_INSTALLDIR)
])
AM_CONDITIONAL([HAVE_PYTHON],
- [test "x$PYTHON_INCLUDEDIR" != "x" && test "x$PYTHON_SITE_PACKAGES" != "x"])
+ [test "x$PYTHON" != "xno" && test "x$PYTHON_INCLUDEDIR" != "x" && test "x$PYTHON_INSTALLDIR" != "x"])
dnl Check for Ruby and rake (optional, for Ruby bindings).
AC_ARG_ENABLE([ruby],
missing_perl_modules=no
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
+ if ! $PERL -M$pm -e1 >&AS_MESSAGE_LOG_FD 2>&1; then
AC_MSG_RESULT([no])
missing_perl_modules=yes
else
dnl Replace libtool with a wrapper that clobbers dependency_libs in *.la files
dnl http://lists.fedoraproject.org/pipermail/devel/2010-November/146343.html
-LIBTOOL='$(SHELL) $(top_srcdir)/libtool-kill-dependency_libs.sh $(top_builddir)/libtool'
+LIBTOOL='bash $(top_srcdir)/libtool-kill-dependency_libs.sh $(top_builddir)/libtool'
AC_SUBST([LIBTOOL])
dnl Run in subdirs.
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
- python/Makefile python/examples/Makefile
- ruby/Makefile ruby/Rakefile ruby/examples/Makefile
- java/Makefile
+ cat/Makefile
+ caution/Makefile
+ csharp/Makefile
+ debian/changelog
+ df/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
- 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.
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_TRUE" = "x" && test "x$HAVE_OCAML_PCRE_TRUE" = "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'"