make.h - scc - simple c99 compiler
(HTM) git clone git://git.simple-cc.org/scc
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Submodules
(DIR) README
(DIR) LICENSE
---
make.h (1547B)
---
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 void killchild(void);
71 extern time_t stamp(char *);
72 extern int launch(char *, int);
73 extern int putenv(char *);
74 extern void exportvar(char *, char *);
75 extern 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[];