use autogenerated make dependencies

- write .deps files during compilation
- include .deps files in makefile
This commit is contained in:
Martin Nowak 2013-12-20 03:05:27 +01:00
parent 84d93365b2
commit 0678c4f8a3
2 changed files with 60 additions and 57 deletions

1
.gitignore vendored
View file

@ -1,4 +1,5 @@
*.[oa] *.[oa]
*.deps
src/cdxxx.c src/cdxxx.c
src/debtab.c src/debtab.c
src/dmd src/dmd

View file

@ -41,20 +41,18 @@ GIT=git
#PROFILE=-pg #PROFILE=-pg
WARNINGS=-Wno-deprecated -Wstrict-aliasing WARNINGS=-Wno-deprecated -Wstrict-aliasing
MMD=-MMD -MF $(basename $@).deps
ifneq (,$(DEBUG)) ifneq (,$(DEBUG))
GFLAGS:=$(WARNINGS) -D__pascal= -fno-exceptions -g -g3 -DDEBUG=1 -DUNITTEST $(COV) $(PROFILE) GFLAGS=$(WARNINGS) -D__pascal= -fno-exceptions -g -g3 -DDEBUG=1 -DUNITTEST $(COV) $(PROFILE) $(MMD)
else else
GFLAGS:=$(WARNINGS) -D__pascal= -fno-exceptions -O2 $(PROFILE) GFLAGS=$(WARNINGS) -D__pascal= -fno-exceptions -O2 $(PROFILE) $(MMD)
endif endif
OS_UPCASE:=$(shell echo $(OS) | tr '[a-z]' '[A-Z]') OS_UPCASE:=$(shell echo $(OS) | tr '[a-z]' '[A-Z]')
CFLAGS = $(GFLAGS) -I$(ROOT) -DMARS=1 -DTARGET_$(OS_UPCASE)=1 -DDM_TARGET_CPU_$(TARGET_CPU)=1 CFLAGS = $(GFLAGS) -I$(ROOT) -DMARS=1 -DTARGET_$(OS_UPCASE)=1 -DDM_TARGET_CPU_$(TARGET_CPU)=1
MFLAGS = $(GFLAGS) -I$C -I$(TK) -I$(ROOT) -DMARS=1 -DTARGET_$(OS_UPCASE)=1 -DDM_TARGET_CPU_$(TARGET_CPU)=1 -DDMDV2=1 MFLAGS = $(GFLAGS) -I$C -I$(TK) -I$(ROOT) -DMARS=1 -DTARGET_$(OS_UPCASE)=1 -DDM_TARGET_CPU_$(TARGET_CPU)=1 -DDMDV2=1
CH= $C/cc.h $C/global.h $C/oper.h $C/code.h $C/type.h \
$C/dt.h $C/cgcv.h $C/el.h $C/obj.h $(TARGET_CH)
DMD_OBJS = \ DMD_OBJS = \
access.o attrib.o bcomplex.o blockopt.o \ access.o attrib.o bcomplex.o blockopt.o \
cast.o code.o cg.o cgcod.o cgcs.o cgelem.o cgen.o \ cast.o code.o cg.o cgcod.o cgcs.o cgelem.o cgen.o \
@ -143,6 +141,8 @@ SRC = win32.mak posix.mak osmodel.mak \
$(TARGET_CH) $(TARGET_CH)
DMD_DEPS:=$(DMD_OBJS:.o=.deps)
all: dmd all: dmd
dmd: $(DMD_OBJS) dmd: $(DMD_OBJS)
@ -152,7 +152,7 @@ clean:
rm -f $(DMD_OBJS) dmd optab.o id.o impcnvgen idgen id.c id.h \ rm -f $(DMD_OBJS) dmd optab.o id.o impcnvgen idgen id.c id.h \
impcnvtab.c optabgen debtab.c optab.c cdxxx.c elxxx.c fltables.c \ impcnvtab.c optabgen debtab.c optab.c cdxxx.c elxxx.c fltables.c \
tytab.c verstr.h core \ tytab.c verstr.h core \
*.cov *.gcda *.gcno *.cov *.deps *.gcda *.gcno
######## optabgen generates some source ######## optabgen generates some source
@ -204,7 +204,7 @@ $(shell test \"$(VERSION)\" != "`cat verstr.h 2> /dev/null`" \
$(DMD_OBJS) : $(idgen_output) $(optabgen_output) $(impcnvgen_output) $(DMD_OBJS) : $(idgen_output) $(optabgen_output) $(impcnvgen_output)
aa.o: $C/aa.c $C/aa.h $C/tinfo.h aa.o: $C/aa.c
$(CC) -c $(MFLAGS) -I. $< $(CC) -c $(MFLAGS) -I. $<
aav.o: $(ROOT)/aav.c aav.o: $(ROOT)/aav.c
@ -264,10 +264,10 @@ cgcs.o: $C/cgcs.c
cgcv.o: $C/cgcv.c cgcv.o: $C/cgcv.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
cgelem.o: $C/cgelem.c $C/rtlsym.h elxxx.c cgelem.o: $C/cgelem.c elxxx.c
$(CC) -c $(MFLAGS) -I. $< $(CC) -c $(MFLAGS) -I. $<
cgen.o: $C/cgen.c $C/rtlsym.h cgen.o: $C/cgen.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
cgobj.o: $C/cgobj.c cgobj.o: $C/cgobj.c
@ -276,7 +276,7 @@ cgobj.o: $C/cgobj.c
cgreg.o: $C/cgreg.c cgreg.o: $C/cgreg.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
cgsched.o: $C/cgsched.c $C/rtlsym.h cgsched.o: $C/cgsched.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
cgxmm.o: $C/cgxmm.c cgxmm.o: $C/cgxmm.c
@ -288,13 +288,13 @@ class.o: class.c
clone.o: clone.c clone.o: clone.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
cod1.o: $C/cod1.c $C/rtlsym.h cod1.o: $C/cod1.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
cod2.o: $C/cod2.c $C/rtlsym.h cod2.o: $C/cod2.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
cod3.o: $C/cod3.c $C/rtlsym.h cod3.o: $C/cod3.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
cod4.o: $C/cod4.c cod4.o: $C/cod4.c
@ -309,10 +309,10 @@ code.o: $C/code.c
constfold.o: constfold.c constfold.o: constfold.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
ctfeexpr.o: ctfeexpr.c ctfe.h ctfeexpr.o: ctfeexpr.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
irstate.o: irstate.c irstate.h irstate.o: irstate.c
$(CC) -c $(MFLAGS) -I$(ROOT) $< $(CC) -c $(MFLAGS) -I$(ROOT) $<
csymbol.o: $C/symbol.c csymbol.o: $C/symbol.c
@ -345,25 +345,25 @@ doc.o: doc.c
dsymbol.o: dsymbol.c dsymbol.o: dsymbol.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
dt.o: $C/dt.c $C/dt.h dt.o: $C/dt.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
dump.o: dump.c dump.o: dump.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
dwarf.o: $C/dwarf.c $C/dwarf.h dwarf.o: $C/dwarf.c
$(CC) -c $(MFLAGS) -I. $< $(CC) -c $(MFLAGS) -I. $<
e2ir.o: e2ir.c $C/rtlsym.h expression.h toir.h e2ir.o: e2ir.c
$(CC) -c $(MFLAGS) -I$(ROOT) $< $(CC) -c $(MFLAGS) -I$(ROOT) $<
ee.o: $C/ee.c ee.o: $C/ee.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
eh.o: eh.c $C/cc.h $C/code.h $C/type.h $C/dt.h eh.o: eh.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
el.o: $C/el.c $C/rtlsym.h $C/el.h el.o: $C/el.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
elfobj.o: $C/elfobj.c elfobj.o: $C/elfobj.c
@ -378,13 +378,13 @@ enum.o: enum.c
evalu8.o: $C/evalu8.c evalu8.o: $C/evalu8.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
expression.o: expression.c expression.h expression.o: expression.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
file.o : $(ROOT)/file.c $(ROOT)/file.h file.o : $(ROOT)/file.c
$(CC) -c $(CFLAGS) -I$(ROOT) $< $(CC) -c $(CFLAGS) -I$(ROOT) $<
filename.o : $(ROOT)/filename.c $(ROOT)/filename.h filename.o : $(ROOT)/filename.c
$(CC) -c $(CFLAGS) -I$(ROOT) $< $(CC) -c $(CFLAGS) -I$(ROOT) $<
func.o: func.c func.o: func.c
@ -399,13 +399,13 @@ gflow.o: $C/gflow.c
#globals.o: globals.c #globals.o: globals.c
# $(CC) -c $(CFLAGS) $< # $(CC) -c $(CFLAGS) $<
glocal.o: $C/glocal.c $C/rtlsym.h glocal.o: $C/glocal.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
gloop.o: $C/gloop.c gloop.o: $C/gloop.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
glue.o: glue.c $(CH) $C/rtlsym.h mars.h module.h glue.o: glue.c
$(CC) -c $(MFLAGS) -I$(ROOT) $< $(CC) -c $(MFLAGS) -I$(ROOT) $<
go.o: $C/go.c go.o: $C/go.c
@ -417,16 +417,16 @@ gother.o: $C/gother.c
hdrgen.o: hdrgen.c hdrgen.o: hdrgen.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
iasm.o: iasm.c $(CH) $C/iasm.h iasm.o: iasm.c
$(CC) -c $(MFLAGS) -I$(ROOT) -fexceptions $< $(CC) -c $(MFLAGS) -I$(ROOT) -fexceptions $<
id.o: id.c id.h id.o: id.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
identifier.o: identifier.c identifier.o: identifier.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
impcnvtab.o: impcnvtab.c mtype.h impcnvtab.o: impcnvtab.c
$(CC) -c $(CFLAGS) -I$(ROOT) $< $(CC) -c $(CFLAGS) -I$(ROOT) $<
imphint.o: imphint.c imphint.o: imphint.c
@ -444,11 +444,11 @@ init.o: init.c
inline.o: inline.c inline.o: inline.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
interpret.o: interpret.c ctfe.h interpret.o: interpret.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
intrange.o: intrange.h intrange.c intrange.o: intrange.c
$(CC) -c $(CFLAGS) intrange.c $(CC) -c $(CFLAGS) $<
json.o: json.c json.o: json.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
@ -456,13 +456,13 @@ json.o: json.c
lexer.o: lexer.c lexer.o: lexer.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
libelf.o: libelf.c $C/melf.h libelf.o: libelf.c
$(CC) -c $(CFLAGS) -I$C $< $(CC) -c $(CFLAGS) -I$C $<
libmach.o: libmach.c $C/mach.h libmach.o: libmach.c
$(CC) -c $(CFLAGS) -I$C $< $(CC) -c $(CFLAGS) -I$C $<
libmscoff.o: libmscoff.c $C/mscoff.h libmscoff.o: libmscoff.c
$(CC) -c $(CFLAGS) -I$C $< $(CC) -c $(CFLAGS) -I$C $<
link.o: link.c link.o: link.c
@ -489,19 +489,19 @@ rmem.o: $(ROOT)/rmem.c
module.o: module.c module.o: module.c
$(CC) -c $(CFLAGS) -I$C $< $(CC) -c $(CFLAGS) -I$C $<
mscoffobj.o: $C/mscoffobj.c $C/mscoff.h mscoffobj.o: $C/mscoffobj.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
msc.o: msc.c $(CH) mars.h msc.o: msc.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
mtype.o: mtype.c mtype.o: mtype.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
nteh.o: $C/nteh.c $C/rtlsym.h nteh.o: $C/nteh.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
object.o : $(ROOT)/object.c $(ROOT)/object.h object.o : $(ROOT)/object.c
$(CC) -c $(CFLAGS) -I$(ROOT) $< $(CC) -c $(CFLAGS) -I$(ROOT) $<
opover.o: opover.c opover.o: opover.c
@ -516,10 +516,10 @@ os.o: $C/os.c
out.o: $C/out.c out.o: $C/out.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
outbuf.o: $C/outbuf.c $C/outbuf.h outbuf.o: $C/outbuf.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
outbuffer.o : $(ROOT)/outbuffer.c $(ROOT)/outbuffer.h outbuffer.o : $(ROOT)/outbuffer.c
$(CC) -c $(CFLAGS) -I$(ROOT) $< $(CC) -c $(CFLAGS) -I$(ROOT) $<
parse.o: parse.c parse.o: parse.c
@ -537,25 +537,25 @@ platform_stub.o: $C/platform_stub.c
port.o: $(ROOT)/port.c port.o: $(ROOT)/port.c
$(CC) -c $(GFLAGS) -I$(ROOT) $< $(CC) -c $(GFLAGS) -I$(ROOT) $<
ptrntab.o: $C/ptrntab.c $C/iasm.h ptrntab.o: $C/ptrntab.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
response.o: $(ROOT)/response.c response.o: $(ROOT)/response.c
$(CC) -c $(GFLAGS) -I$(ROOT) $< $(CC) -c $(GFLAGS) -I$(ROOT) $<
rtlsym.o: $C/rtlsym.c $C/rtlsym.h rtlsym.o: $C/rtlsym.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
sapply.o: sapply.c sapply.o: sapply.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
s2ir.o: s2ir.c $C/rtlsym.h statement.h visitor.h s2ir.o: s2ir.c
$(CC) -c $(MFLAGS) -I$(ROOT) $< $(CC) -c $(MFLAGS) -I$(ROOT) $<
scanelf.o: scanelf.c $C/melf.h scanelf.o: scanelf.c
$(CC) -c $(CFLAGS) -I$C $< $(CC) -c $(CFLAGS) -I$C $<
scanmach.o: scanmach.c $C/mach.h scanmach.o: scanmach.c
$(CC) -c $(CFLAGS) -I$C $< $(CC) -c $(CFLAGS) -I$C $<
scope.o: scope.c scope.o: scope.c
@ -570,7 +570,7 @@ speller.o: $(ROOT)/speller.c
statement.o: statement.c statement.o: statement.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
staticassert.o: staticassert.c staticassert.h staticassert.o: staticassert.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
stringtable.o: $(ROOT)/stringtable.c stringtable.o: $(ROOT)/stringtable.c
@ -582,37 +582,37 @@ strtold.o: $C/strtold.c
struct.o: struct.c struct.o: struct.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
target.o: target.c target.h target.o: target.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
template.o: template.c template.o: template.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
ti_achar.o: $C/ti_achar.c $C/tinfo.h ti_achar.o: $C/ti_achar.c
$(CC) -c $(MFLAGS) -I. $< $(CC) -c $(MFLAGS) -I. $<
ti_pvoid.o: $C/ti_pvoid.c $C/tinfo.h ti_pvoid.o: $C/ti_pvoid.c
$(CC) -c $(MFLAGS) -I. $< $(CC) -c $(MFLAGS) -I. $<
tk.o: tk.c tk.o: tk.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
tocsym.o: tocsym.c $(CH) mars.h module.h tocsym.o: tocsym.c
$(CC) -c $(MFLAGS) -I$(ROOT) $< $(CC) -c $(MFLAGS) -I$(ROOT) $<
toctype.o: toctype.c $(CH) $C/rtlsym.h mars.h module.h toctype.o: toctype.c
$(CC) -c $(MFLAGS) -I$(ROOT) $< $(CC) -c $(MFLAGS) -I$(ROOT) $<
todt.o: todt.c mtype.h expression.h $C/dt.h todt.o: todt.c
$(CC) -c $(MFLAGS) -I$(ROOT) $< $(CC) -c $(MFLAGS) -I$(ROOT) $<
toelfdebug.o: toelfdebug.c $(CH) mars.h toelfdebug.o: toelfdebug.c
$(CC) -c $(MFLAGS) -I$(ROOT) $< $(CC) -c $(MFLAGS) -I$(ROOT) $<
toir.o: toir.c $C/rtlsym.h expression.h toir.h toir.o: toir.c
$(CC) -c $(MFLAGS) -I$(ROOT) $< $(CC) -c $(MFLAGS) -I$(ROOT) $<
toobj.o: toobj.c $(CH) mars.h module.h toobj.o: toobj.c
$(CC) -c $(MFLAGS) -I$(ROOT) $< $(CC) -c $(MFLAGS) -I$(ROOT) $<
traits.o: traits.c traits.o: traits.c
@ -621,13 +621,13 @@ traits.o: traits.c
type.o: $C/type.c type.o: $C/type.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
typinf.o: typinf.c $(CH) mars.h module.h mtype.h typinf.o: typinf.c
$(CC) -c $(MFLAGS) -I$(ROOT) $< $(CC) -c $(MFLAGS) -I$(ROOT) $<
util2.o: $C/util2.c util2.o: $C/util2.c
$(CC) -c $(MFLAGS) $< $(CC) -c $(MFLAGS) $<
utf.o: utf.c utf.h utf.o: utf.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
unittests.o: unittests.c unittests.o: unittests.c
@ -639,6 +639,8 @@ var.o: $C/var.c optab.c tytab.c
version.o: version.c version.o: version.c
$(CC) -c $(CFLAGS) $< $(CC) -c $(CFLAGS) $<
-include $(DMD_DEPS)
###################################################### ######################################################
install: all install: all