Introduction
Overview
Like any build tool (make, ant, jam), the OpenEmbedded build tool
BitBake controls how to build things and the build dependencies. But
unlike single project tools like make it is not based
on one makefile or a closed set of inter-dependent makefiles, but collects
and manages an open set of largely independent build descriptions (package
recipes) and builds them in proper order.
To be more precise: OpenEmbedded
is a set of metadata used to cross-compile, package and install software
packages. OpenEmbedded is being used to build
and maintain a number of embedded Linux distributions, including
OpenZaurus, Ångström, Familiar and SlugOS.
The primary use-case of OpenEmbedded are:
Handle cross-compilation.
Handle inter-package dependencies
Must be able to emit packages (tar, rpm, deb, ipk)
Must be able to create images and feeds from packages
Must be highly configurable to support many machines,
distribution and architectures.
Writing of metadata must be easy and reusable
Together with BitBake,
OpenEmbedded satisfies all these and many more. Flexibility and power have
always been the priorities.
History
OpenEmbedded was invented and founded by the creators of the
OpenZaurus project. At this time the project had pushed
buildroot to its limits. It supported the creation of
ipk packages, feeds and images and had support for
more than one machine. But it was impossible to use different patches,
files for different architectures, machines or distributions. To overcome
this shortcoming OpenEmbedded was created.
After a few months other projects started using OpenEmbedded and
contributing back. On 7 December 2004 Chris Larson split the project into
two parts: BitBake, a generic task executor and OpenEmbedded, the metadata
for BitBake.