1 void addmake(Node*); 2 void addrule(char*, Word*, char*, Word*, int, int, int, char*); 3 void addrules(Word*, Word*, char*, int, int, int, char*); 4 void addw(Word*, char*); 5 void adelete(char*, char*, char*); 6 void assert(char*, int); 7 int assline(Biobuf *, Bufblock *); 8 long atimeof(int, char*, char*); 9 void atouch(char*, char*, char*); 10 void bufcpy(Bufblock *, char *, int); 11 void bulkmtime(char*); 12 void dirtime(char*, char*); 13 char *charin(char *, char *); 14 void clrmade(Node*); 15 void delete(char*); 16 void delword(Word*); 17 char *dnext(void); 18 int dopen(char*); 19 int dorecipe(Node*); 20 void dovars(Job*, int); 21 void dumpa(char*, Arc*); 22 void dumpj(char*, Job*, int); 23 void dumpn(char*, Node*); 24 void dumpr(char*, Rule*); 25 void dumpv(char*); 26 void dumpw(char*, Word*); 27 Word *encodenulls(char*, int); 28 void envinsert(char*, Word*); 29 void execinit(void); 30 int Execl(char*, char*, ...); 31 void Exit(void); 32 Word *expand(char*); 33 void expandvars(char *, Bufblock *); 34 void export(char*, Word *); 35 void exportenv(Envy*, int); 36 void expunge(int, char*); 37 void fdelete(char*, char*, char*); 38 long filetime(char*); 39 void freebuf(Bufblock *); 40 void front(char*); 41 void frule(Word*); 42 long ftimeof(int, char*, char*); 43 void ftouch(char*, char*, char*); 44 void gen(char*); 45 int getfields(char*, char**, int); 46 int getgid(void); 47 int getmfields(char*, char**, int); 48 int getuid(void); 49 void glob(char*, void(*)(char*)); 50 int gmatch(char*, char*); 51 Node *graph(char*); 52 void growbuf(Bufblock *); 53 void initenv(void); 54 long mtime(char*); 55 long timeof(char*, int); 56 void insert(Bufblock *, int); 57 int internalvar(char*, Word*); 58 void ipop(void); 59 void ipush(void); 60 void killchildren(char*); 61 void lex(Biobuf *, char*); 62 void main(int, char**); 63 char *Malloc(int); 64 void makefile(void); 65 void maketarget(char*); 66 int match(char*, char*, char*); 67 void mk(char*); 68 int mninlist(char*, Word*, char*); 69 Arc *newarc(Node*, Rule*, char*, Resub*); 70 Bufblock *newbuf(void); 71 Job *newjob(Rule*, Node*, char*, Resub*, Word*, Word*, Word*, Word*); 72 Word *newword(char*); 73 int nextslot(void); 74 int notifyf(void*, char*); 75 void nproc(void); 76 void nrep(void); 77 int outofdate(Node*, Arc*, int); 78 void parse(char*, int, int, int); 79 void prusage(void); 80 void rcexec(char*, char*, Bufblock*); 81 void rdump(char*, Resub*); 82 char *Realloc(char*, int); 83 void rinsert(Bufblock *, Rune); 84 void rsub(char*, Rule*, Arc*, char*, char*); 85 char *rulecnt(void); 86 void run(Job*); 87 char *setfields(char*); 88 void setvar(char*, char*); 89 char *shname(char*); 90 void shprint(char*, Envy*, Bufblock*); 91 void sigcatch(void); 92 Word *stow(char*); 93 char *strndup(char*, unsigned); 94 void subsub(Word*, char*, Bufblock*); 95 void subst(char*, char*, char*); 96 void symdel(char*, int); 97 void syminit(void); 98 Symtab *symlook(char*, int, char*); 99 void symstat(void); 100 void symtraverse(int, void(*)(Symtab*)); 101 void timeinit(char*); 102 void touch(char*); 103 void update(int, Node*); 104 void usage(void); 105 void vardump(void); 106 void varmatch(char*, Bufblock*); 107 int waitfor(char*); 108 int waitup(int, int*); 109 int work(Node*, Node*, Arc*); 110 void writeout(int, char*, char*); 111 void wtobuf(Word*, Bufblock*); 112 char *wtos(Word*); 113