1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/build/docs/mozbuild/dumbmake.rst Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,38 @@ 1.4 +dumbmake 1.5 +======== 1.6 + 1.7 +*dumbmake* is a simple dependency tracker for make. 1.8 + 1.9 +It turns lists of make targets into longer lists of make targets that 1.10 +include dependencies. For example: 1.11 + 1.12 + netwerk, package 1.13 + 1.14 +might be turned into 1.15 + 1.16 + netwerk, netwerk/build, toolkit/library, package 1.17 + 1.18 +The dependency list is read from the plain text file 1.19 +`topsrcdir/build/dumbmake-dependencies`. The format best described by 1.20 +example: 1.21 + 1.22 + build_this 1.23 + when_this_changes 1.24 + 1.25 +Interpret this to mean that `build_this` is a dependency of 1.26 +`when_this_changes`. More formally, a line (CHILD) indented more than 1.27 +the preceding line (PARENT) means that CHILD should trigger building 1.28 +PARENT. That is, building CHILD will trigger building first CHILD and 1.29 +then PARENT. 1.30 + 1.31 +This structure is recursive: 1.32 + 1.33 + build_this_when_either_change 1.34 + build_this_only_when 1.35 + this_changes 1.36 + 1.37 +This means that `build_this_when_either_change` is a dependency of 1.38 +`build_this_only_when` and `this_changes`, and `build_this_only_when` 1.39 +is a dependency of `this_changes`. Building `this_changes` will build 1.40 +first `this_changes`, then `build_this_only_when`, and finally 1.41 +`build_this_when_either_change`.