summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--documentation/ref-manual/ref-classes.xml72
-rw-r--r--documentation/ref-manual/ref-variables.xml147
2 files changed, 219 insertions, 0 deletions
diff --git a/documentation/ref-manual/ref-classes.xml b/documentation/ref-manual/ref-classes.xml
index e9ebd89..1be7dd5 100644
--- a/documentation/ref-manual/ref-classes.xml
+++ b/documentation/ref-manual/ref-classes.xml
@@ -781,6 +781,78 @@
</para>
</section>
+<section id='ref-classes-icecc'>
+ <title><filename>icecc.bbclass</filename></title>
+
+ <para>
+ The Icecream distributed compile support (<filename>icecc</filename>)
+ class stages directories with symlinks from
+ <filename>gcc</filename> and <filename>g++</filename> to
+ <filename>icecc</filename>, for both native and cross compilers.
+ Depending on each configure or compile, the OpenEmbedded build system
+ adds the directories at the head of the <filename>PATH</filename> list
+ and then sets
+ <link linkend='var-ICECC_CXX'><filename>ICECC_CXX</filename></link>
+ and
+ <link linkend='var-ICECC_CC'><filename>ICEC_CC</filename></link>.
+ </para>
+
+ <para>
+ For the cross compiler, the class creates a <filename>tar.gz</filename>
+ file that contains the Yocto Project toolchain and sets
+ <link linkend='var-ICECC_VERSION'><filename>ICECC_VERSION</filename></link>
+ accordingly.
+ </para>
+
+ <para>
+ The class handles all three different compile stages
+ (i.e native ,cross-kernel and target) and creates the necessary
+ environment <filename>tar.gz</filename> file to be used by the remote
+ machines.
+ The class also supports SDK generation.
+ </para>
+
+ <para>
+ If <link linkend='var-ICECC_PATH'><filename>ICECC_PATH</filename></link>
+ is not set in your <filename>local.conf</filename> file, then the
+ class tries to locate it using <filename>which</filename>.
+
+ If
+ <link linkend='var-ICECC_ENV_EXEC'><filename>ICECC_ENV_EXEC</filename></link>
+ is set in your <filename>local.conf</filename> file, the variable should
+ point to the <filename>icecc-create-env</filename> script provided by
+ the user.
+ If you do not point to a user-provided script, the build system
+ uses the default script provided by the recipe
+ <filename>icecc-create-env.bb</filename>.
+ <note>
+ This script is a modified version and not the one that comes with
+ <filename>icecc</filename>.
+ </note>
+ </para>
+
+ <para>
+ If you do not want the Icecream distributed compile support to apply
+ to specific packages or classes, you can effectively "blacklist" them
+ by listing the packages and classes using the
+ <link linkend='var-ICECC_USER_PACKAGE_BL'><filename>ICECC_USER_PACKAGE_BL</filename></link>
+ and
+ <link linkend='var-ICECC_USER_CLASS_BL'><filename>ICECC_USER_CLASS_BL</filename></link>,
+ variables, respectively, in your <filename>local.conf</filename> file.
+ Doing so causes the OpenEmbedded build system to handle these
+ compilations locally.
+ </para>
+
+ <para>
+ Additionally, you can list packages using the
+ <link linkend='var-ICECC_USER_PACKAGE_WL'><filename>ICECC_USER_PACKAGE_WL</filename></link>
+ variable in your <filename>local.conf</filename> file to force
+ <filename>icecc</filename> to be enabled for packages using an empty
+ <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
+ variable.
+ </para>
+</section>
+
<section id='ref-classes-mime'>
<title><filename>mime.bbclass</filename></title>
diff --git a/documentation/ref-manual/ref-variables.xml b/documentation/ref-manual/ref-variables.xml
index 995d9f2..35f7b91 100644
--- a/documentation/ref-manual/ref-variables.xml
+++ b/documentation/ref-manual/ref-variables.xml
@@ -2267,6 +2267,153 @@
<glossdiv id='var-glossary-i'><title>I</title>
+ <glossentry id='var-ICECC_CC'><glossterm>ICECC_CC</glossterm>
+ <glossdef>
+ <para>
+ The path to the GNU C compiler <filename>gcc</filename>.
+ This variable is used by the
+ <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
+ class.
+ You do not set this variable by hand.
+ </para>
+
+ <para>
+ When the location for the GNU C compiler is not a
+ symbolic link, the class sets the variable to the location
+ of the compiler.
+ </para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry id='var-ICECC_CXX'><glossterm>ICECC_CXX</glossterm>
+ <glossdef>
+ <para>
+ The path to the GNU C++ compiler <filename>g++</filename>.
+ This variable is used by the
+ <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
+ class.
+ You do not set this variable by hand.
+ </para>
+
+ <para>
+ When the location for the GNU C++ compiler is not a
+ symbolic link, the class sets the variable to the location
+ of the compiler.
+ </para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry id='var-ICECC_ENV_EXEC'><glossterm>ICECC_ENV_EXEC</glossterm>
+ <glossdef>
+ <para>
+ Points to the <filename>icecc-create-env</filename> script
+ that you provide.
+ This variable is used by the
+ <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
+ class.
+ You set this variable in your
+ <filename>local.conf</filename> file.
+ </para>
+
+ <para>
+ If you do not point to a script that you provide, the
+ OpenEmbedded build system uses the default script provided
+ by the <filename>icecc-create-env.bb</filename> recipe,
+ which is a modified version and not the one that comes with
+ <filename>icecc</filename>.
+ </para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry id='var-ICECC_PATH'><glossterm>ICECC_PATH</glossterm>
+ <glossdef>
+ <para>
+ The location of the <filename>icecc</filename> binary.
+ You can set this variable in your
+ <filename>local.conf</filename> file.
+ If your <filename>local.conf</filename> file does not define
+ this variable, the
+ <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
+ class attempts to define it by locating
+ <filename>icecc</filename> using <filename>which</filename>.
+ </para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry id='var-ICECC_USER_CLASS_BL'><glossterm>ICECC_USER_CLASS_BL</glossterm>
+ <glossdef>
+ <para>
+ Identifies user classes that you do not want the
+ Icecream distributed compile support to consider.
+ This variable is used by the
+ <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
+ class.
+ You set this variable in your
+ <filename>local.conf</filename> file.
+ </para>
+
+ <para>
+ When you list classes using this variable, you are
+ "blacklisting" them from distributed compilation across
+ remote hosts.
+ Any classes you list will be distributed and compiled
+ locally.
+ </para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry id='var-ICECC_USER_PACKAGE_BL'><glossterm>ICECC_USER_PACKAGE_BL</glossterm>
+ <glossdef>
+ <para>
+ Identifies user packages that you do not want the
+ Icecream distributed compile support to consider.
+ This variable is used by the
+ <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
+ class.
+ You set this variable in your
+ <filename>local.conf</filename> file.
+ </para>
+
+ <para>
+ When you list packages using this variable, you are
+ "blacklisting" them from distributed compilation across
+ remote hosts.
+ Any packages you list will be distributed and compiled
+ locally.
+ </para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry id='var-ICECC_USER_PACKAGE_WL'><glossterm>ICECC_USER_PACKAGE_WL</glossterm>
+ <glossdef>
+ <para>
+ Identifies user packages that use an empty
+ <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
+ variable that you want to force remote distributed
+ compilation on using the Icecream distributed compile
+ support.
+ This variable is used by the
+ <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
+ class.
+ You set this variable in your
+ <filename>local.conf</filename> file.
+ </para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry id='var-ICECC_VERSION'><glossterm>ICECC_VERSION</glossterm>
+ <glossdef>
+ <para>
+ The version of the cross-compiler used in the
+ cross-development toolchain.
+ This variable is used by the
+ <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
+ class.
+ You do not set this variable by hand.
+ </para>
+ </glossdef>
+ </glossentry>
+
<glossentry id='var-IMAGE_BASENAME'><glossterm>IMAGE_BASENAME</glossterm>
<glossdef>
<para>
OpenPOWER on IntegriCloud