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