diff --git a/Makefile.am b/Makefile.am index 8a58ea7..f96e3a7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -17,6 +17,8 @@ include $(top_srcdir)/subdir-rules.mk +generator_built = src/guestfs-actions.pod src/guestfs-availability.pod src/guestfs-structs.pod + ACLOCAL_AMFLAGS = -I m4 # Basic source for the library. diff --git a/configure.ac b/configure.ac index da37b8d..bb84ef2 100644 --- a/configure.ac +++ b/configure.ac @@ -478,66 +478,96 @@ AC_SUBST([HIVEX_CFLAGS]) AC_SUBST([HIVEX_LIBS]) dnl FUSE is optional to build the FUSE module. -HAVE_FUSE=yes -PKG_CHECK_MODULES([FUSE],[fuse],,[ - HAVE_FUSE=no - AC_MSG_WARN([FUSE library and headers are missing, so optional FUSE module won't be built])]) -AM_CONDITIONAL([HAVE_FUSE],[test "x$HAVE_FUSE" = "xyes"]) +AC_ARG_ENABLE([fuse], + AS_HELP_STRING([--enable-fuse], [Build FUSE module]), + [], + [enable_fuse="no"]) +if test "x$enable_fuse" == "xyes"; then + PKG_CHECK_MODULES([FUSE],[fuse],,[ + AC_MSG_ERROR([FUSE library and headers are missing, so optional FUSE module cannot be built])]) +fi + AM_CONDITIONAL([HAVE_FUSE],[test "x$enable_fuse" = "xyes"]) 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"]) +AC_ARG_ENABLE([ocaml], + AS_HELP_STRING([--enable-ocaml], [Enable optional OCaml binding]), + [], + [enable_ocaml=no]) +if test "x$enable_ocaml" == "xyes"; then + AC_PROG_OCAML + AC_PROG_FINDLIB + if test "x$OCAMLC" == "xno" -o "x$OCAMLFIND" == "xno"; then + AC_MSG_ERROR([OCaml not found, so cannot build OCaml bindings]) + fi -dnl Optional xml-light for running the generator. -OCAML_PKG_xml_light=no -if test "x$OCAMLC" != "xno" && test "x$OCAMLFIND" != "xno"; then + dnl Optional xml-light for running the generator. + OCAML_PKG_xml_light=no AC_CHECK_OCAML_PKG([xml-light]) + if test "x$OCAML_PKG_xml_light" == "xno"; then + AC_MSG_ERROR([xml-light OCaml package not found]) + fi + + 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@:>@])], + [], + [enable_ocaml_viewer=no]) 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@:>@])], - [], - [enable_ocaml_viewer=no]) -AM_CONDITIONAL([BUILD_OCAML_VIEWER],[test "x$enable_ocaml_viewer" = "xyes"]) +AM_CONDITIONAL([HAVE_OCAML],[test "x$enable_ocaml" == "xyes"]) +AM_CONDITIONAL([HAVE_XML_LIGHT],[test "x$with_xml_light" == "xyes"]) +AM_CONDITIONAL([BUILD_OCAML_VIEWER],[test "x$enable_ocaml_viewer" == "xyes"]) +AC_ARG_ENABLE([perl], + AS_HELP_STRING([--enable-perl], [Enable building optional perl bindings]), + [], + [enable_perl=no]) +if test "x$enable_perl" == "xyes"; then 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]) +if test "x$PERL" == "xno"; then + AC_MSG_ERROR([perl not found so cannot build perl bindings]) +else + 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_ERROR([some Perl modules required to compile or test the Perl bindings are missing]) 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 +fi + AM_CONDITIONAL([HAVE_PERL], + [test "x$enable_perl" == "xyes"]) -AM_CONDITIONAL([HAVE_PERL], - [test "x$PERL" != "xno" && test "x$missing_perl_modules" != "xyes"]) - +AC_ARG_ENABLE([python], + AS_HELP_STRING([--enable-python], [Enable building optional Python bindings]), + [], + [enable_python=no]) +if test "x$enable_python" == "xyes"; then dnl Check for Python (optional, for Python bindings). AC_CHECK_PROG([PYTHON],[python],[python],[no]) +if test "x$PYTHON" == "xno"; then + AC_MSG_ERROR([Python not found so cannot build python bindings]) +fi + 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 \ @@ -553,6 +583,9 @@ if test "x$PYTHON" != "xno"; then fi AC_MSG_RESULT([not found]) done + if test -z "$PYTHON_INCLUDEDIR"; then + AC_MSG_ERROR([Python include directory not found]) + fi for d in \ $PYTHON_PREFIX/lib64/python$PYTHON_VERSION/site-packages \ $PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages \ @@ -568,27 +601,42 @@ if test "x$PYTHON" != "xno"; then fi AC_MSG_RESULT([not found]) done + if test -z "$PYTHON_SITE_PACKAGES"; then + AC_MSG_ERROR([Python site-packages directory not found]) + fi 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) - +fi AM_CONDITIONAL([HAVE_PYTHON], - [test "x$PYTHON_INCLUDEDIR" != "x" && test "x$PYTHON_SITE_PACKAGES" != "x"]) + [test "x$enable_python" == "xyes"]) + +AC_ARG_ENABLE([ruby], + AS_HELP_STRING([--enable-ruby], [Enable building optional Ruby bindings]), + [], + [enable_ruby=no]) +if test "x$enable_ruby" == "xyes"; then 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]) +if test -z "x$HAVE_LIBRUBY"; then + AC_MSG_ERROR([Ruby library not found so cannot build Ruby bindings]) +fi +if test "x$RAKE" == "xno"; then + AC_MSG_ERROR([rake not found]) +fi +fi AM_CONDITIONAL([HAVE_RUBY], - [test "x$RAKE" != "xno" && test -n "$HAVE_LIBRUBY"]) + [test "x$enable_ruby" == "xyes"]) dnl Check for Java. AC_ARG_WITH(java_home, @@ -728,14 +776,29 @@ AC_SUBST(JAR_INSTALL_DIR) AC_SUBST(JNI_INSTALL_DIR) AC_SUBST(JNI_VERSION_INFO) -AM_CONDITIONAL([HAVE_JAVA],[test -n "$JAVAC"]) +AM_CONDITIONAL([HAVE_JAVA],[test -n "$JAVAC" -a "x$with_java_home" != "xno"]) +AC_ARG_ENABLE([haskell], + AS_HELP_STRING([--enable-haskell], [Enable building optional Haskell bindings]), + [], + [enable_haskell=no]) +if test "x$enable_haskell" == "xyes"; then dnl Check for Haskell (GHC). -AC_CHECK_PROG([GHC],[ghc],[ghc],[no]) - +AC_CHECK_PROG([GHC],[ghc],[ghc],[AC_MSG_ERROR([GHC not found])]) +fi AM_CONDITIONAL([HAVE_HASKELL], - [test "x$GHC" != "xno"]) + [test "x$enable_haskell" = "xyes"]) +if test "x$enable_perl" == "xyes"; then +AC_ARG_WITH([inspector], + AS_HELP_STRING([--with-inspector], [Enable building virt-inspector]), + [], + [with_inspector=no]) +AC_ARG_WITH([tools], + AS_HELP_STRING([--with-tools], [Enable building virt-* tools]), + [], + [with_tools=no]) +if test "x$with_inspector" == "xyes" -o "x$with_tools" == "xyes"; then 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 @@ -748,22 +811,36 @@ for pm in Pod::Usage Getopt::Long Sys::Virt Data::Dumper XML::Writer Locale::Tex 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_ERROR([some Perl modules required to compile virt-inspector and/or the other virt-* tools are missing]) +fi +fi fi - AM_CONDITIONAL([HAVE_INSPECTOR], - [test "x$PERL" != "xno" && test "x$missing_perl_modules" != "xyes"]) + [test "x$with_inspector" == "xyes"]) AM_CONDITIONAL([HAVE_TOOLS], - [test "x$PERL" != "xno" && test "x$missing_perl_modules" != "xyes"]) + [test "x$with_tools" == "xyes"]) + +AC_ARG_WITH([po4a], + AS_HELP_STRING([--with-po4a], [Use po4a tool for translating documentation]), + [], + [with_po4a=no]) +if test "x$with_po4a" == "xyes"; then 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"]) +AC_CHECK_PROG([PO4A],[po4a],[po4a],[AC_MSG_ERROR([po4a not found])]) +fi +AM_CONDITIONAL([HAVE_PO4A], [test "x$with_po4a" == "xyes"]) +AC_ARG_ENABLE([php], + AS_HELP_STRING([--enable-php], [Enable building optional php bindigns]), + [], + [enable_php=no]) +if test "x$enable_php" == "xyes"; then 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"]) +AC_CHECK_PROG([PHP],[php],[php],[AC_MSG_ERROR([php not found])]) +AC_CHECK_PROG([PHPIZE],[phpize],[phpize],[AC_MSG_ERROR([phpize not found])]) +fi +AM_CONDITIONAL([HAVE_PHP], [test "x$enable_php" == "xyes"]) dnl Library versioning. MAX_PROC_NR=`cat $srcdir/src/MAX_PROC_NR` diff --git a/po-docs/ja/Makefile.am b/po-docs/ja/Makefile.am index 83a2340..7fed340 100644 --- a/po-docs/ja/Makefile.am +++ b/po-docs/ja/Makefile.am @@ -41,10 +41,10 @@ EXTRA_DIST = \ libguestfs-test-tool.pod \ $(wildcard virt-*.pl) -all-local: $(MANPAGES) - if HAVE_PO4A +all-local: $(MANPAGES) + guestfs.3: guestfs.pod guestfs-actions.pod guestfs-availability.pod guestfs-structs.pod sed \ -e '/@ACTIONS@/rguestfs-actions.pod' \ @@ -95,6 +95,10 @@ virt-%.1: virt-%.pl --release "$(PACKAGE_NAME)-$(PACKAGE_VERSION)" \ $< > $@-t && mv $@-t $@ +else + +all-local: + endif # XXX Can automake do this properly? diff --git a/src/Makefile.am b/src/Makefile.am index 4bcf7e9..0d7e198 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -26,7 +26,7 @@ generator_built = \ bindtests.c \ errnostring_gperf.gperf \ errnostring.c \ - errnostring.h + errnostring.h \ guestfs-actions.pod \ guestfs-availability.pod \ guestfs-structs.pod \