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