/* defs 4.10.1 1996/10/27 */ #include #include #include #include #define SHELLCOM "/bin/sh" typedef long int TIMETYPE; /* to install metering, add a statement like * #define METERFILE "/usr/sif/make/Meter" * to turn metering on, set external variable meteron to 1. */ /* define FSTATIC to be static on systems with C compilers supporting file-static; otherwise define it to be null */ #define FSTATIC static #define NO 0 #define YES 1 #define unequal strcmp #ifdef pdp11 #define HASHSIZE 541 #define NLEFTS 80 #define NCHARS 500 #define NINTS 250 #define INMAX 1350 #define OUTMAX 2300 #define MAXDIR 10 #else !pdp11 #define HASHSIZE 1021 #define NLEFTS 512 #define NCHARS 500 #define NINTS 250 #define INMAX 7000 #define OUTMAX 7000 #define MAXDIR 10 #endif /* pdp11 */ #define QBUFMAX 5000 #define ALLDEPS 1 #define SOMEDEPS 2 #define META 01 #define TERMINAL 02 extern char funny[128]; #define ALLOC(x) (struct x *) ckalloc(sizeof(struct x)) extern int sigivalue; extern int sigqvalue; extern int waitpid; extern int dbgflag; extern int prtrflag; extern int silflag; extern int noexflag; extern int keepgoing; extern int noruleflag; extern int touchflag; extern int questflag; extern int ndocoms; extern int ignerr; extern int okdel; extern int inarglist; extern char *prompt; extern int nopdir; extern char junkname[ ]; struct nameblock { struct nameblock *nxtnameblock; char *namep; char *alias; struct lineblock *linep; int done:3; int septype:3; TIMETYPE modtime; }; extern struct nameblock *mainname ; extern struct nameblock *firstname; struct lineblock { struct lineblock *nxtlineblock; struct depblock *depp; struct shblock *shp; }; extern struct lineblock *sufflist; struct depblock { struct depblock *nxtdepblock; struct nameblock *depname; }; struct shblock { struct shblock *nxtshblock; char *shbp; }; struct varblock { struct varblock *nxtvarblock; char *varname; char *varval; int noreset:1; int used:1; }; extern struct varblock *firstvar; struct pattern { struct pattern *nxtpattern; char *patval; }; extern struct pattern *firstpat; struct dirhdr { struct dirhdr *nxtopendir; DIR *dirfc; char *dirn; }; extern struct dirhdr *firstod; struct chain { struct chain *nextp; char *datap; }; char *copys(), *concat(), *subst(); int *ckalloc(); struct nameblock *srchname(), *makename(); TIMETYPE exists();