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".
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to