[yocto] The BitBake equivalent of "Hello, World!"

Patrick Turley PatrickTurley at gamestop.com
Tue Oct 9 16:40:35 PDT 2012


That's a perfectly reasonable suggestion, and a good excuse for me to open a github account and learn how to use it :)

On Oct 9, 2012, at 5:56 PM, McClintock Matthew-B29882 <B29882 at freescale.com> wrote:

> On Tue, Oct 9, 2012 at 5:31 PM, Patrick Turley
> <PatrickTurley at gamestop.com> wrote:
>> Success. The file tree depicted at the bottom of this mail is nearly the
>> smallest, valid BitBake project that prints "Hello, World!" Here's the
>> output:
> 
> Perhaps you could push this to github somewhere as an example?
> 
> -M
> 
>> 
>> 
>>    $ ../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.
>> 
>> 
>> A few things to note:
>> 
>> 1) This is not the *smallest* such BitBake project. For example, the
>> "DESCRIPTION" and "PV" variables need not be assigned in "a.bb". I set those
>> variables because I wanted "show-layers" and "show-recipes" to display
>> reasonable information.
>> 
>> 2) 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.
>> 
>> 3) 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 to "None" and the BitBake code can't handle it).
>> 
>> 
>> ------------------------------------------------------------
>> 
>> 
>> ├── build
>> │   │
>> │   ├── classes
>> │   │   │
>> │   │   └── base.bbclass
>> │   │
>> │   │       +-----------------------------------------------
>> │   │       |  addtask build
>> │   │       +-----------------------------------------------
>> │   │
>> │   └── conf
>> │       │
>> │       ├── bblayers.conf
>> │       │
>> │       │   +-----------------------------------------------
>> │       │   |  BBLAYERS ?= " \
>> │       │   |    /home/pturley/Workspace/Hello/LayerA \
>> │       │   |    "
>> │       │   +-----------------------------------------------
>> │       │
>> │       └── bitbake.conf
>>>> │           +-----------------------------------------------
>> │           |  TMPDIR  = "${TOPDIR}/tmp"
>> │           |  CACHE   = "${TMPDIR}/cache"
>> │           |  STAMP   = "${TMPDIR}/stamps"
>> │           |  T       = "${TMPDIR}/work"
>> │           |  B       = "${TMPDIR}"
>> │           +-----------------------------------------------
>>>> ├── LayerA
>> │   │
>> │   ├── a.bb
>> │   │
>> │   │       +-----------------------------------------------
>> │   │       |  DESCRIPTION = "Layer A Recipe"
>> │   │       |  PN = 'a'
>> │   │       |  PV = '1'
>> │   │       |
>> │   │       |  python do_build() {
>> │   │       |      bb.plain("Hello, World!");
>> │   │       |  }
>> │   │       +-----------------------------------------------
>> │   │
>> │   └── conf
>> │       │
>> │       └── layer.conf
>>>> │           +-----------------------------------------------
>> │           |  BBPATH .= ":${LAYERDIR}"
>> │           |
>> │           |  BBFILES += "${LAYERDIR}/*.bb"
>> │           |
>> │           |  BBFILE_COLLECTIONS += "A"
>> │           |  BBFILE_PATTERN_A := "^${LAYERDIR}/"
>> │           +-----------------------------------------------
>>>> └── BitBake
>> 
>>   The BitBake directory origin is:
>> 
>>       http://git.openembedded.org/bitbake/
>> 
>>   I have the 1.15.2 tag checked out, which is what
>>   Yocto denzil uses.
>> 
>> 
>> _______________________________________________
>> yocto mailing list
>> yocto at yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/yocto



More information about the yocto mailing list