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