diff options
Diffstat (limited to 'bitbake/doc/user-manual/user-manual-intro.xml')
-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> |