From 0a702949db8c48df18d8964d57f912d58911e83a Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sun, 5 Jan 2014 16:34:12 +0100 Subject: [PATCH] info/toc: New; generated machine-readable table of contents Next commit will put it to use. Signed-off-by: Markus Armbruster --- Make.mk | 8 ++++---- info/mksubj.pl | 13 +++++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) 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) = @_; -- 2.43.0