Skip to content

Commit 6871cb4

Browse files
committed
update makefiles for ddmd
1 parent a365e31 commit 6871cb4

File tree

2 files changed

+79
-439
lines changed

2 files changed

+79
-439
lines changed

src/posix.mak

Lines changed: 44 additions & 256 deletions
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,10 @@ endif
145145
ifdef ENABLE_DEBUG
146146
CFLAGS += -g -g3 -DDEBUG=1 -DUNITTEST
147147
DFLAGS += -g -debug
148-
else
148+
endif
149+
ifdef ENABLE_RELEASE
149150
CFLAGS += -O2
150-
DFLAGS += -O -inline
151+
DFLAGS += -O -release -inline
151152
endif
152153
ifdef ENABLE_PROFILING
153154
CFLAGS += -pg -fprofile-arcs -ftest-coverage
@@ -176,39 +177,25 @@ D_OBJC := 1
176177
endif
177178
endif
178179

179-
DMD_OBJS = \
180-
access.o attrib.o \
181-
cast.o \
182-
class.o \
183-
constfold.o cond.o \
184-
declaration.o dsymbol.o \
185-
enum.o expression.o func.o nogc.o \
186-
id.o \
187-
identifier.o impcnvtab.o import.o inifile.o init.o inline.o \
188-
lexer.o link.o mangle.o mars.o module.o mtype.o \
189-
cppmangle.o opover.o optimize.o \
190-
parse.o scope.o statement.o \
191-
struct.o template.o \
192-
version.o utf.o staticassert.o \
193-
entity.o doc.o macro.o \
194-
hdrgen.o delegatize.o interpret.o traits.o \
195-
builtin.o ctfeexpr.o clone.o aliasthis.o \
196-
arrayop.o json.o unittests.o \
197-
imphint.o argtypes.o apply.o sapply.o sideeffect.o \
198-
intrange.o canthrow.o target.o nspace.o errors.o \
199-
escape.o tokens.o globals.o
180+
181+
DMD_SRCS=$(addsuffix .d,access aggregate aliasthis apply argtypes arrayop \
182+
arraytypes attrib backend builtin canthrow clone complex cond constfold \
183+
cppmangle ctfeexpr dcast dclass declaration delegatize denum dimport \
184+
dinifile dinterpret dmacro dmangle dmodule doc dscope dstruct dsymbol \
185+
dtemplate dunittest dversion entity errors escape expression func \
186+
globals hdrgen id identifier impcnvtab imphint init inline intrange \
187+
json lexer lib link mars mtype nogc nspace opover optimize parse sapply \
188+
sideeffect statement staticassert target tokens traits utf visitor)
200189

201190
ifeq ($(D_OBJC),1)
202-
DMD_OBJS += objc.o
191+
DMD_SRCS += objc.d
203192
else
204-
DMD_OBJS += objc_stubs.o
193+
DMD_SRCS += objc_stubs.d
205194
endif
206195

207-
ROOT_OBJS = \
208-
rmem.o port.o man.o stringtable.o response.o \
209-
aav.o speller.o outbuffer.o object.o \
210-
filename.o file.o async.o checkedint.o \
211-
newdelete.o
196+
ROOT_SRCS = $(addsuffix .d,$(addprefix $(ROOT)/,aav array file filename \
197+
longdouble man outbuffer port response rmem rootobject speller \
198+
stringtable))
212199

213200
GLUE_OBJS = \
214201
glue.o msc.o s2ir.o todt.o e2ir.o tocsym.o \
@@ -248,43 +235,17 @@ else
248235
BACK_OBJS += elfobj.o
249236
endif
250237

