|
|
1.1 root 1: BEGIN {
2: i = 0;
3: eflag = 0;
4: User = Inmake = Indefs = 0;
5: version = "v7";
6: Makefile = install = postnews = "";
7: }
8:
9: /^#/ {next;}
10: /^[ ]*$/ {next;}
11:
12: /^@@BeginMakefile$/ {Inmake = 1; next;}
13: /^@@EndMakefile$/ {Inmake = 0; next;}
14: /^@@BeginDefs$/ {Indefs = 1; next;}
15: /^@@EndDefs$/ {Indefs = 0; next;}
16: /^@@BeginUser$/ {User = 1; next;}
17:
18: $1 == version {version = $1; next;}
19: $1 == Makefile {Makefile = $1; next;}
20: $1 == postnews {postnews = $1; next;}
21: $1 == install {install = $1; next;}
22:
23: {
24: if ((Inmake + Indefs + User) != 1) {
25: printf "sequence error\n";
26: eflag = 1;
27: exit;
28: }
29: if ($1 ~ /^\+/) {omit = 0; nm = substr($1, 2, length($1)-1);}
30: else if ($1 ~ /^\-/) {omit = 1; nm = substr($1, 2, length($1)-1);}
31: else {omit = 0; nm = $1;}
32:
33: if (!User) {
34: Mkparm[i] = Inmake;
35: opt[i++] = nm;
36: valid[nm] = "ok";
37: }
38: else if (valid[nm] == "") {
39: printf "%s: invalid option\n", nm;
40: eflag = 1;
41: next;
42: }
43: if (omit) {
44: Omit[nm] = 1;
45: next;
46: }
47: else Omit[nm] = 0;
48:
49: if (NF >= 2) {
50: val =$2;
51: for (j = 3; j <= NF; j++)
52: val = sprintf("%s=%s", val, $(j));
53: gotit[nm] = val;
54: }
55: }
56:
57: END {
58: if (eflag) {
59: printf "echo No defs.h file created\n";
60: exit;
61: }
62: if (Makefile == "") Makefile = version;
63: if (postnews == "") postnews = version;
64: if (install == "") install = version;
65: printf "cp defs.templ defs.h; chmod +w defs.h\n";
66: printf "ed - defs.h <<'EOF'\n";
67: for (j = 0; j < i; j++) {
68: if (Mkparm[j]) continue;
69: vl=opt[j];
70: do=gotit[vl];
71: if (Omit[vl])
72: printf "g/^#define[ ]*%s[ ]/s~^~/* ~\n", vl;
73: else if (do != "")
74: printf "g/^#define[ ]*%s[ ]/s~@@~%s~\n", vl, do;
75: }
76: printf "w\nq\nEOF\n";
77: printf "cat >Makefile <<'EOF'\n";
78: for (j = 0; j < i; j++) {
79: if (Mkparm[j]) {
80: vl=opt[j];
81: printf "%s=", vl;
82: if (!Omit[vl])
83: printf "%s", gotit[vl];
84: printf "\n";
85: }
86: }
87: printf "EOF\ncat Makefile.%s >>Makefile\n", Makefile;
88: printf "cp postnews.%s postnews; chmod +x postnews\n", postnews;
89: printf "cp install.%s install; chmod +x install\n", install;
90: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.