Author: bdrewery
Date: Mon Dec  7 16:08:22 2015
New Revision: 291945
URL: https://svnweb.freebsd.org/changeset/base/291945

Log:
  FAST_DEPEND: Only pass -MF if we care about the object being compiled.
  
  This will save time generating dependency files that we didn't expect
  due to cases where SRCS!=OBJS or for building custom targetted objects
  in Makefiles that do not end up in the DEPENDOBJS list.
  
  This uses a bmake trick to modify CFLAGS based on ${.TARGET}.  A
  .PARSEDIR check is done for the sake of MFC safety.
  
  MFC after:    2 weeks
  Sponsored by: EMC / Isilon Storage Division

Modified:
  head/share/mk/bsd.dep.mk
  head/share/mk/bsd.lib.mk

Modified: head/share/mk/bsd.dep.mk
==============================================================================
--- head/share/mk/bsd.dep.mk    Mon Dec  7 16:08:19 2015        (r291944)
+++ head/share/mk/bsd.dep.mk    Mon Dec  7 16:08:22 2015        (r291945)
@@ -158,7 +158,14 @@ DEPEND_MP?=        -MP
 DEPEND_FILTER= C,/,_,g
 DEPEND_CFLAGS+=        -MD ${DEPEND_MP} 
-MF${DEPENDFILE}.${.TARGET:${DEPEND_FILTER}}
 DEPEND_CFLAGS+=        -MT${.TARGET}
+.if defined(.PARSEDIR)
+# Only add in DEPEND_CFLAGS for CFLAGS on files we expect from DEPENDOBJS
+# as those are the only ones we will include.
+DEPEND_CFLAGS_CONDITION= !empty(DEPENDOBJS:M${.TARGET:${DEPEND_FILTER}})
+CFLAGS+=       ${${DEPEND_CFLAGS_CONDITION}:?${DEPEND_CFLAGS}:}
+.else
 CFLAGS+=       ${DEPEND_CFLAGS}
+.endif
 DEPENDSRCS=    ${SRCS:M*.[cSC]} ${SRCS:M*.cxx} ${SRCS:M*.cpp} ${SRCS:M*.cc}
 .if !empty(DEPENDSRCS)
 DEPENDOBJS+=   ${DEPENDSRCS:R:S,$,.o,}

Modified: head/share/mk/bsd.lib.mk
==============================================================================
--- head/share/mk/bsd.lib.mk    Mon Dec  7 16:08:19 2015        (r291944)
+++ head/share/mk/bsd.lib.mk    Mon Dec  7 16:08:22 2015        (r291945)
@@ -182,6 +182,7 @@ lib${LIB_PRIVATE}${LIB}.a: ${OBJS} ${STA
 .if ${MK_PROFILE} != "no" && defined(LIB) && !empty(LIB)
 _LIBS+=                lib${LIB_PRIVATE}${LIB}_p.a
 POBJS+=                ${OBJS:.o=.po} ${STATICOBJS:.o=.po}
+DEPENDOBJS+=   ${POBJS}
 CLEANFILES+=   ${POBJS}
 
 lib${LIB_PRIVATE}${LIB}_p.a: ${POBJS}
@@ -194,6 +195,7 @@ lib${LIB_PRIVATE}${LIB}_p.a: ${POBJS}
 .if defined(SHLIB_NAME) || \
     defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB)
 SOBJS+=                ${OBJS:.o=.So}
+DEPENDOBJS+=   ${SOBJS}
 CLEANFILES+=   ${SOBJS}
 .endif
 
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to