251-
SRC = win32.mak posix.mak osmodel.mak \
252-
mars.c enum.c struct.c dsymbol.c import.c idgen.d impcnvgen.c \
253-
identifier.c mtype.c expression.c optimize.c template.h \
254-
template.c lexer.c declaration.c cast.c cond.h cond.c link.c \
255-
aggregate.h parse.c statement.c constfold.c version.h version.c \
256-
inifile.c module.c scope.c init.h init.c attrib.h \
257-
attrib.c opover.c class.c mangle.c func.c nogc.c inline.c \
258-
access.c complex_t.h \
259-
identifier.h parse.h \
260-
scope.h enum.h import.h mars.h module.h mtype.h dsymbol.h \
261-
declaration.h lexer.h expression.h statement.h \
262-
utf.h utf.c staticassert.h staticassert.c \
263-
entity.c \
264-
doc.h doc.c macro.h macro.c hdrgen.h hdrgen.c arraytypes.h \
265-
delegatize.c interpret.c traits.c cppmangle.c \
266-
builtin.c clone.c lib.h arrayop.c \
267-
aliasthis.h aliasthis.c json.h json.c unittests.c imphint.c \
268-
argtypes.c apply.c sapply.c sideeffect.c \
269-
intrange.h intrange.c canthrow.c target.c target.h \
270-
scanmscoff.c scanomf.c ctfe.h ctfeexpr.c \
271-
ctfe.h ctfeexpr.c visitor.h nspace.h nspace.c errors.h errors.c \
272-
escape.c tokens.h tokens.c globals.h globals.c objc.c objc.h objc_stubs.c
273-
274-
ROOT_SRC = $(ROOT)/root.h \
275-
$(ROOT)/array.h \
276-
$(ROOT)/rmem.h $(ROOT)/rmem.c $(ROOT)/port.h $(ROOT)/port.c \
277-
$(ROOT)/man.c $(ROOT)/newdelete.c \
278-
$(ROOT)/checkedint.h $(ROOT)/checkedint.c \
279-
$(ROOT)/stringtable.h $(ROOT)/stringtable.c \
280-
$(ROOT)/response.c $(ROOT)/async.h $(ROOT)/async.c \
281-
$(ROOT)/aav.h $(ROOT)/aav.c \
282-
$(ROOT)/longdouble.h $(ROOT)/longdouble.c \
283-
$(ROOT)/speller.h $(ROOT)/speller.c \
284-
$(ROOT)/outbuffer.h $(ROOT)/outbuffer.c \
285-
$(ROOT)/object.h $(ROOT)/object.c \
286-
$(ROOT)/filename.h $(ROOT)/filename.c \
287-
$(ROOT)/file.h $(ROOT)/file.c
238+
SRC = win32.mak posix.mak osmodel.mak aggregate.h aliasthis.h arraytypes.h \
239+
attrib.h complex_t.h cond.h ctfe.h ctfe.h declaration.h doc.h dsymbol.h \
240+
enum.h errors.h expression.h globals.h hdrgen.h identifier.h idgen.d \
241+
impcnvgen.c import.h init.h intrange.h json.h lexer.h lib.h macro.h \
242+
mars.h module.h mtype.h nspace.h objc.h parse.h scanmscoff.c scanomf.c \
243+
scope.h statement.h staticassert.h target.h template.h tokens.h utf.h \
244+
version.h visitor.h $(DMD_SRCS)
245+
246+
ROOT_SRC = $(addprefix $(ROOT)/,aav.h array.h checkedint.c checkedint.h file.h \
247+
filename.h longdouble.c longdouble.h newdelete.c object.c object.h \
248+
outbuffer.h port.h rmem.c rmem.h root.h speller.h stringtable.h)
288249

289250
GLUE_SRC = glue.c msc.c s2ir.c todt.c e2ir.c tocsym.c \
290251
toobj.c toctype.c tocvdebug.c toir.h toir.c \
@@ -319,39 +280,32 @@ TK_SRC = \
319280
$(TK)/filespec.h $(TK)/mem.h $(TK)/list.h $(TK)/vec.h \
320281
$(TK)/filespec.c $(TK)/mem.c $(TK)/vec.c $(TK)/list.c
321282

322-
DEPS = $(patsubst %.o,%.deps,$(DMD_OBJS) $(ROOT_OBJS) $(GLUE_OBJS) $(BACK_OBJS))
283+
DEPS = $(patsubst %.o,%.deps,$(DMD_OBJS) $(GLUE_OBJS) $(BACK_OBJS))
323284

324285
all: dmd
325286

326-
auto-tester-build: dmd checkwhitespace ddmd
287+
auto-tester-build: dmd checkwhitespace
327288
.PHONY: auto-tester-build
328289

329-
frontend.a: $(DMD_OBJS)
330-
$(AR) rcs frontend.a $(DMD_OBJS)
331-
332-
root.a: $(ROOT_OBJS)
333-
$(AR) rcs root.a $(ROOT_OBJS)
334-
335290
glue.a: $(GLUE_OBJS)
336291
$(AR) rcs glue.a $(GLUE_OBJS)
337292

