WITH_META_MODE: Enable bmake's missing meta rebuild feature

This commit is contained in:
Bryan Drewery 2016-06-05 23:04:42 +00:00
parent bd2464674d
commit 3681768c3f
4 changed files with 21 additions and 3 deletions

View File

@ -162,8 +162,13 @@ _MAKEOBJDIRPREFIX!= /usr/bin/env -i PATH=${PATH} MK_AUTO_OBJ=no ${MAKE} \
# We cannot blindly use a make which may not be the one we want
# so be exlicit - until all choice is removed.
WANT_MAKE= bmake
.if !empty(.MAKE.MODE:Mmeta)
# 20160604 - support missing-meta,missing-filemon and performance improvements
WANT_MAKE_VERSION= 20160604
.else
# 20160220 - support .dinclude for FAST_DEPEND.
WANT_MAKE_VERSION= 20160220
.endif
MYMAKE= ${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE}/${WANT_MAKE}
.if defined(.PARSEDIR)
HAVE_MAKE= bmake

View File

@ -278,3 +278,8 @@ CFLAGS+= ${CROSS_TARGET_FLAGS}
ACFLAGS+= ${CROSS_TARGET_FLAGS}
LDFLAGS+= -Wl,-m -Wl,elf_${MACHINE_ARCH}_fbsd
.endif
META_MODE+= missing-meta=yes
.if empty(META_MODE:Mnofilemon)
META_MODE+= missing-filemon=yes
.endif

View File

@ -47,6 +47,9 @@ __ENV_ONLY_OPTIONS:= \
.elif ${MK_META_MODE} == "yes" && defined(.MAKEFLAGS) && ${.MAKEFLAGS:M-B} == ""
# verbose will show .MAKE.META.PREFIX for each target.
META_MODE+= meta verbose
.if !defined(NO_META_MISSING)
META_MODE+= missing-meta=yes
.endif
# silent will hide command output if a .meta file is created.
.if !defined(NO_SILENT)
META_MODE+= silent=yes
@ -57,6 +60,10 @@ META_MODE+= silent=yes
.endif
META_MODE+= nofilemon
.endif
# Require filemon data with bmake
.if empty(META_MODE:Mnofilemon)
META_MODE+= missing-filemon=yes
.endif
.endif
META_MODE?= normal
.export META_MODE

View File

@ -19,9 +19,10 @@ The command to execute changes.
.It
The current working directory changes.
.It
The target's meta file is missing, if it had
.Sy .META
as a dependency.
The target's meta file is missing.
.It
The target's meta file is missing filemon data when filemon is loaded
and a previous run did not have it loaded.
.It
[requires
.Xr filemon 4 ]