build/docs/mozbuild/dumbmake.rst
author Emilio Cobos Álvarez <emilio@crisal.io>
Fri, 06 Dec 2019 01:03:45 +0000
changeset 566733 8919727c131ee5a5389d28f2f951b6c3ef9953e0
parent 162016 85811665eed7647ab247e1abab263e670c19b02c
permissions -rw-r--r--
Bug 1601624 - Don't suppress shrink-to-fit resize reflows on unchanged size. r=tnikkel a=jcristau As the width and height arguments to ResizeReflow are treated as constraints, not the final size, in that case. Differential Revision: https://phabricator.services.mozilla.com/D56108

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`.