diff options
-rw-r--r-- | documentation/ref-manual/ref-classes.xml | 72 | ||||
-rw-r--r-- | documentation/ref-manual/ref-variables.xml | 147 |
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> |