BitBake User Manual
*******************




Table of Contents
^^^^^^^^^^^^^^^^^

* 1. Overview

  * 1.1. Introduction

  * 1.2. History and Goals

  * 1.3. Concepts

    * 1.3.1. Recipes

    * 1.3.2. Configuration Files

    * 1.3.3. Classes

    * 1.3.4. Layers

    * 1.3.5. Append Files

  * 1.4. Obtaining BitBake

  * 1.5. The BitBake Command

    * 1.5.1. Usage and syntax

    * 1.5.2. Examples

      * 1.5.2.1. Executing a Task Against a Single Recipe

      * 1.5.2.2. Executing Tasks Against a Set of Recipe Files

      * 1.5.2.3. Executing a List of Task and Recipe Combinations

      * 1.5.2.4. Generating Dependency Graphs

      * 1.5.2.5. Executing a Multiple Configuration Build

      * 1.5.2.6. Enabling Multiple Configuration Build Dependencies

* 2. Execution

  * 2.1. Parsing the Base Configuration Metadata

  * 2.2. Locating and Parsing Recipes

  * 2.3. Providers

  * 2.4. Preferences

  * 2.5. Dependencies

  * 2.6. The Task List

  * 2.7. Executing Tasks

  * 2.8. Checksums (Signatures)

  * 2.9. Setscene

  * 2.10. Logging

* 3. Syntax and Operators

  * 3.1. Basic Syntax

    * 3.1.1. Basic Variable Setting

    * 3.1.2. Modifying Existing Variables

    * 3.1.3. Line Joining

    * 3.1.4. Variable Expansion

    * 3.1.5. Setting a default value (?=)

    * 3.1.6. Setting a weak default value (??=)

    * 3.1.7. Immediate variable expansion (:=)

    * 3.1.8. Appending (+=) and prepending (=+) With Spaces

    * 3.1.9. Appending (.=) and Prepending (=.) Without Spaces

    * 3.1.10. Appending and Prepending (Override Style Syntax)

    * 3.1.11. Removal (Override Style Syntax)

    * 3.1.12. Override Style Operation Advantages

    * 3.1.13. Variable Flag Syntax

    * 3.1.14. Inline Python Variable Expansion

    * 3.1.15. Unsetting variables

    * 3.1.16. Providing Pathnames

  * 3.2. Exporting Variables to the Environment

  * 3.3. Conditional Syntax (Overrides)

    * 3.3.1. Conditional Metadata

    * 3.3.2. Key Expansion

    * 3.3.3. Examples

  * 3.4. Sharing Functionality

    * 3.4.1. Locating Include and Class Files

    * 3.4.2. "inherit" Directive

    * 3.4.3. "include" Directive

    * 3.4.4. "require" Directive

    * 3.4.5. "INHERIT" Configuration Directive

  * 3.5. Functions

    * 3.5.1. Shell Functions

    * 3.5.2. BitBake-Style Python Functions

    * 3.5.3. Python Functions

    * 3.5.4. BitBake-Style Python Functions Versus Python Functions

    * 3.5.5. Anonymous Python Functions

    * 3.5.6. Flexible Inheritance for Class Functions

  * 3.6. Tasks

    * 3.6.1. Promoting a Function to a Task

    * 3.6.2. Deleting a Task

    * 3.6.3. Passing Information Into the Build Task Environment

  * 3.7. Variable Flags

  * 3.8. Events

  * 3.9. Variants - Class Extension Mechanism

  * 3.10. Dependencies

    * 3.10.1. Dependencies Internal to the ".bb" File

    * 3.10.2. Build Dependencies

    * 3.10.3. Runtime Dependencies

    * 3.10.4. Recursive Dependencies

    * 3.10.5. Inter-Task Dependencies

  * 3.11. Functions You Can Call From Within Python

    * 3.11.1. Functions for Accessing Datastore Variables

    * 3.11.2. Other Functions

  * 3.12. Task Checksums and Setscene

  * 3.13. Wildcard Support in Variables

* 4. File Download Support

  * 4.1. The Download (Fetch)

  * 4.2. The Unpack

  * 4.3. Fetchers

    * 4.3.1. Local file fetcher ("file://")

    * 4.3.2. HTTP/FTP wget fetcher ("http://", "ftp://", "https://")

    * 4.3.3. CVS fetcher ("(cvs://")

    * 4.3.4. Subversion (SVN) Fetcher ("svn://")

    * 4.3.5. Git Fetcher ("git://")

    * 4.3.6. Git Submodule Fetcher ("gitsm://")

    * 4.3.7. ClearCase Fetcher ("ccrc://")

    * 4.3.8. Perforce Fetcher ("p4://")

    * 4.3.9. Repo Fetcher ("repo://")

    * 4.3.10. Az Fetcher ("az://")

    * 4.3.11. Other Fetchers

  * 4.4. Auto Revisions

* 5. Variables Glossary

* 6. Hello World Example

  * 6.1. BitBake Hello World

  * 6.2. Obtaining BitBake

  * 6.3. Setting Up the BitBake Environment

  * 6.4. The Hello World Example

======================================================================

   BitBake Community
   Copyright © 2004-2021, Richard Purdie, Chris Larson, and Phil Blundell
   <bitbake-devel@lists.openembedded.org>

This work is licensed under the Creative Commons Attribution License.
To view a copy of this license, visit
http://creativecommons.org/licenses/by/2.5/ or send a letter to
Creative Commons, 444 Castro Street, Suite 900, Mountain View,
California 94041, USA.
