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>