diff options
| -rw-r--r-- | bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml | 44 |
1 files changed, 32 insertions, 12 deletions
diff --git a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml index ae267b42c8..330bfbd3c3 100644 --- a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml +++ b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | The information attempts to be as independent as possible regarding | 10 | The information attempts to be as independent as possible regarding |
| 11 | systems that use BitBake, such as the Yocto Project and | 11 | systems that use BitBake, such as the Yocto Project and |
| 12 | OpenEmbedded. | 12 | OpenEmbedded. |
| 13 | In some cases, scenarios or examples that within the context of | 13 | In some cases, scenarios or examples within the context of |
| 14 | a build system are used in the manual to help with understanding. | 14 | a build system are used in the manual to help with understanding. |
| 15 | For these cases, the manual clearly states the context. | 15 | For these cases, the manual clearly states the context. |
| 16 | </para> | 16 | </para> |
| @@ -36,6 +36,7 @@ | |||
| 36 | BitBake executes tasks according to provided | 36 | BitBake executes tasks according to provided |
| 37 | metadata that builds up the tasks. | 37 | metadata that builds up the tasks. |
| 38 | Metadata is stored in recipe (<filename>.bb</filename>), | 38 | Metadata is stored in recipe (<filename>.bb</filename>), |
| 39 | recipe "append" (<filename>.bbappend</filename>), | ||
| 39 | configuration (<filename>.conf</filename>), and class | 40 | configuration (<filename>.conf</filename>), and class |
| 40 | (<filename>.bbclass</filename>) files and provides | 41 | (<filename>.bbclass</filename>) files and provides |
| 41 | BitBake with instructions on what tasks to run and | 42 | BitBake with instructions on what tasks to run and |
| @@ -44,11 +45,11 @@ | |||
| 44 | <listitem><para> | 45 | <listitem><para> |
| 45 | BitBake includes a fetcher library for obtaining source | 46 | BitBake includes a fetcher library for obtaining source |
| 46 | code from various places such as source control | 47 | code from various places such as source control |
| 47 | systems or websites. | 48 | systems, websites, or local files. |
| 48 | </para></listitem> | 49 | </para></listitem> |
| 49 | <listitem><para> | 50 | <listitem><para> |
| 50 | The instructions for each unit to be built (e.g. a piece | 51 | The instructions for each unit to be built (e.g. a piece |
| 51 | of software) are known as recipe files and | 52 | of software) are known as "recipe" files and |
| 52 | contain all the information about the unit | 53 | contain all the information about the unit |
| 53 | (dependencies, source file locations, checksums, description | 54 | (dependencies, source file locations, checksums, description |
| 54 | and so on). | 55 | and so on). |
| @@ -69,7 +70,7 @@ | |||
| 69 | BitBake was originally a part of the OpenEmbedded project. | 70 | BitBake was originally a part of the OpenEmbedded project. |
| 70 | It was inspired by the Portage package management system | 71 | It was inspired by the Portage package management system |
| 71 | used by the Gentoo Linux distribution. | 72 | used by the Gentoo Linux distribution. |
| 72 | On December 7, 2004, OpenEmbedded project team member, | 73 | On December 7, 2004, OpenEmbedded project team member |
| 73 | Chris Larson split the project into two distinct pieces: | 74 | Chris Larson split the project into two distinct pieces: |
| 74 | <itemizedlist> | 75 | <itemizedlist> |
| 75 | <listitem><para>BitBake, a generic task executor</para></listitem> | 76 | <listitem><para>BitBake, a generic task executor</para></listitem> |
| @@ -138,7 +139,7 @@ | |||
| 138 | projects for their builds. | 139 | projects for their builds. |
| 139 | </para></listitem> | 140 | </para></listitem> |
| 140 | <listitem><para> | 141 | <listitem><para> |
| 141 | Provide an inheritance mechanism that share | 142 | Provide an inheritance mechanism to share |
| 142 | common metadata between many packages. | 143 | common metadata between many packages. |
| 143 | </para></listitem> | 144 | </para></listitem> |
| 144 | </itemizedlist> | 145 | </itemizedlist> |
| @@ -178,14 +179,14 @@ | |||
| 178 | what tasks are required to run, and executes those tasks. | 179 | what tasks are required to run, and executes those tasks. |
| 179 | Similar to GNU Make, BitBake controls how software is | 180 | Similar to GNU Make, BitBake controls how software is |
| 180 | built. | 181 | built. |
| 181 | GNU Make achieves its control through "makefiles". | 182 | GNU Make achieves its control through "makefiles", while |
| 182 | BitBake uses "recipes". | 183 | BitBake uses "recipes". |
| 183 | </para> | 184 | </para> |
| 184 | 185 | ||
| 185 | <para> | 186 | <para> |
| 186 | BitBake extends the capabilities of a simple | 187 | BitBake extends the capabilities of a simple |
| 187 | tool like GNU Make by allowing for much more complex tasks | 188 | tool like GNU Make by allowing for the definition of much more |
| 188 | to be completed, such as assembling entire embedded Linux | 189 | complex tasks, such as assembling entire embedded Linux |
| 189 | distributions. | 190 | distributions. |
| 190 | </para> | 191 | </para> |
| 191 | 192 | ||
| @@ -203,12 +204,15 @@ | |||
| 203 | <filename>.bb</filename>, are the most basic metadata files. | 204 | <filename>.bb</filename>, are the most basic metadata files. |
| 204 | These recipe files provide BitBake with the following: | 205 | These recipe files provide BitBake with the following: |
| 205 | <itemizedlist> | 206 | <itemizedlist> |
| 206 | <listitem><para>Descriptive information about the package</para></listitem> | 207 | <listitem><para>Descriptive information about the |
| 208 | package (author, homepage, license, and so on)</para></listitem> | ||
| 207 | <listitem><para>The version of the recipe</para></listitem> | 209 | <listitem><para>The version of the recipe</para></listitem> |
| 208 | <listitem><para>Existing Dependencies</para></listitem> | 210 | <listitem><para>Existing dependencies (both build |
| 211 | and runtime dependencies)</para></listitem> | ||
| 209 | <listitem><para>Where the source code resides</para></listitem> | 212 | <listitem><para>Where the source code resides</para></listitem> |
| 210 | <listitem><para>Whether the source code requires any patches</para></listitem> | 213 | <listitem><para>Whether the source code requires any patches</para></listitem> |
| 211 | <listitem><para>How to compile the source code</para></listitem> | 214 | <listitem><para>How to configure and compile the |
| 215 | source code</para></listitem> | ||
| 212 | <listitem><para>Where on the target machine to install the | 216 | <listitem><para>Where on the target machine to install the |
| 213 | package being compiled</para></listitem> | 217 | package being compiled</para></listitem> |
| 214 | </itemizedlist> | 218 | </itemizedlist> |
| @@ -284,7 +288,8 @@ | |||
| 284 | To illustrate how you can use layers to keep things modular, | 288 | To illustrate how you can use layers to keep things modular, |
| 285 | consider customizations you might make to support a specific target machine. | 289 | consider customizations you might make to support a specific target machine. |
| 286 | These types of customizations typically reside in a special layer, | 290 | These types of customizations typically reside in a special layer, |
| 287 | rather than a general layer, called a Board Specific Package (BSP) Layer. | 291 | rather than a general layer, called a Board Support Package (BSP) |
| 292 | Layer. | ||
| 288 | Furthermore, the machine customizations should be isolated from | 293 | Furthermore, the machine customizations should be isolated from |
| 289 | recipes and metadata that support a new GUI environment, for | 294 | recipes and metadata that support a new GUI environment, for |
| 290 | example. | 295 | example. |
| @@ -413,6 +418,21 @@ | |||
| 413 | you have a directory entitled | 418 | you have a directory entitled |
| 414 | <filename>bitbake-1.17.0</filename>. | 419 | <filename>bitbake-1.17.0</filename>. |
| 415 | </para></listitem> | 420 | </para></listitem> |
| 421 | <listitem><para><emphasis>Using the BitBake that comes with your | ||
| 422 | build checkout:</emphasis> | ||
| 423 | A final possibility for getting a copy of BitBake is that it | ||
| 424 | already comes with your checkout of a larger Bitbake-based build | ||
| 425 | system, such as Poky or Yocto Project. | ||
| 426 | Rather than manually checking out individual layers and | ||
| 427 | gluing them together yourself, you can check | ||
| 428 | out an entire build system such as Poky with something like: | ||
| 429 | <literallayout class='monospaced'> | ||
| 430 | $ git clone git://git.yoctoproject.org/poky | ||
| 431 | </literallayout> | ||
| 432 | The checkout will already include a version of BitBake that | ||
| 433 | has been thoroughly tested for compatibility with the other | ||
| 434 | components. | ||
| 435 | </para></listitem> | ||
| 416 | </itemizedlist> | 436 | </itemizedlist> |
| 417 | </para> | 437 | </para> |
| 418 | </section> | 438 | </section> |
