diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 index 0d30a168688d..e9326f24e554 100644 --- a/share/man/man5/src.conf.5 +++ b/share/man/man5/src.conf.5 @@ -1,7 +1,7 @@ .\" DO NOT EDIT-- this file is automatically generated. .\" from FreeBSD: head/tools/build/options/makeman 292283 2015-12-15 18:42:30Z bdrewery .\" $FreeBSD$ -.Dd April 13, 2016 +.Dd April 14, 2016 .Dt SRC.CONF 5 .Os .Sh NAME @@ -473,12 +473,12 @@ executable binary and shared library. .\" from FreeBSD: head/tools/build/options/WITHOUT_DICT 156932 2006-03-21 07:50:50Z ru Set to not build the Webster dictionary files. .It Va WITH_DIRDEPS_BUILD -.\" from FreeBSD: head/tools/build/options/WITH_DIRDEPS_BUILD 297843 2016-04-12 03:37:42Z bdrewery -Enable building in meta mode. -This is an experimental build feature. +.\" from FreeBSD: head/tools/build/options/WITH_DIRDEPS_BUILD 298007 2016-04-14 22:00:49Z bdrewery +This is an experimental build system. For details see http://www.crufty.net/sjg/docs/freebsd-meta-mode.htm. -.Pp +Build commands can be seen from the top-level with: +.Dl make show-valid-targets The build is driven by dirdeps.mk using .Va DIRDEPS stored in @@ -498,20 +498,16 @@ and child directories. .Va NO_DIRDEPS_BELOW will skip building any dirdeps and only build 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. +This also utilizes the +.Va WITH_META_MODE +logic for incremental builds. .Pp The build will hide commands ran unless .Va NO_SILENT is defined. .Pp +Note that there is currently no mass install feature for this. +.Pp When set, it also enforces the following options: .Pp .Bl -item -compact @@ -1062,19 +1058,48 @@ Set to not build utilities for manual pages, .Xr manctl 8 , and related support files. .It Va WITH_META_MODE -.\" from FreeBSD: head/tools/build/options/WITH_META_MODE 297844 2016-04-12 03:40:13Z bdrewery -Create meta files when not doing DIRDEPS_BUILD. +.\" from FreeBSD: head/tools/build/options/WITH_META_MODE 298007 2016-04-14 22:00:49Z bdrewery +Creates +.Xr make 1 +meta files when building, which can provide a reliable incremental build when +using +.Xr filemon 4 . +The meta file is created in the OBJDIR as +.Pa target.meta . +These meta files track the command ran, its output, and the current directory. When the .Xr filemon 4 -module is loaded, dependencies will be tracked for all commands. -If any command, its dependencies, or files it generates are missing then -the target will be considered out-of-date and rebuilt. +module is loaded, any files used by the commands executed will be tracked as +dependencies for the target in its meta file. +The target will be considered out-of-date and rebuilt if any of the following +are true compared to the last build: +.Bl -bullet -compact +.It +The command to execute changes. +.It +The current working directory changes. +.It +The target's meta file is missing. +.It +[requires +.Xr filemon 4 ] +Files read, executed or linked to are newer than the target. +.It +[requires +.Xr filemon 4 ] +Files read, written, executed or linked are missing. +.El The meta files can also be useful for debugging. .Pp The build will hide commands ran unless .Va NO_SILENT is defined. .Pp +The build operates as it normally would otherwise. +This option originally invoked a different build system but that was renamed +to +.Va WITH_DIRDEPS_BUILD . +.Pp This must be set in the environment, make command line, or .Pa /etc/src-env.conf , not