diff options
| -rw-r--r-- | bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml | 62 |
1 files changed, 38 insertions, 24 deletions
diff --git a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml index 127c87a29e..8b6e0b442f 100644 --- a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml +++ b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml | |||
| @@ -6,8 +6,8 @@ | |||
| 6 | 6 | ||
| 7 | <para> | 7 | <para> |
| 8 | The primary purpose for running BitBake is to produce some kind | 8 | The primary purpose for running BitBake is to produce some kind |
| 9 | of output such as an image, a kernel, or a software development | 9 | of output such as a single installable package, a kernel, a software |
| 10 | kit. | 10 | development kit, or even a full, board-specific bootable Linux image. |
| 11 | Of course, you can execute the <filename>bitbake</filename> | 11 | Of course, you can execute the <filename>bitbake</filename> |
| 12 | command with options that cause it to execute single tasks, | 12 | command with options that cause it to execute single tasks, |
| 13 | compile single recipe files, capture or clear data, or simply | 13 | compile single recipe files, capture or clear data, or simply |
| @@ -26,15 +26,27 @@ | |||
| 26 | see | 26 | see |
| 27 | "<link linkend='bitbake-user-manual-command'>The BitBake Command</link>" | 27 | "<link linkend='bitbake-user-manual-command'>The BitBake Command</link>" |
| 28 | section. | 28 | section. |
| 29 | </para> | 29 | <note> |
| 30 | <para> | ||
| 31 | Prior to executing BitBake, you should take advantage of available | ||
| 32 | parallel thread execution on your build host by setting the | ||
| 33 | <link linkend='var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></link> | ||
| 34 | variable in your project's <filename>local.conf</filename> | ||
| 35 | configuration file. | ||
| 36 | </para> | ||
| 30 | 37 | ||
| 31 | <note> | 38 | <para> |
| 32 | Prior to executing BitBake, you should take advantage of parallel | 39 | A common way to determine this value for your build host is to run: |
| 33 | thread execution by setting the | 40 | <literallayout class='monospaced'> |
| 34 | <link linkend='var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></link> | 41 | $ grep processor /proc/cpuinfo |
| 35 | variable in your <filename>local.conf</filename> | 42 | </literallayout> |
| 36 | configuration file. | 43 | and count the number of processors displayed. Note that the number of |
| 37 | </note> | 44 | processors will take into account hyper-threading, so that a quad-core |
| 45 | build host with hyper-threading will most likely show eight processors, | ||
| 46 | which is the value you would then assign to that variable. | ||
| 47 | </para> | ||
| 48 | </note> | ||
| 49 | </para> | ||
| 38 | 50 | ||
| 39 | <section id='parsing-the-base-configuration-metadata'> | 51 | <section id='parsing-the-base-configuration-metadata'> |
| 40 | <title>Parsing the Base Configuration Metadata</title> | 52 | <title>Parsing the Base Configuration Metadata</title> |
| @@ -42,7 +54,7 @@ | |||
| 42 | <para> | 54 | <para> |
| 43 | The first thing BitBake does is parse base configuration | 55 | The first thing BitBake does is parse base configuration |
| 44 | metadata. | 56 | metadata. |
| 45 | Base configuration metadata consists of the | 57 | Base configuration metadata consists of your project's |
| 46 | <filename>bblayers.conf</filename> file to determine what | 58 | <filename>bblayers.conf</filename> file to determine what |
| 47 | layers BitBake needs to recognize, all necessary | 59 | layers BitBake needs to recognize, all necessary |
| 48 | <filename>layer.conf</filename> files (one from each layer), | 60 | <filename>layer.conf</filename> files (one from each layer), |
| @@ -71,10 +83,11 @@ | |||
| 71 | and | 83 | and |
| 72 | <link linkend='var-BBFILES'><filename>BBFILES</filename></link>. | 84 | <link linkend='var-BBFILES'><filename>BBFILES</filename></link>. |
| 73 | <filename>BBPATH</filename> is used to search for | 85 | <filename>BBPATH</filename> is used to search for |
| 74 | configuration and class files under | 86 | configuration and class files under the |
| 75 | <filename>conf/</filename> and <filename>classes/</filename> | 87 | <filename>conf</filename> and <filename>classes</filename> |
| 76 | directories, respectively. | 88 | directories, respectively. |
| 77 | <filename>BBFILES</filename> is used to find recipe files | 89 | <filename>BBFILES</filename> is used to locate both recipe |
| 90 | and recipe append files | ||
| 78 | (<filename>.bb</filename> and <filename>.bbappend</filename>). | 91 | (<filename>.bb</filename> and <filename>.bbappend</filename>). |
| 79 | If there is no <filename>bblayers.conf</filename> file, | 92 | If there is no <filename>bblayers.conf</filename> file, |
| 80 | it is assumed the user has set the <filename>BBPATH</filename> | 93 | it is assumed the user has set the <filename>BBPATH</filename> |
| @@ -82,7 +95,7 @@ | |||
| 82 | </para> | 95 | </para> |
| 83 | 96 | ||
| 84 | <para> | 97 | <para> |
| 85 | Next, the <filename>bitbake.conf</filename> file is searched | 98 | Next, the <filename>bitbake.conf</filename> file is located |
| 86 | using the <filename>BBPATH</filename> variable that was | 99 | using the <filename>BBPATH</filename> variable that was |
| 87 | just constructed. | 100 | just constructed. |
| 88 | The <filename>bitbake.conf</filename> file may also include other | 101 | The <filename>bitbake.conf</filename> file may also include other |
| @@ -117,15 +130,15 @@ | |||
| 117 | optional <filename>conf/bblayers.conf</filename> configuration file. | 130 | optional <filename>conf/bblayers.conf</filename> configuration file. |
| 118 | This file is expected to contain a | 131 | This file is expected to contain a |
| 119 | <link linkend='var-BBLAYERS'><filename>BBLAYERS</filename></link> | 132 | <link linkend='var-BBLAYERS'><filename>BBLAYERS</filename></link> |
| 120 | variable that is a space delimited list of 'layer' directories. | 133 | variable that is a space-delimited list of 'layer' directories. |
| 121 | Recall that if BitBake cannot find a <filename>bblayers.conf</filename> | 134 | Recall that if BitBake cannot find a <filename>bblayers.conf</filename> |
| 122 | file then it is assumed the user has set the <filename>BBPATH</filename> | 135 | file, then it is assumed the user has set the <filename>BBPATH</filename> |
| 123 | and <filename>BBFILES</filename> variables directly in the environment. | 136 | and <filename>BBFILES</filename> variables directly in the environment. |
| 124 | </para> | 137 | </para> |
| 125 | 138 | ||
| 126 | <para> | 139 | <para> |
| 127 | For each directory (layer) in this list, a <filename>conf/layer.conf</filename> | 140 | For each directory (layer) in this list, a <filename>conf/layer.conf</filename> |
| 128 | file is searched for and parsed with the | 141 | file is located and parsed with the |
| 129 | <link linkend='var-LAYERDIR'><filename>LAYERDIR</filename></link> | 142 | <link linkend='var-LAYERDIR'><filename>LAYERDIR</filename></link> |
| 130 | variable being set to the directory where the layer was found. | 143 | variable being set to the directory where the layer was found. |
| 131 | The idea is these files automatically set up | 144 | The idea is these files automatically set up |
| @@ -143,7 +156,7 @@ | |||
| 143 | 156 | ||
| 144 | <para> | 157 | <para> |
| 145 | Only variable definitions and include directives are allowed | 158 | Only variable definitions and include directives are allowed |
| 146 | in <filename>.conf</filename> files. | 159 | in BitBake <filename>.conf</filename> files. |
| 147 | Some variables directly influence BitBake's behavior. | 160 | Some variables directly influence BitBake's behavior. |
| 148 | These variables might have been set from the environment | 161 | These variables might have been set from the environment |
| 149 | depending on the environment variables previously | 162 | depending on the environment variables previously |
| @@ -166,7 +179,8 @@ | |||
| 166 | Other classes that are specified in the configuration using the | 179 | Other classes that are specified in the configuration using the |
| 167 | <link linkend='var-INHERIT'><filename>INHERIT</filename></link> | 180 | <link linkend='var-INHERIT'><filename>INHERIT</filename></link> |
| 168 | variable are also included. | 181 | variable are also included. |
| 169 | BitBake searches for class files in a "classes" subdirectory under | 182 | BitBake searches for class files in a |
| 183 | <filename>classes</filename> subdirectory under | ||
| 170 | the paths in <filename>BBPATH</filename> in the same way as | 184 | the paths in <filename>BBPATH</filename> in the same way as |
| 171 | configuration files. | 185 | configuration files. |
| 172 | </para> | 186 | </para> |
| @@ -189,7 +203,7 @@ | |||
| 189 | If a recipe uses a closing curly brace within the function and | 203 | If a recipe uses a closing curly brace within the function and |
| 190 | the character has no leading spaces, BitBake produces a parsing | 204 | the character has no leading spaces, BitBake produces a parsing |
| 191 | error. | 205 | error. |
| 192 | If you use a pair of curly brace in a shell function, the | 206 | If you use a pair of curly braces in a shell function, the |
| 193 | closing curly brace must not be located at the start of the line | 207 | closing curly brace must not be located at the start of the line |
| 194 | without leading spaces. | 208 | without leading spaces. |
| 195 | </para> | 209 | </para> |
| @@ -261,14 +275,14 @@ | |||
| 261 | One common convention is to use the recipe filename to define | 275 | One common convention is to use the recipe filename to define |
| 262 | pieces of metadata. | 276 | pieces of metadata. |
| 263 | For example, in <filename>bitbake.conf</filename> the recipe | 277 | For example, in <filename>bitbake.conf</filename> the recipe |
| 264 | name and version set | 278 | name and version are used to set the variables |
| 265 | <link linkend='var-PN'><filename>PN</filename></link> and | 279 | <link linkend='var-PN'><filename>PN</filename></link> and |
| 266 | <link linkend='var-PV'><filename>PV</filename></link>: | 280 | <link linkend='var-PV'><filename>PV</filename></link>: |
| 267 | <literallayout class='monospaced'> | 281 | <literallayout class='monospaced'> |
| 268 | PV = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE'),d)[1] or '1.0'}" | ||
| 269 | PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE'),d)[0] or 'defaultpkgname'}" | 282 | PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE'),d)[0] or 'defaultpkgname'}" |
| 283 | PV = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE'),d)[1] or '1.0'}" | ||
| 270 | </literallayout> | 284 | </literallayout> |
| 271 | In this example, a recipe called "something_1.2.3.bb" sets | 285 | In this example, a recipe called "something_1.2.3.bb" would set |
| 272 | <filename>PN</filename> to "something" and | 286 | <filename>PN</filename> to "something" and |
| 273 | <filename>PV</filename> to "1.2.3". | 287 | <filename>PV</filename> to "1.2.3". |
| 274 | </para> | 288 | </para> |
