/** @page building Building This section describes how to build the Barebox bootloader. @a Barebox uses Kconfig/Kbuild from the Linux kernel to build it's sources. It consists of two parts: the makefile infrastructure (kbuild) and a configuration system (kconfig). So building @a barebox is very similar to building the Linux kernel. In the examples below we use the "sandbox" configuration, which is a port of @a Barebox to the Linux userspace. This makes it possible to test the code without having real hardware or even qemu. Note that the sandbox architecture does only work well on x86 and has some issues on x86_64. \todo Find out about issues on x86_64. Selecting the architecture and the corresponding cross compiler is done by setting the following environment variables: - ARCH=\ - CROSS_COMPILE=\ For @p ARCH=sandbox we do not need a cross compiler, so it is sufficient to specify the architecture: @code # export ARCH=sandbox @endcode In order to configure the various aspects of @a barebox, start the @a barebox configuration system: @code # make menuconfig @endcode This command starts a menu box and lets you select all the different options available for the selected architecture. Once the configuration is finished (you can simulate this by using the default config file with 'make sandbox_defconfig'), there is a .config file in the toplevel directory of the sourcecode. After @a barebox is configured, we can start the compilation: @code # make @endcode You can use '-j \' in order to do a parallel build if you have more than one cpus. If everything goes well, the result is a file called @p barebox: @code # ls -l barebox -rwxr-xr-x 1 rsc ptx 114073 Jun 26 22:34 barebox @endcode */