xref: /original-bsd/old/make/defs (revision e21485a6)
1/* defs 4.11 90/01/30 */
2#include <sys/param.h>
3#include <stdio.h>
4#include <ctype.h>
5#include <dirent.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();
135