diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-01-18 14:32:51 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-01-27 21:03:22 +0000 |
commit | 7b99bc04acd6a2e3805dd592daff18fb0ecba164 (patch) | |
tree | a282fa6b608ad65f25d8bcbdc2499931eed3b5d2 | |
parent | d6b8f746d46b22abb277520428e9e6fffafbb96b (diff) | |
download | poky-7b99bc04acd6a2e3805dd592daff18fb0ecba164.tar.gz |
bitbake: user-manual-metadata: Expand parsing process docuemtnation
(Bitbake rev: 2596dd2b42c06ef258032356294cc345a6e25fed)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | bitbake/doc/user-manual/user-manual-metadata.xml | 88 |
1 files changed, 87 insertions, 1 deletions
diff --git a/bitbake/doc/user-manual/user-manual-metadata.xml b/bitbake/doc/user-manual/user-manual-metadata.xml index 73238fd9e5..239390ac8d 100644 --- a/bitbake/doc/user-manual/user-manual-metadata.xml +++ b/bitbake/doc/user-manual/user-manual-metadata.xml | |||
@@ -579,10 +579,96 @@ | |||
579 | <para> For the 'deptask', 'rdeptask', 'depends', 'rdepends' and 'recrdeptask' flags please see the dependencies section.</para> | 579 | <para> For the 'deptask', 'rdeptask', 'depends', 'rdepends' and 'recrdeptask' flags please see the dependencies section.</para> |
580 | </section> | 580 | </section> |
581 | 581 | ||
582 | |||
583 | <section id='parsing-and-execution'> | ||
584 | <title>Parsing and Execution</title> | ||
585 | |||
582 | <section id='parsing-overview'> | 586 | <section id='parsing-overview'> |
583 | <title>Parsing</title> | 587 | <title>Parsing Overview</title> |
588 | |||
589 | <para> | ||
590 | BitBake parses configuration files, classes, and | ||
591 | <filename>.bb</filename> files. | ||
592 | </para> | ||
593 | |||
594 | <para> | ||
595 | The first thing BitBake does is look for the | ||
596 | <filename>bitbake.conf</filename> file. | ||
597 | This file resides in the within the <filename>conf/</filename> | ||
598 | directory. | ||
599 | BitBake finds it by examining its <filename>BBPATH</filename> | ||
600 | environment variable and looking for the | ||
601 | <filename>conf/</filename> directory. | ||
602 | </para> | ||
603 | |||
604 | <para> | ||
605 | The <filename>bitbake.conf</filename> file lists other configuration | ||
606 | files to include from a <filename>conf/</filename> directory below the | ||
607 | directories listed in <filename>BBPATH</filename>. | ||
608 | In general, the most important configuration file from a user's perspective | ||
609 | is <filename>local.conf</filename>, which contains a user's | ||
610 | customized settings for the build environment. | ||
611 | Other notable configuration files are the distribution configuration | ||
612 | file (set by the <filename>DISTRO</filename> variable) and the machine | ||
613 | configuration file (set by the <filename>MACHINE</filename> variable). | ||
614 | The <filename>DISTRO</filename> and <filename>MACHINE</filename> BitBake | ||
615 | environment variables are both usually set in the | ||
616 | <filename>local.conf file</filename>. | ||
617 | Valid distribution configuration files are available | ||
618 | in the <filename>conf/distro/</filename> directory and valid machine | ||
619 | configuration files in the <filename>meta/conf/machine/</filename> | ||
620 | directory. | ||
621 | Within the <filename>conf/machine/include/</filename> directory are | ||
622 | various <filename>tune-*.inc</filename> configuration files | ||
623 | that provide common "tuning" settings specific to and shared between | ||
624 | particular architectures and machines. | ||
625 | </para> | ||
626 | |||
627 | <para> | ||
628 | After parsing of the configuration files, some standard classes are | ||
629 | included. | ||
630 | The <filename>base.bbclass</filename> file | ||
631 | is always included. | ||
632 | Other classes that are specified in the configuration using the | ||
633 | <filename>INHERIT</filename> variable are also included. | ||
634 | Class files are searched for in a classes subdirectory under | ||
635 | the paths in <filename>BBPATH</filename> in the same way as | ||
636 | configuration files. | ||
637 | </para> | ||
638 | |||
639 | <para> | ||
640 | After classes are included, the variable | ||
641 | <filename>BBFILES</filename> is set, usually in | ||
642 | <filename>local.conf</filename>, and defines the list of | ||
643 | places to search for <filename>.bb</filename> files. | ||
644 | Adding extra content to <filename>BBFILES</filename> is best | ||
645 | achieved through the use of BitBake layers as described in the | ||
646 | Layers section below. | ||
647 | </para> | ||
648 | |||
649 | <para> | ||
650 | BitBake parses each <filename>.bb</filename> file in | ||
651 | <filename>BBFILES</filename> and stores the values of various | ||
652 | variables. | ||
653 | In summary, for each <filename>.bb</filename> file the configuration | ||
654 | plus the base class of variables are set, followed by the data in the | ||
655 | <filename>.bb</filename> file itself, followed by any inherit commands | ||
656 | that <filename>.bb</filename> file might contain. | ||
657 | </para> | ||
658 | |||
659 | <para> | ||
660 | Because parsing <filename>.bb</filename> files is a time consuming | ||
661 | process, a cache is kept to speed up subsequent parsing. | ||
662 | This cache is invalid if the timestamp of the | ||
663 | <filename>.bb</filename> file itself changes, or if the timestamps of | ||
664 | any of the include, configuration files or class files on which | ||
665 | the <filename>.bb</filename> file depends change. | ||
666 | </para> | ||
667 | </section> | ||
668 | |||
584 | <section id='configiguration-files'> | 669 | <section id='configiguration-files'> |
585 | <title>Configuration files</title> | 670 | <title>Configuration files</title> |
671 | |||
586 | <para> | 672 | <para> |
587 | The first kind of metadata in BitBake is configuration metadata. | 673 | The first kind of metadata in BitBake is configuration metadata. |
588 | This metadata is global, and therefore affects all packages and | 674 | This metadata is global, and therefore affects all packages and |