All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] multiple BR2_EXTERNAL layers?
@ 2015-07-17 16:23 Hollis Blanchard
  2015-07-17 16:46 ` Yann E. MORIN
  0 siblings, 1 reply; 3+ messages in thread
From: Hollis Blanchard @ 2015-07-17 16:23 UTC (permalink / raw)
  To: buildroot

Hi Yann, is it possible to specify multiple layers in BR2_EXTERNAL? When I try (make BR2_EXTERNAL="/foo /bar"), my second layer seems to be ignored.

My team has a bunch of testcases in separate directories. Many of these use simple bare metal executables, but some include Linux. I would like to adopt Buildroot, but keep testcase-specific bits (Linux config files, device trees, etc) in its own directory. At the same time, some components (e.g. test applications) should be shared across testcases. So I want to use BR2_EXTERNAL="/project/testcase /project/shared", but that doesn't seem to be possible right now...?

I believe I could relocate all these pieces out of the testcase directories into a parallel "layer" directory tree, but that doesn't match our workflow and would be fairly confusing (e.g. "to create a new testcase, first create the new testcase, then go over to a different directory tree and create the new testcase there too"). I think would make adopting Buildroot a tougher sell.

(I also think there's a little confusion about what "layer" means in the user manual, or at least I was confused. I expected "layer" to mean "a path which can be provided to BR2_EXTERNAL." However, reading closely, the user manual says "Each layer is typically embodied by a separate directory inside |board/<company>/|. Depending on your projects, you could even introduce more than two layers." So I think "layer" really means "directory inside the single BR2_EXTERNAL tree".)

-- 
Hollis Blanchard
Mentor Graphics Emulation Division

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20150717/cb54b965/attachment.html>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Buildroot] multiple BR2_EXTERNAL layers?
  2015-07-17 16:23 [Buildroot] multiple BR2_EXTERNAL layers? Hollis Blanchard
@ 2015-07-17 16:46 ` Yann E. MORIN
  2015-07-17 17:47   ` Hollis Blanchard
  0 siblings, 1 reply; 3+ messages in thread
From: Yann E. MORIN @ 2015-07-17 16:46 UTC (permalink / raw)
  To: buildroot

Hollis, All,

[Please wrap your messages to at most 80 chars, it's easier to read.]

On 2015-07-17 09:23 -0700, Hollis Blanchard spake thusly:
> Hi Yann, is it possible to specify multiple layers in BR2_EXTERNAL? When
> I try (make BR2_EXTERNAL="/foo /bar"), my second layer
> seems to be ignored.

No, Buildroot does currently support using more than one BR2_EXTERNAL
tree at a time.

I.e. it is not "stackable"; it's not "layers".

> My team has a bunch of testcases in separate directories. Many of these
> use simple bare metal executables, but some include Linux. I
> would like to adopt Buildroot, but keep testcase-specific bits (Linux
> config files, device trees, etc) in its own directory. At the
> same time, some components (e.g. test applications) should be shared
> across testcases. So I want to use
> BR2_EXTERNAL="/project/testcase /project/shared", but that doesn't
> seem to be possible right now...?

Indeed no...
 
However, I have already posted a patch series that does implement
support for multiple br2-external trees. It is not finished yet (i.e.
it is in a rather rough state) but works.

The project has not decided yet if we wanted to support multiple
br2-external trees. We have to talk about it a bit more.

But your message is a clear indication that there is a need, and that
I'm not the only one with that need. Please have a look at the series I
posted, test it and report on the list whether it Works For You (TM).
Also, voice your opinion on the cover-letter (having more than a single
user (me) with the same need will give weight to the proposal).

Note however that, *if* we ultimately decide to go for supportign
multiple br2-external trees, the final solution might be entirely
different from what I posted. Do *not* base your work on it.

The series has been posted on the list, and can be had there:
    http://lists.busybox.net/pipermail/buildroot/2015-May/128973.html

and the current state of the series can be browsed on my git tree:
    http://git.buildroot.org/~ymorin/git/buildroot/log/?h=yem/multi-br2-external-3

Again: this is WIP; there's no guarantee that will ultimately land in
Buildroot; if it lands, it might be a completely different implementation.

> (I also think there's a little confusion about what "layer" means in the
> user manual, or at least I was confused. I expected "layer"
> to mean "a path which can be provided to BR2_EXTERNAL." However, reading
> closely, the user manual says "Each layer is typically
> embodied by a separate directory inside board/<company>/ . Depending on
> your projects, you could even introduce more than two
> layers." So I think "layer" really means "directory inside the single
> BR2_EXTERNAL tree".)

Well, maybe the manual is not really clear in that respect, but indeed,
we're not supporting using multiple br2-external tree at once.

The part of the manual you are quoting is not realyl related to
br2-external. And indeed, the notion of "layers" we're using there is
maybe not as appropriate as we thought. I.e. it is not a layer like in
OpenEmbedded/Yocto for example.

Rather, a "layer" is a set of files (config files, post-build/image
scripts...) that can be shared by different projects, and then used in
the .config file as the different projects see fit for their needs.

It is possible to specify more than one post-build script, more than
one post-image scripts, to use a base linux config file and expand with
additional kcofnig fragments, and so on... which can be rearded as been
"layers" on-top of a base configuration. But definitely not something
akin to Yocto, no...

But please have a look at that series of mine, nad report back on the
list what you think of it. Thanks! ;-)

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Buildroot] multiple BR2_EXTERNAL layers?
  2015-07-17 16:46 ` Yann E. MORIN
@ 2015-07-17 17:47   ` Hollis Blanchard
  0 siblings, 0 replies; 3+ messages in thread
From: Hollis Blanchard @ 2015-07-17 17:47 UTC (permalink / raw)
  To: buildroot

On 07/17/2015 09:46 AM, Yann E. MORIN wrote:
> On 2015-07-17 09:23 -0700, Hollis Blanchard spake thusly:
>> My team has a bunch of testcases in separate directories. Many of 
>> these use simple bare metal executables, but some include Linux. I 
>> would like to adopt Buildroot, but keep testcase-specific bits (Linux 
>> config files, device trees, etc) in its own directory. At the same 
>> time, some components (e.g. test applications) should be shared 
>> across testcases. So I want to use BR2_EXTERNAL="/project/testcase 
>> /project/shared", but that doesn't seem to be possible right now...? 
> Indeed no... However, I have already posted a patch series that does 
> implement support for multiple br2-external trees. It is not finished 
> yet (i.e. it is in a rather rough state) but works. The project has 
> not decided yet if we wanted to support multiple br2-external trees. 
> We have to talk about it a bit more. But your message is a clear 
> indication that there is a need, and that I'm not the only one with 
> that need. Please have a look at the series I posted, test it and 
> report on the list whether it Works For You (TM). Also, voice your 
> opinion on the cover-letter (having more than a single user (me) with 
> the same need will give weight to the proposal).

OK, thanks for the background. I will try to take a look at your series. 
In the meantime though, I think I can put the shared content in a local 
branch, and use BR2_EXTERNAL for testcase-specific content. I will 
explore that first.

Hollis Blanchard
Mentor Graphics Emulation Division

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-07-17 17:47 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-17 16:23 [Buildroot] multiple BR2_EXTERNAL layers? Hollis Blanchard
2015-07-17 16:46 ` Yann E. MORIN
2015-07-17 17:47   ` Hollis Blanchard

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.