diff options
author | Junio C Hamano <junkio@cox.net> | 2005-11-07 18:21:51 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-11-07 18:21:51 -0800 |
commit | a5ae8e64cfa09cea57cce832c8371818711d94c2 (patch) | |
tree | 92e334771c9bfda4c84c915a050d3981b6d923cd | |
parent | 79f6ac77d90660971d778f2e300935ab16eb26c2 (diff) | |
download | git-a5ae8e64cfa09cea57cce832c8371818711d94c2.tar.gz git-a5ae8e64cfa09cea57cce832c8371818711d94c2.tar.xz |
Fix documentation dependency generation.
Documentation/Makefile spent a lot of time to generate include
dependencies, which was quite noticeable especially during "make clean".
Rewrite it to generate just a single dependency file.
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | Documentation/.gitignore | 1 | ||||
-rw-r--r-- | Documentation/Makefile | 16 | ||||
-rwxr-xr-x | Documentation/build-docdep.perl | 28 |
3 files changed, 36 insertions, 9 deletions
diff --git a/Documentation/.gitignore b/Documentation/.gitignore index dad52b80d..9fef49087 100644 --- a/Documentation/.gitignore +++ b/Documentation/.gitignore @@ -3,3 +3,4 @@ *.1 *.7 howto-index.txt +doc.dep diff --git a/Documentation/Makefile b/Documentation/Makefile index bb9533ff0..f45a06246 100644 --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -53,21 +53,19 @@ install: man # # Determine "include::" file references in asciidoc files. # -TEXTFILES = $(wildcard *.txt) -DEPFILES = $(TEXTFILES:%.txt=%.dep) - -%.dep : %.txt - @rm -f $@ - @$(foreach dep, $(shell grep include:: $< | sed -e 's/include::/ /' -e 's/\[\]//'), \ - echo $(<:%.txt=%.html) $(<:%.txt=%.1) : $(dep) >> $@; ) +TEXTFILES = $(wildcard git-*.txt) +doc.dep : $(TEXTFILES) build-docdep.perl + rm -f $@+ $@ + perl ./build-docdep.perl >$@+ + mv $@+ $@ --include $(DEPFILES) +-include doc.dep git.7: ../README clean: - rm -f *.xml *.html *.1 *.7 howto-index.txt howto/*.html *.dep + rm -f *.xml *.html *.1 *.7 howto-index.txt howto/*.html doc.dep %.html : %.txt asciidoc -b xhtml11 -d manpage -f asciidoc.conf $< diff --git a/Documentation/build-docdep.perl b/Documentation/build-docdep.perl new file mode 100755 index 000000000..dedef765a --- /dev/null +++ b/Documentation/build-docdep.perl @@ -0,0 +1,28 @@ +#!/usr/bin/perl + +my %include = (); + +for my $text (<git-*.txt>) { + open I, '<', $text || die "cannot read: $text"; + (my $base = $text) =~ s/\.txt$//; + while (<I>) { + if (/^include::/) { + chomp; + s/^include::\s*//; + s/\[\]//; + $include{$base}{$_} = 1; + } + } + close I; +} + +# Do we care about chained includes??? + +while (my ($base, $included) = each %include) { + my ($suffix) = '1'; + if ($base eq 'git') { + $suffix = '7'; # yuck... + } + print "$base.html $base.$suffix : ", join(" ", keys %$included), "\n"; +} + |