A detailed discussion of these questions can be found in the "Appendix A" section on page 502.
Why should people with nice integrated development environments worry about using a command-line make utility, when they can just hit a single button to build their project?
Why is it important to treat the extraction of source code as a separate step from building it?
Where should the intermediate files from construction steps (e.g., object files) be put?
If you add an automated test suite to the build system, should it run automatically after the software is built, or must you fire a separate command to invoke the tests?
Should the overnight build be a debug or release build?
Write a make rule to automatically generate dependency ...