Understanding BitBake syntax and semantics
BitBake is a task runner. It is similar to GNU make
in that respect, except that it operates on recipes instead of makefiles. The metadata in these recipes defines tasks in shell and Python. BitBake itself is written in Python. The OpenEmbedded project that Yocto is based on consists of BitBake and a large collection of recipes for building embedded Linux distributions. BitBake's power lies in its ability to run tasks in parallel while still satisfying inter-task dependencies. Its layered and inheritance-based approach to metadata enables Yocto to scale in ways Buildroot-based build systems simply cannot.
In Chapter 6, Selecting a Build System, we learned about the five types of BitBake metadata files; that is, .bb
, .bbappend
, .inc
, .bbclass
, and .conf
. We also wrote BitBake recipes for building a basic helloworld
program and nova-image
image. Now, we will look more closely at the contents of BitBake metadata files. We know that tasks...