[oe] Getting Started -Makefile

Paul Sokolovsky pmiscml at gmail.com
Wed Nov 21 02:24:21 UTC 2007


Hello Florian,

Wednesday, November 21, 2007, 1:25:34 AM, you wrote:

> Hi,

> Tim Bird schrieb:
>> This is nice.  Can someone tell me why this isn't
>> the default behavior of bitbake now?  (I'm honestly
>> not trolling :-)   There must be some good reason
>> to allow bitbake to be used outside of a build
>> directory.

>> Make (which bitbake resembles
>> in some aspects), is sensitive to it's starting
>> directory.  Why not bitbake?

> that's a pretty good point. In my opinion the fact that you need to set
> environment variables in addition to your configuration files is a pain anyway.
> I would expect bitbake to search for all configuration information in
> $PWD/conf/*.conf and that's it.

  Your expectations are wrong, as instead bitbake searches only for a
single file called "conf/bitbake.conf" under list of paths specified by
envvar BBPATH. Anything else happens as directed by that file, and
that's application-level configuration, not bitbake's per se.

  And there're good reasons it does that, which become obvious when
you start to think about it. After all, bitbake.conf is *master*
config, so how are you supposed to get that in *your* $PWD? We don't
talk manual copying here, no? Because it's one thing is to set one
well-defined envvar, and quite another is to shuffle pristine files
around just to get stuff started - the latter is rather non-scalable.

  Also, do you really think such complex system as OpenEmbedded would
allow user to source master config from his location instead of the
system's own? Nope, that would amount to letting user to shoot himself
not even in leg, but straight into head.
  
> That would reduce the initial overhead and makes
> it _much_ easier for new users to get along with OE.

#1

>> TMPDIR = "/OE/tmp/${DISTRO}"
>> No need for seperate build areas.
>> [And] If you use angstrom you can even
>> switch C library ([e]glibc vs uclibc), as outlined in
>> http://www.angstrom-distribution.org/building-angstrom
>> You can even have per distro tweaks using include statements, but I'll
>> leave that as an exercise to the reader. No need for seperate build
>> areas. At all.
> 
> as soon as you are working with multiple builds in parallel or you want to
> specify versions you need multiple build directories.

#2

  So, again conflicting expectations: on the one hand, you call for it
to be easy for users, and on the other hand, you argue with core OE
maintainer, who suggests a clean approach for system setup - you
ignore that, and instead tell that you're going to do it the way you
get used to, thanks to bitbake's flexibility.

  So, what people really want - be forced to adhere to best practices
or left with the easy choice of subverting them for their own
convenience?

  IMHO, where OpenEmbedded should head to is to promoting local.conf
to "advanced" features, left for the people who are able to setup
environment variables. Mere users should be forced to use repository
configs, with the only parameters to vary are DISTRO and MACHINE.

  And yep, those params are still to be passed via environment,
because it's easier to just run:

DISTRO=angstrom MACHINE=collie bitbake x11-image

than:
1. Edit some file somewhere
2. run bitbake

  (But for people who're really not familiar with Unix process environment,
bitbake switches --distro and --machine can be added).


> Greetings

> Florian




-- 
Best regards,
 Paul                            mailto:pmiscml at gmail.com





More information about the Openembedded-devel mailing list