|
|
1.1 root 1: /* defs 4.2 85/05/14 */
2: #include <stdio.h>
3: #include <sys/param.h>
4: #include <ctype.h>
5: #ifdef VERSION8
6: # include <ndir.h>
7: #else
8: # include <sys/dir.h>
9: #endif
10:
11:
12: #define SHELLCOM "/bin/sh"
13:
14: typedef char flag; /* represent a few bit flag */
15: typedef long int TIMETYPE;
16:
17: #ifdef unix
18: /* to install metering, add a statement like */
19: #define METERFILE "/usr/sif/make/Meter"
20: /* to turn metering on, set external variable meteron to 1 */
21: #endif
22:
23: /* define FSTATIC to be static on systems with C compilers
24: supporting file-static; otherwise define it to be null
25: */
26: #define FSTATIC static
27:
28: #define NO 0
29: #define YES 1
30:
31: #define equal(a,b) (! strcmp(a,b))
32: #define HASHSIZE 1021
33: #define NLEFTS 512
34: #define NCHARS 500
35: #define NINTS 250
36: #define INMAX 5000
37: #define OUTMAX 5000
38: #define QBUFMAX 5000
39: #define MAXDIR 10
40: #define MAXPROC 100
41: #define MAXINCLUDE 17
42: #define PROCLIMIT 3
43:
44: #define ALLDEPS 1
45: #define SOMEDEPS 2
46:
47: #define META 01
48: #define TERMINAL 02
49: extern char funny[128];
50:
51:
52: #define ALLOC(x) (struct x *) ckalloc(sizeof(struct x))
53: #define CHNULL (char *) NULL
54:
55: extern int sigivalue;
56: extern int sigqvalue;
57: extern int dbgflag;
58: extern int prtrflag;
59: extern int silflag;
60: extern int noexflag;
61: extern int keepgoing;
62: extern int noruleflag;
63: extern int touchflag;
64: extern int questflag;
65: extern int oldflag;
66: extern int ndocoms;
67: extern int ignerr;
68: extern int okdel;
69: extern int inarglist;
70: extern char **envpp; /* points to slot in environment vector */
71: extern char *prompt;
72: extern int nopdir;
73:
74: typedef struct nameblock *nameblkp;
75: typedef struct depblock *depblkp;
76: typedef struct lineblock *lineblkp;
77: typedef struct chain *chainp;
78:
79: struct nameblock
80: {
81: nameblkp nxtnameblock;
82: char *namep;
83: lineblkp linep;
84: flag done;
85: flag septype;
86: flag isarch;
87: flag isdir;
88: TIMETYPE modtime;
89: };
90:
91: extern nameblkp mainname;
92: extern nameblkp firstname;
93: extern nameblkp *hashtab;
94: extern int nhashed;
95: extern int hashsize;
96: extern int hashthresh;
97:
98: struct lineblock
99: {
100: lineblkp nxtlineblock;
101: struct depblock *depp;
102: struct shblock *shp;
103: };
104: extern lineblkp sufflist;
105:
106: struct depblock
107: {
108: depblkp nxtdepblock;
109: nameblkp depname;
110: char nowait;
111: } ;
112:
113: struct shblock
114: {
115: struct shblock *nxtshblock;
116: char *shbp;
117: };
118:
119: struct varblock
120: {
121: struct varblock *nxtvarblock;
122: char *varname;
123: char *varval;
124: char **export;
125: flag noreset;
126: flag used;
127: };
128: extern struct varblock *firstvar;
129:
130: struct pattern
131: {
132: struct pattern *nxtpattern;
133: char *patval;
134: };
135: extern struct pattern *firstpat;
136:
137: struct dirhd
138: {
139: struct dirhd *nxtdirhd;
140: TIMETYPE dirtime;
141: int dirok;
142: DIR * dirfc;
143: char *dirn;
144: };
145: extern struct dirhd *firstod;
146:
147:
148: struct chain
149: {
150: chainp nextp;
151: char *datap;
152: };
153:
154: struct wild
155: {
156: struct wild *next;
157: lineblkp linep;
158: char *left;
159: char *right;
160: int llen;
161: int rlen;
162: int totlen;
163: };
164:
165: typedef struct wild *wildp;
166: extern wildp firstwild;
167: extern wildp lastwild;
168:
169:
170: /* date for processes */
171: extern int proclimit; /* maximum spawned processes allowed alive at one time */
172: extern int proclive; /* number of spawned processes awaited */
173: extern int nproc; /* next slot in process stack to use */
174: extern struct process
175: {
176: int pid;
177: flag nohalt;
178: flag nowait;
179: flag done;
180: } procstack[ ];
181:
182:
183: char *copys(), *concat(), *subst();
184: int *ckalloc();
185: nameblkp srchname(), makename();
186: TIMETYPE exists();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.