#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
# The major, minor, and release fields MUST be numbers. Packagers can
# add extra information using --with-extra="..." which may be any
# freeform string.
m4_define([libguestfs_major], [1])
-m4_define([libguestfs_minor], [13])
-m4_define([libguestfs_release], [23])
+m4_define([libguestfs_minor], [15])
+m4_define([libguestfs_release], [13])
AC_INIT([libguestfs],libguestfs_major.libguestfs_minor.libguestfs_release)
AC_CONFIG_AUX_DIR([build-aux])
# failures (seen on Ubuntu).
nw="$nw -Wmissing-noreturn" # Don't warn about missed noreturn funcs
# (seen on Ubuntu).
+ nw="$nw -Wsuggest-attribute=pure" # Don't suggest pure functions.
+ nw="$nw -Wsuggest-attribute=const" # Don't suggest const functions.
+ nw="$nw -Wunsuffixed-float-constants" # Don't care about these.
gl_MANYWARN_ALL_GCC([ws])
gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw])
AC_SEARCH_LIBS([xdrmem_create],[rpc xdr nsl])
])
-dnl Check for Augeas (now optional).
-AC_CHECK_LIB([augeas],[aug_match],[
- have_augeas=yes
- AUGEAS_LIB="-laugeas"
-
- old_LIBS="$LIBS"
- LIBS="$LIBS $AUGEAS_LIB"
- dnl Check for functions not available in earlier versions of Augeas.
- AC_CHECK_FUNCS([aug_load aug_defvar aug_defnode])
- LIBS="$old_LIBS"
-
- ],[have_augeas=no])
-if test "x$have_augeas" = "xyes"; then
- AC_DEFINE([HAVE_AUGEAS],[1],[Define to 1 if you have Augeas])
-fi
-AC_SUBST([AUGEAS_LIB])
+dnl Check for Augeas (optional).
+PKG_CHECK_MODULES([AUGEAS], [augeas],
+ [AC_SUBST([AUGEAS_CFLAGS])
+ AC_SUBST([AUGEAS_LIBS])
+ AC_DEFINE([HAVE_AUGEAS],[1],[Define to 1 if you have Augeas])
+
+ old_LIBS="$LIBS"
+ LIBS="$LIBS $AUGEAS_LIBS"
+ dnl Check for functions not available in earlier versions of Augeas.
+ AC_CHECK_FUNCS([aug_load aug_defvar aug_defnode])
+ LIBS="$old_LIBS"
+ ],
+ [AC_MSG_WARN([augeas not found, some core features will be disabled])])
dnl Check for libselinux (optional).
AC_CHECK_HEADERS([selinux/selinux.h])
])
fi
+ dnl qemu 0.15 was released with broken support for '-machine',
+ dnl requiring you to add the machine type: '-machine pc,[...]'.
+ dnl The problem is that 'pc' is only applicable for PC-like
+ dnl hardware, so we cannot do this as a general solution. Since
+ dnl qemu 0.15, this problem has been fixed so now the default
+ dnl machine type is chosen (qemu commit 2645c6dcaf6ea2a51a).
+ dnl
+ dnl We need to work out if this qemu is the broken version, so we
+ dnl can add 'pc' just for this broken version.
+ dnl
+ dnl Note that old qemu didn't support the '-machine' option at all.
+ dnl
+ dnl We use the -kernel option for testing this, because this option
+ dnl is processed very late, after qemu has set up the machine.
+ AC_MSG_CHECKING([for broken '-machine accel=tcg' option in $QEMU])
+ LC_ALL=C $QEMU -nographic -machine accel=tcg -kernel /NO_SUCH_FILE \
+ > config1.tmp 2>&1
+ LC_ALL=C $QEMU -nographic -machine pc,accel=tcg -kernel /NO_SUCH_FILE \
+ > config2.tmp 2>&1
+ if cmp -s config1.tmp config2.tmp; then
+ AC_MSG_RESULT([no])
+ else
+ AC_MSG_RESULT([yes])
+ AC_DEFINE([QEMU_MACHINE_TYPE_IS_BROKEN],[1],[qemu -machine accel=tcg option is broken (in qemu 0.15 only)])
+ fi
+ rm config1.tmp config2.tmp
+
+ dnl See if the '-machine [pc,]accel=tcg' option is required in
+ dnl order to run the virtio-serial test below. This happens when
+ dnl we run qemu-kvm inside a VM without forcing TCG:
+ dnl
+ dnl Could not access KVM kernel module: No such file or directory
+ dnl failed to initialize KVM: No such file or directory
+ dnl No accelerator found!
+ AC_MSG_CHECKING([if -machine @<:@pc,@:>@accel=tcg option is required to test virtio-serial feature])
+ if $QEMU -nographic -device \? >/dev/null 2>&1; then
+ :
+ elif $QEMU -machine accel=tcg -nographic -device \? >/dev/null 2>&1; then
+ QEMU_EXTRA_OPTIONS_FOR_TEST="-machine accel=tcg"
+ elif $QEMU -machine pc,accel=tcg -nographic -device \? >/dev/null 2>&1; then
+ QEMU_EXTRA_OPTIONS_FOR_TEST="-machine pc,accel=tcg"
+ # else nothing ... it'll fail below.
+ fi
+ AC_MSG_RESULT([$QEMU_EXTRA_OPTIONS_FOR_TEST])
+
AC_MSG_CHECKING([for virtio-serial support in $QEMU])
- if $QEMU -nographic -device \? 2>&1 | grep -sq virtio-serial; then
+ if $QEMU $QEMU_EXTRA_OPTIONS_FOR_TEST -nographic -device \? 2>&1 | grep -sq virtio-serial; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
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"])
AM_CONDITIONAL([HAVE_OCAMLDOC],
[test "x$OCAMLDOC" != "xno"])
AC_MSG_RESULT([$PYTHON_PREFIX])
AC_MSG_CHECKING([Python version])
- PYTHON_VERSION=`$PYTHON -c "import sys; print (sys.version[[0:3]])"`
+ PYTHON_VERSION_MAJOR=`$PYTHON -c "import sys; print (sys.version_info@<:@0@:>@)"`
+ PYTHON_VERSION_MINOR=`$PYTHON -c "import sys; print (sys.version_info@<:@1@:>@)"`
+ PYTHON_VERSION="$PYTHON_VERSION_MAJOR.$PYTHON_VERSION_MINOR"
AC_MSG_RESULT([$PYTHON_VERSION])
AC_MSG_CHECKING([for Python include path])
AC_MSG_RESULT([$PYTHON_INSTALLDIR])
fi
+ dnl Look for some optional symbols in libpython.
old_LIBS="$LIBS"
- LIBS="$LIBS -lpython$PYTHON_VERSION"
- AC_CHECK_FUNCS([PyCapsule_New])
+
+ PYTHON_BLDLIBRARY=`$PYTHON -c "import distutils.sysconfig; \
+ print (distutils.sysconfig.get_config_var('BLDLIBRARY'))"`
+ AC_CHECK_LIB([c],[PyCapsule_New],
+ [AC_DEFINE([HAVE_PYCAPSULE_NEW],1,
+ [Found PyCapsule_New in libpython])],
+ [],[$PYTHON_BLDLIBRARY])
+ AC_CHECK_LIB([c],[PyString_AsString],
+ [AC_DEFINE([HAVE_PYSTRING_ASSTRING],1,
+ [Found PyString_AsString in libpython])],
+ [],[$PYTHON_BLDLIBRARY])
+
LIBS="$old_LIBS"
fi
[enable_ruby=yes])
AS_IF([test "x$enable_ruby" != "xno"],
[
- AC_CHECK_LIB([ruby],[ruby_init],[HAVE_LIBRUBY=1],[HAVE_LIBRUBY=0])
+ AC_CHECK_PROG([RUBY],[ruby],[ruby],[no])
AC_CHECK_PROG([RAKE],[rake],[rake],[no])
+ AC_CHECK_LIB([ruby],[ruby_init],[HAVE_LIBRUBY=1],[HAVE_LIBRUBY=0])
+ AC_SUBST([RAKE])
])
AM_CONDITIONAL([HAVE_RUBY],
[test "x$RAKE" != "xno" && test -n "$HAVE_LIBRUBY"])
AS_HELP_STRING([--disable-erlang], [Disable Erlang language bindings]),
[],
[enable_erlang=yes])
-AS_IF([test "x$enable_erlang" != "xno"],
- [
+# NB: Don't use AS_IF here: it doesn't work.
+if test "x$enable_erlang" != "xno"; then
ERLANG=
AC_ERLANG_PATH_ERLC([no])
[AC_MSG_FAILURE([Erlang erl_interface library not installed. Use --disable-erlang to disable.])])
AC_ERLANG_SUBST_LIB_DIR
fi
- ])
+fi
AM_CONDITIONAL([HAVE_ERLANG], [test "x$ERLANG" != "xno" && test "x$ERLC" != "xno"])
dnl Check for Perl modules needed by Perl virt tools (virt-df, etc.)
AC_CONFIG_FILES([Makefile
align/Makefile
appliance/Makefile
- capitests/Makefile
cat/Makefile
- caution/Makefile
clone/Makefile
csharp/Makefile
daemon/Makefile
gnulib/lib/Makefile
gnulib/tests/Makefile
haskell/Makefile
- images/Makefile
inspector/Makefile
java/Makefile
java/examples/Makefile
po/Makefile.in
python/Makefile
python/examples/Makefile
- regressions/Makefile
rescue/Makefile
resize/Makefile
ruby/Makefile
sparsify/Makefile
src/Makefile
test-tool/Makefile
+ tests/c-api/Makefile
+ tests/data/Makefile
+ tests/extra/Makefile
+ tests/guests/Makefile
+ tests/luks/Makefile
+ tests/lvm/Makefile
+ tests/md/Makefile
+ tests/protocol/Makefile
+ tests/qemu/Makefile
+ tests/regressions/Makefile
tools/Makefile])
AC_OUTPUT
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
+if test "x$HAVE_OCAML_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'"