1 #ifndef _newgen_makefile_included
2 #define _newgen_makefile_included
3 #define _gen_makefile_start 15
10 #define makefile_domain (_gen_makefile_start+0)
11 #if !defined(_newgen_makefile_domain_defined_)
12 #define _newgen_makefile_domain_defined_
13 #define MAKEFILE_NEWGEN_DOMAIN (makefile_domain)
14 #define makefile_NEWGEN_DOMAIN (makefile_domain)
18 #define owner_domain (_gen_makefile_start+1)
19 #if !defined(_newgen_owner_domain_defined_)
20 #define _newgen_owner_domain_defined_
21 #define OWNER_NEWGEN_DOMAIN (owner_domain)
22 #define owner_NEWGEN_DOMAIN (owner_domain)
26 #define real_resource_domain (_gen_makefile_start+2)
27 #if !defined(_newgen_real_resource_domain_defined_)
28 #define _newgen_real_resource_domain_defined_
29 #define REAL_RESOURCE_NEWGEN_DOMAIN (real_resource_domain)
30 #define real_resource_NEWGEN_DOMAIN (real_resource_domain)
34 #define rule_domain (_gen_makefile_start+3)
35 #if !defined(_newgen_rule_domain_defined_)
36 #define _newgen_rule_domain_defined_
37 #define RULE_NEWGEN_DOMAIN (rule_domain)
38 #define rule_NEWGEN_DOMAIN (rule_domain)
42 #define virtual_resource_domain (_gen_makefile_start+4)
43 #if !defined(_newgen_virtual_resource_domain_defined_)
44 #define _newgen_virtual_resource_domain_defined_
45 #define VIRTUAL_RESOURCE_NEWGEN_DOMAIN (virtual_resource_domain)
46 #define virtual_resource_NEWGEN_DOMAIN (virtual_resource_domain)
52 #define MAKEFILE(x) ((makefile)((x).p))
53 #define makefile_CAST(x) MAKEFILE(x)
54 #define MAKEFILE_CAST(x) MAKEFILE(x)
55 #define MAKEFILE_(x) ((x).e)
56 #define MAKEFILE_TYPE makefile
57 #define makefile_TYPE makefile
58 #define makefile_undefined ((makefile)gen_chunk_undefined)
59 #define makefile_undefined_p(x) ((x)==makefile_undefined)
66 #define gen_MAKEFILE_cons gen_makefile_cons
80 #define makefile_domain_number(x) ((x)->_type_)
81 #define makefile_rules_(x) makefile_rules(x)
82 #define makefile_rules(x) ((x)->_makefile_rules_)
83 #define makefile_active_phases_(x) makefile_active_phases(x)
84 #define makefile_active_phases(x) ((x)->_makefile_active_phases_)
88 #define OWNER(x) ((owner)((x).p))
89 #define owner_CAST(x) OWNER(x)
90 #define OWNER_CAST(x) OWNER(x)
91 #define OWNER_(x) ((x).e)
92 #define OWNER_TYPE owner
93 #define owner_TYPE owner
94 #define owner_undefined ((owner)gen_chunk_undefined)
95 #define owner_undefined_p(x) ((x)==owner_undefined)
102 #define gen_OWNER_cons gen_owner_cons
144 #define owner_domain_number(x) ((x)->_type_)
145 #define owner_tag(x) ((x)->_owner_tag__)
146 #define owner_program_p(x) (owner_tag(x)==is_owner_program)
147 #define owner_program_(x) owner_program(x)
148 #define owner_program(x) ((x)->_owner_union_._owner_program_.u)
149 #define owner_module_p(x) (owner_tag(x)==is_owner_module)
150 #define owner_module_(x) owner_module(x)
151 #define owner_module(x) ((x)->_owner_union_._owner_module_.u)
152 #define owner_main_p(x) (owner_tag(x)==is_owner_main)
153 #define owner_main_(x) owner_main(x)
154 #define owner_main(x) ((x)->_owner_union_._owner_main_.u)
155 #define owner_callees_p(x) (owner_tag(x)==is_owner_callees)
156 #define owner_callees_(x) owner_callees(x)
157 #define owner_callees(x) ((x)->_owner_union_._owner_callees_.u)
158 #define owner_callers_p(x) (owner_tag(x)==is_owner_callers)
159 #define owner_callers_(x) owner_callers(x)
160 #define owner_callers(x) ((x)->_owner_union_._owner_callers_.u)
161 #define owner_all_p(x) (owner_tag(x)==is_owner_all)
162 #define owner_all_(x) owner_all(x)
163 #define owner_all(x) ((x)->_owner_union_._owner_all_.u)
164 #define owner_select_p(x) (owner_tag(x)==is_owner_select)
165 #define owner_select_(x) owner_select(x)
166 #define owner_select(x) ((x)->_owner_union_._owner_select_.u)
167 #define owner_compilation_unit_p(x) (owner_tag(x)==is_owner_compilation_unit)
168 #define owner_compilation_unit_(x) owner_compilation_unit(x)
169 #define owner_compilation_unit(x) ((x)->_owner_union_._owner_compilation_unit_.u)
173 #define REAL_RESOURCE(x) ((real_resource)((x).p))
174 #define real_resource_CAST(x) REAL_RESOURCE(x)
175 #define REAL_RESOURCE_CAST(x) REAL_RESOURCE(x)
176 #define REAL_RESOURCE_(x) ((x).e)
177 #define REAL_RESOURCE_TYPE real_resource
178 #define real_resource_TYPE real_resource
179 #define real_resource_undefined ((real_resource)gen_chunk_undefined)
180 #define real_resource_undefined_p(x) ((x)==real_resource_undefined)
187 #define gen_REAL_RESOURCE_cons gen_real_resource_cons
201 #define real_resource_domain_number(x) ((x)->_type_)
202 #define real_resource_resource_name_(x) real_resource_resource_name(x)
203 #define real_resource_resource_name(x) ((x)->_real_resource_resource_name_)
204 #define real_resource_owner_name_(x) real_resource_owner_name(x)
205 #define real_resource_owner_name(x) ((x)->_real_resource_owner_name_)
209 #define RULE(x) ((rule)((x).p))
210 #define rule_CAST(x) RULE(x)
211 #define RULE_CAST(x) RULE(x)
212 #define RULE_(x) ((x).e)
213 #define RULE_TYPE rule
214 #define rule_TYPE rule
215 #define rule_undefined ((rule)gen_chunk_undefined)
216 #define rule_undefined_p(x) ((x)==rule_undefined)
223 #define gen_RULE_cons gen_rule_cons
242 #define rule_domain_number(x) ((x)->_type_)
243 #define rule_phase_(x) rule_phase(x)
244 #define rule_phase(x) ((x)->_rule_phase_)
245 #define rule_required_(x) rule_required(x)
246 #define rule_required(x) ((x)->_rule_required_)
247 #define rule_produced_(x) rule_produced(x)
248 #define rule_produced(x) ((x)->_rule_produced_)
249 #define rule_preserved_(x) rule_preserved(x)
250 #define rule_preserved(x) ((x)->_rule_preserved_)
251 #define rule_modified_(x) rule_modified(x)
252 #define rule_modified(x) ((x)->_rule_modified_)
253 #define rule_pre_transformation_(x) rule_pre_transformation(x)
254 #define rule_pre_transformation(x) ((x)->_rule_pre_transformation_)
255 #define rule_post_transformation_(x) rule_post_transformation(x)
256 #define rule_post_transformation(x) ((x)->_rule_post_transformation_)
260 #define VIRTUAL_RESOURCE(x) ((virtual_resource)((x).p))
261 #define virtual_resource_CAST(x) VIRTUAL_RESOURCE(x)
262 #define VIRTUAL_RESOURCE_CAST(x) VIRTUAL_RESOURCE(x)
263 #define VIRTUAL_RESOURCE_(x) ((x).e)
264 #define VIRTUAL_RESOURCE_TYPE virtual_resource
265 #define virtual_resource_TYPE virtual_resource
266 #define virtual_resource_undefined ((virtual_resource)gen_chunk_undefined)
267 #define virtual_resource_undefined_p(x) ((x)==virtual_resource_undefined)
274 #define gen_VIRTUAL_RESOURCE_cons gen_virtual_resource_cons
288 #define virtual_resource_domain_number(x) ((x)->_type_)
289 #define virtual_resource_name_(x) virtual_resource_name(x)
290 #define virtual_resource_name(x) ((x)->_virtual_resource_name_)
291 #define virtual_resource_owner_(x) virtual_resource_owner(x)
292 #define virtual_resource_owner(x) ((x)->_virtual_resource_owner_)
294 #define makefile_spec "\
296 makefile = rules:rule* x active_phases:string*;\n\
297 owner = program:unit + module:unit + main:unit + callees:unit + callers:unit + all:unit + select:unit + compilation_unit:unit;\n\
298 real_resource = resource_name:string x owner_name:string;\n\
299 rule = phase:string x required:virtual_resource* x produced:virtual_resource* x preserved:virtual_resource* x modified:virtual_resource* x pre_transformation:virtual_resource* x post_transformation:virtual_resource*;\n\
300 virtual_resource = name:string x owner:owner;\n\
list gen_owner_cons(owner, list)
real_resource read_real_resource(FILE *)
makefile read_makefile(FILE *)
virtual_resource check_virtual_resource(virtual_resource)
void free_virtual_resource(virtual_resource)
rule copy_rule(rule)
RULE.
void virtual_resource_assign_contents(virtual_resource, virtual_resource)
bool real_resource_consistent_p(real_resource)
void write_makefile(FILE *, makefile)
bool rule_defined_p(rule)
struct _newgen_struct_real_resource_ * real_resource
void rule_non_recursive_free(rule)
owner make_owner_main(void)
owner make_owner_compilation_unit(void)
void real_resource_assign_contents(real_resource, real_resource)
void rule_assign_contents(rule, rule)
bool makefile_defined_p(makefile)
bool rule_consistent_p(rule)
makefile check_makefile(makefile)
list gen_makefile_cons(makefile, list)
list gen_virtual_resource_cons(virtual_resource, list)
makefile make_makefile(list, list)
void real_resource_non_recursive_free(real_resource)
void write_virtual_resource(FILE *, virtual_resource)
void write_owner(FILE *, owner)
owner make_owner_program(void)
bool real_resource_defined_p(real_resource)
owner make_owner_callers(void)
owner make_owner_all(void)
void owner_assign_contents(owner, owner)
void write_real_resource(FILE *, real_resource)
real_resource check_real_resource(real_resource)
bool virtual_resource_consistent_p(virtual_resource)
owner make_owner(enum owner_utype, void *)
real_resource copy_real_resource(real_resource)
REAL_RESOURCE.
void free_makefile(makefile)
owner make_owner_callees(void)
void makefile_non_recursive_free(makefile)
void makefile_assign_contents(makefile, makefile)
struct _newgen_struct_virtual_resource_ * virtual_resource
makefile copy_makefile(makefile)
MAKEFILE.
virtual_resource copy_virtual_resource(virtual_resource)
VIRTUAL_RESOURCE.
struct _newgen_struct_rule_ * rule
bool makefile_consistent_p(makefile)
@ is_owner_compilation_unit
virtual_resource read_virtual_resource(FILE *)
void write_rule(FILE *, rule)
struct _newgen_struct_makefile_ * makefile
void free_real_resource(real_resource)
list gen_real_resource_cons(real_resource, list)
void owner_non_recursive_free(owner)
bool owner_consistent_p(owner)
bool owner_defined_p(owner)
virtual_resource make_virtual_resource(string, owner)
real_resource make_real_resource(string, string)
struct _newgen_struct_owner_ * owner
list gen_rule_cons(rule, list)
void virtual_resource_non_recursive_free(virtual_resource)
owner make_owner_module(void)
owner copy_owner(owner)
OWNER.
owner make_owner_select(void)
rule make_rule(string, list, list, list, list, list, list)
bool virtual_resource_defined_p(virtual_resource)
string owner_tag_as_string(enum owner_utype)
list _makefile_active_phases_
rules:rule*
gen_chunk _owner_program_
gen_chunk _owner_callers_
callees:unit
gen_chunk _owner_all_
callers:unit
gen_chunk _owner_callees_
main:unit
gen_chunk _owner_module_
program:unit
gen_chunk _owner_main_
module:unit
union _newgen_struct_owner_::@56 _owner_union_
gen_chunk _owner_select_
all:unit
enum owner_utype _owner_tag__
gen_chunk _owner_compilation_unit_
select:unit
string _real_resource_resource_name_
string _real_resource_owner_name_
resource_name:string
list _rule_produced_
required:virtual_resource*
list _rule_required_
phase:string
list _rule_pre_transformation_
modified:virtual_resource*
list _rule_preserved_
produced:virtual_resource*
list _rule_modified_
preserved:virtual_resource*
list _rule_post_transformation_
pre_transformation:virtual_resource*
string _virtual_resource_name_
owner _virtual_resource_owner_
name:string
The structure used to build lists in NewGen.
A gen_chunk is used to store every object.