// vim: set syntax=asciidoc:
[[customize-dir-structure]]
=== Recommended directory structure
When customizing Buildroot for your project, you will be creating one or
more project-specific files that need to be stored somewhere. While most
of these files could be placed in _any_ location as their path is to be
specified in the Buildroot configuration, the Buildroot developers
recommend a specific directory structure which is described in this
Orthogonal to this directory structure, you can choose _where_ you place
this structure itself: either inside the Buildroot tree, or outside of
it using +BR2_EXTERNAL+. Both options are valid, the choice is up to you.
| +-- <other configuration files>
| +-- <some other patches>
| +-- <boardname>_defconfig
| +-- Config.in (if not using BR2_EXTERNAL)
| +-- <company>.mk (if not using BR2_EXTERNAL)
+-- Config.in (if using BR2_EXTERNAL)
+-- external.mk (if using BR2_EXTERNAL)
Details on the files shown above are given further in this chapter.
Note: if you choose to place this structure outside of the Buildroot
tree using +BR2_EXTERNAL+, the <company> and possibly <boardname>
components may be superfluous and can be left out.
==== Implementing layered customizations
It is quite common for a user to have several related projects that partly
need the same customizations. Instead of duplicating these