xref: /original-bsd/old/make/defs (revision 6b7db209)
1/* defs 4.4 82/05/07 */
2#include <stdio.h>
3#include <ctype.h>
4#include <sys/param.h>
5#include <dir.h>
6
7#define SHELLCOM "/bin/sh"
8
9typedef long int TIMETYPE;
10
11#ifdef unix
12/*  to install metering, add a statement like */
13#define METERFILE "/usr/sif/make/Meter"
14/* to turn metering on, set external variable meteron to 1 */
15#endif
16
17/* define FSTATIC to be static on systems with C compilers
18   supporting file-static; otherwise define it to be null
19*/
20#define FSTATIC static
21
22#define NO 0
23#define YES 1
24
25#define unequal strcmp
26#define HASHSIZE 1021
27#define NLEFTS 512
28#define NCHARS 500
29#define NINTS  250
30#define INMAX 2500
31#define OUTMAX 3500
32#define QBUFMAX 2500
33#define MAXDIR 10
34
35#define ALLDEPS  1
36#define SOMEDEPS 2
37
38#define META 01
39#define TERMINAL 02
40extern char funny[128];
41
42
43#define ALLOC(x) (struct x *) ckalloc(sizeof(struct x))
44
45extern int sigivalue;
46extern int sigqvalue;
47extern int waitpid;
48extern int dbgflag;
49extern int prtrflag;
50extern int silflag;
51extern int noexflag;
52extern int keepgoing;
53extern int noruleflag;
54extern int touchflag;
55extern int questflag;
56extern int ndocoms;
57extern int ignerr;
58extern int okdel;
59extern int inarglist;
60extern char *prompt;
61extern int nopdir;
62extern char junkname[ ];
63
64
65
66struct nameblock
67	{
68	struct nameblock *nxtnameblock;
69	char *namep;
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