X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=configure.ac;h=89b56186bd5caf43b39e89680f1f2f48be7b4cb6;hp=1fe044505710ce30007467fcbe7036343f01bc1a;hb=370f79fd3d3df3511fe50f39491c2d15f653c48f;hpb=74cc619d942329043d646805c1b94be7df234d10 diff --git a/configure.ac b/configure.ac index 1fe0445..89b5618 100644 --- a/configure.ac +++ b/configure.ac @@ -18,7 +18,7 @@ # major/minor/release must be numbers m4_define([libguestfs_major], [1]) m4_define([libguestfs_minor], [7]) -m4_define([libguestfs_release], [5]) +m4_define([libguestfs_release], [20]) # extra can be any string m4_define([libguestfs_extra], []) @@ -115,6 +115,8 @@ if test "$gl_gcc_warnings" = yes; then nw="$nw -Wpacked" # Allow attribute((packed)) on structs nw="$nw -Wlong-long" # Allow long long since it's required # by Python, Ruby and xstrtoll. + nw="$nw -Wstack-protector" # Don't warn about stack-protector + # failures (seen on Ubuntu). gl_MANYWARN_ALL_GCC([ws]) gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw]) @@ -188,6 +190,43 @@ AC_ARG_ENABLE([appliance], AM_CONDITIONAL([ENABLE_APPLIANCE],[test "x$enable_appliance" = "xyes"]) AC_MSG_RESULT([$enable_appliance]) +if test "x$enable_appliance" = "xyes"; then + dnl Check for febootstrap >= 3.0 + AC_CHECK_PROG([FEBOOTSTRAP], + [febootstrap],[febootstrap],[no]) + 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 || + AC_MSG_ERROR([febootstrap >= 3.0 must be installed, your version is too old]) + + 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) + 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 + DISTRO=UBUNTU + fi + fi + AC_MSG_RESULT([$DISTRO]) + AC_SUBST([DISTRO]) +fi + 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"]) @@ -205,13 +244,16 @@ AC_CHECK_PROG([GPERF],[gperf],[gperf],[no]) test "x$GPERF" = "xno" && AC_MSG_ERROR([gperf must be installed]) -dnl Check for pod2man and pod2text. +dnl Check for pod2man, pod2text, pod2html. AC_CHECK_PROG([POD2MAN],[pod2man],[pod2man],[no]) test "x$POD2MAN" = "xno" && AC_MSG_ERROR([pod2man must be installed]) AC_CHECK_PROG([POD2TEXT],[pod2text],[pod2text],[no]) test "x$POD2TEXT" = "xno" && AC_MSG_ERROR([pod2text must be installed]) +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], @@ -222,6 +264,22 @@ dnl Check for optional xmllint. AC_CHECK_PROG([XMLLINT],[xmllint],[xmllint],[no]) AM_CONDITIONAL([HAVE_XMLLINT],[test "x$XMLLINT" != "xno"]) +dnl po4a for translating man pages and POD files (optional). +AC_CHECK_PROG([PO4A],[po4a],[po4a],[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 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 +if test "x$DB_LOAD" != "xno"; then + AC_DEFINE_UNQUOTED([DB_LOAD],["$DB_LOAD"],[Name of db_load program.]) +fi + dnl Check for QEMU for running binaries on this $host_cpu, fall dnl back to basic 'qemu'. Allow the user to override it. default_qemu="qemu-kvm kvm qemu-system-$host_cpu qemu" @@ -288,117 +346,6 @@ AC_ARG_WITH([net-if], [with_net_if=virtio-net-pci]) AC_DEFINE_UNQUOTED([NET_IF],["$with_net_if"],[Default network interface.]) -dnl Check for febootstrap etc. -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]) - AC_CHECK_PROG([FEBOOTSTRAP_TO_SUPERMIN], - [febootstrap-to-supermin],[febootstrap-to-supermin],[no]) - test "x$FEBOOTSTRAP_TO_SUPERMIN" = "xno" && \ - AC_MSG_ERROR([febootstrap-to-supermin 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 || \ - ( test "$fakechroot_major" -eq 2 && test "$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 - *86) - DEBIAN_KERNEL_ARCH=486 - ;; - x86_64) - DEBIAN_KERNEL_ARCH=amd64 - ;; - *) - DEBIAN_KERNEL_ARCH=$host_cpu - ;; - 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-f12@:>@])], - [], - [with_updates=updates-released-f12]) - 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 repository. -AC_ARG_WITH([repo], - [AS_HELP_STRING([--with-repo], - [set name of Fedora repository @<:@default=fedora-13@:>@])], - [], - [with_repo=fedora-13]) -REPO="$with_repo" -AC_SUBST(REPO) -AC_DEFINE_UNQUOTED([REPO],["$REPO"],[Name of software repository.]) - -dnl Build the supermin appliance? Please see README file before -dnl enabling this option. -AC_ARG_ENABLE([supermin], - [AS_HELP_STRING([--enable-supermin], - [enable supermin appliance (see README) @<:@default=no@:>@])], - [AC_DEFINE([ENABLE_SUPERMIN],[1],[Supermin appliance enabled.])], - [enable_supermin=no]) -AM_CONDITIONAL([SUPERMIN],[test "x$enable_supermin" = "xyes"]) - dnl Enable packet dumps when in verbose mode. This generates lots dnl of debug info, only useful for people debugging the RPC mechanism. AC_ARG_ENABLE([packet-dump], @@ -434,7 +381,6 @@ AS_IF([test "x$with_readline" != xno], dnl For i18n. AM_GNU_GETTEXT([external]) -AM_GNU_GETTEXT_VERSION([0.17]) dnl libmagic (highly recommended) AC_CHECK_LIB([magic],[magic_file], @@ -469,6 +415,7 @@ PKG_CHECK_MODULES([LIBXML2], [libxml-2.0], AC_DEFINE([HAVE_LIBXML2],[1],[libxml2 found at compile time.]) ], [AC_MSG_WARN([libxml2 not found, some core features will be disabled])]) +AM_CONDITIONAL([HAVE_LIBXML2],[test "x$LIBXML2_LIBS" != "x"]) dnl hivex library (highly recommended) dnl This used to be a part of libguestfs, but was spun off into its @@ -787,11 +734,11 @@ AS_IF([test "x$enable_php" != "xno"], ]) AM_CONDITIONAL([HAVE_PHP], [test "x$PHP" != "xno" && test "x$PHPIZE" != "xno"]) -dnl Check for Perl modules needed by virt-df, inspector, etc. +dnl Check for Perl modules needed by Perl virt tools (virt-df, etc.) AS_IF([test "x$PERL" != "xno"], [ missing_perl_modules=no - for pm in Pod::Usage Getopt::Long Sys::Virt Data::Dumper XML::Writer Locale::TextDomain Win::Hivex Win::Hivex::Regedit; do + 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 AC_MSG_RESULT([no]) @@ -801,23 +748,22 @@ AS_IF([test "x$PERL" != "xno"], fi done if test "x$missing_perl_modules" = "xyes"; then - AC_MSG_WARN([some Perl modules required to compile virt-inspector and the other virt-* tools are missing]) + AC_MSG_WARN([some Perl modules required to compile the Perl virt-* tools are missing]) fi ]) -AM_CONDITIONAL([HAVE_INSPECTOR], - [test "x$PERL" != "xno" && test "x$missing_perl_modules" != "xyes"]) AM_CONDITIONAL([HAVE_TOOLS], [test "x$PERL" != "xno" && test "x$missing_perl_modules" != "xyes"]) -dnl po4a for translating man pages and POD files (optional). -AC_CHECK_PROG([PO4A],[po4a],[po4a],[no]) -AM_CONDITIONAL([HAVE_PO4A], [test "x$PO4A" != "xno"]) - dnl Library versioning. MAX_PROC_NR=`cat $srcdir/src/MAX_PROC_NR` AC_SUBST(MAX_PROC_NR) +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' +AC_SUBST([LIBTOOL]) + dnl Run in subdirs. if test "x$enable_daemon" = "xyes"; then AC_CONFIG_SUBDIRS([daemon]) @@ -826,21 +772,20 @@ fi dnl Produce output files. AC_CONFIG_HEADERS([config.h]) dnl http://www.mail-archive.com/automake@gnu.org/msg10204.html -AC_CONFIG_FILES([appliance/update.sh], - [chmod +x appliance/update.sh]) +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 - appliance/debian/debirf.conf images/Makefile capitests/Makefile regressions/Makefile test-tool/Makefile ocaml/Makefile ocaml/examples/Makefile perl/Makefile - python/Makefile - ruby/Makefile ruby/Rakefile + python/Makefile python/examples/Makefile + ruby/Makefile ruby/Rakefile ruby/examples/Makefile java/Makefile haskell/Makefile inspector/Makefile @@ -854,6 +799,8 @@ AC_CONFIG_FILES([Makefile php/Makefile csharp/Makefile cat/Makefile + df/Makefile + rescue/Makefile ocaml/META perl/Makefile.PL]) AC_OUTPUT @@ -882,11 +829,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 "virt-inspector ...................... " -if test "x$HAVE_INSPECTOR_TRUE" = "x"; then echo "yes"; else echo "no"; fi echo -n "virt-* tools ........................ " if test "x$HAVE_TOOLS_TRUE" = "x"; then echo "yes"; else echo "no"; fi -echo "supermin appliance .................. $enable_supermin" echo "FUSE filesystem ..................... $enable_fuse" echo echo "If any optional component is configured 'no' when you expected 'yes'"