Skip to content

Commit 63ec229

Browse files
committed
Merge branch 'ab/fix-make-lint-docs'
Build fix. * ab/fix-make-lint-docs: doc lint: make "lint-docs" non-.PHONY doc build: speed up "make lint-docs" doc lint: emit errors on STDERR doc lint: fix error-hiding regression
2 parents 06355d7 + 8650c62 commit 63ec229

File tree

5 files changed

+69
-13
lines changed

5 files changed

+69
-13
lines changed

Documentation/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ manpage-base-url.xsl
1414
SubmittingPatches.txt
1515
tmp-doc-diff/
1616
GIT-ASCIIDOCFLAGS
17+
/.build/
1718
/GIT-EXCLUDED-PROGRAMS

Documentation/Makefile

Lines changed: 60 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -226,18 +226,23 @@ endif
226226

227227
ifneq ($(findstring $(MAKEFLAGS),s),s)
228228
ifndef V
229+
QUIET = @
229230
QUIET_ASCIIDOC = @echo ' ' ASCIIDOC $@;
230231
QUIET_XMLTO = @echo ' ' XMLTO $@;
231232
QUIET_DB2TEXI = @echo ' ' DB2TEXI $@;
232233
QUIET_MAKEINFO = @echo ' ' MAKEINFO $@;
233234
QUIET_DBLATEX = @echo ' ' DBLATEX $@;
234235
QUIET_XSLTPROC = @echo ' ' XSLTPROC $@;
235236
QUIET_GEN = @echo ' ' GEN $@;
236-
QUIET_LINT = @echo ' ' LINT $@;
237237
QUIET_STDERR = 2> /dev/null
238238
QUIET_SUBDIR0 = +@subdir=
239239
QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \
240240
$(MAKE) $(PRINT_DIR) -C $$subdir
241+
242+
QUIET_LINT_GITLINK = @echo ' ' LINT GITLINK $<;
243+
QUIET_LINT_MANSEC = @echo ' ' LINT MAN SEC $<;
244+
QUIET_LINT_MANEND = @echo ' ' LINT MAN END $<;
245+
241246
export V
242247
endif
243248
endif
@@ -285,7 +290,7 @@ install-html: html
285290
../GIT-VERSION-FILE: FORCE
286291
$(QUIET_SUBDIR0)../ $(QUIET_SUBDIR1) GIT-VERSION-FILE
287292

288-
ifneq ($(MAKECMDGOALS),clean)
293+
ifneq ($(filter-out lint-docs clean,$(MAKECMDGOALS)),)
289294
-include ../GIT-VERSION-FILE
290295
endif
291296

@@ -344,6 +349,7 @@ GIT-ASCIIDOCFLAGS: FORCE
344349
fi
345350

346351
clean:
352+
$(RM) -rf .build/
347353
$(RM) *.xml *.xml+ *.html *.html+ *.1 *.5 *.7
348354
$(RM) *.texi *.texi+ *.texi++ git.info gitman.info
349355
$(RM) *.pdf
@@ -457,14 +463,61 @@ quick-install-html: require-htmlrepo
457463
print-man1:
458464
@for i in $(MAN1_TXT); do echo $$i; done
459465

