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
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to