|
|
1.1 ! root 1: /* defs 4.2 85/05/14 */ ! 2: #include <stdio.h> ! 3: #include <sys/param.h> ! 4: #include <ctype.h> ! 5: #ifdef VERSION8 ! 6: # include <ndir.h> ! 7: #else ! 8: # include <sys/dir.h> ! 9: #endif ! 10: ! 11: ! 12: #define SHELLCOM "/bin/sh" ! 13: ! 14: typedef char flag; /* represent a few bit flag */ ! 15: typedef long int TIMETYPE; ! 16: ! 17: #ifdef unix ! 18: /* to install metering, add a statement like */ ! 19: #define METERFILE "/usr/sif/make/Meter" ! 20: /* to turn metering on, set external variable meteron to 1 */ ! 21: #endif ! 22: ! 23: /* define FSTATIC to be static on systems with C compilers ! 24: supporting file-static; otherwise define it to be null ! 25: */ ! 26: #define FSTATIC static ! 27: ! 28: #define NO 0 ! 29: #define YES 1 ! 30: ! 31: #define equal(a,b) (! strcmp(a,b)) ! 32: #define HASHSIZE 1021 ! 33: #define NLEFTS 512 ! 34: #define NCHARS 500 ! 35: #define NINTS 250 ! 36: #define INMAX 5000 ! 37: #define OUTMAX 5000 ! 38: #define QBUFMAX 5000 ! 39: #define MAXDIR 10 ! 40: #define MAXPROC 100 ! 41: #define MAXINCLUDE 17 ! 42: #define PROCLIMIT 3 ! 43: ! 44: #define ALLDEPS 1 ! 45: #define SOMEDEPS 2 ! 46: ! 47: #define META 01 ! 48: #define TERMINAL 02 ! 49: extern char funny[128]; ! 50: ! 51: ! 52: #define ALLOC(x) (struct x *) ckalloc(sizeof(struct x)) ! 53: #define CHNULL (char *) NULL ! 54: ! 55: extern int sigivalue; ! 56: extern int sigqvalue; ! 57: extern int dbgflag; ! 58: extern int prtrflag; ! 59: extern int silflag; ! 60: extern int noexflag; ! 61: extern int keepgoing; ! 62: extern int noruleflag; ! 63: extern int touchflag; ! 64: extern int questflag; ! 65: extern int oldflag; ! 66: extern int ndocoms; ! 67: extern int ignerr; ! 68: extern int okdel; ! 69: extern int inarglist; ! 70: extern char **envpp; /* points to slot in environment vector */ ! 71: extern char *prompt; ! 72: extern int nopdir; ! 73: ! 74: typedef struct nameblock *nameblkp; ! 75: typedef struct depblock *depblkp; ! 76: typedef struct lineblock *lineblkp; ! 77: typedef struct chain *chainp; ! 78: ! 79: struct nameblock ! 80: { ! 81: nameblkp nxtnameblock; ! 82: char *namep; ! 83: lineblkp linep; ! 84: flag done; ! 85: flag septype; ! 86: flag isarch; ! 87: flag isdir; ! 88: TIMETYPE modtime; ! 89: }; ! 90: ! 91: extern nameblkp mainname; ! 92: extern nameblkp firstname; ! 93: extern nameblkp *hashtab; ! 94: extern int nhashed; ! 95: extern int hashsize; ! 96: extern int hashthresh; ! 97: ! 98: struct lineblock ! 99: { ! 100: lineblkp nxtlineblock; ! 101: struct depblock *depp; ! 102: struct shblock *shp; ! 103: }; ! 104: extern lineblkp sufflist; ! 105: ! 106: struct depblock ! 107: { ! 108: depblkp nxtdepblock; ! 109: nameblkp depname; ! 110: char nowait; ! 111: } ; ! 112: ! 113: struct shblock ! 114: { ! 115: struct shblock *nxtshblock; ! 116: char *shbp; ! 117: }; ! 118: ! 119: struct varblock ! 120: { ! 121: struct varblock *nxtvarblock; ! 122: char *varname; ! 123: char *varval; ! 124: char **export; ! 125: flag noreset; ! 126: flag used; ! 127: }; ! 128: extern struct varblock *firstvar; ! 129: ! 130: struct pattern ! 131: { ! 132: struct pattern *nxtpattern; ! 133: char *patval; ! 134: }; ! 135: extern struct pattern *firstpat; ! 136: ! 137: struct dirhd ! 138: { ! 139: struct dirhd *nxtdirhd; ! 140: TIMETYPE dirtime; ! 141: int dirok; ! 142: DIR * dirfc; ! 143: char *dirn; ! 144: }; ! 145: extern struct dirhd *firstod; ! 146: ! 147: ! 148: struct chain ! 149: { ! 150: chainp nextp; ! 151: char *datap; ! 152: }; ! 153: ! 154: struct wild ! 155: { ! 156: struct wild *next; ! 157: lineblkp linep; ! 158: char *left; ! 159: char *right; ! 160: int llen; ! 161: int rlen; ! 162: int totlen; ! 163: }; ! 164: ! 165: typedef struct wild *wildp; ! 166: extern wildp firstwild; ! 167: extern wildp lastwild; ! 168: ! 169: ! 170: /* date for processes */ ! 171: extern int proclimit; /* maximum spawned processes allowed alive at one time */ ! 172: extern int proclive; /* number of spawned processes awaited */ ! 173: extern int nproc; /* next slot in process stack to use */ ! 174: extern struct process ! 175: { ! 176: int pid; ! 177: flag nohalt; ! 178: flag nowait; ! 179: flag done; ! 180: } procstack[ ]; ! 181: ! 182: ! 183: char *copys(), *concat(), *subst(); ! 184: int *ckalloc(); ! 185: nameblkp srchname(), makename(); ! 186: TIMETYPE exists();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.