svn commit: r301079 - in head: share/mk sys/conf

Bryan Drewery bdrewery at FreeBSD.org
Tue May 31 21:22:21 UTC 2016


Author: bdrewery
Date: Tue May 31 21:22:19 2016
New Revision: 301079
URL: https://svnweb.freebsd.org/changeset/base/301079

Log:
  WITH_META_MODE: Mitigate switching from without to with META_MODE.
  
  Adding .META to targets-to-build will ensure that they will rebuild if there
  is no .meta file.
  
  Adding it to all SUFFIXES and objects ensures that at least objects will
  rebuild if there is no .meta file.
  
  This will be reverted if bmake's behavior changes to rebuild on missing .meta
  files.
  
  Sponsored by:	EMC / Isilon Storage Division

Modified:
  head/share/mk/bsd.dep.mk
  head/share/mk/bsd.info.mk
  head/share/mk/bsd.lib.mk
  head/share/mk/bsd.man.mk
  head/share/mk/bsd.nls.mk
  head/share/mk/bsd.prog.mk
  head/share/mk/sys.mk
  head/sys/conf/kern.post.mk
  head/sys/conf/kern.pre.mk
  head/sys/conf/kmod.mk

Modified: head/share/mk/bsd.dep.mk
==============================================================================
--- head/share/mk/bsd.dep.mk	Tue May 31 21:21:32 2016	(r301078)
+++ head/share/mk/bsd.dep.mk	Tue May 31 21:22:19 2016	(r301079)
@@ -92,7 +92,7 @@ OBJS_DEPEND_GUESS.${_S:R}.o=	${_S}
 # Lexical analyzers
 .for _LSRC in ${SRCS:M*.l:N*/*}
 .for _LC in ${_LSRC:R}.c
-${_LC}: ${_LSRC}
+${_LC}: ${_LSRC} ${OP_META}
 	${LEX} ${LFLAGS} -o${.TARGET} ${.ALLSRC}
 OBJS_DEPEND_GUESS.${_LC:R}.o=	${_LC}
 SRCS:=	${SRCS:S/${_LSRC}/${_LC}/}
@@ -107,6 +107,7 @@ SRCS:=	${SRCS:S/${_YSRC}/${_YC}/}
 CLEANFILES+= ${_YC}
 .if !empty(YFLAGS:M-d) && !empty(SRCS:My.tab.h)
 .ORDER: ${_YC} y.tab.h
+${_YC}:	${OP_META}
 ${_YC} y.tab.h: ${_YSRC}
 	${YACC} ${YFLAGS} ${.ALLSRC}
 	cp y.tab.c ${_YC}
@@ -114,13 +115,14 @@ CLEANFILES+= y.tab.c y.tab.h
 .elif !empty(YFLAGS:M-d)
 .for _YH in ${_YC:R}.h
 .ORDER: ${_YC} ${_YH}
+${_YC}:	${OP_META}
 ${_YC} ${_YH}: ${_YSRC}
 	${YACC} ${YFLAGS} -o ${_YC} ${.ALLSRC}
 SRCS+=	${_YH}
 CLEANFILES+= ${_YH}
 .endfor
 .else
-${_YC}: ${_YSRC}
+${_YC}: ${_YSRC} ${OP_META}
 	${YACC} ${YFLAGS} -o ${_YC} ${.ALLSRC}
 .endif
 OBJS_DEPEND_GUESS.${_YC:R}.o=	${_YC}
@@ -134,20 +136,20 @@ CFLAGS+=	-I${.OBJDIR}
 .for _DSRC in ${SRCS:M*.d:N*/*}
 .for _D in ${_DSRC:R}
 SRCS+=	${_D}.h
