File: make_doc.in

package info (click to toggle)
gap 4.15.1-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 110,212 kB
  • sloc: ansic: 97,261; xml: 48,343; cpp: 13,946; sh: 4,900; perl: 1,650; javascript: 255; makefile: 252; ruby: 9
file content (87 lines) | stat: -rw-r--r-- 2,635 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/usr/bin/env bash

set -e
set -o pipefail

GAP=@abs_top_builddir@/gap
GAPARGS="-b -m 1g -x 80 -q --quitonbreak"
if [ "$1" == "nopdf" ]; then
  NOPDF=", \"nopdf\""
else
  NOPDF=""
fi
echo "--------------------"
echo "Building GAP manuals"
echo "--------------------"

"$GAP" $GAPARGS -A <<EOF
base:="@abs_top_srcdir@";;
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);

    # skip over missing manuals
    if not IsDirectoryPath(path) then
        continue;
    fi;

    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
        f := Filename(dir, "makedocreldata.g");
        Read(f);
        files := GAPInfo.ManualDataRef.files;
    else
        files := [];
    fi;

    if run = 2 then
        # create black&white version of manual (but only on second run)
        SetGapDocLaTeXOptions("nocolor", latexOpts);
        MakeGAPDocDoc( path, "main.xml", files, book, "../..", "MathJax" $NOPDF );;

        # Rename the generated black&white PDF
        f1 := Filename(dir, "manual.pdf");
        f2 := Filename(dir, "manual-bw.pdf");
        Exec(Concatenation("mv -f ", f1, " ", f2));

        # convert manual.six to manual.lab, to allow old-style package manuals
        # to reference the manual
        GAPDocManualLabFromSixFile( book, Filename(dir, "manual.six") );;

        #
        CopyHTMLStyleFiles(dir);
    fi;

    # create manuals with color
    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:");;
QuitGap(true);
EOF