Lines Matching full:bitbake

9 The primary purpose for running BitBake is to produce some kind of
13 can execute the ``bitbake`` command with options that cause it to
17 This chapter describes BitBake's execution process from start to finish
21 $ bitbake target
24 the BitBake command and its options, see ":ref:`The BitBake Command
25 <bitbake-user-manual-command>`" section.
29 Prior to executing BitBake, you should take advantage of available
51 The first thing BitBake does is parse base configuration metadata. Base
53 to determine what layers BitBake needs to recognize, all necessary
54 ``layer.conf`` files (one from each layer), and ``bitbake.conf``. The
74 Next, the ``bitbake.conf`` file is located using the :term:`BBPATH` variable
75 that was just constructed. The ``bitbake.conf`` file may also include
79 Prior to parsing configuration files, BitBake looks at certain
88 The first four variables in this list relate to how BitBake treats shell
89 environment variables during task execution. By default, BitBake cleans
93 variables allowed to be used by BitBake in the shell during execution of
95 ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:Passing Information Into the Build Task Env…
102 BitBake first searches the current working directory for an optional
105 space-delimited list of 'layer' directories. Recall that if BitBake
116 BitBake then expects to find the ``conf/bitbake.conf`` file somewhere in
121 Only variable definitions and include directives are allowed in BitBake
122 ``.conf`` files. Some variables directly influence BitBake's behavior.
125 configuration files. The ":ref:`bitbake-user-manual/bitbake-user-manual-ref-variables:Variables Glo…
129 After parsing configuration files, BitBake uses its rudimentary
131 standard classes. BitBake parses a class when the inherit directive
136 :term:`INHERIT` variable are also included. BitBake
141 used in your execution environment is to run the following BitBake
144 $ bitbake -e > mybb.log
152 You need to be aware of how BitBake parses curly braces. If a recipe
154 no leading spaces, BitBake produces a parsing error. If you use a
158 Here is an example that causes BitBake to produce a parsing error::
184 During the configuration phase, BitBake will have set
185 :term:`BBFILES`. BitBake now uses it to construct a
192 BitBake parses each
201 recipe is parsed line by line. Any inherit statements cause BitBake to
203 :term:`BBPATH` as the search path. Finally, BitBake
207 metadata. For example, in ``bitbake.conf`` the recipe name and version
217 By the time parsing is complete for a recipe, BitBake has a list of
221 BitBake does not need all of this information. It only needs a small
223 Consequently, BitBake caches the values in which it is interested and
228 Where possible, subsequent BitBake commands reuse this cache of recipe
233 in the cache and the recipe and class files have not changed, BitBake is
234 able to use the cache. BitBake then reloads the cached information about
256 .. _bb-bitbake-providers:
261 Assuming BitBake has been instructed to execute a target and that all
262 the recipe files have been parsed, BitBake starts to figure out how to
263 build the target. BitBake looks through the :term:`PROVIDES` list for each
282 .. _bb-bitbake-preferences:
288 target's recipes. Because targets might have multiple providers, BitBake
299 with the same name as the target. BitBake iterates through each target
304 that multiple versions might exist for a given provider. BitBake
319 When there are multiple "versions" of a given recipe, BitBake defaults
332 Thus, if a recipe named ``a_1.2.bb`` exists, BitBake will choose 1.2 by
334 file that BitBake parses, you can change that preference::
356 .. _bb-bitbake-dependencies:
361 Each target BitBake builds consists of multiple tasks such as ``fetch``,
363 performance on multi-core systems, BitBake considers each task as an
367 information about variables BitBake uses in the
368 :doc:`bitbake-user-manual-ref-variables` near the end of this manual. At a
369 basic level, it is sufficient to know that BitBake uses the
374 For more information on how BitBake handles dependencies, see the
375 :ref:`bitbake-user-manual/bitbake-user-manual-metadata:Dependencies`
378 .. _ref-bitbake-tasklist:
384 BitBake can now calculate exactly what tasks it needs to run and in what
386 :ref:`bitbake-user-manual/bitbake-user-manual-execution:executing tasks`
387 section has more information on how BitBake chooses which task to
390 The build now starts with BitBake forking off threads up to the limit
392 variable. BitBake continues to fork threads as long as there are tasks
401 runs, BitBake looks in the build directory within ``tmp/stamps`` and
410 versions of BitBake, a hash is appended to the stamp so that if the
414 :ref:`bitbake-user-manual/bitbake-user-manual-execution:checksums (signatures)`
427 :ref:`bitbake-user-manual/bitbake-user-manual-metadata:tasks` section.
433 BitBake writes a shell script to
442 For Python tasks, BitBake executes the task internally and logs
443 information to the controlling terminal. Future versions of BitBake will
447 The order in which BitBake runs the tasks is controlled by its task
467 change in a task's inputs that triggers running the task, BitBake needs
469 out to be fairly easy because BitBake generates a "run" shell script for
478 some fixed value and create the checksum for the "run" script. BitBake
509 Equally, there are cases where we need to add dependencies BitBake is
518 Consider a case with in-line Python, for example, where BitBake is not
520 ``-DDD``), BitBake produces output when it discovers something for which
534 dependent task hashes can be influenced. Within the BitBake
535 configuration file, we can give BitBake some extra information to help
557 is a dummy "noop" signature handler enabled in BitBake. This means that
560 ``bitbake.conf`` file::
583 It is worth noting that BitBake's "-S" option lets you debug BitBake's
585 debugging modes to be used, either using BitBake's own debug functions
590 "printdiff", which causes BitBake to try to establish the closest
592 ``bitbake-diffsigs`` over the matches to determine the stamps and delta
597 It is likely that future versions of BitBake will provide other
601 :ref:`bitbake-user-manual/bitbake-user-manual-metadata:task checksums and setscene`
607 The setscene process enables BitBake to handle "pre-built" artifacts.
608 The ability to handle and reuse these artifacts allows BitBake the
610 Instead, BitBake can use, when possible, existing build artifacts.
612 BitBake needs to have reliable data indicating whether or not an
618 given task or set of tasks with the pre-built artifact. BitBake solves
621 When BitBake is asked to build a given target, before building anything,
624 information is available, BitBake uses this information instead of
627 BitBake first calls the function defined by the
633 Next, for each of the tasks that were returned as possibilities, BitBake
643 compiled binary. To handle this, BitBake calls the
649 :ref:`bitbake-user-manual/bitbake-user-manual-metadata:task checksums and setscene`
656 builds are when execute, bitbake also supports user defined
680 of "``BitBake.``"
690 ``myFilter`` to the ``BitBake.SigGen``, and the default configuration
691 adds a filter called ``BitBake.defaultFilter``, both filters will be
715 "BitBake.SigGen.HashEquiv": {
719 "BitBake.RunQueue.HashEquiv": {