xref: /csrg-svn/old/make/defs (revision 39958)
1*39958Sbostic/* defs 4.11 90/01/30 */
2*39958Sbostic#include <sys/param.h>
32802Swnj#include <stdio.h>
42802Swnj#include <ctype.h>
5*39958Sbostic#include <dirent.h>
62802Swnj
72802Swnj#define SHELLCOM "/bin/sh"
82802Swnj
92802Swnjtypedef long int TIMETYPE;
102802Swnj
1117419Sralph/*  to install metering, add a statement like
1217419Sralph * #define METERFILE "/usr/sif/make/Meter"
1317419Sralph * to turn metering on, set external variable meteron to 1.
1417419Sralph */
152802Swnj
162802Swnj/* define FSTATIC to be static on systems with C compilers
172802Swnj   supporting file-static; otherwise define it to be null
182802Swnj*/
192802Swnj#define FSTATIC static
202802Swnj
212802Swnj#define NO 0
222802Swnj#define YES 1
232802Swnj
242802Swnj#define unequal strcmp
252802Swnj#define HASHSIZE 1021
262802Swnj#define NLEFTS 512
272802Swnj#define NCHARS 500
282802Swnj#define NINTS  250
2926928Slepreau#define INMAX 7000
3026928Slepreau#define OUTMAX 7000
3125298Smckusick#define QBUFMAX 5000
322802Swnj#define MAXDIR 10
332802Swnj
342802Swnj#define ALLDEPS  1
352802Swnj#define SOMEDEPS 2
362802Swnj
372802Swnj#define META 01
382802Swnj#define TERMINAL 02
392802Swnjextern char funny[128];
402802Swnj
412802Swnj
422802Swnj#define ALLOC(x) (struct x *) ckalloc(sizeof(struct x))
432802Swnj
442802Swnjextern int sigivalue;
452802Swnjextern int sigqvalue;
462802Swnjextern int waitpid;
472802Swnjextern int dbgflag;
482802Swnjextern int prtrflag;
492802Swnjextern int silflag;
502802Swnjextern int noexflag;
512802Swnjextern int keepgoing;
522802Swnjextern int noruleflag;
532802Swnjextern int touchflag;
542802Swnjextern int questflag;
552802Swnjextern int ndocoms;
562802Swnjextern int ignerr;
572802Swnjextern int okdel;
582802Swnjextern int inarglist;
592802Swnjextern char *prompt;
602802Swnjextern int nopdir;
612802Swnjextern char junkname[ ];
622802Swnj
632802Swnj
642802Swnj
652802Swnjstruct nameblock
662802Swnj	{
672802Swnj	struct nameblock *nxtnameblock;
682802Swnj	char *namep;
6918644Smckusick	char *alias;
702802Swnj	struct lineblock *linep;
712802Swnj	int done:3;
722802Swnj	int septype:3;
732802Swnj	TIMETYPE modtime;
742802Swnj	};
752802Swnj
762802Swnjextern struct nameblock *mainname ;
772802Swnjextern struct nameblock *firstname;
782802Swnj
792802Swnjstruct lineblock
802802Swnj	{
812802Swnj	struct lineblock *nxtlineblock;
822802Swnj	struct depblock *depp;
832802Swnj	struct shblock *shp;
842802Swnj	};
852802Swnjextern struct lineblock *sufflist;
862802Swnj
872802Swnjstruct depblock
882802Swnj	{
892802Swnj	struct depblock *nxtdepblock;
902802Swnj	struct nameblock *depname;
912802Swnj	};
922802Swnj
932802Swnjstruct shblock
942802Swnj	{
952802Swnj	struct shblock *nxtshblock;
962802Swnj	char *shbp;
972802Swnj	};
982802Swnj
992802Swnjstruct varblock
1002802Swnj	{
1012802Swnj	struct varblock *nxtvarblock;
1022802Swnj	char *varname;
1032802Swnj	char *varval;
1042802Swnj	int noreset:1;
1052802Swnj	int used:1;
1062802Swnj	};
1072802Swnjextern struct varblock *firstvar;
1082802Swnj
1092802Swnjstruct pattern
1102802Swnj	{
1112802Swnj	struct pattern *nxtpattern;
1122802Swnj	char *patval;
1132802Swnj	};
1142802Swnjextern struct pattern *firstpat;
1152802Swnj
1166578Smckusickstruct dirhdr
1172802Swnj	{
1186578Smckusick	struct dirhdr *nxtopendir;
1196578Smckusick	DIR *dirfc;
1202802Swnj	char *dirn;
1212802Swnj	};
1226578Smckusickextern struct dirhdr *firstod;
1232802Swnj
1242802Swnj
1252802Swnjstruct chain
1262802Swnj	{
1272802Swnj	struct chain *nextp;
1282802Swnj	char *datap;
1292802Swnj	};
1302802Swnj
1312802Swnjchar *copys(), *concat(), *subst();
1322802Swnjint *ckalloc();
1332802Swnjstruct nameblock *srchname(), *makename();
1342802SwnjTIMETYPE exists();
135