xref: /freebsd/tools/build/options/WITH_META_MODE (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1Create
2.Xr make 1
3meta files when building, which can provide a reliable incremental build when
4using
5.Xr filemon 4 .
6The meta file is created in OBJDIR as
7.Pa target.meta .
8These meta files track the command that was executed, its output, and the
9current directory.
10The
11.Xr filemon 4
12module is required unless
13.Va NO_FILEMON
14is defined.
15When the module is loaded, any files used by the commands executed are
16tracked as dependencies for the target in its meta file.
17The target is considered out-of-date and rebuilt if any of these
18conditions are true compared to the last build:
19.Bl -bullet -compact
20.It
21The command to execute changes.
22.It
23The current working directory changes.
24.It
25The target's meta file is missing.
26.It
27The target's meta file is missing filemon data when filemon is loaded
28and a previous run did not have it loaded.
29.It
30[requires
31.Xr filemon 4 ]
32Files read, executed or linked to are newer than the target.
33.It
34[requires
35.Xr filemon 4 ]
36Files read, written, executed or linked are missing.
37.El
38The meta files can also be useful for debugging.
39.Pp
40The build hides commands that are executed unless
41.Va NO_SILENT
42is defined.
43Errors cause
44.Xr make 1
45to show some of its environment for further debugging.
46.Pp
47The build operates as it normally would otherwise.
48This option originally invoked a different build system but that was renamed
49to
50.Va WITH_DIRDEPS_BUILD .
51