xref: /freebsd/tools/build/options/WITH_DIRDEPS_BUILD (revision 2b519b170709b9c2bb9f66641737d1d80a5d2538)
$FreeBSD$
This is an alternate build system. For details see https://www.crufty.net/sjg/docs/freebsd-meta-mode.htm. 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 Makefile.depend files found in each directory.

p The build can be started from anywhere, and behaves the same. The initial instance of .Xr make 1 recursively reads .Va DIRDEPS from

a Makefile.depend , computing a graph of tree dependencies from the current origin. Setting .Va NO_DIRDEPS skips checking dirdep dependencies and will only build in the current and child directories. .Va NO_DIRDEPS_BELOW skips building any dirdeps and only build the current directory.

p This also utilizes the .Va WITH_META_MODE logic for incremental builds.

p The build hides commands executed unless .Va NO_SILENT is defined.

p Note that there is currently no mass install feature for this. This build is designed for producing packages, that can then be installed on a target system.

p The implementation in FreeBSD is incomplete. Competion would require leaf directories for building each kernel and package so that their dependencies can be tracked.