Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Feb 2016 00:41:24 +0000 (UTC)
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r295779 - in head: share/mk sys/conf
Message-ID:  <201602190041.u1J0fOSX072675@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bdrewery
Date: Fri Feb 19 00:41:24 2016
New Revision: 295779
URL: https://svnweb.freebsd.org/changeset/base/295779

Log:
  Avoid reading .depend.* in simple cases where not needed.
  
  This will speed up some tree-walks with FAST_DEPEND which otherwise
  would include length(SRCS) .depend files.
  
  This also uses a trick suggested by sjg@ to still read them in when
  specifying _V_READ_DEPEND=1 in the env/make args.
  
  Sponsored by:	EMC / Isilon Storage Division

Modified:
  head/share/mk/bsd.dep.mk
  head/sys/conf/kern.post.mk

Modified: head/share/mk/bsd.dep.mk
==============================================================================
--- head/share/mk/bsd.dep.mk	Fri Feb 19 00:29:16 2016	(r295778)
+++ head/share/mk/bsd.dep.mk	Fri Feb 19 00:41:24 2016	(r295779)
@@ -81,6 +81,16 @@ tags: ${SRCS}
 .endif
 .endif
 
+# Skip reading .depend when not needed to speed up tree-walks
+# and simple lookups.
+.if !empty(.MAKEFLAGS:M-V${_V_READ_DEPEND}) || make(obj) || make(clean*) || \
+    make(install*)
+_SKIP_READ_DEPEND=	1
+.if ${MK_DIRDEPS_BUILD} == "no"
+.MAKE.DEPENDFILE=	/dev/null
+.endif
+.endif
+
 .if defined(SRCS)
 CLEANFILES?=
 
@@ -181,7 +191,7 @@ DEPENDSRCS=	${SRCS:M*.[cSC]} ${SRCS:M*.c
 DEPENDOBJS+=	${DEPENDSRCS:R:S,$,.o,}
 .endif
 DEPENDFILES_OBJS=	${DEPENDOBJS:O:u:${DEPEND_FILTER}:C/^/${DEPENDFILE}./}
-.if ${.MAKEFLAGS:M-V} == ""
+.if !defined(_SKIP_READ_DEPEND)
 .for __depend_obj in ${DEPENDFILES_OBJS}
 .sinclude "${__depend_obj}"
 .endfor

Modified: head/sys/conf/kern.post.mk
==============================================================================
--- head/sys/conf/kern.post.mk	Fri Feb 19 00:29:16 2016	(r295778)
+++ head/sys/conf/kern.post.mk	Fri Feb 19 00:41:24 2016	(r295779)
@@ -206,6 +206,15 @@ CFILES_OFED=${CFILES:M*/ofed/*}
 # We have "special" -I include paths for MLX5.
 CFILES_MLX5=${CFILES:M*/dev/mlx5/*}
 
+# Skip reading .depend when not needed to speed up tree-walks
+# and simple lookups.
+.if !empty(.MAKEFLAGS:M-V${_V_READ_DEPEND}) || make(obj) || make(clean*) || \
+    make(install*) || make(kernel-obj) || make(kernel-clean*) || \
+    make(kernel-install*)
+_SKIP_READ_DEPEND=	1
+.MAKE.DEPENDFILE=	/dev/null
+.endif
+
 kernel-depend: .depend
 # The argument list can be very long, so use make -V and xargs to
 # pass it to mkdep.
@@ -222,7 +231,7 @@ DEPEND_CFLAGS+=	-MT${.TARGET}
 CFLAGS+=	${DEPEND_CFLAGS}
 DEPENDOBJS+=	${SYSTEM_OBJS} genassym.o
 DEPENDFILES_OBJS=	${DEPENDOBJS:O:u:C/^/.depend./}
-.if ${.MAKEFLAGS:M-V} == ""
+.if !defined(_SKIP_READ_DEPEND)
 .for __depend_obj in ${DEPENDFILES_OBJS}
 .sinclude "${__depend_obj}"
 .endfor



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201602190041.u1J0fOSX072675>