build/docs/mozbuild/dumbmake.rst
author Nicolas B. Pierron <nicolas.b.pierron@gmail.com>
Thu, 26 Apr 2018 10:14:40 +0000
changeset 472740 eac1b2073bf4985fa4d521bb952cc1305813d6f3
parent 162016 85811665eed7647ab247e1abab263e670c19b02c
permissions -rw-r--r--
Bug 1456183 - Add gio-unix as part of the list of GTK dependencies. r=glandium

dumbmake
========

*dumbmake* is a simple dependency tracker for make.

It turns lists of make targets into longer lists of make targets that
include dependencies.  For example:

    netwerk, package

might be turned into

    netwerk, netwerk/build, toolkit/library, package

The dependency list is read from the plain text file
`topsrcdir/build/dumbmake-dependencies`.  The format best described by
example:

    build_this
        when_this_changes

Interpret this to mean that `build_this` is a dependency of
`when_this_changes`.  More formally, a line (CHILD) indented more than
the preceding line (PARENT) means that CHILD should trigger building
PARENT.  That is, building CHILD will trigger building first CHILD and
then PARENT.

This structure is recursive:

    build_this_when_either_change
        build_this_only_when
            this_changes

This means that `build_this_when_either_change` is a dependency of
`build_this_only_when` and `this_changes`, and `build_this_only_when`
is a dependency of `this_changes`.  Building `this_changes` will build
first `this_changes`, then `build_this_only_when`, and finally
`build_this_when_either_change`.