diff --git a/Documentation/.gitignore b/Documentation/.gitignore index dad52b80d3..9fef490871 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 bb9533ff03..f45a062469 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) +TEXTFILES = $(wildcard git-*.txt) +doc.dep : $(TEXTFILES) build-docdep.perl + rm -f $@+ $@ + perl ./build-docdep.perl >$@+ + mv $@+ $@ -%.dep : %.txt - @rm -f $@ - @$(foreach dep, $(shell grep include:: $< | sed -e 's/include::/ /' -e 's/\[\]//'), \ - echo $(<:%.txt=%.html) $(<:%.txt=%.1) : $(dep) >> $@; ) - --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 0000000000..dedef765af --- /dev/null +++ b/Documentation/build-docdep.perl @@ -0,0 +1,28 @@ +#!/usr/bin/perl + +my %include = (); + +for my $text () { + open I, '<', $text || die "cannot read: $text"; + (my $base = $text) =~ s/\.txt$//; + while () { + 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"; +} +