build/docs/build-targets.rst

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

michael@0 1 .. _build_targets:
michael@0 2
michael@0 3 =============
michael@0 4 Build Targets
michael@0 5 =============
michael@0 6
michael@0 7 When you build with ``mach build``, there are some special targets that can be
michael@0 8 built. This page attempts to document them.
michael@0 9
michael@0 10 Partial Tree Targets
michael@0 11 ====================
michael@0 12
michael@0 13 The targets in this section only build part of the tree. Please note that
michael@0 14 partial tree builds can be unreliable. Use at your own risk.
michael@0 15
michael@0 16 export
michael@0 17 Build the *export* tier. The *export* tier builds everything that is
michael@0 18 required for C/C++ compilation. It stages all header files, processes
michael@0 19 IDLs, etc.
michael@0 20
michael@0 21 compile
michael@0 22 Build the *compile* tier. The *compile* tier compiles all C/C++ files.
michael@0 23 Only applies to builds with ``MOZ_PSEUDO_DERECURSE``.
michael@0 24
michael@0 25 libs
michael@0 26 Build the *libs* tier. The *libs* tier performs linking and performs
michael@0 27 most build steps which aren't related to compilation.
michael@0 28
michael@0 29 tools
michael@0 30 Build the *tools* tier. The *tools* tier mostly deals with supplementary
michael@0 31 tools and compiled tests. It will link tools against libXUL, including
michael@0 32 compiled test binaries.
michael@0 33
michael@0 34 binaries:
michael@0 35 Recompiles and relinks C/C++ files. Only works after a complete normal
michael@0 36 build, but allows for much faster rebuilds of C/C++ code. For performance
michael@0 37 reasons, however, it skips nss, nspr, icu and ffi. This is targeted to
michael@0 38 improve local developer workflow when touching C/C++ code.
michael@0 39 Only applies to builds with ``MOZ_PSEUDO_DERECURSE``.
michael@0 40
michael@0 41 install-manifests
michael@0 42 Process install manifests. Install manifests handle the installation of
michael@0 43 files into the object directory.
michael@0 44
michael@0 45 Unless ``NO_REMOVE=1`` is defined in the environment, files not accounted
michael@0 46 in the install manifests will be deleted from the object directory.
michael@0 47
michael@0 48 install-tests
michael@0 49 Processes the tests install manifest.
michael@0 50
michael@0 51 Common Actions
michael@0 52 ==============
michael@0 53
michael@0 54 The targets in this section correspond to common build-related actions. Many
michael@0 55 of the actions in this section are effectively frontends to shell scripts.
michael@0 56 These actions will likely all be replaced by mach commands someday.
michael@0 57
michael@0 58 buildsymbols
michael@0 59 Create a symbols archive for the current build.
michael@0 60
michael@0 61 This must be performed after a successful build.
michael@0 62
michael@0 63 check
michael@0 64 Run build system tests.

mercurial