9 CFLAGS=-DWIN32 -Zi -MLd -Fd$(BUILDDIR)^\
11 LDFLAGS=-Zi -MLd -Fd$(BUILDDIR)^\
12 TSTDIR=$(BUILDDIR)\$(TARGET)\tst
15 C=$Blcc -Wo-lccdir=$(BUILDDIR) -Wf-target=$(TARGET) -Iinclude\$(TARGET)
18 -@echo make all rcc lburg cpp lcc bprint liblcc triple clean clobber
20 all:: rcc lburg cpp lcc bprint liblcc
65 $Brcc$E:: $Bmain$O $Blibrcc$A $(EXTRAOBJS)
66 $(LD) $(LDFLAGS) -Fe$@ $Bmain$O $(EXTRAOBJS) $Blibrcc$A $(EXTRALIBS)
68 $Blibrcc$A: $(RCCOBJS)
69 lib -out:$@ $(RCCOBJS)
71 $(RCCOBJS): src/c.h src/ops.h src/token.h src/config.h
73 $Balloc$O: src/alloc.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/alloc.c
74 $Bbind$O: src/bind.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/bind.c
75 $Bdag$O: src/dag.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/dag.c
76 $Bdecl$O: src/decl.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/decl.c
77 $Benode$O: src/enode.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/enode.c
78 $Berror$O: src/error.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/error.c
79 $Bevent$O: src/event.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/event.c
80 $Bexpr$O: src/expr.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/expr.c
81 $Bgen$O: src/gen.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/gen.c
82 $Binit$O: src/init.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/init.c
83 $Binits$O: src/inits.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/inits.c
84 $Binput$O: src/input.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/input.c
85 $Blex$O: src/lex.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/lex.c
86 $Blist$O: src/list.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/list.c
87 $Bmain$O: src/main.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/main.c
88 $Bnull$O: src/null.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/null.c
89 $Boutput$O: src/output.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/output.c
90 $Bprof$O: src/prof.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/prof.c
91 $Bprofio$O: src/profio.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/profio.c
92 $Bsimp$O: src/simp.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/simp.c
93 $Bstmt$O: src/stmt.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/stmt.c
94 $Bstring$O: src/string.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/string.c
95 $Bsym$O: src/sym.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/sym.c
96 $Bsymbolic$O: src/symbolic.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/symbolic.c
97 $Bbytecode$O: src/bytecode.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/bytecode.c
98 $Btrace$O: src/trace.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/trace.c
99 $Btree$O: src/tree.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/tree.c
100 $Btypes$O: src/types.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/types.c
101 $Bstab$O: src/stab.c src/stab.h; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/stab.c
103 $Bdagcheck$O: $Bdagcheck.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ $Bdagcheck.c
104 $Balpha$O: $Balpha.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ $Balpha.c
105 $Bmips$O: $Bmips.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ $Bmips.c
106 $Bsparc$O: $Bsparc.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ $Bsparc.c
107 $Bx86$O: $Bx86.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ $Bx86.c
108 $Bx86linux$O: $Bx86linux.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ $Bx86linux.c
110 $Bdagcheck.c: $Blburg$E src/dagcheck.md; $Blburg src/dagcheck.md $@
111 $Balpha.c: $Blburg$E src/alpha.md; $Blburg src/alpha.md $@
112 $Bmips.c: $Blburg$E src/mips.md; $Blburg src/mips.md $@
113 $Bsparc.c: $Blburg$E src/sparc.md; $Blburg src/sparc.md $@
114 $Bx86.c: $Blburg$E src/x86.md; $Blburg src/x86.md $@
115 $Bx86linux.c: $Blburg$E src/x86linux.md; $Blburg src/x86linux.md $@
117 $Bbprint$E: $Bbprint$O; $(LD) $(LDFLAGS) -Fe$@ $Bbprint$O
118 $Bops$E: $Bops$O; $(LD) $(LDFLAGS) -Fe$@ $Bops$O
120 $Bbprint$O: etc/bprint.c src/profio.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ etc/bprint.c
121 $Bops$O: etc/ops.c src/ops.h; $(CC) $(CFLAGS) -c -Isrc -Fo$@ etc/ops.c
123 $Blcc$E: $Blcc$O $Bhost$O; $(LD) $(LDFLAGS) -Fe$@ $Blcc$O $Bhost$O
125 $Blcc$O: etc/lcc.c; $(CC) $(CFLAGS) -c -DTEMPDIR=\"$(TEMPDIR)\" -Fo$@ etc/lcc.c
126 $Bhost$O: $(HOSTFILE); $(CC) $(CFLAGS) -c -Fo$@ $(HOSTFILE)
128 $Bcp$E: etc/cp.c; $(CC) $(CFLAGS) -Fo$@ etc/cp.c
130 LIBOBJS=$Bassert$O $Bbbexit$O $Byynull$O
132 $Bliblcc$A: $(LIBOBJS); lib -out:$@ $Bassert$O $Bbbexit$O $Byynull$O
134 $Bassert$O: lib/assert.c; $(CC) -c -Fo$@ lib/assert.c
135 $Byynull$O: lib/yynull.c; $(CC) -c -Fo$@ lib/yynull.c
136 $Bbbexit$O: lib/bbexit.c; $(CC) -c -Fo$@ lib/bbexit.c
138 $Blburg$E: $Blburg$O $Bgram$O; $(LD) $(LDFLAGS) -Fe$@ $Blburg$O $Bgram$O
140 $Blburg$O $Bgram$O: lburg/lburg.h
142 $Blburg$O: lburg/lburg.c; $(CC) $(CFLAGS) -c -Ilburg -Fo$@ lburg/lburg.c
143 $Bgram$O: lburg/gram.c; $(CC) $(CFLAGS) -c -Ilburg -Fo$@ lburg/gram.c
145 CPPOBJS=$Bcpp$O $Blexer$O $Bnlist$O $Btokens$O $Bmacro$O $Beval$O \
146 $Binclude$O $Bhideset$O $Bgetopt$O $Bunix$O
149 $(LD) $(LDFLAGS) -Fe$@ $(CPPOBJS)
151 $(CPPOBJS): cpp/cpp.h
153 $Bcpp$O: cpp/cpp.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/cpp.c
154 $Blexer$O: cpp/lex.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/lex.c
155 $Bnlist$O: cpp/nlist.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/nlist.c
156 $Btokens$O: cpp/tokens.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/tokens.c
157 $Bmacro$O: cpp/macro.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/macro.c
158 $Beval$O: cpp/eval.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/eval.c
159 $Binclude$O: cpp/include.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/include.c
160 $Bhideset$O: cpp/hideset.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/hideset.c
161 $Bgetopt$O: cpp/getopt.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/getopt.c
162 $Bunix$O: cpp/unix.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/unix.c
183 $T8q.s: tst\8q.c tst\8q.0 all
184 -$C -S -Wf-errout=$T8q.2 -o $T8q.s tst/8q.c
185 fc $(TARGET)\tst\8q.sbk $T8q.s
186 fc $(TARGET)\tst\8q.2bk $T8q.2
188 -$T8q$E <tst/8q.0 >$T8q.1
189 fc $(TARGET)\tst\8q.1bk $T8q.1
190 $Tarray.s: tst\array.c tst\array.0 all
191 -$C -S -Wf-errout=$Tarray.2 -o $Tarray.s tst/array.c
192 fc $(TARGET)\tst\array.sbk $Tarray.s
193 fc $(TARGET)\tst\array.2bk $Tarray.2
194 $C -o $Tarray$E $Tarray.s
195 -$Tarray$E <tst/array.0 >$Tarray.1
196 fc $(TARGET)\tst\array.1bk $Tarray.1
197 $Tcf.s: tst\cf.c tst\cf.0 all
198 -$C -S -Wf-errout=$Tcf.2 -o $Tcf.s tst/cf.c
199 fc $(TARGET)\tst\cf.sbk $Tcf.s
200 fc $(TARGET)\tst\cf.2bk $Tcf.2
202 -$Tcf$E <tst/cf.0 >$Tcf.1
203 fc $(TARGET)\tst\cf.1bk $Tcf.1
204 $Tcq.s: tst\cq.c tst\cq.0 all
205 -$C -S -Wf-errout=$Tcq.2 -o $Tcq.s tst/cq.c
206 fc $(TARGET)\tst\cq.sbk $Tcq.s
207 fc $(TARGET)\tst\cq.2bk $Tcq.2
209 -$Tcq$E <tst/cq.0 >$Tcq.1
210 fc $(TARGET)\tst\cq.1bk $Tcq.1
211 $Tcvt.s: tst\cvt.c tst\cvt.0 all
212 -$C -S -Wf-errout=$Tcvt.2 -o $Tcvt.s tst/cvt.c
213 fc $(TARGET)\tst\cvt.sbk $Tcvt.s
214 fc $(TARGET)\tst\cvt.2bk $Tcvt.2
215 $C -o $Tcvt$E $Tcvt.s
216 -$Tcvt$E <tst/cvt.0 >$Tcvt.1
217 fc $(TARGET)\tst\cvt.1bk $Tcvt.1
218 $Tfields.s: tst\fields.c tst\fields.0 all
219 -$C -S -Wf-errout=$Tfields.2 -o $Tfields.s tst/fields.c
220 fc $(TARGET)\tst\fields.sbk $Tfields.s
221 fc $(TARGET)\tst\fields.2bk $Tfields.2
222 $C -o $Tfields$E $Tfields.s
223 -$Tfields$E <tst/fields.0 >$Tfields.1
224 fc $(TARGET)\tst\fields.1bk $Tfields.1
225 $Tfront.s: tst\front.c tst\front.0 all
226 -$C -S -Wf-errout=$Tfront.2 -o $Tfront.s tst/front.c
227 fc $(TARGET)\tst\front.sbk $Tfront.s
228 fc $(TARGET)\tst\front.2bk $Tfront.2
229 $Tincr.s: tst\incr.c tst\incr.0 all
230 -$C -S -Wf-errout=$Tincr.2 -o $Tincr.s tst/incr.c
231 fc $(TARGET)\tst\incr.sbk $Tincr.s
232 fc $(TARGET)\tst\incr.2bk $Tincr.2
233 $C -o $Tincr$E $Tincr.s
234 -$Tincr$E <tst/incr.0 >$Tincr.1
235 fc $(TARGET)\tst\incr.1bk $Tincr.1
236 $Tinit.s: tst\init.c tst\init.0 all
237 -$C -S -Wf-errout=$Tinit.2 -o $Tinit.s tst/init.c
238 fc $(TARGET)\tst\init.sbk $Tinit.s
239 fc $(TARGET)\tst\init.2bk $Tinit.2
240 $C -o $Tinit$E $Tinit.s
241 -$Tinit$E <tst/init.0 >$Tinit.1
242 fc $(TARGET)\tst\init.1bk $Tinit.1
243 $Tlimits.s: tst\limits.c tst\limits.0 all
244 -$C -S -Wf-errout=$Tlimits.2 -o $Tlimits.s tst/limits.c
245 fc $(TARGET)\tst\limits.sbk $Tlimits.s
246 fc $(TARGET)\tst\limits.2bk $Tlimits.2
247 $C -o $Tlimits$E $Tlimits.s
248 -$Tlimits$E <tst/limits.0 >$Tlimits.1
249 fc $(TARGET)\tst\limits.1bk $Tlimits.1
250 $Tparanoia.s: tst\paranoia.c tst\paranoia.0 all
251 -$C -S -Wf-errout=$Tparanoia.2 -o $Tparanoia.s tst/paranoia.c
252 fc $(TARGET)\tst\paranoia.sbk $Tparanoia.s
253 fc $(TARGET)\tst\paranoia.2bk $Tparanoia.2
254 $C -o $Tparanoia$E $Tparanoia.s
255 -$Tparanoia$E <tst/paranoia.0 >$Tparanoia.1
256 fc $(TARGET)\tst\paranoia.1bk $Tparanoia.1
257 $Tsort.s: tst\sort.c tst\sort.0 all
258 -$C -S -Wf-errout=$Tsort.2 -o $Tsort.s tst/sort.c
259 fc $(TARGET)\tst\sort.sbk $Tsort.s
260 fc $(TARGET)\tst\sort.2bk $Tsort.2
261 $C -o $Tsort$E $Tsort.s
262 -$Tsort$E <tst/sort.0 >$Tsort.1
263 fc $(TARGET)\tst\sort.1bk $Tsort.1
264 $Tspill.s: tst\spill.c tst\spill.0 all
265 -$C -S -Wf-errout=$Tspill.2 -o $Tspill.s tst/spill.c
266 fc $(TARGET)\tst\spill.sbk $Tspill.s
267 fc $(TARGET)\tst\spill.2bk $Tspill.2
268 $C -o $Tspill$E $Tspill.s
269 -$Tspill$E <tst/spill.0 >$Tspill.1
270 fc $(TARGET)\tst\spill.1bk $Tspill.1
271 $Tstdarg.s: tst\stdarg.c tst\stdarg.0 all
272 -$C -S -Wf-errout=$Tstdarg.2 -o $Tstdarg.s tst/stdarg.c
273 fc $(TARGET)\tst\stdarg.sbk $Tstdarg.s
274 fc $(TARGET)\tst\stdarg.2bk $Tstdarg.2
275 $C -o $Tstdarg$E $Tstdarg.s
276 -$Tstdarg$E <tst/stdarg.0 >$Tstdarg.1
277 fc $(TARGET)\tst\stdarg.1bk $Tstdarg.1
278 $Tstruct.s: tst\struct.c tst\struct.0 all
279 -$C -S -Wf-errout=$Tstruct.2 -o $Tstruct.s tst/struct.c
280 fc $(TARGET)\tst\struct.sbk $Tstruct.s
281 fc $(TARGET)\tst\struct.2bk $Tstruct.2
282 $C -o $Tstruct$E $Tstruct.s
283 -$Tstruct$E <tst/struct.0 >$Tstruct.1
284 fc $(TARGET)\tst\struct.1bk $Tstruct.1
285 $Tswitch.s: tst\switch.c tst\switch.0 all
286 -$C -S -Wf-errout=$Tswitch.2 -o $Tswitch.s tst/switch.c
287 fc $(TARGET)\tst\switch.sbk $Tswitch.s
288 fc $(TARGET)\tst\switch.2bk $Tswitch.2
289 $C -o $Tswitch$E $Tswitch.s
290 -$Tswitch$E <tst/switch.0 >$Tswitch.1
291 fc $(TARGET)\tst\switch.1bk $Tswitch.1
292 $Twf1.s: tst\wf1.c tst\wf1.0 all
293 -$C -S -Wf-errout=$Twf1.2 -o $Twf1.s tst/wf1.c
294 fc $(TARGET)\tst\wf1.sbk $Twf1.s
295 fc $(TARGET)\tst\wf1.2bk $Twf1.2
296 $C -o $Twf1$E $Twf1.s
297 -$Twf1$E <tst/wf1.0 >$Twf1.1
298 fc $(TARGET)\tst\wf1.1bk $Twf1.1
299 $Tyacc.s: tst\yacc.c tst\yacc.0 all
300 -$C -S -Wf-errout=$Tyacc.2 -o $Tyacc.s tst/yacc.c
301 fc $(TARGET)\tst\yacc.sbk $Tyacc.s
302 fc $(TARGET)\tst\yacc.2bk $Tyacc.2
303 $C -o $Tyacc$E $Tyacc.s
304 -$Tyacc$E <tst/yacc.0 >$Tyacc.1
305 fc $(TARGET)\tst\yacc.1bk $Tyacc.1
308 -del /q $T8q$E $T8q.s $T8q.2 $T8q.1
309 -del /q $Tarray$E $Tarray.s $Tarray.2 $Tarray.1
310 -del /q $Tcf$E $Tcf.s $Tcf.2 $Tcf.1
311 -del /q $Tcq$E $Tcq.s $Tcq.2 $Tcq.1
312 -del /q $Tcvt$E $Tcvt.s $Tcvt.2 $Tcvt.1
313 -del /q $Tfields$E $Tfields.s $Tfields.2 $Tfields.1
314 -del /q $Tfront$E $Tfront.s $Tfront.2 $Tfront.1
315 -del /q $Tincr$E $Tincr.s $Tincr.2 $Tincr.1
316 -del /q $Tinit$E $Tinit.s $Tinit.2 $Tinit.1
317 -del /q $Tlimits$E $Tlimits.s $Tlimits.2 $Tlimits.1
318 -del /q $Tparanoia$E $Tparanoia.s $Tparanoia.2 $Tparanoia.1
319 -del /q $Tsort$E $Tsort.s $Tsort.2 $Tsort.1
320 -del /q $Tspill$E $Tspill.s $Tspill.2 $Tspill.1
321 -del /q $Tstdarg$E $Tstdarg.s $Tstdarg.2 $Tstdarg.1
322 -del /q $Tstruct$E $Tstruct.s $Tstruct.2 $Tstruct.1
323 -del /q $Tswitch$E $Tswitch.s $Tswitch.2 $Tswitch.1
324 -del /q $Twf1$E $Twf1.s $Twf1.2 $Twf1.1
325 -del /q $Tyacc$E $Tyacc.s $Tyacc.2 $Tyacc.1
329 -del /q $Bdagcheck.c $Balpha.c $Bmips.c $Bx86.c $Bsparc.c $Bx86linux.c
330 -del /q $Brcc1$E $Brcc1$E $B1rcc$E $B2rcc$E
334 -del /q $Brcc$E $Blburg$E $Bcpp$E $Blcc$E $Bcp$E $Bbprint$E $Bops$E $B*$A
335 -del /q $B*.pdb $B*.pch
337 RCCSRCS=src/alloc.c \
373 C=$Blcc -A -d0.6 -Wo-lccdir=$(BUILDDIR) -Isrc -I$(BUILDDIR)
375 -fc /b $B1rcc$E $B2rcc$E
377 $B1rcc$E: $Brcc$E $Blcc$E $Bcpp$E
378 $C -o $@ -B$B $(RCCSRCS)
380 $C -o $@ -B$B1 $(RCCSRCS)