1# 2# makefile for egcs 3# 4# Created by Klaus K"ampf, kkaempf@progis.de 5# 6 7# choose egcs or dec c 8#CC = gcc 9CC = cc 10 11# With or withou haifa scheduler ? 12#HAIFA=,"HAIFA" 13HAIFA= 14 15PWD=sys$$disk:[] 16RM=delete/nolog 17 18ifeq ($(CC),gcc) 19ifeq ($(ARCH),ALPHA) 20CFLAGS=/define=("HAVE_CONFIG_H=1","USE_COLLECT2" $(HAIFA)) 21LIBS=,gnu_cc_library:libgcc.olb/lib,sys$$library:vaxcrtl.olb/lib,gnu_cc_library:crt0.obj 22else 23CFLAGS=/define=("HAVE_CONFIG_H=1","USE_COLLECT2" $(HAIFA)) 24LIBS=,gnu_cc_library:libgcc.olb/lib,sys$$library:vaxcrtl.olb/lib 25endif 26LFLAGS=/map/full 27#LFLAGS= 28else 29ifeq ($(ARCH),ALPHA) 30CFLAGS=/names=as_is/float=ieee/noopt/debug/define=("HAVE_CONFIG_H=1","USE_COLLECT2" $(HAIFA))\ 31/warning=disable=(missingreturn,implicitfunc,ptrmismatch,undefescap,longextern,duptypespec) 32else 33CFLAGS=/noopt/debug/define=("HAVE_CONFIG_H=1","USE_COLLECT2" $(HAIFA)) 34endif 35LFLAGS=/nomap 36LIBS=,sys$$library:vaxcrtl.olb/lib 37endif 38 39BISON = bison 40BISON_FLAGS= /Yacc/Define/Verbose 41RENAME= rename/New_Version 42LINK = link #/noshare/nosysshr 43EDIT = edit 44SEARCH= search 45ABORT = exit %x002C 46echo = write sys$$output 47 48CINCL1 = /Incl=([],[.config]) 49CINCL2 = /Incl=([],[.ginclude],[.config]) 50CINCL_SUB = /Incl=([],[-],[-.ginclude],[-.config]) 51CINCL_CP= /Incl=([],[.config],[.cp],[.cp.inc]) 52 53MDFILE = [.config.$(ARCH)]$(ARCH).md 54 55ifeq ($(HAIFA),) 56SCHED=sched 57else 58SCHED=haifa-sched 59endif 60 61GENOBJS=[]rtl.obj,obstack.obj 62 63INDEPOBJS= []toplev.obj,version.obj,tree.obj,print-tree.obj,stor-layout.obj,\ 64fold-const.obj,function.obj,stmt.obj,except.obj,expr.obj,calls.obj,expmed.obj,\ 65explow.obj,optabs.obj,varasm.obj,rtl.obj,print-rtl.obj,rtlanal.obj,\ 66emit-rtl.obj,genrtl.obj,real.obj,regmove.obj,dbxout.obj,sdbout.obj,dwarfout.obj,\ 67dwarf2out.obj,xcoffout.obj,bitmap.obj,alias.obj,\ 68integrate.obj,jump.obj,cse.obj,loop.obj,unroll.obj,flow.obj,stupid.obj,\ 69combine.obj,regclass.obj,local-alloc.obj,global.obj,reload.obj,\ 70reload1.obj,caller-save.obj,insn-peep.obj,reorg.obj,$(SCHED).obj,\ 71final.obj,recog.obj,reg-stack.obj,insn-opinit.obj,insn-recog.obj,\ 72insn-extract.obj,insn-output.obj,insn-emit.obj,\ 73profile.obj,insn-attrtab.obj,\ 74aux-output.obj,getpwd.obj,convert.obj 75 76CC1OBJS=[]c-parse.obj,c-lang.obj,c-lex.obj,c-pragma.obj,c-decl.obj,\ 77c-typeck.obj,c-convert.obj,c-aux-info.obj,c-common.obj,c-iterate.obj,\ 78obstack.obj 79 80OBJCOBJS= 81 82# list copied from cc1plus-objs.opt 83 84CC1PLUSOBJS=[.cp]call.obj,[.cp]decl2.obj,\ 85[.cp]except.obj,[.cp]pt.obj,\ 86[.cp]spew.obj,[.cp]xref.obj,[.cp]class.obj,\ 87[.cp]expr.obj,[.cp]lex.obj,\ 88[.cp]ptree.obj,[.cp]tree.obj,[.cp]cvt.obj,\ 89[.cp]errfn.obj,[.cp]rtti.obj,[.cp]method.obj,\ 90[.cp]search.obj,[.cp]typeck.obj,[.cp]decl.obj,\ 91[.cp]error.obj,[.cp]friend.obj,[.cp]init.obj,[.cp]parse.obj,\ 92[.cp]sig.obj,[.cp]typeck2.obj,[.cp]repo.obj,\ 93[.cp]input.obj,\ 94[]obstack.obj,\ 95[]c-common.obj,[]c-pragma.obj 96 97CCCPOBJS=[]cccp.obj,cexp.obj,version.obj,prefix.obj 98 99ALLOCA=,[]alloca.obj 100 101LIBIBERTY = [-.libiberty]libiberty.olb 102 103CXX_LIB2FUNCS = [.cp]tinfo.obj,[.cp]tinfo2.obj,\ 104[.cp]new.obj,[.cp]new1.obj,[.cp]new2.obj,[.cp]exception.obj 105 106.c.obj: 107 $(CC) $(CFLAGS) $(CINCL1) $</obj=$@ 108 109.cc.obj: 110 $(CC)/plus/CPP="-nostdinc++" $(CFLAGS) $(CINCL_CP) $</obj=$@ 111 112INSN_INCLUDES=insn-attr.h insn-codes.h insn-config.h insn-flags.h 113 114# 115# 116# 117 118all: cpp.exe cc1.exe float.h limits.h libgcc2.olb 119 120allplus: cc1plus.exe libgccplus.olb 121 122libplus: libgccplus.olb 123 124cc1.exe: $(CC1OBJS) $(ALLOCA) $(INDEPOBJS) 125 $(LINK)$(LFLAGS)/exe=$@ version.opt/opt,cc1-objs.opt/Opt,independent.opt/Opt$(ALLOCA)$(LIBS) 126 127cpp.exe: $(CCCPOBJS) $(ALLOCA) 128 $(LINK)$(LFLAGS)/exe=$@ $(CCCPOBJS),version.opt/opt$(ALLOCA)$(LIBS) 129 130cc1plus.exe: $(CC1PLUSOBJS) $(ALLOCA) $(INDEPOBJS) 131 $(LINK)$(LFLAGS)/exe=$@ version.opt/opt,cc1plus-objs.opt/Opt,independent.opt/Opt$(ALLOCA)$(LIBS) 132 133gcc.exe: gcc.obj version.obj choose-temp.obj pexecute.obj prefix.obj obstack.obj 134 $(LINK)$(LFLAGS)/exe=$@ $^$(ALLOCA)$(LIBS) 135 136install: cpp.exe cc1.exe gcc.exe libgcc2.olb 137 $(CP) $^ GNU_CC_LIBRARY 138 139installplus: cc1plus.exe libgccplus.olb 140 $(CP) $^ GNU_CC_LIBRARY 141 142float.h: enquire.exe 143 mcr $(PWD)enquire.exe -f > $@ 144 145limits.h: enquire.exe 146 mcr $(PWD)enquire.exe -l > $@ 147 148enquire.exe: enquire.obj 149 $(LINK)$(LFLAGS)/exe=$@ enquire.obj$(ALLOCA)$(LIBS) 150 151libgcc2.olb: 152 $$ @make-l2 153 154libgccplus.olb: $(CXX_LIB2FUNCS) 155 lib/create libgccplus $(CXX_LIB2FUNCS) 156 157genattr.exe: genattr.obj,$(GENOBJS)$(ALLOCA) 158 $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS) 159 160insn-attr.h: genattr.exe $(MDFILE) 161 mcr $(PWD)genattr.exe $(MDFILE) > $@ 162 163genflags.exe: genflags.obj,$(GENOBJS)$(ALLOCA) 164 $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS) 165 166insn-flags.h: genflags.exe $(MDFILE) 167 mcr $(PWD)genflags.exe $(MDFILE) > $@ 168 169gencodes.exe: gencodes.obj,$(GENOBJS)$(ALLOCA) 170 $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS) 171 172insn-codes.h: gencodes.exe $(MDFILE) 173 mcr $(PWD)gencodes.exe $(MDFILE) > $@ 174 175genconfig.exe: genconfig.obj,$(GENOBJS)$(ALLOCA) 176 $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS) 177 178insn-config.h: genconfig.exe $(MDFILE) 179 mcr $(PWD)genconfig.exe $(MDFILE) > $@ 180 181genpeep.exe: genpeep.obj,$(GENOBJS)$(ALLOCA) 182 $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS) 183 184insn-peep.c: genpeep.exe $(MDFILE) 185 mcr $(PWD)genpeep.exe $(MDFILE) > $@ 186 187genopinit.exe: genopinit.obj,$(GENOBJS)$(ALLOCA) 188 $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS) 189 190insn-opinit.c: genopinit.exe $(MDFILE) 191 mcr $(PWD)genopinit.exe $(MDFILE) > $@ 192 193genrecog.exe: genrecog.obj,$(GENOBJS)$(ALLOCA) 194 $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS) 195 196insn-recog.c: genrecog.exe $(MDFILE) 197 mcr $(PWD)genrecog.exe $(MDFILE) > $@ 198 199genextract.exe: genextract.obj,$(GENOBJS)$(ALLOCA) 200 $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS) 201 202insn-extract.c: genextract.exe $(MDFILE) 203 mcr $(PWD)genextract.exe $(MDFILE) > $@ 204 205genoutput.exe: genoutput.obj,$(GENOBJS)$(ALLOCA) 206 $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS) 207 208insn-output.c: genoutput.exe $(MDFILE) 209 mcr $(PWD)genoutput.exe $(MDFILE) > $@ 210 211genemit.exe: genemit.obj,$(GENOBJS)$(ALLOCA) 212 $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS) 213 214insn-emit.c: genemit.exe $(MDFILE) 215 mcr $(PWD)genemit.exe $(MDFILE) > $@ 216 217genattrtab.exe: genattrtab.obj,rtlanal.obj,$(GENOBJS)$(ALLOCA) 218 $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS) 219 220insn-attrtab.c: genattrtab.exe $(MDFILE) 221 mcr $(PWD)genattrtab.exe $(MDFILE) > $@ 222 223gengenrtl.exe: gengenrtl.obj,obstack.obj,$(ALLOCA) 224 $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS) 225 226genrtl.h genrtl.c: gengenrtl.exe 227 mcr $(PWD)gengenrtl.exe genrtl.h genrtl.c 228 229cccp.obj: cccp.c config.h 230aux-output.obj: aux-output.c insn-attr.h insn-flags.h insn-config.h 231caller-save.obj: caller-save.c insn-config.h 232calls.obj: calls.c insn-flags.h 233combine.obj: combine.c insn-attr.h insn-flags.h insn-codes.h insn-config.h 234cse.obj: cse.c insn-config.h 235c-decl.obj: c-decl.c expr.h integrate.h insn-codes.h insn-config.h 236c-lex.obj: c-lex.c genrtl.h 237c-typeck.obj: c-typeck.c 238dbxout.obj: dbxout.c insn-config.h 239dwarfout.obj: dwarfout.c insn-config.h 240dwarf2out.obj: dwarf2out.c insn-config.h 241emit-rtl.obj: emit-rtl.c insn-config.h 242except.obj: except.c insn-flags.h insn-codes.h insn-config.h 243explow.obj: explow.c insn-flags.h insn-codes.h insn-config.h 244expmed.obj: expmed.c insn-flags.h insn-codes.h insn-config.h 245expr.obj: expr.c insn-flags.h insn-config.h 246final.obj: final.c tm.h insn-attr.h insn-flags.h insn-codes.h insn-config.h 247flow.obj: flow.c insn-config.h 248function.obj: function.c insn-flags.h insn-codes.h insn-config.h insn-codes.h insn-config.h 249genattrtab.obj: genattrtab.c insn-config.h 250genextract.obj: genextract.c insn-config.h 251global.obj: global.c insn-config.h 252integrate.obj: integrate.c integrate.h insn-flags.h insn-config.h 253jump.obj: jump.c insn-flags.h insn-config.h 254local-alloc.obj: local-alloc.c insn-config.h 255loop.obj: loop.c insn-flags.h insn-config.h 256optabs.obj: optabs.c insn-flags.h insn-codes.h insn-config.h 257print-rtl.obj: print-rtl.c 258profile.obj: profile.c insn-flags.h insn-config.h 259recog.obj: recog.c insn-attr.h insn-flags.h insn-codes.h insn-config.h 260regclass.obj: regclass.c insn-config.h 261reg-stack.obj: reg-stack.c insn-config.h 262reload.obj: reload.c insn-codes.h insn-config.h 263reload1.obj: reload1.c insn-flags.h insn-codes.h insn-config.h 264reorg.obj: reorg.c insn-attr.h insn-flags.h insn-config.h 265sched.obj: sched.c insn-attr.h insn-config.h 266haifa-sched.obj: haifa-sched.c insn-attr.h insn-config.h 267stmt.obj: stmt.c insn-flags.h insn-codes.h insn-config.h 268stor-layout.obj: stor-layout.c 269stupid.obj: stupid.c 270toplev.obj: toplev.c insn-attr.h insn-config.h 271unroll.obj: unroll.c insn-config.h 272 273insn-attrtab.obj: insn-attrtab.c insn-attr.h insn-config.h 274insn-output.obj: insn-output.c insn-attr.h insn-flags.h insn-codes.h 275insn-emit.obj: insn-emit.c insn-flags.h insn-codes.h insn-config.h 276insn-opinit.obj: insn-opinit.c insn-flags.h insn-codes.h insn-config.h 277insn-output.obj: insn-config.h 278insn-recog.obj: insn-config.h 279 280varasm.obj: varasm.c tm.h 281toplev.obj: toplev.c tm.h 282 283cexp.c: cexp.y 284 $(BISON) $(BISON_FLAGS)/output=$@ $< 285c-parse.c: c-parse.y 286 $(BISON) $(BISON_FLAGS)/output=$@ $< 287[.cp]parse.c: [.cp]parse.y 288 $(BISON) $(BISON_FLAGS)/output=$@ $< 289[.cp]parse.h: [.cp]parse.c 290 @$(ECHO) "Must copy YYEMPTY from [.cp]parse.c to [.cp]parse.h" 291 $$ stop 292aux-output.c: [.config.$(ARCH)]$(ARCH).c 293 copy $< $@ 294 295expr.h: insn-codes.h 296reload.h: insn-config.h 297integrate.h: insn-config.h 298 299config.h: 300 $$ @vmsconfig 301 302cleancccp: 303 $$ purge 304 $(RM) cccp.obj;,cexp.obj; 305 $(RM) cpp.exe; 306 307cleanlib: 308 $$ purge 309 $(RM) libgcc2.olb; 310 311cleanlibplus: 312 $$ purge 313 $(RM) [.cp]tinfo.obj; 314 $(RM) [.cp]tinfo2.obj; 315 $(RM) [.cp]new.obj; 316 $(RM) [.cp]new1.obj; 317 $(RM) [.cp]new2.obj; 318 $(RM) [.cp]exception.obj; 319 $(RM) libgccplus.olb; 320 321clean: 322 $$ purge 323 $$ purge [.cp] 324 $(RM) *.obj;* 325 $(RM) [.cp]*.obj;* 326 $(RM) [.cp]parse.output;* 327 $(RM) *.cpp;* 328 $(RM) *.s;* 329 $(RM) *.rtl;* 330 $(RM) a.out; 331 $(RM) *.combine; 332 $(RM) *.cpp; 333 $(RM) *.cse; 334 $(RM) *.cse2; 335 $(RM) *.dbr; 336 $(RM) *.flow; 337 $(RM) *.greg; 338 $(RM) *.jump; 339 $(RM) *.jump2; 340 $(RM) *.loop; 341 $(RM) *.lreg; 342 $(RM) *.rtl; 343 $(RM) *.sched; 344 $(RM) *.sched2; 345 $(RM) *.map; 346 $(RM) genattr.exe;,insn-attr.h; 347 $(RM) genflags.exe;,insn-flags.h; 348 $(RM) gencodes.exe;,insn-codes.h; 349 $(RM) genconfig.exe;,insn-config.h; 350 $(RM) genpeep.exe;,insn-peep.c; 351 $(RM) genopinit.exe;,insn-opinit.c; 352 $(RM) genrecog.exe;,insn-recog.c; 353 $(RM) genextract.exe;,insn-extract.c; 354 $(RM) genoutput.exe;,insn-output.c; 355 $(RM) genemit.exe;,insn-emit.c; 356 $(RM) genattrtab.exe;,insn-attrtab.c; 357 $(RM) gengenrtl.exe;,genrtl.c;,genrtl.h; 358 $(RM) cc1.exe; 359 $(RM) cpp.exe; 360 $(RM) cc1plus.exe; 361 $(RM) libgcc2.olb; 362 $(RM) libgccplus.olb; 363 $(RM) enquire.exe;,float.h;,limits.h; 364# 365# clean everything axpconfig.com creates 366# 367distclean: clean cleancccp 368 purge [...] 369 $(RM) config.h; 370 $(RM) tconfig.h; 371 $(RM) hconfig.h; 372 $(RM) tm.h; 373 $(RM) options.h; 374 $(RM) specs.h; 375 $(RM) aux-output.c; 376 377[.cp]call.obj: [.cp]call.c 378[.cp]decl2.obj: [.cp]decl2.c 379[.cp]except.obj: [.cp]except.c insn-codes.h insn-flags.h 380[.cp]pt.obj: [.cp]pt.c 381[.cp]spew.obj: [.cp]spew.c 382[.cp]xref.obj: [.cp]xref.c 383[.cp]class.obj: [.cp]class.c 384[.cp]expr.obj: [.cp]expr.c insn-codes.h 385[.cp]lex.obj: [.cp]lex.c [.cp]parse.h 386[.cp]ptree.obj: [.cp]ptree.c 387[.cp]tree.obj: [.cp]tree.c 388[.cp]cvt.obj: [.cp]cvt.c 389[.cp]errfn.obj: [.cp]errfn.c 390[.cp]rtti.obj: [.cp]rtti.c 391[.cp]method.obj: [.cp]method.c insn-codes.h 392[.cp]search.obj: [.cp]search.c 393[.cp]typeck.obj: [.cp]typeck.c 394[.cp]decl.obj: [.cp]decl.c 395[.cp]error.obj: [.cp]error.c 396[.cp]friend.obj: [.cp]friend.c 397[.cp]init.obj: [.cp]init.c 398[.cp]parse.obj: [.cp]parse.c 399 $(CC) $(CFLAGS) $(CINCL_CP) $^/obj=$@ 400[.cp]sig.obj: [.cp]sig.c 401[.cp]typeck2.obj: [.cp]typeck2.c 402[.cp]repo.obj: [.cp]repo.c 403[.cp]input.obj: [.cp]input.c 404 $(TOUCH) $@ 405# g++ library 406[.cp]tinfo.obj: [.cp]tinfo.cc 407[.cp]tinfo2.obj: [.cp]tinfo2.cc 408[.cp]new.obj: [.cp]new.cc 409[.cp]new1.obj: [.cp]new1.cc 410[.cp]new2.obj: [.cp]new2.cc 411[.cp]exception.obj: [.cp]exception.cc 412 413#EOF 414