xref: /freebsd/tools/build/options/WITH_DIRDEPS_BUILD (revision b2c76c41be32f904179efed29c0ca04d53f3996c)
1This is an alternate build system.
2For details see
3https://www.crufty.net/sjg/docs/freebsd-meta-mode.htm.
4Build commands can be seen from the top-level with:
5.Dl make show-valid-targets
6The build is driven by dirdeps.mk using
7.Va DIRDEPS
8stored in
9Makefile.depend files found in each directory.
10.Pp
11The build can be started from anywhere, and behaves the same.
12The initial instance of
13.Xr make 1
14recursively reads
15.Va DIRDEPS
16from
17.Pa Makefile.depend ,
18computing a graph of tree dependencies from the current origin.
19Setting
20.Va NO_DIRDEPS
21skips checking dirdep dependencies and will only build in the current
22and child directories.
23.Va NO_DIRDEPS_BELOW
24skips building any dirdeps and only build the current directory.
25.Pp
26This also utilizes the
27.Va WITH_META_MODE
28logic for incremental builds.
29.Pp
30The build hides commands executed unless
31.Va NO_SILENT
32is defined.
33.Pp
34Note that there is currently no mass install feature for this.
35This build is designed for producing packages, that can then be installed
36on a target system.
37.Pp
38The implementation in
39.Fx
40is incomplete.
41Completion would require leaf directories for building each kernel
42and package so that their dependencies can be tracked.
43