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
This commit is contained in:
parent
dcf1f83876
commit
ee4eeb3213
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=349068
@ -173,7 +173,7 @@ ${_D}.nossppico: ${_DSRC} ${SOBJS:S/^${_D}.nossppico$//}
|
||||
.endif
|
||||
.endfor
|
||||
.endfor
|
||||
|
||||
.endif # defined(SRCS)
|
||||
|
||||
.if ${MAKE_VERSION} < 20160220
|
||||
DEPEND_MP?= -MP
|
||||
@ -181,11 +181,15 @@ DEPEND_MP?= -MP
|
||||
# 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".
|
||||
|
Loading…
Reference in New Issue
Block a user