1    // base is the base location of the macros to build.
2    // include path is the location where to find the macros
3    // this should be ./ (local use, for man, manual) or STD_INCLUDE
4    //
5    //  void buildMacros(string base, string includePath)
6
7void _configReplacements(string source, string base, string includePath)
8{
9    source = change_ext(source, "");
10
11    run("scripts/configreplacements " +
12                            "macros/in/" + source + ".in " +
13                            base + source + ".yo " +
14                            includePath);
15}
16
17void _stdMacros(string base, string includePath)
18{
19    list std;
20    int idx;
21    string conversion;
22
23    std = strtok(STD_CONVERSIONS, " ");     // the list of format-conversions
24
25        // Create the std.<format>.yo files, providing scratch filename,
26        //  destination directory, requested format, and STD_INCLUDE path
27    for (idx = listlen(std); idx--; )
28        run("scripts/stdmacros " +
29                        g_wip + "/scratch " +
30                        base + " " +
31                        std[idx] + " " +
32                        includePath);
33}
34
35    // base is the base location of the macros to build.
36    // include path is the location where to find the macros
37    // this should be ./ (local use, for man, manual) or STD_INCLUDE
38void buildMacros(string base, string includePath)
39{
40    list in;
41    int idx;
42
43    md(base);
44    base += "/";
45
46    run("rm -rf " + base + "*");    // remove old build-location
47
48    chdir("macros/in");             // location of the format-specific macro
49    in = makelist("*.in");          // files, like html.yo
50    chdir(g_cwd);
51
52    for (idx = listlen(in); idx--; ) // set the config.h info and create the
53        _configReplacements(in[idx], base, includePath);  // format-specific
54                                                            // files
55
56    _stdMacros(base, includePath);      // create the std.<format>.yo files,
57                                        // like std.man.yo
58
59    run("cp -r macros/yodl/* " + base); // install chartables, xlatin1.tex
60                                        // and xml/ files
61}
62
63
64
65
66