v
7 Conditional Parts of Makefiles . . . . . . . . . . . . . . . 77
7.1 Example of a Conditional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
7.2 Syntax of Conditionals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
7.3 Conditionals that Test Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
8 Functions for Transforming Text . . . . . . . . . . . . . 83
8.1 Function Call Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
8.2 Functions for String Substitution and Analysis. . . . . . . . . . . . . . . . . 84
8.3 Functions for File Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
8.4 Functions for Conditionals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
8.5 The foreach Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
8.6 The file Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
8.7 The call Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
8.8 The value Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
8.9 The eval Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
8.10 The origin Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
8.11 The flavor Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
8.12 Functions That Control Make . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
8.13 The shell Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
8.14 The guile Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
9 How to Run make . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
9.1 Arguments to Specify the Makefile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
9.2 Arguments to Specify the Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
9.3 Instead of Executing Recipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
9.4 Avoiding Recompilation of Some Files . . . . . . . . . . . . . . . . . . . . . . . . 102
9.5 Overriding Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
9.6 Testing the Compilation of a Program . . . . . . . . . . . . . . . . . . . . . . . . 104
9.7 Summary of Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
10 Using Implicit Rules . . . . . . . . . . . . . . . . . . . . . . . . 111
10.1 Using Implicit Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
10.2 Catalogue of Built-In Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
10.3 Variables Used by Implicit Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
10.4 Chains of Implicit Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
10.5 Defining and Redefining Pattern Rules . . . . . . . . . . . . . . . . . . . . . . 118
10.5.1 Introduction to Pattern Rules . . . . . . . . . . . . . . . . . . . . . . . . . . 119
10.5.2 Pattern Rule Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
10.5.3 Automatic Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
10.5.4 How Patterns Match . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
10.5.5 Match-Anything Pattern Rules . . . . . . . . . . . . . . . . . . . . . . . . . 123
10.5.6 Canceling Implicit Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
10.6 Defining Last-Resort Default Rules. . . . . . . . . . . . . . . . . . . . . . . . . . 125
10.7 Old-Fashioned Suffix Rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
10.8 Implicit Rule Search Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Comentários a estes Manuais