1 Return-Path: <bremner@tethera.net>
\r
2 X-Original-To: notmuch@notmuchmail.org
\r
3 Delivered-To: notmuch@notmuchmail.org
\r
4 Received: from localhost (localhost [127.0.0.1])
\r
5 by olra.theworths.org (Postfix) with ESMTP id EEC6E429E31
\r
6 for <notmuch@notmuchmail.org>; Wed, 12 Mar 2014 20:21:45 -0700 (PDT)
\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org
\r
11 X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none]
\r
13 Received: from olra.theworths.org ([127.0.0.1])
\r
14 by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)
\r
15 with ESMTP id zdbu2KbV-XAh for <notmuch@notmuchmail.org>;
\r
16 Wed, 12 Mar 2014 20:21:41 -0700 (PDT)
\r
17 Received: from yantan.tethera.net (yantan.tethera.net [199.188.72.155])
\r
18 (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
\r
19 (No client certificate requested)
\r
20 by olra.theworths.org (Postfix) with ESMTPS id E9314431FC2
\r
21 for <notmuch@notmuchmail.org>; Wed, 12 Mar 2014 20:21:39 -0700 (PDT)
\r
22 Received: from remotemail by yantan.tethera.net with local (Exim 4.80)
\r
23 (envelope-from <bremner@tethera.net>)
\r
24 id 1WNwDD-0000Cq-K1; Thu, 13 Mar 2014 00:21:39 -0300
\r
25 Received: (nullmailer pid 25675 invoked by uid 1000); Thu, 13 Mar 2014
\r
27 From: David Bremner <david@tethera.net>
\r
28 To: notmuch@notmuchmail.org
\r
29 Subject: [Patch v3 1/4] doc: build man pages at build time; introduce
\r
30 HAVE_SPHINX, HAVE_RST2MAN
\r
31 Date: Thu, 13 Mar 2014 00:21:14 -0300
\r
32 Message-Id: <1394680877-25572-2-git-send-email-david@tethera.net>
\r
33 X-Mailer: git-send-email 1.8.5.3
\r
34 In-Reply-To: <1394680877-25572-1-git-send-email-david@tethera.net>
\r
35 References: <m238iozjmc.fsf@guru.guru-group.fi>
\r
36 <1394680877-25572-1-git-send-email-david@tethera.net>
\r
37 X-BeenThere: notmuch@notmuchmail.org
\r
38 X-Mailman-Version: 2.1.13
\r
40 List-Id: "Use and development of the notmuch mail system."
\r
41 <notmuch.notmuchmail.org>
\r
42 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,
\r
43 <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>
\r
44 List-Archive: <http://notmuchmail.org/pipermail/notmuch>
\r
45 List-Post: <mailto:notmuch@notmuchmail.org>
\r
46 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>
\r
47 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,
\r
48 <mailto:notmuch-request@notmuchmail.org?subject=subscribe>
\r
49 X-List-Received-Date: Thu, 13 Mar 2014 03:21:46 -0000
\r
51 This helps avoid build artifacts (namely, nroff and gzipped-nroff man
\r
52 pages) owned by root.
\r
54 The variables allow choosing which generator to use for the man page.
\r
55 These will be hooked to configure in a following commit.
\r
57 Makefile.local | 2 +-
\r
58 doc/Makefile.local | 31 ++++++++++++++++++-------------
\r
59 doc/mkdocdeps.py | 3 +++
\r
60 3 files changed, 22 insertions(+), 14 deletions(-)
\r
62 diff --git a/Makefile.local b/Makefile.local
\r
63 index 5f797ad..cb7b106 100644
\r
64 --- a/Makefile.local
\r
65 +++ b/Makefile.local
\r
66 @@ -53,7 +53,7 @@ endif
\r
67 FINAL_LIBNOTMUCH_LDFLAGS = $(LDFLAGS) $(AS_NEEDED_LDFLAGS) $(CONFIGURE_LDFLAGS)
\r
70 -all: notmuch notmuch-shared
\r
71 +all: notmuch notmuch-shared build-man
\r
72 ifeq ($(MAKECMDGOALS),)
\r
73 ifeq ($(shell cat .first-build-message 2>/dev/null),)
\r
74 @NOTMUCH_FIRST_BUILD=1 $(MAKE) --no-print-directory all
\r
75 diff --git a/doc/Makefile.local b/doc/Makefile.local
\r
76 index fd64f70..23f4095 100644
\r
77 --- a/doc/Makefile.local
\r
78 +++ b/doc/Makefile.local
\r
79 @@ -13,10 +13,9 @@ mkdocdeps := python $(dir)/mkdocdeps.py
\r
80 # Internal variables.
\r
81 ALLSPHINXOPTS := -d $(DOCBUILDDIR)/doctrees $(SPHINXOPTS) $(dir)
\r
83 -.PHONY: sphinx-html sphinx-man sphinx-texinfo sphinx-info
\r
85 +.PHONY: sphinx-html sphinx-texinfo sphinx-info
\r
87 -.PHONY: install-man
\r
88 +.PHONY: install-man build-man
\r
91 rm -f $@ && gzip --stdout $^ > $@
\r
92 @@ -24,24 +23,30 @@ ALLSPHINXOPTS := -d $(DOCBUILDDIR)/doctrees $(SPHINXOPTS) $(dir)
\r
94 $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(DOCBUILDDIR)/html
\r
97 - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(DOCBUILDDIR)/man
\r
100 $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(DOCBUILDDIR)/texinfo
\r
102 sphinx-info: sphinx-texinfo
\r
103 make -C $(DOCBUILDDIR)/texinfo info
\r
105 -# fallback target in case sphinx not installed
\r
107 - $(prerst2man) $(DOCBUILDDIR)/.. $(DOCBUILDDIR)/man
\r
109 -include $(dir)/docdeps.mk
\r
111 MAN_GZIP_FILES := $(addsuffix .gz,${MAN_ROFF_FILES})
\r
113 -${MAN_ROFF_FILES} : sphinx-man
\r
114 +build-man: ${MAN_GZIP_FILES}
\r
116 +${MAN_ROFF_FILES}: ${dir}/man.stamp
\r
118 +$(dir)/man.stamp: ${MAN_RST_FILES}
\r
119 +ifeq ($(HAVE_SPHINX),1)
\r
120 + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(DOCBUILDDIR)/man
\r
122 +else ifeq ($(HAVE_RST2MAN),1)
\r
123 + $(prerst2man) $(DOCBUILDDIR)/.. $(DOCBUILDDIR)/man
\r
126 + @echo "No sphinx or rst2man, will not install man pages."
\r
129 install-man: ${MAN_GZIP_FILES}
\r
130 mkdir -p "$(DESTDIR)$(mandir)/man1"
\r
131 @@ -52,8 +57,8 @@ install-man: ${MAN_GZIP_FILES}
\r
132 install -m0644 $(DOCBUILDDIR)/man/*.7.gz $(DESTDIR)/$(mandir)/man7
\r
133 cd $(DESTDIR)/$(mandir)/man1 && ln -sf notmuch.1.gz notmuch-setup.1.gz
\r
136 $(dir)/docdeps.mk: $(dir)/conf.py $(dir)/mkdocdeps.py
\r
137 $(mkdocdeps) $< $(DOCBUILDDIR) $@
\r
139 -CLEAN := $(CLEAN) $(DOCBUILDDIR) $(dir)/docdeps.mk
\r
140 +CLEAN := $(CLEAN) $(DOCBUILDDIR) $(dir)/docdeps.mk $(dir)/man.stamp
\r
141 +CLEAN := $(CLEAN) $(MAN_GZIP_FILES) $(MAN_ROFF_FILES)
\r
142 diff --git a/doc/mkdocdeps.py b/doc/mkdocdeps.py
\r
143 index 2f4a959..e61bea6 100644
\r
144 --- a/doc/mkdocdeps.py
\r
145 +++ b/doc/mkdocdeps.py
\r
146 @@ -6,8 +6,11 @@ outfile = argv[3]
\r
151 out=open(outfile,'w')
\r
152 for page in man_pages:
\r
153 + rst_files = rst_files + ["doc/{0:s}.rst".format(page[0])]
\r
154 roff_files = roff_files + ["{0:s}/man/{1:s}.{2:d}".format(builddir,page[1],page[4])]
\r
156 out.write ('MAN_ROFF_FILES := ' + ' \\\n\t'.join(roff_files)+'\n')
\r
157 +out.write ('MAN_RST_FILES := ' + ' \\\n\t'.join(rst_files)+'\n')
\r