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 # We cannot blindly use a make which may not be the one we want
# so be exlicit - until all choice is removed. # so be exlicit - until all choice is removed.
WANT_MAKE= bmake 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. # 20160220 - support .dinclude for FAST_DEPEND.
WANT_MAKE_VERSION= 20160220 WANT_MAKE_VERSION= 20160220
.endif
MYMAKE= ${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE}/${WANT_MAKE} MYMAKE= ${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE}/${WANT_MAKE}
.if defined(.PARSEDIR) .if defined(.PARSEDIR)
HAVE_MAKE= bmake HAVE_MAKE= bmake

View File

@ -278,3 +278,8 @@ CFLAGS+= ${CROSS_TARGET_FLAGS}
ACFLAGS+= ${CROSS_TARGET_FLAGS} ACFLAGS+= ${CROSS_TARGET_FLAGS}
LDFLAGS+= -Wl,-m -Wl,elf_${MACHINE_ARCH}_fbsd LDFLAGS+= -Wl,-m -Wl,elf_${MACHINE_ARCH}_fbsd
.endif .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} == "" .elif ${MK_META_MODE} == "yes" && defined(.MAKEFLAGS) && ${.MAKEFLAGS:M-B} == ""
# verbose will show .MAKE.META.PREFIX for each target. # verbose will show .MAKE.META.PREFIX for each target.
META_MODE+= meta verbose 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. # silent will hide command output if a .meta file is created.
.if !defined(NO_SILENT) .if !defined(NO_SILENT)
META_MODE+= silent=yes META_MODE+= silent=yes
@ -57,6 +60,10 @@ META_MODE+= silent=yes
.endif .endif
META_MODE+= nofilemon META_MODE+= nofilemon
.endif .endif
# Require filemon data with bmake
.if empty(META_MODE:Mnofilemon)
META_MODE+= missing-filemon=yes
.endif
.endif .endif
META_MODE?= normal META_MODE?= normal
.export META_MODE .export META_MODE

View File

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