DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(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