Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Jun 2019 17:08:36 +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: r349068 - head/share/mk
Message-ID:  <201906151708.x5FH8aSg030909@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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".



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201906151708.x5FH8aSg030909>