|
|
1.1 root 1: #include <stdio.h>
2: #include <ctype.h>
3:
4: #define SHELLCOM "/bin/sh"
5: typedef long int TIMETYPE;
6:
7: #ifdef unix
8: /* to install metering, add a statement like */
9: #define METERFILE "/usr/sif/make/Meter"
10: /* to turn metering on, set external variable meteron to 1 */
11: #endif
12:
13: /* define FSTATIC to be static on systems with C compilers
14: supporting file-static; otherwise define it to be null
15: */
16: #define FSTATIC static
17:
18: #define NO 0
19: #define YES 1
20:
21: #define unequal strcmp
22: #define HASHSIZE 509
23: #define NLEFTS 40
24: #define NCHARS 500
25: #define NINTS 250
26: #define INMAX 1500
27: #define OUTMAX 2500
28: #define QBUFMAX 1500
29: #define MAXDIR 10
30:
31: #define ALLDEPS 1
32: #define SOMEDEPS 2
33:
34: #define META 01
35: #define TERMINAL 02
36: extern char funny[128];
37:
38:
39: #define ALLOC(x) (struct x *) ckalloc(sizeof(struct x))
40:
41: extern int sigivalue;
42: extern int sigqvalue;
43: extern int waitpid;
44: extern int dbgflag;
45: extern int prtrflag;
46: extern int silflag;
47: extern int noexflag;
48: extern int keepgoing;
49: extern int noruleflag;
50: extern int touchflag;
51: extern int questflag;
52: extern int ndocoms;
53: extern int ignerr;
54: extern int okdel;
55: extern int inarglist;
56: extern char *prompt;
57: extern int nopdir;
58: extern char junkname[ ];
59:
60:
61:
62: struct nameblock
63: {
64: struct nameblock *nxtnameblock;
65: char *namep;
66: struct lineblock *linep;
67: int done:3;
68: int septype:3;
69: TIMETYPE modtime;
70: };
71:
72: extern struct nameblock *mainname ;
73: extern struct nameblock *firstname;
74:
75: struct lineblock
76: {
77: struct lineblock *nxtlineblock;
78: struct depblock *depp;
79: struct shblock *shp;
80: };
81: extern struct lineblock *sufflist;
82:
83: struct depblock
84: {
85: struct depblock *nxtdepblock;
86: struct nameblock *depname;
87: };
88:
89: struct shblock
90: {
91: struct shblock *nxtshblock;
92: char *shbp;
93: };
94:
95: struct varblock
96: {
97: struct varblock *nxtvarblock;
98: char *varname;
99: char *varval;
100: int noreset:1;
101: int used:1;
102: };
103: extern struct varblock *firstvar;
104:
105: struct pattern
106: {
107: struct pattern *nxtpattern;
108: char *patval;
109: };
110: extern struct pattern *firstpat;
111:
112: struct opendir
113: {
114: struct opendir *nxtopendir;
115: FILE * dirfc;
116: char *dirn;
117: };
118: extern struct opendir *firstod;
119:
120:
121: struct chain
122: {
123: struct chain *nextp;
124: char *datap;
125: };
126:
127: char *copys(), *concat(), *subst();
128: int *ckalloc();
129: struct nameblock *srchname(), *makename();
130: TIMETYPE exists();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.