make.h - sbase - suckless unix tools
(HTM) git clone git://git.suckless.org/sbase
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
make.h (1518B)
---
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 extern void *emalloc(size_t);
47 extern void *erealloc(void *, size_t);
48 extern char *estrdup(char *);
49
50 extern void dumprules(void);
51 extern void dumpmacros(void);
52
53 extern char *expandstring(char *, Target *, struct loc *);
54 extern void addtarget(char *, int);
55 extern void inject(char *);
56 extern int build(char *);
57 extern int hash(char *);
58 extern int parse(char *);
59 extern void debug(char *, ...);
60 extern void error(char *, ...);
61 extern void warning(char *, ...);
62 extern void adddep(char *, char *);
63 extern void addrule(char *, struct action *, int);
64 extern void freeloc(struct loc *);
65
66 extern char *getmacro(char *);
67 extern void setmacro(char *, char *, int, int);
68
69 /* system depdendant */
70 extern time_t stamp(char *);
71 extern int launch(char *, int);
72 extern int putenv(char *);
73 extern void exportvar(char *, char *);
74 extern int is_dir(char *);
75
76 /* main.c */
77 extern int kflag, dflag, nflag, iflag, sflag;
78 extern int eflag, pflag, tflag, qflag;
79 extern int exitstatus;
80
81 #ifdef SIGABRT
82 extern volatile sig_atomic_t stop;
83 #endif
84
85 /* defaults.c */
86 extern char defaults[];