11# Import tree-wide shared Makefile behavior and libraries
22include ../shared.mak
33
4+ .PHONY : FORCE
5+
46# Guard against environment variables
57MAN1_TXT =
68MAN5_TXT =
@@ -111,6 +113,7 @@ TECH_DOCS += MyFirstObjectWalk
111113TECH_DOCS += SubmittingPatches
112114TECH_DOCS += ToolsForGit
113115TECH_DOCS += technical/bitmap-format
116+ TECH_DOCS += technical/build-systems
114117TECH_DOCS += technical/bundle-uri
115118TECH_DOCS += technical/hash-function-transition
116119TECH_DOCS += technical/long-running-process-protocol
@@ -148,16 +151,12 @@ man5dir = $(mandir)/man5
148151man7dir = $(mandir ) /man7
149152# DESTDIR =
150153
151- GIT_DATE := $(shell git show --quiet --pretty='% as')
152-
153154ASCIIDOC = asciidoc
154155ASCIIDOC_EXTRA =
155156ASCIIDOC_HTML = xhtml11
156157ASCIIDOC_DOCBOOK = docbook
157158ASCIIDOC_CONF = -f asciidoc.conf
158- ASCIIDOC_COMMON = $(ASCIIDOC ) $(ASCIIDOC_EXTRA ) $(ASCIIDOC_CONF ) \
159- -amanmanual='Git Manual' -amansource='Git $(GIT_VERSION ) ' \
160- -arevdate='$(GIT_DATE ) '
159+ ASCIIDOC_COMMON = $(ASCIIDOC ) $(ASCIIDOC_EXTRA ) $(ASCIIDOC_CONF )
161160ASCIIDOC_DEPS = asciidoc.conf GIT-ASCIIDOCFLAGS
162161TXT_TO_HTML = $(ASCIIDOC_COMMON ) -b $(ASCIIDOC_HTML )
163162TXT_TO_XML = $(ASCIIDOC_COMMON ) -b $(ASCIIDOC_DOCBOOK )
@@ -210,6 +209,14 @@ ASCIIDOC_DEPS = asciidoctor-extensions.rb GIT-ASCIIDOCFLAGS
210209DBLATEX_COMMON =
211210XMLTO_EXTRA += --skip-validation
212211XMLTO_EXTRA += -x manpage.xsl
212+
213+ asciidoctor-extensions.rb : asciidoctor-extensions.rb.in FORCE
214+ $(QUIET_GEN ) GIT_USER_AGENT=" $( GIT_USER_AGENT) " $(SHELL_PATH ) ../GIT-VERSION-GEN " $( shell pwd) /.." $< $@ +
215+ @if cmp $@ + $@ > /dev/null 2>&1 ; then $(RM ) $@ +; else mv $@ + $@ ; fi
216+ else
217+ asciidoc.conf : asciidoc.conf.in FORCE
218+ $(QUIET_GEN ) GIT_USER_AGENT=" $( GIT_USER_AGENT) " $(SHELL_PATH ) ../GIT-VERSION-GEN " $( shell pwd) /.." $< $@ +
219+ @if cmp $@ + $@ > /dev/null 2>&1 ; then $(RM ) $@ +; else mv $@ + $@ ; fi
213220endif
214221
215222ASCIIDOC_DEPS += docinfo.html
@@ -218,6 +225,7 @@ SHELL_PATH ?= $(SHELL)
218225# Shell quote;
219226SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH ) )
220227
228+ ASCIIDOC_EXTRA += -abuild_dir='$(shell pwd) '
221229ifdef DEFAULT_PAGER
222230DEFAULT_PAGER_SQ = $(subst ','\'',$(DEFAULT_PAGER ) )
223231ASCIIDOC_EXTRA += -a 'git-default-pager=$(DEFAULT_PAGER_SQ ) '
@@ -275,15 +283,17 @@ ifneq ($(filter-out lint-docs clean,$(MAKECMDGOALS)),)
275283-include ../GIT-VERSION-FILE
276284endif
277285
286+ mergetools_txt = mergetools-diff.txt mergetools-merge.txt
287+
278288#
279289# Determine "include::" file references in asciidoc files.
280290#
281291docdep_prereqs = \
282- mergetools-list.made $(mergetools_txt ) \
292+ $(mergetools_txt ) \
283293 cmd-list.made $(cmds_txt )
284294
285295doc.dep : $(docdep_prereqs ) $(DOC_DEP_TXT ) build-docdep.perl
286- $(QUIET_GEN )$(PERL_PATH ) ./build-docdep.perl > $@ $(QUIET_STDERR )
296+ $(QUIET_GEN )$(PERL_PATH ) ./build-docdep.perl " $( shell pwd ) " > $@ $(QUIET_STDERR )
287297
288298ifneq ($(MAKECMDGOALS ) ,clean)
289299-include doc.dep
@@ -305,22 +315,14 @@ cmds_txt = cmds-ancillaryinterrogators.txt \
305315$(cmds_txt ) : cmd-list.made
306316
307317cmd-list.made : cmd-list.perl ../command-list.txt $(MAN1_TXT )
308- $(QUIET_GEN )$(PERL_PATH ) ./cmd-list.perl ../command-list.txt $(cmds_txt ) $( QUIET_STDERR ) && \
318+ $(QUIET_GEN )$(PERL_PATH ) ./cmd-list.perl .. . $(cmds_txt ) && \
309319 date > $@
310320
311- mergetools_txt = mergetools-diff.txt mergetools-merge.txt
312-
313- $(mergetools_txt ) : mergetools-list.made
314-
315- mergetools-list.made : ../git-mergetool--lib.sh $(wildcard ../mergetools/* )
316- $(QUIET_GEN ) \
317- $(SHELL_PATH ) -c ' MERGE_TOOLS_DIR=../mergetools && TOOL_MODE=diff && \
318- . ../git-mergetool--lib.sh && \
319- show_tool_names can_diff' | sed -e "s/\([a-z0-9]*\)/\`\1\`;;/" >mergetools-diff.txt && \
320- $(SHELL_PATH ) -c ' MERGE_TOOLS_DIR=../mergetools && TOOL_MODE=merge && \
321- . ../git-mergetool--lib.sh && \
322- show_tool_names can_merge' | sed -e "s/\([a-z0-9]*\)/\`\1\`;;/" >mergetools-merge.txt && \
323- date > $@
321+ mergetools-% .txt : generate-mergetool-list.sh ../git-mergetool--lib.sh $(wildcard ../mergetools/* )
322+ mergetools-diff.txt :
323+ $(QUIET_GEN )$(SHELL_PATH ) ./generate-mergetool-list.sh .. diff $@
324+ mergetools-merge.txt :
325+ $(QUIET_GEN )$(SHELL_PATH ) ./generate-mergetool-list.sh .. merge $@
324326
325327TRACK_ASCIIDOCFLAGS = $(subst ','\'',$(ASCIIDOC_COMMON ) :$(ASCIIDOC_HTML ) :$(ASCIIDOC_DOCBOOK ) )
326328
@@ -341,6 +343,7 @@ clean:
341343 $(RM ) SubmittingPatches.txt
342344 $(RM ) $(cmds_txt ) $(mergetools_txt ) * .made
343345 $(RM ) GIT-ASCIIDOCFLAGS
346+ $(RM ) asciidoc.conf asciidoctor-extensions.rb
344347
345348docinfo.html : docinfo-html.in
346349 $(QUIET_GEN )$(RM ) $@ && cat $< > $@
@@ -364,7 +367,7 @@ manpage-cmd = $(QUIET_XMLTO)$(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
364367% .xml : % .txt $(ASCIIDOC_DEPS )
365368 $(QUIET_ASCIIDOC )$(TXT_TO_XML ) -d manpage -o $@ $<
366369
367- user-manual.xml : user-manual.txt user-manual.conf asciidoctor-extensions.rb GIT-ASCIIDOCFLAGS
370+ user-manual.xml : user-manual.txt user-manual.conf $( ASCIIDOC_DEPS )
368371 $(QUIET_ASCIIDOC )$(TXT_TO_XML ) -d book -o $@ $<
369372
370373technical/api-index.txt : technical/api-index-skel.txt \
@@ -373,7 +376,7 @@ technical/api-index.txt: technical/api-index-skel.txt \
373376
374377technical/% .html : ASCIIDOC_EXTRA += -a git-relative-html-prefix=../
375378$(patsubst % ,% .html,$(API_DOCS ) technical/api-index $(TECH_DOCS ) ) : % .html : % .txt \
376- asciidoc.conf GIT-ASCIIDOCFLAGS
379+ $( ASCIIDOC_DEPS )
377380 $(QUIET_ASCIIDOC )$(TXT_TO_HTML ) $* .txt
378381
379382SubmittingPatches.txt : SubmittingPatches
@@ -416,13 +419,13 @@ $(patsubst %.txt,%.texi,$(MAN_TXT)): %.texi : %.xml
416419howto-index.txt : howto-index.sh $(HOWTO_TXT )
417420 $(QUIET_GEN ) ' $(SHELL_PATH_SQ)' ./howto-index.sh $(sort $(HOWTO_TXT ) ) > $@
418421
419- $(patsubst % ,% .html,$(ARTICLES ) ) : % .html : % .txt
422+ $(patsubst % ,% .html,$(ARTICLES ) ) : % .html : % .txt $( ASCIIDOC_DEPS )
420423 $(QUIET_ASCIIDOC )$(TXT_TO_HTML ) $* .txt
421424
422425WEBDOC_DEST = /pub/software/scm/git/docs
423426
424427howto/% .html : ASCIIDOC_EXTRA += -a git-relative-html-prefix=../
425- $(patsubst % .txt,% .html,$(HOWTO_TXT ) ) : % .html : % .txt GIT-ASCIIDOCFLAGS
428+ $(patsubst % .txt,% .html,$(HOWTO_TXT ) ) : % .html : % .txt $( ASCIIDOC_DEPS )
426429 $(QUIET_ASCIIDOC ) \
427430 sed -e ' 1,/^$$/d' $< | \
428431 $(TXT_TO_HTML ) - > $@
0 commit comments