Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Jun 2019 17:08:02 +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: r349061 - head/share/mk
Message-ID:  <201906151708.x5FH82J6030569@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bdrewery
Date: Sat Jun 15 17:08:02 2019
New Revision: 349061
URL: https://svnweb.freebsd.org/changeset/base/349061

Log:
  Don't force OBJS_DEPEND_GUESS headers onto all objects.
  
  This is in the case of not having any .depend.foo.o yet.  Don't force add *.h
  as a dependency for those. They are built in beforebuild already when in
  SRCS/DPSRCS.
  
  This change allows custom rules, like in bin/sh/Makefile for mksyntax, to not
  have cyclic dependency problems when connected to the .depend.* handling.
  
  This is purposely not copied to sys/conf/kern.post.mk as it handles
  generating headers slightly differently.
  
  MFC after:	2 weeks
  Sponsored by:	DellEMC

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

Modified: head/share/mk/bsd.dep.mk
==============================================================================
--- head/share/mk/bsd.dep.mk	Sat Jun 15 16:59:03 2019	(r349060)
+++ head/share/mk/bsd.dep.mk	Sat Jun 15 17:08:02 2019	(r349061)
@@ -251,18 +251,17 @@ _depfile=	${.OBJDIR}/${_meta_obj}
 .else
 _depfile=	${.OBJDIR}/${_dep_obj}
 .endif
-.if !exists(${_depfile})
-${__obj}: ${OBJS_DEPEND_GUESS}
-${__obj}: ${OBJS_DEPEND_GUESS.${__obj}}
-.elif defined(_meta_filemon)
-# For meta mode we still need to know which file to depend on to avoid
-# ambiguous suffix transformation rules from .PATH.  Meta mode does not
-# use .depend files.  We really only need source files, not headers since
-# they are typically in SRCS/beforebuild already.  For target-specific
-# guesses do include headers though since they may not be in SRCS.
+.if !exists(${_depfile}) || defined(_meta_filemon)
+# - Headers are normally built in beforebuild when included in DPSRCS or SRCS.
+#   So we don't need it as a guessed dependency (it may lead to cyclic problems
+#   if custom rules are defined).  The only time this causes a problem is when
+#   'make foo.o' is ran.
+# - For meta mode we still need to know which file to depend on to avoid
+#   ambiguous suffix transformation rules from .PATH.  Meta mode does not
+#   use .depend files when filemon is in use.
 ${__obj}: ${OBJS_DEPEND_GUESS:N*.h}
 ${__obj}: ${OBJS_DEPEND_GUESS.${__obj}}
-.endif	# !exists(${_depfile})
+.endif	# !exists(${_depfile}) || defined(_meta_filemon)
 .endfor
 
 # Always run 'make depend' to generate dependencies early and to avoid the



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