X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=configure.ac;h=312a8be7a00b797242e552c5de9d050ec02026e0;hp=eea5952beed8cba71b9cabe0938cd7ad9b28a96b;hb=639232f2b0e2b6d537c8947ee51837d5509b1339;hpb=60d5a50f4d3d9e2c2f5a7d42a6859de709bda3f6 diff --git a/configure.ac b/configure.ac index eea5952..312a8be 100644 --- a/configure.ac +++ b/configure.ac @@ -15,12 +15,12 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# major/minor/release must be numbers +# 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], [2]) -# extra can be any string -m4_define([libguestfs_extra], []) +m4_define([libguestfs_release], [24]) AC_INIT([libguestfs],libguestfs_major.libguestfs_minor.libguestfs_release) AC_CONFIG_AUX_DIR([build-aux]) @@ -31,12 +31,6 @@ AM_SILENT_RULES([yes]) # make --enable-silent-rules the default. AC_CONFIG_MACRO_DIR([m4]) -dnl Split up the version string. -AC_DEFINE([PACKAGE_VERSION_MAJOR],[libguestfs_major],[Major version number]) -AC_DEFINE([PACKAGE_VERSION_MINOR],[libguestfs_minor],[Minor version number]) -AC_DEFINE([PACKAGE_VERSION_RELEASE],[libguestfs_release],[Release number]) -AC_DEFINE([PACKAGE_VERSION_EXTRA],["libguestfs_extra"],[Extra version string]) - dnl Stable or unstable version? AC_MSG_CHECKING([if this is a stable or unstable branch of libguestfs]) AS_IF([test "$((libguestfs_minor % 2))" -eq 0 ],[ @@ -53,12 +47,30 @@ please see the section "LIBGUESTFS VERSION NUMBERS" in guestfs(3). ***]) ]) +dnl Extra string, a freeform string defined by packagers. +AC_ARG_WITH([extra], + [AS_HELP_STRING([--with-extra], + [extra version string (for use by packagers)])], + [libguestfs_extra="$withval"], + [libguestfs_extra=] +) + +AC_MSG_NOTICE([libguestfs version libguestfs_major.libguestfs_minor.libguestfs_release$libguestfs_extra]) + +dnl Split up the version string. +AC_DEFINE([PACKAGE_VERSION_MAJOR],[libguestfs_major],[Major version number]) +AC_DEFINE([PACKAGE_VERSION_MINOR],[libguestfs_minor],[Minor version number]) +AC_DEFINE([PACKAGE_VERSION_RELEASE],[libguestfs_release],[Release number]) +AC_DEFINE_UNQUOTED([PACKAGE_VERSION_EXTRA],["$libguestfs_extra"],[Extra version string]) + dnl Early gnulib initialization. gl_EARLY gl_INIT AC_PROG_LIBTOOL +AC_PROG_SED + dnl Check for basic C environment. AC_PROG_CC_STDC AC_PROG_INSTALL @@ -334,6 +346,11 @@ if test "x$have_libselinux" = "xyes"; then fi AC_SUBST([SELINUX_LIB]) +dnl Check for systemtap/DTrace userspace probes (optional). +dnl http://sourceware.org/systemtap/wiki/AddingUserSpaceProbingToApps +AC_CHECK_HEADERS([sys/sdt.h]) +dnl AC_CHECK_PROG([DTRACE],[dtrace],[dtrace],[no]) + dnl Check for cpio which isn't in the default Pardus install amazingly. AC_CHECK_PROG([CPIO],[cpio],[cpio],[no]) test "x$CPIO" = "xno" && @@ -429,8 +446,53 @@ working. ]) 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]) @@ -647,11 +709,11 @@ AS_IF([test "x$enable_python" != "xno"], if test "x$PYTHON" != "xno"; then AC_MSG_CHECKING([Python prefix]) - PYTHON_PREFIX=`$PYTHON -c "import sys; print sys.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]]"` + PYTHON_VERSION=`$PYTHON -c "import sys; print (sys.version[[0:3]])"` AC_MSG_RESULT([$PYTHON_VERSION]) AC_MSG_CHECKING([for Python include path]) @@ -874,6 +936,25 @@ AS_IF([test "x$enable_php" != "xno"], ]) AM_CONDITIONAL([HAVE_PHP], [test "x$PHP" != "xno" && test "x$PHPIZE" != "xno"]) +dnl Erlang +ERLANG=no +AC_ARG_ENABLE([erlang], + AS_HELP_STRING([--disable-erlang], [Disable Erlang language bindings]), + [], + [enable_erlang=yes]) +# NB: Don't use AS_IF here: it doesn't work. +if test "x$enable_erlang" != "xno"; then + ERLANG= + AC_ERLANG_PATH_ERLC([no]) + + if test "x$ERLC" != "xno"; then + AC_ERLANG_CHECK_LIB([erl_interface], [], + [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.) AS_IF([test "x$PERL" != "xno"], [ @@ -907,18 +988,26 @@ AC_SUBST([LIBTOOL]) dnl Produce output files. AC_CONFIG_HEADERS([config.h]) dnl http://www.mail-archive.com/automake@gnu.org/msg10204.html +AC_CONFIG_FILES([clone/virt-sysprep], + [chmod +x clone/virt-sysprep]) AC_CONFIG_FILES([podwrapper.sh], [chmod +x podwrapper.sh]) +AC_CONFIG_FILES([run], + [chmod +x run]) AC_CONFIG_FILES([Makefile + align/Makefile appliance/Makefile capitests/Makefile cat/Makefile caution/Makefile + clone/Makefile csharp/Makefile daemon/Makefile debian/changelog df/Makefile edit/Makefile + erlang/Makefile + erlang/examples/Makefile examples/Makefile fish/Makefile fuse/Makefile @@ -950,6 +1039,7 @@ AC_CONFIG_FILES([Makefile ruby/Makefile ruby/Rakefile ruby/examples/Makefile + sparsify/Makefile src/Makefile test-tool/Makefile tools/Makefile]) @@ -980,6 +1070,8 @@ 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 "Erlang bindings ..................... " +if test "x$HAVE_ERLANG_TRUE" = "x"; then echo "yes"; else echo "no"; fi 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