svn commit: r349068 - head/share/mk

Bryan Drewery bdrewery at FreeBSD.org
Sat Jun 15 17:08:43 UTC 2019


Author: bdrewery
Date: Sat Jun 15 17:08:35 2019
New Revision: 349068
URL: https://svnweb.freebsd.org/changeset/base/349068

Log:
  Allow DEPENDOBJS/DEPENDSRCS to work with only OBJS set and no SRCS.
  
  Default to tracking .depend.* for OBJS rather than SRCS.
  
  This helps cover some special case builds like gnu/lib/csu which
  do more of a PROGS-like thing with bsd.prog.mk.
  
  It is possible this causes out-of-tree Makefiles to have problems if they use
  this pattern:
  	foo.o: foo.c
  		${CC} -o ${.TARGET} ${.ALLSRC}
  This may cause multiple source files to be compiled due to finding the
  'foo.o: foo.c' dependency both in the Makefile at the .depend file. Or
  it may try compiling headers. This can be worked around by either of these:
  	foo.o: foo.c
  		${CC} -o ${.TARGET} ${.ALLSRC:N*.h:[1]}
  Or
  	foo.o: foo.c
  		${CC} -o ${.TARGET} ${.CURDIR}/foo.c
  In the latter case the ${.CURDIR} may need to be a different path. The
  first case covers automatically using .PATH.
  
  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 17:08:32 2019	(r349067)
+++ head/share/mk/bsd.dep.mk	Sat Jun 15 17:08:35 2019	(r349068)
@@ -173,19 +173,23 @@ ${_D}.nossppico: ${_DSRC} ${SOBJS:S/^${_D}.nossppico$/
 .endif
 .endfor
 .endfor
+.endif	# defined(SRCS)
 
-
 .if ${MAKE_VERSION} < 20160220
 DEPEND_MP?=	-MP
 .endif
 # Handle OBJS=../somefile.o hacks.  Just replace '/' rather than use :T to
 # avoid collisions.
 DEPEND_FILTER=	C,/,_,g
+.if !empty(OBJS)
+DEPENDOBJS+=	${OBJS}
+.else
 DEPENDSRCS+=	${SRCS:M*.[cSC]} ${SRCS:M*.cxx} ${SRCS:M*.cpp} ${SRCS:M*.cc}
 DEPENDSRCS+=	${DPSRCS:M*.[cSC]} ${SRCS:M*.cxx} ${SRCS:M*.cpp} ${SRCS:M*.cc}
 .if !empty(DEPENDSRCS)
 DEPENDOBJS+=	${DEPENDSRCS:${OBJS_SRCS_FILTER:ts:}:S,$,.o,}
 .endif
+.endif	# !empty(OBJS)
 .if !empty(DEPENDOBJS)
 DEPENDFILES+=	${DEPENDOBJS:O:u:${DEPEND_FILTER}:C/^/${DEPENDFILE}./}
 .endif
@@ -215,7 +219,6 @@ CFLAGS+=	${${DEPEND_CFLAGS_CONDITION}:?${DEPEND_CFLAGS
 .endif
 .endfor
 .endif	# !defined(_meta_filemon)
-.endif	# defined(SRCS)
 
 .if ${MK_DIRDEPS_BUILD} == "yes" && ${.MAKE.DEPENDFILE} != "/dev/null"
 # Prevent meta.autodep.mk from tracking "local dependencies".


More information about the svn-src-head mailing list