make.h (1372B)
1 #include <stddef.h> 2 #include <time.h> 3 4 typedef struct target Target; 5 6 enum { 7 NOEXPORT, 8 EXPORT, 9 }; 10 11 enum { 12 UNDEF, 13 ENVIRON, 14 CMDLINE, 15 INTERNAL, 16 MAKEFILE, 17 MAKEFLAGS, 18 }; 19 20 struct loc { 21 char *fname; 22 int lineno; 23 }; 24 25 struct action { 26 char *line; 27 struct loc loc; 28 }; 29 30 struct target { 31 char *name; 32 char *target; 33 char *req; 34 time_t stamp; 35 int defined; 36 37 int ndeps; 38 struct target **deps; 39 40 int nactions; 41 struct action *actions; 42 43 struct target *next; 44 }; 45 46 void *emalloc(size_t); 47 void *erealloc(void *, size_t); 48 char *estrdup(char *); 49 50 void dumprules(void); 51 void dumpmacros(void); 52 53 char *expandstring(char *, Target *, struct loc *); 54 void addtarget(char *, int); 55 void inject(char *); 56 int build(char *); 57 int hash(char *); 58 int parse(char *); 59 void debug(char *, ...); 60 void error(char *, ...); 61 void warning(char *, ...); 62 void adddep(char *, char *); 63 void addrule(char *, struct action *, int); 64 void freeloc(struct loc *); 65 66 char *getmacro(char *); 67 void setmacro(char *, char *, int, int); 68 69 /* system depdendant */ 70 void killchild(void); 71 time_t stamp(char *); 72 int launch(char *, int); 73 int putenv(char *); 74 void exportvar(char *, char *); 75 int is_dir(char *); 76 77 /* main.c */ 78 extern int kflag, dflag, nflag, iflag, sflag; 79 extern int eflag, pflag, tflag, qflag; 80 extern int exitstatus; 81 82 #ifdef SIGABRT 83 extern volatile sig_atomic_t stop; 84 #endif 85 86 /* defaults.c */ 87 extern char defaults[];