460-
lint-docs::
461-
$(QUIET_LINT)$(PERL_PATH) lint-gitlink.perl \
466+
## Lint: Common
467+
.build:
468+
$(QUIET)mkdir $@
469+
.build/lint-docs: | .build
470+
$(QUIET)mkdir $@
471+
472+
## Lint: gitlink
473+
.build/lint-docs/gitlink: | .build/lint-docs
474+
$(QUIET)mkdir $@
475+
.build/lint-docs/gitlink/howto: | .build/lint-docs
476+
$(QUIET)mkdir $@
477+
.build/lint-docs/gitlink/config: | .build/lint-docs
478+
$(QUIET)mkdir $@
479+
LINT_DOCS_GITLINK = $(patsubst %.txt,.build/lint-docs/gitlink/%.ok,$(HOWTO_TXT) $(DOC_DEP_TXT))
480+
$(LINT_DOCS_GITLINK): | .build/lint-docs/gitlink
481+
$(LINT_DOCS_GITLINK): | .build/lint-docs/gitlink/howto
482+
$(LINT_DOCS_GITLINK): | .build/lint-docs/gitlink/config
483+
$(LINT_DOCS_GITLINK): lint-gitlink.perl
484+
$(LINT_DOCS_GITLINK): .build/lint-docs/gitlink/%.ok: %.txt
485+
$(QUIET_LINT_GITLINK)$(PERL_PATH) lint-gitlink.perl \
486+
$< \
462487
$(HOWTO_TXT) $(DOC_DEP_TXT) \
463488
--section=1 $(MAN1_TXT) \
464489
--section=5 $(MAN5_TXT) \
465-
--section=7 $(MAN7_TXT); \
466-
$(PERL_PATH) lint-man-end-blurb.perl $(MAN_TXT); \
467-
$(PERL_PATH) lint-man-section-order.perl $(MAN_TXT);
490+
--section=7 $(MAN7_TXT) >$@
491+
.PHONY: lint-docs-gitlink
492+
lint-docs-gitlink: $(LINT_DOCS_GITLINK)
493+
494+
## Lint: man-end-blurb
495+
.build/lint-docs/man-end-blurb: | .build/lint-docs
496+
$(QUIET)mkdir $@
497+
LINT_DOCS_MAN_END_BLURB = $(patsubst %.txt,.build/lint-docs/man-end-blurb/%.ok,$(MAN_TXT))
498+
$(LINT_DOCS_MAN_END_BLURB): | .build/lint-docs/man-end-blurb
499+
$(LINT_DOCS_MAN_END_BLURB): lint-man-end-blurb.perl
500+
$(LINT_DOCS_MAN_END_BLURB): .build/lint-docs/man-end-blurb/%.ok: %.txt
501+
$(QUIET_LINT_MANEND)$(PERL_PATH) lint-man-end-blurb.perl $< >$@
502+
.PHONY: lint-docs-man-end-blurb
503+
lint-docs-man-end-blurb: $(LINT_DOCS_MAN_END_BLURB)
504+
505+
## Lint: man-section-order
506+
.build/lint-docs/man-section-order: | .build/lint-docs
507+
$(QUIET)mkdir $@
508+
LINT_DOCS_MAN_SECTION_ORDER = $(patsubst %.txt,.build/lint-docs/man-section-order/%.ok,$(MAN_TXT))
509+
$(LINT_DOCS_MAN_SECTION_ORDER): | .build/lint-docs/man-section-order
510+
$(LINT_DOCS_MAN_SECTION_ORDER): lint-man-section-order.perl
511+
$(LINT_DOCS_MAN_SECTION_ORDER): .build/lint-docs/man-section-order/%.ok: %.txt
512+
$(QUIET_LINT_MANSEC)$(PERL_PATH) lint-man-section-order.perl $< >$@
513+
.PHONY: lint-docs-man-section-order
514+
lint-docs-man-section-order: $(LINT_DOCS_MAN_SECTION_ORDER)
515+
516+
## Lint: list of targets above
517+
.PHONY: lint-docs
518+
lint-docs: lint-docs-gitlink
519+
lint-docs: lint-docs-man-end-blurb
520+
lint-docs: lint-docs-man-section-order
468521

469522
ifeq ($(wildcard po/Makefile),po/Makefile)
470523
doc-l10n install-l10n::

Documentation/lint-gitlink.perl

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55

66
# Parse arguments, a simple state machine for input like:
77
#
8-
# howto/*.txt config/*.txt --section=1 git.txt git-add.txt [...] --to-lint git-add.txt a-file.txt [...]
8+
# <file-to-check.txt> <valid-files-to-link-to> --section=1 git.txt git-add.txt [...] --to-lint git-add.txt a-file.txt [...]
99
my %TXT;
1010
my %SECTION;
1111
my $section;
1212
my $lint_these = 0;
13+
my $to_check = shift @ARGV;
1314
for my $arg (@ARGV) {
1415
if (my ($sec) = $arg =~ /^--section=(\d+)$/s) {
1516
$section = $sec;
@@ -30,13 +31,14 @@ sub report {
3031
my ($pos, $line, $target, $msg) = @_;
3132
substr($line, $pos) = "' <-- HERE";
3233
$line =~ s/^\s+//;
33-
print "$ARGV:$.: error: $target: $msg, shown with 'HERE' below:\n";
34-
print "$ARGV:$.:\t'$line\n";
34+
print STDERR "$ARGV:$.: error: $target: $msg, shown with 'HERE' below:\n";
35+
print STDERR "$ARGV:$.:\t'$line\n";
3536
$exit_code = 1;
3637
}
3738

3839
@ARGV = sort values %TXT;
39-
die "BUG: Nothing to process!" unless @ARGV;
40+
die "BUG: No list of valid linkgit:* files given" unless @ARGV;
41+
@ARGV = $to_check;
4042
while (<>) {
4143
my $line = $_;
4244
while ($line =~ m/linkgit:((.*?)\[(\d)\])/g) {

Documentation/lint-man-end-blurb.perl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
my $exit_code = 0;
77
sub report {
88
my ($target, $msg) = @_;
9-
print "error: $target: $msg\n";
9+
print STDERR "error: $target: $msg\n";
1010
$exit_code = 1;
1111
}
1212

Documentation/lint-man-section-order.perl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
my $exit_code = 0;
4747
sub report {
4848
my ($msg) = @_;
49-
print "$ARGV:$.: $msg\n";
49+
print STDERR "$ARGV:$.: $msg\n";
5050
$exit_code = 1;
5151
}
5252

0 commit comments

Comments
 (0)