Source code

Revision control

Copy as Markdown

Other Tools

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