2 $(filter-out $(addsuffix .txt
, $(ARTICLES
) $(SP_ARTICLES
)), \
3 $(wildcard git-
*.txt
)) \
5 MAN5_TXT
=gitattributes.txt gitignore.txt gitmodules.txt githooks.txt \
6 gitrepository-layout.txt
7 MAN7_TXT
=gitcli.txt gittutorial.txt gittutorial-2.txt \
8 gitcvs-migration.txt gitcore-tutorial.txt gitglossary.txt \
9 gitdiffcore.txt gitworkflows.txt
11 MAN_TXT
= $(MAN1_TXT
) $(MAN5_TXT
) $(MAN7_TXT
)
12 MAN_XML
=$(patsubst %.txt
,%.xml
,$(MAN_TXT
))
13 MAN_HTML
=$(patsubst %.txt
,%.html
,$(MAN_TXT
))
17 ARTICLES
= howto-index
20 # with their own formatting rules.
21 SP_ARTICLES
= howto
/revert-branch-rebase howto
/using-merge-subtree user-manual
22 API_DOCS
= $(patsubst %.txt
,%,$(filter-out technical
/api-index-skel.txt technical
/api-index.txt
, $(wildcard technical
/api-
*.txt
)))
23 SP_ARTICLES
+= $(API_DOCS
)
24 SP_ARTICLES
+= technical
/api-index
26 DOC_HTML
+= $(patsubst %,%.html
,$(ARTICLES
) $(SP_ARTICLES
))
28 DOC_MAN1
=$(patsubst %.txt
,%.1,$(MAN1_TXT
))
29 DOC_MAN5
=$(patsubst %.txt
,%.5,$(MAN5_TXT
))
30 DOC_MAN7
=$(patsubst %.txt
,%.7,$(MAN7_TXT
))
34 htmldir?
=$(prefix)/share
/doc
/git-doc
35 pdfdir?
=$(prefix)/share
/doc
/git-doc
36 mandir?
=$(prefix)/share
/man
37 man1dir=$(mandir)/man1
38 man5dir=$(mandir)/man5
39 man7dir=$(mandir)/man7
44 MANPAGE_XSL
= manpage-normal.xsl
49 HTML_REF
= origin/html
51 infodir?
=$(prefix)/share
/info
53 INSTALL_INFO
=install-info
54 DOCBOOK2X_TEXI
=docbook2x-texi
57 PERL_PATH
= /usr
/bin
/perl
60 -include ..
/config.mak.autogen
61 -include ..
/config.mak
65 # -7.1.2, no extra settings are needed.
66 # 8.0-, set ASCIIDOC8.
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
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).
87 ASCIIDOC_EXTRA
+= -a asciidoc7compatible
90 ASCIIDOC_EXTRA
+= -a git-asciidoc-no-roff
91 MANPAGE_XSL
= manpage-1.72.xsl
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
99 ifdef MAN_BOLD_LITERAL
100 XMLTO_EXTRA
+= -m manpage-bold-literal.xsl
102 ifdef DOCBOOK_SUPPRESS_SP
103 XMLTO_EXTRA
+= -m manpage-suppress-sp.xsl
107 # Please note that there is a minor bug in asciidoc.
108 # The version after 6.0.3 _will_ include the patch found here:
109 # http://marc.theaimsgroup.com/?l=git&m=111558757202243&w=2
111 # Until that version is released you may have to apply the patch
112 # yourself - yes, all 6 characters of it!
115 QUIET_SUBDIR0
= +$(MAKE
) -C
# space to separate -C and subdir
118 ifneq ($(findstring $(MAKEFLAGS
),w
),w
)
119 PRINT_DIR
= --no-print-directory
124 ifneq ($(findstring $(MAKEFLAGS
),s
),s
)
126 QUIET_ASCIIDOC
= @echo
' ' ASCIIDOC
$@
;
127 QUIET_XMLTO
= @echo
' ' XMLTO
$@
;
128 QUIET_DB2TEXI
= @echo
' ' DB2TEXI
$@
;
129 QUIET_MAKEINFO
= @echo
' ' MAKEINFO
$@
;
130 QUIET_DBLATEX
= @echo
' ' DBLATEX
$@
;
131 QUIET_XSLTPROC
= @echo
' ' XSLTPROC
$@
;
132 QUIET_GEN
= @echo
' ' GEN
$@
;
133 QUIET_STDERR
= 2> /dev
/null
134 QUIET_SUBDIR0
= +@subdir
=
135 QUIET_SUBDIR1
= ;$(NO_SUBDIR
) echo
' ' SUBDIR
$$subdir; \
136 $(MAKE
) $(PRINT_DIR
) -C
$$subdir
145 $(DOC_HTML
) $(DOC_MAN1
) $(DOC_MAN5
) $(DOC_MAN7
): asciidoc.conf
152 info: git.
info gitman.
info
159 $(INSTALL
) -d
-m
755 $(DESTDIR
)$(man1dir)
160 $(INSTALL
) -d
-m
755 $(DESTDIR
)$(man5dir)
161 $(INSTALL
) -d
-m
755 $(DESTDIR
)$(man7dir)
162 $(INSTALL
) -m
644 $(DOC_MAN1
) $(DESTDIR
)$(man1dir)
163 $(INSTALL
) -m
644 $(DOC_MAN5
) $(DESTDIR
)$(man5dir)
164 $(INSTALL
) -m
644 $(DOC_MAN7
) $(DESTDIR
)$(man7dir)
167 $(INSTALL
) -d
-m
755 $(DESTDIR
)$(infodir)
168 $(INSTALL
) -m
644 git.
info gitman.
info $(DESTDIR
)$(infodir)
169 if
test -r
$(DESTDIR
)$(infodir)/dir; then \
170 $(INSTALL_INFO
) --info-dir
=$(DESTDIR
)$(infodir) git.
info ;\
171 $(INSTALL_INFO
) --info-dir
=$(DESTDIR
)$(infodir) gitman.
info ;\
173 echo
"No directory found in $(DESTDIR)$(infodir)" >&2 ; \
177 $(INSTALL
) -d
-m
755 $(DESTDIR
)$(pdfdir
)
178 $(INSTALL
) -m
644 user-manual.pdf
$(DESTDIR
)$(pdfdir
)
181 sh .
/install-webdoc.sh
$(DESTDIR
)$(htmldir
)
183 ..
/GIT-VERSION-FILE
: .FORCE-GIT-VERSION-FILE
184 $(QUIET_SUBDIR0
)..
/ $(QUIET_SUBDIR1
) GIT-VERSION-FILE
186 -include ..
/GIT-VERSION-FILE
189 # Determine "include::" file references in asciidoc files.
191 doc.dep
: $(wildcard *.txt
) build-docdep.perl
192 $(QUIET_GEN
)$(RM
) $@
+ $@
&& \
193 $(PERL_PATH
) .
/build-docdep.perl
>$@
+ $(QUIET_STDERR
) && \
198 cmds_txt
= cmds-ancillaryinterrogators.txt \
199 cmds-ancillarymanipulators.txt \
200 cmds-mainporcelain.txt \
201 cmds-plumbinginterrogators.txt \
202 cmds-plumbingmanipulators.txt \
203 cmds-synchingrepositories.txt \
204 cmds-synchelpers.txt \
205 cmds-purehelpers.txt \
206 cmds-foreignscminterface.txt
208 $(cmds_txt
): cmd-list.made
210 cmd-list.made
: cmd-list.perl ..
/command-list.txt
$(MAN1_TXT
)
211 $(QUIET_GEN
)$(RM
) $@
&& \
212 $(PERL_PATH
) .
/cmd-list.perl ..
/command-list.txt
$(QUIET_STDERR
) && \
216 $(RM
) *.xml
*.xml
+ *.html
*.html
+ *.1 *.5 *.7
217 $(RM
) *.texi
*.texi
+ *.texi
++ git.
info gitman.
info
218 $(RM
) howto-index.txt howto
/*.html doc.dep
219 $(RM
) technical
/api-
*.html technical
/api-index.txt
220 $(RM
) $(cmds_txt
) *.made
222 $(MAN_HTML
): %.html
: %.txt
223 $(QUIET_ASCIIDOC
)$(RM
) $@
+ $@
&& \
224 $(ASCIIDOC
) -b xhtml11
-d manpage
-f asciidoc.conf \
225 $(ASCIIDOC_EXTRA
) -agit_version
=$(GIT_VERSION
) -o
$@
+ $< && \
229 $(QUIET_XMLTO
)$(RM
) $@
&& \
230 xmlto
-m
$(MANPAGE_XSL
) $(XMLTO_EXTRA
) man
$<
233 $(QUIET_ASCIIDOC
)$(RM
) $@
+ $@
&& \
234 $(ASCIIDOC
) -b docbook
-d manpage
-f asciidoc.conf \
235 $(ASCIIDOC_EXTRA
) -agit_version
=$(GIT_VERSION
) -o
$@
+ $< && \
238 user-manual.xml
: user-manual.txt user-manual.conf
239 $(QUIET_ASCIIDOC
)$(ASCIIDOC
) -b docbook
-d book
$<
241 technical
/api-index.txt
: technical
/api-index-skel.txt \
242 technical
/api-index.sh
$(patsubst %,%.txt
,$(API_DOCS
))
243 $(QUIET_GEN
)cd technical
&& sh .
/api-index.sh
245 $(patsubst %,%.html
,$(API_DOCS
) technical
/api-index
): %.html
: %.txt
246 $(QUIET_ASCIIDOC
)$(ASCIIDOC
) -b xhtml11
-f asciidoc.conf \
247 $(ASCIIDOC_EXTRA
) -agit_version
=$(GIT_VERSION
) $*.txt
250 XSLTOPTS
= --xinclude
--stringparam html.stylesheet docbook-xsl.css
252 user-manual.html
: user-manual.xml
253 $(QUIET_XSLTPROC
)xsltproc
$(XSLTOPTS
) -o
$@
$(XSLT
) $<
255 git.
info: user-manual.texi
256 $(QUIET_MAKEINFO
)$(MAKEINFO
) --no-split
-o
$@ user-manual.texi
258 user-manual.texi
: user-manual.xml
259 $(QUIET_DB2TEXI
)$(RM
) $@
+ $@
&& \
260 $(DOCBOOK2X_TEXI
) user-manual.xml
--encoding
=UTF-8
--to-stdout
>$@
++ && \
261 $(PERL_PATH
) fix-texi.perl
<$@
++ >$@
+ && \
265 user-manual.pdf
: user-manual.xml
266 $(QUIET_DBLATEX
)$(RM
) $@
+ $@
&& \
267 $(DBLATEX
) -o
$@
+ -p
/etc
/asciidoc
/dblatex
/asciidoc-dblatex.xsl
-s
/etc
/asciidoc
/dblatex
/asciidoc-dblatex.sty
$< && \
270 gitman.texi
: $(MAN_XML
) cat-texi.perl
271 $(QUIET_DB2TEXI
)$(RM
) $@
+ $@
&& \
272 ($(foreach xml
,$(MAN_XML
),$(DOCBOOK2X_TEXI
) --encoding
=UTF-8 \
273 --to-stdout
$(xml
) &&) true
) > $@
++ && \
274 $(PERL_PATH
) cat-texi.perl
$@
<$@
++ >$@
+ && \
278 gitman.
info: gitman.texi
279 $(QUIET_MAKEINFO
)$(MAKEINFO
) --no-split
--no-validate
$*.texi
281 $(patsubst %.txt
,%.texi
,$(MAN_TXT
)): %.texi
: %.xml
282 $(QUIET_DB2TEXI
)$(RM
) $@
+ $@
&& \
283 $(DOCBOOK2X_TEXI
) --to-stdout
$*.xml
>$@
+ && \
286 howto-index.txt
: howto-index.sh
$(wildcard howto
/*.txt
)
287 $(QUIET_GEN
)$(RM
) $@
+ $@
&& \
288 sh .
/howto-index.sh
$(wildcard howto
/*.txt
) >$@
+ && \
291 $(patsubst %,%.html
,$(ARTICLES
)) : %.html
: %.txt
292 $(QUIET_ASCIIDOC
)$(ASCIIDOC
) -b xhtml11
$*.txt
294 WEBDOC_DEST
= /pub
/software
/scm
/git
/docs
296 $(patsubst %.txt
,%.html
,$(wildcard howto
/*.txt
)): %.html
: %.txt
297 $(QUIET_ASCIIDOC
)$(RM
) $@
+ $@
&& \
298 sed
-e
'1,/^$$/d' $< |
$(ASCIIDOC
) -b xhtml11
- >$@
+ && \
301 install-webdoc
: html
302 sh .
/install-webdoc.sh
$(WEBDOC_DEST
)
304 quick-install
: quick-install-man
307 sh .
/install-doc-quick.sh
$(DOC_REF
) $(DESTDIR
)$(mandir)
310 sh .
/install-doc-quick.sh
$(HTML_REF
) $(DESTDIR
)$(htmldir
)
312 .PHONY
: .FORCE-GIT-VERSION-FILE