diff --git a/doc/make_doc.in b/doc/make_doc.in index 4486ae3656..ac535332e4 100644 --- a/doc/make_doc.in +++ b/doc/make_doc.in @@ -4,7 +4,7 @@ set -e set -o pipefail GAP=@abs_top_builddir@/gap -GAPARGS="-b -m 1g -x 80 -q --quitonbreak" +GAPARGS="-b -m 1g -x 80 -q --quitonbreak -r" if [ "$1" == "nopdf" ]; then NOPDF=", \"nopdf\"" else @@ -20,6 +20,13 @@ books:=["ref", "tut", "hpc", "dev"];; latexOpts := rec(Maintitlesize := "\\\\fontsize{36}{38}\\\\selectfont");; UpdateXMLForUserPreferences(); for run in [1,2] do + # collect output messages separately in both runs + outputstring:= "";; + outputstream:= OutputTextString(outputstring, true);; + SetPrintFormattingStatus(outputstream, false); + SetInfoOutput(InfoGAPDoc, outputstream); + SetInfoOutput(InfoWarning, outputstream); + for book in books do path := Concatenation(base, "/doc/", book); dir := Directory(path); @@ -29,10 +36,10 @@ for run in [1,2] do continue; fi; - Print("----------------------------\n"); - Print("Building GAP manual '",book,"' at ",path,"\n"); - Print("Run ",run," of 2\n"); - Print("----------------------------\n"); + AppendTo(outputstream, "----------------------------\n"); + AppendTo(outputstream, "Building GAP manual '",book,"' at ",path,"\n"); + AppendTo(outputstream, "Run ",run," of 2\n"); + AppendTo(outputstream, "----------------------------\n"); # for the reference manual, extra list of source files to scan if book = "ref" then @@ -65,5 +72,21 @@ for run in [1,2] do SetGapDocLaTeXOptions("color", latexOpts); MakeGAPDocDoc( path, "main.xml", files, book, "../..", "MathJax" $NOPDF);; od; + + CloseStream(outputstream); + UnbindInfoOutput(InfoGAPDoc); + UnbindInfoOutput(InfoWarning); + Print(outputstring); od; + +# evaluate the outputs for the second run +outputstring:= ReplacedString(outputstring, "\c", "");; +errors:= Filtered(SplitString(outputstring, "\n"), + x -> StartsWith(x, "#W ") and x <> "#W There are overfull boxes:");; +if Length(errors) = 0 then + QuitGap(true); +else + Print(errors, "\n"); + QuitGap(false); +fi; EOF