root/osx_lib.mak

Revision 184:9f4e5ac4f0a3, 13.1 kB (checked in by Jacob Carlborg <doob@me.com>, 2 years ago)

One step closer to building on posix.

There are two missing symbols so it actually doesn't build
but previously it didn't build correctly anyway.

Line 
1 C=backend
2 TK=tk
3 ROOT=root
4
5 CC=g++ -m32
6 #CC=/usr/bin/i686-unknown-linux-gnu-g++
7
8 #OPT=-g -g3
9 #OPT=-O2
10
11 #COV=-fprofile-arcs -ftest-coverage
12
13 GFLAGS = -Wno-deprecated -D__near= -D__pascal= -fno-exceptions -g -DDEBUG=1 $(COV)
14 #GFLAGS = -Wno-deprecated -D__near= -D__pascal= -fno-exceptions -O2
15
16 CFLAGS = $(GFLAGS) -I$(ROOT) -D__I86__=1 -DMARS=1 -DTARGET_OSX=1 -D_DH
17 MFLAGS = $(GFLAGS) -I$C -I$(TK) -D__I86__=1 -DMARS=1 -DTARGET_OSX=1 -D_DH
18
19 CH= $C/cc.h $C/global.h $C/parser.h $C/oper.h $C/code.h $C/type.h \
20     $C/dt.h $C/cgcv.h $C/el.h $C/iasm.h
21 TOTALH=
22
23 BACKEND_OBJS = array.o bcomplex.o blockopt.o code.o cg.o cg87.o \
24     cgcod.o cgcs.o cgcv.o cgelem.o cgen.o cgreg.o \
25     cgsched.o cod1.o cod2.o cod3.o cod4.o cod5.o \
26     dchar.o debug.o dt.o ee.o el.o dwarf.o \
27     evalu8.o gdag.o gflow.o glocal.o gloop.o gnuc.o \
28     go.o gother.o html.o lstring.o rmem.o \
29     nteh.o os.o out.o outbuf.o ptrntab.o \
30     root.o rtlsym.o stringtable.o csymbol.o type.o var.o \
31     strtold.o toelfdebug.o aa.o ti_achar.o man.o port.o \
32     response.o async.o \
33     libmach.o machobj.o
34
35 FRONTEND_OBJS = access.o attrib.o bit.o cast.o class.o constfold.o \
36     irstate.o cond.o declaration.o dsymbol.o dump.o e2ir.o \
37     eh.o enum.o expression.o func.o glue.o id.o \
38     identifier.o impcnvtab.o import.o inifile.o init.o inline.o \
39     lexer.o link.o mangle.o mars.o module.o msc.o \
40     mtype.o opover.o optimize.o parse.o ph.o s2ir.o \
41     scope.o statement.o struct.o template.o tk.o tocsym.o \
42     todt.o typinf.o util.o version.o utf.o staticassert.o \
43     unialpha.o toobj.o toctype.o entity.o doc.o macro.o \
44     hdrgen.o delegatize.o toir.o interpret.o traits.o builtin.o \
45     clone.o aliasthis.o arrayop.o json.o iasm.o cppmangle.o
46
47 SRC = win32.mak linux.mak osx.mak freebsd.mak solaris.mak \
48     mars.c enum.c struct.c dsymbol.c import.c idgen.c impcnvgen.c \
49     identifier.c mtype.c expression.c optimize.c template.h \
50     template.c lexer.c declaration.c cast.c cond.h cond.c link.c \
51     aggregate.h parse.c statement.c constfold.c version.h version.c \
52     inifile.c iasm.c module.c scope.c dump.c init.h init.c attrib.h \
53     attrib.c opover.c class.c mangle.c bit.c tocsym.c func.c inline.c \
54     access.c complex_t.h irstate.h irstate.c glue.c msc.c ph.c tk.c \
55     s2ir.c todt.c e2ir.c util.c identifier.h parse.h objfile.h \
56     scope.h enum.h import.h mars.h module.h mtype.h dsymbol.h \
57     declaration.h lexer.h expression.h irstate.h statement.h eh.c \
58     utf.h utf.c staticassert.h staticassert.c unialpha.c \
59     typinf.c toobj.c toctype.c tocvdebug.c toelfdebug.c entity.c \
60     doc.h doc.c macro.h macro.c hdrgen.h hdrgen.c arraytypes.h \
61     delegatize.c toir.h toir.c interpret.c traits.c cppmangle.c \
62     builtin.c clone.c lib.h libomf.c libelf.c libmach.c arrayop.c \
63     aliasthis.h aliasthis.c json.h json.c \
64     $C/cdef.h $C/cc.h $C/oper.h $C/ty.h $C/optabgen.c \
65     $C/global.h $C/parser.h $C/code.h $C/type.h $C/dt.h $C/cgcv.h \
66     $C/el.h $C/iasm.h $C/rtlsym.h $C/html.h \
67     $C/bcomplex.c $C/blockopt.c $C/cg.c $C/cg87.c \
68     $C/cgcod.c $C/cgcs.c $C/cgcv.c $C/cgelem.c $C/cgen.c $C/cgobj.c \
69     $C/cgreg.c $C/var.c $C/strtold.c \
70     $C/cgsched.c $C/cod1.c $C/cod2.c $C/cod3.c $C/cod4.c $C/cod5.c \
71     $C/code.c $C/symbol.c $C/debug.c $C/dt.c $C/ee.c $C/el.c \
72     $C/evalu8.c $C/go.c $C/gflow.c $C/gdag.c \
73     $C/gother.c $C/glocal.c $C/gloop.c $C/html.c $C/newman.c \
74     $C/nteh.c $C/os.c $C/out.c $C/outbuf.c $C/ptrntab.c $C/rtlsym.c \
75     $C/type.c $C/melf.h $C/mach.h $C/bcomplex.h \
76     $C/cdeflnx.h $C/outbuf.h $C/token.h $C/tassert.h \
77     $C/elfobj.c $C/cv4.h $C/dwarf2.h $C/cpp.h $C/exh.h $C/go.h \
78     $C/dwarf.c $C/dwarf.h $C/aa.h $C/aa.c $C/tinfo.h $C/ti_achar.c \
79     $C/machobj.c \
80     $(TK)/filespec.h $(TK)/mem.h $(TK)/list.h $(TK)/vec.h \
81     $(TK)/filespec.c $(TK)/mem.c $(TK)/vec.c $(TK)/list.c \
82     $(ROOT)/dchar.h $(ROOT)/dchar.c $(ROOT)/lstring.h \
83     $(ROOT)/lstring.c $(ROOT)/root.h $(ROOT)/root.c $(ROOT)/array.c \
84     $(ROOT)/rmem.h $(ROOT)/rmem.c $(ROOT)/port.h $(ROOT)/port.c \
85     $(ROOT)/gnuc.h $(ROOT)/gnuc.c $(ROOT)/man.c \
86     $(ROOT)/stringtable.h $(ROOT)/stringtable.c \
87     $(ROOT)/response.c $(ROOT)/async.h $(ROOT)/async.c
88
89 DMD_OBJS = $(FRONTEND_OBJS) $(BACKEND_OBJS)
90
91 all: dmd
92
93 dmd: id.o optabgen $(DMD_OBJS)
94     ar rs libdmd.a $(BACKEND_OBJS) msc.o tk.o util.o entity.o ph.o eh.o
95
96 clean:
97     rm -f $(DMD_OBJS) dmd optab.o id.o impcnvgen idgen id.c id.h \
98     impcnvtab.c optabgen debtab.c optab.c cdxxx.c elxxx.c fltables.c \
99     tytab.c core \
100     *.cov *.gcda *.gcno
101
102 ######## optabgen generates some source
103
104 optabgen: $C/optabgen.c $C/cc.h $C/oper.h
105     $(CC) $(MFLAGS) $< -o optabgen
106     ./optabgen
107
108 debtab.c optab.c cdxxx.c elxxx.c fltables.c tytab.c : optabgen
109     ./optabgen
110
111 ######## idgen generates some source
112
113 id.h id.c : idgen
114     ./idgen
115
116 idgen : idgen.c
117     $(CC) idgen.c -o idgen
118
119 id.o : id.h id.c
120     $(CC) -c $(CFLAGS) id.c
121
122 ######### impcnvgen generates some source
123
124 impcnvtab.c : impcnvgen
125     ./impcnvgen
126
127 impcnvgen : mtype.h impcnvgen.c
128     $(CC) $(CFLAGS) impcnvgen.c -o impcnvgen
129
130 #########
131
132 aa.o: $C/aa.h $C/tinfo.h $C/aa.c
133     $(CC) -c $(MFLAGS) -I. $C/aa.c
134
135 access.o: access.c
136     $(CC) -c $(CFLAGS) $<
137
138 aliasthis.o: aliasthis.c
139     $(CC) -c $(CFLAGS) $<
140
141 array.o: $(ROOT)/array.c
142     $(CC) -c $(GFLAGS) -I$(ROOT) $<
143
144 arrayop.o: arrayop.c
145     $(CC) -c $(CFLAGS) $<
146
147 async.o: $(ROOT)/async.c
148     $(CC) -c $(GFLAGS) -I$(ROOT) $<
149
150 attrib.o: attrib.c
151     $(CC) -c $(CFLAGS) $<
152
153 bcomplex.o: $C/bcomplex.c
154     $(CC) -c $(MFLAGS) $C/bcomplex.c
155
156 bit.o: expression.h bit.c
157     $(CC) -c -I$(ROOT) $(MFLAGS) bit.c
158
159 blockopt.o: $C/blockopt.c
160     $(CC) -c $(MFLAGS) $C/blockopt.c
161
162 builtin.o: builtin.c
163     $(CC) -c $(CFLAGS) $<
164
165 cast.o: cast.c
166     $(CC) -c $(CFLAGS) $<
167
168 cg.o: fltables.c $C/cg.c
169     $(CC) -c $(MFLAGS) -I. $C/cg.c
170
171 cg87.o: $C/cg87.c
172     $(CC) -c $(MFLAGS) $<
173
174 cgcod.o: $C/cgcod.c
175     $(CC) -c $(MFLAGS) -I. $<
176
177 cgcs.o: $C/cgcs.c
178     $(CC) -c $(MFLAGS) $<
179
180 cgcv.o: $C/cgcv.c
181     $(CC) -c $(MFLAGS) $<
182
183 cgelem.o: $C/rtlsym.h $C/cgelem.c
184     $(CC) -c $(MFLAGS) -I. $C/cgelem.c
185
186 cgen.o: $C/rtlsym.h $C/cgen.c
187     $(CC) -c $(MFLAGS) $C/cgen.c
188
189 cgobj.o: $C/cgobj.c
190     $(CC) -c $(MFLAGS) $<
191
192 cgreg.o: $C/cgreg.c
193     $(CC) -c $(MFLAGS) $<
194
195 cgsched.o: $C/rtlsym.h $C/cgsched.c
196     $(CC) -c $(MFLAGS) $C/cgsched.c
197
198 class.o: class.c
199     $(CC) -c $(CFLAGS) $<
200
201 clone.o: clone.c
202     $(CC) -c $(CFLAGS) $<
203
204 cod1.o: $C/rtlsym.h $C/cod1.c
205     $(CC) -c $(MFLAGS) $C/cod1.c
206
207 cod2.o: $C/rtlsym.h $C/cod2.c
208     $(CC) -c $(MFLAGS) $C/cod2.c
209
210 cod3.o: $C/rtlsym.h $C/cod3.c
211     $(CC) -c $(MFLAGS) $C/cod3.c
212
213 cod4.o: $C/cod4.c
214     $(CC) -c $(MFLAGS) $<
215
216 cod5.o: $C/cod5.c
217     $(CC) -c $(MFLAGS) $<
218
219 code.o: $C/code.c
220     $(CC) -c $(MFLAGS) $<
221
222 constfold.o: constfold.c
223     $(CC) -c $(CFLAGS) $<
224
225 irstate.o: irstate.h irstate.c
226     $(CC) -c $(MFLAGS) -I$(ROOT) irstate.c
227
228 csymbol.o : $C/symbol.c
229     $(CC) -c $(MFLAGS) $C/symbol.c -o csymbol.o
230
231 dchar.o: $(ROOT)/dchar.c
232     $(CC) -c $(GFLAGS) -I$(ROOT) $<
233
234 cond.o: cond.c
235     $(CC) -c $(CFLAGS) $<
236
237 cppmangle.o: cppmangle.c
238     $(CC) -c $(CFLAGS) $<
239
240 debug.o: $C/debug.c
241     $(CC) -c $(MFLAGS) -I. $<
242
243 declaration.o: declaration.c
244     $(CC) -c $(CFLAGS) $<
245
246 delegatize.o: delegatize.c
247     $(CC) -c $(CFLAGS) $<
248
249 doc.o: doc.c
250     $(CC) -c $(CFLAGS) $<
251
252 dsymbol.o: dsymbol.c
253     $(CC) -c $(CFLAGS) $<
254
255 dt.o: $C/dt.h $C/dt.c
256     $(CC) -c $(MFLAGS) $C/dt.c
257
258 dump.o: dump.c
259     $(CC) -c $(CFLAGS) $<
260
261 dwarf.o: $C/dwarf.h $C/dwarf.c
262     $(CC) -c $(MFLAGS) -I. $C/dwarf.c
263
264 e2ir.o: $C/rtlsym.h expression.h toir.h e2ir.c
265     $(CC) -c -I$(ROOT) $(MFLAGS) e2ir.c
266
267 ee.o: $C/ee.c
268     $(CC) -c $(MFLAGS) $<
269
270 eh.o : $C/cc.h $C/code.h $C/type.h $C/dt.h eh.c
271     $(CC) -c $(MFLAGS) eh.c
272
273 el.o: $C/rtlsym.h $C/el.h $C/el.c
274     $(CC) -c $(MFLAGS) $C/el.c
275
276 elfobj.o: $C/elfobj.c
277     $(CC) -c $(MFLAGS) $<
278
279 entity.o: entity.c
280     $(CC) -c $(CFLAGS) $<
281
282 enum.o: enum.c
283     $(CC) -c $(CFLAGS) $<
284
285 evalu8.o: $C/evalu8.c
286     $(CC) -c $(MFLAGS) $<
287
288 expression.o: expression.c
289     $(CC) -c $(CFLAGS) $<
290
291 func.o: func.c
292     $(CC) -c $(CFLAGS) $<
293
294 gdag.o: $C/gdag.c
295     $(CC) -c $(MFLAGS) $<
296
297 gflow.o: $C/gflow.c
298     $(CC) -c $(MFLAGS) $<
299
300 #globals.o: globals.c
301 #   $(CC) -c $(CFLAGS) $<
302
303 glocal.o: $C/rtlsym.h $C/glocal.c
304     $(CC) -c $(MFLAGS) $C/glocal.c
305
306 gloop.o: $C/gloop.c
307     $(CC) -c $(MFLAGS) $<
308
309 glue.o: $(CH) $(TOTALH) $C/rtlsym.h mars.h module.h glue.c
310     $(CC) -c $(MFLAGS) -I$(ROOT) glue.c
311
312 gnuc.o: $(ROOT)/gnuc.h $(ROOT)/gnuc.c
313     $(CC) -c $(GFLAGS) $(ROOT)/gnuc.c
314
315 go.o: $C/go.c
316     $(CC) -c $(MFLAGS) $<
317
318 gother.o: $C/gother.c
319     $(CC) -c $(MFLAGS) $<
320
321 hdrgen.o: hdrgen.c
322     $(CC) -c $(CFLAGS) $<
323
324 html.o: $(CH) $(TOTALH) $C/html.h $C/html.c
325     $(CC) -c -I$(ROOT) $(MFLAGS) $C/html.c
326
327 iasm.o : $(CH) $(TOTALH) $C/iasm.h iasm.c
328     $(CC) -c $(MFLAGS) -I$(ROOT) iasm.c
329
330 identifier.o: identifier.c
331     $(CC) -c $(CFLAGS) $<
332
333 impcnvtab.o: mtype.h impcnvtab.c
334     $(CC) -c $(CFLAGS) -I$(ROOT) impcnvtab.c
335
336 import.o: import.c
337     $(CC) -c $(CFLAGS) $<
338
339 inifile.o: inifile.c
340     $(CC) -c $(CFLAGS) $<
341
342 init.o: init.c
343     $(CC) -c $(CFLAGS) $<
344
345 inline.o: inline.c
346     $(CC) -c $(CFLAGS) $<
347
348 interpret.o: interpret.c
349     $(CC) -c $(CFLAGS) $<
350
351 json.o: json.c
352     $(CC) -c $(CFLAGS) $<
353
354 lexer.o: lexer.c
355     $(CC) -c $(CFLAGS) $<
356
357 libelf.o: libelf.c $C/melf.h
358     $(CC) -c $(CFLAGS) -I$C $<
359
360 libmach.o: libmach.c $C/mach.h
361     $(CC) -c $(CFLAGS) -I$C $<
362
363 link.o: link.c
364     $(CC) -c $(CFLAGS) $<
365
366 lstring.o: $(ROOT)/lstring.c
367     $(CC) -c $(GFLAGS) -I$(ROOT) $<
368
369 machobj.o: $C/machobj.c
370     $(CC) -c $(MFLAGS) -I. $<
371
372 macro.o: macro.c
373     $(CC) -c $(CFLAGS) $<
374
375 man.o: $(ROOT)/man.c
376     $(CC) -c $(GFLAGS) -I$(ROOT) $<
377
378 mangle.o: mangle.c
379     $(CC) -c $(CFLAGS) $<
380
381 mars.o: mars.c
382     $(CC) -c $(CFLAGS) $<
383
384 rmem.o: $(ROOT)/rmem.c
385     $(CC) -c $(GFLAGS) -I$(ROOT) $(ROOT)/rmem.c
386
387 module.o: $(TOTALH) $C/html.h module.c
388     $(CC) -c $(CFLAGS) -I$C module.c
389
390 msc.o: $(CH) mars.h msc.c
391     $(CC) -c $(MFLAGS) msc.c
392
393 mtype.o: mtype.c
394     $(CC) -c $(CFLAGS) $<
395
396 nteh.o: $C/rtlsym.h $C/nteh.c
397     $(CC) -c $(MFLAGS) $C/nteh.c
398
399 opover.o: opover.c
400     $(CC) -c $(CFLAGS) $<
401
402 optimize.o: optimize.c
403     $(CC) -c $(CFLAGS) $<
404
405 os.o: $C/os.c
406     $(CC) -c $(MFLAGS) $<
407
408 out.o: $C/out.c
409     $(CC) -c $(MFLAGS) $<
410
411 outbuf.o : $C/outbuf.h $C/outbuf.c
412     $(CC) -c $(MFLAGS) $C/outbuf.c
413
414 parse.o: parse.c
415     $(CC) -c $(CFLAGS) $<
416
417 ph.o: ph.c
418     $(CC) -c $(MFLAGS) $<
419
420 port.o: $(ROOT)/port.c
421     $(CC) -c $(GFLAGS) -I$(ROOT) $<
422
423 ptrntab.o: $C/iasm.h $C/ptrntab.c
424     $(CC) -c $(MFLAGS) $C/ptrntab.c
425
426 response.o: $(ROOT)/response.c
427     $(CC) -c $(GFLAGS) -I$(ROOT) $<
428
429 root.o: $(ROOT)/root.c
430     $(CC) -c $(GFLAGS) -I$(ROOT) $<
431
432 rtlsym.o: $C/rtlsym.h $C/rtlsym.c
433     $(CC) -c $(MFLAGS) $C/rtlsym.c
434
435 s2ir.o : $C/rtlsym.h statement.h s2ir.c
436     $(CC) -c -I$(ROOT) $(MFLAGS) s2ir.c
437
438 scope.o: scope.c
439     $(CC) -c $(CFLAGS) $<
440
441 statement.o: statement.c
442     $(CC) -c $(CFLAGS) $<
443
444 staticassert.o: staticassert.h staticassert.c
445     $(CC) -c $(CFLAGS) staticassert.c
446
447 stringtable.o: $(ROOT)/stringtable.c
448     $(CC) -c $(GFLAGS) -I$(ROOT) $<
449
450 strtold.o: $C/strtold.c
451     gcc -m32 -c $C/strtold.c
452
453 struct.o: struct.c
454     $(CC) -c $(CFLAGS) $<
455
456 template.o: template.c
457     $(CC) -c $(CFLAGS) $<
458
459 ti_achar.o: $C/tinfo.h $C/ti_achar.c
460     $(CC) -c $(MFLAGS) -I. $C/ti_achar.c
461
462 tk.o: tk.c
463     $(CC) -c $(MFLAGS) tk.c
464
465 tocsym.o: $(CH) $(TOTALH) mars.h module.h tocsym.c
466     $(CC) -c $(MFLAGS) -I$(ROOT) tocsym.c
467
468 toctype.o: $(CH) $(TOTALH) $C/rtlsym.h mars.h module.h toctype.c
469     $(CC) -c $(MFLAGS) -I$(ROOT) toctype.c
470
471 todt.o : mtype.h expression.h $C/dt.h todt.c
472     $(CC) -c -I$(ROOT) $(MFLAGS) todt.c
473
474 toelfdebug.o: $(CH) $(TOTALH) mars.h toelfdebug.c
475     $(CC) -c $(MFLAGS) -I$(ROOT) toelfdebug.c
476
477 toir.o: $C/rtlsym.h expression.h toir.h toir.c
478     $(CC) -c -I$(ROOT) $(MFLAGS) toir.c
479
480 toobj.o: $(CH) $(TOTALH) mars.h module.h toobj.c
481     $(CC) -c $(MFLAGS) -I$(ROOT) toobj.c
482
483 traits.o: $(TOTALH) traits.c
484     $(CC) -c $(CFLAGS) $<
485
486 type.o: $C/type.c
487     $(CC) -c $(MFLAGS) $C/type.c
488
489 typinf.o: $(CH) $(TOTALH) mars.h module.h mtype.h typinf.c
490     $(CC) -c $(MFLAGS) -I$(ROOT) typinf.c
491
492 util.o: util.c
493     $(CC) -c $(MFLAGS) $<
494
495 utf.o: utf.h utf.c
496     $(CC) -c $(CFLAGS) utf.c
497
498 unialpha.o: unialpha.c
499     $(CC) -c $(CFLAGS) $<
500
501 var.o: $C/var.c optab.c
502     $(CC) -c $(MFLAGS) -I. $C/var.c
503
504 version.o: version.c
505     $(CC) -c $(CFLAGS) $<
506
507 ######################################################
508
509 gcov:
510     gcov access.c
511     gcov aliasthis.c
512     gcov arrayop.c
513     gcov attrib.c
514     gcov bit.c
515     gcov builtin.c
516     gcov cast.c
517     gcov class.c
518     gcov clone.c
519     gcov cond.c
520     gcov constfold.c
521     gcov declaration.c
522     gcov delegatize.c
523     gcov doc.c
524     gcov dsymbol.c
525     gcov dump.c
526     gcov e2ir.c
527     gcov eh.c
528     gcov entity.c
529     gcov enum.c
530     gcov expression.c
531     gcov func.c
532     gcov glue.c
533     gcov iasm.c
534     gcov identifier.c
535     gcov imphint.c
536     gcov import.c
537     gcov inifile.c
538     gcov init.c
539     gcov inline.c
540     gcov interpret.c
541     gcov irstate.c
542     gcov json.c
543     gcov lexer.c
544     gcov libmach.c
545     gcov link.c
546     gcov macro.c
547     gcov mangle.c
548     gcov mars.c
549     gcov module.c
550     gcov msc.c
551     gcov mtype.c
552     gcov opover.c
553     gcov optimize.c
554     gcov parse.c
555     gcov ph.c
556     gcov scope.c
557     gcov statement.c
558     gcov staticassert.c
559     gcov s2ir.c
560     gcov struct.c
561     gcov template.c
562     gcov tk.c
563     gcov tocsym.c
564     gcov todt.c
565     gcov toobj.c
566     gcov toctype.c
567     gcov toelfdebug.c
568     gcov typinf.c
569     gcov unialpha.c
570     gcov utf.c
571     gcov util.c
572     gcov version.c
573
574 #   gcov hdrgen.c
575 #   gcov tocvdebug.c
576
577 ######################################################
578
579 zip:
580     -rm -f dmdsrc.zip
581     zip dmdsrc $(SRC)
Note: See TracBrowser for help on using the browser.