make.h - sbase - suckless unix tools
HTML git clone git://git.suckless.org/sbase
DIR Log
DIR Files
DIR Refs
DIR README
DIR 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[];