Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ GNU make - Table of Contents

Media Vault

Software Library

Restoration Projects

Artifacts Sought

GNU make - Table of Contents

GNU Make

A Program for Directing Recompilation

Edition 0.51, for make Version 3.76 Beta.

Aug 1997

Richard M. Stallman and Roland McGrath


  • 1. Overview of make
    • 1.1 How to Read This Manual
    • 1.2 Problems and Bugs
  • 2. An Introduction to Makefiles
    • 2.1 What a Rule Looks Like
    • 2.2 A Simple Makefile
    • 2.3 How make Processes a Makefile
    • 2.4 Variables Make Makefiles Simpler
    • 2.5 Letting make Deduce the Commands
    • 2.6 Another Style of Makefile
    • 2.7 Rules for Cleaning the Directory
  • 3. Writing Makefiles
    • 3.1 What Makefiles Contain
    • 3.2 What Name to Give Your Makefile
    • 3.3 Including Other Makefiles
    • 3.4 The Variable MAKEFILES
    • 3.5 How Makefiles Are Remade
    • 3.6 Overriding Part of Another Makefile
  • 4. Writing Rules
    • 4.1 Rule Syntax
    • 4.2 Using Wildcard Characters in File Names
      • 4.2.1 Wildcard Examples
      • 4.2.2 Pitfalls of Using Wildcards
      • 4.2.3 The Function wildcard
    • 4.3 Searching Directories for Dependencies
      • 4.3.1 VPATH: Search Path for All Dependencies
      • 4.3.2 The vpath Directive
      • 4.3.3 How Directory Searches are Performed
      • 4.3.4 Writing Shell Commands with Directory Search
      • 4.3.5 Directory Search and Implicit Rules
      • 4.3.6 Directory Search for Link Libraries
    • 4.4 Phony Targets
    • 4.5 Rules without Commands or Dependencies
    • 4.6 Empty Target Files to Record Events
    • 4.7 Special Built-in Target Names
    • 4.8 Multiple Targets in a Rule
    • 4.9 Multiple Rules for One Target
    • 4.10 Static Pattern Rules
      • 4.10.1 Syntax of Static Pattern Rules
      • 4.10.2 Static Pattern Rules versus Implicit Rules
    • 4.11 Double-Colon Rules
    • 4.12 Generating Dependencies Automatically
  • 5. Writing the Commands in Rules
    • 5.1 Command Echoing
    • 5.2 Command Execution
    • 5.3 Parallel Execution
    • 5.4 Errors in Commands
    • 5.5 Interrupting or Killing make
    • 5.6 Recursive Use of make
      • 5.6.1 How the MAKE Variable Works
      • 5.6.2 Communicating Variables to a Sub-make
      • 5.6.3 Communicating Options to a Sub-make
      • 5.6.4 The `--print-directory' Option
    • 5.7 Defining Canned Command Sequences
    • 5.8 Using Empty Commands
  • 6. How to Use Variables
    • 6.1 Basics of Variable References
    • 6.2 The Two Flavors of Variables
    • 6.3 Advanced Features for Reference to Variables
      • 6.3.1 Substitution References
      • 6.3.2 Computed Variable Names
    • 6.4 How Variables Get Their Values
    • 6.5 Setting Variables
    • 6.6 Appending More Text to Variables
    • 6.7 The override Directive
    • 6.8 Defining Variables Verbatim
    • 6.9 Variables from the Environment
  • 7. Conditional Parts of Makefiles
    • 7.1 Example of a Conditional
    • 7.2 Syntax of Conditionals
    • 7.3 Conditionals that Test Flags
  • 8. Functions for Transforming Text
    • 8.1 Function Call Syntax
    • 8.2 Functions for String Substitution and Analysis
    • 8.3 Functions for File Names
    • 8.4 The foreach Function
    • 8.5 The origin Function
    • 8.6 The shell Function
  • 9. How to Run make
    • 9.1 Arguments to Specify the Makefile
    • 9.2 Arguments to Specify the Goals
    • 9.3 Instead of Executing the Commands
    • 9.4 Avoiding Recompilation of Some Files
    • 9.5 Overriding Variables
    • 9.6 Testing the Compilation of a Program
    • 9.7 Summary of Options
  • 10. Using Implicit Rules
    • 10.1 Using Implicit Rules
    • 10.2 Catalogue of Implicit Rules
    • 10.3 Variables Used by Implicit Rules
    • 10.4 Chains of Implicit Rules
    • 10.5 Defining and Redefining Pattern Rules
      • 10.5.1 Introduction to Pattern Rules
      • 10.5.2 Pattern Rule Examples
      • 10.5.3 Automatic Variables
      • 10.5.4 How Patterns Match
      • 10.5.5 Match-Anything Pattern Rules
      • 10.5.6 Canceling Implicit Rules
    • 10.6 Defining Last-Resort Default Rules
    • 10.7 Old-Fashioned Suffix Rules
    • 10.8 Implicit Rule Search Algorithm
  • 11. Using make to Update Archive Files
    • 11.1 Archive Members as Targets
    • 11.2 Implicit Rule for Archive Member Targets
      • 11.2.1 Updating Archive Symbol Directories
    • 11.3 Dangers When Using Archives
    • 11.4 Suffix Rules for Archive Files
  • 12. Features of GNU make
  • 13. Incompatibilities and Missing Features
  • 14. Makefile Conventions
    • 14.1 General Conventions for Makefiles
    • 14.2 Utilities in Makefiles
    • 14.3 Variables for Specifying Commands
    • 14.4 Variables for Installation Directories
    • 14.5 Standard Targets for Users
    • 14.6 Install Command Categories
  • A. Quick Reference
  • B. Complex Makefile Example
  • Index of Concepts
  • Index of Functions, Variables, & Directives


This document was generated on 27 January 1999 using texi2html 1.55k.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026