5.1. How Software Gets Built5.1.1. The Different Stages of a Build5.1.2. A Typical Build File5.2. Build States: Virgin, Up-to-date, Changed, Interrupted, Clean5.2.1. Good Builds, Bad Builds5.2.2. Build States and Different Targets5.2.3. Build States in Practice5.3. Build Dependencies5.3.1. When Build Dependencies Go Wrong5.3.2. How Build Dependencies Change5.4. Common Build Problems5.4.1. Slow Builds5.5. Build Tools5.5.1. Shell Scripts and Batch Files5.5.2. make5.5.3. GNU Autotools5.5.3.1. Autoconf5.5.3.2. Automake5.5.3.3. Libtool5.5.3.4. An Autotools “Hello World” program5.5.3.5. Debugging GNU Autotools installs5.5.3.6. More Autotools5.5.4. Ant5.5.5. Jam5.5.6. SCons5.5.7. Custom Build Tools5.6. Comparison of Build Tools5.7. Changing Your Build Tool5.8. Checklist