michael@0: .. _build_targets: michael@0: michael@0: ============= michael@0: Build Targets michael@0: ============= michael@0: michael@0: When you build with ``mach build``, there are some special targets that can be michael@0: built. This page attempts to document them. michael@0: michael@0: Partial Tree Targets michael@0: ==================== michael@0: michael@0: The targets in this section only build part of the tree. Please note that michael@0: partial tree builds can be unreliable. Use at your own risk. michael@0: michael@0: export michael@0: Build the *export* tier. The *export* tier builds everything that is michael@0: required for C/C++ compilation. It stages all header files, processes michael@0: IDLs, etc. michael@0: michael@0: compile michael@0: Build the *compile* tier. The *compile* tier compiles all C/C++ files. michael@0: Only applies to builds with ``MOZ_PSEUDO_DERECURSE``. michael@0: michael@0: libs michael@0: Build the *libs* tier. The *libs* tier performs linking and performs michael@0: most build steps which aren't related to compilation. michael@0: michael@0: tools michael@0: Build the *tools* tier. The *tools* tier mostly deals with supplementary michael@0: tools and compiled tests. It will link tools against libXUL, including michael@0: compiled test binaries. michael@0: michael@0: binaries: michael@0: Recompiles and relinks C/C++ files. Only works after a complete normal michael@0: build, but allows for much faster rebuilds of C/C++ code. For performance michael@0: reasons, however, it skips nss, nspr, icu and ffi. This is targeted to michael@0: improve local developer workflow when touching C/C++ code. michael@0: Only applies to builds with ``MOZ_PSEUDO_DERECURSE``. michael@0: michael@0: install-manifests michael@0: Process install manifests. Install manifests handle the installation of michael@0: files into the object directory. michael@0: michael@0: Unless ``NO_REMOVE=1`` is defined in the environment, files not accounted michael@0: in the install manifests will be deleted from the object directory. michael@0: michael@0: install-tests michael@0: Processes the tests install manifest. michael@0: michael@0: Common Actions michael@0: ============== michael@0: michael@0: The targets in this section correspond to common build-related actions. Many michael@0: of the actions in this section are effectively frontends to shell scripts. michael@0: These actions will likely all be replaced by mach commands someday. michael@0: michael@0: buildsymbols michael@0: Create a symbols archive for the current build. michael@0: michael@0: This must be performed after a successful build. michael@0: michael@0: check michael@0: Run build system tests.