author Kyle Huey <>
Sat, 15 Mar 2014 12:00:15 -0700
changeset 190962 32f48d6d3389ea5db45cfc6e452ec52595c11a43
parent 163398 6be8c784235c92a7c72c1cf9cc797cf564cc8335
child 214041 7ac8d502c5948902b7ccacc6d10d013b20764a92
permissions -rw-r--r--
Bug 967364: Rename already_AddRefed::get to take. r=bsmedberg

.. _build_targets:

Build Targets

When you build with ``mach build``, there are some special targets that can be
built. This page attempts to document them.

Partial Tree Targets

The targets in this section only build part of the tree. Please note that
partial tree builds can be unreliable. Use at your own risk.

   Build the *export* tier. The *export* tier builds everything that is
   required for C/C++ compilation. It stages all header files, processes
   IDLs, etc.

   Build the *compile* tier. The *compile* tier compiles all C/C++ files.
   Only applies to builds with ``MOZ_PSEUDO_DERECURSE``.

   Build the *libs* tier. The *libs* tier performs linking and performs
   most build steps which aren't related to compilation.

   Build the *tools* tier. The *tools* tier mostly deals with supplementary
   tools and compiled tests. It will link tools against libXUL, including
   compiled test binaries.

   Recompiles and relinks C/C++ files. Only works after a complete normal
   build, but allows for much faster rebuilds of C/C++ code. For performance
   reasons, however, it skips nss, nspr, icu and ffi. This is targeted to
   improve local developer workflow when touching C/C++ code.
   Only applies to builds with ``MOZ_PSEUDO_DERECURSE``.

   Process install manifests. Install manifests handle the installation of
   files into the object directory.

   Unless ``NO_REMOVE=1`` is defined in the environment, files not accounted
   in the install manifests will be deleted from the object directory.

   Processes the tests install manifest.

Common Actions

The targets in this section correspond to common build-related actions. Many
of the actions in this section are effectively frontends to shell scripts.
These actions will likely all be replaced by mach commands someday.

   Create a symbols archive for the current build.

   This must be performed after a successful build.

   Run build system tests.