Annotation of researchv9/cmd/make/defs, revision 1.1.1.1

1.1       root        1: /* defs 4.2 85/10/28 */
                      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 forceshell;
                     70: extern int inarglist;
                     71: extern char **envpp;   /* points to slot in environment vector */
                     72: extern char *prompt;
                     73: extern int nopdir;
                     74: 
                     75: typedef struct nameblock *nameblkp;
                     76: typedef struct depblock *depblkp;
                     77: typedef struct lineblock *lineblkp;
                     78: typedef struct chain *chainp;
                     79: 
                     80: struct nameblock
                     81:        {
                     82:        nameblkp nxtnameblock;
                     83:        char *namep;
                     84:        lineblkp linep;
                     85:        flag done;
                     86:        flag septype;
                     87:        flag isarch;
                     88:        flag isdir;
                     89:        TIMETYPE modtime;
                     90:        };
                     91: 
                     92: extern nameblkp mainname;
                     93: extern nameblkp firstname;
                     94: extern nameblkp *hashtab;
                     95: extern int nhashed;
                     96: extern int hashsize;
                     97: extern int hashthresh;
                     98: 
                     99: struct lineblock
                    100:        {
                    101:        lineblkp nxtlineblock;
                    102:        struct depblock *depp;
                    103:        struct shblock *shp;
                    104:        };
                    105: extern lineblkp sufflist;
                    106: 
                    107: struct depblock
                    108:        {
                    109:        depblkp nxtdepblock;
                    110:        nameblkp depname;
                    111:        char nowait;
                    112:        } ;
                    113: 
                    114: struct shblock
                    115:        {
                    116:        struct shblock *nxtshblock;
                    117:        char *shbp;
                    118:        };
                    119: 
                    120: struct varblock
                    121:        {
                    122:        struct varblock *nxtvarblock;
                    123:        char *varname;
                    124:        char *varval;
                    125:        char **export;
                    126:        flag noreset;
                    127:        flag used;
                    128:        };
                    129: extern struct varblock *firstvar;
                    130: 
                    131: struct pattern
                    132:        {
                    133:        struct pattern *nxtpattern;
                    134:        char *patval;
                    135:        };
                    136: extern struct pattern *firstpat;
                    137: 
                    138: struct dirhd
                    139:        {
                    140:        struct dirhd *nxtdirhd;
                    141:        TIMETYPE dirtime;
                    142:        int dirok;
                    143:        DIR * dirfc;
                    144:        char *dirn;
                    145:        };
                    146: extern struct dirhd *firstod;
                    147: 
                    148: 
                    149: struct chain
                    150:        {
                    151:        chainp nextp;
                    152:        char *datap;
                    153:        };
                    154: 
                    155: struct wild
                    156:        {
                    157:        struct wild *next;
                    158:        lineblkp linep;
                    159:        char *left;
                    160:        char *right;
                    161:        int llen;
                    162:        int rlen;
                    163:        int totlen;
                    164:        };
                    165: 
                    166: typedef struct wild *wildp;
                    167: extern wildp firstwild;
                    168: extern wildp lastwild;
                    169: 
                    170: 
                    171: /* date for processes */
                    172: extern int proclimit;  /* maximum spawned processes allowed alive at one time */
                    173: extern int proclive;   /* number of spawned processes awaited */
                    174: extern int nproc;      /* next slot in process stack to use */
                    175: extern struct process
                    176:        {
                    177:        int pid;
                    178:        flag nohalt;
                    179:        flag nowait;
                    180:        flag done;
                    181:        } procstack[ ];
                    182: 
                    183: 
                    184: char *copys(), *concat(), *subst();
                    185: int *ckalloc();
                    186: nameblkp srchname(), makename();
                    187: TIMETYPE exists();

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.