From 3a5bf0517caa421efe9e3e64eeb96b0358480384 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Fri, 10 May 2013 09:55:09 -0500 Subject: [PATCH] build: always generate docs at dist time (bgo #700093) dist tarballs shouldn't ever be released without the documentation, and this allows us to build the tarballs with pre-generated docs that get installed on the end system, but don't need to be built there. So the end system doesn't need gtk-doc installed, only the dist system does. https://bugzilla.gnome.org/show_bug.cgi?id=700093 --- Makefile.am | 2 +- configure.ac | 27 ++++++++++++++++----------- docs/Makefile.am | 5 +---- docs/api/Makefile.am | 31 ++++++++++++------------------- man/Makefile.am | 34 +++++++++++++++++++++++----------- 5 files changed, 53 insertions(+), 46 deletions(-) diff --git a/Makefile.am b/Makefile.am index 2847616940..32fc74d47a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -32,7 +32,7 @@ EXTRA_DIST = \ DISTCHECK_CONFIGURE_FLAGS = \ --with-tests=yes \ - --with-docs=yes \ + --enable-gtk-doc \ --enable-more-warnings=yes \ --with-udev-dir=$$dc_install_base/lib/udev \ --with-wext=no \ diff --git a/configure.ac b/configure.ac index a8096aed98..27a3717b19 100644 --- a/configure.ac +++ b/configure.ac @@ -603,19 +603,14 @@ VAPIGEN_CHECK(0.17.1.24) # Tests, utilities and documentation AC_ARG_ENABLE(tests, AS_HELP_STRING([--enable-tests=root|yes|no], [Build NetworkManager tests (default: yes)])) AC_ARG_WITH(valgrind, AS_HELP_STRING([--with-valgrind=yes|no|path], [Use valgrind to memory-check the tests (default: yes)])) -AC_ARG_ENABLE(doc, AS_HELP_STRING([--enable-doc], [Build NetworkManager documentation (default: no)])) -# Fallback to --with-tests and with-docs +# Fallback to --with-tests AC_ARG_WITH(tests, AS_HELP_STRING([--with-tests], [Build NetworkManager tests (deprecated)])) -AC_ARG_WITH(docs, AS_HELP_STRING([--with-docs], [Build NetworkManager documentation (deprecated)])) AS_IF([test -n "$with_tests"], enable_tests="$with_tests") -AS_IF([test -n "$with_docs"], enable_doc="$with_docs") -# Default to --enable-tests --with-valgrind --disable-docs +# Default to --enable-tests --with-valgrind AS_IF([test -z "$enable_tests"], enable_tests="yes") AS_IF([test -z "$with_valgrind"], with_valgrind="yes") -AS_IF([test -z "$enable_doc"], enable_doc="no") # Normalize values AS_IF([test "$enable_tests" != "yes" -a "$enable_tests" != "root"], enable_tests="no") -AS_IF([test "$enable_doc" != "yes"], enable_doc="no") # Search for tools AS_IF([test "$with_valgrind" == "yes"], [AC_PATH_PROGS(with_valgrind, valgrind, no)]) @@ -625,11 +620,21 @@ AM_CONDITIONAL(RUN_ROOT_TESTS, test "$enable_tests" == "root") AS_IF([test "$with_valgrind" != "no"], AC_SUBST(VALGRIND_RULES, "TESTS_ENVIRONMENT = G_SLICE=always-malloc G_DEBUG=gc-friendly \$(LIBTOOL) --mode=execute $with_valgrind --quiet --error-exitcode=1 --leak-check=full --gen-suppressions=all --suppressions=\$(top_srcdir)/valgrind.suppressions"), AC_SUBST(VALGRIND_RULES, [])) -AM_CONDITIONAL(ENABLE_DOC, test "$enable_doc" = "yes") -# Add gtk-doc conditionals -enable_gtk_doc="$enable_doc" + GTK_DOC_CHECK(1.0) +# check for pregenerated manpages to be installed +install_pregen_manpages=no +if test "$enable_gtk_doc" != "yes" \ + -a -f man/NetworkManager.conf.5 \ + -a -f man/nm-settings.5 \ + -a -f man/NetworkManager.8; then + install_pregen_manpages=yes +fi +AM_CONDITIONAL(INSTALL_PREGEN_MANPAGES, test "x${install_pregen_manpages}" = "xyes") +echo " man: $install_pregen_manpages" + + AC_CONFIG_FILES([ Makefile include/Makefile @@ -762,7 +767,7 @@ echo " dhcpcd: $with_dhcpcd" echo echo "Miscellaneous:" -echo " documentation: $enable_doc" +echo " documentation: $enable_gtk_doc" echo " tests: $enable_tests" echo " valgrind: $with_valgrind" echo " code coverage: $enable_code_coverage" diff --git a/docs/Makefile.am b/docs/Makefile.am index ee8892204f..fd2c82c832 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -1,5 +1,2 @@ -if ENABLE_DOC +SUBDIRS = libnm-glib libnm-util api -SUBDIRS = api libnm-glib libnm-util - -endif diff --git a/docs/api/Makefile.am b/docs/api/Makefile.am index 98dd3de75c..0984d21619 100644 --- a/docs/api/Makefile.am +++ b/docs/api/Makefile.am @@ -1,7 +1,5 @@ AUTOMAKE_OPTIONS = 1.7 -if ENABLE_DOC - XSLTPROC = xsltproc --xinclude --nonet XMLS = $(wildcard $(top_srcdir)/introspection/nm-*.xml) @@ -15,21 +13,24 @@ OTHER_FILES= \ GENERATED_FILES = spec.html settings-spec.xml +if ENABLE_GTK_DOC + spec.html: $(XMLS) $(OTHER_FILES) html-build.stamp $(XSLTPROC) --path "$(top_builddir)/introspection:$(top_srcdir)/introspection" $(top_srcdir)/tools/doc-generator.xsl $(top_builddir)/introspection/all.xml > $@ mkdir -p $(builddir)/html/ cp $@ $(builddir)/html/ -# settings-spec.xml should *not* be DISTed because it must be regenerated -# whenever the libnm-util source changes settings-spec.xml: $(top_builddir)/tools/generate-settings-spec $(top_builddir)/libnm-util/libnm-util.la - $(top_builddir)/tools/generate-settings-spec book $@ + rm -f $(builddir)/settings-spec.xml + $(top_builddir)/tools/generate-settings-spec book $(builddir)/settings-spec.xml + +all: $(GENERATED_FILES) + +endif # Top-level SGML file includes (depends on) settings-spec.xml $(DOC_MAIN_SGML_FILE): settings-spec.xml -all: $(GENERATED_FILES) - #################################### # The name of the module. @@ -56,17 +57,9 @@ include $(top_srcdir)/gtk-doc.make #################################### -EXTRA_DIST += spec.html -CLEANFILES += $(GENERATED_FILES) - -else - -EXTRA_DIST = -CLEANFILES = - -endif - -EXTRA_DIST += version.xml.in +EXTRA_DIST += version.xml.in $(GENERATED_FILES) CLEANFILES += html/* tmpl/* xml/* \ NetworkManager-sections.txt \ - NetworkManager-overrides.txt + NetworkManager-overrides.txt \ + $(GENERATED_FILES) + diff --git a/man/Makefile.am b/man/Makefile.am index b7694ca90f..5f8fb08f66 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -2,8 +2,6 @@ man_MANS = CLEANFILES = EXTRA_DIST = -if ENABLE_DOC - XSLTPROC = xsltproc XSLTPROC_FLAGS = \ @@ -17,6 +15,8 @@ XSLTPROC_FLAGS = \ XSLTPROC_MAN_FLAGS = $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl +if ENABLE_GTK_DOC + %.8: %.xml $(AM_V_GEN) xsltproc $(XSLTPROC_MAN_FLAGS) $< @@ -26,8 +26,8 @@ XSLTPROC_MAN_FLAGS = $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xs nm-settings.xml: $(top_builddir)/tools/generate-settings-spec $(top_builddir)/libnm-util/libnm-util.la rm -f $(builddir)/$@ $(top_builddir)/tools/generate-settings-spec refentry $(builddir)/$@ -CLEANFILES += nm-settings.xml +endif configure_generated_man_pages = \ nmcli.1 \ @@ -38,17 +38,29 @@ docbook_generated_man_pages = \ NetworkManager.8 \ NetworkManager.conf.5 -CLEANFILES += $(docbook_generated_man_pages) -EXTRA_DIST += $(docbook_generated_man_pages:.%=.xml) - docbook_autogenerated_man_pages = \ nm-settings.5 -CLEANFILES += $(docbook_autogenerated_man_pages) - -man_MANS += \ - $(configure_generated_man_pages) \ - $(docbook_generated_man_pages) \ +generated_man_pages = \ + $(docbook_generated_man_pages) \ $(docbook_autogenerated_man_pages) +EXTRA_DIST += \ + $(docbook_generated_man_pages:.%=.xml) \ + $(docbook_autogenerated_man_pages) + +CLEANFILES += \ + $(docbook_autogenerated_man_pages) \ + $(docbook_generated_man_pages) \ + nm-settings.xml + +man_MANS += $(configure_generated_man_pages) + +if ENABLE_GTK_DOC +man_MANS += $(generated_man_pages) +else +if INSTALL_PREGEN_MANPAGES +man_MANS += $(generated_man_pages) endif +endif +