(make.info.gz) Quick Reference
Info Catalog
(make.info.gz) Makefile Conventions
(make.info.gz) Top
(make.info.gz) Error Messages
Appendix A Quick Reference
**************************
This appendix summarizes the directives, text manipulation functions,
and special variables which GNU `make' understands. Special
Targets, Catalogue of Implicit Rules Catalogue of Rules, and
Summary of Options Options Summary, for other summaries.
Here is a summary of the directives GNU `make' recognizes:
`define VARIABLE'
`endef'
Define a multi-line, recursively-expanded variable.
Sequences.
`ifdef VARIABLE'
`ifndef VARIABLE'
`ifeq (A,B)'
`ifeq "A" "B"'
`ifeq 'A' 'B''
`ifneq (A,B)'
`ifneq "A" "B"'
`ifneq 'A' 'B''
`else'
`endif'
Conditionally evaluate part of the makefile.
Conditionals.
`include FILE'
`-include FILE'
`sinclude FILE'
Include another makefile.
Including Other Makefiles Include.
`override VARIABLE = VALUE'
`override VARIABLE := VALUE'
`override VARIABLE += VALUE'
`override VARIABLE ?= VALUE'
`override define VARIABLE'
`endef'
Define a variable, overriding any previous definition, even one
from the command line.
The `override' Directive Override Directive.
`export'
Tell `make' to export all variables to child processes by default.
Communicating Variables to a Sub-`make' Variables/Recursion.
`export VARIABLE'
`export VARIABLE = VALUE'
`export VARIABLE := VALUE'
`export VARIABLE += VALUE'
`export VARIABLE ?= VALUE'
`unexport VARIABLE'
Tell `make' whether or not to export a particular variable to child
processes.
Communicating Variables to a Sub-`make' Variables/Recursion.
`vpath PATTERN PATH'
Specify a search path for files matching a `%' pattern.
The `vpath' Directive Selective Search.
`vpath PATTERN'
Remove all search paths previously specified for PATTERN.
`vpath'
Remove all search paths previously specified in any `vpath'
directive.
Here is a summary of the built-in functions ( Functions):
`$(subst FROM,TO,TEXT)'
Replace FROM with TO in TEXT.
Functions for String Substitution and Analysis Text
Functions.
`$(patsubst PATTERN,REPLACEMENT,TEXT)'
Replace words matching PATTERN with REPLACEMENT in TEXT.
Functions for String Substitution and Analysis Text
Functions.
`$(strip STRING)'
Remove excess whitespace characters from STRING.
Functions for String Substitution and Analysis Text
Functions.
`$(findstring FIND,TEXT)'
Locate FIND in TEXT.
Functions for String Substitution and Analysis Text
Functions.
`$(filter PATTERN...,TEXT)'
Select words in TEXT that match one of the PATTERN words.
Functions for String Substitution and Analysis Text
Functions.
`$(filter-out PATTERN...,TEXT)'
Select words in TEXT that _do not_ match any of the PATTERN words.
Functions for String Substitution and Analysis Text
Functions.
`$(sort LIST)'
Sort the words in LIST lexicographically, removing duplicates.
Functions for String Substitution and Analysis Text
Functions.
`$(word N,TEXT)'
Extract the Nth word (one-origin) of TEXT.
Functions for String Substitution and Analysis Text
Functions.
`$(words TEXT)'
Count the number of words in TEXT.
Functions for String Substitution and Analysis Text
Functions.
`$(wordlist S,E,TEXT)'
Returns the list of words in TEXT from S to E.
Functions for String Substitution and Analysis Text
Functions.
`$(firstword NAMES...)'
Extract the first word of NAMES.
Functions for String Substitution and Analysis Text
Functions.
`$(lastword NAMES...)'
Extract the last word of NAMES.
Functions for String Substitution and Analysis Text
Functions.
`$(dir NAMES...)'
Extract the directory part of each file name.
Functions for File Names File Name Functions.
`$(notdir NAMES...)'
Extract the non-directory part of each file name.
Functions for File Names File Name Functions.
`$(suffix NAMES...)'
Extract the suffix (the last `.' and following characters) of each
file name.
Functions for File Names File Name Functions.
`$(basename NAMES...)'
Extract the base name (name without suffix) of each file name.
Functions for File Names File Name Functions.
`$(addsuffix SUFFIX,NAMES...)'
Append SUFFIX to each word in NAMES.
Functions for File Names File Name Functions.
`$(addprefix PREFIX,NAMES...)'
Prepend PREFIX to each word in NAMES.
Functions for File Names File Name Functions.
`$(join LIST1,LIST2)'
Join two parallel lists of words.
Functions for File Names File Name Functions.
`$(wildcard PATTERN...)'
Find file names matching a shell file name pattern (_not_ a `%'
pattern).
The Function `wildcard' Wildcard Function.
`$(realpath NAMES...)'
For each file name in NAMES, expand to an absolute name that does
not contain any `.', `..', nor symlinks.
Functions for File Names File Name Functions.
`$(abspath NAMES...)'
For each file name in NAMES, expand to an absolute name that does
not contain any `.' or `..' components, but preserves symlinks.
Functions for File Names File Name Functions.
`$(error TEXT...)'
When this function is evaluated, `make' generates a fatal error
with the message TEXT.
Functions That Control Make Make Control Functions.
`$(warning TEXT...)'
When this function is evaluated, `make' generates a warning with
the message TEXT.
Functions That Control Make Make Control Functions.
`$(shell COMMAND)'
Execute a shell command and return its output.
The `shell' Function Shell Function.
`$(origin VARIABLE)'
Return a string describing how the `make' variable VARIABLE was
defined.
The `origin' Function Origin Function.
`$(flavor VARIABLE)'
Return a string describing the flavor of the `make' variable
VARIABLE.
The `flavor' Function Flavor Function.
`$(foreach VAR,WORDS,TEXT)'
Evaluate TEXT with VAR bound to each word in WORDS, and
concatenate the results.
The `foreach' Function Foreach Function.
`$(call VAR,PARAM,...)'
Evaluate the variable VAR replacing any references to `$(1)',
`$(2)' with the first, second, etc. PARAM values.
The `call' Function Call Function.
`$(eval TEXT)'
Evaluate TEXT then read the results as makefile commands. Expands
to the empty string.
The `eval' Function Eval Function.
`$(value VAR)'
Evaluates to the contents of the variable VAR, with no expansion
performed on it.
The `value' Function Value Function.
Here is a summary of the automatic variables. Automatic
Variables, for full information.
`$@'
The file name of the target.
`$%'
The target member name, when the target is an archive member.
`$<'
The name of the first prerequisite.
`$?'
The names of all the prerequisites that are newer than the target,
with spaces between them. For prerequisites which are archive
members, only the member named is used ( Archives).
`$^'
`$+'
The names of all the prerequisites, with spaces between them. For
prerequisites which are archive members, only the member named is
used ( Archives). The value of `$^' omits duplicate
prerequisites, while `$+' retains them and preserves their order.
`$*'
The stem with which an implicit rule matches ( How Patterns
Match Pattern Match.).
`$(@D)'
`$(@F)'
The directory part and the file-within-directory part of `$@'.
`$(*D)'
`$(*F)'
The directory part and the file-within-directory part of `$*'.
`$(%D)'
`$(%F)'
The directory part and the file-within-directory part of `$%'.
`$(<D)'
`$(<F)'
The directory part and the file-within-directory part of `$<'.
`$(^D)'
`$(^F)'
The directory part and the file-within-directory part of `$^'.
`$(+D)'
`$(+F)'
The directory part and the file-within-directory part of `$+'.
`$(?D)'
`$(?F)'
The directory part and the file-within-directory part of `$?'.
These variables are used specially by GNU `make':
`MAKEFILES'
Makefiles to be read on every invocation of `make'.
The Variable `MAKEFILES' MAKEFILES Variable.
`VPATH'
Directory search path for files not found in the current directory.
`VPATH' Search Path for All Prerequisites General Search.
`SHELL'
The name of the system default command interpreter, usually
`/bin/sh'. You can set `SHELL' in the makefile to change the
shell used to run commands. Command Execution Execution.
The `SHELL' variable is handled specially when importing from and
exporting to the environment. Choosing the Shell.
`MAKESHELL'
On MS-DOS only, the name of the command interpreter that is to be
used by `make'. This value takes precedence over the value of
`SHELL'. MAKESHELL variable Execution.
`MAKE'
The name with which `make' was invoked. Using this variable in
commands has special meaning. How the `MAKE' Variable
Works MAKE Variable.
`MAKELEVEL'
The number of levels of recursion (sub-`make's).
Variables/Recursion.
`MAKEFLAGS'
The flags given to `make'. You can set this in the environment or
a makefile to set flags.
Communicating Options to a Sub-`make' Options/Recursion.
It is _never_ appropriate to use `MAKEFLAGS' directly on a command
line: its contents may not be quoted correctly for use in the
shell. Always allow recursive `make''s to obtain these values
through the environment from its parent.
`MAKECMDGOALS'
The targets given to `make' on the command line. Setting this
variable has no effect on the operation of `make'.
Arguments to Specify the Goals Goals.
`CURDIR'
Set to the pathname of the current working directory (after all
`-C' options are processed, if any). Setting this variable has no
effect on the operation of `make'.
Recursive Use of `make' Recursion.
`SUFFIXES'
The default list of suffixes before `make' reads any makefiles.
`.LIBPATTERNS'
Defines the naming of the libraries `make' searches for, and their
order.
Directory Search for Link Libraries Libraries/Search.
Info Catalog
(make.info.gz) Makefile Conventions
(make.info.gz) Top
(make.info.gz) Error Messages
automatically generated byinfo2html