OSDN Git Service

* config/darwin.h (REGISTER_TARGET_PRAGMAS): Define.
[pf3gnuchains/gcc-fork.git] / gcc / makefile.vms
1 #
2 # makefile for GCC
3 #
4 # Created by Klaus K"ampf, kkaempf@progis.de
5 #
6
7 # choose gcc or dec c
8 #CC = gcc
9 CC = cc
10
11 # With or withou haifa scheduler ?
12 #HAIFA=,"HAIFA"
13 HAIFA=
14
15 PWD=sys$$disk:[]
16 RM=delete/nolog
17
18 ifeq ($(CC),gcc)
19 ifeq ($(ARCH),ALPHA)
20 CFLAGS=/define=("HAVE_CONFIG_H=1","USE_COLLECT2" $(HAIFA))
21 LIBS=,gnu_cc_library:libgcc.olb/lib,sys$$library:vaxcrtl.olb/lib,gnu_cc_library:crt0.obj
22 else
23 CFLAGS=/define=("HAVE_CONFIG_H=1","USE_COLLECT2" $(HAIFA))
24 LIBS=,gnu_cc_library:libgcc.olb/lib,sys$$library:vaxcrtl.olb/lib
25 endif
26 LFLAGS=/map/full
27 #LFLAGS=
28 else
29 ifeq ($(ARCH),ALPHA)
30 CFLAGS=/names=as_is/float=ieee/noopt/debug/define=("HAVE_CONFIG_H=1","USE_COLLECT2" $(HAIFA))\
31 /warning=disable=(missingreturn,implicitfunc,ptrmismatch,undefescap,longextern,duptypespec)
32 else
33 CFLAGS=/noopt/debug/define=("HAVE_CONFIG_H=1","USE_COLLECT2" $(HAIFA))
34 endif
35 LFLAGS=/nomap
36 LIBS=,sys$$library:vaxcrtl.olb/lib
37 endif
38
39 BISON = bison
40 BISON_FLAGS=  /Yacc/Define/Verbose
41 RENAME= rename/New_Version
42 LINK  = link            #/noshare/nosysshr
43 EDIT  = edit
44 SEARCH= search
45 ABORT = exit %x002C
46 echo  = write sys$$output
47
48 CINCL1  =       /Incl=([],[.config])
49 CINCL2  =       /Incl=([],[.ginclude],[.config])
50 CINCL_SUB =     /Incl=([],[-],[-.ginclude],[-.config])
51 CINCL_CP=       /Incl=([],[.config],[.cp],[.cp.inc])
52
53 MDFILE = [.config.$(ARCH)]$(ARCH).md
54
55 ifeq ($(HAIFA),)
56 SCHED=sched
57 else
58 SCHED=haifa-sched
59 endif
60
61 GENOBJS=[]rtl.obj,obstack.obj
62
63 INDEPOBJS= []toplev.obj,version.obj,tree.obj,print-tree.obj,stor-layout.obj,\
64 fold-const.obj,function.obj,stmt.obj,except.obj,expr.obj,calls.obj,expmed.obj,\
65 explow.obj,optabs.obj,varasm.obj,rtl.obj,print-rtl.obj,rtlanal.obj,\
66 emit-rtl.obj,genrtl.obj,real.obj,regmove.obj,dbxout.obj,sdbout.obj,dwarfout.obj,\
67 dwarf2out.obj,xcoffout.obj,bitmap.obj,alias.obj,\
68 integrate.obj,jump.obj,cse.obj,loop.obj,unroll.obj,flow.obj,stupid.obj,\
69 combine.obj,regclass.obj,local-alloc.obj,global.obj,reload.obj,\
70 reload1.obj,caller-save.obj,insn-peep.obj,reorg.obj,$(SCHED).obj,\
71 final.obj,recog.obj,reg-stack.obj,insn-opinit.obj,insn-recog.obj,\
72 insn-extract.obj,insn-output.obj,insn-emit.obj,\
73 profile.obj,insn-attrtab.obj,\
74 aux-output.obj,getpwd.obj,convert.obj
75
76 CC1OBJS=[]c-parse.obj,c-lang.obj,c-lex.obj,c-pragma.obj,c-decl.obj,\
77 c-typeck.obj,c-convert.obj,c-aux-info.obj,c-common.obj,c-iterate.obj,\
78 obstack.obj
79
80 OBJCOBJS=
81
82 # list copied from cc1plus-objs.opt
83
84 CC1PLUSOBJS=[.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
97 CCCPOBJS=[]cccp.obj,cexp.obj,version.obj,prefix.obj
98
99 ALLOCA=,[]alloca.obj
100
101 LIBIBERTY = [-.libiberty]libiberty.olb
102
103 CXX_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
112 INSN_INCLUDES=insn-attr.h insn-codes.h insn-config.h insn-flags.h
113
114 #
115 #
116 #
117
118 all: cpp.exe cc1.exe float.h limits.h libgcc2.olb
119
120 allplus: cc1plus.exe libgccplus.olb
121
122 libplus: libgccplus.olb
123
124 cc1.exe: $(CC1OBJS) $(ALLOCA) $(INDEPOBJS)
125         $(LINK)$(LFLAGS)/exe=$@ version.opt/opt,cc1-objs.opt/Opt,independent.opt/Opt$(ALLOCA)$(LIBS)
126
127 cpp.exe: $(CCCPOBJS) $(ALLOCA)
128         $(LINK)$(LFLAGS)/exe=$@ $(CCCPOBJS),version.opt/opt$(ALLOCA)$(LIBS)
129
130 cc1plus.exe: $(CC1PLUSOBJS) $(ALLOCA) $(INDEPOBJS)
131         $(LINK)$(LFLAGS)/exe=$@ version.opt/opt,cc1plus-objs.opt/Opt,independent.opt/Opt$(ALLOCA)$(LIBS)
132
133 gcc.exe: gcc.obj version.obj choose-temp.obj pexecute.obj prefix.obj obstack.obj
134         $(LINK)$(LFLAGS)/exe=$@ $^$(ALLOCA)$(LIBS)
135         
136 install: cpp.exe cc1.exe gcc.exe libgcc2.olb
137         $(CP) $^ GNU_CC_LIBRARY
138
139 installplus: cc1plus.exe libgccplus.olb
140         $(CP) $^ GNU_CC_LIBRARY
141
142 float.h: enquire.exe
143         mcr $(PWD)enquire.exe -f > $@
144
145 limits.h: enquire.exe
146         mcr $(PWD)enquire.exe -l > $@
147
148 enquire.exe: enquire.obj
149         $(LINK)$(LFLAGS)/exe=$@ enquire.obj$(ALLOCA)$(LIBS)
150
151 libgcc2.olb:
152         $$ @make-l2
153
154 libgccplus.olb: $(CXX_LIB2FUNCS)
155         lib/create libgccplus $(CXX_LIB2FUNCS)
156
157 genattr.exe: genattr.obj,$(GENOBJS)$(ALLOCA)
158         $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS)
159
160 insn-attr.h: genattr.exe $(MDFILE)
161         mcr $(PWD)genattr.exe $(MDFILE) > $@
162
163 genflags.exe: genflags.obj,$(GENOBJS)$(ALLOCA)
164         $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS)
165
166 insn-flags.h: genflags.exe $(MDFILE)
167         mcr $(PWD)genflags.exe $(MDFILE) > $@
168
169 gencodes.exe: gencodes.obj,$(GENOBJS)$(ALLOCA)
170         $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS)
171
172 insn-codes.h: gencodes.exe $(MDFILE)
173         mcr $(PWD)gencodes.exe $(MDFILE) > $@
174
175 genconfig.exe: genconfig.obj,$(GENOBJS)$(ALLOCA)
176         $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS)
177
178 insn-config.h: genconfig.exe $(MDFILE)
179         mcr $(PWD)genconfig.exe $(MDFILE) > $@
180
181 genpeep.exe: genpeep.obj,$(GENOBJS)$(ALLOCA)
182         $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS)
183
184 insn-peep.c: genpeep.exe $(MDFILE)
185         mcr $(PWD)genpeep.exe $(MDFILE) > $@
186
187 genopinit.exe: genopinit.obj,$(GENOBJS)$(ALLOCA)
188         $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS)
189
190 insn-opinit.c: genopinit.exe $(MDFILE)
191         mcr $(PWD)genopinit.exe $(MDFILE) > $@
192
193 genrecog.exe: genrecog.obj,$(GENOBJS)$(ALLOCA)
194         $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS)
195
196 insn-recog.c: genrecog.exe $(MDFILE)
197         mcr $(PWD)genrecog.exe $(MDFILE) > $@
198
199 genextract.exe: genextract.obj,$(GENOBJS)$(ALLOCA)
200         $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS)
201
202 insn-extract.c: genextract.exe $(MDFILE)
203         mcr $(PWD)genextract.exe $(MDFILE) > $@
204
205 genoutput.exe: genoutput.obj,$(GENOBJS)$(ALLOCA)
206         $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS)
207
208 insn-output.c: genoutput.exe $(MDFILE)
209         mcr $(PWD)genoutput.exe $(MDFILE) > $@
210
211 genemit.exe: genemit.obj,$(GENOBJS)$(ALLOCA)
212         $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS)
213
214 insn-emit.c: genemit.exe $(MDFILE)
215         mcr $(PWD)genemit.exe $(MDFILE) > $@
216
217 genattrtab.exe: genattrtab.obj,rtlanal.obj,$(GENOBJS)$(ALLOCA)
218         $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS)
219
220 insn-attrtab.c: genattrtab.exe $(MDFILE)
221         mcr $(PWD)genattrtab.exe $(MDFILE) > $@
222
223 gengenrtl.exe: gengenrtl.obj,obstack.obj,$(ALLOCA)
224         $(LINK) $(LFLAGS)/exe=$@ $^$(LIBS)
225
226 genrtl.h genrtl.c: gengenrtl.exe
227         mcr $(PWD)gengenrtl.exe genrtl.h genrtl.c
228
229 cccp.obj: cccp.c config.h
230 aux-output.obj: aux-output.c insn-attr.h insn-flags.h insn-config.h
231 caller-save.obj: caller-save.c insn-config.h
232 calls.obj: calls.c insn-flags.h
233 combine.obj: combine.c insn-attr.h insn-flags.h insn-codes.h insn-config.h
234 cse.obj: cse.c insn-config.h
235 c-decl.obj: c-decl.c expr.h integrate.h insn-codes.h insn-config.h
236 c-lex.obj: c-lex.c genrtl.h
237 c-typeck.obj: c-typeck.c
238 dbxout.obj: dbxout.c insn-config.h
239 dwarfout.obj: dwarfout.c insn-config.h
240 dwarf2out.obj: dwarf2out.c insn-config.h
241 emit-rtl.obj: emit-rtl.c insn-config.h
242 except.obj: except.c insn-flags.h insn-codes.h insn-config.h
243 explow.obj: explow.c insn-flags.h insn-codes.h insn-config.h
244 expmed.obj: expmed.c insn-flags.h insn-codes.h insn-config.h
245 expr.obj: expr.c insn-flags.h insn-config.h
246 final.obj: final.c tm.h insn-attr.h insn-flags.h insn-codes.h insn-config.h
247 flow.obj: flow.c insn-config.h
248 function.obj: function.c insn-flags.h insn-codes.h insn-config.h insn-codes.h insn-config.h
249 genattrtab.obj: genattrtab.c insn-config.h
250 genextract.obj: genextract.c insn-config.h
251 global.obj: global.c insn-config.h
252 integrate.obj: integrate.c integrate.h insn-flags.h insn-config.h
253 jump.obj: jump.c insn-flags.h insn-config.h
254 local-alloc.obj: local-alloc.c insn-config.h
255 loop.obj: loop.c insn-flags.h insn-config.h
256 optabs.obj: optabs.c insn-flags.h insn-codes.h insn-config.h
257 print-rtl.obj: print-rtl.c
258 profile.obj: profile.c insn-flags.h insn-config.h
259 recog.obj: recog.c insn-attr.h insn-flags.h insn-codes.h insn-config.h
260 regclass.obj: regclass.c insn-config.h
261 reg-stack.obj: reg-stack.c insn-config.h
262 reload.obj: reload.c insn-codes.h insn-config.h
263 reload1.obj: reload1.c insn-flags.h insn-codes.h insn-config.h
264 reorg.obj: reorg.c insn-attr.h insn-flags.h insn-config.h
265 sched.obj: sched.c insn-attr.h insn-config.h
266 haifa-sched.obj: haifa-sched.c insn-attr.h insn-config.h
267 stmt.obj: stmt.c insn-flags.h insn-codes.h insn-config.h
268 stor-layout.obj: stor-layout.c
269 stupid.obj: stupid.c
270 toplev.obj: toplev.c insn-attr.h insn-config.h
271 unroll.obj: unroll.c insn-config.h
272
273 insn-attrtab.obj: insn-attrtab.c insn-attr.h insn-config.h
274 insn-output.obj: insn-output.c insn-attr.h insn-flags.h insn-codes.h
275 insn-emit.obj: insn-emit.c insn-flags.h insn-codes.h insn-config.h
276 insn-opinit.obj: insn-opinit.c insn-flags.h insn-codes.h insn-config.h
277 insn-output.obj: insn-config.h
278 insn-recog.obj: insn-config.h
279
280 varasm.obj: varasm.c tm.h
281 toplev.obj: toplev.c tm.h
282
283 cexp.c: cexp.y
284         $(BISON) $(BISON_FLAGS)/output=$@ $<
285 c-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
292 aux-output.c: [.config.$(ARCH)]$(ARCH).c
293         copy $< $@
294
295 expr.h: insn-codes.h
296 reload.h: insn-config.h
297 integrate.h: insn-config.h
298
299 config.h:
300         $$ @vmsconfig
301
302 cleancccp:
303         $$ purge
304         $(RM) cccp.obj;,cexp.obj;
305         $(RM) cpp.exe;
306
307 cleanlib:
308         $$ purge
309         $(RM) libgcc2.olb;
310
311 cleanlibplus:
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
321 clean:
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 #
367 distclean: 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