aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar David Bremner <david@tethera.net>2014-03-05 09:34:10 -0400
committerGravatar David Bremner <david@tethera.net>2014-03-09 10:41:09 -0300
commit6f8daa39895c600180530618abc0eb86d56500d0 (patch)
tree9601a145fac79a9e8f2d68c243719d5198868342
parentdf70fc4b4b7295f9f5c512c5e1e5c8c46a620944 (diff)
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.
-rw-r--r--Makefile2
-rw-r--r--Makefile.local2
-rw-r--r--doc/Makefile.local27
-rw-r--r--doc/mkdocdeps.py13
-rw-r--r--man/Makefile.local55
5 files changed, 41 insertions, 58 deletions
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)