sbase

suckless unix tools
git clone git://git.suckless.org/sbase
Log | Files | Refs | README | LICENSE

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[];