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-all
mailing list