X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=configure.ac;h=7cde23bf87510f310f58be8e3e1b9a572e7982a2;hp=e16ead8e49ffa47a6591d10e82018fe9f30c2e72;hb=d0efcd6b63edb3e32a7ff0c7e032d06a2d16f348;hpb=e645763007e7097c14c1c3ba94010f2e32e536bf diff --git a/configure.ac b/configure.ac index e16ead8..7cde23b 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ # libguestfs -# Copyright (C) 2009 Red Hat Inc. +# Copyright (C) 2009-2010 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 @@ -17,8 +17,8 @@ # major/minor/release must be numbers m4_define([libguestfs_major], [1]) -m4_define([libguestfs_minor], [0]) -m4_define([libguestfs_release], [77]) +m4_define([libguestfs_minor], [3]) +m4_define([libguestfs_release], [1]) # extra can be any string m4_define([libguestfs_extra], []) @@ -116,15 +116,47 @@ test "x$U" != "x" && AC_MSG_ERROR([Compiler not ANSI compliant]) AM_PROG_CC_C_O +dnl Work out how to specify the linker script to the linker. +VERSION_SCRIPT_FLAGS=-Wl,--version-script= +`/usr/bin/ld --help 2>&1 | grep -- --version-script >/dev/null` || \ + VERSION_SCRIPT_FLAGS="-Wl,-M -Wl," +AC_SUBST(VERSION_SCRIPT_FLAGS) + dnl Check support for 64 bit file offsets. AC_SYS_LARGEFILE dnl Check sizeof long. AC_CHECK_SIZEOF([long]) +dnl Define a C symbol for the host CPU architecture. +AC_DEFINE_UNQUOTED([host_cpu],["$host_cpu"],[Host architecture.]) + 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]) + +dnl Build the daemon? +AC_MSG_CHECKING([if we should build the daemon]) +AC_ARG_ENABLE([daemon], + [AS_HELP_STRING([--enable-daemon], + [enable building the daemon @<:@default=yes@:>@])], + [], + [enable_daemon=yes]) +AM_CONDITIONAL([ENABLE_DAEMON],[test "x$enable_daemon" = "xyes"]) +AC_MSG_RESULT([$enable_daemon]) + +dnl Build the appliance? +AC_MSG_CHECKING([if we should build the appliance]) +AC_ARG_ENABLE([appliance], + [AS_HELP_STRING([--enable-appliance], + [enable building the appliance @<:@default=yes@:>@])], + [], + [enable_appliance=yes]) +AM_CONDITIONAL([ENABLE_APPLIANCE],[test "x$enable_appliance" = "xyes"]) +AC_MSG_RESULT([$enable_appliance]) + dnl Check for rpcgen and XDR library. rpcgen is optional. AC_CHECK_PROG([RPCGEN],[rpcgen],[rpcgen],[no]) AM_CONDITIONAL([HAVE_RPCGEN],[test "x$RPCGEN" != "xno"]) @@ -167,7 +199,7 @@ dnl fallback to null vmchannel (still using SLIRP). See the dnl discussion in the README file. if test "x$vmchannel_test" != "xno"; then AC_MSG_CHECKING([for guestfwd support in $QEMU]) - if $QEMU --help | grep -sq guestfwd; then + if $QEMU -nographic --help | grep -sq guestfwd; then AC_MSG_RESULT([yes]) vmchannel_guestfwd=guestfwd else @@ -176,7 +208,7 @@ if test "x$vmchannel_test" != "xno"; then # test failing. This is because recent qemu will throw # up an SDL window and hang if we try to run this test. AC_MSG_CHECKING([for "-net channel" (old guestfwd) support in $QEMU]) - vmchannelout=`$QEMU -net channel /dev/zero 2>&1 ||:` + vmchannelout=`$QEMU -nographic -net channel /dev/zero 2>&1 ||:` echo "vmchannel test command output: $vmchannelout" >&AS_MESSAGE_LOG_FD if echo "$vmchannelout" | grep -sq "vmchannel wrong port number" ; then AC_MSG_RESULT([yes]) @@ -188,7 +220,7 @@ if test "x$vmchannel_test" != "xno"; then fi AC_MSG_CHECKING([for "-net user" (user mode network) support in $QEMU]) - if $QEMU --help | grep -sq -- "-net user"; then + if $QEMU -nographic --help | grep -sq -- "-net user"; then AC_MSG_RESULT([yes]) vmchannel_net_user=yes else @@ -221,13 +253,13 @@ fi dnl Set drive interface used by the guestfs_add_drive{,_ro} calls dnl ('-drive ...,if=...' option to qemu). dnl -dnl NB. We will change the default in future to virtio, but at the -dnl moment this causes a performance problem, RHBZ#509383. +dnl If you encounter performance problems with virtio (RHBZ#509383) +dnl then try '--with-drive-if=ide'. AC_ARG_WITH([drive-if], [AS_HELP_STRING([--with-drive-if], - [set default driver (ide|scsi|virtio) @<:@default=ide@:>@])], + [set default driver (ide|scsi|virtio) @<:@default=virtio@:>@])], [], - [with_drive_if=ide]) + [with_drive_if=virtio]) AC_DEFINE_UNQUOTED([DRIVE_IF],["$with_drive_if"],[Default drive interface.]) dnl Set interface used by the network. Normally you should @@ -242,59 +274,60 @@ AC_ARG_WITH([net-if], AC_DEFINE_UNQUOTED([NET_IF],["$with_net_if"],[Default network interface.]) dnl Check for febootstrap etc. -AC_CHECK_PROG([FEBOOTSTRAP], - [febootstrap],[febootstrap],[no]) -if test "x$FEBOOTSTRAP" != "xno"; then - AC_CHECK_PROG([FEBOOTSTRAP_RUN], - [febootstrap-run],[febootstrap-run],[no]) - test "x$FEBOOTSTRAP_RUN" = "xno" && \ - AC_MSG_ERROR([febootstrap-run must be installed]) - AC_CHECK_PROG([FEBOOTSTRAP_INSTALL], - [febootstrap-install],[febootstrap-install],[no]) - test "x$FEBOOTSTRAP_INSTALL" = "xno" && \ - AC_MSG_ERROR([febootstrap-install must be installed]) - AC_CHECK_PROG([FEBOOTSTRAP_MINIMIZE], - [febootstrap-minimize],[febootstrap-minimize],[no]) - test "x$FEBOOTSTRAP_MINIMIZE" = "xno" && \ - AC_MSG_ERROR([febootstrap-minimize must be installed]) - AC_CHECK_PROG([FEBOOTSTRAP_TO_INITRAMFS], - [febootstrap-to-initramfs],[febootstrap-to-initramfs],[no]) - test "x$FEBOOTSTRAP_TO_INITRAMFS" = "xno" && \ - AC_MSG_ERROR([febootstrap-to-initramfs must be installed]) - - dnl Check we have fakechroot >= 2.9 (it's an indirect requirement - dnl of febootstrap, but old versions will fail with yum). - AC_CHECK_PROG([FAKECHROOT], - [fakechroot],[fakechroot],[no]) - test "x$FAKECHROOT" = "xno" && \ - AC_MSG_ERROR([fakechroot must be installed]) - - AC_MSG_CHECKING([fakechroot version]) - fakechroot_version=`$FAKECHROOT --version | awk '{print $3}'` - if test -z "$fakechroot_version"; then - AC_MSG_RESULT([failed]) - AC_MSG_WARN([fakechroot --version command failed, proceeding anyway]) - else - AC_MSG_RESULT([$fakechroot_version]) - fakechroot_major=`echo "$fakechroot_version" | awk -F. '{print $1}'` - fakechroot_minor=`echo "$fakechroot_version" | awk -F. '{print $2}'` - if test "$fakechroot_major" -lt 2 -o \ +if test "x$enable_appliance" = "xyes"; then + AC_CHECK_PROG([FEBOOTSTRAP], + [febootstrap],[febootstrap],[no]) + if test "x$FEBOOTSTRAP" != "xno"; then + AC_CHECK_PROG([FEBOOTSTRAP_RUN], + [febootstrap-run],[febootstrap-run],[no]) + test "x$FEBOOTSTRAP_RUN" = "xno" && \ + AC_MSG_ERROR([febootstrap-run must be installed]) + AC_CHECK_PROG([FEBOOTSTRAP_INSTALL], + [febootstrap-install],[febootstrap-install],[no]) + test "x$FEBOOTSTRAP_INSTALL" = "xno" && \ + AC_MSG_ERROR([febootstrap-install must be installed]) + AC_CHECK_PROG([FEBOOTSTRAP_MINIMIZE], + [febootstrap-minimize],[febootstrap-minimize],[no]) + test "x$FEBOOTSTRAP_MINIMIZE" = "xno" && \ + AC_MSG_ERROR([febootstrap-minimize must be installed]) + AC_CHECK_PROG([FEBOOTSTRAP_TO_INITRAMFS], + [febootstrap-to-initramfs],[febootstrap-to-initramfs],[no]) + test "x$FEBOOTSTRAP_TO_INITRAMFS" = "xno" && \ + AC_MSG_ERROR([febootstrap-to-initramfs must be installed]) + + dnl Check we have fakechroot >= 2.9 (it's an indirect requirement + dnl of febootstrap, but old versions will fail with yum). + AC_CHECK_PROG([FAKECHROOT], + [fakechroot],[fakechroot],[no]) + test "x$FAKECHROOT" = "xno" && \ + AC_MSG_ERROR([fakechroot must be installed]) + + AC_MSG_CHECKING([fakechroot version]) + fakechroot_version=`$FAKECHROOT --version | awk '{print $3}'` + if test -z "$fakechroot_version"; then + AC_MSG_RESULT([failed]) + AC_MSG_WARN([fakechroot --version command failed, proceeding anyway]) + else + AC_MSG_RESULT([$fakechroot_version]) + fakechroot_major=`echo "$fakechroot_version" | awk -F. '{print $1}'` + fakechroot_minor=`echo "$fakechroot_version" | awk -F. '{print $2}'` + if test "$fakechroot_major" -lt 2 -o \ \( "$fakechroot_major" -eq 2 -a "$fakechroot_minor" -lt 9 \); then - AC_MSG_ERROR([fakechroot version must be >= 2.9]) - fi - fi - DIST="REDHAT" -else - # check for debootstrap and debirf - AC_CHECK_PROG([DEBOOTSTRAP], - [debootstrap],[debootstrap],[no]) - test "x$DEBOOTSTRAP" = "xno" && \ - AC_MSG_ERROR([Either febootstrap or debootstrap must be installed]) - AC_CHECK_PROG([DEBIRF],[debirf],[debirf],[no]) - test "x$DEBIRF" = "xno" && - AC_MSG_ERROR([debirf must be installed]) - DIST="DEBIAN" - case "$host_cpu" in + AC_MSG_ERROR([fakechroot version must be >= 2.9]) + fi + fi + DIST="REDHAT" + else + # check for debootstrap and debirf + AC_CHECK_PROG([DEBOOTSTRAP], + [debootstrap],[debootstrap],[no]) + test "x$DEBOOTSTRAP" = "xno" && \ + AC_MSG_ERROR([Either febootstrap or debootstrap must be installed]) + AC_CHECK_PROG([DEBIRF],[debirf],[debirf],[no]) + test "x$DEBIRF" = "xno" && + AC_MSG_ERROR([debirf must be installed]) + DIST="DEBIAN" + case "$host_cpu" in *86) DEBIAN_KERNEL_ARCH=486 ;; @@ -304,11 +337,29 @@ else *) DEBIAN_KERNEL_ARCH=$host_cpu ;; - esac - AC_SUBST(DEBIAN_KERNEL_ARCH) -fi -AC_SUBST(DIST) + esac + AC_SUBST(DEBIAN_KERNEL_ARCH) + fi + AC_SUBST(DIST) + + dnl --with-updates to specify a Fedora updates repository. + AC_ARG_WITH([updates], + [AS_HELP_STRING([--with-updates], + [set name of Fedora updates repository @<:@default=updates-released-f11@:>@])], + [], + [with_updates=updates-released-f11]) + UPDATES="$with_updates" + AC_SUBST(UPDATES) + dnl --with-mirror to specify a local Fedora mirror. + AC_ARG_WITH([mirror], + [AS_HELP_STRING([--with-mirror], + [set URI of a local Fedora mirror])], + [], + [with_mirror=]) + MIRROR="$with_mirror" + AC_SUBST(MIRROR) +fi dnl --with-repo to specify a Fedora repository. AC_ARG_WITH([repo], @@ -320,27 +371,6 @@ REPO="$with_repo" AC_SUBST(REPO) AC_DEFINE_UNQUOTED([REPO],["$REPO"],[Name of Fedora repository.]) -dnl --with-updates to specify a Fedora updates repository. -AC_ARG_WITH([updates], - [AS_HELP_STRING([--with-updates], - [set name of Fedora updates repository @<:@default=updates-released-f11@:>@])], - [], - [with_updates=updates-released-f11]) -UPDATES="$with_updates" -AC_SUBST(UPDATES) - -dnl Define a symbol for the host CPU architecture. -AC_DEFINE_UNQUOTED([host_cpu],["$host_cpu"],[Host architecture.]) - -dnl --with-mirror to specify a local Fedora mirror. -AC_ARG_WITH([mirror], - [AS_HELP_STRING([--with-mirror], - [set URI of a local Fedora mirror])], - [], - [with_mirror=]) -MIRROR="$with_mirror" -AC_SUBST(MIRROR) - dnl Build the supermin appliance? Please see README file before dnl enabling this option. AC_ARG_ENABLE([supermin], @@ -410,16 +440,27 @@ AS_IF([test "x$with_readline" != xno], AC_MSG_FAILURE( [--with-readline was given, but test for readline failed]) fi - ], -lncurses)]) + ], -lncurses) + old_LIBS="$LIBS" + LIBS="$LIBS $LIBREADLINE" + AC_CHECK_FUNCS([append_history completion_matches rl_completion_matches]) + LIBS="$old_LIBS" + ]) dnl For i18n. AM_GNU_GETTEXT([external]) AM_GNU_GETTEXT_VERSION([0.17]) -dnl libxml2 is used by the hivex library. -PKG_CHECK_MODULES([LIBXML2], [libxml-2.0]) -AC_SUBST([LIBXML2_CFLAGS]) -AC_SUBST([LIBXML2_LIBS]) +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. +HAVE_HIVEX=yes +PKG_CHECK_MODULES([HIVEX], [hivex],,[ + HAVE_HIVEX=no + AC_MSG_WARN([Hivex library and headers are missing, so optional Windows Registry tools won't be built])]) +AM_CONDITIONAL([HAVE_HIVEX],[test "x$HAVE_HIVEX" = "xyes"]) +AC_SUBST([HIVEX_CFLAGS]) +AC_SUBST([HIVEX_LIBS]) dnl FUSE is optional to build the FUSE module. HAVE_FUSE=yes @@ -433,8 +474,7 @@ AC_PROG_OCAML AC_PROG_FINDLIB AM_CONDITIONAL([HAVE_OCAML],[test "x$OCAMLC" != "xno" -a "x$OCAMLFIND" != "xno"]) -dnl Optional xml-light for building virt-inspector language bindings -dnl from the virt-inspector.rng file. +dnl Optional xml-light for running the generator. OCAML_PKG_xml_light=no if test "x$OCAMLC" != "xno" -a "x$OCAMLFIND" != "xno"; then AC_CHECK_OCAML_PKG([xml-light]) @@ -678,7 +718,7 @@ AM_CONDITIONAL([HAVE_HASKELL], dnl Check for Perl modules needed by virt-df, inspector, etc. missing_perl_modules=no -for pm in Pod::Usage Getopt::Long Sys::Virt Data::Dumper XML::Writer Locale::TextDomain; do +for pm in Pod::Usage Getopt::Long Sys::Virt Data::Dumper XML::Writer Locale::TextDomain Win::Hivex Win::Hivex::Regedit; do AC_MSG_CHECKING([for $pm]) if ! perl -M$pm -e1 >/dev/null 2>&1; then AC_MSG_RESULT([no]) @@ -701,7 +741,9 @@ MAX_PROC_NR=`cat $srcdir/src/MAX_PROC_NR` AC_SUBST(MAX_PROC_NR) dnl Run in subdirs. -AC_CONFIG_SUBDIRS([daemon]) +if test "x$enable_daemon" = "xyes"; then + AC_CONFIG_SUBDIRS([daemon]) +fi dnl Produce output files. AC_CONFIG_HEADERS([config.h]) @@ -712,8 +754,6 @@ AC_CONFIG_FILES([appliance/supermin-split.sh], [chmod +x appliance/supermin-split.sh]) AC_CONFIG_FILES([appliance/supermin-make.sh], [chmod +x appliance/supermin-make.sh]) -AC_CONFIG_FILES([appliance/libguestfs-supermin-helper], - [chmod +x appliance/libguestfs-supermin-helper]) AC_CONFIG_FILES([Makefile src/Makefile fish/Makefile po/Makefile.in examples/Makefile appliance/Makefile @@ -733,7 +773,6 @@ AC_CONFIG_FILES([Makefile libguestfs.pc gnulib/lib/Makefile gnulib/tests/Makefile - hivex/Makefile fuse/Makefile ocaml/META perl/Makefile.PL]) AC_OUTPUT @@ -746,6 +785,8 @@ echo "Thank you for downloading $PACKAGE_STRING" echo echo "This is how we have configured the optional components for you today:" echo +echo "Daemon .............................. $enable_daemon" +echo "Appliance ........................... $enable_appliance" echo "QEMU ................................ $QEMU" echo -n "OCaml bindings ...................... " if test "x$HAVE_OCAML_TRUE" = "x"; then echo "yes"; else echo "no"; fi