GNU `make'

Node:Name Index, Previous:Concept Index, Up:Top

## Index of Functions, Variables, & Directives

- `$$(@D)`: Automatic
- `$$(@F)`: Automatic
- `$$@`: Automatic
- `$%`: Automatic
- `$(%D)`: Automatic
- `$(%F)`: Automatic
- `$(*D)`: Automatic
- `$(*F)`: Automatic
- `$(+D)`: Automatic
- `$(+F)`: Automatic
- `$(.VARIABLES)`: Special Variables
- `$(<D)`: Automatic
- `$(<F)`: Automatic
- `$(?D)`: Automatic
- `$(?F)`: Automatic
- `$(@D)`: Automatic
- `$(@F)`: Automatic
- `$(^D)`: Automatic
- `$(^F)`: Automatic
- `$*`: Automatic
- `$*`, and static pattern``: Static Usage
- `$+`: Automatic
- `$<`: Automatic
- `$?`: Automatic
- `$@`: Automatic
- `$^`: Automatic
- `%` (automatic variable)``: Automatic
- `%D` (automatic variable)``: Automatic
- `%F` (automatic variable)``: Automatic
- `*` (automatic variable)``: Automatic
- `*` (automatic variable), unsupported bizarre usage``: Missing
- `*D` (automatic variable)``: Automatic
- `*F` (automatic variable)``: Automatic
- `+` (automatic variable)``: Automatic
- `+D` (automatic variable)``: Automatic
- `+F` (automatic variable)``: Automatic
- `.DEFAULT`: Last Resort, Special Targets
- `.DEFAULT`, and empty commands``: Empty Commands
- `.DELETE_ON_ERROR`: Errors, Special Targets
- `.EXPORT_ALL_VARIABLES`: Special Targets, Variables/Recursion
- `.IGNORE`: Errors, Special Targets
- `.INTERMEDIATE`: Special Targets
- `.LIBPATTERNS`: Libraries/Search
- `.LOW_RESOLUTION_TIME`: Special Targets
- `.NOTPARALLEL`: Special Targets
- `.PHONY`: Special Targets, Phony Targets
- `.POSIX`: Options/Recursion
- `.PRECIOUS`: Special Targets, Interrupts
- `.SECONDARY`: Special Targets
- `.SILENT`: Special Targets, Echoing
- `.SUFFIXES`: Suffix Rules, Special Targets
- `.VARIABLES` (list of variables)``: Special Variables
- `/usr/gnu/include`: Include
- `/usr/include`: Include
- `/usr/local/include`: Include
- `<` (automatic variable)``: Automatic
- `<D` (automatic variable)``: Automatic
- `<F` (automatic variable)``: Automatic
- `?` (automatic variable)``: Automatic
- `?D` (automatic variable)``: Automatic
- `?F` (automatic variable)``: Automatic
- `@` (automatic variable)``: Automatic
- `@D` (automatic variable)``: Automatic
- `@F` (automatic variable)``: Automatic
- `^` (automatic variable)``: Automatic
- `^D` (automatic variable)``: Automatic
- `^F` (automatic variable)``: Automatic
- `addprefix`: File Name Functions
- `addsuffix`: File Name Functions
- `AR`: Implicit Variables
- `ARFLAGS`: Implicit Variables
- `AS`: Implicit Variables
- `ASFLAGS`: Implicit Variables
- `basename`: File Name Functions
- `bindir`: Directory Variables
- `call`: Call Function
- `CC`: Implicit Variables
- `CFLAGS`: Implicit Variables
- `CO`: Implicit Variables
- `COFLAGS`: Implicit Variables
- `COMSPEC`: Execution
- `CPP`: Implicit Variables
- `CPPFLAGS`: Implicit Variables
- `CTANGLE`: Implicit Variables
- `CWEAVE`: Implicit Variables
- `CXX`: Implicit Variables
- `CXXFLAGS`: Implicit Variables
- `define`: Defining
- `dir`: File Name Functions
- `else`: Conditional Syntax
- `endef`: Defining
- `endif`: Conditional Syntax
- `error`: Make Control Functions
- `eval`: Eval Function
- `exec_prefix`: Directory Variables
- `export`: Variables/Recursion
- `FC`: Implicit Variables
- `FFLAGS`: Implicit Variables
- `filter`: Text Functions
- `filter-out`: Text Functions
- `findstring`: Text Functions
- `firstword`: Text Functions
- `foreach`: Foreach Function
- `GET`: Implicit Variables
- `GFLAGS`: Implicit Variables
- `GNUmakefile`: Makefile Names
- `GPATH`: Search Algorithm
- `if`: If Function
- `ifdef`: Conditional Syntax
- `ifeq`: Conditional Syntax
- `ifndef`: Conditional Syntax
- `ifneq`: Conditional Syntax
- `include`: Include
- `join`: File Name Functions
- `LDFLAGS`: Implicit Variables
- `LEX`: Implicit Variables
- `LFLAGS`: Implicit Variables
- `libexecdir`: Directory Variables
- `MAKE`: MAKE Variable, Flavors
- `MAKECMDGOALS`: Goals
- `Makefile`: Makefile Names
- `makefile`: Makefile Names
- `MAKEFILES`: MAKEFILES Variable, Variables/Recursion
- `MAKEFLAGS`: Options/Recursion
- `MAKEINFO`: Implicit Variables
- `MAKELEVEL`: Flavors, Variables/Recursion
- `MAKEOVERRIDES`: Options/Recursion
- `MFLAGS`: Options/Recursion
- `notdir`: File Name Functions
- `origin`: Origin Function
- `OUTPUT_OPTION`: Catalogue of Rules
- `override`: Override Directive
- `patsubst`: Text Functions, Substitution Refs
- `PC`: Implicit Variables
- `PFLAGS`: Implicit Variables
- `prefix`: Directory Variables
- `RFLAGS`: Implicit Variables
- `RM`: Implicit Variables
- `sbindir`: Directory Variables
- `SHELL`: Execution
- `shell`: Shell Function
- `SHELL` (command execution)``: Execution
- `sort`: Text Functions
- `strip`: Text Functions
- `subst`: Text Functions, Multiple Targets
- `suffix`: File Name Functions
- `SUFFIXES`: Suffix Rules
- `TANGLE`: Implicit Variables
- `TEX`: Implicit Variables
- `TEXI2DVI`: Implicit Variables
- `unexport`: Variables/Recursion
- `value`: Value Function
- `vpath`: Selective Search
- `VPATH`: General Search
- `vpath`: Directory Search
- `VPATH`: Directory Search
- `warning`: Make Control Functions
- `WEAVE`: Implicit Variables
- `wildcard`: Wildcard Function, File Name Functions
- `word`: Text Functions
- `wordlist`: Text Functions
- `words`: Text Functions
- `YACC`: Implicit Variables
- `YACCR`: Implicit Variables
- `YFLAGS`: Implicit Variables

## Short Contents

- Make
- Overview of `make`
- An Introduction to Makefiles
- Writing Makefiles
- Writing Rules
- Writing the Commands in Rules
- How to Use Variables
- Conditional Parts of Makefiles
- Functions for Transforming Text
- How to Run `make`
- Using Implicit Rules
- Using `make` to Update Archive Files
- Features of GNU `make`
- Incompatibilities and Missing Features
- Makefile Conventions
- Quick Reference
- Errors Generated by Make
- Complex Makefile Example
- GNU Free Documentation License
- Index of Concepts
- Index of Functions, Variables, & Directives

## Table of Contents

- Make
- Overview of `make`
  - How to Read This Manual
  - Problems and Bugs
- An Introduction to Makefiles
  - What a Rule Looks Like
  - A Simple Makefile
  - How `make` Processes a Makefile
  - Variables Make Makefiles Simpler
  - Letting `make` Deduce the Commands
  - Another Style of Makefile
  - Rules for Cleaning the Directory
- Writing Makefiles
  - What Makefiles Contain
  - What Name to Give Your Makefile
  - Including Other Makefiles
  - The Variable `MAKEFILES`
  - The Variable `MAKEFILE_LIST`
  - Other Special Variables
  - How Makefiles Are Remade
  - Overriding Part of Another Makefile
  - How `make` Reads a Makefile
- Writing Rules
  - Rule Example
  - Rule Syntax
  - Types of Prerequisites
  - Using Wildcard Characters in File Names
    - Wildcard Examples
    - Pitfalls of Using Wildcards
    - The Function `wildcard`
  - Searching Directories for Prerequisites
    - `VPATH`: Search Path for All Prerequisites
    - The `vpath` Directive
    - How Directory Searches are Performed
    - Writing Shell Commands with Directory Search
    - Directory Search and Implicit Rules
    - Directory Search for Link Libraries
  - Phony Targets
  - Rules without Commands or Prerequisites
  - Empty Target Files to Record Events
  - Special Built-in Target Names
  - Multiple Targets in a Rule
  - Multiple Rules for One Target
  - Static Pattern Rules
    - Syntax of Static Pattern Rules
    - Static Pattern Rules versus Implicit Rules
  - Double-Colon Rules
  - Generating Prerequisites Automatically
- Writing the Commands in Rules
  - Command Echoing
  - Command Execution
  - Parallel Execution
  - Errors in Commands
  - Interrupting or Killing `make`
  - Recursive Use of `make`
    - How the `MAKE` Variable Works
    - Communicating Variables to a Sub-`make`
    - Communicating Options to a Sub-`make`
    - The `--print-directory` Option
  - Defining Canned Command Sequences
  - Using Empty Commands
- How to Use Variables
  - Basics of Variable References
  - The Two Flavors of Variables
  - Advanced Features for Reference to Variables
    - Substitution References
    - Computed Variable Names
  - How Variables Get Their Values
  - Setting Variables
  - Appending More Text to Variables
  - The `override` Directive
  - Defining Variables Verbatim
  - Variables from the Environment
  - Target-specific Variable Values
  - Pattern-specific Variable Values
- Conditional Parts of Makefiles
  - Example of a Conditional
  - Syntax of Conditionals
  - Conditionals that Test Flags
- Functions for Transforming Text
  - Function Call Syntax
  - Functions for String Substitution and Analysis
  - Functions for File Names
  - The `foreach` Function
  - The `if` Function
  - The `call` Function
  - The `value` Function
  - The `eval` Function
  - The `origin` Function
  - The `shell` Function
  - Functions That Control Make
- How to Run `make`
  - Arguments to Specify the Makefile
  - Arguments to Specify the Goals
  - Instead of Executing the Commands
  - Avoiding Recompilation of Some Files
  - Overriding Variables
  - Testing the Compilation of a Program
  - Summary of Options
- Using Implicit Rules
  - Using Implicit Rules
  - Catalogue of Implicit Rules
  - Variables Used by Implicit Rules
  - Chains of Implicit Rules
  - Defining and Redefining Pattern Rules
    - Introduction to Pattern Rules
    - Pattern Rule Examples
    - Automatic Variables
    - How Patterns Match
    - Match-Anything Pattern Rules
    - Canceling Implicit Rules
  - Defining Last-Resort Default Rules
  - Old-Fashioned Suffix Rules
  - Implicit Rule Search Algorithm
- Using `make` to Update Archive Files
  - Archive Members as Targets
  - Implicit Rule for Archive Member Targets
    - Updating Archive Symbol Directories
  - Dangers When Using Archives
  - Suffix Rules for Archive Files
- Features of GNU `make`
- Incompatibilities and Missing Features
- Makefile Conventions
  - General Conventions for Makefiles
  - Utilities in Makefiles
  - Variables for Specifying Commands
  - Variables for Installation Directories
  - Standard Targets for Users
  - Install Command Categories
- Quick Reference
- Errors Generated by Make
- Complex Makefile Example
- GNU Free Documentation License
  - ADDENDUM: How to use this License for your documents
- Index of Concepts
- Index of Functions, Variables, & Directives