X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=configure.ac;h=158d1115a04e90ced9f7eb629b74afcaab472567;hp=d5afe8bbe07cb29696f8b6cfeb86b11108abab39;hb=9f2135c4e4062087b9bd525406802da2a25c7365;hpb=428a45c3e15f03e9861e1b551e1ae8da821dba5f diff --git a/configure.ac b/configure.ac index d5afe8b..158d111 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], [2]) +m4_define([libguestfs_release], [18]) # extra can be any string m4_define([libguestfs_extra], []) @@ -188,15 +188,6 @@ AC_ARG_ENABLE([appliance], AM_CONDITIONAL([ENABLE_APPLIANCE],[test "x$enable_appliance" = "xyes"]) AC_MSG_RESULT([$enable_appliance]) -dnl Check for PCRE. -AC_CHECK_LIB([pcre],[pcre_compile], - [AC_SUBST([LIBPCRE], ["-lpcre"])], - [AC_MSG_FAILURE( - [Perl Compatible Regular Expressions library (PCRE) is required])]) -AC_CHECK_HEADER([pcre.h],[], - [AC_MSG_FAILURE( - [Perl Compatible Regular Expressions library (PCRE) header file pcre.h is required])]) - 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"]) @@ -214,13 +205,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], @@ -231,6 +225,20 @@ 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],[no]) +AC_CHECK_PROGS([DB_LOAD],[db_load db4_load db4.8_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" @@ -445,37 +453,50 @@ dnl For i18n. AM_GNU_GETTEXT([external]) AM_GNU_GETTEXT_VERSION([0.17]) -dnl libmagic (required) -AC_CHECK_LIB([magic],[magic_file],[ - AC_SUBST([LIBMAGIC], ["-lmagic"]) - ],[ - AC_MSG_FAILURE([libmagic is required]) - ]) -AC_CHECK_HEADER([magic.h],[],[ - AC_MSG_FAILURE([magic.h header file is required]) - ]) - -dnl libvirt (required) -PKG_CHECK_MODULES([LIBVIRT], [libvirt]) -AC_SUBST([LIBVIRT_CFLAGS]) -AC_SUBST([LIBVIRT_LIBS]) +dnl libmagic (highly recommended) +AC_CHECK_LIB([magic],[magic_file], + [AC_CHECK_HEADER([magic.h], + [AC_SUBST([MAGIC_LIBS], ["-lmagic"]) + AC_DEFINE([HAVE_LIBMAGIC],[1],[libmagic found at compile time.]) + ], []) + ], + [AC_MSG_WARN([libmagic not found, some core features will be disabled])]) -dnl libxml2 (required) -PKG_CHECK_MODULES([LIBXML2], [libxml-2.0]) -AC_SUBST([LIBXML2_CFLAGS]) -AC_SUBST([LIBXML2_LIBS]) +dnl Check for PCRE (highly recommended) +PKG_CHECK_MODULES([PCRE], [libpcre], + [AC_SUBST([PCRE_CFLAGS]) + AC_SUBST([PCRE_LIBS]) + AC_DEFINE([HAVE_PCRE],[1],[PCRE found at compile time.]) + ], + [AC_MSG_WARN([PCRE not found, some core features will be disabled])]) -dnl Augeas (required) -PKG_CHECK_MODULES([AUGEAS], [augeas]) -AC_SUBST([AUGEAS_CFLAGS]) -AC_SUBST([AUGEAS_LIBS]) +dnl libvirt (highly recommended) +PKG_CHECK_MODULES([LIBVIRT], [libvirt], + [AC_SUBST([LIBVIRT_CFLAGS]) + AC_SUBST([LIBVIRT_LIBS]) + AC_DEFINE([HAVE_LIBVIRT],[1],[libvirt found at compile time.]) + ], + [AC_MSG_WARN([libvirt not found, some core features will be disabled])]) +AM_CONDITIONAL([HAVE_LIBVIRT],[test "x$LIBVIRT_LIBS" != "x"]) + +dnl libxml2 (highly recommended) +PKG_CHECK_MODULES([LIBXML2], [libxml-2.0], + [AC_SUBST([LIBXML2_CFLAGS]) + AC_SUBST([LIBXML2_LIBS]) + 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 (required) +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. -PKG_CHECK_MODULES([HIVEX], [hivex]) -AC_SUBST([HIVEX_CFLAGS]) -AC_SUBST([HIVEX_LIBS]) +PKG_CHECK_MODULES([HIVEX], [hivex], + [AC_SUBST([HIVEX_CFLAGS]) + AC_SUBST([HIVEX_LIBS]) + AC_DEFINE([HAVE_HIVEX],[1],[hivex library found at compile time.]) + ], + [AC_MSG_WARN([hivex not found, some core features will be disabled])]) dnl FUSE is optional to build the FUSE module. AC_ARG_ENABLE([fuse], @@ -489,108 +510,130 @@ AS_IF([test "x$enable_fuse" != "xno"], AM_CONDITIONAL([HAVE_FUSE],[test "x$enable_fuse" != "xno"]) dnl Check for OCaml (optional, for OCaml bindings). -AC_PROG_OCAML -AC_PROG_FINDLIB -AM_CONDITIONAL([HAVE_OCAML],[test "x$OCAMLC" != "xno" && test "x$OCAMLFIND" != "xno"]) - -dnl Optional xml-light for running the generator. -OCAML_PKG_xml_light=no -if test "x$OCAMLC" != "xno" && test "x$OCAMLFIND" != "xno"; then - AC_CHECK_OCAML_PKG([xml-light]) -fi -AM_CONDITIONAL([HAVE_XML_LIGHT],[test "x$OCAML_PKG_xml_light" != "xno"]) - -dnl Build the OCaml viewer example. This has a lengthy list of -dnl dependencies and we don't attempt to detect them all. Read -dnl the top of ocaml/examples/viewer.ml before enabling this. -AC_ARG_ENABLE([ocaml-viewer], - [AS_HELP_STRING([--enable-ocaml-viewer], - [enable OCaml viewer (see ocaml/examples) @<:@default=no@:>@])], +OCAMLC=no +OCAMLFIND=no +AC_ARG_ENABLE([ocaml], + AS_HELP_STRING([--disable-ocaml], [Disable OCaml language bindings]), [], - [enable_ocaml_viewer=no]) -AM_CONDITIONAL([BUILD_OCAML_VIEWER],[test "x$enable_ocaml_viewer" = "xyes"]) + [enable_ocaml=yes]) +AS_IF([test "x$enable_ocaml" != "xno"], + [dnl OCAMLC and OCAMLFIND have to be unset first, otherwise + dnl AC_CHECK_TOOL (inside AC_PROG_OCAML) will not look. + OCAMLC= + OCAMLFIND= + AC_PROG_OCAML + AC_PROG_FINDLIB + ]) +AM_CONDITIONAL([HAVE_OCAML], + [test "x$OCAMLC" != "xno" && test "x$OCAMLFIND" != "xno"]) dnl Check for Perl (optional, for Perl bindings). -dnl XXX This isn't quite right, we should check for Perl devel library. -AC_CHECK_PROG([PERL],[perl],[perl],[no]) - -dnl Check for Perl modules that must be present to compile and -dnl test the Perl bindings. -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 - AC_MSG_RESULT([no]) - missing_perl_modules=yes - else - AC_MSG_RESULT([yes]) - fi -done -if test "x$missing_perl_modules" = "xyes"; then - AC_MSG_WARN([some Perl modules required to compile or test the Perl bindings are missing]) -fi - +PERL=no +AC_ARG_ENABLE([perl], + AS_HELP_STRING([--disable-perl], [Disable Perl language bindings]), + [], + [enable_perl=yes]) +AS_IF([test "x$enable_perl" != "xno"], + [ + PERL= + AC_CHECK_PROG([PERL],[perl],[perl],[no]) + + dnl Check for Perl modules that must be present to compile and + dnl test the Perl bindings. + 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 + AC_MSG_RESULT([no]) + missing_perl_modules=yes + else + AC_MSG_RESULT([yes]) + fi + done + if test "x$missing_perl_modules" = "xyes"; then + AC_MSG_WARN([some Perl modules required to compile or test the Perl bindings are missing]) + fi + ]) AM_CONDITIONAL([HAVE_PERL], [test "x$PERL" != "xno" && test "x$missing_perl_modules" != "xyes"]) dnl Check for Python (optional, for Python bindings). -AC_CHECK_PROG([PYTHON],[python],[python],[no]) - PYTHON_PREFIX= PYTHON_VERSION= PYTHON_INCLUDEDIR= PYTHON_SITE_PACKAGES= -if test "x$PYTHON" != "xno"; then - PYTHON_PREFIX=`$PYTHON -c "import sys; print sys.prefix"` - PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[[0:3]]"` - for d in \ - $PYTHON_PREFIX/include/python$PYTHON_VERSION \ - /usr/include/python$PYTHON_VERSION \ - /usr/local/include/python$PYTHON_VERSION - do - AC_MSG_CHECKING([Python.h in $d]) - if test -r "$d/Python.h"; then - AC_MSG_RESULT([found]) - PYTHON_INCLUDEDIR=$d - break - fi - AC_MSG_RESULT([not found]) - done - 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 - fi - AC_MSG_RESULT([not found]) - done +AC_ARG_ENABLE([python], + AS_HELP_STRING([--disable-python], [Disable Python language bindings]), + [], + [enable_python=yes]) +AS_IF([test "x$enable_python" != "xno"], + [ + AC_CHECK_PROG([PYTHON],[python],[python],[no]) + + if test "x$PYTHON" != "xno"; then + PYTHON_PREFIX=`$PYTHON -c "import sys; print sys.prefix"` + PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[[0:3]]"` + for d in \ + $PYTHON_PREFIX/include/python$PYTHON_VERSION \ + /usr/include/python$PYTHON_VERSION \ + /usr/local/include/python$PYTHON_VERSION + do + AC_MSG_CHECKING([Python.h in $d]) + if test -r "$d/Python.h"; then + AC_MSG_RESULT([found]) + PYTHON_INCLUDEDIR=$d + break + fi + AC_MSG_RESULT([not found]) + done + if test "x$PYTHON_INCLUDEDIR" = "x"; then + AC_MSG_WARN([Python include directory not found]) + fi - old_LIBS="$LIBS" - LIBS="$LIBS -lpython$PYTHON_VERSION" - AC_CHECK_FUNCS([PyCapsule_New]) - LIBS="$old_LIBS" -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 + 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 -AC_SUBST(PYTHON_PREFIX) -AC_SUBST(PYTHON_VERSION) -AC_SUBST(PYTHON_INCLUDEDIR) -AC_SUBST(PYTHON_SITE_PACKAGES) + old_LIBS="$LIBS" + LIBS="$LIBS -lpython$PYTHON_VERSION" + AC_CHECK_FUNCS([PyCapsule_New]) + LIBS="$old_LIBS" + fi + AC_SUBST(PYTHON_PREFIX) + AC_SUBST(PYTHON_VERSION) + AC_SUBST(PYTHON_INCLUDEDIR) + AC_SUBST(PYTHON_SITE_PACKAGES) + ]) AM_CONDITIONAL([HAVE_PYTHON], [test "x$PYTHON_INCLUDEDIR" != "x" && test "x$PYTHON_SITE_PACKAGES" != "x"]) dnl Check for Ruby and rake (optional, for Ruby bindings). -AC_CHECK_LIB([ruby],[ruby_init],[HAVE_LIBRUBY=1],[HAVE_LIBRUBY=0]) -AC_CHECK_PROG([RAKE],[rake],[rake],[no]) - +AC_ARG_ENABLE([ruby], + AS_HELP_STRING([--disable-ruby], [Disable Ruby language bindings]), + [], + [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([RAKE],[rake],[rake],[no]) + ]) AM_CONDITIONAL([HAVE_RUBY], [test "x$RAKE" != "xno" && test -n "$HAVE_LIBRUBY"]) @@ -735,44 +778,63 @@ AC_SUBST(JNI_VERSION_INFO) AM_CONDITIONAL([HAVE_JAVA],[test -n "$JAVAC"]) dnl Check for Haskell (GHC). -AC_CHECK_PROG([GHC],[ghc],[ghc],[no]) - +GHC=no +AC_ARG_ENABLE([haskell], + AS_HELP_STRING([--disable-haskell], [Disable Haskell language bindings]), + [], + [enable_haskell=yes]) +AS_IF([test "x$enable_haskell" != "xno"], + [ + GHC= + AC_CHECK_PROG([GHC],[ghc],[ghc],[no]) + ]) AM_CONDITIONAL([HAVE_HASKELL], [test "x$GHC" != "xno"]) -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 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]) - missing_perl_modules=yes - else - AC_MSG_RESULT([yes]) - 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]) -fi +dnl PHP +PHP=no +AC_ARG_ENABLE([php], + AS_HELP_STRING([--disable-php], [Disable PHP language bindings]), + [], + [enable_php=yes]) +AS_IF([test "x$enable_php" != "xno"], + [ + PHP= + AC_CHECK_PROG([PHP],[php],[php],[no]) + AC_CHECK_PROG([PHPIZE],[phpize],[phpize],[no]) + ]) +AM_CONDITIONAL([HAVE_PHP], [test "x$PHP" != "xno" && test "x$PHPIZE" != "xno"]) + +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 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]) + missing_perl_modules=yes + else + AC_MSG_RESULT([yes]) + fi + done + if test "x$missing_perl_modules" = "xyes"; then + 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 PHP -AC_CHECK_PROG([PHP],[php],[php],[no]) -AC_CHECK_PROG([PHPIZE],[phpize],[phpize],[no]) -AM_CONDITIONAL([HAVE_PHP], [test "x$PHP" != "xno" && test "x$PHPIZE" != "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]) @@ -783,6 +845,8 @@ 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 @@ -794,8 +858,8 @@ AC_CONFIG_FILES([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 @@ -808,6 +872,9 @@ AC_CONFIG_FILES([Makefile po-docs/ja/Makefile php/Makefile csharp/Makefile + cat/Makefile + df/Makefile + rescue/Makefile ocaml/META perl/Makefile.PL]) AC_OUTPUT @@ -836,8 +903,6 @@ 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"