From: Tim Bird <tim.bird@am.sony.com>
To: Richard Purdie <rpurdie@rpsys.net>
Cc: openembedded-devel@openembedded.org
Subject: Re: bitbake and OE opperation
Date: Wed, 28 Mar 2007 13:10:32 -0700 [thread overview]
Message-ID: <460ACBB8.8070501@am.sony.com> (raw)
In-Reply-To: <1175109319.5829.30.camel@localhost.localdomain>
Not to belabor this, but I'm going to try to repeat
this stuff back, to make sure I understand.
Richard Purdie wrote:
>> There are the following lines - I don't know if they're related or not:
>>
>> addtask build after do_populate_staging
>> do_build = ""
>> do_build[func] = "1"
>
> These are very much related, it defines that there is a build task (with
> an associated function which defaults to empty). It says this build task
> depends on a "populate_staging" task.
So this is similar to:
build: do_populate_staging
in a makefile.
>> Maybe I'm thinking procedurally, and this is all declarative, but where
>> the heck are the actual statements executed during a "build"?
>
> Nothing is executed by "build" itself, the key is in the dependency on
> "populate_staging".
>
In this case, since build has no actual
commands associated with it, it is like a PHONY target in
a makefile?
> They're not hardcoded, the sequence is made through the definition of
> tasks, each of which depend on each other. Very roughly:
>
> build depends on populate_staging
> populate_staging depends on package_write
> package_write depends on package
> package depends on install
> install depends on compile
> compile depends on configure
> configure depends on patch
> patch depends on unpack
> unpack depends on fetch
>
From base.bbclass, if I grep addtask, I see:
addtask showdata
addtask listtasks
addtask clean
addtask rebuild
addtask mrproper
addtask fetch
addtask fetchall after do_fetch
addtask unpack after do_fetch
addtask configure after do_unpack do_patch
addtask compile after do_configure
addtask populate_staging after do_package_write
addtask install after do_compile
addtask build after do_populate_staging
So there appear to be "island" tasks (e.g.showdata, clean),
that are not part of the main sequence for a build. I presume these
are accessible via the command line in bitbake?
I don't see an addtask for "patch" in there. Is this added
to the dependency tree somewhere else? Is this something
that is package-specific?
Also, there appear to be multiple parallel
dependencies (fetchall and unpack are both after fetch).
How are these ordered? (What is "fetchall" anyway?)
Tasks package and package_write are also referenced but not "addtask"ed
to the graph.
> Incidentally, don't be put off by the "do_" prefix, this is just to
> highlight things as tasks when their usage might otherwise be
> ambiguous.
Is "do_" ignored in task declarations, references, or both?
> Does that make it clearer?
Yes, thanks.
I assume that .bb files can arbitrarily define some new
task and graft it into the dependency tree.
In your experience, are there many other custom (package-specific)
tasks like this?
Here is my idea of what each task does:
Can you please check this?
build - meta-task to cover the whole build process
populate_staging - (same as do_stage?) - put package contents in staging area?
package_write - ??
package - collect files files from install locations into some kind of collection (dependent on package format)
install - place files (e.g. built binaries) at install locations
compile - make
configure - run configure
patch - apply patches to source
unpack - unpack tarballs
fetch - grab sources from Internet - turn into tarballs
Are there any other major tasks?
=============================
Tim Bird
Architecture Group Chair, CE Linux Forum
Senior Staff Engineer, Sony Electronics
=============================
next prev parent reply other threads:[~2007-03-28 20:09 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-20 3:31 bitbake and OE opperation Mark Gross
2007-03-22 14:34 ` Richard Purdie
2007-03-22 18:37 ` Lee Studley
2007-03-22 18:43 ` Lee Studley
2007-03-23 4:31 ` Mark Gross
2007-03-23 9:20 ` Richard Purdie
2007-03-23 13:09 ` Mark Gross
2007-03-28 17:54 ` Tim Bird
2007-03-28 19:15 ` Richard Purdie
2007-03-28 20:10 ` Tim Bird [this message]
2007-03-28 20:19 ` Koen Kooi
2007-03-28 21:12 ` Philip Balister
2007-03-28 21:34 ` Richard Purdie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=460ACBB8.8070501@am.sony.com \
--to=tim.bird@am.sony.com \
--cc=openembedded-devel@lists.openembedded.org \
--cc=openembedded-devel@openembedded.org \
--cc=rpurdie@rpsys.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.