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
|
#!/usr/bin/icmake -t.
#define LOGENV "FILTERMAIL"
#include "icmconf"
list g_log;
string
g_logPath = getenv(LOGENV)[1],
g_logMark, // unique-marker for g_log entries
g_cwd = chdir(""); // initial working directory, ends in /
int g_echo = ON; // MODIFIED, existing variable
int g_installing; // set to 1 by install.
int g_lognr; // unique-marker number counter for g_log entries
#include "icmake/setopt"
#include "icmake/cuteoln"
#include "icmake/backtick"
#include "icmake/run"
#include "icmake/md"
#include "icmake/findall"
#include "icmake/loginstall"
#include "icmake/logzip"
#include "icmake/logfile"
#include "icmake/uninstall"
#include "icmake/pathfile"
#include "icmake/special"
#include "icmake/clean"
#include "icmake/manpage"
#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 == "install")
install(argv[2], argv[3]);
if (option == "uninstall")
uninstall(argv[2]);
if (option != "")
special();
if (option == "gitlab")
gitlab();
if (option == "man")
manpage();
if ("VERSION" younger "version/version.h")
system("touch version/version.h main.cc usage.cc");
if (option == "library")
{
system("icmbuild library");
exit(0);
}
if (option == "program")
{
system("icmbuild program");
exit(0);
}
if (option == "xref")
{
system("icmbuild program");
run("oxref -fxs 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"
" program - build " PROGRAM "\n"
" xref - same a `program', also builds "
"xref file\n"
" using oxref\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-pages)\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"
);
exit(1);
}
|