From 07c77b51d33c23d3ea28d588adc43b6c5ec5c20f Mon Sep 17 00:00:00 2001 From: Tom Yu Date: Wed, 17 Oct 2012 18:12:52 -0400 Subject: Generate and use version.py for Sphinx Sphinx's idea of the version number appears in the man pages and compiled PDF documents, and shows up as metadata in the generated HTML sources. Extract the version information from the master source (patchlevel.h) into a form usable by Sphinx. ticket: 7433 tags: pullup --- src/doc/Makefile.in | 15 ++++++++++++--- src/doc/version.py.in | 21 +++++++++++++++++++++ src/man/Makefile.in | 5 ++++- 3 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 src/doc/version.py.in (limited to 'src') diff --git a/src/doc/Makefile.in b/src/doc/Makefile.in index 4fcbb67a09..2413068645 100644 --- a/src/doc/Makefile.in +++ b/src/doc/Makefile.in @@ -57,7 +57,7 @@ NOTICE: notice.txt # Use doxygen to generate API documentation, translate it into RST # format, and then create a composite of $(docsrc)'s RST and the # generated files in rst_composite. Used by the html and substhtml targets. -composite: Doxyfile +composite: Doxyfile $(docsrc)/version.py rm -rf doxy rst_apiref rst_composite $(DOXYGEN) cwd=`pwd`; cd $(docsrc)/tools && \ @@ -70,15 +70,17 @@ composite: Doxyfile cp rst_apiref/*.rst rst_composite/appldev/refs/api cp rst_apiref/types/*.rst rst_composite/appldev/refs/types cp rst_apiref/macros/*.rst rst_composite/appldev/refs/macros + cp $(docsrc)/version.py rst_composite # Must use a separate source dir for sphinx text builds, since the text # engine cannot handle the row spanning cells in fancy tables that we use -rst_notice: $(docsrc)/notice.rst $(docsrc)/txt_conf.py +rst_notice: $(docsrc)/notice.rst $(docsrc)/txt_conf.py $(docsrc)/version.py mkdir -p rst_notice # reST needs backslashes before parens in this macro definition. sed -e 's/include:: /|copy| replace:: \\(C\\)/' \ < $(docsrc)/notice.rst > rst_notice/notice.rst cp $(docsrc)/txt_conf.py rst_notice/conf.py + cp $(docsrc)/version.py rst_notice Doxyfile: $(srcdir)/Doxyfile.in sed -e 's|@SRC@|$(top_srcdir)|g' \ @@ -95,6 +97,13 @@ paths.py: echo 'keytab = "``$(DEFKTNAME)``"' >> $@ echo 'ckeytab = "``$(DEFCKTNAME)``"' >> $@ +# Dummy rule that man/Makefile can invoke +version.py: $(docsrc)/version.py + +$(docsrc)/version.py: $(top_srcdir)/patchlevel.h $(srcdir)/version.py.in + $(RM) $@ + $(CC) -E -I$(top_srcdir) - < $(srcdir)/version.py.in > $@ + clean:: rm -rf doxy rst_apiref rst_composite rst_notice html_subst \ - Doxyfile paths.py + Doxyfile paths.py $(docsrc)/version.py diff --git a/src/doc/version.py.in b/src/doc/version.py.in new file mode 100644 index 0000000000..0a344a7797 --- /dev/null +++ b/src/doc/version.py.in @@ -0,0 +1,21 @@ +#include "patchlevel.h" + +r_major = KRB5_MAJOR_RELEASE +r_minor = KRB5_MINOR_RELEASE +r_patch = KRB5_PATCHLEVEL + +#ifdef KRB5_RELTAIL +r_tail = KRB5_RELTAIL +#else +r_tail = None +#endif +#ifdef KRB5_RELDATE +r_date = KRB5_RELDATE +#else +r_date = None +#endif +#ifdef KRB5_RELTAG +r_tag = KRB5_RELTAG +#else +r_date = None +#endif diff --git a/src/man/Makefile.in b/src/man/Makefile.in index 895b5c1ab6..19617eee20 100644 --- a/src/man/Makefile.in +++ b/src/man/Makefile.in @@ -24,7 +24,7 @@ docsrc=$(top_srcdir)/../doc # make -f Makefile.in clean # The sed command deletes some trailing whitespace that the docutils # manpage writer outputs near the end of its output files. -man: +man: $(docsrc)/version.py rm -rf rst_man $(SPHINX_BUILD) -q -t mansubs -b man $(docsrc) rst_man for f in rst_man/*.[0-9]; do \ @@ -32,6 +32,9 @@ man: sed -e '/^\.\\" $$/d' $$f > $(srcdir)/$$name.man; \ done +$(docsrc)/version.py: $(top_srcdir)/patchlevel.h + (cd $(BUILDTOP)/doc && make version.py) + .SUFFIXES: .man .sub .man.sub: -- cgit