makefile (11007B)
1 # $Id: makefile 145 2001-10-17 21:53:10Z timo $ 2 HOSTFILE=etc/linux.c 3 TEMPDIR=/tmp 4 A=.a 5 O=.o 6 E= 7 CC=cc 8 CFLAGS=-g 9 LDFLAGS= 10 LD=cc 11 AR=ar ruv 12 RANLIB=ranlib 13 DIFF=diff 14 RM=rm -f 15 RMDIR=rmdir 16 TSTDIR=$(BUILDDIR)/$(TARGET)/tst 17 CUSTOM=custom.mk 18 include $(CUSTOM) 19 B=$(BUILDDIR)/ 20 T=$(TSTDIR)/ 21 22 # $Id: makefile 145 2001-10-17 21:53:10Z timo $ 23 24 what: 25 -@echo make all rcc lburg cpp lcc bprint liblcc triple clean clobber 26 27 all:: rcc lburg cpp lcc bprint liblcc 28 29 rcc: $Brcc$E 30 lburg: $Blburg$E 31 cpp: $Bcpp$E 32 lcc: $Blcc$E 33 bprint: $Bbprint$E 34 liblcc: $Bliblcc$A 35 36 RCCOBJS=$Balloc$O \ 37 $Bbind$O \ 38 $Bdag$O \ 39 $Bdagcheck$O \ 40 $Bdecl$O \ 41 $Benode$O \ 42 $Berror$O \ 43 $Bexpr$O \ 44 $Bevent$O \ 45 $Binit$O \ 46 $Binits$O \ 47 $Binput$O \ 48 $Blex$O \ 49 $Blist$O \ 50 $Bmain$O \ 51 $Boutput$O \ 52 $Bprof$O \ 53 $Bprofio$O \ 54 $Bsimp$O \ 55 $Bstmt$O \ 56 $Bstring$O \ 57 $Bsym$O \ 58 $Btrace$O \ 59 $Btree$O \ 60 $Btypes$O \ 61 $Bnull$O \ 62 $Bsymbolic$O \ 63 $Bgen$O \ 64 $Bbytecode$O \ 65 $Balpha$O \ 66 $Bmips$O \ 67 $Bsparc$O \ 68 $Bstab$O \ 69 $Bx86$O \ 70 $Bx86linux$O 71 72 $Brcc$E:: $Bmain$O $Blibrcc$A $(EXTRAOBJS) 73 $(LD) $(LDFLAGS) -o $@ $Bmain$O $(EXTRAOBJS) $Blibrcc$A $(EXTRALIBS) 74 75 $Blibrcc$A: $(RCCOBJS) 76 $(AR) $@ $(RCCOBJS); $(RANLIB) $@ || true 77 78 $(RCCOBJS): src/c.h src/token.h src/config.h 79 80 $Balloc$O: src/alloc.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/alloc.c 81 $Bbind$O: src/bind.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/bind.c 82 $Bdag$O: src/dag.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/dag.c 83 $Bdecl$O: src/decl.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/decl.c 84 $Benode$O: src/enode.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/enode.c 85 $Berror$O: src/error.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/error.c 86 $Bevent$O: src/event.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/event.c 87 $Bexpr$O: src/expr.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/expr.c 88 $Bgen$O: src/gen.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/gen.c 89 $Binit$O: src/init.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/init.c 90 $Binits$O: src/inits.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/inits.c 91 $Binput$O: src/input.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/input.c 92 $Blex$O: src/lex.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/lex.c 93 $Blist$O: src/list.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/list.c 94 $Bmain$O: src/main.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/main.c 95 $Bnull$O: src/null.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/null.c 96 $Boutput$O: src/output.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/output.c 97 $Bprof$O: src/prof.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/prof.c 98 $Bprofio$O: src/profio.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/profio.c 99 $Bsimp$O: src/simp.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/simp.c 100 $Bstmt$O: src/stmt.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/stmt.c 101 $Bstring$O: src/string.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/string.c 102 $Bsym$O: src/sym.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/sym.c 103 $Bsymbolic$O: src/symbolic.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/symbolic.c 104 $Bbytecode$O: src/bytecode.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/bytecode.c 105 $Btrace$O: src/trace.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/trace.c 106 $Btree$O: src/tree.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/tree.c 107 $Btypes$O: src/types.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/types.c 108 $Bstab$O: src/stab.c src/stab.h; $(CC) $(CFLAGS) -c -Isrc -o $@ src/stab.c 109 110 $Bdagcheck$O: $Bdagcheck.c; $(CC) $(CFLAGS) -c -Isrc -o $@ $Bdagcheck.c 111 $Balpha$O: $Balpha.c; $(CC) $(CFLAGS) -c -Isrc -o $@ $Balpha.c 112 $Bmips$O: $Bmips.c; $(CC) $(CFLAGS) -c -Isrc -o $@ $Bmips.c 113 $Bsparc$O: $Bsparc.c; $(CC) $(CFLAGS) -c -Isrc -o $@ $Bsparc.c 114 $Bx86$O: $Bx86.c; $(CC) $(CFLAGS) -c -Isrc -o $@ $Bx86.c 115 $Bx86linux$O: $Bx86linux.c; $(CC) $(CFLAGS) -c -Isrc -o $@ $Bx86linux.c 116 117 $Bdagcheck.c: $Blburg$E src/dagcheck.md; $Blburg src/dagcheck.md $@ 118 $Balpha.c: $Blburg$E src/alpha.md; $Blburg src/alpha.md $@ 119 $Bmips.c: $Blburg$E src/mips.md; $Blburg src/mips.md $@ 120 $Bsparc.c: $Blburg$E src/sparc.md; $Blburg src/sparc.md $@ 121 $Bx86.c: $Blburg$E src/x86.md; $Blburg src/x86.md $@ 122 $Bx86linux.c: $Blburg$E src/x86linux.md; $Blburg src/x86linux.md $@ 123 124 $Brcc.h: src/rcc.asdl; $(ASDL_HOME)/bin/asdlGen --c -d $B src/rcc.asdl 125 $Brcc$O: $Brcc.h; $(CC) $(CFLAGS) -c -Isrc -I$B -I$(ASDL_HOME)/include/asdlGen -o $@ $Brcc.c 126 $Basdl$O: src/asdl.c $Brcc.h src/c.h; $(CC) $(CFLAGS) -c -Isrc -I$B -I$(ASDL_HOME)/include/asdlGen -o $@ src/asdl.c 127 $Bpass2$O: src/pass2.c $Brcc.h src/c.h; $(CC) $(CFLAGS) -c -Isrc -I$B -I$(ASDL_HOME)/include/asdlGen -o $@ src/pass2.c 128 $B2html$O: src/2html.c $Brcc.h src/c.h; $(CC) $(CFLAGS) -c -Isrc -I$B -I$(ASDL_HOME)/include/asdlGen -o $@ src/2html.c 129 130 $Bpass2$E: $Bpass2$O $(EXTRAOBJS) $Blibrcc$A; $(LD) $(LDFLAGS) -o $@ $Bpass2$O $(EXTRAOBJS) $Blibrcc$A $(EXTRALIBS) 131 $B2html$E: $B2html$O $Brcc$O; $(LD) $(LDFLAGS) -o $@ $B2html$O $Brcc$O $(EXTRALIBS) 132 133 $Bbprint$E: $Bbprint$O; $(LD) $(LDFLAGS) -o $@ $Bbprint$O 134 135 $Bbprint$O: etc/bprint.c; $(CC) $(CFLAGS) -c -Isrc -o $@ etc/bprint.c 136 137 $Blcc$E: $Blcc$O $Bhost$O; $(LD) $(LDFLAGS) -o $@ $Blcc$O $Bhost$O 138 139 SYSTEM=$(shell cc -print-search-dirs | head -n 1 | cut -b 10-) 140 141 $Blcc$O: etc/lcc.c; $(CC) $(CFLAGS) -c -DTEMPDIR=\"$(TEMPDIR)\" -o $@ etc/lcc.c 142 $Bhost$O: $(HOSTFILE); $(CC) $(CFLAGS) -c -DSYSTEM=\"$(SYSTEM)\" -o $@ $(HOSTFILE) 143 144 LIBOBJS=$Bassert$O $Bbbexit$O $Byynull$O 145 146 $Bliblcc$A: $(LIBOBJS); $(AR) $@ $Bassert$O $Bbbexit$O $Byynull$O; $(RANLIB) $@ || true 147 148 $Bassert$O: lib/assert.c; $(CC) $(CFLAGS) -c -o $@ lib/assert.c 149 $Byynull$O: lib/yynull.c; $(CC) $(CFLAGS) -c -o $@ lib/yynull.c 150 $Bbbexit$O: lib/bbexit.c; $(CC) $(CFLAGS) -c -o $@ lib/bbexit.c 151 152 $Blburg$E: $Blburg$O $Bgram$O; $(LD) $(LDFLAGS) -o $@ $Blburg$O $Bgram$O 153 154 $Blburg$O $Bgram$O: lburg/lburg.h 155 156 $Blburg$O: lburg/lburg.c; $(CC) $(CFLAGS) -c -Ilburg -o $@ lburg/lburg.c 157 $Bgram$O: lburg/gram.c; $(CC) $(CFLAGS) -c -Ilburg -o $@ lburg/gram.c 158 159 CPPOBJS=$Bcpp$O $Blexer$O $Bnlist$O $Btokens$O $Bmacro$O $Beval$O \ 160 $Binclude$O $Bhideset$O $Bgetopt$O $Bunix$O 161 162 $Bcpp$E: $(CPPOBJS) 163 $(LD) $(LDFLAGS) -o $@ $(CPPOBJS) 164 165 $(CPPOBJS): cpp/cpp.h 166 167 $Bcpp$O: cpp/cpp.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/cpp.c 168 $Blexer$O: cpp/lex.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/lex.c 169 $Bnlist$O: cpp/nlist.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/nlist.c 170 $Btokens$O: cpp/tokens.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/tokens.c 171 $Bmacro$O: cpp/macro.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/macro.c 172 $Beval$O: cpp/eval.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/eval.c 173 $Binclude$O: cpp/include.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/include.c 174 $Bhideset$O: cpp/hideset.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/hideset.c 175 $Bgetopt$O: cpp/getopt.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/getopt.c 176 $Bunix$O: cpp/unix.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/unix.c 177 178 test: $T8q.s \ 179 $Tarray.s \ 180 $Tcf.s \ 181 $Tcq.s \ 182 $Tcvt.s \ 183 $Tfields.s \ 184 $Tfront.s \ 185 $Tincr.s \ 186 $Tinit.s \ 187 $Tlimits.s \ 188 $Tparanoia.s \ 189 $Tsort.s \ 190 $Tspill.s \ 191 $Tstdarg.s \ 192 $Tstruct.s \ 193 $Tswitch.s \ 194 $Twf1.s \ 195 $Tyacc.s 196 197 $T8q.s: tst/8q.c tst/8q.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ 198 $Tarray.s: tst/array.c tst/array.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ 199 $Tcf.s: tst/cf.c tst/cf.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ 200 $Tcq.s: tst/cq.c tst/cq.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ 201 $Tcvt.s: tst/cvt.c tst/cvt.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ 202 $Tfields.s: tst/fields.c tst/fields.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ 203 $Tfront.s: tst/front.c tst/front.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ 204 $Tincr.s: tst/incr.c tst/incr.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ 205 $Tinit.s: tst/init.c tst/init.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ 206 $Tlimits.s: tst/limits.c tst/limits.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ 207 $Tparanoia.s: tst/paranoia.c tst/paranoia.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ 208 $Tsort.s: tst/sort.c tst/sort.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ 209 $Tspill.s: tst/spill.c tst/spill.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ 210 $Tstdarg.s: tst/stdarg.c tst/stdarg.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ 211 $Tstruct.s: tst/struct.c tst/struct.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ 212 $Tswitch.s: tst/switch.c tst/switch.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ 213 $Twf1.s: tst/wf1.c tst/wf1.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ 214 $Tyacc.s: tst/yacc.c tst/yacc.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ 215 216 testclean: 217 $(RM) $T8q$E $T8q.s $T8q.2 $T8q.1 218 $(RM) $Tarray$E $Tarray.s $Tarray.2 $Tarray.1 219 $(RM) $Tcf$E $Tcf.s $Tcf.2 $Tcf.1 220 $(RM) $Tcq$E $Tcq.s $Tcq.2 $Tcq.1 221 $(RM) $Tcvt$E $Tcvt.s $Tcvt.2 $Tcvt.1 222 $(RM) $Tfields$E $Tfields.s $Tfields.2 $Tfields.1 223 $(RM) $Tfront$E $Tfront.s $Tfront.2 $Tfront.1 224 $(RM) $Tincr$E $Tincr.s $Tincr.2 $Tincr.1 225 $(RM) $Tinit$E $Tinit.s $Tinit.2 $Tinit.1 226 $(RM) $Tlimits$E $Tlimits.s $Tlimits.2 $Tlimits.1 227 $(RM) $Tparanoia$E $Tparanoia.s $Tparanoia.2 $Tparanoia.1 228 $(RM) $Tsort$E $Tsort.s $Tsort.2 $Tsort.1 229 $(RM) $Tspill$E $Tspill.s $Tspill.2 $Tspill.1 230 $(RM) $Tstdarg$E $Tstdarg.s $Tstdarg.2 $Tstdarg.1 231 $(RM) $Tstruct$E $Tstruct.s $Tstruct.2 $Tstruct.1 232 $(RM) $Tswitch$E $Tswitch.s $Tswitch.2 $Tswitch.1 233 $(RM) $Twf1$E $Twf1.s $Twf1.2 $Twf1.1 234 $(RM) $Tyacc$E $Tyacc.s $Tyacc.2 $Tyacc.1 235 236 install:: all 237 install -d /usr/local/lib/lcc 238 install -d /usr/local/lib/lcc/gcc 239 install $Blcc$E /usr/local/bin 240 install $Bcpp$E /usr/local/lib/lcc/gcc 241 install $Brcc$E /usr/local/lib/lcc 242 install $Bliblcc$A /usr/local/lib/lcc 243 install $Blibrcc$A /usr/local/lib/lcc 244 245 uninstall:: 246 $(RM) /usr/local/lib/lcc/librcc$A 247 $(RM) /usr/local/lib/lcc/liblcc$A 248 $(RM) /usr/local/lib/lcc/rcc$E 249 $(RM) /usr/local/lib/lcc/gcc/cpp$E 250 $(RM) /usr/local/bin/lcc$E 251 $(RMDIR) /usr/local/lib/lcc/gcc 252 $(RMDIR) /usr/local/lib/lcc 253 254 clean:: testclean 255 $(RM) $B*$O 256 $(RM) $Bdagcheck.c $Balpha.c $Bmips.c $Bx86.c $Bsparc.c $Bx86linux.c $Bgram.c 257 $(RM) $Brcc.c $Brcc.h 258 $(RM) $Brcc1$E $Brcc1$E $B1rcc$E $B2rcc$E 259 $(RM) $B*.ilk 260 261 clobber:: clean 262 $(RM) $Brcc$E $B2html$E $Bpass2$E $Blburg$E $Bcpp$E $Blcc$E $Bbprint$E $B*$A 263 $(RM) $B*.pdb $B*.pch 264 265 RCCSRCS=src/alloc.c \ 266 src/bind.c \ 267 src/dag.c \ 268 src/decl.c \ 269 src/enode.c \ 270 src/error.c \ 271 src/expr.c \ 272 src/event.c \ 273 src/init.c \ 274 src/inits.c \ 275 src/input.c \ 276 src/lex.c \ 277 src/list.c \ 278 src/main.c \ 279 src/output.c \ 280 src/prof.c \ 281 src/profio.c \ 282 src/simp.c \ 283 src/stmt.c \ 284 src/string.c \ 285 src/sym.c \ 286 src/trace.c \ 287 src/tree.c \ 288 src/types.c \ 289 src/null.c \ 290 src/symbolic.c \ 291 src/bytecode.c \ 292 src/gen.c \ 293 src/stab.c \ 294 $Bdagcheck.c \ 295 $Balpha.c \ 296 $Bmips.c \ 297 $Bsparc.c \ 298 $Bx86linux.c \ 299 $Bx86.c 300 301 C=$Blcc -A -d0.6 -Wo-lccdir=$(BUILDDIR) -Isrc -I$(BUILDDIR) 302 triple: $Brcc$E $Blcc$E $Bcpp$E 303 $C -o $B1rcc$E -B$B $(RCCSRCS) 304 $C -o $B2rcc$E -B$B1 $(RCCSRCS) 305 strip $B1rcc$E $B2rcc$E 306 dd if=$B1rcc$E of=$Brcc1$E bs=512 skip=1 307 dd if=$B2rcc$E of=$Brcc2$E bs=512 skip=1 308 if cmp $Brcc1$E $Brcc2$E; then \ 309 mv $B2rcc$E $Brcc$E; \ 310 $(RM) $B1rcc$E $Brcc[12]$E; fi