Are you a software developer? Are you interested in how build systems work?
You’re reading this book; so there’s a good chance you answered “Yes” to both
questions. On the other hand, many software developers aren’t interested in
how their program is compiled. Most people just want to press a button and
have their source code turned into an executable program. If they need to fix a
bug, they change the source code and press the same button again. Their joy is
in seeing their program do all the exciting things it’s supposed to do. The build
system is just something that needs to be there in the background.
Inadequate build systems can dramatically impact developer productivity. Bad dependencies, false compile errors, failed software images, slow compilation, and time-wasting manual processes are just some of the byproducts of a subpar build system. In Software Build Systems, software productivity expert Peter Smith shows you how to implement build systems that overcome all these problems, so you can deliver reliable software more rapidly, at lower cost.
Smith explains the core principles underlying highly efficient build systems, surveying both system features and usage scenarios. Next, he encapsulates years of experience in creating and maintaining diverse build systems–helping you make well-informed choices about tools and practices, and avoid common traps and pitfalls. Throughout, he shares a wide range of practical examples and lessons from multiple environments, including Java, C++, C, and C#. Coverage includes
• Mastering build system concepts, including source trees, build tools, and compilation tools
• Comparing five leading build tools: GNU Make, Ant, SCons, CMake, and the Eclipse IDE’s integrated build features
• Ensuring accurate dependency checking and efficient incremental compilation
• Using metadata to assist debugging, profiling, and source code documentation
• Packaging software for installation on your target machine
• Best practices for managing complex version-control systems, build machines, and compilation tools
If you’re a developer, this book will illuminate the issues involved in building and maintaining the build system that’s best for your team. If you’re a manager, you’ll discover how to evaluate your team’s build system and improve its effectiveness. And if you’re a build “guru,” you’ll learn how to optimize the performance and scalability of your build system, no matter how demanding your requirements are.