comparison osx_lib.mak @ 183:190ba98276b3

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