diff options
| -rw-r--r-- | bitbake/doc/user-manual/user-manual-intro.xml | 90 |
1 files changed, 89 insertions, 1 deletions
diff --git a/bitbake/doc/user-manual/user-manual-intro.xml b/bitbake/doc/user-manual/user-manual-intro.xml index 347b17a156..88c415cc58 100644 --- a/bitbake/doc/user-manual/user-manual-intro.xml +++ b/bitbake/doc/user-manual/user-manual-intro.xml | |||
| @@ -139,5 +139,93 @@ | |||
| 139 | It is highly extensible, supporting embedded Python code and | 139 | It is highly extensible, supporting embedded Python code and |
| 140 | execution of any arbitrary tasks. | 140 | execution of any arbitrary tasks. |
| 141 | </para> | 141 | </para> |
| 142 | </section> | 142 | </section> |
| 143 | |||
| 144 | <section id="Concepts"> | ||
| 145 | <title>Concepts</title> | ||
| 146 | |||
| 147 | <para> | ||
| 148 | BitBake is a program written in the Python language. | ||
| 149 | At the highest level, BitBake interprets metadata, decides | ||
| 150 | what tasks are required to run, and executes those tasks. | ||
| 151 | Similar to GNU Make, BitBake controls how software is | ||
| 152 | built. | ||
| 153 | GNU Make does this using "makefiles". BitBake uses | ||
| 154 | "recipes". | ||
| 155 | BitBake extends the capabilities of a simple | ||
| 156 | tool like GNU make by allowing for much more complex tasks | ||
| 157 | to be completed, such as assembling entire embedded Linux | ||
| 158 | distributions. Several concepts must be understood to be able | ||
| 159 | to leverage the power of the tool. | ||
| 160 | </para> | ||
| 161 | |||
| 162 | <section id='recipes'> | ||
| 163 | <title>Recipes</title> | ||
| 164 | |||
| 165 | <para> | ||
| 166 | A BitBake Recipe, denoted by the file extension | ||
| 167 | <filename>.bb</filename> is the most | ||
| 168 | basic metadata file. | ||
| 169 | It tells BitBake the following: | ||
| 170 | <itemizedlist> | ||
| 171 | <listitem><para>descriptive information about the package</para></listitem> | ||
| 172 | <listitem><para>the version of the recipe</para></listitem> | ||
| 173 | <listitem><para>when dependencies exist</para></listitem> | ||
| 174 | <listitem><para>where the source code resides</para></listitem> | ||
| 175 | <listitem><para>whether the source code requires any patches</para></listitem> | ||
| 176 | <listitem><para>how to compile the source code</para></listitem> | ||
| 177 | <listitem><para>where on the target machine to install the package being compiled</para></listitem> | ||
| 178 | </itemizedlist> | ||
| 179 | </para> | ||
| 180 | |||
| 181 | <para> | ||
| 182 | Within the context of BitBake, or any project utilizing BitBake | ||
| 183 | as it's build system, files with the .bb extension are referred | ||
| 184 | to as recipes. | ||
| 185 | The term "package" is also commonly used to describe recipes. | ||
| 186 | However, since the same word is used to describe packaged | ||
| 187 | output from a project, it is best to maintain a single | ||
| 188 | descriptive term, "recipes". | ||
| 189 | </para> | ||
| 190 | </section> | ||
| 191 | |||
| 192 | <section id='configuration-files'> | ||
| 193 | <title>Configuration Files</title> | ||
| 194 | |||
| 195 | <para> | ||
| 196 | Configuration files, denoted by the | ||
| 197 | <filename>.conf</filename> extension define | ||
| 198 | various configuration variables that govern the project build | ||
| 199 | process. | ||
| 200 | These files fall into several areas that define | ||
| 201 | machine configuration options, distribution configuration | ||
| 202 | options, compiler tuning options, general common | ||
| 203 | configuration options and user configuration options. | ||
| 204 | The main configuration file is the sample bitbake.conf file, | ||
| 205 | located within the bitbake source tree /conf directory. | ||
| 206 | </para> | ||
| 207 | </section> | ||
| 208 | |||
| 209 | <section id='classes'> | ||
| 210 | <title>Classes</title> | ||
| 211 | |||
| 212 | <para> | ||
| 213 | Class files, denoted by the | ||
| 214 | <filename>.bbclass</filename> extension contain | ||
| 215 | information that is useful to share between metadata files. | ||
| 216 | The BitBake source tree comes with one class metadata file | ||
| 217 | currently, called base.bbclass and it is found in the /classes | ||
| 218 | directory. | ||
| 219 | The base.bbclass is special in that any new classes that a | ||
| 220 | developer adds to a project is required to inherit it | ||
| 221 | automatically. | ||
| 222 | This class contains definitions for standard basic tasks such | ||
| 223 | as fetching, unpacking, configuring (empty by default), | ||
| 224 | compiling (runs any Makefile present), installing (empty by | ||
| 225 | default) and packaging (empty by default). | ||
| 226 | These classes are often overridden or extended by other classes | ||
| 227 | added during the project development process. | ||
| 228 | </para> | ||
| 229 | </section> | ||
| 230 | </section> | ||
| 143 | </chapter> | 231 | </chapter> |
