BSD 4 development
[unix-history] / usr / src / cmd / make / defs
CommitLineData
02f4d9d0
BJ
1#include <stdio.h>
2#include <ctype.h>
3
4#define SHELLCOM "/bin/sh"
5
6typedef 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
37extern char funny[128];
38
39
40#define ALLOC(x) (struct x *) ckalloc(sizeof(struct x))
41
42extern int sigivalue;
43extern int sigqvalue;
44extern int waitpid;
45extern int dbgflag;
46extern int prtrflag;
47extern int silflag;
48extern int noexflag;
49extern int keepgoing;
50extern int noruleflag;
51extern int touchflag;
52extern int questflag;
53extern int ndocoms;
54extern int ignerr;
55extern int okdel;
56extern int inarglist;
57extern char *prompt;
58extern int nopdir;
59extern char junkname[ ];
60
61
62
63struct 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
73extern struct nameblock *mainname ;
74extern struct nameblock *firstname;
75
76struct lineblock
77 {
78 struct lineblock *nxtlineblock;
79 struct depblock *depp;
80 struct shblock *shp;
81 };
82extern struct lineblock *sufflist;
83
84struct depblock
85 {
86 struct depblock *nxtdepblock;
87 struct nameblock *depname;
88 };
89
90struct shblock
91 {
92 struct shblock *nxtshblock;
93 char *shbp;
94 };
95
96struct varblock
97 {
98 struct varblock *nxtvarblock;
99 char *varname;
100 char *varval;
101 int noreset:1;
102 int used:1;
103 };
104extern struct varblock *firstvar;
105
106struct pattern
107 {
108 struct pattern *nxtpattern;
109 char *patval;
110 };
111extern struct pattern *firstpat;
112
113struct opendir
114 {
115 struct opendir *nxtopendir;
116 FILE * dirfc;
117 char *dirn;
118 };
119extern struct opendir *firstod;
120
121
122struct chain
123 {
124 struct chain *nextp;
125 char *datap;
126 };
127
128char *copys(), *concat(), *subst();
129int *ckalloc();
130struct nameblock *srchname(), *makename();
131TIMETYPE exists();