1*7a206c31SWarren BlockCreate 2f43bc6d1SBryan Drewery.Xr make 1 3f43bc6d1SBryan Drewerymeta files when building, which can provide a reliable incremental build when 4f43bc6d1SBryan Dreweryusing 5f43bc6d1SBryan Drewery.Xr filemon 4 . 6*7a206c31SWarren BlockThe meta file is created in OBJDIR as 7f43bc6d1SBryan Drewery.Pa target.meta . 8*7a206c31SWarren BlockThese meta files track the command that was executed, its output, and the 9*7a206c31SWarren Blockcurrent directory. 10b8ef21b8SBryan DreweryThe 11d32e910cSBryan Drewery.Xr filemon 4 12b8ef21b8SBryan Drewerymodule is required unless 13b8ef21b8SBryan Drewery.Va NO_FILEMON 14b8ef21b8SBryan Dreweryis defined. 15*7a206c31SWarren BlockWhen the module is loaded, any files used by the commands executed are 16*7a206c31SWarren Blocktracked as dependencies for the target in its meta file. 17*7a206c31SWarren BlockThe target is considered out-of-date and rebuilt if any of these 18*7a206c31SWarren Blockconditions are true compared to the last build: 19f43bc6d1SBryan Drewery.Bl -bullet -compact 20f43bc6d1SBryan Drewery.It 21f43bc6d1SBryan DreweryThe command to execute changes. 22f43bc6d1SBryan Drewery.It 23f43bc6d1SBryan DreweryThe current working directory changes. 24f43bc6d1SBryan Drewery.It 253681768cSBryan DreweryThe target's meta file is missing. 263681768cSBryan Drewery.It 273681768cSBryan DreweryThe target's meta file is missing filemon data when filemon is loaded 283681768cSBryan Dreweryand a previous run did not have it loaded. 29f43bc6d1SBryan Drewery.It 30f43bc6d1SBryan Drewery[requires 31f43bc6d1SBryan Drewery.Xr filemon 4 ] 32f43bc6d1SBryan DreweryFiles read, executed or linked to are newer than the target. 33f43bc6d1SBryan Drewery.It 34f43bc6d1SBryan Drewery[requires 35f43bc6d1SBryan Drewery.Xr filemon 4 ] 36f43bc6d1SBryan DreweryFiles read, written, executed or linked are missing. 37f43bc6d1SBryan Drewery.El 38d32e910cSBryan DreweryThe meta files can also be useful for debugging. 39d32e910cSBryan Drewery.Pp 40*7a206c31SWarren BlockThe build hides commands that are executed unless 41d32e910cSBryan Drewery.Va NO_SILENT 42d32e910cSBryan Dreweryis defined. 43*7a206c31SWarren BlockErrors cause 4429f227c1SBryan Drewery.Xr make 1 4529f227c1SBryan Dreweryto show some of its environment for further debugging. 46f43bc6d1SBryan Drewery.Pp 47f43bc6d1SBryan DreweryThe build operates as it normally would otherwise. 48f43bc6d1SBryan DreweryThis option originally invoked a different build system but that was renamed 49f43bc6d1SBryan Dreweryto 50f43bc6d1SBryan Drewery.Va WITH_DIRDEPS_BUILD . 51