Lines Matching full:distribution

2 Building a Distribution of LLVM
12 combination of LLVM sub-project tools for distribution. This document covers
20 General Distribution Guidance
23 When building a distribution of a compiler it is generally advised to perform a
30 In deciding how to build your distribution there are a few trade-offs that you
33 #. Compile time of the distribution against performance of the built compiler
35 #. Binary size of the distribution against performance of the built compiler
39 distribution, and it will take longer to generate, but it provides the most
42 The guidance for minimizing distribution size is to dynamically link LLVM and
58 The simplest example of building a distribution with reasonable performance is
61 and install the distribution build:
66 $ ninja stage2-distribution
67 $ ninja stage2-install-distribution
69 Difference between ``install`` and ``install-distribution``
73 and ``install-distribution`` targets. The ``install`` target is expected to
75 LLVM testing tools. Alternatively the ``install-distribution`` target, which is
86 generates a ``distribution`` target which builds all the components specified in
90 .. _Multi-distribution configurations: argument
92 Multi-distribution configurations
95 The ``install-distribution`` target described above is for building a single
96 distribution. LLVM's build system also supports building multiple distributions,
97 which can be used to e.g. have one distribution containing just tools and
99 the *LLVM_DISTRIBUTIONS* variable to hold a list of all distribution names
101 then setting the *LLVM_<distribution>_DISTRIBUTION_COMPONENTS* variable to the
102 list of targets for that distribution. For each distribution, the build system
103 generates an ``install-${distribution}-distribution`` target, where
104 ``${distribution}`` is the name of the distribution in lowercase, to install
105 that distribution.
107 Each distribution creates its own set of CMake exports, and the target to
108 install the CMake exports for a particular distribution for a project is named
109 ``${project}-${distribution}-cmake-exports``, where ``${project}`` is the name
110 of the project in lowercase and ``${distribution}`` is the name of the
111 distribution in lowercase, unless the project is LLVM, in which case the target
112 is just named ``${distribution}-cmake-exports``. These targets need to be
113 explicitly included in the *LLVM_<distribution>_DISTRIBUTION_COMPONENTS*
114 variable in order to be included as part of the distribution.
116 Unlike with the single distribution setup, when building multiple distributions,
118 automatically added to any distribution. Instead, you must include the targets
119 explicitly in some *LLVM_<distribution>_DISTRIBUTION_COMPONENTS* list.
123 the last distribution it appears in (the order of distributions is the order
126 different distribution than its umbrella, in which case the target will be
127 exported by the distribution it appears in (and not the distribution its
129 enforce a target appearing in only one distribution and umbrella distributions
168 the binaries in the distribution, but it will create much faster binaries. This
169 option should not be used if your distribution includes static archives, as the
217 When building a distribution that includes LLVM runtime projects (i.e. libcxx,
229 the :ref:`Multi-distribution configurations` section above for details on this
235 components of runtime libraries that you want to include in your distribution.