File: build

package info (click to toggle)
simrisc 16.05.00-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,568 kB
  • sloc: cpp: 6,877; fortran: 665; makefile: 112; ansic: 112; sh: 107
file content (144 lines) | stat: -rwxr-xr-x 3,736 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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#!/usr/bin/icmake -t.

#define LOGENV "SIMRISC"

#include "icmconf"

string
    g_logPath = getenv(LOGENV)[1],
    g_cwd = chdir("");  // initial working directory, ends in /

int g_echo = ON;

#include "icmake/cuteoln"
#include "icmake/backtick"

#include "icmake/setopt"
#include "icmake/beep"      // beep if /usr/local/bin/beep exists and exit
#include "icmake/run"
#include "icmake/md"

#include "icmake/pathfile"
#include "icmake/findall"
#include "icmake/loginstall"
#include "icmake/logzip"
#include "icmake/logfile"
#include "icmake/uninstall"

#include "icmake/special"

#include "icmake/clean"
#include "icmake/manpage"

#include "icmake/latexdoc"
#include "icmake/pdf"
#include "icmake/manual"

#include "icmake/install"
#include "icmake/gitlab"

void main(int argc, list argv)
{
    string option;
    int idx;

    for (idx = listlen(argv); idx--; )
    {
        if (argv[idx] == "-q")
        {
            g_echo = OFF;
            argv -= (list)"-q";
        }
    }

    echo(g_echo);

    option = argv[1];

    if (option == "clean")
        clean(0);

    if (option == "distclean")
        clean(1);

    if (option != "")
        special();

    if (option == "install")
        install(argv[2], argv[3]);

    if (option == "uninstall")
        uninstall(argv[2]);

    if (option == "gitlab")
        gitlab();

    if (option == "man")
        manpage();

    if (option == "manual")
        manual();

    if (option == "pdf")            // creates the pdf version of the
        pdf();                      // tech manual

    if (option == "library")
    {
        system("icmbuild library");
        beep();
    }

    if (option == "strip")
    {
        run("/bin/strip " TMP_DIR "/bin/binary");
        exit(0);
    }

    if (option == "program")
    {
        system("icmbuild program");
        exit(0);
    }

    if (option == "xref")
    {
        system("icmbuild program");
        run("oxref -t main -r replacements -fxs tmp/main.o tmp/lib"
                                            LIBRARY ".a > " PROGRAM ".xref");
        exit(0);
    }

    printf("Usage: build [-q] what\n"
        "Where\n"
        "   [-q]:   run quietly, do not show executed commands\n"
        "`what' is one of:\n"
        "   clean            - clean up remnants of previous compilations\n"
        "   distclean        - clean + fully remove tmp/\n"
        "   library          - build " PROGRAM "'s library\n"
        "   man              - build the man-page (requires Yodl)\n"
        "   manual           - build the html manual (requires Yodl)\n"
        "   pdf              - build the pdf manual (requires Yodl)\n"
        "   program          - build " PROGRAM "\n"
        "   xref             - same a `program', also builds xref file\n"
        "                      using oxref\n"
        "   strip            - strip the binary constructed by 'program,'\n"
        "   install selection [base] - to install the software in the \n"
        "                      locations defined in the INSTALL.im file,\n"
        "                      optionally below base\n"
        "                      selection can be\n"
        "                            x, to install all components,\n"
        "                      or a combination of:\n"
        "                            b (binary program),\n"
        "                            d (documentation),\n"
        "                            m (man-page)\n"
        "   uninstall logfile - remove files and empty directories listed\n"
        "                       in the file 'logfile'\n"
        "   gitlab            - prepare gitlab's web-pages update\n"
        "                       (internal use only)\n"
        "\n"
    );
}