This is nearly the smallest, valid BitBake project that prints "Hello, World!" This is useful because:
-
It can serve as a simple basis from which to test and explore basic BitBake features.
-
It reveals what is fundamental to BitBake itself, apart from the superstructure that OpenEmbedded, Yocto, et. al. put on top of it.
This project has been tested against BitBake 1.15.2, which is what Yocto "denzil" uses. Here's the output:
$ ../BitBake/bin/bitbake a
Parsing recipes: 100% |########################################################| Time: 00:00:00
Parsing of 1 .bb files complete (0 cached, 1 parsed). 1 targets, 0 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
NOTE: Preparing runqueue
NOTE: Executing RunQueue Tasks
NOTE: Running task 1 of 1 (ID: 0, /home/pturley/Workspace/Hello/LayerA/a.bb, do_build)
NOTE: package None: task do_build: Started
Hello, World!
NOTE: package None: task do_build: Succeeded
NOTE: Tasks Summary: Attempted 1 tasks of which 0 didn't need to be rerun and all succeeded.
Some things to note:
-
This is not the smallest such BitBake project. For example, the
DESCRIPTION
andPV
variables need not be assigned ina.bb
. I set those variables because I wantedshow-layers
andshow-recipes
to display reasonable information. -
Some of the variables set in
bitbake.conf
have "simplified" values. For example, you would not want to use these values if there were multiple recipes and you had to disambiguate the output from each of them. -
On the other hand, all the variable assignments in
bitbake.conf
are essential to BitBake itself. If you remove any one of those assignments, BitBake will either declare an error or die (usually because some internal variable is set toNone
and the BitBake code can't handle it).