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.

export

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

compile

Build the compile tier. The compile tier compiles all C/C++ files.

libs

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

tools

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.

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.

install-manifests

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.

install-tests

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.

buildsymbols

Create a symbols archive for the current build.

This must be performed after a successful build.

check

Run build system tests.