summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorbdrewery <bdrewery@FreeBSD.org>2016-04-14 22:00:49 +0000
committerbdrewery <bdrewery@FreeBSD.org>2016-04-14 22:00:49 +0000
commit29604bc22bdf48d15f39207fa76035705dea80c6 (patch)
treead3abd0eff0d2b8a1febf16581797be7cd8ab76d /tools
parent82319136aa698e202d3a050b7cf7423eeb3a2dd6 (diff)
downloadFreeBSD-src-29604bc22bdf48d15f39207fa76035705dea80c6.zip
FreeBSD-src-29604bc22bdf48d15f39207fa76035705dea80c6.tar.gz
Add more content for WITH_META_MODE/WITH_DIRDEPS_BUILD.
Sponsored by: EMC / Isilon Storage Division
Diffstat (limited to 'tools')
-rw-r--r--tools/build/options/WITH_DIRDEPS_BUILD20
-rw-r--r--tools/build/options/WITH_META_MODE37
2 files changed, 41 insertions, 16 deletions
diff --git a/tools/build/options/WITH_DIRDEPS_BUILD b/tools/build/options/WITH_DIRDEPS_BUILD
index 981c1a9..334c483 100644
--- a/tools/build/options/WITH_DIRDEPS_BUILD
+++ b/tools/build/options/WITH_DIRDEPS_BUILD
@@ -1,9 +1,9 @@
.\" $FreeBSD$
-Enable building in meta mode.
-This is an experimental build feature.
+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
@@ -23,17 +23,13 @@ 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
diff --git a/tools/build/options/WITH_META_MODE b/tools/build/options/WITH_META_MODE
index 906b557..1d19be1e 100644
--- a/tools/build/options/WITH_META_MODE
+++ b/tools/build/options/WITH_META_MODE
@@ -1,12 +1,41 @@
.\" $FreeBSD$
-Create meta files when not doing DIRDEPS_BUILD.
+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 .
OpenPOWER on IntegriCloud