manpagez: man pages & more
info make
Home | html | info | man

File: make.info,  Node: Quick Reference,  Next: Error Messages,  Prev: Makefile Conventions,  Up: Top

Appendix A Quick Reference
**************************

This appendix summarizes the directives, text manipulation functions,
and special variables which GNU 'make' understands.  *Note Special
Targets::, *note Catalogue of Built-In Rules: Catalogue of Rules, and
*note Summary of Options: Options Summary, for other summaries.

   Here is a summary of the directives GNU 'make' recognizes:

'define VARIABLE'
'define VARIABLE ='
'define VARIABLE :='
'define VARIABLE ::='
'define VARIABLE :::='
'define VARIABLE +='
'define VARIABLE ?='
'endef'
     Define multi-line variables.
     *Note Multi-Line::.

'undefine VARIABLE'
     Undefining variables.
     *Note Undefine Directive::.

'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.
     *Note Conditionals::.

'include FILE'
'-include FILE'
'sinclude FILE'
     Include another makefile.
     *Note Including Other Makefiles: Include.

'override VARIABLE-ASSIGNMENT'
     Define a variable, overriding any previous definition, even one
     from the command line.
     *Note The 'override' Directive: Override Directive.

'export'
     Tell 'make' to export all variables to child processes by default.
     *Note Communicating Variables to a Sub-'make': Variables/Recursion.

'export VARIABLE'
'export VARIABLE-ASSIGNMENT'
'unexport VARIABLE'
     Tell 'make' whether or not to export a particular variable to child
     processes.
     *Note Communicating Variables to a Sub-'make': Variables/Recursion.

'private VARIABLE-ASSIGNMENT'
     Do not allow this variable assignment to be inherited by
     prerequisites.
     *Note Suppressing Inheritance::.

'vpath PATTERN PATH'
     Specify a search path for files matching a '%' pattern.
     *Note 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 (*note Functions::):

'$(subst FROM,TO,TEXT)'
     Replace FROM with TO in TEXT.
     *Note Functions for String Substitution and Analysis: Text
     Functions.

'$(patsubst PATTERN,REPLACEMENT,TEXT)'
     Replace words matching PATTERN with REPLACEMENT in TEXT.
     *Note Functions for String Substitution and Analysis: Text
     Functions.

'$(strip STRING)'
     Remove excess whitespace characters from STRING.
     *Note Functions for String Substitution and Analysis: Text
     Functions.

'$(findstring FIND,TEXT)'
     Locate FIND in TEXT.
     *Note Functions for String Substitution and Analysis: Text
     Functions.

'$(filter PATTERN...,TEXT)'
     Select words in TEXT that match one of the PATTERN words.
     *Note 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.
     *Note Functions for String Substitution and Analysis: Text
     Functions.

'$(sort LIST)'
     Sort the words in LIST lexicographically, removing duplicates.
     *Note Functions for String Substitution and Analysis: Text
     Functions.

'$(word N,TEXT)'
     Extract the Nth word (one-origin) of TEXT.
     *Note Functions for String Substitution and Analysis: Text
     Functions.

'$(words TEXT)'
     Count the number of words in TEXT.
     *Note Functions for String Substitution and Analysis: Text
     Functions.

'$(wordlist S,E,TEXT)'
     Returns the list of words in TEXT from S to E.
     *Note Functions for String Substitution and Analysis: Text
     Functions.

'$(firstword NAMES...)'
     Extract the first word of NAMES.
     *Note Functions for String Substitution and Analysis: Text
     Functions.

'$(lastword NAMES...)'
     Extract the last word of NAMES.
     *Note Functions for String Substitution and Analysis: Text
     Functions.

'$(dir NAMES...)'
     Extract the directory part of each file name.
     *Note Functions for File Names: File Name Functions.

'$(notdir NAMES...)'
     Extract the non-directory part of each file name.
     *Note Functions for File Names: File Name Functions.

'$(suffix NAMES...)'
     Extract the suffix (the last '.' and following characters) of each
     file name.
     *Note Functions for File Names: File Name Functions.

'$(basename NAMES...)'
     Extract the base name (name without suffix) of each file name.
     *Note Functions for File Names: File Name Functions.

