unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
From: David Bremner <david@tethera.net>
To: notmuch@notmuchmail.org
Subject: [PATCH 3/4] doc: install sphinx version of man pages
Date: Wed,  5 Mar 2014 10:56:34 -0400	[thread overview]
Message-ID: <1394031395-8014-4-git-send-email-david@tethera.net> (raw)
In-Reply-To: <1394031395-8014-1-git-send-email-david@tethera.net>

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 39f0e62..f53bec0 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 174506c..5f797ad 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 4719247..19861a7 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: %
+	gzip -k -f $^
+
 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 0000000..2f4a959
--- /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 57910b7..0000000
--- 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)
-- 
1.8.5.3

  parent reply	other threads:[~2014-03-05 14:56 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-05 14:56 convert man pages to sphinx David Bremner
2014-03-05 14:56 ` [PATCH 1/4] doc: convert sphinx based docs David Bremner
2014-03-05 14:56 ` [PATCH 2/4] doc: add target rst2man to build man pages using rst2man David Bremner
2014-03-05 14:56 ` David Bremner [this message]
2014-03-05 14:56 ` [PATCH 4/4] doc: automagically read version from file David Bremner
2014-03-05 18:11 ` convert man pages to sphinx Tomi Ollila
2014-03-06 13:20   ` Sphinx man pages, round n+2 David Bremner
2014-03-06 13:20     ` [PATCH v2 1/4] doc: convert sphinx based docs David Bremner
2014-03-06 13:20     ` [PATCH v2 2/4] doc: add target rst2man to build man pages using rst2man David Bremner
2014-03-06 13:20     ` [PATCH v2 3/4] doc: install sphinx version of man pages David Bremner
2014-03-06 13:20     ` [PATCH v2 4/4] doc: automagically read version from file David Bremner
2014-03-07 12:02     ` Sphinx man pages, round n+2 Tomi Ollila

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://notmuchmail.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1394031395-8014-4-git-send-email-david@tethera.net \
    --to=david@tethera.net \
    --cc=notmuch@notmuchmail.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).