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 inter-package dependencies
Must be able to emit packages (tar, rpm, 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.