summaryrefslogtreecommitdiffstats
path: root/bitbake/doc/user-manual/user-manual-metadata.xml
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2014-01-18 13:20:36 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-01-27 21:03:20 +0000
commit98b41e41ff7f218e36bc1027a4738ab20021e57c (patch)
tree19fc4de956fb5e3b7b026bbf602417ceac485802 /bitbake/doc/user-manual/user-manual-metadata.xml
parenta0f3328679fef6c14d2d38d3fbb398a952f77cfa (diff)
downloadpoky-98b41e41ff7f218e36bc1027a4738ab20021e57c.tar.gz
bitbake: user-manual-metadata: Use filename tags instead of literal and varname tags
(Bitbake rev: 56f8c4ad09c244522d68e203fe4cb76d593a9f2f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/doc/user-manual/user-manual-metadata.xml')
-rw-r--r--bitbake/doc/user-manual/user-manual-metadata.xml213
1 files changed, 110 insertions, 103 deletions
diff --git a/bitbake/doc/user-manual/user-manual-metadata.xml b/bitbake/doc/user-manual/user-manual-metadata.xml
index 6ee8971562..5e4551bb6b 100644
--- a/bitbake/doc/user-manual/user-manual-metadata.xml
+++ b/bitbake/doc/user-manual/user-manual-metadata.xml
@@ -34,7 +34,7 @@
34 <literallayout class='monospaced'> 34 <literallayout class='monospaced'>
35 VARIABLE = "value" 35 VARIABLE = "value"
36 </literallayout> 36 </literallayout>
37 In this example, <varname>VARIABLE</varname> is <literal>value</literal>. 37 In this example, <filename>VARIABLE</filename> is <filename>value</filename>.
38 </para> 38 </para>
39 </section> 39 </section>
40 40
@@ -52,9 +52,9 @@
52 A = "aval" 52 A = "aval"
53 B = "pre${A}post" 53 B = "pre${A}post"
54 </literallayout> 54 </literallayout>
55 This results in <varname>A</varname> containing 55 This results in <filename>A</filename> containing
56 <literal>aval</literal> and <varname>B</varname> containing 56 <filename>aval</filename> and <filename>B</filename> containing
57 <literal>preavalpost</literal>. 57 <filename>preavalpost</filename>.
58 </para> 58 </para>
59 </section> 59 </section>
60 60
@@ -65,10 +65,10 @@
65 <literallayout class='monospaced'> 65 <literallayout class='monospaced'>
66 A ?= "aval" 66 A ?= "aval"
67 </literallayout> 67 </literallayout>
68 If <varname>A</varname> is set before the above is called, 68 If <filename>A</filename> is set before the above is called,
69 it will retain its previous value. 69 it will retain its previous value.
70 If <varname>A</varname> is unset prior to the above call, 70 If <filename>A</filename> is unset prior to the above call,
71 <varname>A</varname> will be set to <literal>aval</literal>. 71 <filename>A</filename> will be set to <filename>aval</filename>.
72 Note that this assignment is immediate, so if there are multiple ?= assignments 72 Note that this assignment is immediate, so if there are multiple ?= assignments
73 to a single variable, the first of those will be used. 73 to a single variable, the first of those will be used.
74 </para> 74 </para>
@@ -82,14 +82,14 @@
82 A ??= "somevalue" 82 A ??= "somevalue"
83 A ??= "someothervalue" 83 A ??= "someothervalue"
84 </literallayout> 84 </literallayout>
85 If <varname>A</varname> is set before the above, 85 If <filename>A</filename> is set before the above,
86 it will retain that value. 86 it will retain that value.
87 If <varname>A</varname> is unset prior to the above, 87 If <filename>A</filename> is unset prior to the above,
88 <varname>A</varname> will be set to <literal>someothervalue</literal>. 88 <filename>A</filename> will be set to <filename>someothervalue</filename>.
89 This is a lazy/weak assignment in that the assignment does not occur until the end 89 This is a lazy/weak assignment in that the assignment does not occur until the end
90 of the parsing process, so that the last, rather than the first, 90 of the parsing process, so that the last, rather than the first,
91 ??= assignment to a given variable will be used. 91 ??= assignment to a given variable will be used.
92 Any other setting of A using = or ?= 92 Any other setting of <filename>A</filename> using = or ?=
93 will however override the value set with ??= 93 will however override the value set with ??=
94 </para> 94 </para>
95 </section> 95 </section>
@@ -107,7 +107,10 @@
107 C = "cval" 107 C = "cval"
108 C := "${C}append" 108 C := "${C}append"
109 </literallayout> 109 </literallayout>
110 In that example, <varname>A</varname> would contain <literal> test 123</literal>, <varname>B</varname> would contain <literal>456 bval</literal>, and <varname>C</varname> would be <literal>cvalappend</literal>. 110 In that example, <filename>A</filename> would contain
111 <filename>test 123</filename>, <filename>B</filename> would contain
112 <filename>456 bval</filename>, and <filename>C</filename>
113 would be <filename>cvalappend</filename>.
111 </para> 114 </para>
112 </section> 115 </section>
113 116
@@ -121,7 +124,9 @@
121 C = "cval" 124 C = "cval"
122 C =+ "test" 125 C =+ "test"
123 </literallayout> 126 </literallayout>
124 In this example, <varname>B</varname> is now <literal>bval additionaldata</literal> and <varname>C</varname> is <literal>test cval</literal>. 127 In this example, <filename>B</filename> is now
128 <filename>bval additionaldata</filename> and <filename>C</filename>
129 is <filename>test cval</filename>.
125 </para> 130 </para>
126 </section> 131 </section>
127 132
@@ -135,9 +140,9 @@
135 C = "cval" 140 C = "cval"
136 C =. "test" 141 C =. "test"
137 </literallayout> 142 </literallayout>
138 In this example, <varname>B</varname> is now 143 In this example, <filename>B</filename> is now
139 <literal>bvaladditionaldata</literal> and 144 <filename>bvaladditionaldata</filename> and
140 <varname>C</varname> is <literal>testcval</literal>. 145 <filename>C</filename> is <filename>testcval</filename>.
141 In contrast to the above appending and prepending operators, 146 In contrast to the above appending and prepending operators,
142 no additional space will be introduced. 147 no additional space will be introduced.
143 </para> 148 </para>
@@ -153,11 +158,11 @@
153 C = "cval" 158 C = "cval"
154 C_prepend = "additional data " 159 C_prepend = "additional data "
155 </literallayout> 160 </literallayout>
156 This example results in <varname>B</varname> 161 This example results in <filename>B</filename>
157 becoming <literal>bval additional data</literal> 162 becoming <filename>bval additional data</filename>
158 and <varname>C</varname> becoming 163 and <filename>C</filename> becoming
159 <literal>additional data cval</literal>. 164 <filename>additional data cval</filename>.
160 Note the spaces in the append. 165 Note the spaces in the <filename>_append</filename>.
161 Unlike the += operator, additional space is not automatically added. 166 Unlike the += operator, additional space is not automatically added.
162 You must take steps to add space 167 You must take steps to add space
163yourself. 168yourself.
@@ -172,7 +177,7 @@ yourself.
172 FOO_remove = "123" 177 FOO_remove = "123"
173 FOO_remove = "456" 178 FOO_remove = "456"
174 </literallayout> 179 </literallayout>
175 In this example, <varname>FOO</varname> is now <literal>789 123456</literal>. 180 In this example, <filename>FOO</filename> is now <filename>789 123456</filename>.
176 </para> 181 </para>
177 </section> 182 </section>
178 183
@@ -186,8 +191,8 @@ yourself.
186 <literallayout class='monospaced'> 191 <literallayout class='monospaced'>
187 VARIABLE[SOMEFLAG] = "value" 192 VARIABLE[SOMEFLAG] = "value"
188 </literallayout> 193 </literallayout>
189 In this example, <varname>VARIABLE</varname> has a flag, 194 In this example, <filename>VARIABLE</filename> has a flag,
190 <varname>SOMEFLAG</varname> which is set to <literal>value</literal>. 195 <filename>SOMEFLAG</filename> which is set to <filename>value</filename>.
191 </para> 196 </para>
192 </section> 197 </section>
193 198
@@ -198,7 +203,7 @@ yourself.
198 <literallayout class='monospaced'> 203 <literallayout class='monospaced'>
199 DATE = "${@time.strftime('%Y%m%d',time.gmtime())}" 204 DATE = "${@time.strftime('%Y%m%d',time.gmtime())}"
200 </literallayout> 205 </literallayout>
201 This would result in the <varname>DATE</varname> 206 This would result in the <filename>DATE</filename>
202 variable containing today's date. 207 variable containing today's date.
203 </para> 208 </para>
204 </section> 209 </section>
@@ -207,10 +212,10 @@ yourself.
207 <title>Conditional metadata set</title> 212 <title>Conditional metadata set</title>
208 213
209 <para> 214 <para>
210 OVERRIDES is a <quote>:</quote> separated variable containing 215 <filename>OVERRIDES</filename> is a <quote>:</quote> separated variable containing
211 each item you want to satisfy conditions. 216 each item you want to satisfy conditions.
212 So, if you have a variable which is conditional on <quote>arm</quote>, and <quote>arm</quote> 217 So, if you have a variable which is conditional on <quote>arm</quote>, and <quote>arm</quote>
213 is in OVERRIDES, then the <quote>arm</quote> specific 218 is in <filename>OVERRIDES</filename>, then the <quote>arm</quote> specific
214 version of the variable is used rather than the non-conditional 219 version of the variable is used rather than the non-conditional
215 version. 220 version.
216 Example: 221 Example:
@@ -220,9 +225,9 @@ yourself.
220 TEST_os = "osspecificvalue" 225 TEST_os = "osspecificvalue"
221 TEST_condnotinoverrides = "othercondvalue" 226 TEST_condnotinoverrides = "othercondvalue"
222 </literallayout> 227 </literallayout>
223 In this example, <varname>TEST</varname> would be 228 In this example, <filename>TEST</filename> would be
224 <literal>osspecificvalue</literal>, due to the condition 229 <filename>osspecificvalue</filename>, due to the condition
225 <quote>os</quote> being in <varname>OVERRIDES</varname>. 230 <quote>os</quote> being in <filename>OVERRIDES</filename>.
226 </para> 231 </para>
227 </section> 232 </section>
228 233
@@ -231,14 +236,14 @@ yourself.
231 236
232 <para> 237 <para>
233 BitBake also supports appending and prepending to variables based 238 BitBake also supports appending and prepending to variables based
234 on whether something is in OVERRIDES. Example: 239 on whether something is in <filename>OVERRIDES</filename>. Example:
235 <literallayout class='monospaced'> 240 <literallayout class='monospaced'>
236 DEPENDS = "glibc ncurses" 241 DEPENDS = "glibc ncurses"
237 OVERRIDES = "machine:local" 242 OVERRIDES = "machine:local"
238 DEPENDS_append_machine = "libmad" 243 DEPENDS_append_machine = "libmad"
239 </literallayout> 244 </literallayout>
240 In this example, <varname>DEPENDS</varname> is set to 245 In this example, <filename>DEPENDS</filename> is set to
241 <literal>glibc ncurses libmad</literal>. 246 "glibc ncurses libmad".
242 </para> 247 </para>
243 </section> 248 </section>
244 249
@@ -263,27 +268,27 @@ yourself.
263 OVERRIDES = "foo" 268 OVERRIDES = "foo"
264 A_foo_append = "X" 269 A_foo_append = "X"
265 </literallayout> 270 </literallayout>
266 In this case, X is unconditionally appended 271 In this case, <filename>X</filename> is unconditionally appended
267 to the variable <varname>A_foo</varname>. 272 to the variable <filename>A_foo</filename>.
268 Since foo is an override, A_foo would then replace 273 Since foo is an override, <filename>A_foo</filename> would then replace
269 <varname>A</varname>. 274 <filename>A</filename>.
270 <literallayout class='monospaced'> 275 <literallayout class='monospaced'>
271 OVERRIDES = "foo" 276 OVERRIDES = "foo"
272 A = "X" 277 A = "X"
273 A_append_foo = "Y" 278 A_append_foo = "Y"
274 </literallayout> 279 </literallayout>
275 In this case, only when foo is in 280 In this case, only when <filename>foo</filename> is in
276 OVERRIDES, Y 281 <filename>OVERRIDES</filename>, <filename>Y</filename>
277 is appended to the variable <varname>A</varname> 282 is appended to the variable <filename>A</filename>
278 so the value of <varname>A</varname> would 283 so the value of <filename>A</filename> would
279 become XY (NB: no spaces are appended). 284 become <filename>XY</filename> (NB: no spaces are appended).
280 <literallayout class='monospaced'> 285 <literallayout class='monospaced'>
281 OVERRIDES = "foo" 286 OVERRIDES = "foo"
282 A_foo_append = "X" 287 A_foo_append = "X"
283 A_foo_append += "Y" 288 A_foo_append += "Y"
284 </literallayout> 289 </literallayout>
285 This behaves as per the first case above, but the value of 290 This behaves as per the first case above, but the value of
286 <varname>A</varname> would be "X Y" instead of just "X". 291 <filename>A</filename> would be "X Y" instead of just "X".
287 <literallayout class='monospaced'> 292 <literallayout class='monospaced'>
288 A = "1" 293 A = "1"
289 A_append = "2" 294 A_append = "2"
@@ -291,7 +296,7 @@ yourself.
291 A += "4" 296 A += "4"
292 A .= "5" 297 A .= "5"
293 </literallayout> 298 </literallayout>
294 Would ultimately result in <varname>A</varname> taking the value 299 Would ultimately result in <filename>A</filename> taking the value
295 "1 4523" since the _append operator executes at the 300 "1 4523" since the _append operator executes at the
296 same time as the expansion of other overrides. 301 same time as the expansion of other overrides.
297 </para> 302 </para>
@@ -308,7 +313,7 @@ yourself.
308 B = "2" 313 B = "2"
309 A2 = "Y" 314 A2 = "Y"
310 </literallayout> 315 </literallayout>
311 So in this case <varname>A2</varname> would take the value of "X". 316 So in this case <filename>A2</filename> would take the value of "X".
312 </para> 317 </para>
313 </section> 318 </section>
314 </section> 319 </section>
@@ -322,14 +327,14 @@ yourself.
322 This is only supported in .bb and .bbclass files. 327 This is only supported in .bb and .bbclass files.
323 </para> 328 </para>
324 <para> 329 <para>
325 The <literal>inherit</literal> directive is a means of specifying what classes 330 The inherit directive is a means of specifying what classes
326 of functionality your .bb requires. 331 of functionality your <filename>.bb</filename> requires.
327 It is a rudimentary form of inheritance. 332 It is a rudimentary form of inheritance.
328 For example, you can easily abstract out the tasks involved in 333 For example, you can easily abstract out the tasks involved in
329 building a package that uses autoconf and automake, and put 334 building a package that uses autoconf and automake, and put
330 that into a bbclass for your packages to make use of. 335 that into a bbclass for your packages to make use of.
331 A given bbclass is located by searching for classes/filename.bbclass 336 A given bbclass is located by searching for classes/filename.bbclass
332 in <envar>BBPATH</envar>, where filename is what you inherited. 337 in <filename>BBPATH</filename>, where filename is what you inherited.
333 </para> 338 </para>
334 </section> 339 </section>
335 340
@@ -337,22 +342,22 @@ yourself.
337 <title>Inclusion</title> 342 <title>Inclusion</title>
338 343
339 <para> 344 <para>
340 Next, there is the <literal>include</literal> directive, which causes BitBake to parse whatever file you specify, 345 Next, there is the <filename>include</filename> directive, which causes BitBake to parse whatever file you specify,
341 and insert it at that location, which is not unlike <command>make</command>. 346 and insert it at that location, which is not unlike <command>make</command>.
342 However, if the path specified on the <literal>include</literal> line is a 347 However, if the path specified on the <filename>include</filename> line is a
343 relative path, BitBake will locate the first one it can find 348 relative path, BitBake will locate the first one it can find
344 within <envar>BBPATH</envar>. 349 within <filename>BBPATH</filename>.
345 </para> 350 </para>
346 </section> 351 </section>
347 352
348 <section id='requiring-inclusion'> 353 <section id='requiring-inclusion'>
349 <title>Requiring inclusion</title> 354 <title>Requiring inclusion</title>
350 <para> 355 <para>
351 In contrast to the <literal>include</literal> directive, <literal>require</literal> will 356 In contrast to the <filename>include</filename> directive, <filename>require</filename> will
352raise an 357raise an
353 ParseError if the file to be included cannot 358 ParseError if the file to be included cannot
354 be found. 359 be found.
355 Otherwise it will behave just like the <literal>include</literal> directive. 360 Otherwise it will behave just like the <filename>include</filename> directive.
356 </para> 361 </para>
357 </section> 362 </section>
358 363
@@ -371,7 +376,7 @@ raise an
371 SOMECONDITION = "1" 376 SOMECONDITION = "1"
372 DEPENDS = "${@get_depends(d)}" 377 DEPENDS = "${@get_depends(d)}"
373 </literallayout> 378 </literallayout>
374 This would result in <varname>DEPENDS</varname> containing <literal>dependencywithcond</literal>. 379 This would result in <filename>DEPENDS</filename> containing <filename>dependencywithcond</filename>.
375 </para> 380 </para>
376 </section> 381 </section>
377 382
@@ -397,7 +402,7 @@ python do_printdate () {
397 <section> 402 <section>
398 <title>Tasks</title> 403 <title>Tasks</title>
399 <para><emphasis>NOTE:</emphasis> This is only supported in .bb and .bbclass files.</para> 404 <para><emphasis>NOTE:</emphasis> This is only supported in .bb and .bbclass files.</para>
400 <para>In BitBake, each step that needs to be run for a given .bb is known as a task. There is a command <literal>addtask</literal> to add new tasks (must be a defined Python executable metadata and must start with <quote>do_</quote>) and describe intertask dependencies. 405 <para>In BitBake, each step that needs to be run for a given .bb is known as a task. There is a command <filename>addtask</filename> to add new tasks (must be a defined Python executable metadata and must start with <quote>do_</quote>) and describe intertask dependencies.
401 <literallayout class='monospaced'> 406 <literallayout class='monospaced'>
402 python do_printdate () { 407 python do_printdate () {
403 import time print 408 import time print
@@ -437,28 +442,29 @@ python do_printdate () {
437 442
438 <para> 443 <para>
439 BitBake will first search the current working directory for an 444 BitBake will first search the current working directory for an
440 optional "conf/bblayers.conf" configuration file. 445 optional <filename>conf/bblayers.conf</filename> configuration file.
441 This file is expected to contain a BBLAYERS 446 This file is expected to contain a <filename>BBLAYERS</filename>
442 variable which is a space delimited list of 'layer' directories. 447 variable which is a space delimited list of 'layer' directories.
443 For each directory in this list, a "conf/layer.conf" 448 For each directory in this list, a <filename>conf/layer.conf</filename>
444 file will be searched for and parsed with the 449 file will be searched for and parsed with the
445 LAYERDIR variable being set to the directory where 450 <filename>LAYERDIR</filename> variable being set to the directory where
446 the layer was found. 451 the layer was found.
447 The idea is these files will setup BBPATH 452 The idea is these files will setup <filename>BBPATH</filename>
448 and other variables correctly for a given build directory automatically 453 and other variables correctly for a given build directory automatically
449 for the user. 454 for the user.
450 </para> 455 </para>
451 456
452 <para> 457 <para>
453 BitBake will then expect to find 'conf/bitbake.conf' 458 BitBake will then expect to find <filename>conf/bitbake.conf</filename>
454 somewhere in the user specified <envar>BBPATH</envar>. 459 somewhere in the user specified <filename>BBPATH</filename>.
455 That configuration file generally has include directives to pull 460 That configuration file generally has include directives to pull
456 in any other metadata (generally files specific to architecture, 461 in any other metadata (generally files specific to architecture,
457 machine, <emphasis>local</emphasis> and so on). 462 machine, <emphasis>local</emphasis> and so on).
458 </para> 463 </para>
459 464
460 <para> 465 <para>
461 Only variable definitions and include directives are allowed in .conf files. 466 Only variable definitions and include directives are allowed
467 in <filename>.conf</filename> files.
462 </para> 468 </para>
463 </section> 469 </section>
464 <section id='classes'> 470 <section id='classes'>
@@ -466,23 +472,23 @@ python do_printdate () {
466 <para> 472 <para>
467 BitBake classes are our rudimentary inheritance mechanism. 473 BitBake classes are our rudimentary inheritance mechanism.
468 As briefly mentioned in the metadata introduction, they're 474 As briefly mentioned in the metadata introduction, they're
469 parsed when an <literal>inherit</literal> directive is encountered, and they 475 parsed when an inherit directive is encountered, and they
470 are located in classes/ 476 are located in the <filename>classes/</filename> directory
471 relative to the directories in <envar>BBPATH</envar>. 477 relative to the directories in <filename>BBPATH</filename>.
472 </para> 478 </para>
473 </section> 479 </section>
474 480
475 <section id='bb-files'> 481 <section id='bb-files'>
476 <title>.bb files</title> 482 <title>.<filename>.bb</filename> files</title>
477 483
478 <para> 484 <para>
479 BitBake (.bb) file is a logical unit 485 BitBake (<filename>.bb</filename>) file is a logical unit
480 of tasks to be executed. 486 of tasks to be executed.
481 Normally this is a package to be built. 487 Normally this is a package to be built.
482 Inter-.bb dependencies are obeyed. 488 Inter-<filename>.bb</filename> dependencies are obeyed.
483 The files themselves are located via 489 The files themselves are located via
484 the <varname>BBFILES</varname> variable, which 490 the <filename>BBFILES</filename> variable, which
485 is set to a space separated list of .bb 491 is set to a space separated list of <filename>.bb</filename>
486 files, and does handle wildcards. 492 files, and does handle wildcards.
487 </para> 493 </para>
488 </section> 494 </section>
@@ -493,13 +499,14 @@ python do_printdate () {
493 499
494 <para> 500 <para>
495 <emphasis>NOTE:</emphasis> 501 <emphasis>NOTE:</emphasis>
496 This is only supported in .bb and .bbclass files. 502 This is only supported in <filename>.bb</filename>
503 and <filename>.bbclass</filename> files.
497 </para> 504 </para>
498 <para> 505 <para>
499 BitBake allows installation of event handlers. 506 BitBake allows installation of event handlers.
500 Events are triggered at certain points during operation, 507 Events are triggered at certain points during operation,
501 such as the beginning of operation against a given 508 such as the beginning of operation against a given
502 .bb, the start of a given task, 509 <filename>.bb</filename>, the start of a given task,
503 task failure, task success, et cetera. 510 task failure, task success, et cetera.
504 The intent is to make it easy to do things like email 511 The intent is to make it easy to do things like email
505 notification on build failure. 512 notification on build failure.
@@ -514,16 +521,16 @@ python do_printdate () {
514 </literallayout> 521 </literallayout>
515 This event handler gets called every time an event is 522 This event handler gets called every time an event is
516 triggered. 523 triggered.
517 A global variable <varname>e</varname> is defined. 524 A global variable <filename>e</filename> is defined.
518 <varname>e</varname>.data contains an instance of 525 <filename>e.data</filename> contains an instance of
519 bb.data. 526 <filename>bb.data</filename>.
520 With the getName(<varname>e</varname>) method one can get 527 With the <filename>getName(e)</filename> method one can get
521 the name of the triggered event. 528 the name of the triggered event.
522 </para> 529 </para>
523 530
524 <para> 531 <para>
525 The above event handler prints the name of the event 532 The above event handler prints the name of the event
526 and the content of the <varname>FILE</varname> variable. 533 and the content of the <filename>FILE</filename> variable.
527 </para> 534 </para>
528 </section> 535 </section>
529 536
@@ -536,7 +543,7 @@ python do_printdate () {
536 </para> 543 </para>
537 544
538 <para> 545 <para>
539 The first is <varname>BBCLASSEXTEND</varname>. 546 The first is <filename>BBCLASSEXTEND</filename>.
540 This variable is a space separated list of classes used to "extend" the 547 This variable is a space separated list of classes used to "extend" the
541 recipe for each variant. 548 recipe for each variant.
542 As an example, setting 549 As an example, setting
@@ -548,10 +555,10 @@ python do_printdate () {
548 This second incarnation will have the "native" class inherited. 555 This second incarnation will have the "native" class inherited.
549 </para> 556 </para>
550 <para> 557 <para>
551 The second feature is <varname>BBVERSIONS</varname>. 558 The second feature is <filename>BBVERSIONS</filename>.
552 This variable allows a single recipe to build multiple versions of a 559 This variable allows a single recipe to build multiple versions of a
553 project from a single recipe file, and allows you to specify 560 project from a single recipe file, and allows you to specify
554 conditional metadata (using the <varname>OVERRIDES</varname> 561 conditional metadata (using the <filename>OVERRIDES</filename>
555 mechanism) for a single version, or an optionally named range of versions: 562 mechanism) for a single version, or an optionally named range of versions:
556 <literallayout class='monospaced'> 563 <literallayout class='monospaced'>
557 BBVERSIONS = "1.0 2.0 git" 564 BBVERSIONS = "1.0 2.0 git"
@@ -562,12 +569,12 @@ python do_printdate () {
562 SRC_URI_append_1.0.7+ = "file://some_patch_which_the_new_versions_need.patch;patch=1" 569 SRC_URI_append_1.0.7+ = "file://some_patch_which_the_new_versions_need.patch;patch=1"
563 </literallayout> 570 </literallayout>
564 Note that the name of the range will default to the original version of the 571 Note that the name of the range will default to the original version of the
565 recipe, so given OE, a recipe file of foo_1.0.0+.bb 572 recipe, so given OE, a recipe file of <filename>foo_1.0.0+.bb</filename>
566 will default the name of its versions to 1.0.0+. 573 will default the name of its versions to <filename>1.0.0+</filename>.
567 This is useful, as the range name is not only placed into overrides; 574 This is useful, as the range name is not only placed into overrides;
568 it's also made available for the metadata to use in the form of the 575 it's also made available for the metadata to use in the form of the
569 <varname>BPV</varname> variable, for use in 576 <filename>BPV</filename> variable, for use in
570 file:// search paths (<varname>FILESPATH</varname>). 577 <filename>file://</filename> search paths (<filename>FILESPATH</filename>).
571 </para> 578 </para>
572 </section> 579 </section>
573 580
@@ -582,12 +589,12 @@ python do_printdate () {
582 </para> 589 </para>
583 590
584 <section id='dependencies-internal-to-the-bb-file'> 591 <section id='dependencies-internal-to-the-bb-file'>
585 <title>Dependencies internal to the .bb file</title> 592 <title>Dependencies internal to the <filename>.bb</filename> file</title>
586 593
587 <para> 594 <para>
588 Where the dependencies are internal to a given 595 Where the dependencies are internal to a given
589 .bb file, the dependencies are handled by the 596 <filename>.bb</filename> file, the dependencies are handled by the
590 previously detailed addtask directive. 597 previously detailed <filename>addtask</filename> directive.
591 </para> 598 </para>
592 </section> 599 </section>
593 600
@@ -595,16 +602,16 @@ python do_printdate () {
595 <title>Build Dependencies</title> 602 <title>Build Dependencies</title>
596 603
597 <para> 604 <para>
598 DEPENDS lists build time dependencies. 605 <filename>DEPENDS</filename> lists build time dependencies.
599 The 'deptask' flag for tasks is used to signify the task of each 606 The 'deptask' flag for tasks is used to signify the task of each
600 item listed in DEPENDS which must have 607 item listed in <filename>DEPENDS</filename> which must have
601 completed before that task can be executed. 608 completed before that task can be executed.
602 <literallayout class='monospaced'> 609 <literallayout class='monospaced'>
603 do_configure[deptask] = "do_populate_staging" 610 do_configure[deptask] = "do_populate_staging"
604 </literallayout> 611 </literallayout>
605 means the do_populate_staging 612 means the <filename>do_populate_staging</filename>
606 task of each item in DEPENDS must have completed before 613 task of each item in <filename>DEPENDS</filename> must have completed before
607 do_configure can execute. 614 <filename>do_configure</filename> can execute.
608 </para> 615 </para>
609 </section> 616 </section>
610 617
@@ -612,18 +619,18 @@ python do_printdate () {
612 <title>Runtime Dependencies</title> 619 <title>Runtime Dependencies</title>
613 620
614 <para> 621 <para>
615 The PACKAGES variable lists runtime 622 The <filename>PACKAGES</filename> variable lists runtime
616 packages and each of these can have RDEPENDS and 623 packages and each of these can have <filename>RDEPENDS</filename> and
617 RRECOMMENDS runtime dependencies. 624 <filename>RRECOMMENDS</filename> runtime dependencies.
618 The 'rdeptask' flag for tasks is used to signify the task of each 625 The 'rdeptask' flag for tasks is used to signify the task of each
619 item runtime dependency which must have completed before that 626 item runtime dependency which must have completed before that
620 task can be executed. 627 task can be executed.
621 <literallayout class='monospaced'> 628 <literallayout class='monospaced'>
622 do_package_write[rdeptask] = "do_package" 629 do_package_write[rdeptask] = "do_package"
623 </literallayout> 630 </literallayout>
624 means the do_package 631 means the <filename>do_package</filename>
625 task of each item in RDEPENDS must have 632 task of each item in <filename>RDEPENDS</filename> must have
626 completed before do_package_write can execute. 633 completed before <filename>do_package_write</filename> can execute.
627 </para> 634 </para>
628 </section> 635 </section>
629 636
@@ -649,7 +656,7 @@ python do_printdate () {
649 build and runtime dependencies of dependent tasks too. 656 build and runtime dependencies of dependent tasks too.
650 If that is the case, the taskname itself should 657 If that is the case, the taskname itself should
651 be referenced in the task list, e.g. 658 be referenced in the task list, e.g.
652 do_a[recrdeptask] = "do_a do_b". 659 <filename>do_a[recrdeptask] = "do_a do_b"</filename>.
653 </para> 660 </para>
654 </section> 661 </section>
655 662
@@ -659,13 +666,13 @@ python do_printdate () {
659 <para> 666 <para>
660 The 'depends' flag for tasks is a more generic form of which 667 The 'depends' flag for tasks is a more generic form of which
661 allows an interdependency on specific tasks rather than specifying 668 allows an interdependency on specific tasks rather than specifying
662 the data in DEPENDS. 669 the data in <filename>DEPENDS</filename>.
663 <literallayout class='monospaced'> 670 <literallayout class='monospaced'>
664 do_patch[depends] = "quilt-native:do_populate_staging" 671 do_patch[depends] = "quilt-native:do_populate_staging"
665 </literallayout> 672 </literallayout>
666 means the do_populate_staging 673 means the <filename>do_populate_staging</filename>
667 task of the target quilt-native must have completed before the 674 task of the target quilt-native must have completed before the
668 do_patch can execute. 675 <filename>do_patch</filename> task can execute.
669 </para> 676 </para>
670 677
671 <para> 678 <para>