Index: Makefile =================================================================== --- Makefile +++ Makefile @@ -106,7 +106,7 @@ # Note: we use this awkward construct to be compatible with FreeBSD's # old make used in 10.0 and 9.2 and earlier. -.if defined(MK_META_MODE) && ${MK_META_MODE} == "yes" && !make(showconfig) +.if defined(MK_DIRDEPS_BUILD) && ${MK_DIRDEPS_BUILD} == "yes" && !make(showconfig) # targets/Makefile plays the role of top-level .include "targets/Makefile" .else @@ -498,15 +498,15 @@ # This makefile does not run in meta mode .MAKE.MODE= normal # Normally the things we run from here don't either. -# Using -DWITH_META_FILES +# Using -DWITH_META_MODE # we can buildworld with meta files created which are useful # for debugging, but without any of the rest of a meta mode build. -MK_META_MODE= no +MK_DIRDEPS_BUILD= no MK_STAGING= no # tell meta.autodep.mk to not even think about updating anything. UPDATE_DEPENDFILE= NO .if !make(showconfig) -.export MK_META_MODE MK_STAGING UPDATE_DEPENDFILE +.export MK_DIRDEPS_BUILD MK_STAGING UPDATE_DEPENDFILE .endif .if make(universe) @@ -516,4 +516,4 @@ .endif .endif # bmake -.endif # META_MODE +.endif # DIRDEPS_BUILD Index: include/Makefile =================================================================== --- include/Makefile +++ include/Makefile @@ -166,7 +166,7 @@ mtree -deU ${MTREE_FOLLOWS_SYMLINKS} \ -f ${.CURDIR}/../etc/mtree/BSD.include.dist \ -p ${DESTDIR}${INCLUDEDIR} > /dev/null -.if ${MK_META_MODE} == "yes" +.if ${MK_DIRDEPS_BUILD} == "yes" @touch ${.TARGET} .endif @@ -255,7 +255,7 @@ cd ${.CURDIR}/../sys/teken; \ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 teken.h \ ${DESTDIR}${INCLUDEDIR}/teken -.if ${MK_META_MODE} == "yes" +.if ${MK_DIRDEPS_BUILD} == "yes" @touch ${.OBJDIR}/${.TARGET} .endif @@ -372,7 +372,7 @@ ln -fs ../../../sys/rpc/$$h \ ${DESTDIR}${INCLUDEDIR}/rpc; \ done -.if ${MK_META_MODE} == "yes" +.if ${MK_DIRDEPS_BUILD} == "yes" @touch ${.OBJDIR}/${.TARGET} .endif Index: share/mk/bsd.dep.mk =================================================================== --- share/mk/bsd.dep.mk +++ share/mk/bsd.dep.mk @@ -163,7 +163,7 @@ beforebuild: ${DHDRS} .endif -.if ${MK_META_MODE} == "yes" +.if ${MK_DIRDEPS_BUILD} == "yes" .include # this depend: bypasses that below # the dependency helps when bootstrapping Index: share/mk/bsd.subdir.mk =================================================================== --- share/mk/bsd.subdir.mk +++ share/mk/bsd.subdir.mk @@ -49,7 +49,7 @@ .include .if !defined(NEED_SUBDIR) -.if ${.MAKE.LEVEL} == 0 && ${MK_META_MODE} == "yes" && !empty(SUBDIR) && !(make(clean*) || make(destroy*)) +.if ${.MAKE.LEVEL} == 0 && ${MK_DIRDEPS_BUILD} == "yes" && !empty(SUBDIR) && !(make(clean*) || make(destroy*)) .include # ignore this _SUBDIR: Index: share/mk/local.meta.sys.mk =================================================================== --- share/mk/local.meta.sys.mk +++ share/mk/local.meta.sys.mk @@ -2,7 +2,7 @@ # local configuration specific to meta mode # XXX some of this should be in meta.sys.mk -# we assume that MK_META_MODE=yes +# we assume that MK_DIRDEPS_BUILD=yes # we need this until there is an alternative MK_INSTALL_AS_USER= yes Index: share/mk/local.sys.mk =================================================================== --- share/mk/local.sys.mk +++ share/mk/local.sys.mk @@ -1,6 +1,6 @@ # $FreeBSD$ -.if ${MK_META_MODE} == "yes" +.if ${MK_DIRDEPS_BUILD} == "yes" MAKE_PRINT_VAR_ON_ERROR+= \ .CURDIR \ .MAKE \ @@ -23,3 +23,15 @@ .endif .include "src.sys.mk" + +.if ${.MAKE.MODE:Unormal:Mmeta*} != "" +# we can afford to use cookies to prevent some targets +# re-running needlessly +META_COOKIE_TOUCH= touch ${COOKIE.${.TARGET}:U${.TARGET}} +# some targets need to be .PHONY - but not in meta mode +META_NOPHONY= +.else +META_COOKIE_TOUCH= +META_NOPHONY= .PHONY +.endif + Index: share/mk/sys.mk =================================================================== --- share/mk/sys.mk +++ share/mk/sys.mk @@ -20,14 +20,14 @@ # Some options we need now __DEFAULT_NO_OPTIONS= \ DIRDEPS_CACHE \ + DIRDEPS_BUILD \ META_MODE \ - META_FILES \ __DEFAULT_DEPENDENT_OPTIONS= \ - AUTO_OBJ/META_MODE \ - STAGING/META_MODE \ - SYSROOT/META_MODE + AUTO_OBJ/DIRDEPS_BUILD \ + STAGING/DIRDEPS_BUILD \ + SYSROOT/DIRDEPS_BUILD __ENV_ONLY_OPTIONS:= \ ${__DEFAULT_NO_OPTIONS} \ @@ -43,9 +43,9 @@ .include -.if ${MK_META_MODE} == "yes" +.if ${MK_DIRDEPS_BUILD} == "yes" .sinclude -.elif ${MK_META_FILES} == "yes" && defined(.MAKEFLAGS) +.elif ${MK_META_MODE} == "yes" && defined(.MAKEFLAGS) .if ${.MAKEFLAGS:M-B} == "" .MAKE.MODE= meta verbose .endif Index: tools/build/options/WITH_DIRDEPS_CACHE =================================================================== --- tools/build/options/WITH_DIRDEPS_CACHE +++ tools/build/options/WITH_DIRDEPS_CACHE @@ -2,4 +2,4 @@ Cache result of dirdeps.mk which can save significant time for subsequent builds. Depends on -.Va WITH_META_MODE . +.Va WITH_DIRDEPS_BUILD . Index: tools/build/options/WITH_META_FILES =================================================================== --- tools/build/options/WITH_META_FILES +++ tools/build/options/WITH_META_FILES @@ -1,3 +0,0 @@ -.\" $FreeBSD$ -Create meta files during non META_MODE build. -The meta files can be useful for debugging. Index: tools/build/options/WITH_META_MODE =================================================================== --- tools/build/options/WITH_META_MODE +++ tools/build/options/WITH_META_MODE @@ -1,37 +1,3 @@ .\" $FreeBSD$ -Enable building in meta mode. -This is an experimental build feature. -For details see -http://www.crufty.net/sjg/docs/freebsd-meta-mode.htm. -.Pp -The build is driven by dirdeps.mk using -.Va DIRDEPS -stored in -Makefile.depend files found in each directory. -.Pp -The build can be started from anywhere, and behaves the same. -The initial instance of -.Xr make 1 -recursively reads -.Va DIRDEPS -from Makefile.depend -computing a graph of tree dependencies from the current origin. -Setting -.Va NO_DIRDEPS -will skip checking dirdep dependencies and will only build in the current -directory. -.Pp -As each target is made -.Xr make 1 -produces a meta file which is used to capture (and compare) -the command line, -as well as any command output. -If -.Xr filemon 4 -is available the meta file will also capture a record of files -used to produce the target by tracking syscalls. -.Pp -The build will hide commands ran unless -.Va NO_SILENT -is defined. -.Pp +Create meta files when not doing DIRDEPS_BUILD. +The meta files can be useful for debugging. Index: tools/build/options/WITH_STAGING =================================================================== --- tools/build/options/WITH_STAGING +++ tools/build/options/WITH_STAGING @@ -4,4 +4,4 @@ .Va DESTDIR with some extra meta data to ensure dependencies can be tracked. Depends on -.Va WITH_META_MODE . +.Va WITH_DIRDEPS_BUILD . Index: tools/build/options/WITH_SYSROOT =================================================================== --- tools/build/options/WITH_SYSROOT +++ tools/build/options/WITH_SYSROOT @@ -1,4 +1,4 @@ .\" $FreeBSD$ Enable use of sysroot during build. Depends on -.Va WITH_META_MODE . +.Va WITH_DIRDEPS_BUILD . Index: usr.bin/xlint/llib/Makefile =================================================================== --- usr.bin/xlint/llib/Makefile +++ usr.bin/xlint/llib/Makefile @@ -16,6 +16,6 @@ .include -.if ${MK_META_MODE} == "yes" +.if ${MK_DIRDEPS_BUILD} == "yes" LINTFLAGS+= -I${STAGE_INCLUDEDIR} .endif