xref: /freebsd/tools/build/options/WITH_DIRDEPS_BUILD (revision b2c76c41be32f904179efed29c0ca04d53f3996c)
12b519b17SSimon J. GerratyThis is an alternate build system.
2948f327eSSimon J. GerratyFor details see
3e515b9b4SWolfram Schneiderhttps://www.crufty.net/sjg/docs/freebsd-meta-mode.htm.
4f43bc6d1SBryan DreweryBuild commands can be seen from the top-level with:
5f43bc6d1SBryan Drewery.Dl make show-valid-targets
6948f327eSSimon J. GerratyThe build is driven by dirdeps.mk using
7948f327eSSimon J. Gerraty.Va DIRDEPS
8948f327eSSimon J. Gerratystored in
9948f327eSSimon J. GerratyMakefile.depend files found in each directory.
10948f327eSSimon J. Gerraty.Pp
11948f327eSSimon J. GerratyThe build can be started from anywhere, and behaves the same.
12948f327eSSimon J. GerratyThe initial instance of
13948f327eSSimon J. Gerraty.Xr make 1
14948f327eSSimon J. Gerratyrecursively reads
15948f327eSSimon J. Gerraty.Va DIRDEPS
167a206c31SWarren Blockfrom
177a206c31SWarren Block.Pa Makefile.depend ,
18948f327eSSimon J. Gerratycomputing a graph of tree dependencies from the current origin.
19948f327eSSimon J. GerratySetting
20948f327eSSimon J. Gerraty.Va NO_DIRDEPS
217a206c31SWarren Blockskips checking dirdep dependencies and will only build in the current
224cfc7d9dSBryan Dreweryand child directories.
234cfc7d9dSBryan Drewery.Va NO_DIRDEPS_BELOW
247a206c31SWarren Blockskips building any dirdeps and only build the current directory.
25948f327eSSimon J. Gerraty.Pp
26f43bc6d1SBryan DreweryThis also utilizes the
27f43bc6d1SBryan Drewery.Va WITH_META_MODE
28f43bc6d1SBryan Drewerylogic for incremental builds.
29948f327eSSimon J. Gerraty.Pp
307a206c31SWarren BlockThe build hides commands executed unless
31948f327eSSimon J. Gerraty.Va NO_SILENT
32948f327eSSimon J. Gerratyis defined.
33948f327eSSimon J. Gerraty.Pp
34f43bc6d1SBryan DreweryNote that there is currently no mass install feature for this.
352b519b17SSimon J. GerratyThis build is designed for producing packages, that can then be installed
362b519b17SSimon J. Gerratyon a target system.
37f43bc6d1SBryan Drewery.Pp
38*722cfce5SSimon J. GerratyThe implementation in
39*722cfce5SSimon J. Gerraty.Fx
40*722cfce5SSimon J. Gerratyis incomplete.
41*722cfce5SSimon J. GerratyCompletion would require leaf directories for building each kernel
422b519b17SSimon J. Gerratyand package so that their dependencies can be tracked.
43