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
This commit is contained in:
parent
4d7ef8a2be
commit
f39f6a562e
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user