Copyright (C) 2000-2012 |
GNU Info (make.info)Quick ReferenceQuick Reference *************** This appendix summarizes the directives, text manipulation functions, and special variables which GNU `make' understands. Note: Special Targets, Note: Catalogue of Implicit Rules, and Note: Summary of Options, for other summaries. Here is a summary of the directives GNU `make' recognizes: `define VARIABLE' `endef' Define a multi-line, recursively-expanded variable. Note: 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. Note: Conditionals. `include FILE' `-include FILE' `sinclude FILE' Include another makefile. Note: Including Other Makefiles. `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. Note: The `override' Directive. `export' Tell `make' to export all variables to child processes by default. Note: Communicating Variables to a Sub-`make'. `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. Note: Communicating Variables to a Sub-`make'. `vpath PATTERN PATH' Specify a search path for files matching a `%' pattern. Note: The `vpath' Directive. `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 text manipulation functions (Note: Functions): `$(subst FROM,TO,TEXT)' Replace FROM with TO in TEXT. Note: Functions for String Substitution and Analysis. `$(patsubst PATTERN,REPLACEMENT,TEXT)' Replace words matching PATTERN with REPLACEMENT in TEXT. Note: Functions for String Substitution and Analysis. `$(strip STRING)' Remove excess whitespace characters from STRING. Note: Functions for String Substitution and Analysis. `$(findstring FIND,TEXT)' Locate FIND in TEXT. Note: Functions for String Substitution and Analysis. `$(filter PATTERN...,TEXT)' Select words in TEXT that match one of the PATTERN words. Note: Functions for String Substitution and Analysis. `$(filter-out PATTERN...,TEXT)' Select words in TEXT that _do not_ match any of the PATTERN words. Note: Functions for String Substitution and Analysis. `$(sort LIST)' Sort the words in LIST lexicographically, removing duplicates. Note: Functions for String Substitution and Analysis. `$(dir NAMES...)' Extract the directory part of each file name. Note: Functions for File Names. `$(notdir NAMES...)' Extract the non-directory part of each file name. Note: Functions for File Names. `$(suffix NAMES...)' Extract the suffix (the last `.' and following characters) of each file name. Note: Functions for File Names. `$(basename NAMES...)' Extract the base name (name without suffix) of each file name. Note: Functions for File Names. `$(addsuffix SUFFIX,NAMES...)' Append SUFFIX to each word in NAMES. Note: Functions for File Names. `$(addprefix PREFIX,NAMES...)' Prepend PREFIX to each word in NAMES. Note: Functions for File Names. `$(join LIST1,LIST2)' Join two parallel lists of words. Note: Functions for File Names. `$(word N,TEXT)' Extract the Nth word (one-origin) of TEXT. Note: Functions for File Names. `$(words TEXT)' Count the number of words in TEXT. Note: Functions for File Names. `$(wordlist S,E,TEXT)' Returns the list of words in TEXT from S to E. Note: Functions for File Names. `$(firstword NAMES...)' Extract the first word of NAMES. Note: Functions for File Names. `$(wildcard PATTERN...)' Find file names matching a shell file name pattern (_not_ a `%' pattern). Note: The Function `wildcard'. `$(error TEXT...)' When this function is evaluated, `make' generates a fatal error with the message TEXT. Note: Functions That Control Make. `$(warning TEXT...)' When this function is evaluated, `make' generates a warning with the message TEXT. Note: Functions That Control Make. `$(shell COMMAND)' Execute a shell command and return its output. Note: The `shell' Function. `$(origin VARIABLE)' Return a string describing how the `make' variable VARIABLE was defined. Note: The `origin' Function. `$(foreach VAR,WORDS,TEXT)' Evaluate TEXT with VAR bound to each word in WORDS, and concatenate the results. Note: The `foreach' Function. `$(call VAR,PARAM,...)' Evaluate the variable VAR replacing any references to `$(1)', `$(2)' with the first, second, etc. PARAM values. Note: The `call' 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 member named is used (Note: Archives). `$^' `$+' The names of all the prerequisites, with spaces between them. For prerequisites which are archive members, only the member named 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.). `$(@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'. Note: The Variable `MAKEFILES'. `VPATH' Directory search path for files not found in the current directory. Note: `VPATH' Search Path for All Prerequisites. `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. Note: Command Execution. `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'. Note: MAKESHELL variable. `MAKE' The name with which `make' was invoked. Using this variable in commands has special meaning. Note: How the `MAKE' Variable Works. `MAKELEVEL' The number of levels of recursion (sub-`make's). Note: Variables/Recursion. `MAKEFLAGS' The flags given to `make'. You can set this in the environment or a makefile to set flags. Note: Communicating Options to a Sub-`make'. 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'. Note: Arguments to Specify the 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'. Note: Recursive Use of `make'. `SUFFIXES' The default list of suffixes before `make' reads any makefiles. `.LIBPATTERNS' Defines the naming of the libraries `make' searches for, and their order. Note: Directory Search for Link Libraries. automatically generated by info2www version 1.2.2.9 |