summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Rifenbark <scott.m.rifenbark@intel.com>2011-08-19 09:29:54 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-08-23 18:47:05 -0700
commit39de08c1052fc988f1a9ecb51a94cc4ba97f711e (patch)
treebfff08bc9270c518d780d5e2bace74ecfb274131
parentcde376cc041f1483be93c4ffa4843ac13a309628 (diff)
downloadpoky-39de08c1052fc988f1a9ecb51a94cc4ba97f711e.tar.gz
documentation/poky-ref-manual/ref-structure.xml: Scrubbed for Poky and edits
I converted "Poky" to "the Yocto Project." I also updated several examples. In particular the build/tmp/work example. (From yocto-docs rev: eb82bc36904f502fb4f314ff05eb86cff27ce0b6) Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--documentation/poky-ref-manual/ref-structure.xml352
1 files changed, 168 insertions, 184 deletions
diff --git a/documentation/poky-ref-manual/ref-structure.xml b/documentation/poky-ref-manual/ref-structure.xml
index 6b5e6460b2..b5e2e3550f 100644
--- a/documentation/poky-ref-manual/ref-structure.xml
+++ b/documentation/poky-ref-manual/ref-structure.xml
@@ -6,28 +6,36 @@
6<title>Reference: Directory Structure</title> 6<title>Reference: Directory Structure</title>
7 7
8<para> 8<para>
9 Poky consists of several components. 9 The Yocto Project consists of several components.
10 Understanding them and knowing where they are located is key to using Poky well. 10 Understanding them and knowing where they are located is key to using the Yocto Project well.
11 This appendix describes the Poky directory structure and gives information about the various 11 This appendix describes the Yocto Project file's directory structure and gives information about the various
12 files and directories. 12 files and directories.
13</para> 13</para>
14 14
15<para>
16 For information on how to establish the Yocto Project files on your local development system, see the
17 <ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#getting-started'>
18 Getting Setup</ulink> section in the
19 <ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>
20 The Yocto Project Development Manual</ulink>.
21</para>
22
15<section id='structure-core'> 23<section id='structure-core'>
16 <title>Top level core components</title> 24 <title>Top level core components</title>
17 25
18 <section id='structure-core-bitbake'> 26 <section id='structure-core-bitbake'>
19 <title><filename class="directory">bitbake/</filename></title> 27 <title><filename>bitbake/</filename></title>
20 28
21 <para> 29 <para>
22 Poky includes a copy of BitBake for ease of use. 30 The Yocto Project includes a copy of BitBake for ease of use.
23 The copy usually matches the current stable BitBake release from the BitBake project. 31 The copy usually matches the current stable BitBake release from the BitBake project.
24 BitBake, a metadata interpreter, reads the Poky metadata and runs the tasks 32 BitBake, a metadata interpreter, reads the Yocto Project metadata and runs the tasks
25 defined by that data. 33 defined by that data.
26 Failures are usually from the metadata and not 34 Failures are usually from the metadata and not
27 from BitBake itself. 35 from BitBake itself.
28 Consequently, most users do not need to worry about BitBake. 36 Consequently, most users do not need to worry about BitBake.
29 The <filename class="directory">bitbake/bin/</filename> directory is placed 37 The <filename>bitbake/bin/</filename> directory is placed
30 into the PATH environment variable by the 38 into the <filename>PATH</filename> environment variable by the
31 <link linkend="structure-core-script">oe-init-build-env</link> script. 39 <link linkend="structure-core-script">oe-init-build-env</link> script.
32 </para> 40 </para>
33 41
@@ -38,118 +46,88 @@
38 </section> 46 </section>
39 47
40 <section id='structure-core-build'> 48 <section id='structure-core-build'>
41 <title><filename class="directory">build/</filename></title> 49 <title><filename>build/</filename></title>
42 50
43 <para> 51 <para>
44 This directory contains user configuration files and the output 52 This directory contains user configuration files and the output
45 generated by Poky in its standard configuration where the source tree is 53 generated by the Yocto Project in its standard configuration where the source tree is
46 combined with the output. 54 combined with the output.
55 The build directory is created initially when you <filename>source</filename>
56 the Yocto Project environment setup script <filename>oe-init-build-env</filename>.
57 </para>
58
59 <para>
47 It is also possible to place output and configuration 60 It is also possible to place output and configuration
48 files in a directory separate from the Poky source. 61 files in a directory separate from the Yocto Project files
49 For information on separating output from the Poky source, see <link 62 by providing a directory name when you <filename>source</filename>
63 the setup script.
64 For information on separating output from the Yocto Project files, see <link
50 linkend='structure-core-script'>oe-init-build-env</link>. 65 linkend='structure-core-script'>oe-init-build-env</link>.
51 </para> 66 </para>
52 </section> 67 </section>
53 68
54 <section id='structure-core-meta'> 69 <section id='handbook'>
55 <title><filename class="directory">meta/</filename></title> 70 <title><filename>documentation</filename></title>
56 71
57 <para> 72 <para>
58 This directory contains the core metadata, which is a key part of Poky. 73 This directory holds the source for the Yocto Project documentation
59 This directory contains the machine definitions, the Poky distribution, 74 as well as templates and tools that allow you to generate PDF and HTML
60 and the packages that make up a given system. 75 versions of the manuals.
76 Each manual is contained in a sub-folder.
77 For example, the files for this manual reside in
78 <filename>poky-ref-manual</filename>.
61 </para> 79 </para>
62 </section> 80 </section>
63 81
64<!-- <section id='structure-core-meta-extras'> 82 <section id='structure-core-meta'>
65 <title><filename class="directory">meta-extras/</filename></title> 83 <title><filename>meta/</filename></title>
66 84
67 <para> 85 <para>
68 This directory is similar to <filename class="directory">meta/</filename>. 86 This directory contains the Yocto Project core metadata.
69 The directory contains extra metadata not included in standard Poky. 87 The directory holds machine definitions, the Yocto Project distribution,
70 This metadata is disabled by default and is not supported as part of Poky. 88 and the packages that make up a given system.
71 </para> 89 </para>
72 </section> 90 </section>
73-->
74 91
75 <section id='structure-core-meta-demoapps'> 92 <section id='structure-core-meta-demoapps'>
76 <title><filename class="directory">meta-demoapps/</filename></title> 93 <title><filename>meta-demoapps/</filename></title>
77 94
78 <para> 95 <para>
79 This directory contains recipes for applications and demos that are not core. 96 This directory contains recipes for applications and demos that are not part of the
97 Yocto Project core.
80 </para> 98 </para>
81 </section> 99 </section>
82 100
83 <section id='structure-core-meta-rt'> 101 <section id='structure-core-meta-rt'>
84 <title><filename class="directory">meta-rt/</filename></title> 102 <title><filename>meta-rt/</filename></title>
85 103
86 <para> 104 <para>
87 This directory contains recipes for RealTime. 105 This directory contains recipes for real-time kernels.
88 </para> 106 </para>
89 </section> 107 </section>
90 108
91<!-- <section id='structure-core-meta-***'> 109 <section id='structure-meta-skeleton'>
92 <title><filename class="directory">meta-***/</filename></title> 110 <title><filename>meta-skeleton/</filename></title>
93 111
94 <para> 112 <para>
95 These directories are optional layers that are added to core metadata. 113 This directory contains template recipes for BSP and kernel development.
96 The layers are enabled by adding them to the <filename>conf/bblayers.conf</filename> file.
97 </para> 114 </para>
98 </section> 115 </section>
99-->
100 116
101 <section id='structure-core-scripts'> 117 <section id='structure-core-scripts'>
102 <title><filename class="directory">scripts/</filename></title> 118 <title><filename>scripts/</filename></title>
103 119
104 <para> 120 <para>
105 This directory contains various integration scripts that implement 121 This directory contains various integration scripts that implement
106 extra functionality in the Poky environment (e.g. QEMU scripts). 122 extra functionality in the Yocto Project environment (e.g. QEMU scripts).
107 The <link linkend="structure-core-script">oe-init-build-env</link> script appends this 123 The <link linkend="structure-core-script">oe-init-build-env</link> script appends this
108 directory to the PATH environment variable. 124 directory to the <filename>PATH</filename> environment variable.
109 </para>
110 </section>
111
112<!-- <section id='structure-core-sources'>
113 <title><filename class="directory">sources/</filename></title>
114
115 <para>
116 This directory receives downloads as specified by the
117 <glossterm><link linkend='var-DL_DIR'>DL_DIR</link></glossterm> variable.
118 Even though the directory is not part of a checkout, Poky creates it during a build.
119 You can use this directory to share downloading files between Poky builds.
120 This practice can save you from downloading files multiple times.
121 <note><para>
122 You can override the location for this directory by setting
123 the DL_DIR variable in <filename>local.conf</filename>.
124 </para></note>
125 </para>
126
127 <para>
128 This directory also contains SCM checkouts (e.g. <filename class="directory">sources/svn/
129 </filename>, <filename class="directory">sources/cvs/</filename> or
130 <filename class="directory">sources/git/</filename>).
131 The <filename class="directory">sources</filename> directory can contain archives of
132 checkouts for various revisions or dates.
133 </para>
134
135 <para>
136 It's worth noting that BitBake creates <filename class="extension">.md5
137 </filename> stamp files for downloads.
138 BitBake uses these files to mark downloads as
139 complete as well as for checksum and access accounting purposes.
140 If you manually add a file to the directory, you need to touch the corresponding
141 <filename class="extension">.md5</filename> file as well.
142 </para> 125 </para>
143 </section>
144-->
145
146 <section id='handbook'>
147 <title><filename class="directory">documentation</filename></title>
148 126
149 <para> 127 <para>
150 This directory holds the source for the documentation. Each manual is contained in 128 The <filename>scripts</filename> directory has useful scripts that assist contributing
151 a sub-folder. For example, the files for this manual reside in 129 back to the Yocto Project, such as <filename>create_pull_request</filename> and
152 <filename class="directory">poky-ref-manual</filename>. 130 <filename>send_pull_request</filename>.
153 </para> 131 </para>
154 </section> 132 </section>
155 133
@@ -157,25 +135,25 @@
157 <title><filename>oe-init-build-env</filename></title> 135 <title><filename>oe-init-build-env</filename></title>
158 136
159 <para> 137 <para>
160 This script sets up the Poky build environment. 138 This script sets up the Yocto Project build environment.
161 Sourcing this file in 139 Running this script with the <filename>source</filename> command in
162 a shell makes changes to PATH and sets other core BitBake variables based on the 140 a shell makes changes to <filename>PATH</filename> and sets other core BitBake variables based on the
163 current working directory. 141 current working directory.
164 You need to run this script before running Poky commands. 142 You need to run this script before running BitBake commands.
165 The script uses other scripts within the <filename class="directory">scripts/ 143 The script uses other scripts within the <filename>scripts</filename> directory to do
166 </filename> directory to do the bulk of the work. 144 the bulk of the work.
167 You can use this script to specify any directory for the build's output by doing the following:
168 </para> 145 </para>
169 146
170 <literallayout class='monospaced'>
171 $ source POKY_SRC/oe-init-build-env [BUILDDIR]
172 </literallayout>
173
174 <para> 147 <para>
175 You can enter the above command from any directory, as long as POKY_SRC points to 148 By default, running this script without a build directory argument creates the
176 the desired Poky source tree. 149 <filename>build</filename> directory.
177 The optional BUILDDIR can be any directory into which you would 150 If you provide a build directory argument when you <filename>source</filename>
178 like Poky to generate the build output. 151 the script, you direct the Yocto Project to create a build directory of your choice.
152 For example, the following command creates a build directory named
153 <filename>mybuilds</filename> that is outside of the Yocto Project files:
154 <literallayout class='monospaced'>
155 $ source oe-init-build-env ~/mybuilds
156 </literallayout>
179 </para> 157 </para>
180 </section> 158 </section>
181 159
@@ -189,14 +167,14 @@
189</section> 167</section>
190 168
191<section id='structure-build'> 169<section id='structure-build'>
192 <title>The Build Directory - <filename class="directory">build/</filename></title> 170 <title>The Build Directory - <filename>build/</filename></title>
193 171
194 <section id='structure-build-pseudodone'> 172 <section id='structure-build-pseudodone'>
195 <title><filename>build/pseudodone</filename></title> 173 <title><filename>build/pseudodone</filename></title>
196 174
197 <para> 175 <para>
198 This tag file indicates that the intitial pseudo binar was created. 176 This tag file indicates that the intitial pseudo binary was created.
199 The first time BitBake is invoked this file is built. 177 The file is built the first time BitBake is invoked.
200 </para> 178 </para>
201 </section> 179 </section>
202 180
@@ -204,21 +182,21 @@
204 <title><filename>build/conf/local.conf</filename></title> 182 <title><filename>build/conf/local.conf</filename></title>
205 183
206 <para> 184 <para>
207 This file contains all the local user configuration of Poky. 185 This file contains all the local user configuration of the Yocto Project.
208 If there is no <filename>local.conf</filename> present, it is created from 186 If there is no <filename>local.conf</filename> present, it is created from
209 <filename>local.conf.sample</filename>. 187 <filename>local.conf.sample</filename>.
210 The <filename>local.conf</filename> file contains documentation on the various configuration options. 188 The <filename>local.conf</filename> file contains documentation on the various configuration options.
211 Any variable set here overrides any variable set elsewhere within Poky unless 189 Any variable set here overrides any variable set elsewhere within the Yocto Project unless
212 that variable is hard-coded within Poky (e.g. by using '=' instead of '?='). 190 that variable is hard-coded within the Yocto Project (e.g. by using '=' instead of '?=').
213 Some variables are hard-coded for various reasons but these variables are 191 Some variables are hard-coded for various reasons but these variables are
214 relatively rare. 192 relatively rare.
215 </para> 193 </para>
216 194
217 <para> 195 <para>
218 Edit this file to set the <glossterm><link linkend='var-MACHINE'>MACHINE</link></glossterm> 196 Edit this file to set the <filename><link linkend='var-MACHINE'>MACHINE</link></filename>
219 for which you want to build, which package types you 197 for which you want to build, which package types you
220 wish to use (PACKAGE_CLASSES) or where you want to downloaded files 198 wish to use (<filename>PACKAGE_CLASSES</filename>), or where you want to downloaded files
221 (<glossterm><link linkend='var-DL_DIR'>DL_DIR</link></glossterm>). 199 (<filename><link linkend='var-DL_DIR'>DL_DIR</link></filename>).
222 </para> 200 </para>
223 </section> 201 </section>
224 202
@@ -228,8 +206,8 @@
228 <para> 206 <para>
229 This file defines layers, which is a directory tree, traversed (or walked) by BitBake. 207 This file defines layers, which is a directory tree, traversed (or walked) by BitBake.
230 If <filename>bblayers.conf</filename> 208 If <filename>bblayers.conf</filename>
231 is not present, it is created from <filename>bblayers.conf.sample</filename> when the environment 209 is not present, it is created from <filename>bblayers.conf.sample</filename> when
232 setup script is sourced. 210 you <filename>source</filename> the environment setup script.
233 </para> 211 </para>
234 </section> 212 </section>
235 213
@@ -248,7 +226,7 @@
248 This directory is used for the upstream source tarballs. 226 This directory is used for the upstream source tarballs.
249 The directory can be reused by multiple builds or moved to another location. 227 The directory can be reused by multiple builds or moved to another location.
250 You can control the location of this directory through the 228 You can control the location of this directory through the
251 <glossterm><link linkend='var-DL_DIR'>DL_DIR</link></glossterm> variable. 229 <filename><link linkend='var-DL_DIR'>DL_DIR</link></filename> variable.
252 </para> 230 </para>
253 </section> 231 </section>
254 232
@@ -259,25 +237,25 @@
259 This directory is used for the shared state cache. 237 This directory is used for the shared state cache.
260 The directory can be reused by multiple builds or moved to another location. 238 The directory can be reused by multiple builds or moved to another location.
261 You can control the location of this directory through the 239 You can control the location of this directory through the
262 <glossterm><link linkend='var-SSTATE_DIR'>SSTATE_DIR</link></glossterm> variable. 240 <filename><link linkend='var-SSTATE_DIR'>SSTATE_DIR</link></filename> variable.
263 </para> 241 </para>
264 </section> 242 </section>
265 243
266 <section id='structure-build-tmp'> 244 <section id='structure-build-tmp'>
267 <title><filename class="directory">build/tmp/</filename></title> 245 <title><filename>build/tmp/</filename></title>
268 246
269 <para> 247 <para>
270 This directory receives all the Poky output. 248 This directory receives all the Yocto Project output.
271 BitBake creates this directory if it does not exist. 249 BitBake creates this directory if it does not exist.
272 To clean Poky and start a build from scratch (other than downloads), 250 As a last resort, to clean the Yocto Project and start a build from scratch (other than downloads),
273 you can remove everything in this directory or get rid of the directory completely. 251 you can remove everything in this directory or get rid of the directory completely.
274 The <filename class="directory">tmp/</filename> directory has some important 252 If you do, you should also completely remove the <filename>build/sstate-cache</filename>
275 sub-components detailed below. 253 directory as well.
276 </para> 254 </para>
277 </section> 255 </section>
278 256
279 <section id='structure-build-tmp-buildstats'> 257 <section id='structure-build-tmp-buildstats'>
280 <title><filename class="directory">build/tmp/buildstats/</filename></title> 258 <title><filename>build/tmp/buildstats/</filename></title>
281 259
282 <para> 260 <para>
283 This directory stores the build statistics. 261 This directory stores the build statistics.
@@ -285,56 +263,68 @@
285 </section> 263 </section>
286 264
287 <section id='structure-build-tmp-cache'> 265 <section id='structure-build-tmp-cache'>
288 <title><filename class="directory">build/tmp/cache/</filename></title> 266 <title><filename>build/tmp/cache/</filename></title>
289 267
290 <para> 268 <para>
291 When BitBake parses the metadata it creates a cache file of the result that can 269 When BitBake parses the metadata, it creates a cache file of the result that can
292 be used when subsequently running commands. 270 be used when subsequently running commands.
293 These results are stored here on a per-machine basis. 271 These results are stored here on a per-machine basis.
294 </para> 272 </para>
295 </section> 273 </section>
296 274
297 <section id='structure-build-tmp-deploy'> 275 <section id='structure-build-tmp-deploy'>
298 <title><filename class="directory">build/tmp/deploy/</filename></title> 276 <title><filename>build/tmp/deploy/</filename></title>
299 277
300 <para>This directory contains any 'end result' output from Poky.</para> 278 <para>
279 This directory contains any 'end result' output from the Yocto Project build process.
280 </para>
301 </section> 281 </section>
302 282
303 <section id='structure-build-tmp-deploy-deb'> 283 <section id='structure-build-tmp-deploy-deb'>
304 <title><filename class="directory">build/tmp/deploy/deb/</filename></title> 284 <title><filename>build/tmp/deploy/deb/</filename></title>
305 285
306 <para> 286 <para>
307 This directory receives any <filename>.deb</filename> packages produced by Poky. 287 This directory receives any <filename>.deb</filename> packages produced by the Yocto Project.
308 The packages are sorted into feeds for different architecture types. 288 The packages are sorted into feeds for different architecture types.
309 </para> 289 </para>
310 </section> 290 </section>
311 291
312 <section id='structure-build-tmp-deploy-rpm'> 292 <section id='structure-build-tmp-deploy-rpm'>
313 <title><filename class="directory">build/tmp/deploy/rpm/</filename></title> 293 <title><filename>build/tmp/deploy/rpm/</filename></title>
314 294
315 <para> 295 <para>
316 This directory receives any <filename>.rpm</filename> packages produced by Poky. 296 This directory receives any <filename>.rpm</filename> packages produced by the Yocto Project.
317 The packages are sorted into feeds for different architecture types. 297 The packages are sorted into feeds for different architecture types.
318 </para> 298 </para>
319 </section> 299 </section>
320 300
321 <section id='structure-build-tmp-deploy-images'> 301 <section id='structure-build-tmp-deploy-images'>
322 <title><filename class="directory">build/tmp/deploy/images/</filename></title> 302 <title><filename>build/tmp/deploy/images/</filename></title>
323 303
324 <para> 304 <para>
325 This directory receives complete filesystem images. 305 This directory receives complete filesystem images.
326 If you want to flash the resulting image from a build onto a device, look here for the image. 306 If you want to flash the resulting image from a build onto a device, look here for the image.
327 </para> 307 </para>
308
309 <para>
310 Note, you should not remove any files from this directory by hand in an attempt
311 to rebuild an image.
312 If you want to clean out the cache, re-run the build using the following
313 BitBake command:
314 <literallayout class='monospaced'>
315 $ bitbake -c cleanall &lt;target&gt;
316 </literallayout>
317 </para>
328 </section> 318 </section>
329 319
330 <section id='structure-build-tmp-deploy-ipk'> 320 <section id='structure-build-tmp-deploy-ipk'>
331 <title><filename class="directory">build/tmp/deploy/ipk/</filename></title> 321 <title><filename>build/tmp/deploy/ipk/</filename></title>
332 322
333 <para>This directory receives <filename>.ipk</filename> packages produced by Poky.</para> 323 <para>This directory receives <filename>.ipk</filename> packages produced by the Yocto Project.</para>
334 </section> 324 </section>
335 325
336 <section id='structure-build-tmp-sysroots'> 326 <section id='structure-build-tmp-sysroots'>
337 <title><filename class="directory">build/tmp/sysroots/</filename></title> 327 <title><filename>build/tmp/sysroots/</filename></title>
338 328
339 <para> 329 <para>
340 This directory contains shared header files and libraries as well as other shared 330 This directory contains shared header files and libraries as well as other shared
@@ -346,7 +336,7 @@
346 </section> 336 </section>
347 337
348 <section id='structure-build-tmp-stamps'> 338 <section id='structure-build-tmp-stamps'>
349 <title><filename class="directory">build/tmp/stamps/</filename></title> 339 <title><filename>build/tmp/stamps/</filename></title>
350 340
351 <para> 341 <para>
352 This directory holds information that that BitBake uses for accounting purposes 342 This directory holds information that that BitBake uses for accounting purposes
@@ -358,17 +348,18 @@
358 </section> 348 </section>
359 349
360 <section id='structure-build-tmp-log'> 350 <section id='structure-build-tmp-log'>
361 <title><filename class="directory">build/tmp/log/</filename></title> 351 <title><filename>build/tmp/log/</filename></title>
362 352
363 <para> 353 <para>
364 This directory contains general logs that are not otherwise placed using the 354 This directory contains general logs that are not otherwise placed using the
365 package's <glossterm><link linkend='var-WORKDIR'>WORKDIR</link></glossterm>. 355 package's <filename><link linkend='var-WORKDIR'>WORKDIR</link></filename>.
366 Examples of logs are the output from the "check_pkg" or "distro_check" tasks. 356 Examples of logs are the output from the <filename>check_pkg</filename> or
357 <filename>distro_check</filename> tasks.
367 </para> 358 </para>
368 </section> 359 </section>
369 360
370 <section id='structure-build-tmp-pkgdata'> 361 <section id='structure-build-tmp-pkgdata'>
371 <title><filename class="directory">build/tmp/pkgdata/</filename></title> 362 <title><filename>build/tmp/pkgdata/</filename></title>
372 363
373 <para> 364 <para>
374 This directory contains intermediate packaging data that is used later in the packaging process. 365 This directory contains intermediate packaging data that is used later in the packaging process.
@@ -376,72 +367,65 @@
376 </para> 367 </para>
377 </section> 368 </section>
378 369
379 <section id='structure-build-tmp-pstagelogs'>
380 <title><filename class="directory">build/tmp/pstagelogs/</filename></title>
381
382 <para>
383 This directory contains manifest for task-based pre-built.
384 Each manifest is basically a file list for installed files from a given task.
385 Manifests are useful for later packaging or cleanup processes.
386 </para>
387 </section>
388
389 <section id='structure-build-tmp-work'> 370 <section id='structure-build-tmp-work'>
390 <title><filename class="directory">build/tmp/work/</filename></title> 371 <title><filename>build/tmp/work/</filename></title>
391 372
392 <para> 373 <para>
393 This directory contains architecture-specific work sub-directories for packages built by BitBake. 374 This directory contains architecture-specific work sub-directories for packages built by BitBake.
394 All tasks execute from a work directory. 375 All tasks execute from a work directory.
395 For example, the source for a particular package is unpacked, patched, configured and compiled all 376 For example, the source for a particular package is unpacked, patched, configured and compiled all
396 within its own work directory. 377 within its own work directory.
378 Within the work directory, organization is based on the package group for which the source
379 is being compiled.
397 </para> 380 </para>
398 381
399 <para> 382 <para>
400 It is worth considering the structure of a typical work directory. 383 It is worth considering the structure of a typical work directory.
401 As an example consider the linux-rp kernel, version 2.6.20 r7 on the machine spitz 384 As an example, consider the linux-yocto kernel 3.0 on the machine <filename>qemux86</filename>
402 built within Poky. 385 built within the Yocto Project.
403 For this package a work directory of 386 For this package, a work directory of
404 <filename class="directory">tmp/work/spitz-poky-linux-gnueabi/linux-rp-2.6.20-r7/</filename>, 387 <filename>tmp/work/qemux86-poky-linux/linux-yocto-3.0+git1+&lt;.....&gt;</filename>,
405 referred to as <glossterm><link linkend='var-WORKDIR'>WORKDIR</link></glossterm>, is created. 388 referred to as <filename><link linkend='var-WORKDIR'>WORKDIR</link></filename>, is created.
406 Within this directory, the source is unpacked to linux-2.6.20 and then patched by quilt 389 Within this directory, the source is unpacked to
407 (see <link linkend="usingpoky-modifying-packages-quilt">Section 3.5.1</link>). 390 <filename>linux-qemux86-standard-build</filename> and then patched by Quilt
408 Within the <filename class="directory">linux-2.6.20</filename> directory, 391 (see the <link linkend="usingpoky-modifying-packages-quilt">Modifying Package Source Code
409 standard quilt directories <filename class="directory">linux-2.6.20/patches</filename> 392 With Quilt</link> section).
410 and <filename class="directory">linux-2.6.20/.pc</filename> are created, 393 Within the <filename>linux-qemux86-standard-build</filename> directory,
411 and standard quilt commands can be used. 394 standard Quilt directories <filename>linux-3.0/patches</filename>
395 and <filename>linux-3.0/.pc</filename> are created,
396 and standard Quilt commands can be used.
412 </para> 397 </para>
413 398
414 <para> 399 <para>
415 There are other directories generated within WORKDIR. 400 There are other directories generated within WORKDIR.
416 The most important directory is WORKDIR 401 The most important directory is WORKDIR<filename>/temp/</filename>, which has log files for each
417 <filename class="directory">/temp/</filename>, which has log files for each
418 task (<filename>log.do_*.pid</filename>) and contains the scripts BitBake runs for 402 task (<filename>log.do_*.pid</filename>) and contains the scripts BitBake runs for
419 each task (<filename>run.do_*.pid</filename>). 403 each task (<filename>run.do_*.pid</filename>).
420 The WORKDIR<filename class="directory">/image/</filename> directory is where "make 404 The WORKDIR<filename>/image/</filename> directory is where "make
421 install" places its output that is then split into sub-packages 405 install" places its output that is then split into sub-packages
422 within WORKDIR<filename class="directory">/packages-split/</filename>. 406 within WORKDIR<filename>/packages-split/</filename>.
423 </para> 407 </para>
424 </section> 408 </section>
425</section> 409</section>
426 410
427<section id='structure-meta'> 411<section id='structure-meta'>
428 <title>The Metadata - <filename class="directory">meta/</filename></title> 412 <title>The Metadata - <filename>meta/</filename></title>
429 413
430 <para> 414 <para>
431 As mentioned previously, metadata is the core of Poky. 415 As mentioned previously, metadata is the core of the Yocto Project.
432 Metadata has several important subdivisions: 416 Metadata has several important subdivisions:
433 </para> 417 </para>
434 418
435 <section id='structure-meta-classes'> 419 <section id='structure-meta-classes'>
436 <title><filename class="directory">meta/classes/</filename></title> 420 <title><filename>meta/classes/</filename></title>
437 421
438 <para> 422 <para>
439 This directory contains the <filename class="extension">*.bbclass</filename> files. 423 This directory contains the <filename>*.bbclass</filename> files.
440 Class files are used to abstract common code so it can be reused by multiple 424 Class files are used to abstract common code so it can be reused by multiple
441 packages. 425 packages.
442 Every package inherits the <filename>base.bbclass</filename> file. 426 Every package inherits the <filename>base.bbclass</filename> file.
443 Examples of other important classes are <filename>autotools.bbclass</filename>, which 427 Examples of other important classes are <filename>autotools.bbclass</filename>, which
444 in theory allows any Autotool-enabled package to work with Poky with minimal effort. 428 in theory allows any Autotool-enabled package to work with the Yocto Project with minimal effort.
445 Another example is <filename>kernel.bbclass</filename> that contains common code and functions 429 Another example is <filename>kernel.bbclass</filename> that contains common code and functions
446 for working with the Linux kernel. 430 for working with the Linux kernel.
447 Functions like image generation or packaging also have their specific class files 431 Functions like image generation or packaging also have their specific class files
@@ -451,14 +435,14 @@
451 </section> 435 </section>
452 436
453 <section id='structure-meta-conf'> 437 <section id='structure-meta-conf'>
454 <title><filename class="directory">meta/conf/</filename></title> 438 <title><filename>meta/conf/</filename></title>
455 439
456 <para> 440 <para>
457 This directory contains the core set of configuration files that start from 441 This directory contains the core set of configuration files that start from
458 <filename>bitbake.conf</filename> and from which all other configuration 442 <filename>bitbake.conf</filename> and from which all other configuration
459 files are included. 443 files are included.
460 See the includes at the end of the file and you will note that even 444 See the include statements at the end of the file and you will note that even
461 <filename>local.conf</filename> is loaded from there! 445 <filename>local.conf</filename> is loaded from there.
462 While <filename>bitbake.conf</filename> sets up the defaults, you can often override 446 While <filename>bitbake.conf</filename> sets up the defaults, you can often override
463 these by using the (<filename>local.conf</filename>) file, machine file or 447 these by using the (<filename>local.conf</filename>) file, machine file or
464 the distribution configuration file. 448 the distribution configuration file.
@@ -466,32 +450,32 @@
466 </section> 450 </section>
467 451
468 <section id='structure-meta-conf-machine'> 452 <section id='structure-meta-conf-machine'>
469 <title><filename class="directory">meta/conf/machine/</filename></title> 453 <title><filename>meta/conf/machine/</filename></title>
470 454
471 <para> 455 <para>
472 This directory contains all the machine configuration files. 456 This directory contains all the machine configuration files.
473 If you set MACHINE="spitz", Poky looks for a <filename>spitz.conf</filename> file in this 457 If you set MACHINE="spitz", Yocto Project looks for a <filename>spitz.conf</filename> file in this
474 directory. 458 directory.
475 The includes directory contains various data common to multiple machines. 459 The <filename>include</filename> directory contains various data common to multiple machines.
476 If you want to add support for a new machine to Poky, look in this directory. 460 If you want to add support for a new machine to the Yocto Project, look in this directory.
477 </para> 461 </para>
478 </section> 462 </section>
479 463
480 <section id='structure-meta-conf-distro'> 464 <section id='structure-meta-conf-distro'>
481 <title><filename class="directory">meta/conf/distro/</filename></title> 465 <title><filename>meta/conf/distro/</filename></title>
482 466
483 <para> 467 <para>
484 Any distribution-specific configuration is controlled from this directory. 468 Any distribution-specific configuration is controlled from this directory.
485 Poky only contains the Poky distribution so <filename>poky.conf</filename> 469 The Yocto Project only contains the Yocto Project distribution so
486 is the main file here. 470 <filename>defaultsetup.conf</filename> is the main file here.
487 This directory includes the versions and SRCDATES for applications that are configured here. 471 This directory includes the versions and SRCDATES for applications that are configured here.
488 An example of an alternative configuration is <filename>poky-bleeding.conf</filename> 472 An example of an alternative configuration is <filename>poky-bleeding.conf</filename>
489 although this file mainly inherits its configuration from Poky itself. 473 although this file mainly inherits its configuration from the Yocto Project itself.
490 </para> 474 </para>
491 </section> 475 </section>
492 476
493 <section id='structure-meta-recipes-bsp'> 477 <section id='structure-meta-recipes-bsp'>
494 <title><filename class="directory">meta/recipes-bsp/</filename></title> 478 <title><filename>meta/recipes-bsp/</filename></title>
495 479
496 <para> 480 <para>
497 This directory contains anything linking to specific hardware or hardware configuration information 481 This directory contains anything linking to specific hardware or hardware configuration information
@@ -500,7 +484,7 @@
500 </section> 484 </section>
501 485
502 <section id='structure-meta-recipes-connectivity'> 486 <section id='structure-meta-recipes-connectivity'>
503 <title><filename class="directory">meta/recipes-connectivity/</filename></title> 487 <title><filename>meta/recipes-connectivity/</filename></title>
504 488
505 <para> 489 <para>
506 This directory contains libraries and applications related to communication with other devices. 490 This directory contains libraries and applications related to communication with other devices.
@@ -508,7 +492,7 @@
508 </section> 492 </section>
509 493
510 <section id='structure-meta-recipes-core'> 494 <section id='structure-meta-recipes-core'>
511 <title><filename class="directory">meta/recipes-core/</filename></title> 495 <title><filename>meta/recipes-core/</filename></title>
512 496
513 <para> 497 <para>
514 This directory contains what is needed to build a basic working Linux image 498 This directory contains what is needed to build a basic working Linux image
@@ -517,7 +501,7 @@
517 </section> 501 </section>
518 502
519 <section id='structure-meta-recipes-devtools'> 503 <section id='structure-meta-recipes-devtools'>
520 <title><filename class="directory">meta/recipes-devtools/</filename></title> 504 <title><filename>meta/recipes-devtools/</filename></title>
521 505
522 <para> 506 <para>
523 This directory contains tools that are primarily used by the build system. 507 This directory contains tools that are primarily used by the build system.
@@ -526,7 +510,7 @@
526 </section> 510 </section>
527 511
528 <section id='structure-meta-recipes-extended'> 512 <section id='structure-meta-recipes-extended'>
529 <title><filename class="directory">meta/recipes-extended/</filename></title> 513 <title><filename>meta/recipes-extended/</filename></title>
530 514
531 <para> 515 <para>
532 This directory contains non-essential applications that add features compared to the 516 This directory contains non-essential applications that add features compared to the
@@ -537,7 +521,7 @@
537 </section> 521 </section>
538 522
539 <section id='structure-meta-recipes-gnome'> 523 <section id='structure-meta-recipes-gnome'>
540 <title><filename class="directory">meta/recipes-gnome/</filename></title> 524 <title><filename>meta/recipes-gnome/</filename></title>
541 525
542 <para> 526 <para>
543 This directory contains all things related to the GTK+ application framework. 527 This directory contains all things related to the GTK+ application framework.
@@ -545,7 +529,7 @@
545 </section> 529 </section>
546 530
547 <section id='structure-meta-recipes-graphics'> 531 <section id='structure-meta-recipes-graphics'>
548 <title><filename class="directory">meta/recipes-graphics/</filename></title> 532 <title><filename>meta/recipes-graphics/</filename></title>
549 533
550 <para> 534 <para>
551 This directory contains X and other graphically related system libraries 535 This directory contains X and other graphically related system libraries
@@ -553,7 +537,7 @@
553 </section> 537 </section>
554 538
555 <section id='structure-meta-recipes-kernel'> 539 <section id='structure-meta-recipes-kernel'>
556 <title><filename class="directory">meta/recipes-kernel/</filename></title> 540 <title><filename>meta/recipes-kernel/</filename></title>
557 541
558 <para> 542 <para>
559 This directory contains the kernel and generic applications and libraries that 543 This directory contains the kernel and generic applications and libraries that
@@ -562,7 +546,7 @@
562 </section> 546 </section>
563 547
564 <section id='structure-meta-recipes-multimedia'> 548 <section id='structure-meta-recipes-multimedia'>
565 <title><filename class="directory">meta/recipes-multimedia/</filename></title> 549 <title><filename>meta/recipes-multimedia/</filename></title>
566 550
567 <para> 551 <para>
568 This directory contains codecs and support utilities for audio, images and video. 552 This directory contains codecs and support utilities for audio, images and video.
@@ -570,7 +554,7 @@
570 </section> 554 </section>
571 555
572 <section id='structure-meta-recipes-qt'> 556 <section id='structure-meta-recipes-qt'>
573 <title><filename class="directory">meta/recipes-qt/</filename></title> 557 <title><filename>meta/recipes-qt/</filename></title>
574 558
575 <para> 559 <para>
576 This directory contains all things related to the QT application framework. 560 This directory contains all things related to the QT application framework.
@@ -578,7 +562,7 @@
578 </section> 562 </section>
579 563
580 <section id='structure-meta-recipes-sato'> 564 <section id='structure-meta-recipes-sato'>
581 <title><filename class="directory">meta/recipes-sato/</filename></title> 565 <title><filename>meta/recipes-sato/</filename></title>
582 566
583 <para> 567 <para>
584 This directory contains the Sato demo/reference UI/UX and its associated applications 568 This directory contains the Sato demo/reference UI/UX and its associated applications
@@ -587,7 +571,7 @@
587 </section> 571 </section>
588 572
589 <section id='structure-meta-recipes-support'> 573 <section id='structure-meta-recipes-support'>
590 <title><filename class="directory">meta/recipes-support/</filename></title> 574 <title><filename>meta/recipes-support/</filename></title>
591 575
592 <para> 576 <para>
593 This directory contains recipes that used by other recipes, but that are not directly 577 This directory contains recipes that used by other recipes, but that are not directly
@@ -596,7 +580,7 @@
596 </section> 580 </section>
597 581
598 <section id='structure-meta-site'> 582 <section id='structure-meta-site'>
599 <title><filename class="directory">meta/site/</filename></title> 583 <title><filename>meta/site/</filename></title>
600 584
601 <para> 585 <para>
602 This directory contains a list of cached results for various architectures. 586 This directory contains a list of cached results for various architectures.
@@ -607,7 +591,7 @@
607 </section> 591 </section>
608 592
609 <section id='structure-meta-recipes-txt'> 593 <section id='structure-meta-recipes-txt'>
610 <title><filename class="directory">meta/recipes.txt/</filename></title> 594 <title><filename>meta/recipes.txt/</filename></title>
611 595
612 <para> 596 <para>
613 This file is a description of the contents of <filename>recipes-*</filename>. 597 This file is a description of the contents of <filename>recipes-*</filename>.