unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
blob a8fee537d40adda1d8df834fd61b2de07f84b33c 5168 bytes (raw)
name: doc/Makefile.local 	 # note: path name is non-authoritative(*)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
 
# -*- makefile -*-

dir := doc

# You can set these variables from the command line.
SPHINXOPTS    := -q
SPHINXBUILD   = sphinx-build
DOCBUILDDIR      := $(dir)/_build

# Internal variables.
ALLSPHINXOPTS   := -d $(DOCBUILDDIR)/doctrees $(SPHINXOPTS) $(srcdir)/$(dir)
APIMAN		:= $(DOCBUILDDIR)/man/man3/notmuch.3
DOXYFILE	:= $(srcdir)/$(dir)/doxygen.cfg

MAN1_RST := $(wildcard $(srcdir)/doc/man1/*.rst)
MAN5_RST := $(wildcard $(srcdir)/doc/man5/*.rst)
MAN7_RST := $(wildcard $(srcdir)/doc/man7/*.rst)
MAN_RST_FILES := $(MAN1_RST) $(MAN5_RST) $(MAN7_RST)
ALL_RST_FILES := $(MAN_RST_FILES) $(srcdir)/doc/notmuch-emacs.rst

MAN1_ROFF := $(patsubst $(srcdir)/doc/%,$(DOCBUILDDIR)/man/%,$(MAN1_RST:.rst=.1))
MAN5_ROFF := $(patsubst $(srcdir)/doc/%,$(DOCBUILDDIR)/man/%,$(MAN5_RST:.rst=.5))
MAN7_ROFF := $(patsubst $(srcdir)/doc/%,$(DOCBUILDDIR)/man/%,$(MAN7_RST:.rst=.7))
MAN_ROFF_FILES := $(MAN1_ROFF) $(MAN5_ROFF) $(MAN7_ROFF)

MAN_GZIP_FILES := $(addsuffix .gz,${MAN_ROFF_FILES})

MAN1_TEXI := $(patsubst $(srcdir)/doc/man1/%.rst,$(DOCBUILDDIR)/texinfo/%.texi,$(MAN1_RST))
MAN5_TEXI := $(patsubst $(srcdir)/doc/man5/%.rst,$(DOCBUILDDIR)/texinfo/%.texi,$(MAN5_RST))
MAN7_TEXI := $(patsubst $(srcdir)/doc/man7/%.rst,$(DOCBUILDDIR)/texinfo/%.texi,$(MAN7_RST))
INFO_TEXI_FILES := $(MAN1_TEXI) $(MAN5_TEXI) $(MAN7_TEXI) $(DOCBUILDDIR)/texinfo/notmuch-emacs.texi
INFO_INFO_FILES := $(INFO_TEXI_FILES:.texi=.info)

.PHONY: sphinx-html sphinx-texinfo sphinx-info

.PHONY: install-man build-man apidocs install-apidocs

%.gz: %
	rm -f $@ && gzip --stdout $^ > $@

ifeq ($(WITH_EMACS),1)
$(DOCBUILDDIR)/.roff.stamp sphinx-html sphinx-texinfo: docstring.stamp
endif

# Sequentialize the calls to sphinx-build to avoid races with
# reading/writing cached state. This uses GNU make specific
# "order-only" prerequisites.

sphinx-html: | $(DOCBUILDDIR)/.roff.stamp
sphinx-texinfo: | sphinx-html
sphinx-info: | sphinx-texinfo

sphinx-html: $(DOCBUILDDIR)/.html.stamp

$(DOCBUILDDIR)/.html.stamp: $(ALL_RST_FILES)
	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(DOCBUILDDIR)/html
	touch $@

sphinx-texinfo: $(DOCBUILDDIR)/.texi.stamp

$(DOCBUILDDIR)/.texi.stamp: $(ALL_RST_FILES)
	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(DOCBUILDDIR)/texinfo
	touch $@

sphinx-info: sphinx-texinfo
	$(MAKE) -C $(DOCBUILDDIR)/texinfo info

# Use the man page converter that is available. We should never depend
# on MAN_ROFF_FILES if a converter is not available.
${MAN_ROFF_FILES}: $(DOCBUILDDIR)/.roff.stamp

# By using $(DOCBUILDDIR)/.roff.stamp instead of ${MAN_ROFF_FILES}, we
# convey to make that a single invocation of this recipe builds all
# of the roff files.  This prevents parallel make from starting an
# instance of this recipe for each roff file.
$(DOCBUILDDIR)/.roff.stamp: ${MAN_RST_FILES}
ifeq ($(HAVE_SPHINX),1)
	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(DOCBUILDDIR)/man
	for section in 1 5 7; do \
	    mkdir -p $(DOCBUILDDIR)/man/man$${section}; \
	    mv $(DOCBUILDDIR)/man/*.$${section} $(DOCBUILDDIR)/man/man$${section}; \
	done
else
	@echo "Fatal: build dependency fail."
	@false
endif
	touch $@

install-man: install-apidocs

ifeq ($(HAVE_DOXYGEN),1)
MAN_GZIP_FILES += ${APIMAN}.gz
apidocs: $(APIMAN)
install-apidocs: ${APIMAN}.gz
	mkdir -p "$(DESTDIR)$(mandir)/man3"
	install -m0644 $(filter %.3.gz,$(MAN_GZIP_FILES)) $(DESTDIR)/$(mandir)/man3

$(APIMAN): $(dir)/config.dox $(srcdir)/$(dir)/doxygen.cfg $(srcdir)/lib/notmuch.h
	mkdir -p $(DOCBUILDDIR)/man/man3
	doxygen $(DOXYFILE)
	rm -f $(DOCBUILDDIR)/man/man3/_*.3
	perl -pi -e 's/^[.]RI "\\fI/.RI "\\fP/' $(APIMAN)
else
apidocs:
install-apidocs:
endif

# Do not try to build or install man pages if a man page converter is
# not available.
ifeq ($(HAVE_SPHINX),0)
build-man:
install-man:
	@echo "No sphinx, will not install man pages."
else
build-man: ${MAN_GZIP_FILES}
install-man: ${MAN_GZIP_FILES}
	mkdir -m0755 -p "$(DESTDIR)$(mandir)/man1"
	mkdir -m0755 -p "$(DESTDIR)$(mandir)/man5"
	mkdir -m0755 -p "$(DESTDIR)$(mandir)/man7"
	install -m0644 $(filter %.1.gz,$(MAN_GZIP_FILES)) $(DESTDIR)/$(mandir)/man1
	install -m0644 $(filter %.5.gz,$(MAN_GZIP_FILES)) $(DESTDIR)/$(mandir)/man5
	install -m0644 $(filter %.7.gz,$(MAN_GZIP_FILES)) $(DESTDIR)/$(mandir)/man7
	cd $(DESTDIR)/$(mandir)/man1 && ln -sf notmuch.1.gz notmuch-setup.1.gz
endif

ifneq ($(HAVE_SPHINX)$(HAVE_MAKEINFO)$(HAVE_EMACS),111)
build-info:
	@echo "Missing prerequisites, not building info pages"
else
build-info: sphinx-info
endif

ifneq ($(HAVE_SPHINX)$(HAVE_MAKEINFO)$(HAVE_INSTALL_INFO)$(HAVE_EMACS),1111)
install-info:
	@echo "Missing prerequisites, not installing info pages"
else
install-info: build-info
	mkdir -m0755 -p "$(DESTDIR)$(infodir)"
	install -m0644 $(INFO_INFO_FILES) $(DESTDIR)$(infodir)
	for file in $(INFO_INFO_FILES); do install-info $$file $(DESTDIR)$(infodir)/dir; done
endif

$(dir)/config.dox: version.stamp
	echo "PROJECT_NAME = \"Notmuch $(VERSION)\"" > $@
	echo "INPUT=${srcdir}/lib/notmuch.h" >> $@

CLEAN := $(CLEAN) $(DOCBUILDDIR) $(DOCBUILDDIR)/.roff.stamp $(DOCBUILDDIR)/.texi.stamp
CLEAN := $(CLEAN) $(DOCBUILDDIR)/.html.stamp
CLEAN := $(CLEAN) $(MAN_GZIP_FILES) $(MAN_ROFF_FILES) $(dir)/conf.pyc $(dir)/config.dox

debug log:

solving a8fee537 ...
found a8fee537 in https://yhetil.org/notmuch/20190421171245.19729-3-david@tethera.net/
found 2a701646 in https://yhetil.org/notmuch/20190421171245.19729-2-david@tethera.net/
found c148d74a in https://yhetil.org/notmuch/20190421171245.19729-1-david@tethera.net/
found dfe62295 in https://yhetil.org/notmuch.git/
preparing index
index prepared:
100644 dfe62295d0965fed478a75d06361ca123ae934bc	doc/Makefile.local

applying [1/3] https://yhetil.org/notmuch/20190421171245.19729-1-david@tethera.net/
diff --git a/doc/Makefile.local b/doc/Makefile.local
index dfe62295..c148d74a 100644


applying [2/3] https://yhetil.org/notmuch/20190421171245.19729-2-david@tethera.net/
diff --git a/doc/Makefile.local b/doc/Makefile.local
index c148d74a..2a701646 100644


applying [3/3] https://yhetil.org/notmuch/20190421171245.19729-3-david@tethera.net/
diff --git a/doc/Makefile.local b/doc/Makefile.local
index 2a701646..a8fee537 100644

Checking patch doc/Makefile.local...
Applied patch doc/Makefile.local cleanly.
Checking patch doc/Makefile.local...
Applied patch doc/Makefile.local cleanly.
Checking patch doc/Makefile.local...
Applied patch doc/Makefile.local cleanly.

index at:
100644 a8fee537d40adda1d8df834fd61b2de07f84b33c	doc/Makefile.local

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

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).