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