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