797cc8a273e095e83e3ad2941f14fa0b3b37ca25
[libfirm] / ir / Makefile.am
1 lib_LTLIBRARIES = libfirm.la
2
3 INCLUDES = $(LIBCORE_CFLAGS) \
4         -I$(top_srcdir)/include/libfirm \
5         -I$(top_srcdir)/include/libfirm/adt \
6         -I$(top_builddir)
7
8 INCLUDES += \
9         -I$(top_srcdir)/ir/adt \
10         -I$(top_srcdir)/ir/ana \
11         -I$(top_srcdir)/ir/arch \
12         -I$(top_srcdir)/ir/common \
13         -I$(top_srcdir)/ir/config \
14         -I$(top_srcdir)/ir/debug \
15         -I$(top_srcdir)/ir/ident \
16         -I$(top_srcdir)/ir/ir \
17         -I$(top_srcdir)/ir/lower \
18         -I$(top_srcdir)/ir/net \
19         -I$(top_srcdir)/ir/opt \
20         -I$(top_srcdir)/ir/stat \
21         -I$(top_srcdir)/ir/tr \
22         -I$(top_srcdir)/ir/tv
23 libfirm_la_SOURCES = \
24         adt/array.c \
25         adt/arrayset.c \
26         adt/bipartite.c \
27         adt/cpset.c \
28         adt/eset.c \
29         adt/gaussjordan.c \
30         adt/hashset.c \
31         adt/hungarian.c \
32         adt/iterator.c \
33         adt/pdeq.c \
34         adt/plist.c \
35         adt/pmap.c \
36         adt/pqueue.c \
37         adt/pset.c \
38         adt/pset_new.c \
39         adt/set.c \
40         adt/xmalloc.c \
41         ana/absgraph.c \
42         ana/analyze_irg_args.c \
43         ana/callgraph.c \
44         ana/cdep.c \
45         ana/cgana.c \
46         ana/compute_loop_info.c \
47         ana/dfs.c \
48         ana/execfreq.c \
49         ana/execution_frequency.c \
50         ana/field_temperature.c \
51         ana/height.c \
52         ana/interval_analysis.c \
53         ana/irbackedge.c \
54         ana/ircfscc.c \
55         ana/irconsconfirm.c \
56         ana/irdom.c \
57         ana/irextbb2.c \
58         ana/irextbb.c \
59         ana/irlivechk.c \
60         ana/irlivechk_old.c \
61         ana/irmemory.c \
62         ana/irouts.c \
63         ana/irscc.c \
64         ana/irsimpletype.c \
65         ana/irtypeinfo.c \
66         ana/phiclass.c \
67         ana/rta.c \
68         ana/structure.c \
69         ana/trouts.c \
70         arch/archop.c \
71         be/beabi.c \
72         be/bearch.c \
73         be/beblocksched.c \
74         be/bechordal.c \
75         be/bechordal_draw.c \
76         be/bechordal_main.c \
77         be/becopyheur2.c \
78         be/becopyheur3.c \
79         be/becopyheur4.c \
80         be/becopyheur.c \
81         be/becopyilp1.c \
82         be/becopyilp2.c \
83         be/becopyilp.c \
84         be/becopyopt.c \
85         be/becopystat.c \
86         be/bedomfront.c \
87         be/beemitter.c \
88         be/begnuas.c \
89         be/beifg.c \
90         be/beifg_clique.c \
91         be/beifg_list.c \
92         be/beifg_pointer.c \
93         be/beifg_std.c \
94         be/beilpsched.c \
95         be/beinsn.c \
96         be/beirg.c \
97         be/beirgmod.c \
98         be/bejavacoal.c \
99         be/belistsched.c \
100         be/belive.c \
101         be/beloopana.c \
102         be/belower.c \
103         be/bemachine.c \
104         be/bemachnode.c \
105         be/bemain.c \
106         be/bemodule.c \
107         be/benode.c \
108         be/benodesets.c \
109         be/bepressurestat.c \
110         be/beprofile.c \
111         be/bera.c \
112         be/beraextern.c \
113         be/besched.c \
114         be/beschedmris.c \
115         be/beschedrand.c \
116         be/beschedregpress.c \
117         be/beschedrss.c \
118         be/beschedtrace.c \
119         be/beschedtrivial.c \
120         be/bespillbelady.c \
121         be/bespill.c \
122         be/bespilldaemel.c \
123         be/bespillmorgan.c \
124         be/bespilloptions.c \
125         be/bespillremat.c \
126         be/bespillslots.c \
127         be/bessaconstr.c \
128         be/bessadestr.c \
129         be/bessadestrsimple.c \
130         be/bestabs.c \
131         be/bestat.c \
132         be/bestate.c \
133         be/betranshlp.c \
134         be/beuses.c \
135         be/beutil.c \
136         be/beverify.c \
137         common/debug.c \
138         common/error.c \
139         common/firm.c \
140         common/firm_common.c \
141         common/firmwalk.c \
142         common/irtools.c \
143         common/statistics.c \
144         debug/dbginfo.c \
145         debug/debugger.c \
146         debug/firm_ycomp.c \
147         debug/seqnumbers.c \
148         ident/ident.c \
149         ident/mangle.c \
150         ir/irarch.c \
151         ir/irargs.c \
152         ir/ircgcons.c \
153         ir/ircgopt.c \
154         ir/ircons.c \
155         ir/irdump.c \
156         ir/irdumptxt.c \
157         ir/iredges.c \
158         ir/irflag.c \
159         ir/irgmod.c \
160         ir/irgopt.c \
161         ir/irgraph.c \
162         ir/irgwalk_blk.c \
163         ir/irgwalk.c \
164         ir/irhooks.c \
165         ir/irmode.c \
166         ir/irnode.c \
167         ir/irnodemap.c \
168         ir/irnodeset.c \
169         ir/irop.c \
170         ir/iropt.c \
171         ir/irphase.c \
172         ir/irprintf.c \
173         ir/irprog.c \
174         ir/irvrfy.c \
175         ir/pseudo_irg.c \
176         lower/lower_calls.c \
177         lower/lower_dw.c \
178         lower/lower_hl.c \
179         lower/lower_intrinsics.c \
180         lower/lower_mode_b.c \
181         net/firmnet.c \
182         opt/cfopt.c \
183         opt/condeval.c \
184         opt/convopt.c \
185         opt/data_flow_scalar_replace.c \
186         opt/escape_ana.c \
187         opt/funccall.c \
188         opt/gvn_pre.c \
189         opt/ifconv.c \
190         opt/ldst2.c \
191         opt/ldstopt.c \
192         opt/loop_unrolling.c \
193         opt/opt_confirms.c \
194         opt/opt_frame.c \
195         opt/opt_osr.c \
196         opt/opt_polymorphy.c \
197         opt/proc_cloning.c \
198         opt/reassoc.c \
199         opt/return.c \
200         opt/scalar_replace.c \
201         opt/strength_red.c \
202         opt/tailrec.c \
203         opt/tropt.c \
204         stat/const_stat.c \
205         stat/dags.c \
206         stat/distrib.c \
207         stat/firmstat.c \
208         stat/pattern.c \
209         stat/pattern_dmp.c \
210         stat/stat_dmp.c \
211         stat/statev.c \
212         tr/entity.c \
213         tr/tpop.c \
214         tr/tr_inheritance.c \
215         tr/trvrfy.c \
216         tr/type.c \
217         tr/typegmod.c \
218         tr/type_identify.c \
219         tr/typewalk.c \
220         tv/fltcalc.c \
221         tv/strcalc.c \
222         tv/tv.c
223
224 EXTRA_DIST = \
225         ana/dfs_t.h \
226         ana/irbackedge_t.h \
227         ana/irdom_t.h \
228         ana/irextbb_t.h \
229         ana/irloop_t.h \
230         be/beabi.h \
231         be/beabi_t.h \
232         be/bearch.h \
233         be/bearch_t.h \
234         be/beblocksched.h \
235         be/bechordal_draw.h \
236         be/bechordal.h \
237         be/bechordal_t.h \
238         be/becopyilp_t.h \
239         be/becopyopt.h \
240         be/becopyopt_t.h \
241         be/becopystat.h \
242         be/be_dbgout.h \
243         be/bedomfront.h \
244         be/beemitter.h \
245         be/begnuas.h \
246         be/beifg.h \
247         be/beifg_impl.h \
248         be/beifg_t.h \
249         be/beilpsched.h \
250         be/beinsn_t.h \
251         be/beintlive_t.h \
252         be/beirg.h \
253         be/beirgmod.h \
254         be/beirg_t.h \
255         be/bejavacoal.h \
256         be/belistsched.h \
257         be/belive.h \
258         be/belive_t.h \
259         be/beloopana.h \
260         be/belower.h \
261         be/bemachine.h \
262         be/bemachnode.h \
263         be/bemodule.h \
264         be/bemodule_t.h \
265         be/benodesets.h \
266         be/benode_t.h \
267         be/bepressurestat.h \
268         be/beprofile.h \
269         be/bera.h \
270         be/besched.h \
271         be/beschedmris.h \
272         be/beschedrss.h \
273         be/besched_t.h \
274         be/bespillbelady.h \
275         be/bespill.h \
276         be/bespillmorgan.h \
277         be/bespilloptions.h \
278         be/bespillremat.h \
279         be/bespillslots.h \
280         be/bessaconstr.h \
281         be/bessadestr.h \
282         be/bessadestrsimple.h \
283         be/bestate.h \
284         be/bestatevent.h \
285         be/bestat.h \
286         be/be_t.h \
287         be/betranshlp.h \
288         be/beuses.h \
289         be/beutil.h \
290         be/beverify.h \
291         common/debug.h \
292         common/error.h \
293         common/firm_common_t.h \
294         common/firmwalk.h \
295         common/irtools.h \
296         common/statistics.h \
297         debug/dbginfo_t.h \
298         debug/debugger.h \
299         external/read.h \
300         external/read_t.h \
301         ident/ident_t.h \
302         ir/irargs_t.h \
303         ir/irbitset.h \
304         ir/ircons_t.h \
305         ir/irdump_t.h \
306         ir/iredges_t.h \
307         ir/irflag_t.def \
308         ir/irflag_t.h \
309         ir/irgopt_t.h \
310         ir/irgraph_t.h \
311         ir/irmode_t.h \
312         ir/irnodemap.h \
313         ir/irnodeset.h \
314         ir/irnode_t.h \
315         ir/irop_t.h \
316         ir/iropt_t.h \
317         ir/irphase_t.h \
318         ir/irprintf_t.h \
319         ir/irprog_t.h \
320         ir/irtypes.h \
321         ir/irvrfy_t.h \
322         net/firmnet.h \
323         net/firmnet_t.h \
324         opt/opt_confirms.h \
325         opt/opt_polymorphy.h \
326         opt/reassoc_t.h \
327         opt/scalar_replace.h \
328         opt/strength_red_t.h \
329         stat/counter.h \
330         stat/dags.h \
331         stat/firmstat_t.h \
332         stat/pattern_dmp.h \
333         stat/pattern.h \
334         stat/stat_dmp.h \
335         stat/statev.h \
336         tr/entity_t.h \
337         tr/tpop_t.h \
338         tr/type_t.h \
339         tv/fltcalc.h \
340         tv/strcalc.h \
341         tv/tv_t.h \
342         be/scripts/generate_emitter_new.pl \
343         be/scripts/generate_machine.pl \
344         be/scripts/generate_regalloc_if.pl \
345         be/scripts/generate_emitter.pl \
346         be/scripts/generate_new_opcodes.pl
347
348 # ia32 backend
349
350 ia32_sources = \
351         be/ia32/bearch_ia32.c \
352         be/ia32/gen_ia32_emitter.c \
353         be/ia32/gen_ia32_machine.c \
354         be/ia32/gen_ia32_regalloc_if.c \
355         be/ia32/ia32_emitter.c \
356         be/ia32/ia32_finish.c \
357         be/ia32/ia32_fpu.c \
358         be/ia32/ia32_intrinsics.c \
359         be/ia32/ia32_map_regs.c \
360         be/ia32/ia32_new_nodes.c \
361         be/ia32/ia32_optimize.c \
362         be/ia32/ia32_transform.c \
363         be/ia32/ia32_util.c \
364         be/ia32/ia32_x87.c
365
366 libfirm_la_SOURCES += $(ia32_sources)
367
368 EXTRA_DIST += \
369         be/ia32/ia32_spec.pl \
370         be/ia32/bearch_ia32_t.h \
371         be/ia32/ia32_dbg_stat.h \
372         be/ia32/ia32_emitter.h \
373         be/ia32/ia32_finish.h \
374         be/ia32/ia32_fpu.h \
375         be/ia32/ia32_map_regs.h \
376         be/ia32/ia32_new_nodes.h \
377         be/ia32/ia32_nodes_attr.h \
378         be/ia32/ia32_optimize.h \
379         be/ia32/ia32_transform.h \
380         be/ia32/ia32_util.h \
381         be/ia32/ia32_x87.h
382
383 # conservative aproximation of dependencies
384 $(ia32_sources): $(srcdir)/be/ia32/gen_ia32_new_nodes.h $(srcdir)/be/ia32/gen_ia32_regalloc_if.h $(srcdir)/be/ia32/gen_ia32_machine.h $(srcdir)/be/ia32/gen_ia32_regalloc_if.h
385
386 $(srcdir)/be/ia32/gen_ia32_new_nodes.c.inl $(srcdir)/be/ia32/gen_ia32_new_nodes.h: \
387                 be/ia32/ia32_spec.pl be/scripts/generate_new_opcodes.pl
388         $(PERL) $(srcdir)/be/scripts/generate_new_opcodes.pl $(srcdir)/be/ia32/ia32_spec.pl $(srcdir)/be/ia32
389
390 $(srcdir)/be/ia32/gen_ia32_emitter.c $(srcdir)/be/ia32/gen_ia32_emitter.h: \
391                 be/ia32/ia32_spec.pl be/scripts/generate_emitter.pl
392         $(PERL) $(srcdir)/be/scripts/generate_emitter.pl $(srcdir)/be/ia32/ia32_spec.pl $(srcdir)/be/ia32
393
394 $(srcdir)/be/ia32/gen_ia32_machine.c $(srcdir)/be/ia32/gen_ia32_machine.h: \
395                 be/ia32/ia32_spec.pl be/scripts/generate_machine.pl
396         $(PERL) $(srcdir)/be/scripts/generate_machine.pl $(srcdir)/be/ia32/ia32_spec.pl $(srcdir)/be/ia32
397
398 $(srcdir)/be/ia32/gen_ia32_regalloc_if.c $(srcdir)/be/ia32/gen_ia32_regalloc_if.h: \
399                 be/ia32/ia32_spec.pl be/scripts/generate_machine.pl
400         $(PERL) $(srcdir)/be/scripts/generate_regalloc_if.pl $(srcdir)/be/ia32/ia32_spec.pl $(srcdir)/be/ia32
401
402 # arm backend
403
404 arm_sources = \
405         be/arm/bearch_arm.c \
406         be/arm/gen_arm_emitter.c \
407         be/arm/gen_arm_machine.c \
408         be/arm/gen_arm_regalloc_if.c \
409         be/arm/arm_emitter.c \
410         be/arm/arm_map_regs.c \
411         be/arm/arm_new_nodes.c \
412         be/arm/arm_transform.c
413 libfirm_la_SOURCES += $(arm_sources)
414
415
416 EXTRA_DIST += \
417         be/arm/arm_spec.pl \
418         be/arm/arm_emitter.h \
419         be/arm/arm_map_regs.h \
420         be/arm/arm_new_nodes.h \
421         be/arm/arm_nodes_attr.h \
422         be/arm/arm_transform.h \
423         be/arm/bearch_arm.h \
424         be/arm/bearch_arm_t.h \
425         be/arm/gen_arm_emitter.h \
426         be/arm/gen_arm_machine.h \
427         be/arm/gen_arm_new_nodes.h \
428         be/arm/gen_arm_regalloc_if.h \
429         be/arm/gen_arm_regalloc_if_t.h
430
431 # conservative aproximation of dependencies
432 $(arm_sources): $(srcdir)/be/arm/gen_arm_new_nodes.h $(srcdir)/be/arm/gen_arm_regalloc_if.h $(srcdir)/be/arm/gen_arm_machine.h $(srcdir)/be/arm/gen_arm_regalloc_if.h $(srcdir)/be/arm/gen_arm_new_nodes.c.inl
433
434 $(srcdir)/be/arm/gen_arm_new_nodes.c.inl $(srcdir)/be/arm/gen_arm_new_nodes.h: \
435                 be/arm/arm_spec.pl be/scripts/generate_new_opcodes.pl
436         $(PERL) $(srcdir)/be/scripts/generate_new_opcodes.pl $(srcdir)/be/arm/arm_spec.pl $(srcdir)/be/arm
437
438 $(srcdir)/be/arm/gen_arm_emitter.c $(srcdir)/be/arm/gen_arm_emitter.h: \
439                 be/arm/arm_spec.pl be/scripts/generate_emitter.pl
440         $(PERL) $(srcdir)/be/scripts/generate_emitter.pl $(srcdir)/be/arm/arm_spec.pl $(srcdir)/be/arm
441
442 $(srcdir)/be/arm/gen_arm_machine.c $(srcdir)/be/arm/gen_arm_machine.h: \
443                 be/arm/arm_spec.pl be/scripts/generate_machine.pl
444         $(PERL) $(srcdir)/be/scripts/generate_machine.pl $(srcdir)/be/arm/arm_spec.pl $(srcdir)/be/arm
445
446 $(srcdir)/be/arm/gen_arm_regalloc_if.c $(srcdir)/be/arm/gen_arm_regalloc_if.h: \
447                 be/arm/arm_spec.pl be/scripts/generate_machine.pl
448         $(PERL) $(srcdir)/be/scripts/generate_regalloc_if.pl $(srcdir)/be/arm/arm_spec.pl $(srcdir)/be/arm
449
450 # mips backend
451
452 mips_sources = \
453         be/mips/bearch_mips.c \
454         be/mips/gen_mips_emitter.c \
455         be/mips/gen_mips_machine.c \
456         be/mips/gen_mips_regalloc_if.c \
457         be/mips/mips_emitter.c \
458         be/mips/mips_map_regs.c \
459         be/mips/mips_new_nodes.c \
460         be/mips/mips_scheduler.c \
461         be/mips/mips_transform.c
462 libfirm_la_SOURCES += $(mips_sources)
463
464 EXTRA_DIST += \
465         be/mips/mips_spec.pl \
466         be/mips/bearch_mips.h \
467         be/mips/bearch_mips_t.h \
468         be/mips/mips_emitter.h \
469         be/mips/mips_map_regs.h \
470         be/mips/mips_new_nodes.h \
471         be/mips/mips_nodes_attr.h \
472         be/mips/mips_scheduler.h \
473         be/mips/mips_transform.h \
474         be/mips/mips_util.h
475
476 # conservative aproximation of dependencies
477 $(mips_sources): $(srcdir)/be/mips/gen_mips_new_nodes.h $(srcdir)/be/mips/gen_mips_regalloc_if.h $(srcdir)/be/mips/gen_mips_machine.h $(srcdir)/be/mips/gen_mips_regalloc_if.h $(srcdir)/be/mips/gen_mips_new_nodes.c.inl
478
479 $(srcdir)/be/mips/gen_mips_new_nodes.c.inl $(srcdir)/be/mips/gen_mips_new_nodes.h: \
480                 be/mips/mips_spec.pl be/scripts/generate_new_opcodes.pl
481         $(PERL) $(srcdir)/be/scripts/generate_new_opcodes.pl $(srcdir)/be/mips/mips_spec.pl $(srcdir)/be/mips
482
483 $(srcdir)/be/mips/gen_mips_emitter.c $(srcdir)/be/mips/gen_mips_emitter.h: \
484                 be/mips/mips_spec.pl be/scripts/generate_emitter.pl
485         $(PERL) $(srcdir)/be/scripts/generate_emitter.pl $(srcdir)/be/mips/mips_spec.pl $(srcdir)/be/mips
486
487 $(srcdir)/be/mips/gen_mips_machine.c $(srcdir)/be/mips/gen_mips_machine.h: \
488                 be/mips/mips_spec.pl be/scripts/generate_machine.pl
489         $(PERL) $(srcdir)/be/scripts/generate_machine.pl $(srcdir)/be/mips/mips_spec.pl $(srcdir)/be/mips
490
491 $(srcdir)/be/mips/gen_mips_regalloc_if.c $(srcdir)/be/mips/gen_mips_regalloc_if.h: \
492                 be/mips/mips_spec.pl be/scripts/generate_machine.pl
493         $(PERL) $(srcdir)/be/scripts/generate_regalloc_if.pl $(srcdir)/be/mips/mips_spec.pl $(srcdir)/be/mips
494
495 # ppc32 backend
496
497 ppc32_sources = \
498         be/ppc32/bearch_ppc32.c \
499         be/ppc32/gen_ppc32_emitter.c \
500         be/ppc32/gen_ppc32_machine.c \
501         be/ppc32/gen_ppc32_regalloc_if.c \
502         be/ppc32/ppc32_emitter.c \
503         be/ppc32/ppc32_map_regs.c \
504         be/ppc32/ppc32_new_nodes.c \
505         be/ppc32/ppc32_transform.c \
506         be/ppc32/ppc32_transform_conv.c
507 libfirm_la_SOURCES += $(ppc32_sources)
508
509 EXTRA_DIST += \
510         be/ppc32/ppc32_spec.pl \
511         be/ppc32/bearch_ppc32.h \
512         be/ppc32/bearch_ppc32_t.h \
513         be/ppc32/ppc32_emitter.h \
514         be/ppc32/ppc32_map_regs.h \
515         be/ppc32/ppc32_new_nodes.h \
516         be/ppc32/ppc32_nodes_attr.h \
517         be/ppc32/ppc32_transform_conv.h \
518         be/ppc32/ppc32_transform.h
519
520 # conservative aproximation of dependencies
521 $(ppc32_sources): $(srcdir)/be/ppc32/gen_ppc32_new_nodes.h $(srcdir)/be/ppc32/gen_ppc32_regalloc_if.h $(srcdir)/be/ppc32/gen_ppc32_machine.h $(srcdir)/be/ppc32/gen_ppc32_regalloc_if.h $(srcdir)/be/ppc32/gen_ppc32_new_nodes.c.inl
522
523 $(srcdir)/be/ppc32/gen_ppc32_new_nodes.c.inl $(srcdir)/be/ppc32/gen_ppc32_new_nodes.h: \
524                 be/ppc32/ppc32_spec.pl be/scripts/generate_new_opcodes.pl
525         $(PERL) $(srcdir)/be/scripts/generate_new_opcodes.pl $(srcdir)/be/ppc32/ppc32_spec.pl $(srcdir)/be/ppc32
526
527 $(srcdir)/be/ppc32/gen_ppc32_emitter.c $(srcdir)/be/ppc32/gen_ppc32_emitter.h: \
528                 be/ppc32/ppc32_spec.pl be/scripts/generate_emitter.pl
529         $(PERL) $(srcdir)/be/scripts/generate_emitter.pl $(srcdir)/be/ppc32/ppc32_spec.pl $(srcdir)/be/ppc32
530
531 $(srcdir)/be/ppc32/gen_ppc32_machine.c $(srcdir)/be/ppc32/gen_ppc32_machine.h: \
532                 be/ppc32/ppc32_spec.pl be/scripts/generate_machine.pl
533         $(PERL) $(srcdir)/be/scripts/generate_machine.pl $(srcdir)/be/ppc32/ppc32_spec.pl $(srcdir)/be/ppc32
534
535 $(srcdir)/be/ppc32/gen_ppc32_regalloc_if.c $(srcdir)/be/ppc32/gen_ppc32_regalloc_if.h: \
536                 be/ppc32/ppc32_spec.pl be/scripts/generate_machine.pl
537         $(PERL) $(srcdir)/be/scripts/generate_regalloc_if.pl $(srcdir)/be/ppc32/ppc32_spec.pl $(srcdir)/be/ppc32