FAST_DEPEND: Workaround hacks in the wild that have '..' or '/' in OBJS.
This is mostly working around the converts/iconv port having '../ces/file.o' in its OBJS list which resulted in '.depend../ces/file.o'. Now it will have '.depend.._ces_file.o'. Other implementations have :T which would result in '.depend.file.o' here, but that could lead to collisions. X-MFC-With: r291554 MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
This commit is contained in:
parent
593e465913
commit
b6725ecdb2
@ -60,15 +60,18 @@ DEPENDFILES= ${DEPENDFILE}
|
||||
.if ${MK_FAST_DEPEND} == "yes" && ${.MAKE.MODE:Unormal:Mmeta*} == ""
|
||||
DEPENDFILES+= ${DEPENDFILE}.*
|
||||
DEPEND_MP?= -MP
|
||||
DEPEND_CFLAGS+= -MD -MF${DEPENDFILE}.${.TARGET}
|
||||
# Handle OBJS=../somefile.o hacks. Just replace '/' rather than use :T to
|
||||
# avoid collisions.
|
||||
DEPEND_FILTER= C,/,_,g
|
||||
DEPEND_CFLAGS+= -MD -MF${DEPENDFILE}.${.TARGET:${DEPEND_FILTER}}
|
||||
DEPEND_CFLAGS+= -MT${.TARGET}
|
||||
CFLAGS+= ${DEPEND_CFLAGS}
|
||||
DEPENDOBJS+= ${OBJS} ${POBJS} ${SOBJS}
|
||||
.for __obj in ${DEPENDOBJS:O:u}
|
||||
.if ${.MAKEFLAGS:M-V} == ""
|
||||
.sinclude "${DEPENDFILE}.${__obj}"
|
||||
.sinclude "${DEPENDFILE}.${__obj:${DEPEND_FILTER}}"
|
||||
.endif
|
||||
DEPENDFILES_OBJS+= ${DEPENDFILE}.${__obj}
|
||||
DEPENDFILES_OBJS+= ${DEPENDFILE}.${__obj:${DEPEND_FILTER}}
|
||||
.endfor
|
||||
.endif # ${MK_FAST_DEPEND} == "yes"
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user