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