Comparing build systems
In Chapter 5, I described the process of creating an image manually as the Roll Your Own (RYO) process. This approach gives you complete control over the software so that you can tailor it to do anything you like. If you want to do something truly odd but innovative, or if you want to reduce the memory footprint to the smallest size possible, then RYO is the way to go. But in most situations, building manually is a waste of time and produces inferior, unmaintainable systems.
The idea behind a build system is to automate all the steps described up to this point. A build system should be able to build some or all of the following from upstream source code:
- toolchain
- bootloader
- kernel
- root filesystem
Building from upstream source code is important for several reasons. It gives you the peace of mind that you can rebuild at any time without external dependencies. It also means you can debug at the source level and meet your...