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"
);
}
|