svn commit: r291555 - head/share/mk
Bryan Drewery
bdrewery at FreeBSD.org
Tue Dec 1 03:09:55 UTC 2015
Author: bdrewery
Date: Tue Dec 1 03:09:54 2015
New Revision: 291555
URL: https://svnweb.freebsd.org/changeset/base/291555
Log:
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
Modified:
head/share/mk/bsd.dep.mk
Modified: head/share/mk/bsd.dep.mk
==============================================================================
--- head/share/mk/bsd.dep.mk Tue Dec 1 03:00:10 2015 (r291554)
+++ head/share/mk/bsd.dep.mk Tue Dec 1 03:09:54 2015 (r291555)
@@ -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"
More information about the svn-src-head
mailing list