338293
backend.a: $(BACK_OBJS)
339294
$(AR) rcs backend.a $(BACK_OBJS)
340295

341296
ifdef ENABLE_LTO
342-
dmd: $(DMD_OBJS) $(ROOT_OBJS) $(GLUE_OBJS) $(BACK_OBJS)
343-
$(HOST_CC) -o dmd $(MODEL_FLAG) $^ $(LDFLAGS)
297+
dmd: $(DMD_SRCS) $(ROOT_SRCS) newdelete.o $(GLUE_OBJS) $(BACK_OBJS) verstr.h
298+
CC=$(HOST_CC) $(HOST_DMD_RUN) -of$@ $(MODEL_FLAG) -vtls -J. -d $(DFLAGS) $(filter-out verstr.h,$^)
344299
else
345-
dmd: frontend.a root.a glue.a backend.a
346-
$(HOST_CC) -o dmd $(MODEL_FLAG) frontend.a root.a glue.a backend.a $(LDFLAGS)
300+
dmd: $(DMD_SRCS) $(ROOT_SRCS) newdelete.o glue.a backend.a verstr.h
301+
CC=$(HOST_CC) $(HOST_DMD_RUN) -of$@ $(MODEL_FLAG) -vtls -J. -d $(DFLAGS) $(filter-out verstr.h,$^)
347302
endif
348303

349304
clean:
350-
rm -f $(DMD_OBJS) $(ROOT_OBJS) $(GLUE_OBJS) $(BACK_OBJS) dmd optab.o id.o impcnvgen idgen id.c id.h \
351-
impcnvtab.d id.d impcnvtab.c optabgen debtab.c optab.c cdxxx.c elxxx.c fltables.c \
352-
tytab.c verstr.h core \
353-
*.cov *.deps *.gcda *.gcno *.a \
354-
$(GENSRC) $(MAGICPORT)
305+
rm -f $(GLUE_OBJS) $(BACK_OBJS) dmd optab.o id.o impcnvgen idgen id.d id.h \
306+
impcnvtab.{c,d} optabgen debtab.c optab.c cdxxx.c elxxx.c fltables.c \
307+
tytab.c git.ver core \
308+
*.cov *.deps *.gcda *.gcno *.a
355309
@[ ! -d ${PGO_DIR} ] || echo You should issue manually: rm -rf ${PGO_DIR}
356310

