From: Markus Armbruster Date: Sun, 5 Jan 2014 15:34:12 +0000 (+0100) Subject: info/toc: New; generated machine-readable table of contents X-Git-Tag: v4.3.33~304 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=0a702949db8c48df18d8964d57f912d58911e83a info/toc: New; generated machine-readable table of contents Next commit will put it to use. Signed-off-by: Markus Armbruster --- diff --git a/Make.mk b/Make.mk index bfe62cb6a..2fb4bbbbb 100644 --- a/Make.mk +++ b/Make.mk @@ -321,15 +321,15 @@ $(libs) $(empth_lib): # Info formatting -# mksubj.pl reads $(tsrc) and writes $(tsubj). The naive rule -# $(ttop) $(tsubj): $(tsrc) +# mksubj.pl reads $(tsrc) and writes $(tsubj). A naive rule +# $(tsubj): $(tsrc) # COMMAND # runs COMMAND once for each target. That's because multiple targets # in an explicit rule is just a shorthand for one rule per target, # each with the same prerequisites and commands. Use a stamp file. -$(tsubj): info/stamp-subj ; +$(tsubj) info/toc: info/stamp-subj ; info/stamp-subj: info/mksubj.pl $(tsrc) - $(call quiet-command,perl $(srcdir)/info/mksubj.pl $(subjects) $(filter %.t, $^),GEN '$(tsubj)') + $(call quiet-command,perl $(srcdir)/info/mksubj.pl $(subjects) $(filter %.t, $^),GEN '$(tsubj) info/toc') >$@ $(ttop): info/mktop.pl info/subjects.mk diff --git a/info/mksubj.pl b/info/mksubj.pl index 614b035b9..2681463db 100644 --- a/info/mksubj.pl +++ b/info/mksubj.pl @@ -77,6 +77,8 @@ for (keys %Subjects) { update_subj($_); } +write_toc(); + sub fn2topic { my ($fn) = @_; $fn =~ s,.*/([^/]*)\.t$,$1,; @@ -249,6 +251,17 @@ sub same_contents { return $contents eq $old; } +sub write_toc { + my @toc; + for (keys %chapter) { + push @toc, "$chapter{$_} $_"; + } + open(TOC, ">info/toc") + or die "Can't open info/toc for writing: $!"; + print TOC join("\n", sort @toc); + close TOC; +} + # Print an integrity error message and exit with code 1 sub error { my ($error) = @_;