'$(addsuffix SUFFIX,NAMES...)'
     Append SUFFIX to each word in NAMES.
     *Note Functions for File Names: File Name Functions.

'$(addprefix PREFIX,NAMES...)'
     Prepend PREFIX to each word in NAMES.
     *Note Functions for File Names: File Name Functions.

'$(join LIST1,LIST2)'
     Join two parallel lists of words.
     *Note Functions for File Names: File Name Functions.

'$(wildcard PATTERN...)'
     Find file names matching a shell file name pattern (_not_ a '%'
     pattern).
     *Note 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.
     *Note 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.
     *Note Functions for File Names: File Name Functions.

'$(error TEXT...)'
     When this function is evaluated, 'make' generates a fatal error
     with the message TEXT.
     *Note Functions That Control Make: Make Control Functions.

'$(warning TEXT...)'
     When this function is evaluated, 'make' generates a warning with
     the message TEXT.
     *Note Functions That Control Make: Make Control Functions.

'$(shell COMMAND)'
     Execute a shell command and return its output.
     *Note The 'shell' Function: Shell Function.

'$(origin VARIABLE)'
     Return a string describing how the 'make' variable VARIABLE was
     defined.
     *Note The 'origin' Function: Origin Function.

'$(flavor VARIABLE)'
     Return a string describing the flavor of the 'make' variable
     VARIABLE.
     *Note The 'flavor' Function: Flavor Function.

'$(let VAR [VAR ...],WORDS,TEXT)'
     Evaluate TEXT with the VARs bound to the words in WORDS.
     *Note The 'let' Function: Let Function.

'$(foreach VAR,WORDS,TEXT)'
     Evaluate TEXT with VAR bound to each word in WORDS, and concatenate
     the results.
     *Note The 'foreach' Function: Foreach Function.

'$(if CONDITION,THEN-PART[,ELSE-PART])'
     Evaluate the condition CONDITION; if it's non-empty substitute the
     expansion of the THEN-PART otherwise substitute the expansion of
     the ELSE-PART.
     *Note Functions for Conditionals: Conditional Functions.

'$(or CONDITION1[,CONDITION2[,CONDITION3...]])'
     Evaluate each condition CONDITIONN one at a time; substitute the
     first non-empty expansion.  If all expansions are empty, substitute
     the empty string.
     *Note Functions for Conditionals: Conditional Functions.

'$(and CONDITION1[,CONDITION2[,CONDITION3...]])'
     Evaluate each condition CONDITIONN one at a time; if any expansion
     results in the empty string substitute the empty string.  If all
     expansions result in a non-empty string, substitute the expansion
     of the last CONDITION.
     *Note Functions for Conditionals: Conditional Functions.

'$(intcmp LHS,RHS[,LT-PART[,EQ-PART[,GT-PART]]])'
     Compare LHS and RHS numerically; substitute the expansion of
     LT-PART, EQ-PART, or GT-PART depending on whether the left-hand
     side is less-than, equal-to, or greater-than the right-hand side,
     respectively.
     *Note Functions for Conditionals: Conditional Functions.

'$(call VAR,PARAM,...)'
     Evaluate the variable VAR replacing any references to '$(1)',
     '$(2)' with the first, second, etc. PARAM values.
     *Note The 'call' Function: Call Function.

'$(eval TEXT)'
     Evaluate TEXT then read the results as makefile commands.  Expands
     to the empty string.
     *Note The 'eval' Function: Eval Function.

'$(file OP FILENAME,TEXT)'
     Expand the arguments, then open the file FILENAME using mode OP and
     write TEXT to that file.
     *Note The 'file' Function: File Function.

'$(value VAR)'
     Evaluates to the contents of the variable VAR, with no expansion
     performed on it.
     *Note The 'value' Function: Value Function.

   Here is a summary of the automatic variables.  *Note 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 named member is used (*note Archives::).

'$^'
'$+'
     The names of all the prerequisites, with spaces between them.  For
     prerequisites which are archive members, only the named member is
     used (*note Archives::).  The value of '$^' omits duplicate
     prerequisites, while '$+' retains them and preserves their order.

'$*'
     The stem with which an implicit rule matches (*note 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 '$%'.

'$(

© manpagez.com 2000-2024
Individual documents may contain additional copyright information.