1compilers/imcc/api$(O) : \
2    compilers/imcc/api.c \
3    include/imcc/api.h \
4    include/imcc/embed.h \
5    include/parrot/extend_vtable.h \
6    compilers/imcc/imc.h \
7    compilers/imcc/cfg.h \
8    include/parrot/extend.h \
9    include/parrot/oplib/ops.h \
10    compilers/imcc/symreg.h \
11    compilers/imcc/sets.h \
12    compilers/imcc/unit.h \
13    include/imcc/yyscanner.h \
14    compilers/imcc/debug.h \
15    include/parrot/api.h \
16    compilers/imcc/instructions.h \
17    include/pmc/pmc_imccompiler.h \
18    $(PARROT_H_HEADERS)
19
20compilers/imcc/pcc$(O) : \
21    compilers/imcc/pcc.c \
22    compilers/imcc/cfg.h \
23    compilers/imcc/debug.h \
24    compilers/imcc/imc.h \
25    compilers/imcc/imcparser.h \
26    compilers/imcc/instructions.h \
27    compilers/imcc/parser.h \
28    compilers/imcc/sets.h \
29    compilers/imcc/symreg.h \
30    compilers/imcc/unit.h \
31    include/imcc/yyscanner.h \
32    include/imcc/embed.h \
33    $(INC_DIR)/oplib/ops.h \
34    $(INC_DIR)/oplib/core_ops.h \
35    $(INC_DIR)/runcore_api.h \
36    $(PARROT_H_HEADERS)
37
38compilers/imcc/instructions$(O) : \
39    compilers/imcc/instructions.c \
40    compilers/imcc/cfg.h \
41    compilers/imcc/debug.h \
42    compilers/imcc/imc.h \
43    compilers/imcc/instructions.h \
44    compilers/imcc/optimizer.h \
45    compilers/imcc/pbc.h \
46    compilers/imcc/sets.h \
47    compilers/imcc/symreg.h \
48    compilers/imcc/unit.h \
49    include/imcc/yyscanner.h \
50    include/imcc/embed.h \
51    $(INC_DIR)/oplib/ops.h \
52    $(INC_DIR)/oplib/core_ops.h \
53    $(INC_DIR)/runcore_api.h \
54    $(PARROT_H_HEADERS)
55
56compilers/imcc/pbc$(O) : \
57    compilers/imcc/pbc.c \
58    compilers/imcc/cfg.h \
59    compilers/imcc/debug.h \
60    compilers/imcc/imc.h \
61    compilers/imcc/instructions.h \
62    compilers/imcc/pbc.h \
63    compilers/imcc/sets.h \
64    compilers/imcc/symreg.h \
65    compilers/imcc/unit.h \
66    include/imcc/yyscanner.h \
67    include/imcc/embed.h \
68    $(INC_DIR)/oplib/ops.h \
69    $(INC_DIR)/oplib/core_ops.h \
70    $(INC_DIR)/runcore_api.h \
71    $(PARROT_H_HEADERS) \
72    include/pmc/pmc_key.h \
73    include/pmc/pmc_sub.h
74
75compilers/imcc/parser_util$(O) : \
76    compilers/imcc/parser_util.c \
77    compilers/imcc/cfg.h \
78    compilers/imcc/debug.h \
79    compilers/imcc/imc.h \
80    compilers/imcc/imcparser.h \
81    compilers/imcc/instructions.h \
82    compilers/imcc/optimizer.h \
83    compilers/imcc/parser.h \
84    compilers/imcc/pbc.h \
85    compilers/imcc/sets.h \
86    compilers/imcc/symreg.h \
87    compilers/imcc/unit.h \
88    include/imcc/yyscanner.h \
89    include/imcc/embed.h \
90    $(INC_DIR)/dynext.h \
91    $(INC_DIR)/oplib/ops.h \
92    $(PARROT_H_HEADERS) \
93    include/pmc/pmc_sub.h
94
95compilers/imcc/imc$(O) : \
96    compilers/imcc/imc.c \
97    compilers/imcc/cfg.h \
98    compilers/imcc/debug.h \
99    compilers/imcc/imc.h \
100    compilers/imcc/instructions.h \
101    compilers/imcc/optimizer.h \
102    compilers/imcc/sets.h \
103    compilers/imcc/symreg.h \
104    compilers/imcc/unit.h \
105    include/imcc/yyscanner.h \
106    include/imcc/embed.h \
107    $(INC_DIR)/oplib/ops.h \
108    $(PARROT_H_HEADERS)
109
110compilers/imcc/cfg$(O) : \
111    compilers/imcc/cfg.c \
112    compilers/imcc/cfg.h \
113    compilers/imcc/debug.h \
114    compilers/imcc/imc.h \
115    compilers/imcc/instructions.h \
116    compilers/imcc/optimizer.h \
117    compilers/imcc/sets.h \
118    compilers/imcc/symreg.h \
119    compilers/imcc/unit.h \
120    include/imcc/yyscanner.h \
121    include/imcc/embed.h \
122    $(INC_DIR)/oplib/ops.h \
123    $(INC_DIR)/oplib/core_ops.h \
124    $(INC_DIR)/runcore_api.h \
125    $(PARROT_H_HEADERS)
126
127compilers/imcc/debug$(O) : \
128    compilers/imcc/debug.c \
129    compilers/imcc/cfg.h \
130    compilers/imcc/debug.h \
131    compilers/imcc/imc.h \
132    compilers/imcc/instructions.h \
133    compilers/imcc/sets.h \
134    compilers/imcc/symreg.h \
135    compilers/imcc/unit.h \
136    include/imcc/yyscanner.h \
137    include/imcc/embed.h \
138    $(INC_DIR)/oplib/ops.h \
139    $(PARROT_H_HEADERS)
140
141## SUFFIX OVERRIDE - Warnings (This is generated code)
142compilers/imcc/imclexer$(O) : \
143    compilers/imcc/imclexer.c \
144    compilers/imcc/cfg.h \
145    compilers/imcc/debug.h \
146    compilers/imcc/imc.h \
147    compilers/imcc/imcparser.h \
148    compilers/imcc/instructions.h \
149    compilers/imcc/parser.h \
150    compilers/imcc/sets.h \
151    compilers/imcc/symreg.h \
152    compilers/imcc/unit.h \
153    include/imcc/yyscanner.h \
154    include/imcc/embed.h \
155    $(INC_DIR)/oplib/ops.h \
156    $(PARROT_H_HEADERS)
157	$(CC) $(CFLAGS) @optimize::compilers/imcc/imclexer.c@ \
158	  @ccwarn::compilers/imcc/imclexer.c@ \
159	  -I$(@D)/. @cc_o_out@$@ -c compilers/imcc/imclexer.c
160
161## SUFFIX OVERRIDE - Warnings (This is generated code)
162compilers/imcc/imcparser$(O) : \
163    compilers/imcc/imcparser.c \
164    compilers/imcc/cfg.h \
165    compilers/imcc/debug.h \
166    compilers/imcc/imc.h \
167    compilers/imcc/imcparser.h \
168    compilers/imcc/instructions.h \
169    compilers/imcc/optimizer.h \
170    compilers/imcc/parser.h \
171    compilers/imcc/pbc.h \
172    compilers/imcc/sets.h \
173    compilers/imcc/symreg.h \
174    compilers/imcc/unit.h \
175    include/imcc/yyscanner.h \
176    include/imcc/embed.h \
177    $(INC_DIR)/dynext.h \
178    $(INC_DIR)/oplib/ops.h \
179    $(PARROT_H_HEADERS)
180	$(CC) $(CFLAGS) @optimize::compilers/imcc/imcparser.c@ \
181	  @ccwarn::compilers/imcc/imcparser.c@ \
182	  -I$(@D)/. @cc_o_out@$@ -c compilers/imcc/imcparser.c
183
184compilers/imcc/main$(O) : \
185    include/imcc/embed.h \
186    compilers/imcc/main.c \
187    compilers/imcc/cfg.h \
188    compilers/imcc/debug.h \
189    compilers/imcc/imc.h \
190    compilers/imcc/imcparser.h \
191    compilers/imcc/instructions.h \
192    compilers/imcc/optimizer.h \
193    compilers/imcc/parser.h \
194    compilers/imcc/pbc.h \
195    compilers/imcc/sets.h \
196    compilers/imcc/symreg.h \
197    compilers/imcc/unit.h \
198    include/imcc/yyscanner.h \
199    $(INC_DIR)/oplib/ops.h \
200    $(INC_DIR)/runcore_api.h \
201    $(INC_DIR)/api.h \
202    $(INC_DIR)/longopt.h \
203    include/pmc/pmc_sub.h \
204    $(PARROT_H_HEADERS)
205
206## SUFFIX OVERRIDE - no -Wformat-nonliteral
207compilers/imcc/optimizer$(O) : \
208    compilers/imcc/optimizer.c \
209    compilers/imcc/cfg.h \
210    compilers/imcc/debug.h \
211    compilers/imcc/imc.h \
212    compilers/imcc/instructions.h \
213    compilers/imcc/optimizer.h \
214    compilers/imcc/pbc.h \
215    compilers/imcc/sets.h \
216    compilers/imcc/symreg.h \
217    compilers/imcc/unit.h \
218    include/imcc/yyscanner.h \
219    include/imcc/embed.h \
220    $(INC_DIR)/oplib/ops.h \
221    $(INC_DIR)/oplib/core_ops.h \
222    $(INC_DIR)/runcore_api.h \
223    $(PARROT_H_HEADERS)
224	$(CC) $(CFLAGS) @optimize::compilers/imcc/optimizer.c@ \
225	  @ccwarn::compilers/imcc/optimizer.c@ \
226	  -I$(@D)/. @cc_o_out@$@ -c compilers/imcc/optimizer.c
227
228compilers/imcc/reg_alloc$(O) : \
229    compilers/imcc/reg_alloc.c \
230    compilers/imcc/cfg.h \
231    compilers/imcc/debug.h \
232    compilers/imcc/imc.h \
233    compilers/imcc/instructions.h \
234    compilers/imcc/optimizer.h \
235    compilers/imcc/sets.h \
236    compilers/imcc/symreg.h \
237    compilers/imcc/unit.h \
238    include/imcc/yyscanner.h \
239    include/imcc/embed.h \
240    $(INC_DIR)/oplib/ops.h \
241    $(PARROT_H_HEADERS)
242
243compilers/imcc/sets$(O) : \
244    compilers/imcc/sets.c \
245    compilers/imcc/cfg.h \
246    compilers/imcc/debug.h \
247    compilers/imcc/imc.h \
248    compilers/imcc/instructions.h \
249    compilers/imcc/sets.h \
250    compilers/imcc/symreg.h \
251    compilers/imcc/unit.h \
252    include/imcc/yyscanner.h \
253    include/imcc/embed.h \
254    $(INC_DIR)/oplib/ops.h \
255    $(PARROT_H_HEADERS)
256
257compilers/imcc/symreg$(O) : \
258    compilers/imcc/symreg.c \
259    compilers/imcc/cfg.h \
260    compilers/imcc/debug.h \
261    compilers/imcc/imc.h \
262    compilers/imcc/instructions.h \
263    compilers/imcc/sets.h \
264    compilers/imcc/symreg.h \
265    compilers/imcc/unit.h \
266    include/imcc/yyscanner.h \
267    include/imcc/embed.h \
268    $(INC_DIR)/oplib/ops.h \
269    $(PARROT_H_HEADERS)
270
271# imcc file dependencies
272#
273# The .flag files are needed because we keep some generated files in Git,
274# which does not keep accurate timestamps on the files, relative to each other.
275# Note that YACC or LEX may be null commands, so we must `touch` all the
276# target files, instead of just the .flag files.
277
278compilers/imcc/imcc.y.flag compilers/imcc/imcparser.c compilers/imcc/imcparser.h : compilers/imcc/imcc.y
279	$(YACC) compilers/imcc/imcc.y -d -o compilers/imcc/imcparser.c
280	$(PERL) $(BUILD_TOOLS_DIR)/fixup_gen_file.pl -noheaderizer compilers/imcc/imcparser.c compilers/imcc/imcc.y
281	$(PERL) $(BUILD_TOOLS_DIR)/fixup_gen_file.pl -noheaderizer compilers/imcc/imcparser.h compilers/imcc/imcc.y
282	$(TOUCH) compilers/imcc/imcc.y.flag compilers/imcc/imcparser.c compilers/imcc/imcparser.h
283
284compilers/imcc/imcc.l.flag compilers/imcc/imclexer.c : compilers/imcc/imcc.l
285	$(LEX) -ocompilers/imcc/imclexer.c compilers/imcc/imcc.l
286	$(TOUCH) compilers/imcc/imcc.l.flag compilers/imcc/imclexer.c
287
288# Needed for parallel builds. The rules above might still be executed multiple
289# times, but not in parallel.
290compilers/imcc/imcparser.c : compilers/imcc/imcc.y.flag
291compilers/imcc/imcparser.h : compilers/imcc/imcparser.c
292compilers/imcc/imclexer.c : compilers/imcc/imcc.l.flag
293
294# Local variables:
295#   mode: makefile
296# End:
297# vim: ft=make:
298