michael@0: dumbmake michael@0: ======== michael@0: michael@0: *dumbmake* is a simple dependency tracker for make. michael@0: michael@0: It turns lists of make targets into longer lists of make targets that michael@0: include dependencies. For example: michael@0: michael@0: netwerk, package michael@0: michael@0: might be turned into michael@0: michael@0: netwerk, netwerk/build, toolkit/library, package michael@0: michael@0: The dependency list is read from the plain text file michael@0: `topsrcdir/build/dumbmake-dependencies`. The format best described by michael@0: example: michael@0: michael@0: build_this michael@0: when_this_changes michael@0: michael@0: Interpret this to mean that `build_this` is a dependency of michael@0: `when_this_changes`. More formally, a line (CHILD) indented more than michael@0: the preceding line (PARENT) means that CHILD should trigger building michael@0: PARENT. That is, building CHILD will trigger building first CHILD and michael@0: then PARENT. michael@0: michael@0: This structure is recursive: michael@0: michael@0: build_this_when_either_change michael@0: build_this_only_when michael@0: this_changes michael@0: michael@0: This means that `build_this_when_either_change` is a dependency of michael@0: `build_this_only_when` and `this_changes`, and `build_this_only_when` michael@0: is a dependency of `this_changes`. Building `this_changes` will build michael@0: first `this_changes`, then `build_this_only_when`, and finally michael@0: `build_this_when_either_change`.