Skip to content

Commit fb612d5

Browse files
author
Junio C Hamano
committed
Documentation: fix dependency generation.
The previous rule misses the case where git.txt or tutorial.txt includes new files. Signed-off-by: Junio C Hamano <junkio@cox.net>
1 parent b2d09f0 commit fb612d5

File tree

2 files changed

+36
-11
lines changed

2 files changed

+36
-11
lines changed

Documentation/Makefile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,7 @@ install: man
5353
#
5454
# Determine "include::" file references in asciidoc files.
5555
#
56-
TEXTFILES = $(wildcard git-*.txt)
57-
doc.dep : $(TEXTFILES) build-docdep.perl
56+
doc.dep : $(wildcard *.txt) build-docdep.perl
5857
rm -f $@+ $@
5958
perl ./build-docdep.perl >$@+
6059
mv $@+ $@

Documentation/build-docdep.perl

Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,54 @@
11
#!/usr/bin/perl
22

33
my %include = ();
4+
my %included = ();
45

5-
for my $text (<git-*.txt>) {
6+
for my $text (<*.txt>) {
67
open I, '<', $text || die "cannot read: $text";
7-
(my $base = $text) =~ s/\.txt$//;
88
while (<I>) {
99
if (/^include::/) {
1010
chomp;
1111
s/^include::\s*//;
1212
s/\[\]//;
13-
$include{$base}{$_} = 1;
13+
$include{$text}{$_} = 1;
14+
$included{$_} = 1;
1415
}
1516
}
1617
close I;
1718
}
1819

1920
# Do we care about chained includes???
20-
21-
while (my ($base, $included) = each %include) {
22-
my ($suffix) = '1';
23-
if ($base eq 'git') {
24-
$suffix = '7'; # yuck...
21+
my $changed = 1;
22+
while ($changed) {
23+
$changed = 0;
24+
while (my ($text, $included) = each %include) {
25+
print STDERR "Looking at $text...\n";
26+
for my $i (keys %$included) {
27+
print STDERR "$text includes $i.\n";
28+
# $text has include::$i; if $i includes $j
29+
# $text indirectly includes $j.
30+
if (exists $include{$i}) {
31+
print STDERR "$i includes something.\n";
32+
for my $j (keys %{$include{$i}}) {
33+
print STDERR "$text includes $i include $j\n";
34+
if (!exists $include{$text}{$j}) {
35+
$include{$text}{$j} = 1;
36+
$included{$j} = 1;
37+
$changed = 1;
38+
}
39+
}
40+
}
41+
}
2542
}
26-
print "$base.html $base.$suffix : ", join(" ", keys %$included), "\n";
2743
}
2844

45+
while (my ($text, $included) = each %include) {
46+
if (! exists $included{$text} &&
47+
(my $base = $text) =~ s/\.txt$//) {
48+
my ($suffix) = '1';
49+
if ($base eq 'git') {
50+
$suffix = '7'; # yuck...
51+
}
52+
print "$base.html $base.$suffix : ", join(" ", keys %$included), "\n";
53+
}
54+
}

0 commit comments

Comments
 (0)