xref: /csrg-svn/old/make/defs (revision 17419)
1/* defs 4.7 84/11/26 */
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 3500
30#define OUTMAX 3500
31#define QBUFMAX 2500
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	struct lineblock *linep;
70	int done:3;
71	int septype:3;
72	TIMETYPE modtime;
73	};
74
75extern struct nameblock *mainname ;
76extern struct nameblock *firstname;
77
78struct lineblock
79	{
80	struct lineblock *nxtlineblock;
81	struct depblock *depp;
82	struct shblock *shp;
83	};
84extern struct lineblock *sufflist;
85
86struct depblock
87	{
88	struct depblock *nxtdepblock;
89	struct nameblock *depname;
90	};
91
92struct shblock
93	{
94	struct shblock *nxtshblock;
95	char *shbp;
96	};
97
98struct varblock
99	{
100	struct varblock *nxtvarblock;
101	char *varname;
102	char *varval;
103	int noreset:1;
104	int used:1;
105	};
106extern struct varblock *firstvar;
107
108struct pattern
109	{
110	struct pattern *nxtpattern;
111	char *patval;
112	};
113extern struct pattern *firstpat;
114
115struct dirhdr
116	{
117	struct dirhdr *nxtopendir;
118	DIR *dirfc;
119	char *dirn;
120	};
121extern struct dirhdr *firstod;
122
123
124struct chain
125	{
126	struct chain *nextp;
127	char *datap;
128	};
129
130char *copys(), *concat(), *subst();
131int *ckalloc();
132struct nameblock *srchname(), *makename();
133TIMETYPE exists();
134