svn commit: r349061 - head/share/mk
Bryan Drewery
bdrewery at FreeBSD.org
Sat Jun 15 17:08:03 UTC 2019
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
More information about the svn-src-all
mailing list