Git fork
at reftables-rust 568 lines 18 kB view raw
1# The default target of this Makefile is... 2all:: 3 4# Import tree-wide shared Makefile behavior and libraries 5include ../shared.mak 6 7.PHONY: FORCE 8 9# Guard against environment variables 10MAN1_TXT = 11MAN5_TXT = 12MAN7_TXT = 13HOWTO_TXT = 14DOC_DEP_TXT = 15TECH_DOCS = 16ARTICLES = 17SP_ARTICLES = 18OBSOLETE_HTML = 19 20-include GIT-EXCLUDED-PROGRAMS 21 22MAN1_TXT += $(filter-out \ 23 $(patsubst %,%.adoc,$(EXCLUDED_PROGRAMS)) \ 24 $(addsuffix .adoc, $(ARTICLES) $(SP_ARTICLES)), \ 25 $(wildcard git-*.adoc)) 26MAN1_TXT += git.adoc 27MAN1_TXT += gitk.adoc 28MAN1_TXT += gitweb.adoc 29MAN1_TXT += scalar.adoc 30 31# man5 / man7 guides (note: new guides should also be added to command-list.txt) 32MAN5_TXT += gitattributes.adoc 33MAN5_TXT += gitformat-bundle.adoc 34MAN5_TXT += gitformat-chunk.adoc 35MAN5_TXT += gitformat-commit-graph.adoc 36MAN5_TXT += gitformat-index.adoc 37MAN5_TXT += gitformat-loose.adoc 38MAN5_TXT += gitformat-pack.adoc 39MAN5_TXT += gitformat-signature.adoc 40MAN5_TXT += githooks.adoc 41MAN5_TXT += gitignore.adoc 42MAN5_TXT += gitmailmap.adoc 43MAN5_TXT += gitmodules.adoc 44MAN5_TXT += gitprotocol-capabilities.adoc 45MAN5_TXT += gitprotocol-common.adoc 46MAN5_TXT += gitprotocol-http.adoc 47MAN5_TXT += gitprotocol-pack.adoc 48MAN5_TXT += gitprotocol-v2.adoc 49MAN5_TXT += gitrepository-layout.adoc 50MAN5_TXT += gitweb.conf.adoc 51 52MAN7_TXT += gitcli.adoc 53MAN7_TXT += gitcore-tutorial.adoc 54MAN7_TXT += gitcredentials.adoc 55MAN7_TXT += gitcvs-migration.adoc 56MAN7_TXT += gitdiffcore.adoc 57MAN7_TXT += giteveryday.adoc 58MAN7_TXT += gitfaq.adoc 59MAN7_TXT += gitglossary.adoc 60MAN7_TXT += gitpacking.adoc 61MAN7_TXT += gitnamespaces.adoc 62MAN7_TXT += gitremote-helpers.adoc 63MAN7_TXT += gitrevisions.adoc 64MAN7_TXT += gitsubmodules.adoc 65MAN7_TXT += gittutorial-2.adoc 66MAN7_TXT += gittutorial.adoc 67MAN7_TXT += gitworkflows.adoc 68 69HOWTO_TXT += $(wildcard howto/*.adoc) 70 71DOC_DEP_TXT += $(wildcard *.adoc) 72DOC_DEP_TXT += $(wildcard config/*.adoc) 73DOC_DEP_TXT += $(wildcard includes/*.adoc) 74 75ifdef MAN_FILTER 76MAN_TXT = $(filter $(MAN_FILTER),$(MAN1_TXT) $(MAN5_TXT) $(MAN7_TXT)) 77else 78MAN_TXT = $(MAN1_TXT) $(MAN5_TXT) $(MAN7_TXT) 79MAN_FILTER = $(MAN_TXT) 80endif 81 82MAN_XML = $(patsubst %.adoc,%.xml,$(MAN_TXT)) 83MAN_HTML = $(patsubst %.adoc,%.html,$(MAN_TXT)) 84GIT_MAN_REF = master 85 86OBSOLETE_HTML += everyday.html 87OBSOLETE_HTML += git-remote-helpers.html 88 89ARTICLES += howto-index 90ARTICLES += git-tools 91ARTICLES += git-bisect-lk2009 92# with their own formatting rules. 93SP_ARTICLES += user-manual 94SP_ARTICLES += howto/new-command 95SP_ARTICLES += howto/revert-branch-rebase 96SP_ARTICLES += howto/using-merge-subtree 97SP_ARTICLES += howto/using-signed-tag-in-pull-request 98SP_ARTICLES += howto/use-git-daemon 99SP_ARTICLES += howto/update-hook-example 100SP_ARTICLES += howto/setup-git-server-over-http 101SP_ARTICLES += howto/separating-topic-branches 102SP_ARTICLES += howto/revert-a-faulty-merge 103SP_ARTICLES += howto/recover-corrupted-blob-object 104SP_ARTICLES += howto/recover-corrupted-object-harder 105SP_ARTICLES += howto/rebuild-from-update-hook 106SP_ARTICLES += howto/rebase-from-internal-branch 107SP_ARTICLES += howto/keep-canonical-history-correct 108SP_ARTICLES += howto/maintain-git 109SP_ARTICLES += howto/coordinate-embargoed-releases 110API_DOCS = $(patsubst %.adoc,%,$(filter-out technical/api-index-skel.adoc technical/api-index.adoc, $(wildcard technical/api-*.adoc))) 111SP_ARTICLES += $(API_DOCS) 112 113TECH_DOCS += BreakingChanges 114TECH_DOCS += DecisionMaking 115TECH_DOCS += ReviewingGuidelines 116TECH_DOCS += MyFirstContribution 117TECH_DOCS += MyFirstObjectWalk 118TECH_DOCS += SubmittingPatches 119TECH_DOCS += ToolsForGit 120TECH_DOCS += technical/bitmap-format 121TECH_DOCS += technical/build-systems 122TECH_DOCS += technical/bundle-uri 123TECH_DOCS += technical/commit-graph 124TECH_DOCS += technical/directory-rename-detection 125TECH_DOCS += technical/hash-function-transition 126TECH_DOCS += technical/large-object-promisors 127TECH_DOCS += technical/long-running-process-protocol 128TECH_DOCS += technical/multi-pack-index 129TECH_DOCS += technical/packfile-uri 130TECH_DOCS += technical/pack-heuristics 131TECH_DOCS += technical/parallel-checkout 132TECH_DOCS += technical/partial-clone 133TECH_DOCS += technical/platform-support 134TECH_DOCS += technical/racy-git 135TECH_DOCS += technical/reftable 136TECH_DOCS += technical/remembering-renames 137TECH_DOCS += technical/repository-version 138TECH_DOCS += technical/rerere 139TECH_DOCS += technical/scalar 140TECH_DOCS += technical/send-pack-pipeline 141TECH_DOCS += technical/shallow 142TECH_DOCS += technical/sparse-checkout 143TECH_DOCS += technical/sparse-index 144TECH_DOCS += technical/trivial-merge 145TECH_DOCS += technical/unit-tests 146SP_ARTICLES += $(TECH_DOCS) 147SP_ARTICLES += technical/api-index 148 149ARTICLES_HTML += $(patsubst %,%.html,$(ARTICLES) $(SP_ARTICLES)) 150HTML_FILTER ?= $(ARTICLES_HTML) $(OBSOLETE_HTML) 151DOC_HTML = $(MAN_HTML) $(filter $(HTML_FILTER),$(ARTICLES_HTML) $(OBSOLETE_HTML)) 152 153DOC_MAN1 = $(patsubst %.adoc,%.1,$(filter $(MAN_FILTER),$(MAN1_TXT))) 154DOC_MAN5 = $(patsubst %.adoc,%.5,$(filter $(MAN_FILTER),$(MAN5_TXT))) 155DOC_MAN7 = $(patsubst %.adoc,%.7,$(filter $(MAN_FILTER),$(MAN7_TXT))) 156 157prefix ?= $(HOME) 158bindir ?= $(prefix)/bin 159htmldir ?= $(prefix)/share/doc/git-doc 160infodir ?= $(prefix)/share/info 161pdfdir ?= $(prefix)/share/doc/git-doc 162mandir ?= $(prefix)/share/man 163man1dir = $(mandir)/man1 164man5dir = $(mandir)/man5 165man7dir = $(mandir)/man7 166# DESTDIR = 167 168ASCIIDOC = asciidoc 169ASCIIDOC_EXTRA = 170ASCIIDOC_HTML = xhtml11 171ASCIIDOC_DOCBOOK = docbook 172ASCIIDOC_CONF = -f asciidoc.conf 173ASCIIDOC_COMMON = $(ASCIIDOC) $(ASCIIDOC_EXTRA) $(ASCIIDOC_CONF) 174ASCIIDOC_DEPS = asciidoc.conf GIT-ASCIIDOCFLAGS 175TXT_TO_HTML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_HTML) 176TXT_TO_XML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_DOCBOOK) 177MANPAGE_XSL = manpage-normal.xsl 178XMLTO = xmlto 179XMLTO_EXTRA = 180INSTALL ?= install 181RM ?= rm -f 182MAN_REPO = ../../git-manpages 183HTML_REPO = ../../git-htmldocs 184 185MAKEINFO = makeinfo 186INSTALL_INFO = install-info 187DOCBOOK2X_TEXI = docbook2x-texi 188DBLATEX = dblatex 189ASCIIDOC_DBLATEX_DIR = /etc/asciidoc/dblatex 190DBLATEX_COMMON = -p $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.xsl -s $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.sty 191ifndef PERL_PATH 192 PERL_PATH = /usr/bin/perl 193endif 194 195-include ../config.mak.autogen 196-include ../config.mak 197 198# Set GIT_VERSION_OVERRIDE such that version_gen knows to substitute 199# GIT_VERSION in case it was set by the user. 200GIT_VERSION_OVERRIDE := $(GIT_VERSION) 201 202ifndef NO_MAN_BOLD_LITERAL 203XMLTO_EXTRA += -m manpage-bold-literal.xsl 204endif 205 206# Newer DocBook stylesheet emits warning cruft in the output when 207# this is not set, and if set it shows an absolute link. Older 208# stylesheets simply ignore this parameter. 209# 210# Distros may want to use MAN_BASE_URL=file:///path/to/git/docs/ 211# or similar. 212ifndef MAN_BASE_URL 213MAN_BASE_URL = file://$(htmldir)/ 214endif 215XMLTO_EXTRA += --stringparam man.base.url.for.relative.links='$(MAN_BASE_URL)' 216 217ifdef USE_ASCIIDOCTOR 218ASCIIDOC = asciidoctor 219ASCIIDOC_CONF = 220ASCIIDOC_HTML = xhtml5 221ASCIIDOC_DOCBOOK = docbook5 222ASCIIDOC_EXTRA += -acompat-mode -atabsize=8 223ASCIIDOC_EXTRA += -I. -rasciidoctor-extensions 224ASCIIDOC_EXTRA += -alitdd='&\#x2d;&\#x2d;' 225ASCIIDOC_EXTRA += -adocinfo=shared 226ASCIIDOC_DEPS = asciidoctor-extensions.rb GIT-ASCIIDOCFLAGS 227DBLATEX_COMMON = 228XMLTO_EXTRA += --skip-validation 229XMLTO_EXTRA += -x manpage.xsl 230 231asciidoctor-extensions.rb: asciidoctor-extensions.rb.in FORCE 232 $(QUIET_GEN)$(call version_gen,"$(shell pwd)/..",$<,$@) 233else 234asciidoc.conf: asciidoc.conf.in FORCE 235 $(QUIET_GEN)$(call version_gen,"$(shell pwd)/..",$<,$@) 236endif 237 238ifdef WITH_BREAKING_CHANGES 239ASCIIDOC_EXTRA += -awith-breaking-changes 240endif 241 242ASCIIDOC_DEPS += docinfo.html 243 244SHELL_PATH ?= $(SHELL) 245# Shell quote; 246SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH)) 247 248ASCIIDOC_EXTRA += -abuild_dir='$(shell pwd)' 249ifdef DEFAULT_PAGER 250DEFAULT_PAGER_SQ = $(subst ','\'',$(DEFAULT_PAGER)) 251ASCIIDOC_EXTRA += -a 'git-default-pager=$(DEFAULT_PAGER_SQ)' 252endif 253 254ifdef DEFAULT_EDITOR 255DEFAULT_EDITOR_SQ = $(subst ','\'',$(DEFAULT_EDITOR)) 256ASCIIDOC_EXTRA += -a 'git-default-editor=$(DEFAULT_EDITOR_SQ)' 257endif 258 259all:: html man 260 261html: $(DOC_HTML) 262 263man: man1 man5 man7 264man1: $(DOC_MAN1) 265man5: $(DOC_MAN5) 266man7: $(DOC_MAN7) 267 268info: git.info gitman.info 269 270pdf: user-manual.pdf 271 272install: install-man 273 274install-man: man 275 $(INSTALL) -d -m 755 $(DESTDIR)$(man1dir) 276 $(INSTALL) -d -m 755 $(DESTDIR)$(man5dir) 277 $(INSTALL) -d -m 755 $(DESTDIR)$(man7dir) 278 $(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(man1dir) 279 $(INSTALL) -m 644 $(DOC_MAN5) $(DESTDIR)$(man5dir) 280 $(INSTALL) -m 644 $(DOC_MAN7) $(DESTDIR)$(man7dir) 281 282install-info: info 283 $(INSTALL) -d -m 755 $(DESTDIR)$(infodir) 284 $(INSTALL) -m 644 git.info gitman.info $(DESTDIR)$(infodir) 285 if test -r $(DESTDIR)$(infodir)/dir; then \ 286 $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) git.info ;\ 287 $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) gitman.info ;\ 288 else \ 289 echo "No directory found in $(DESTDIR)$(infodir)" >&2 ; \ 290 fi 291 292install-pdf: pdf 293 $(INSTALL) -d -m 755 $(DESTDIR)$(pdfdir) 294 $(INSTALL) -m 644 user-manual.pdf $(DESTDIR)$(pdfdir) 295 296install-html: html 297 '$(SHELL_PATH_SQ)' ./install-webdoc.sh $(DESTDIR)$(htmldir) 298 299mergetools_txt = mergetools-diff.adoc mergetools-merge.adoc 300 301# 302# Determine "include::" file references in asciidoc files. 303# 304docdep_prereqs = \ 305 $(mergetools_txt) \ 306 cmd-list.made $(cmds_txt) 307 308doc.dep : $(docdep_prereqs) $(DOC_DEP_TXT) build-docdep.perl 309 $(QUIET_GEN)$(PERL_PATH) ./build-docdep.perl "$(shell pwd)" >$@ $(QUIET_STDERR) 310 311ifneq ($(MAKECMDGOALS),clean) 312-include doc.dep 313endif 314 315cmds_txt = cmds-ancillaryinterrogators.adoc \ 316 cmds-ancillarymanipulators.adoc \ 317 cmds-mainporcelain.adoc \ 318 cmds-plumbinginterrogators.adoc \ 319 cmds-plumbingmanipulators.adoc \ 320 cmds-synchingrepositories.adoc \ 321 cmds-synchelpers.adoc \ 322 cmds-guide.adoc \ 323 cmds-developerinterfaces.adoc \ 324 cmds-userinterfaces.adoc \ 325 cmds-purehelpers.adoc \ 326 cmds-foreignscminterface.adoc 327 328$(cmds_txt): cmd-list.made 329 330cmd-list.made: cmd-list.sh ../command-list.txt $(MAN1_TXT) 331 $(QUIET_GEN)$(SHELL_PATH) ./cmd-list.sh .. . $(cmds_txt) && \ 332 date >$@ 333 334mergetools-%.adoc: generate-mergetool-list.sh ../git-mergetool--lib.sh $(wildcard ../mergetools/*) 335mergetools-diff.adoc: 336 $(QUIET_GEN)$(SHELL_PATH) ./generate-mergetool-list.sh .. diff $@ 337mergetools-merge.adoc: 338 $(QUIET_GEN)$(SHELL_PATH) ./generate-mergetool-list.sh .. merge $@ 339 340TRACK_ASCIIDOCFLAGS = $(subst ','\'',$(ASCIIDOC_COMMON):$(ASCIIDOC_HTML):$(ASCIIDOC_DOCBOOK)) 341 342GIT-ASCIIDOCFLAGS: FORCE 343 @FLAGS='$(TRACK_ASCIIDOCFLAGS)'; \ 344 if test x"$$FLAGS" != x"`cat GIT-ASCIIDOCFLAGS 2>/dev/null`" ; then \ 345 echo >&2 " * new asciidoc flags"; \ 346 echo "$$FLAGS" >GIT-ASCIIDOCFLAGS; \ 347 fi 348 349clean: 350 $(RM) -rf .build/ 351 $(RM) *.xml *.xml+ *.html *.html+ *.1 *.5 *.7 352 $(RM) *.texi *.texi+ *.texi++ git.info gitman.info 353 $(RM) *.pdf 354 $(RM) howto-index.adoc howto/*.html doc.dep 355 $(RM) technical/*.html technical/api-index.adoc 356 $(RM) SubmittingPatches.adoc 357 $(RM) $(cmds_txt) $(mergetools_txt) *.made 358 $(RM) GIT-ASCIIDOCFLAGS 359 $(RM) asciidoc.conf asciidoctor-extensions.rb 360 $(RM) -rf tmp-meson-diff 361 362docinfo.html: docinfo-html.in 363 $(QUIET_GEN)$(RM) $@ && cat $< >$@ 364 365$(MAN_HTML): %.html : %.adoc $(ASCIIDOC_DEPS) 366 $(QUIET_ASCIIDOC)$(TXT_TO_HTML) -d manpage -o $@ $< 367 368$(OBSOLETE_HTML): %.html : %.adoco $(ASCIIDOC_DEPS) 369 $(QUIET_ASCIIDOC)$(TXT_TO_HTML) -o $@ $< 370 371manpage-prereqs := $(wildcard manpage*.xsl) 372manpage-cmd = $(QUIET_XMLTO)$(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $< 373 374%.1 : %.xml $(manpage-prereqs) 375 $(manpage-cmd) 376%.5 : %.xml $(manpage-prereqs) 377 $(manpage-cmd) 378%.7 : %.xml $(manpage-prereqs) 379 $(manpage-cmd) 380 381%.xml : %.adoc $(ASCIIDOC_DEPS) 382 $(QUIET_ASCIIDOC)$(TXT_TO_XML) -d manpage -o $@ $< 383 384user-manual.xml: user-manual.adoc $(ASCIIDOC_DEPS) 385 $(QUIET_ASCIIDOC)$(TXT_TO_XML) -d book -o $@ $< 386 387technical/api-index.adoc: technical/api-index-skel.adoc \ 388 technical/api-index.sh $(patsubst %,%.adoc,$(API_DOCS)) 389 $(QUIET_GEN)'$(SHELL_PATH_SQ)' technical/api-index.sh ./technical ./technical/api-index.adoc 390 391technical/%.html: ASCIIDOC_EXTRA += -a git-relative-html-prefix=../ 392$(patsubst %,%.html,$(API_DOCS) technical/api-index $(TECH_DOCS)): %.html : %.adoc \ 393 $(ASCIIDOC_DEPS) 394 $(QUIET_ASCIIDOC)$(TXT_TO_HTML) $*.adoc 395 396SubmittingPatches.adoc: SubmittingPatches 397 $(QUIET_GEN) cp $< $@ 398 399XSLT = docbook.xsl 400XSLTOPTS = 401XSLTOPTS += --xinclude 402XSLTOPTS += --stringparam html.stylesheet docbook-xsl.css 403XSLTOPTS += --param generate.consistent.ids 1 404 405user-manual.html: user-manual.xml $(XSLT) 406 $(QUIET_XSLTPROC)xsltproc $(XSLTOPTS) -o $@ $(XSLT) $< 407 408git.info: user-manual.texi 409 $(QUIET_MAKEINFO)$(MAKEINFO) --no-split -o $@ user-manual.texi 410 411user-manual.texi: user-manual.xml fix-texi.sh 412 $(QUIET_DB2TEXI)$(DOCBOOK2X_TEXI) user-manual.xml --encoding=UTF-8 --to-stdout >$@+ && \ 413 $(SHELL_PATH) fix-texi.sh <$@+ >$@ && \ 414 $(RM) $@+ 415 416user-manual.pdf: user-manual.xml 417 $(QUIET_DBLATEX)$(DBLATEX) -o $@ $(DBLATEX_COMMON) $< 418 419gitman.texi: $(MAN_XML) cat-texi.perl texi.xsl 420 $(QUIET_DB2TEXI) \ 421 ($(foreach xml,$(sort $(MAN_XML)),xsltproc -o $(xml)+ texi.xsl $(xml) && \ 422 $(DOCBOOK2X_TEXI) --encoding=UTF-8 --to-stdout $(xml)+ && \ 423 $(RM) $(xml)+ &&) true) > $@+ && \ 424 $(PERL_PATH) cat-texi.perl $@ <$@+ >$@ && \ 425 $(RM) $@+ 426 427gitman.info: gitman.texi 428 $(QUIET_MAKEINFO)$(MAKEINFO) --no-split --no-validate $< 429 430$(patsubst %.adoc,%.texi,$(MAN_TXT)): %.texi : %.xml 431 $(QUIET_DB2TEXI)$(DOCBOOK2X_TEXI) --to-stdout $*.xml >$@ 432 433howto-index.adoc: howto/howto-index.sh $(HOWTO_TXT) 434 $(QUIET_GEN)'$(SHELL_PATH_SQ)' ./howto/howto-index.sh $(sort $(HOWTO_TXT)) >$@ 435 436$(patsubst %,%.html,$(ARTICLES)) : %.html : %.adoc $(ASCIIDOC_DEPS) 437 $(QUIET_ASCIIDOC)$(TXT_TO_HTML) $*.adoc 438 439WEBDOC_DEST = /pub/software/scm/git/docs 440 441howto/%.html: ASCIIDOC_EXTRA += -a git-relative-html-prefix=../ 442$(patsubst %.adoc,%.html,$(HOWTO_TXT)): %.html : %.adoc $(ASCIIDOC_DEPS) 443 $(QUIET_ASCIIDOC) \ 444 sed -e '1,/^$$/d' $< | \ 445 $(TXT_TO_HTML) - >$@ 446 447install-webdoc : html 448 '$(SHELL_PATH_SQ)' ./install-webdoc.sh $(WEBDOC_DEST) 449 450# You must have a clone of 'git-htmldocs' and 'git-manpages' repositories 451# next to the 'git' repository itself for the following to work. 452 453quick-install: quick-install-man 454 455require-manrepo:: 456 @if test ! -d $(MAN_REPO); \ 457 then echo "git-manpages repository must exist at $(MAN_REPO)"; exit 1; fi 458 459quick-install-man: require-manrepo 460 '$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(MAN_REPO) $(DESTDIR)$(mandir) $(GIT_MAN_REF) 461 462require-htmlrepo:: 463 @if test ! -d $(HTML_REPO); \ 464 then echo "git-htmldocs repository must exist at $(HTML_REPO)"; exit 1; fi 465 466quick-install-html: require-htmlrepo 467 '$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(HTML_REPO) $(DESTDIR)$(htmldir) $(GIT_MAN_REF) 468 469print-man1: 470 @for i in $(MAN1_TXT); do echo $$i; done 471 472## Lint: gitlink 473LINT_DOCS_GITLINK = $(patsubst %.adoc,.build/lint-docs/gitlink/%.ok,$(HOWTO_TXT) $(DOC_DEP_TXT)) 474$(LINT_DOCS_GITLINK): lint-gitlink.perl 475$(LINT_DOCS_GITLINK): .build/lint-docs/gitlink/%.ok: %.adoc 476 $(call mkdir_p_parent_template) 477 $(QUIET_LINT_GITLINK)$(PERL_PATH) lint-gitlink.perl \ 478 $< \ 479 $(HOWTO_TXT) $(DOC_DEP_TXT) \ 480 --section=1 $(MAN1_TXT) \ 481 --section=5 $(MAN5_TXT) \ 482 --section=7 $(MAN7_TXT) >$@ 483.PHONY: lint-docs-gitlink 484lint-docs-gitlink: $(LINT_DOCS_GITLINK) 485 486## Lint: man-end-blurb 487LINT_DOCS_MAN_END_BLURB = $(patsubst %.adoc,.build/lint-docs/man-end-blurb/%.ok,$(MAN_TXT)) 488$(LINT_DOCS_MAN_END_BLURB): lint-man-end-blurb.perl 489$(LINT_DOCS_MAN_END_BLURB): .build/lint-docs/man-end-blurb/%.ok: %.adoc 490 $(call mkdir_p_parent_template) 491 $(QUIET_LINT_MANEND)$(PERL_PATH) lint-man-end-blurb.perl $< >$@ 492.PHONY: lint-docs-man-end-blurb 493 494## Lint: man-section-order 495LINT_DOCS_MAN_SECTION_ORDER = $(patsubst %.adoc,.build/lint-docs/man-section-order/%.ok,$(MAN_TXT)) 496$(LINT_DOCS_MAN_SECTION_ORDER): lint-man-section-order.perl 497$(LINT_DOCS_MAN_SECTION_ORDER): .build/lint-docs/man-section-order/%.ok: %.adoc 498 $(call mkdir_p_parent_template) 499 $(QUIET_LINT_MANSEC)$(PERL_PATH) lint-man-section-order.perl $< >$@ 500.PHONY: lint-docs-man-section-order 501lint-docs-man-section-order: $(LINT_DOCS_MAN_SECTION_ORDER) 502 503.PHONY: lint-docs-fsck-msgids 504LINT_DOCS_FSCK_MSGIDS = .build/lint-docs/fsck-msgids.ok 505$(LINT_DOCS_FSCK_MSGIDS): lint-fsck-msgids.perl 506$(LINT_DOCS_FSCK_MSGIDS): ../fsck.h fsck-msgids.adoc 507 $(call mkdir_p_parent_template) 508 $(QUIET_GEN)$(PERL_PATH) lint-fsck-msgids.perl \ 509 ../fsck.h fsck-msgids.adoc $@ 510lint-docs-fsck-msgids: $(LINT_DOCS_FSCK_MSGIDS) 511 512## Lint: delimited sections 513LINT_DOCS_DELIMITED_SECTIONS = $(patsubst %.adoc,.build/lint-docs/delimited-sections/%.ok,$(MAN_TXT)) 514$(LINT_DOCS_DELIMITED_SECTIONS): lint-delimited-sections.perl 515$(LINT_DOCS_DELIMITED_SECTIONS): .build/lint-docs/delimited-sections/%.ok: %.adoc 516 $(call mkdir_p_parent_template) 517 $(QUIET_LINT_DELIMSEC)$(PERL_PATH) lint-delimited-sections.perl $< >$@ 518.PHONY: lint-docs-delimited-sections 519lint-docs-delimited-sections: $(LINT_DOCS_DELIMITED_SECTIONS) 520 521## Lint: Documentation style 522LINT_DOCS_DOC_STYLE = $(patsubst %.adoc,.build/lint-docs/doc-style/%.ok,$(DOC_DEP_TXT)) 523$(LINT_DOCS_DOC_STYLE): lint-documentation-style.perl 524$(LINT_DOCS_DOC_STYLE): .build/lint-docs/doc-style/%.ok: %.adoc 525 $(call mkdir_p_parent_template) 526 $(QUIET_LINT_DOCSTYLE)$(PERL_PATH) lint-documentation-style.perl $< >$@ 527.PHONY: lint-docs-doc-style 528lint-docs-doc-style: $(LINT_DOCS_DOC_STYLE) 529 530lint-docs-manpages: 531 $(QUIET_GEN)./lint-manpages.sh 532 533.PHONY: lint-docs-meson 534lint-docs-meson: 535 @# awk acts up when trying to match single quotes, so we use \047 instead. 536 @mkdir -p tmp-meson-diff && \ 537 awk "/^manpages = {$$/ {flag=1 ; next } /^}$$/ { flag=0 } flag { gsub(/^ \047/, \"\"); gsub(/\047 : [157],\$$/, \"\"); print }" meson.build | \ 538 grep -v -e '#' -e '^$$' | \ 539 sort >tmp-meson-diff/meson.adoc && \ 540 ls git*.adoc scalar.adoc | \ 541 grep -v -e git-bisect-lk2009.adoc \ 542 -e git-pack-redundant.adoc \ 543 -e git-tools.adoc \ 544 -e git-whatchanged.adoc \ 545 >tmp-meson-diff/actual.adoc && \ 546 if ! cmp tmp-meson-diff/meson.adoc tmp-meson-diff/actual.adoc; then \ 547 echo "Meson man pages differ from actual man pages:"; \ 548 diff -u tmp-meson-diff/meson.adoc tmp-meson-diff/actual.adoc; \ 549 exit 1; \ 550 fi 551 552## Lint: list of targets above 553.PHONY: lint-docs 554lint-docs: lint-docs-fsck-msgids 555lint-docs: lint-docs-gitlink 556lint-docs: lint-docs-man-end-blurb 557lint-docs: lint-docs-man-section-order 558lint-docs: lint-docs-delimited-sections 559lint-docs: lint-docs-doc-style 560lint-docs: lint-docs-manpages 561lint-docs: lint-docs-meson 562 563ifeq ($(wildcard po/Makefile),po/Makefile) 564doc-l10n install-l10n:: 565 $(MAKE) -C po $@ 566endif 567 568.PHONY: FORCE