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