Identify customer requirements and align with their unique demands
The previous section has highlighted the pros and cons of some competing build system solutions.
Of course, no single solution is perfect. However, the goal here is to determine the best solution from a time and effort point of view, and best as applies to your embedded Linux project.
The first question which is important to ask is whether your development team is familiar with Yocto or if they possess solid experience in this area that would allow them to scale.
Yocto is a powerful tool but unfortunately has a long learning curve.
The second question is to consider what the final goal of your product is?
If the product is for prototyping, or the goal is to be user-friendly and customizable at runtime, a general-purpose desktop distribution build system, such as Debian or Ubuntu, would certainly be recommended. However, in the case of a specific product goal such as being light and fast or needing the ability to be ultra-customized, Yocto is the best embedded Linux solution.
That said, a compromise solution could be Buildroot, a build system that is less flexible than Yocto but is designed for customization. It is much easier to approach than Yocto but has four to five times fewer packages available. Therefore, this is a solution that should only be considered for a simple project with one configuration.
The twin choices of (a) do you need to use a build system, and if so (b) which build system you should select is critical and needs to be considered at the very beginning of your project. You need to be cautious with your decision and examine all the points that we have highlighted in the previous section and the table above.
Remember, going for an easy solution to get your project started fast can easily turn into a dead-end when you realize your project requires significant customization. For the sorts of products that Witekio’s clients seek to deliver, Yocto is more often than not the best choice.