From 6f8daa39895c600180530618abc0eb86d56500d0 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Wed, 5 Mar 2014 09:34:10 -0400 Subject: [PATCH] doc: install sphinx version of man pages The python script mkdocdeps.py is used to import the list of man pages from the sphinx configuration to make. This will delete the (release only) target update-man-versions. This will be replaced in a followup commit. --- Makefile | 2 +- Makefile.local | 2 +- doc/Makefile.local | 27 ++++++++++++++++++++++- doc/mkdocdeps.py | 13 +++++++++++ man/Makefile.local | 55 ---------------------------------------------- 5 files changed, 41 insertions(+), 58 deletions(-) create mode 100644 doc/mkdocdeps.py delete mode 100644 man/Makefile.local diff --git a/Makefile b/Makefile index 39f0e62f..f53bec0e 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ all: # List all subdirectories here. Each contains its own Makefile.local. # Use of '=', without '+=', seems to be required for out-of-tree # builds to work. -subdirs = compat completion doc emacs lib man parse-time-string performance-test util test +subdirs = compat completion doc emacs lib parse-time-string performance-test util test # We make all targets depend on the Makefiles themselves. global_deps = Makefile Makefile.config Makefile.local \ diff --git a/Makefile.local b/Makefile.local index 174506c5..5f797ad0 100644 --- a/Makefile.local +++ b/Makefile.local @@ -95,7 +95,7 @@ dist: $(TAR_FILE) .PHONY: update-versions -update-versions: update-man-versions +update-versions: sed -i "s/^__VERSION__[[:blank:]]*=.*$$/__VERSION__ = \'${VERSION}\'/" $(PV_FILE) # We invoke make recursively only to force ordering of our phony diff --git a/doc/Makefile.local b/doc/Makefile.local index 47192473..fd64f708 100644 --- a/doc/Makefile.local +++ b/doc/Makefile.local @@ -8,6 +8,7 @@ SPHINXBUILD = sphinx-build DOCBUILDDIR := $(dir)/_build prerst2man := python $(dir)/prerst2man.py +mkdocdeps := python $(dir)/mkdocdeps.py # Internal variables. ALLSPHINXOPTS := -d $(DOCBUILDDIR)/doctrees $(SPHINXOPTS) $(dir) @@ -15,6 +16,11 @@ ALLSPHINXOPTS := -d $(DOCBUILDDIR)/doctrees $(SPHINXOPTS) $(dir) .PHONY: sphinx-html sphinx-man sphinx-texinfo sphinx-info .PHONY: rst2man +.PHONY: install-man + +%.gz: % + rm -f $@ && gzip --stdout $^ > $@ + sphinx-html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(DOCBUILDDIR)/html @@ -31,4 +37,23 @@ sphinx-info: sphinx-texinfo rst2man: $(prerst2man) $(DOCBUILDDIR)/.. $(DOCBUILDDIR)/man -CLEAN := $(CLEAN) $(DOCBUILDDIR) +-include $(dir)/docdeps.mk + +MAN_GZIP_FILES := $(addsuffix .gz,${MAN_ROFF_FILES}) + +${MAN_ROFF_FILES} : sphinx-man + +install-man: ${MAN_GZIP_FILES} + mkdir -p "$(DESTDIR)$(mandir)/man1" + mkdir -p "$(DESTDIR)$(mandir)/man5" + mkdir -p "$(DESTDIR)$(mandir)/man7" + install -m0644 $(DOCBUILDDIR)/man/*.1.gz $(DESTDIR)/$(mandir)/man1 + install -m0644 $(DOCBUILDDIR)/man/*.5.gz $(DESTDIR)/$(mandir)/man5 + install -m0644 $(DOCBUILDDIR)/man/*.7.gz $(DESTDIR)/$(mandir)/man7 + cd $(DESTDIR)/$(mandir)/man1 && ln -sf notmuch.1.gz notmuch-setup.1.gz + + +$(dir)/docdeps.mk: $(dir)/conf.py $(dir)/mkdocdeps.py + $(mkdocdeps) $< $(DOCBUILDDIR) $@ + +CLEAN := $(CLEAN) $(DOCBUILDDIR) $(dir)/docdeps.mk diff --git a/doc/mkdocdeps.py b/doc/mkdocdeps.py new file mode 100644 index 00000000..2f4a9596 --- /dev/null +++ b/doc/mkdocdeps.py @@ -0,0 +1,13 @@ +from sys import argv +conffile = argv[1] +builddir = argv[2] +outfile = argv[3] + +execfile(conffile) + +roff_files = [] +out=open(outfile,'w') +for page in man_pages: + roff_files = roff_files + ["{0:s}/man/{1:s}.{2:d}".format(builddir,page[1],page[4])] + +out.write ('MAN_ROFF_FILES := ' + ' \\\n\t'.join(roff_files)+'\n') diff --git a/man/Makefile.local b/man/Makefile.local deleted file mode 100644 index 57910b76..00000000 --- a/man/Makefile.local +++ /dev/null @@ -1,55 +0,0 @@ -# -*- Makefile -*- - -dir := man - -# this variable seems to be needed to prevent lazy evaluation causing -# problems with $(dir) changing values. -MAIN_PAGE := $(dir)/man1/notmuch.1 - -MAN1 := \ - $(MAIN_PAGE) \ - $(dir)/man1/notmuch-compact.1 \ - $(dir)/man1/notmuch-config.1 \ - $(dir)/man1/notmuch-count.1 \ - $(dir)/man1/notmuch-dump.1 \ - $(dir)/man1/notmuch-restore.1 \ - $(dir)/man1/notmuch-insert.1 \ - $(dir)/man1/notmuch-new.1 \ - $(dir)/man1/notmuch-reply.1 \ - $(dir)/man1/notmuch-search.1 \ - $(dir)/man1/notmuch-show.1 \ - $(dir)/man1/notmuch-tag.1 - -MAN5 := $(dir)/man5/notmuch-hooks.5 -MAN7 := $(dir)/man7/notmuch-search-terms.7 - -MAN1_GZ := $(addsuffix .gz,$(MAN1)) -MAN5_GZ := $(addsuffix .gz,$(MAN5)) -MAN7_GZ := $(addsuffix .gz,$(MAN7)) - -MAN_SOURCE := $(MAN1) $(MAN5) $(MAN7) -MAN_BACKUP := $(addsuffix .bak,$(MAN_SOURCE)) -COMPRESSED_MAN := $(MAN1_GZ) $(MAN5_GZ) $(MAN7_GZ) - -%.gz: % - gzip --stdout $^ > $@ - -.PHONY: install-man update-man-versions - -install-man: $(COMPRESSED_MAN) - mkdir -p "$(DESTDIR)$(mandir)/man1" - mkdir -p "$(DESTDIR)$(mandir)/man5" - mkdir -p "$(DESTDIR)$(mandir)/man7" - install -m0644 $(MAN1_GZ) $(DESTDIR)/$(mandir)/man1 - install -m0644 $(MAN5_GZ) $(DESTDIR)/$(mandir)/man5 - install -m0644 $(MAN7_GZ) $(DESTDIR)/$(mandir)/man7 - cd $(DESTDIR)/$(mandir)/man1 && ln -sf notmuch.1.gz notmuch-setup.1.gz - -update-man-versions: $(MAN_SOURCE) - for file in $(MAN_SOURCE); do \ - cp $$file $$file.bak ; \ - sed "s/^.TH NOTMUCH\([^[:blank:]]*\) \([1-9]\) .*$$/.TH NOTMUCH\1 \2 ${DATE} \"Notmuch ${VERSION}\"/" \ - < $$file.bak > $$file; \ - done - -CLEAN := $(CLEAN) $(COMPRESSED_MAN) $(MAN_BACKUP)