Software Build Systems: Principles and Experience
ISBN: 0321717287
Reviewer Ratings
Relevance:Readability:
Overall:
Buy it now
One Minute Bottom Line
With a refreshing approach to discussing build systems and best practices, Peter Smith passes on his experiences to help you better understand how the process works, and what you should do to ensure maximum productivity. In the software development lifecycle, build is often overlooked as 'less important'. It is heartening to see a book finally give this step the spotlight it deserves. Finally, build experts have a definitive handbook to refer to, and other developers can gain a better appreciation of how build systems are essential for their productivity. |
Review
Split into four parts, this book provides a detailed insight into build systems, and how to ensure your own build process is as efficient and scalable as possible.
Part One works as an introduction into build systems for those who may be unfamiliar, and as a useful primer to those who consider themselves build experts. This parts moves from a high level view of what comprises the build system, to a runtime view of the system as it executes and introduces build variants.
Part Two is the section which stands out as one of the key selling points of the book - a comprehensive survey of five build tools, chosen based on their popularity. The tools discussed are
- GNU Make
- Ant
- SCons
- CMake
- Eclipse
As a developer who works on Eclipse based products, I had hoped this section would be more than just a discussion of the IDE build features, such as discussing PDE build or the various build options available. However, as an overview of how to build up a project from within the Eclipse IDE, it serves it's purpose.
Part Three of the book moves onto more advanced concepts, including working out dependencies for a build and whether it needs to be recompiled or not, and how to package up your software for installation on a machine. At the end of this part, two chapters deal with best practices around the management of build machines, and the same for compilation tools.
Part Four focusses on the scalability of your build system, covering topics such as making your build more efficient and faster, reducing the complexity of the system and managing the size of the build.
This book should appeal to a wide audience. The book works whether you're a developer who wants to know more about build systems, a manager trying to make the best decision for their team or a build expert that wants more indepth knowledge of various approaches available.





