Chapter 5. Building Software

this chapter discusses how software products are built from their source files. The first half of the chapter describes what a build tool is and what you might want a build tool to do. The second half compares six of the most commonly used build tools: shell scripts and batch files, make, GNU Autotools, Ant, Jam, and SCons.

One solid study, not written by a consultant working for a company that sells a build tool, suggests that between 10% and 30% of the time spent working on many complex software projects is spent wrestling with the build tool, waiting for slow builds, or investigating phantom bugs due to inconsistent builds.[1] That’s a substantial amount of time! Whether you believe the figures or not, frustrating experiences with a build tool can certainly make any project far less productive. Conversely, a good build tool can fade into the background and let you get on with writing code.

The purpose of this chapter is to help you choose and use an appropriate build tool for your project. If that choice has already been made, then the examples and references for each build tool should help you use the build tool better. If you are using a build tool that isn’t described here, then the general observations about builds should still be useful.

How Software Gets Built

This section is a brief overview of how source code is turned into an executable, a program that can actually run on a computer. This is the process is known as “building software.” A summary ...

Get Practical Development Environments now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.