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

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Mon Sep 7 22:09:48 UTC 2009


Hello,

I would like to propose a few patches to start a cleanup of
Buildroot. My goal is not only to cleanup Buildroot internally, but
also to clean it up so that it is easier to understand for our users.

This thread is meant to be a preliminary discussion only and is not
yet a request for inclusion, because :

 * Some of the proposed changes remove features that I think confuse
   our users and are not central in Buildroot operation, but others
   might have different opinion on the matter ;

 * The changes are relatively invasive and I did only limited testing
   on them.

 * The documentation is not updated with the changes. I'm waiting for
   the community opinion on the changes before spending time to update
   the documentation

While the commit logs gives all the details, I would like to give an
quick overview of the proposed changes :

 1. Remove the "project" feature.

    This feature is meant to allow an user to build a Linux system for
    several similar platforms where the differences are only in
    Busybox, kernel and U-Boot configuration. While this feature might
    be useful in some very specific cases, my opinion is that it adds
    far too much complexity in Buildroot compared to the added-value
    it gives.

    Removing this feature allows to instantly make the directory
    layout a lot simpler to understand for a newcomer (no strane
    project_build_ARCH directory anymore !)

 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/.

 3. By default, put the output directories in a single directory,
    named output/.

    Nothing complex, it just clarifies the tree for a new user.

 4. Remove BR2_TOPDIR_PREFIX and BR2_TOPDIR_SUFFIX

    The same thing can be done with O=

 5. Rename the output directories with more sensible names.

    In the output directory, we now have

     - 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

Thanks for your input,

Thomas



More information about the buildroot mailing list