-${_D}.h: ${_DSRC}
+${_D}.h: ${_DSRC} ${OP_META}
 	${DTRACE} ${DTRACEFLAGS} -h -s ${.ALLSRC}
 SRCS:=	${SRCS:S/^${_DSRC}$//}
 OBJS+=	${_D}.o
 CLEANFILES+= ${_D}.h ${_D}.o
-${_D}.o: ${_DSRC} ${OBJS:S/^${_D}.o$//}
+${_D}.o: ${_DSRC} ${OBJS:S/^${_D}.o$//} ${OP_META}
 	@rm -f ${.TARGET}
 	${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC:N*.h}
 .if defined(LIB)
 CLEANFILES+= ${_D}.So ${_D}.po
-${_D}.So: ${_DSRC} ${SOBJS:S/^${_D}.So$//}
+${_D}.So: ${_DSRC} ${SOBJS:S/^${_D}.So$//} ${OP_META}
 	@rm -f ${.TARGET}
 	${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC:N*.h}
-${_D}.po: ${_DSRC} ${POBJS:S/^${_D}.po$//}
+${_D}.po: ${_DSRC} ${POBJS:S/^${_D}.po$//} ${OP_META}
 	@rm -f ${.TARGET}
 	${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC:N*.h}
 .endif
@@ -243,7 +245,7 @@ DPSRCS+= ${SRCS}
 # A .depend file will only be generated if there are commands in
 # beforedepend/_EXTRADEPEND/afterdepend.  The target is kept
 # to allow 'make depend' to generate files.
-${DEPENDFILE}: ${DPSRCS}
+${DEPENDFILE}: ${DPSRCS} ${OP_META}
 .if !empty(.MAKE.MODE:Mmeta) || exists(${.OBJDIR}/${DEPENDFILE})
 	rm -f ${DEPENDFILE}
 .endif

Modified: head/share/mk/bsd.info.mk
==============================================================================
--- head/share/mk/bsd.info.mk	Tue May 31 21:21:32 2016	(r301078)
+++ head/share/mk/bsd.info.mk	Tue May 31 21:22:19 2016	(r301079)
@@ -86,18 +86,18 @@ DVIPS2ASCII?=	dvips2ascii
 
 .SUFFIXES: ${ICOMPRESS_EXT} .info .texi .texinfo .dvi .ps .latin1 .html
 
-.texi.info .texinfo.info:
+.texi.info .texinfo.info: ${OP_META}
 	${MAKEINFO} ${MAKEINFOFLAGS} -I ${.CURDIR} -I ${SRCDIR} ${.IMPSRC} \
 		-o ${.TARGET}
 
-.texi.dvi .texinfo.dvi:
+.texi.dvi .texinfo.dvi: ${OP_META}
 	TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \
 		${TEX} ${.IMPSRC} </dev/null
 # Run again to resolve cross references.
 	TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \
 		${TEX} ${.IMPSRC} </dev/null
 
-.texinfo.latin1 .texi.latin1:
+.texinfo.latin1 .texi.latin1: ${OP_META}
 	perl -npe 's/(^\s*\\input\s+texinfo\s+)/$$1\n at tex\n\\global\\hsize=120mm\n at end tex\n\n/' ${.IMPSRC} >> ${.IMPSRC:T:R}-la.texi
 	TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \
 		${TEX} ${.IMPSRC:T:R}-la.texi </dev/null
@@ -108,10 +108,10 @@ DVIPS2ASCII?=	dvips2ascii
 		${DVIPS2ASCII} > ${.TARGET}.new
 	mv -f ${.TARGET}.new ${.TARGET}
 
-.dvi.ps:
+.dvi.ps: ${OP_META}
 	${DVIPS} -o ${.TARGET} ${.IMPSRC}
 
-.info.html:
+.info.html: ${OP_META}
 	${INFO2HTML} ${.IMPSRC}
 	${INSTALL_LINK} ${.TARGET:R}.info.Top.html ${.TARGET}
 
@@ -133,7 +133,7 @@ all: ${IFILES}
 .endif
 
 .for x in ${IFILENS}
-${x:S/$/${ICOMPRESS_EXT}/}:	${x}
+${x:S/$/${ICOMPRESS_EXT}/}:	${x} ${OP_META}
 	${ICOMPRESS_CMD} ${.ALLSRC} > ${.TARGET}
 .endfor
 
@@ -158,7 +158,7 @@ ${x:S/$/-install/}:
 
 .if defined(SRCS)
 CLEANFILES+=	${INFO}.texi
-${INFO}.texi: ${SRCS}
+${INFO}.texi: ${SRCS} ${OP_META}
 	cat ${.ALLSRC} > ${.TARGET}
 .endif
 

Modified: head/share/mk/bsd.lib.mk
==============================================================================
--- head/share/mk/bsd.lib.mk	Tue May 31 21:21:32 2016	(r301078)
+++ head/share/mk/bsd.lib.mk	Tue May 31 21:22:19 2016	(r301079)
@@ -91,55 +91,55 @@ PICFLAG=-fpic
 
 PO_FLAG=-pg
 
-.c.o:
+.c.o: ${OP_META}
 	${CC} ${STATIC_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
 	${CTFCONVERT_CMD}
 
-.c.po:
+.c.po: ${OP_META}
 	${CC} ${PO_FLAG} ${STATIC_CFLAGS} ${PO_CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
 	${CTFCONVERT_CMD}
 
-.c.So:
+.c.So: ${OP_META}
 	${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
 	${CTFCONVERT_CMD}
 
-.cc.o .C.o .cpp.o .cxx.o:
+.cc.o .C.o .cpp.o .cxx.o: ${OP_META}
 	${CXX} ${STATIC_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
 
-.cc.po .C.po .cpp.po .cxx.po:
+.cc.po .C.po .cpp.po .cxx.po: ${OP_META}
 	${CXX} ${PO_FLAG} ${STATIC_CXXFLAGS} ${PO_CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
 
-.cc.So .C.So .cpp.So .cxx.So:
+.cc.So .C.So .cpp.So .cxx.So: ${OP_META}
 	${CXX} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
 
-.f.po:
+.f.po: ${OP_META}
 	${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC}
 	${CTFCONVERT_CMD}
 
-.f.So:
+.f.So: ${OP_META}
 	${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC}
 	${CTFCONVERT_CMD}
 
-.s.po .s.So:
+.s.po .s.So: ${OP_META}
 	${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC}
 	${CTFCONVERT_CMD}
 
-.asm.po:
+.asm.po: ${OP_META}
 	${CC:N${CCACHE_BIN}} -x assembler-with-cpp -DPROF ${PO_CFLAGS} \
 	    ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET}
 	${CTFCONVERT_CMD}
 
-.asm.So:
+.asm.So: ${OP_META}
 	${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${PICFLAG} -DPIC \
 	    ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET}
 	${CTFCONVERT_CMD}
 
-.S.po:
+.S.po: ${OP_META}
 	${CC:N${CCACHE_BIN}} -DPROF ${PO_CFLAGS} ${ACFLAGS} -c ${.IMPSRC} \
 	    -o ${.TARGET}
 	${CTFCONVERT_CMD}
 
-.S.So:
+.S.So: ${OP_META}
 	${CC:N${CCACHE_BIN}} ${PICFLAG} -DPIC ${CFLAGS} ${ACFLAGS} \
 	    -c ${.IMPSRC} -o ${.TARGET}
 	${CTFCONVERT_CMD}
@@ -183,7 +183,7 @@ CLEANFILES+=	${OBJS} ${STATICOBJS}
 .if defined(LIB) && !empty(LIB)
 _LIBS=		lib${LIB_PRIVATE}${LIB}.a
 
-lib${LIB_PRIVATE}${LIB}.a: ${OBJS} ${STATICOBJS}
+lib${LIB_PRIVATE}${LIB}.a: ${OBJS} ${STATICOBJS} ${OP_META}
 	@${ECHO} building static ${LIB} library
 	@rm -f ${.TARGET}
 	${AR} ${ARFLAGS} ${.TARGET} `NM='${NM}' NMFLAGS='${NMFLAGS}' lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD}
@@ -198,7 +198,7 @@ POBJS+=		${OBJS:.o=.po} ${STATICOBJS:.o=
 DEPENDOBJS+=	${POBJS}
 CLEANFILES+=	${POBJS}
 
-lib${LIB_PRIVATE}${LIB}_p.a: ${POBJS}
+lib${LIB_PRIVATE}${LIB}_p.a: ${POBJS} ${OP_META}
 	@${ECHO} building profiled ${LIB} library
 	@rm -f ${.TARGET}
 	${AR} ${ARFLAGS} ${.TARGET} `NM='${NM}' NMFLAGS='${NMFLAGS}' lorder ${POBJS} | tsort -q` ${ARADD}
@@ -230,7 +230,7 @@ ${SHLIB_NAME_FULL}: beforelinking
 
 .if defined(SHLIB_LINK)
 .if defined(SHLIB_LDSCRIPT) && !empty(SHLIB_LDSCRIPT) && exists(${.CURDIR}/${SHLIB_LDSCRIPT})
-${SHLIB_LINK:R}.ld: ${.CURDIR}/${SHLIB_LDSCRIPT}
+${SHLIB_LINK:R}.ld: ${.CURDIR}/${SHLIB_LDSCRIPT} ${OP_META}
 	sed -e 's,@@SHLIB@@,${_SHLIBDIR}/${SHLIB_NAME},g' \
 	    -e 's,@@LIBDIR@@,${_LIBDIR},g' \
 	    ${.ALLSRC} > ${.TARGET}
@@ -241,7 +241,7 @@ CLEANFILES+=	${SHLIB_LINK:R}.ld
 CLEANFILES+=	${SHLIB_LINK}
 .endif
 
-${SHLIB_NAME_FULL}: ${SOBJS}
+${SHLIB_NAME_FULL}: ${SOBJS} ${OP_META}
 	@${ECHO} building shared library ${SHLIB_NAME}
 	@rm -f ${SHLIB_NAME} ${SHLIB_LINK}
 .if defined(SHLIB_LINK) && !commands(${SHLIB_LINK:R}.ld)
@@ -256,11 +256,11 @@ ${SHLIB_NAME_FULL}: ${SOBJS}
 
 .if ${MK_DEBUG_FILES} != "no"
 CLEANFILES+=	${SHLIB_NAME_FULL} ${SHLIB_NAME}.debug
-${SHLIB_NAME}: ${SHLIB_NAME_FULL} ${SHLIB_NAME}.debug
+${SHLIB_NAME}: ${SHLIB_NAME_FULL} ${SHLIB_NAME}.debug ${OP_META}
 	${OBJCOPY} --strip-debug --add-gnu-debuglink=${SHLIB_NAME}.debug \
 	    ${SHLIB_NAME_FULL} ${.TARGET}
 
-${SHLIB_NAME}.debug: ${SHLIB_NAME_FULL}
+${SHLIB_NAME}.debug: ${SHLIB_NAME_FULL} ${OP_META}
 	${OBJCOPY} --only-keep-debug ${SHLIB_NAME_FULL} ${.TARGET}
 .endif
 .endif #defined(SHLIB_NAME)
@@ -268,7 +268,7 @@ ${SHLIB_NAME}.debug: ${SHLIB_NAME_FULL}
 .if defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) && ${MK_TOOLCHAIN} != "no"
 _LIBS+=		lib${LIB_PRIVATE}${LIB}_pic.a
 
-lib${LIB_PRIVATE}${LIB}_pic.a: ${SOBJS}
+lib${LIB_PRIVATE}${LIB}_pic.a: ${SOBJS} ${OP_META}
 	@${ECHO} building special pic ${LIB} library
 	@rm -f ${.TARGET}
 	${AR} ${ARFLAGS} ${.TARGET} ${SOBJS} ${ARADD}
@@ -281,7 +281,7 @@ _LIBS+=		${LINTLIB}
 LINTOBJS+=	${SRCS:M*.c:.c=.ln}
 CLEANFILES+=	${LINTOBJS}
 
-${LINTLIB}: ${LINTOBJS}
+${LINTLIB}: ${LINTOBJS} ${OP_META}
 	@${ECHO} building lint library ${.TARGET}
 	@rm -f ${.TARGET}
 	${LINT} ${LINTLIBFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC}

Modified: head/share/mk/bsd.man.mk
==============================================================================
--- head/share/mk/bsd.man.mk	Tue May 31 21:21:32 2016	(r301078)
+++ head/share/mk/bsd.man.mk	Tue May 31 21:22:19 2016	(r301079)
@@ -99,7 +99,7 @@ ${__target}: ${__page}
 .if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
 .for __target in ${__page:T:S/$/${CATEXT}${FILTEXTENSION}/g}
 all-man: ${__target}
-${__target}: ${__page}
+${__target}: ${__page} ${OP_META}
 	${MANFILTER} < ${.ALLSRC} | ${MANDOC_CMD} > ${.TARGET}
 .endfor
 .endif
@@ -112,7 +112,7 @@ CLEANFILES+=	${MAN:T:S/$/${CATEXT}/g}
 .for __page in ${MAN}
 .for __target in ${__page:T:S/$/${CATEXT}/g}
 all-man: ${__target}
-${__target}: ${__page}
+${__target}: ${__page} ${OP_META}
 	${MANDOC_CMD} ${.ALLSRC} > ${.TARGET}
 .endfor
 .endfor
@@ -148,7 +148,7 @@ CLEANFILES+=	${MAN:T:S/$/${CATEXT}${MCOM
 .for __page in ${MAN}
 .for __target in ${__page:T:S/$/${MCOMPRESS_EXT}/}
 all-man: ${__target}
-${__target}: ${__page}
+${__target}: ${__page} ${OP_META}
 .if defined(MANFILTER)
 	${MANFILTER} < ${.ALLSRC} | ${MCOMPRESS_CMD} > ${.TARGET}
 .else
@@ -158,7 +158,7 @@ ${__target}: ${__page}
 .if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
 .for __target in ${__page:T:S/$/${CATEXT}${MCOMPRESS_EXT}/}
 all-man: ${__target}
-${__target}: ${__page}
+${__target}: ${__page} ${OP_META}
 .if defined(MANFILTER)
 	${MANFILTER} < ${.ALLSRC} | ${MANDOC_CMD} | ${MCOMPRESS_CMD} > ${.TARGET}
 .else

Modified: head/share/mk/bsd.nls.mk
==============================================================================
--- head/share/mk/bsd.nls.mk	Tue May 31 21:21:32 2016	(r301078)
+++ head/share/mk/bsd.nls.mk	Tue May 31 21:22:19 2016	(r301079)
@@ -42,7 +42,7 @@ NLSSRCFILES_${file}?= ${NLSSRCFILES}
 .endif
 .if defined(NLSSRCFILES_${file})
 NLSSRCDIR_${file}?= ${NLSSRCDIR}
-${file}.msg: ${NLSSRCFILES_${file}:S/^/${NLSSRCDIR_${file}}\//}
+${file}.msg: ${NLSSRCFILES_${file}:S/^/${NLSSRCDIR_${file}}\//} ${OP_META}
 	@rm -f ${.TARGET}
 	cat ${.ALLSRC} > ${.TARGET}
 CLEANFILES+= ${file}.msg

Modified: head/share/mk/bsd.prog.mk
==============================================================================
--- head/share/mk/bsd.prog.mk	Tue May 31 21:21:32 2016	(r301078)
+++ head/share/mk/bsd.prog.mk	Tue May 31 21:22:19 2016	(r301079)
@@ -90,7 +90,7 @@ OBJS+=  ${SRCS:N*.h:R:S/$/.o/g}
 beforelinking: ${OBJS}
 ${PROG_FULL}: beforelinking
 .endif
-${PROG_FULL}: ${OBJS}
+${PROG_FULL}: ${OBJS} ${OP_META}
 .if defined(PROG_CXX)
 	${CXX:N${CCACHE_BIN}} ${CXXFLAGS:N-M*} ${LDFLAGS} -o ${.TARGET} \
 	    ${OBJS} ${LDADD}
@@ -122,7 +122,7 @@ OBJS+=	${PROG}.o
 beforelinking: ${OBJS}
 ${PROG_FULL}: beforelinking
 .endif
-${PROG_FULL}: ${OBJS}
+${PROG_FULL}: ${OBJS} ${OP_META}
 .if defined(PROG_CXX)
 	${CXX:N${CCACHE_BIN}} ${CXXFLAGS:N-M*} ${LDFLAGS} -o ${.TARGET} \
 	    ${OBJS} ${LDADD}
@@ -138,11 +138,11 @@ ${PROG_FULL}: ${OBJS}
 .endif # !defined(SRCS)
 
 .if ${MK_DEBUG_FILES} != "no"
-${PROG}: ${PROG_FULL} ${PROGNAME}.debug
+${PROG}: ${PROG_FULL} ${PROGNAME}.debug ${OP_META}
 	${OBJCOPY} --strip-debug --add-gnu-debuglink=${PROGNAME}.debug \
 	    ${PROG_FULL} ${.TARGET}
 
-${PROGNAME}.debug: ${PROG_FULL}
+${PROGNAME}.debug: ${PROG_FULL} ${OP_META}
 	${OBJCOPY} --only-keep-debug ${PROG_FULL} ${.TARGET}
 .endif
 

Modified: head/share/mk/sys.mk
==============================================================================
--- head/share/mk/sys.mk	Tue May 31 21:21:32 2016	(r301078)
+++ head/share/mk/sys.mk	Tue May 31 21:22:19 2016	(r301079)
@@ -58,6 +58,9 @@ META_MODE+= nofilemon
 META_MODE?= normal
 .export META_MODE
 .MAKE.MODE?= ${META_MODE}
+.if ${.MAKE.MODE:Mmeta*} != ""
+OP_META=	.META
+.endif
 
 .if ${MK_AUTO_OBJ} == "yes"
 # This needs to be done early - before .PATH is computed
@@ -286,99 +289,99 @@ YFLAGS		?=	-d
 
 # non-Posix rule set
 
-.sh:
+.sh: ${OP_META}
 	cp -f ${.IMPSRC} ${.TARGET}
 	chmod a+x ${.TARGET}
 
-.c.ln:
+.c.ln: ${OP_META}
 	${LINT} ${LINTOBJFLAGS} ${CFLAGS:M-[DIU]*} ${.IMPSRC} || \
 	    touch ${.TARGET}
 
-.cc.ln .C.ln .cpp.ln .cxx.ln:
+.cc.ln .C.ln .cpp.ln .cxx.ln: ${OP_META}
 	${LINT} ${LINTOBJFLAGS} ${CXXFLAGS:M-[DIU]*} ${.IMPSRC} || \
 	    touch ${.TARGET}
 
-.c:
+.c: ${OP_META}
 	${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET}
 	${CTFCONVERT_CMD}
 
-.c.o:
+.c.o: ${OP_META}
 	${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
 	${CTFCONVERT_CMD}
 
-.cc .cpp .cxx .C:
+.cc .cpp .cxx .C: ${OP_META}
 	${CXX} ${CXXFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET}
 
-.cc.o .cpp.o .cxx.o .C.o:
+.cc.o .cpp.o .cxx.o .C.o: ${OP_META}
 	${CXX} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
 
-.m.o:
+.m.o: ${OP_META}
 	${OBJC} ${OBJCFLAGS} -c ${.IMPSRC} -o ${.TARGET}
 	${CTFCONVERT_CMD}
 
-.p.o:
+.p.o: ${OP_META}
 	${PC} ${PFLAGS} -c ${.IMPSRC} -o ${.TARGET}
 	${CTFCONVERT_CMD}
 
-.e .r .F .f:
+.e .r .F .f: ${OP_META}
 	${FC} ${RFLAGS} ${EFLAGS} ${FFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} \
 	    -o ${.TARGET}
 
-.e.o .r.o .F.o .f.o:
+.e.o .r.o .F.o .f.o: ${OP_META}
 	${FC} ${RFLAGS} ${EFLAGS} ${FFLAGS} -c ${.IMPSRC} -o ${.TARGET}
 
-.S.o:
+.S.o: ${OP_META}
 	${CC:N${CCACHE_BIN}} ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET}
 	${CTFCONVERT_CMD}
 
-.asm.o:
+.asm.o: ${OP_META}
 	${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} \
 	    -o ${.TARGET}
 	${CTFCONVERT_CMD}
 
-.s.o:
+.s.o: ${OP_META}
 	${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC}
 	${CTFCONVERT_CMD}
 
 # XXX not -j safe
-.y.o:
+.y.o: ${OP_META}
 	${YACC} ${YFLAGS} ${.IMPSRC}
 	${CC} ${CFLAGS} -c y.tab.c -o ${.TARGET}
 	rm -f y.tab.c
 	${CTFCONVERT_CMD}
 
-.l.o:
+.l.o: ${OP_META}
 	${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.PREFIX}.tmp.c
 	${CC} ${CFLAGS} -c ${.PREFIX}.tmp.c -o ${.TARGET}
 	rm -f ${.PREFIX}.tmp.c
 	${CTFCONVERT_CMD}
 
 # XXX not -j safe
-.y.c:
+.y.c: ${OP_META}
 	${YACC} ${YFLAGS} ${.IMPSRC}
 	mv y.tab.c ${.TARGET}
 
-.l.c:
+.l.c: ${OP_META}
 	${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.TARGET}
 
-.s.out .c.out .o.out:
+.s.out .c.out .o.out: ${OP_META}
 	${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET}
 	${CTFCONVERT_CMD}
 
-.f.out .F.out .r.out .e.out:
+.f.out .F.out .r.out .e.out: ${OP_META}
 	${FC} ${EFLAGS} ${RFLAGS} ${FFLAGS} ${LDFLAGS} ${.IMPSRC} \
 	    ${LDLIBS} -o ${.TARGET}
 	rm -f ${.PREFIX}.o
 	${CTFCONVERT_CMD}
 
 # XXX not -j safe
-.y.out:
+.y.out: ${OP_META}
 	${YACC} ${YFLAGS} ${.IMPSRC}
 	${CC} ${CFLAGS} ${LDFLAGS} y.tab.c ${LDLIBS} -ly -o ${.TARGET}
 	rm -f y.tab.c
 	${CTFCONVERT_CMD}
 
-.l.out:
+.l.out: ${OP_META}
 	${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.PREFIX}.tmp.c
 	${CC} ${CFLAGS} ${LDFLAGS} ${.PREFIX}.tmp.c ${LDLIBS} -ll -o ${.TARGET}
 	rm -f ${.PREFIX}.tmp.c

Modified: head/sys/conf/kern.post.mk
==============================================================================
--- head/sys/conf/kern.post.mk	Tue May 31 21:21:32 2016	(r301078)
+++ head/sys/conf/kern.post.mk	Tue May 31 21:22:19 2016	(r301079)
@@ -108,10 +108,10 @@ modules-all modules-depend: modules-obj
 FULLKERNEL=	${KERNEL_KO}
 .else
 FULLKERNEL=	${KERNEL_KO}.full
-${KERNEL_KO}: ${FULLKERNEL} ${KERNEL_KO}.debug
+${KERNEL_KO}: ${FULLKERNEL} ${KERNEL_KO}.debug ${OP_META}
 	${OBJCOPY} --strip-debug --add-gnu-debuglink=${KERNEL_KO}.debug \
 	    ${FULLKERNEL} ${.TARGET}
-${KERNEL_KO}.debug: ${FULLKERNEL}
+${KERNEL_KO}.debug: ${FULLKERNEL} ${OP_META}
 	${OBJCOPY} --only-keep-debug ${FULLKERNEL} ${.TARGET}
 install.debug reinstall.debug: gdbinit
 	cd ${.CURDIR}; ${MAKE} ${.TARGET:R}
@@ -127,7 +127,7 @@ gdbinit:
 .endif
 .endif
 
-${FULLKERNEL}: ${SYSTEM_DEP} vers.o
+${FULLKERNEL}: ${SYSTEM_DEP} vers.o ${OP_META}
 	@rm -f ${.TARGET}
 	@echo linking ${.TARGET}
 	${SYSTEM_LD}
@@ -150,9 +150,9 @@ LNFILES=	${CFILES:T:S/.c$/.ln/}
 .for mfile in ${MFILES}
 # XXX the low quality .m.o rules gnerated by config are normally used
 # instead of the .m.c rules here.
-${mfile:T:S/.m$/.c/}: ${mfile}
+${mfile:T:S/.m$/.c/}: ${mfile} ${OP_META}
 	${AWK} -f $S/tools/makeobjops.awk ${mfile} -c
-${mfile:T:S/.m$/.h/}: ${mfile}
+${mfile:T:S/.m$/.h/}: ${mfile} ${OP_META}
 	${AWK} -f $S/tools/makeobjops.awk ${mfile} -h
 .endfor
 
@@ -172,18 +172,18 @@ lint: ${LNFILES}
 # dynamic references.  We could probably do a '-Bforcedynamic' mode like
 # in the a.out ld.  For now, this works.
 HACK_EXTRA_FLAGS?= -shared
-hack.So: Makefile
+hack.So: Makefile ${OP_META}
 	:> hack.c
 	${CC} ${HACK_EXTRA_FLAGS} -nostdlib hack.c -o hack.So
 	rm -f hack.c
 
-assym.s: $S/kern/genassym.sh genassym.o
+assym.s: $S/kern/genassym.sh genassym.o ${OP_META}
 	NM='${NM}' NMFLAGS='${NMFLAGS}' sh $S/kern/genassym.sh genassym.o > ${.TARGET}
 
-genassym.o: $S/$M/$M/genassym.c
+genassym.o: $S/$M/$M/genassym.c ${OP_META}
 	${CC} -c ${CFLAGS:N-fno-common} $S/$M/$M/genassym.c
 
-${SYSTEM_OBJS} genassym.o vers.o: opt_global.h
+${SYSTEM_OBJS} genassym.o vers.o: opt_global.h ${OP_META}
 
 # Skip reading .depend when not needed to speed up tree-walks
 # and simple lookups.
@@ -260,7 +260,7 @@ ${__obj}: ${OBJS_DEPEND_GUESS.${__obj}:N
 
 .NOPATH: .depend ${DEPENDFILES_OBJS}
 
-.depend: .PRECIOUS ${SRCS}
+.depend: .PRECIOUS ${SRCS} ${OP_META}
 
 _ILINKS= machine
 .if ${MACHINE} != ${MACHINE_CPUARCH} && ${MACHINE} != "arm64"
@@ -339,26 +339,26 @@ kernel-reinstall:
 	${INSTALL} -p -m 555 -o ${KMODOWN} -g ${KMODGRP} ${KERNEL_KO}.debug ${DESTDIR}${KERN_DEBUGDIR}${KODIR}/
 .endif
 
-config.o env.o hints.o vers.o vnode_if.o:
+config.o env.o hints.o vers.o vnode_if.o: ${OP_META}
 	${NORMAL_C}
 	${NORMAL_CTFCONVERT}
 
-config.ln env.ln hints.ln vers.ln vnode_if.ln:
+config.ln env.ln hints.ln vers.ln vnode_if.ln: ${OP_META}
 	${NORMAL_LINT}
 
-vers.c: $S/conf/newvers.sh $S/sys/param.h ${SYSTEM_DEP}
+vers.c: $S/conf/newvers.sh $S/sys/param.h ${SYSTEM_DEP} ${OP_META}
 	MAKE=${MAKE} sh $S/conf/newvers.sh ${KERN_IDENT}
 
-vnode_if.c: $S/tools/vnode_if.awk $S/kern/vnode_if.src
+vnode_if.c: $S/tools/vnode_if.awk $S/kern/vnode_if.src ${OP_META}
 	${AWK} -f $S/tools/vnode_if.awk $S/kern/vnode_if.src -c
 
 vnode_if.h vnode_if_newproto.h vnode_if_typedef.h: $S/tools/vnode_if.awk \
-    $S/kern/vnode_if.src
-vnode_if.h: vnode_if_newproto.h vnode_if_typedef.h
+    $S/kern/vnode_if.src ${OP_META}
+vnode_if.h: vnode_if_newproto.h vnode_if_typedef.h ${OP_META}
 	${AWK} -f $S/tools/vnode_if.awk $S/kern/vnode_if.src -h
-vnode_if_newproto.h:
+vnode_if_newproto.h: ${OP_META}
 	${AWK} -f $S/tools/vnode_if.awk $S/kern/vnode_if.src -p
-vnode_if_typedef.h:
+vnode_if_typedef.h: ${OP_META}
 	${AWK} -f $S/tools/vnode_if.awk $S/kern/vnode_if.src -q
 
 .if ${MFS_IMAGE:Uno} != "no"
@@ -367,7 +367,7 @@ vnode_if_typedef.h:
 # via linking. Make sure the contents are in the mfs section and rename the
 # start/end/size variables to __start_mfs, __stop_mfs, and mfs_size,
 # respectively.
-embedfs_${MFS_IMAGE:T:R}.o: ${MFS_IMAGE}
+embedfs_${MFS_IMAGE:T:R}.o: ${MFS_IMAGE} ${OP_META}
 	${OBJCOPY} --input-target binary \
 	    --output-target ${EMBEDFS_FORMAT.${MACHINE_ARCH}} \
 	    --binary-architecture ${EMBEDFS_ARCH.${MACHINE_ARCH}} \

Modified: head/sys/conf/kern.pre.mk
==============================================================================
--- head/sys/conf/kern.pre.mk	Tue May 31 21:21:32 2016	(r301078)
+++ head/sys/conf/kern.pre.mk	Tue May 31 21:22:19 2016	(r301079)
@@ -22,6 +22,7 @@ _srcconf_included_:
 # The kernel build always occurs in the object directory which is .CURDIR.
 .if ${.MAKE.MODE:Unormal:Mmeta}
 .MAKE.MODE+=	curdirOk=yes
+OP_META=	.META
 .endif
 
 # Can be overridden by makeoptions or /etc/make.conf

Modified: head/sys/conf/kmod.mk
==============================================================================
--- head/sys/conf/kmod.mk	Tue May 31 21:21:32 2016	(r301078)
+++ head/sys/conf/kmod.mk	Tue May 31 21:22:19 2016	(r301079)
@@ -149,7 +149,7 @@ CTFFLAGS+=	-g
 .endif
 
 .if defined(FIRMWS)
-${KMOD:S/$/.c/}: ${SYSDIR}/tools/fw_stub.awk
+${KMOD:S/$/.c/}: ${SYSDIR}/tools/fw_stub.awk ${OP_META}
 	${AWK} -f ${SYSDIR}/tools/fw_stub.awk ${FIRMWS} -m${KMOD} -c${KMOD:S/$/.c/g} \
 	    ${FIRMWARE_LICENSE:C/.+/-l/}${FIRMWARE_LICENSE}
 
@@ -157,7 +157,7 @@ SRCS+=	${KMOD:S/$/.c/}
 CLEANFILES+=	${KMOD:S/$/.c/}
 
 .for _firmw in ${FIRMWS}
-${_firmw:C/\:.*$/.fwo/:T}:	${_firmw:C/\:.*$//}
+${_firmw:C/\:.*$/.fwo/:T}:	${_firmw:C/\:.*$//} ${OP_META}
 	@${ECHO} ${_firmw:C/\:.*$//} ${.ALLSRC:M*${_firmw:C/\:.*$//}}
 	@if [ -e ${_firmw:C/\:.*$//} ]; then			\
 		${LD} -b binary --no-warn-mismatch ${_LDFLAGS}	\
@@ -188,15 +188,15 @@ PROG=	${KMOD}.ko
 FULLPROG=	${PROG}
 .else
 FULLPROG=	${PROG}.full
-${PROG}: ${FULLPROG} ${PROG}.debug
+${PROG}: ${FULLPROG} ${PROG}.debug ${OP_META}
 	${OBJCOPY} --strip-debug --add-gnu-debuglink=${PROG}.debug \
 	    ${FULLPROG} ${.TARGET}
-${PROG}.debug: ${FULLPROG}
+${PROG}.debug: ${FULLPROG} ${OP_META}
 	${OBJCOPY} --only-keep-debug ${FULLPROG} ${.TARGET}
 .endif
 
 .if ${__KLD_SHARED} == yes
-${FULLPROG}: ${KMOD}.kld
+${FULLPROG}: ${KMOD}.kld ${OP_META}
 .if ${MACHINE_CPUARCH} != "aarch64"
 	${LD} -Bshareable ${_LDFLAGS} -o ${.TARGET} ${KMOD}.kld
 .else
@@ -219,9 +219,9 @@ CLEANFILES+=	export_syms
 .endif
 
 .if ${__KLD_SHARED} == yes
-${KMOD}.kld: ${OBJS}
+${KMOD}.kld: ${OBJS} ${OP_META}
 .else
-${FULLPROG}: ${OBJS}
+${FULLPROG}: ${OBJS} ${OP_META}
 .endif
 	${LD} ${_LDFLAGS} -r -d -o ${.TARGET} ${OBJS}
 .if ${MK_CTF} != "no"
@@ -397,16 +397,16 @@ _MATCHES=${_MFILES:${_MATCH}}
 CLEANFILES+=	${_i}
 .endif
 .endfor # _i
-.m.c:	${SYSDIR}/tools/makeobjops.awk
+.m.c:	${SYSDIR}/tools/makeobjops.awk ${OP_META}
 	${AWK} -f ${SYSDIR}/tools/makeobjops.awk ${.IMPSRC} -c
 
-.m.h:	${SYSDIR}/tools/makeobjops.awk
+.m.h:	${SYSDIR}/tools/makeobjops.awk ${OP_META}
 	${AWK} -f ${SYSDIR}/tools/makeobjops.awk ${.IMPSRC} -h
 
 .for _i in mii pccard
 .if !empty(SRCS:M${_i}devs.h)
 CLEANFILES+=	${_i}devs.h
-${_i}devs.h: ${SYSDIR}/tools/${_i}devs2h.awk ${SYSDIR}/dev/${_i}/${_i}devs
+${_i}devs.h: ${SYSDIR}/tools/${_i}devs2h.awk ${SYSDIR}/dev/${_i}/${_i}devs ${OP_META}
 	${AWK} -f ${SYSDIR}/tools/${_i}devs2h.awk ${SYSDIR}/dev/${_i}/${_i}devs
 .endif
 .endfor # _i
@@ -415,8 +415,9 @@ ${_i}devs.h: ${SYSDIR}/tools/${_i}devs2h
 CLEANFILES+=	bhnd_nvram_map.h
 bhnd_nvram_map.h: ${SYSDIR}/dev/bhnd/tools/nvram_map_gen.awk \
     ${SYSDIR}/dev/bhnd/tools/nvram_map_gen.sh \
-    ${SYSDIR}/dev/bhnd/nvram/nvram_map
-bhnd_nvram_map.h:
+    ${SYSDIR}/dev/bhnd/nvram/nvram_map \
+    ${OP_META}
+bhnd_nvram_map.h: ${OP_META}
 	sh ${SYSDIR}/dev/bhnd/tools/nvram_map_gen.sh \
 	    ${SYSDIR}/dev/bhnd/nvram/nvram_map -h
 .endif
@@ -425,27 +426,28 @@ bhnd_nvram_map.h:
 CLEANFILES+=	bhnd_nvram_map_data.h
 bhnd_nvram_map_data.h: ${SYSDIR}/dev/bhnd/tools/nvram_map_gen.awk \
     ${SYSDIR}/dev/bhnd/tools/nvram_map_gen.sh \
-    ${SYSDIR}/dev/bhnd/nvram/nvram_map
-bhnd_nvram_map_data.h:
+    ${SYSDIR}/dev/bhnd/nvram/nvram_map \
+    ${OP_META}
+bhnd_nvram_map_data.h: ${OP_META}
 	sh ${SYSDIR}/dev/bhnd/tools/nvram_map_gen.sh \
 	    ${SYSDIR}/dev/bhnd/nvram/nvram_map -d
 .endif
 
 .if !empty(SRCS:Musbdevs.h)
 CLEANFILES+=	usbdevs.h
-usbdevs.h: ${SYSDIR}/tools/usbdevs2h.awk ${SYSDIR}/dev/usb/usbdevs
+usbdevs.h: ${SYSDIR}/tools/usbdevs2h.awk ${SYSDIR}/dev/usb/usbdevs ${OP_META}
 	${AWK} -f ${SYSDIR}/tools/usbdevs2h.awk ${SYSDIR}/dev/usb/usbdevs -h
 .endif
 
 .if !empty(SRCS:Musbdevs_data.h)
 CLEANFILES+=	usbdevs_data.h
-usbdevs_data.h: ${SYSDIR}/tools/usbdevs2h.awk ${SYSDIR}/dev/usb/usbdevs
+usbdevs_data.h: ${SYSDIR}/tools/usbdevs2h.awk ${SYSDIR}/dev/usb/usbdevs ${OP_META}
 	${AWK} -f ${SYSDIR}/tools/usbdevs2h.awk ${SYSDIR}/dev/usb/usbdevs -d
 .endif
 
 .if !empty(SRCS:Macpi_quirks.h)
 CLEANFILES+=	acpi_quirks.h
-acpi_quirks.h: ${SYSDIR}/tools/acpi_quirks2h.awk ${SYSDIR}/dev/acpica/acpi_quirks
+acpi_quirks.h: ${SYSDIR}/tools/acpi_quirks2h.awk ${SYSDIR}/dev/acpica/acpi_quirks ${OP_META}
 	${AWK} -f ${SYSDIR}/tools/acpi_quirks2h.awk ${SYSDIR}/dev/acpica/acpi_quirks
 .endif
 
@@ -455,10 +457,10 @@ assym.s: genassym.o
 .if defined(KERNBUILDDIR)
 genassym.o: opt_global.h
 .endif
-assym.s: ${SYSDIR}/kern/genassym.sh
+assym.s: ${SYSDIR}/kern/genassym.sh ${OP_META}
 	sh ${SYSDIR}/kern/genassym.sh genassym.o > ${.TARGET}
 genassym.o: ${SYSDIR}/${MACHINE}/${MACHINE}/genassym.c
-genassym.o: ${SRCS:Mopt_*.h}
+genassym.o: ${SRCS:Mopt_*.h} ${OP_META}
 	${CC} -c ${CFLAGS:N-fno-common} \
 	    ${SYSDIR}/${MACHINE}/${MACHINE}/genassym.c
 .endif


More information about the svn-src-all mailing list