build/docs/mozbuild/dumbmake.rst

changeset 0
6474c204b198
     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`.

mercurial