19.1. Targets, Prerequisites, and Commands19.2. The Makefile19.3. Rules19.3.1. The Command Script19.3.2. Pattern Rules19.3.3. Suffix Rules19.3.4. Built-in Rules19.3.5. Implicit Rule Chains19.3.6. Double-Colon Rules19.4. Comments19.5. Variables19.5.1. Assignment Operators19.5.2. Variables and Whitespace19.5.3. Target-Specific Variable Assignments19.5.4. The Automatic Variables19.5.5. Other Built-in Variables19.5.6. Environment Variables19.6. Phony Targets19.7. Other Target Attributes19.8. Macros19.9. Functions19.9.1. Built-in Functions19.9.1.1. Text-processing functions19.9.1.2. Filename-manipulation functions19.9.1.3. Conditions and flow control functions19.9.1.4. Operations on variables19.9.1.5. System functions19.9.2. User-Defined Functions19.10. Directives19.10.1. Conditionals19.10.2. Includes19.10.3. Other Directives19.11. Running make19.11.1. Generating Header Dependencies19.11.2. Recursive make Commands19.11.3. Command-Line Options19.11.4. Special Targets Used as Runtime Options19.11.5. GCC Options for Generating Makefile Rules