diff options
Diffstat (limited to 'documentation/ref-manual')
-rw-r--r-- | documentation/ref-manual/usingpoky.xml | 107 |
1 files changed, 87 insertions, 20 deletions
diff --git a/documentation/ref-manual/usingpoky.xml b/documentation/ref-manual/usingpoky.xml index f70c1966e1..a7a63bd8cb 100644 --- a/documentation/ref-manual/usingpoky.xml +++ b/documentation/ref-manual/usingpoky.xml | |||
@@ -234,6 +234,93 @@ | |||
234 | </para> | 234 | </para> |
235 | </section> | 235 | </section> |
236 | 236 | ||
237 | <section id='usingpoky-viewing-dependencies'> | ||
238 | <title>Viewing Dependencies</title> | ||
239 | |||
240 | <para> | ||
241 | Sometimes it can be hard to see why BitBake wants to build other | ||
242 | recipes before the one you have specified. | ||
243 | Dependency information can help you understand recipe build order. | ||
244 | </para> | ||
245 | |||
246 | <para> | ||
247 | To generate dependency information for a recipe, run the following | ||
248 | command: | ||
249 | <literallayout class='monospaced'> | ||
250 | $ bitbake -g <replaceable>recipename</replaceable> | ||
251 | </literallayout> | ||
252 | This command writes the following files in the current directory: | ||
253 | <itemizedlist> | ||
254 | <listitem><para> | ||
255 | <filename>pn-buildlist</filename>: A list of | ||
256 | recipes/targets involved in building | ||
257 | <replaceable>recipename</replaceable>. | ||
258 | "Involved" here means that at least one task from the | ||
259 | recipe needs to run when building | ||
260 | <replaceable>recipename</replaceable> from scratch. | ||
261 | Targets that are in | ||
262 | <link linkend='var-ASSUME_PROVIDED'><filename>ASSUME_PROVIDED</filename></link> | ||
263 | are not listed. | ||
264 | </para></listitem> | ||
265 | <listitem><para> | ||
266 | <filename>pn-depends.dot</filename>: A graph showing | ||
267 | dependencies between build-time targets (recipes). | ||
268 | </para></listitem> | ||
269 | <listitem><para> | ||
270 | <filename>package-depends.dot</filename>: A graph showing | ||
271 | known dependencies between runtime targets. | ||
272 | </para></listitem> | ||
273 | <listitem><para> | ||
274 | <filename>task-depends.dot</filename>: A graph showing | ||
275 | dependencies between tasks. | ||
276 | </para></listitem> | ||
277 | </itemizedlist> | ||
278 | </para> | ||
279 | |||
280 | <para> | ||
281 | The graphs are in | ||
282 | <ulink url='https://en.wikipedia.org/wiki/DOT_%28graph_description_language%29'>DOT</ulink> | ||
283 | format and can be converted to images (e.g. using the "dot" tool | ||
284 | from | ||
285 | <ulink url='http://www.graphviz.org/'>Graphviz</ulink>. | ||
286 | <note> | ||
287 | <para>DOT files use a plain text format. | ||
288 | The graphs generated using the | ||
289 | <filename>bitbake -g</filename> command are often so large as | ||
290 | to be impossible to read without special pruning (e.g. with | ||
291 | Bitbake's <filename>-I</filename> option) and processing. | ||
292 | Despite the form and size of the files, the corresponding | ||
293 | <filename>.dot</filename> files can still be easy to read | ||
294 | and provide useful information.</para> | ||
295 | |||
296 | <para>As an example, the | ||
297 | <filename>task-depends.dot</filename> file contains lines such | ||
298 | as the following: | ||
299 | <literallayout class='monospaced'> | ||
300 | "libxslt.do_configure" -> "libxml2.do_populate_sysroot" | ||
301 | </literallayout> | ||
302 | The above example line reveals that the | ||
303 | <link linkend='ref-tasks-configure'><filename>do_configure</filename></link> | ||
304 | task in <filename>libxslt</filename> depends on the | ||
305 | <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link> | ||
306 | task in <filename>libxml2</filename>, which is a normal | ||
307 | <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link> | ||
308 | dependency between the two recipes.</para> | ||
309 | </note> | ||
310 | </para> | ||
311 | |||
312 | <para> | ||
313 | You can use a different method to view dependency information | ||
314 | by using the following command: | ||
315 | <literallayout class='monospaced'> | ||
316 | $ bitbake -g -u depexp <replaceable>recipename</replaceable> | ||
317 | </literallayout> | ||
318 | This command displays a GUI window from which you can view | ||
319 | build-time and runtime dependencies for the recipes involved in | ||
320 | building <replaceable>recipename</replaceable>. | ||
321 | </para> | ||
322 | </section> | ||
323 | |||
237 | <section id='usingpoky-debugging-taskrunning'> | 324 | <section id='usingpoky-debugging-taskrunning'> |
238 | <title>Running Specific Tasks</title> | 325 | <title>Running Specific Tasks</title> |
239 | 326 | ||
@@ -370,26 +457,6 @@ | |||
370 | 457 | ||
371 | </section> | 458 | </section> |
372 | 459 | ||
373 | <section id='usingpoky-debugging-dependencies'> | ||
374 | <title>Dependency Graphs</title> | ||
375 | |||
376 | <para> | ||
377 | Sometimes it can be hard to see why BitBake wants to build | ||
378 | other packages before building a given package you have specified. | ||
379 | The <filename>bitbake -g <replaceable>targetname</replaceable></filename> command | ||
380 | creates the <filename>pn-buildlist</filename>, | ||
381 | <filename>pn-depends.dot</filename>, | ||
382 | <filename>package-depends.dot</filename>, and | ||
383 | <filename>task-depends.dot</filename> files in the current | ||
384 | directory. | ||
385 | These files show what will be built and the package and task | ||
386 | dependencies, which are useful for debugging problems. | ||
387 | You can use the | ||
388 | <filename>bitbake -g -u depexp <replaceable>targetname</replaceable></filename> | ||
389 | command to display the results in a more human-readable form. | ||
390 | </para> | ||
391 | </section> | ||
392 | |||
393 | <section id='usingpoky-debugging-bitbake'> | 460 | <section id='usingpoky-debugging-bitbake'> |
394 | <title>General BitBake Problems</title> | 461 | <title>General BitBake Problems</title> |
395 | 462 | ||