doc: install sphinx version of man pages
authorDavid Bremner <david@tethera.net>
Wed, 5 Mar 2014 13:34:10 +0000 (09:34 -0400)
committerDavid Bremner <david@tethera.net>
Sun, 9 Mar 2014 13:41:09 +0000 (10:41 -0300)
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
Makefile.local
doc/Makefile.local
doc/mkdocdeps.py [new file with mode: 0644]
man/Makefile.local [deleted file]

index 39f0e62fbb24ed7b240714aa0ea14d57639919b7..f53bec0ea401a4b110f7e1c5d5e26c1896bcaf79 100644 (file)
--- 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 \
index 174506c52d90b8254b3157e22064b50a16989948..5f797ad004dd836c813272da585f66e0cc06c771 100644 (file)
@@ -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
index 471924736124af44a7138a3eb774530667d3e3ee..fd64f7081daf0361e34856c1a1a79b8ec48ac411 100644 (file)
@@ -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 (file)
index 0000000..2f4a959
--- /dev/null
@@ -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 (file)
index 57910b7..0000000
+++ /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)