Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Apr 2016 22:00:49 +0000 (UTC)
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r298007 - head/tools/build/options
Message-ID:  <201604142200.u3EM0n9A055924@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bdrewery
Date: Thu Apr 14 22:00:49 2016
New Revision: 298007
URL: https://svnweb.freebsd.org/changeset/base/298007

Log:
  Add more content for WITH_META_MODE/WITH_DIRDEPS_BUILD.
  
  Sponsored by:	EMC / Isilon Storage Division

Modified:
  head/tools/build/options/WITH_DIRDEPS_BUILD
  head/tools/build/options/WITH_META_MODE

Modified: head/tools/build/options/WITH_DIRDEPS_BUILD
==============================================================================
--- head/tools/build/options/WITH_DIRDEPS_BUILD	Thu Apr 14 22:00:33 2016	(r298006)
+++ head/tools/build/options/WITH_DIRDEPS_BUILD	Thu Apr 14 22:00:49 2016	(r298007)
@@ -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

Modified: head/tools/build/options/WITH_META_MODE
==============================================================================
--- head/tools/build/options/WITH_META_MODE	Thu Apr 14 22:00:33 2016	(r298006)
+++ head/tools/build/options/WITH_META_MODE	Thu Apr 14 22:00:49 2016	(r298007)
@@ -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 .



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201604142200.u3EM0n9A055924>