[Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Wed Sep 9 06:32:07 UTC 2009


Hello,

Thanks for your comments!

Le Wed, 09 Sep 2009 07:54:25 +1200,
"angus salkeld" <angus.salkeld at alliedtelesis.co.nz> a écrit :

> >  2. Remove the BOARD/LOCAL feature.
> > 
> >     This mechanism is a duplication of something that could already
> > be done in a different way: by adding a new target in
> > target/device/.
> > 
> Quite a few of our engineers like this feature.
> When you are testing that a change doesn't break other targets it is
> nice to have a shell per "board" and just be able to run "make" in
> each to re-build.

Let's say your vendor name is Foo and you have two boards Bar1 and
Bar2. Then you would create the following directories:

 target/device/foo/bar1
 target/device/foo/bar2

In these directories you would have :

 * foo_bar1_defconfig and foo_bar2_defconfig, which are the default
   Buildroot configuration for the two boards

 * The Linux kernel configuration file

 * Optionnaly, a Busybox configuration file

 * Optionnaly, a target skeleton and a device table

Then, to build a board, you would just do :

 make foo_bar1_defconfig
 make

or for the other board:

 make foo_bar2_defconfig
 make

This is a mechanism that currently exists, you can try it by yourself
to verify it matches your requirements. I think the BOARD/LOCAL feature
is just a duplication of this.

Of course, there's an obvious lack of documentation on this mechanism.
But this is something I'm working on currently.

> >      - build/    where all the packages are built
> >      - images/   where the final kernel and rootfs images are stored
> >      - staging/  the staging directory (containing the development
> > files and libraries compiled for the target)
> >      - target/   which contains the target root filesystem
> >      - host/     which contains all the host programs
> >      - stamps/   which contains the stamps files
> > 
> 
> We have a a number of boards to build and this is going put the burden
> on the end user to handle moving the output directory around.
> Not very user friendly for people who use buildroot in anything but
> the simplest case.
> 
> Please still support the ability to build multiple targets within the
> same buildroot (in configuration). One option would be to make
> "O=<dir>" a configuration option (defaulting to the output directory).

That could be an option, if that makes it easier to use for your users.

Sincerly,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com



More information about the buildroot mailing list