@@ -41,7 +41,8 @@ man7dir=$(mandir)/man7
4141
4242ASCIIDOC =asciidoc
4343ASCIIDOC_EXTRA =
44- MANPAGE_XSL = callouts.xsl
44+ MANPAGE_XSL = manpage-normal.xsl
45+ XMLTO_EXTRA =
4546INSTALL? =install
4647RM ?= rm -f
4748DOC_REF = origin/man
@@ -59,13 +60,52 @@ endif
5960-include ../config.mak.autogen
6061-include ../config.mak
6162
63+ #
64+ # For asciidoc ...
65+ # -7.1.2, no extra settings are needed.
66+ # 8.0-, set ASCIIDOC8.
67+ #
68+
69+ #
70+ # For docbook-xsl ...
71+ # -1.68.1, set ASCIIDOC_NO_ROFF? (based on changelog from 1.73.0)
72+ # 1.69.0, no extra settings are needed?
73+ # 1.69.1-1.71.0, set DOCBOOK_SUPPRESS_SP?
74+ # 1.71.1, no extra settings are needed?
75+ # 1.72.0, set DOCBOOK_XSL_172.
76+ # 1.73.0-, set ASCIIDOC_NO_ROFF
77+ #
78+
79+ #
80+ # If you had been using DOCBOOK_XSL_172 in an attempt to get rid
81+ # of 'the ".ft C" problem' in your generated manpages, and you
82+ # instead ended up with weird characters around callouts, try
83+ # using ASCIIDOC_NO_ROFF instead (it works fine with ASCIIDOC8).
84+ #
85+
6286ifdef ASCIIDOC8
6387ASCIIDOC_EXTRA += -a asciidoc7compatible
6488endif
6589ifdef DOCBOOK_XSL_172
66- ASCIIDOC_EXTRA += -a docbook-xsl-172
90+ ASCIIDOC_EXTRA += -a git-asciidoc-no-roff
6791MANPAGE_XSL = manpage-1.72.xsl
92+ else
93+ ifdef ASCIIDOC_NO_ROFF
94+ # docbook-xsl after 1.72 needs the regular XSL, but will not
95+ # pass-thru raw roff codes from asciidoc.conf, so turn them off.
96+ ASCIIDOC_EXTRA += -a git-asciidoc-no-roff
97+ endif
6898endif
99+ ifdef MAN_BOLD_LITERAL
100+ XMLTO_EXTRA += -m manpage-bold-literal.xsl
101+ endif
102+ ifdef DOCBOOK_SUPPRESS_SP
103+ XMLTO_EXTRA += -m manpage-suppress-sp.xsl
104+ endif
105+
106+ SHELL_PATH ?= $(SHELL )
107+ # Shell quote;
108+ SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH ) )
69109
70110#
71111# Please note that there is a minor bug in asciidoc.
@@ -76,6 +116,32 @@ endif
76116# yourself - yes, all 6 characters of it!
77117#
78118
119+ QUIET_SUBDIR0 = +$(MAKE ) -C # space to separate -C and subdir
120+ QUIET_SUBDIR1 =
121+
122+ ifneq ($(findstring $(MAKEFLAGS ) ,w) ,w)
123+ PRINT_DIR = --no-print-directory
124+ else # "make -w"
125+ NO_SUBDIR = :
126+ endif
127+
128+ ifneq ($(findstring $(MAKEFLAGS ) ,s) ,s)
129+ ifndef V
130+ QUIET_ASCIIDOC = @echo ' ' ASCIIDOC $@;
131+ QUIET_XMLTO = @echo ' ' XMLTO $@;
132+ QUIET_DB2TEXI = @echo ' ' DB2TEXI $@;
133+ QUIET_MAKEINFO = @echo ' ' MAKEINFO $@;
134+ QUIET_DBLATEX = @echo ' ' DBLATEX $@;
135+ QUIET_XSLTPROC = @echo ' ' XSLTPROC $@;
136+ QUIET_GEN = @echo ' ' GEN $@;
137+ QUIET_STDERR = 2> /dev/null
138+ QUIET_SUBDIR0 = +@subdir=
139+ QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \
140+ $(MAKE) $(PRINT_DIR) -C $$subdir
141+ export V
142+ endif
143+ endif
144+
79145all : html man
80146
81147html : $(DOC_HTML )
@@ -116,19 +182,19 @@ install-pdf: pdf
116182 $(INSTALL ) -m 644 user-manual.pdf $(DESTDIR )$(pdfdir )
117183
118184install-html : html
119- sh ./install-webdoc.sh $(DESTDIR )$(htmldir )
185+ ' $(SHELL_PATH_SQ) ' ./install-webdoc.sh $(DESTDIR )$(htmldir )
120186
121187../GIT-VERSION-FILE : .FORCE-GIT-VERSION-FILE
122- $(MAKE ) -C ../ GIT-VERSION-FILE
188+ $(QUIET_SUBDIR0 ) ../ $( QUIET_SUBDIR1 ) GIT-VERSION-FILE
123189
124190-include ../GIT-VERSION-FILE
125191
126192#
127193# Determine "include::" file references in asciidoc files.
128194#
129195doc.dep : $(wildcard * .txt) build-docdep.perl
130- $(RM ) $@ + $@
131- $(PERL_PATH ) ./build-docdep.perl > $@ +
196+ $(QUIET_GEN )$( RM ) $@ + $@ && \
197+ $(PERL_PATH ) ./build-docdep.perl > $@ + $( QUIET_STDERR ) && \
132198 mv $@ + $@
133199
134200-include doc.dep
@@ -146,102 +212,105 @@ cmds_txt = cmds-ancillaryinterrogators.txt \
146212$(cmds_txt ) : cmd-list.made
147213
148214cmd-list.made : cmd-list.perl ../command-list.txt $(MAN1_TXT )
149- $(RM ) $@
150- $(PERL_PATH ) ./cmd-list.perl ../command-list.txt
215+ $(QUIET_GEN )$( RM ) $@ && \
216+ $(PERL_PATH ) ./cmd-list.perl ../command-list.txt $( QUIET_STDERR ) && \
151217 date > $@
152218
153219clean :
154220 $(RM ) * .xml * .xml+ * .html * .html+ * .1 * .5 * .7
155- $(RM ) * .texi * .texi+ git.info gitman.info
221+ $(RM ) * .texi * .texi+ * .texi++ git.info gitman.info
156222 $(RM ) howto-index.txt howto/* .html doc.dep
157223 $(RM ) technical/api-* .html technical/api-index.txt
158224 $(RM ) $(cmds_txt ) * .made
159225
160226$(MAN_HTML ) : % .html : % .txt
161- $(RM ) $@ + $@
227+ $(QUIET_ASCIIDOC )$( RM ) $@ + $@ && \
162228 $(ASCIIDOC ) -b xhtml11 -d manpage -f asciidoc.conf \
163- $(ASCIIDOC_EXTRA ) -agit_version=$(GIT_VERSION ) -o $@ + $<
229+ $(ASCIIDOC_EXTRA ) -agit_version=$(GIT_VERSION ) -o $@ + $< && \
164230 mv $@ + $@
165231
166232% .1 % .5 % .7 : % .xml
167- $(RM ) $@
168- xmlto -m $(MANPAGE_XSL ) man $<
233+ $(QUIET_XMLTO )$( RM ) $@ && \
234+ xmlto -m $(MANPAGE_XSL ) $( XMLTO_EXTRA ) man $<
169235
170236% .xml : % .txt
171- $(RM ) $@ + $@
237+ $(QUIET_ASCIIDOC )$( RM ) $@ + $@ && \
172238 $(ASCIIDOC ) -b docbook -d manpage -f asciidoc.conf \
173- $(ASCIIDOC_EXTRA ) -agit_version=$(GIT_VERSION ) -o $@ + $<
239+ $(ASCIIDOC_EXTRA ) -agit_version=$(GIT_VERSION ) -o $@ + $< && \
174240 mv $@ + $@
175241
176242user-manual.xml : user-manual.txt user-manual.conf
177- $(ASCIIDOC ) -b docbook -d book $<
243+ $(QUIET_ASCIIDOC )$( ASCIIDOC ) $( ASCIIDOC_EXTRA ) -b docbook -d book $<
178244
179245technical/api-index.txt : technical/api-index-skel.txt \
180246 technical/api-index.sh $(patsubst % ,% .txt,$(API_DOCS ) )
181- cd technical && sh ./api-index.sh
247+ $( QUIET_GEN ) cd technical && ' $(SHELL_PATH_SQ) ' ./api-index.sh
182248
183249$(patsubst % ,% .html,$(API_DOCS ) technical/api-index) : % .html : % .txt
184- $(ASCIIDOC ) -b xhtml11 -f asciidoc.conf \
250+ $(QUIET_ASCIIDOC )$( ASCIIDOC ) -b xhtml11 -f asciidoc.conf \
185251 $(ASCIIDOC_EXTRA ) -agit_version=$(GIT_VERSION ) $* .txt
186252
187253XSLT = docbook.xsl
188254XSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css
189255
190256user-manual.html : user-manual.xml
191- xsltproc $(XSLTOPTS ) -o $@ $(XSLT ) $<
257+ $( QUIET_XSLTPROC ) xsltproc $(XSLTOPTS ) -o $@ $(XSLT ) $<
192258
193259git.info : user-manual.texi
194- $(MAKEINFO ) --no-split -o $@ user-manual.texi
260+ $(QUIET_MAKEINFO )$( MAKEINFO ) --no-split -o $@ user-manual.texi
195261
196262user-manual.texi : user-manual.xml
197- $(RM ) $@ + $@
198- $(DOCBOOK2X_TEXI ) user-manual.xml --encoding=UTF-8 --to-stdout | \
199- $(PERL_PATH ) fix-texi.perl > $@ +
263+ $(QUIET_DB2TEXI )$(RM ) $@ + $@ && \
264+ $(DOCBOOK2X_TEXI ) user-manual.xml --encoding=UTF-8 --to-stdout > $@ ++ && \
265+ $(PERL_PATH ) fix-texi.perl < $@ ++ > $@ + && \
266+ rm $@ ++ && \
200267 mv $@ + $@
201268
202269user-manual.pdf : user-manual.xml
203- $(RM ) $@ + $@
204- $(DBLATEX ) -o $@ + -p /etc/asciidoc/dblatex/asciidoc-dblatex.xsl -s /etc/asciidoc/dblatex/asciidoc-dblatex.sty $<
270+ $(QUIET_DBLATEX )$( RM ) $@ + $@ && \
271+ $(DBLATEX ) -o $@ + -p /etc/asciidoc/dblatex/asciidoc-dblatex.xsl -s /etc/asciidoc/dblatex/asciidoc-dblatex.sty $< && \
205272 mv $@ + $@
206273
207274gitman.texi : $(MAN_XML ) cat-texi.perl
208- $(RM ) $@ + $@
275+ $(QUIET_DB2TEXI )$( RM ) $@ + $@ && \
209276 ($( foreach xml,$( MAN_XML) ,$( DOCBOOK2X_TEXI) --encoding=UTF-8 \
210- --to-stdout $(xml ) ; )) | $(PERL_PATH ) cat-texi.perl $@ > $@ +
277+ --to-stdout $(xml ) && ) true) > $@ ++ && \
278+ $(PERL_PATH ) cat-texi.perl $@ < $@ ++ > $@ + && \
279+ rm $@ ++ && \
211280 mv $@ + $@
212281
213282gitman.info : gitman.texi
214- $(MAKEINFO ) --no-split --no-validate $* .texi
283+ $(QUIET_MAKEINFO )$( MAKEINFO ) --no-split --no-validate $* .texi
215284
216285$(patsubst % .txt,% .texi,$(MAN_TXT ) ) : % .texi : % .xml
217- $(RM ) $@ + $@
218- $(DOCBOOK2X_TEXI ) --to-stdout $* .xml > $@ +
286+ $(QUIET_DB2TEXI )$( RM ) $@ + $@ && \
287+ $(DOCBOOK2X_TEXI ) --to-stdout $* .xml > $@ + && \
219288 mv $@ + $@
220289
221290howto-index.txt : howto-index.sh $(wildcard howto/* .txt)
222- $(RM ) $@ + $@
223- sh ./howto-index.sh $(wildcard howto/* .txt) > $@ +
291+ $(QUIET_GEN )$( RM ) $@ + $@ && \
292+ ' $(SHELL_PATH_SQ) ' ./howto-index.sh $(wildcard howto/* .txt) > $@ + && \
224293 mv $@ + $@
225294
226295$(patsubst % ,% .html,$(ARTICLES ) ) : % .html : % .txt
227- $(ASCIIDOC ) -b xhtml11 $* .txt
296+ $(QUIET_ASCIIDOC )$( ASCIIDOC ) $( ASCIIDOC_EXTRA ) -b xhtml11 $* .txt
228297
229298WEBDOC_DEST = /pub/software/scm/git/docs
230299
231300$(patsubst % .txt,% .html,$(wildcard howto/* .txt) ) : % .html : % .txt
232- $(RM ) $@ + $@
233- sed -e ' 1,/^$$/d' $< | $(ASCIIDOC ) -b xhtml11 - > $@ +
301+ $(QUIET_ASCIIDOC )$( RM ) $@ + $@ && \
302+ sed -e ' 1,/^$$/d' $< | $(ASCIIDOC ) $( ASCIIDOC_EXTRA ) -b xhtml11 - > $@ + && \
234303 mv $@ + $@
235304
236305install-webdoc : html
237- sh ./install-webdoc.sh $(WEBDOC_DEST )
306+ ' $(SHELL_PATH_SQ) ' ./install-webdoc.sh $(WEBDOC_DEST )
238307
239308quick-install : quick-install-man
240309
241310quick-install-man :
242- sh ./install-doc-quick.sh $(DOC_REF ) $(DESTDIR )$(mandir )
311+ ' $(SHELL_PATH_SQ) ' ./install-doc-quick.sh $(DOC_REF ) $(DESTDIR )$(mandir )
243312
244313quick-install-html :
245- sh ./install-doc-quick.sh $(HTML_REF ) $(DESTDIR )$(htmldir )
314+ ' $(SHELL_PATH_SQ) ' ./install-doc-quick.sh $(HTML_REF ) $(DESTDIR )$(htmldir )
246315
247316.PHONY : .FORCE-GIT-VERSION-FILE
0 commit comments