BitBake is a
task execution engine
build automation
Build automation is the practice of building software systems in a relatively unattended fashion. The build is configured to run with minimized or no software developer interaction and without using a developer's personal computer. Build automati ...
tool that allows
shell
Shell may refer to:
Architecture and design
* Shell (structure), a thin structure
** Concrete shell, a thin shell of concrete, usually with no interior columns or exterior buttresses
Science Biology
* Seashell, a hard outer layer of a marine ani ...
and
Python tasks to run in
parallel yet in order constrained by configured
dependencies.
Engine
It was originally developed for and is commonly used to
build embedded Linux
The Linux, Linux Operating system is prevalent in embedded systems. As of 2024, developer surveys and industry reports find that Embedded Linux is used in 44%-46% of embedded systems. Due to its Linux range of use, versatility, its large community ...
distributions often using a
cross compiler
A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is running. For example, a compiler that runs on a PC but generates code that runs on Android devices is a cross compile ...
to target a system that differs
architecturally from the build host.
BitBake provides capabilities similar to
make but via significantly different configuration information. A BitBake recipe specifies how to build a package with information such as where to pull
source code
In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer.
Since a computer, at base, only ...
from (source URL), dependency constraints, and compile and install options. A source URL commonly specifies a
git
Git () is a distributed version control system that tracks versions of files. It is often used to control source code by programmers who are developing software collaboratively.
Design goals of Git include speed, data integrity, and suppor ...
repo, but other protocols are supported including:
,
,
ftp
The File Transfer Protocol (FTP) is a standard communication protocol used for the transfer of computer files from a server to a client on a computer network. FTP is built on a client–server model architecture using separate control and dat ...
,
cvs,
svn, and local file system. A recipe also stores
metadata
Metadata (or metainformation) is "data that provides information about other data", but not the content of the data itself, such as the text of a message or the image itself. There are many distinct types of metadata, including:
* Descriptive ...
for a package in standard variables.
During a build operation, recipes determine build order (constrained by dependencies) and processing tasks to be performed to produce the requested target recipe or package. A relatively high-level target can produce a complete system software image consisting of
boot-time resources, a
kernel and a root
file system. A build typically includes building the cross-platform build
toolchain
A toolchain is a set of software development tools used to build and otherwise develop software. Often, the tools are executed sequentially and form a pipeline such that the output of one tool is the input for the next. Sometimes the term is us ...
that generates code for the target platform.
BitBake was inspired by
Portage
Portage or portaging ( CA: ; ) is the practice of carrying water craft or cargo over land, either around an obstacle in a river, or between two bodies of water. A path where items are regularly carried between bodies of water is also called a '' ...
,
which is the
package management system
A package manager or package management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner.
A package manager deals wi ...
used by the
Gentoo Linux
Gentoo Linux (pronounced ) is a Linux distribution built using the Portage package management system. Unlike a binary software distribution, the source code is compiled locally according to the user's preferences and is often optimized for ...
distribution. BitBake existed for some time in the
OpenEmbedded
OpenEmbedded (OE) is a build automation framework and cross-compile environment used to create Linux distributions for embedded devices. The framework is developed by the OpenEmbedded community, which was formally established in 2003. OpenEmbed ...
project until it was separated out into a standalone, maintained, distribution-independent tool. BitBake is co-maintained by the
Yocto Project and the
OpenEmbedded
OpenEmbedded (OE) is a build automation framework and cross-compile environment used to create Linux distributions for embedded devices. The framework is developed by the OpenEmbedded community, which was formally established in 2003. OpenEmbed ...
project.
See also
*
*
*
*
References
External links
BitBake README file
Embedded Linux
Build automation
Free software programmed in Python
{{Embedded systems