357311
######## Download and install the last dmd buildable without dmd
@@ -429,7 +383,7 @@ $(shell test \"$(VERSION)\" != "`cat verstr.h 2> /dev/null`" \
429383

430384
#########
431385

432-
$(DMD_OBJS) $(GLUE_OBJS) : $(idgen_output) $(impcnvgen_output)
386+
$(GLUE_OBJS) : $(idgen_output) $(impcnvgen_output)
433387
$(BACK_OBJS) : $(optabgen_output)
434388

435389

@@ -450,8 +404,6 @@ iasm.o: CFLAGS += -fexceptions
450404

451405
inifile.o: CFLAGS += -DSYSCONFDIR='"$(SYSCONFDIR)"'
452406

453-
mars.o: verstr.h
454-
455407
var.o: optab.c tytab.c
456408

457409

@@ -461,10 +413,6 @@ var.o: optab.c tytab.c
461413
# matching below.
462414
vpath %.c $(C)
463415

464-
$(DMD_OBJS): %.o: %.c posix.mak
465-
@echo " (CC) DMD_OBJS $<"
466-
$(CC) -c $(CFLAGS) $(DMD_FLAGS) $(MMD) $<
467-
468416
$(BACK_OBJS): %.o: %.c posix.mak
469417
@echo " (CC) BACK_OBJS $<"
470418
$(CC) -c $(CFLAGS) $(BACK_FLAGS) $(MMD) $<
@@ -473,7 +421,7 @@ $(GLUE_OBJS): %.o: %.c posix.mak
473421
@echo " (CC) GLUE_OBJS $<"
474422
$(CC) -c $(CFLAGS) $(GLUE_FLAGS) $(MMD) $<
475423

476-
$(ROOT_OBJS): %.o: $(ROOT)/%.c posix.mak
424+
newdelete.o: %.o: $(ROOT)/%.c posix.mak
477425
@echo " (CC) ROOT_OBJS $<"
478426
$(CC) -c $(CFLAGS) $(ROOT_FLAGS) $(MMD) $<
479427

@@ -492,185 +440,25 @@ install: all
492440

493441
######################################################
494442

495-
checkwhitespace:
496-
CC=$(HOST_CC) $(HOST_DMD_RUN) -run checkwhitespace $(SRC) $(GLUE_SRC) $(ROOT_SRC)
443+
checkwhitespace: $(HOST_DC)
444+
CC=$(HOST_CC) $(HOST_DC_RUN) -run checkwhitespace $(SRC) $(GLUE_SRC) $(ROOT_SRCS)
497445

498446
######################################################
499447

500448
gcov:
501-
gcov access.c
502-
gcov aliasthis.c
503-
gcov apply.c
504-
gcov arrayop.c
505-
gcov attrib.c
506-
gcov builtin.c
507-
gcov canthrow.c
508-
gcov cast.c
509-
gcov class.c
510-
gcov clone.c
511-
gcov cond.c
512-
gcov constfold.c
513-
gcov declaration.c
514-
gcov delegatize.c
515-
gcov doc.c
516-
gcov dsymbol.c
517-
gcov e2ir.c
518-
gcov eh.c
519-
gcov entity.c
520-
gcov enum.c
521-
gcov expression.c
522-
gcov func.c
523-
gcov nogc.c
524-
gcov glue.c
525-
gcov iasm.c
526-
gcov identifier.c
527-
gcov imphint.c
528-
gcov import.c
529-
gcov inifile.c
530-
gcov init.c
531-
gcov inline.c
532-
gcov interpret.c
533-
gcov ctfeexpr.c
534-
gcov irstate.c
535-
gcov json.c
536-
gcov lexer.c
537-
ifeq (osx,$(OS))
538-
gcov libmach.c
539-
else
540-
gcov libelf.c
541-
endif
542-
gcov link.c
543-
gcov macro.c
544-
gcov mangle.c
545-
gcov mars.c
546-
gcov module.c
547-
gcov msc.c
548-
gcov mtype.c
549-
gcov nspace.c
550-
ifeq ($(D_OBJC),1)
551-
gcov objc.c
552-
gcov objc_glue.c
553-
else
554-
gcov objc_stubs.c
555-
gcov objc_glue_stubs.c
556-
endif
557-
gcov opover.c
558-
gcov optimize.c
559-
gcov parse.c
560-
gcov scope.c
561-
gcov sideeffect.c
562-
gcov statement.c
563-
gcov staticassert.c
564-
gcov s2ir.c
565-
gcov struct.c
566-
gcov template.c
567-
gcov tk.c
568-
gcov tocsym.c
569-
gcov todt.c
570-
gcov toobj.c
571-
gcov toctype.c
572-
gcov toelfdebug.c
573-
gcov typinf.c
574-
gcov utf.c
575-
gcov version.c
576-
gcov intrange.c
577-
gcov target.c
578-
579-
# gcov hdrgen.c
580-
# gcov tocvdebug.c
449+
gcov $(filter %.c,$(SRC) $(GLUE_SRC))
581450

582451
######################################################
583452

584453
zip:
585454
-rm -f dmdsrc.zip
586-
zip dmdsrc $(SRC) $(ROOT_SRC) $(GLUE_SRC) $(BACK_SRC) $(TK_SRC)
455+
zip dmdsrc $(SRC) $(ROOT_SRCS) $(GLUE_SRC) $(BACK_SRC) $(TK_SRC)
587456

588457
######################################################
589458

590459
../changelog.html: ../changelog.dd
591460
$(HOST_DMD_RUN) -Df$@ $<
592461

593-
############################# DDMD stuff ############################
594-
595-
MAGICPORTDIR = magicport
596-
MAGICPORTSRC = \
597-
$(MAGICPORTDIR)/magicport2.d $(MAGICPORTDIR)/ast.d \
598-
$(MAGICPORTDIR)/scanner.d $(MAGICPORTDIR)/tokens.d \
599-
$(MAGICPORTDIR)/parser.d $(MAGICPORTDIR)/dprinter.d \
600-
$(MAGICPORTDIR)/typenames.d $(MAGICPORTDIR)/visitor.d \
601-
$(MAGICPORTDIR)/namer.d
602-
603-
MAGICPORT = $(MAGICPORTDIR)/magicport2
604-
605-
$(MAGICPORT) : $(MAGICPORTSRC)
606-
CC=$(HOST_CC) $(HOST_DMD_RUN) -of$(MAGICPORT) $(MAGICPORTSRC)
607-
608-
GENSRC=access.d aggregate.d aliasthis.d apply.d \
609-
argtypes.d arrayop.d arraytypes.d \
610-
attrib.d builtin.d canthrow.d dcast.d \
611-
dclass.d clone.d cond.d constfold.d \
612-
cppmangle.d ctfeexpr.d declaration.d \
613-
delegatize.d doc.d dsymbol.d \
614-
denum.d expression.d func.d \
615-
hdrgen.d identifier.d imphint.d \
616-
dimport.d dinifile.d inline.d init.d \
617-
dinterpret.d json.d lexer.d link.d \
618-
dmacro.d dmangle.d mars.d \
619-
dmodule.d mtype.d opover.d optimize.d \
620-
parse.d sapply.d dscope.d sideeffect.d \
621-
statement.d staticassert.d dstruct.d \
622-
target.d dtemplate.d traits.d dunittest.d \
623-
utf.d dversion.d visitor.d lib.d \
624-
nogc.d nspace.d errors.d tokens.d \
625-
globals.d escape.d \
626-
$(ROOT)/aav.d $(ROOT)/outbuffer.d $(ROOT)/stringtable.d \
627-
$(ROOT)/file.d $(ROOT)/filename.d $(ROOT)/speller.d \
628-
$(ROOT)/man.d $(ROOT)/response.d
629-
630-
MANUALSRC= \
631-
intrange.d complex.d \
632-
entity.d backend.d \
633-
$(ROOT)/array.d $(ROOT)/longdouble.d \
634-
$(ROOT)/rootobject.d $(ROOT)/port.d \
635-
$(ROOT)/rmem.d id.d impcnvtab.d
636-
637-
ifeq ($(D_OBJC),1)
638-
GENSRC += objc.d
639-
else
640-
MANUALSRC += objc_stubs.d
641-
endif
642-
643-
mars.d : $(SRC) $(ROOT_SRC) magicport.json $(MAGICPORT)
644-
$(MAGICPORT) . .
645-
646-
DSRC= $(GENSRC) $(MANUALSRC)
647-
648-
ddmd: mars.d $(MANUALSRC) newdelete.o glue.a backend.a verstr.h
649-
CC=$(HOST_CC) $(HOST_DMD_RUN) $(MODEL_FLAG) $(DSRC) -ofddmd newdelete.o glue.a backend.a -vtls -J. -d $(DFLAGS)
650-
651-
DELSRCS=access.c aliasthis.c apply.c argtypes.c arrayop.c attrib.c builtin.c \
652-
canthrow.c cast.c class.c clone.c cond.c constfold.c cppmangle.c \
653-
ctfeexpr.c declaration.c delegatize.c doc.c dsymbol.c entity.c enum.c \
654-
errors.c escape.c expression.c func.c globals.c hdrgen.c identifier.c \
655-
imphint.c import.c inifile.c init.c inline.c interpret.c intrange.c \
656-
json.c lexer.c link.c macro.c mangle.c mars.c module.c mtype.c nogc.c \
657-
nspace.c objc.c objc_stubs.c opover.c optimize.c parse.c sapply.c \
658-
scope.c sideeffect.c statement.c staticassert.c struct.c target.c \
659-
template.c tokens.c traits.c unittests.c utf.c version.c $(addprefix \
660-
$(ROOT)/,aav.c async.c async.h checkedint.c checkedint.h file.c \
661-
filename.c longdouble.c man.c object.c outbuffer.c port.c response.c \
662-
rmem.c speller.c stringtable.c)
663-
664-
convert_tree : $(SRC) $(ROOT_SRC) magicport.json $(MAGICPORT)
665-
$(MAGICPORT) . .
666-
rm $(DELSRCS)
667-
rm $(MAGICPORT) $(MAGICPORTDIR)/*.o
668-
669-
convert_index : $(SRC) $(ROOT_SRC) magicport.json $(MAGICPORT)
670-
$(MAGICPORT) . .
671-
git add $(GENSRC) objc.d
672-
git rm $(DELSRCS)
673-
674462
#############################
675463

676464
.DELETE_ON_ERROR: # GNU Make directive (delete output files on error)

0 commit comments

Comments
 (0)