RCS source control, implicit rules and read-only source rebuilds, minimizing recursion recursive make 2nd [See also nonrecursive make] build targets and code duplication command-line and dependencies and error handling variables , passing recursive variables performance and shell function and recursively expanded variables reference builds installers and libraries and reference trees, jar program regtool relative paths, converting to Java class name release tree layout remote-file function reusable library functions, declarations rule chaining rules any character chaining, intermediate files customization, variables and default rule dependents double- colon explicit 2nd empty targets phony targets implicit 2nd built-in source control and macros matching, automatic variables and newline pattern 2nd suffix rules prerequisites and static pattern 2nd structure suffix targets multiple variables, customization and run-make shell script, running book makefile