These basement project is a collection of useful recipes and classes that can be used by other projects. Most importantly it provides standard classes to handle common build systems and other standard tasks. Additionally a standard sandbox and common GCC toolchains are ready-to-use.
- A x86_64 system with the regular development tools installed (gcc, make, perl, ...)
 - Bleeding edge Bob Build Tool (https://github.com/BobBuildTool/bob)
 
Actually there isn't anything to build directly in this repository. Head over to one of the examples to see how this repository is used:
First you need to add the basement layer to your project. To do so add a
layers entry to config.yaml:
bobMinimumVersion: "0.15"
layers:
    - basement
and then add this repository as submodule to your project:
$ git submodule add https://github.com/BobBuildTool/basement.git layers/basement
To use all facilities of the basement project you just need to inherit the basement::rootrecipe
class in your root recipe:
inherit: [ "basement::rootrecipe" ]
This will make your recipe a root recipe and already setup the sandbox with a proper host toolchain. See the next chapter what tools and toolchains are readily available.
The following tools can be used by naming them in {checkout,build,package}Tools:
- bison
 - cpio
 - flex
 - pkg-config
 - squashfs-tools
 - e2fsprogs
 
The following cross compiling toolchains are available pre-configured. If you need
other targets you can depend on devel::cross-toolchain directly and configure it
as you like.
devel::cross-toolchain-aarch64-linux-gnu: ARMv8-A AArch64 Linux with glibc.devel::cross-toolchain-arm-linux-gnueabihf: ARMv7-A Linux with glibc. Hard floating point ABI.devel::cross-toolchain-arm-none-eabi: ARMv7 bare metal toolchain with newlib libc.devel::cross-toolchain-x86_64-linux-gnu: x86_64 toolchain for Linux with glibc.
To use a cross compiling toolchain include it where needed via:
depends:
    - name: <recipe name here>
      use: [tools, environment]
      forward: True