home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 4 / FreshFish_May-June1994.bin / gnu / info / make.info-7 (.txt) < prev    next >
GNU Info File  |  1994-02-21  |  17KB  |  424 lines

  1. This is Info file make.info, produced by Makeinfo-1.54 from the input
  2. file ./make.texinfo.
  3.    This file documents the GNU Make utility, which determines
  4. automatically which pieces of a large program need to be recompiled,
  5. and issues the commands to recompile them.
  6.    This is Edition 0.45, last updated 14 December 1993, of `The GNU
  7. Make Manual', for `make', Version 3.70 Beta.
  8.    Copyright (C) 1988, '89, '90, '91, '92, '93 Free Software
  9. Foundation, Inc.
  10.    Permission is granted to make and distribute verbatim copies of this
  11. manual provided the copyright notice and this permission notice are
  12. preserved on all copies.
  13.    Permission is granted to copy and distribute modified versions of
  14. this manual under the conditions for verbatim copying, provided that
  15. the entire resulting derived work is distributed under the terms of a
  16. permission notice identical to this one.
  17.    Permission is granted to copy and distribute translations of this
  18. manual into another language, under the above conditions for modified
  19. versions, except that this permission notice may be stated in a
  20. translation approved by the Free Software Foundation.
  21. File: make.info,  Node: Quick Reference,  Next: Complex Makefile,  Prev: Makefile Conventions,  Up: Top
  22. Quick Reference
  23. ***************
  24.    This appendix summarizes the directives, text manipulation functions,
  25. and special variables which GNU `make' understands.  *Note Special
  26. Targets::, *Note Catalogue of Implicit Rules: Catalogue of Rules, and
  27. *Note Summary of Options: Options Summary, for other summaries.
  28.    Here is a summary of the directives GNU `make' recognizes:
  29. `define VARIABLE'
  30. `endef'
  31.      Define a multi-line, recursively-expanded variable.
  32.      *Note Sequences::.
  33. `ifdef VARIABLE'
  34. `ifndef VARIABLE'
  35. `ifeq (A,B)'
  36. `ifeq "A" "B"'
  37. `ifeq 'A' 'B''
  38. `ifneq (A,B)'
  39. `ifneq "A" "B"'
  40. `ifneq 'A' 'B''
  41. `else'
  42. `endif'
  43.      Conditionally evaluate part of the makefile.
  44.      *Note Conditionals::.
  45. `include FILE'
  46.      Include another makefile.
  47.      *Note Including Other Makefiles: Include.
  48. `override VARIABLE = VALUE'
  49. `override VARIABLE := VALUE'
  50. `override VARIABLE += VALUE'
  51. `override define VARIABLE'
  52. `endef'
  53.      Define a variable, overriding any previous definition, even one
  54.      from the command line.
  55.      *Note The `override' Directive: Override Directive.
  56. `export'
  57.      Tell `make' to export all variables to child processes by default.
  58.      *Note Communicating Variables to a Sub-`make': Variables/Recursion.
  59. `export VARIABLE'
  60. `export VARIABLE = VALUE'
  61. `export VARIABLE := VALUE'
  62. `export VARIABLE += VALUE'
  63. `unexport VARIABLE'
  64.      Tell `make' whether or not to export a particular variable to child
  65.      processes.
  66.      *Note Communicating Variables to a Sub-`make': Variables/Recursion.
  67. `vpath PATTERN PATH'
  68.      Specify a search path for files matching a `%' pattern.
  69.      *Note The `vpath' Directive: Selective Search.
  70. `vpath PATTERN'
  71.      Remove all search paths previously specified for PATTERN.
  72. `vpath'
  73.      Remove all search paths previously specified in any `vpath'
  74.      directive.
  75.    Here is a summary of the text manipulation functions (*note
  76. Functions::.):
  77. `$(subst FROM,TO,TEXT)'
  78.      Replace FROM with TO in TEXT.
  79.      *Note Functions for String Substitution and Analysis: Text
  80.      Functions.
  81. `$(patsubst PATTERN,REPLACEMENT,TEXT)'
  82.      Replace words matching PATTERN with REPLACEMENT in TEXT.
  83.      *Note Functions for String Substitution and Analysis: Text
  84.      Functions.
  85. `$(strip STRING)'
  86.      Remove excess whitespace characters from STRING.
  87.      *Note Functions for String Substitution and Analysis: Text
  88.      Functions.
  89. `$(findstring FIND,TEXT)'
  90.      Locate FIND in TEXT.
  91.      *Note Functions for String Substitution and Analysis: Text
  92.      Functions.
  93. `$(filter PATTERN...,TEXT)'
  94.      Select words in TEXT that match one of the PATTERN words.
  95.      *Note Functions for String Substitution and Analysis: Text
  96.      Functions.
  97. `$(filter-out PATTERN...,TEXT)'
  98.      Select words in TEXT that *do not* match any of the PATTERN words.
  99.      *Note Functions for String Substitution and Analysis: Text
  100.      Functions.
  101. `$(sort LIST)'
  102.      Sort the words in LIST lexicographically, removing duplicates.
  103.      *Note Functions for String Substitution and Analysis: Text
  104.      Functions.
  105. `$(dir NAMES...)'
  106.      Extract the directory part of each file name.
  107.      *Note Functions for File Names: Filename Functions.
  108. `$(notdir NAMES...)'
  109.      Extract the non-directory part of each file name.
  110.      *Note Functions for File Names: Filename Functions.
  111. `$(suffix NAMES...)'
  112.      Extract the suffix (the last `.' and following characters) of each
  113.      file name.
  114.      *Note Functions for File Names: Filename Functions.
  115. `$(basename NAMES...)'
  116.      Extract the base name (name without suffix) of each file name.
  117.      *Note Functions for File Names: Filename Functions.
  118. `$(addsuffix SUFFIX,NAMES...)'
  119.      Append SUFFIX to each word in NAMES.
  120.      *Note Functions for File Names: Filename Functions.
  121. `$(addprefix PREFIX,NAMES...)'
  122.      Prepend PREFIX to each word in NAMES.
  123.      *Note Functions for File Names: Filename Functions.
  124. `$(join LIST1,LIST2)'
  125.      Join two parallel lists of words.
  126.      *Note Functions for File Names: Filename Functions.
  127. `$(word N,TEXT)'
  128.      Extract the Nth word (one-origin) of TEXT.
  129.      *Note Functions for File Names: Filename Functions.
  130. `$(words TEXT)'
  131.      Count the number of words in TEXT.
  132.      *Note Functions for File Names: Filename Functions.
  133. `$(firstword NAMES...)'
  134.      Extract the first word of NAMES.
  135.      *Note Functions for File Names: Filename Functions.
  136. `$(wildcard PATTERN...)'
  137.      Find file names matching a shell file name pattern (*not* a `%'
  138.      pattern).
  139.      *Note The Function `wildcard': Wildcard Function.
  140. `$(shell COMMAND)'
  141.      Execute a shell command and return its output.
  142.      *Note The `shell' Function: Shell Function.
  143. `$(origin VARIABLE)'
  144.      Return a string describing how the `make' variable VARIABLE was
  145.      defined.
  146.      *Note The `origin' Function: Origin Function.
  147. `$(foreach VAR,WORDS,TEXT)'
  148.      Evaluate TEXT with VAR bound to each word in WORDS, and
  149.      concatenate the results.
  150.      *Note The `foreach' Function: Foreach Function.
  151.    Here is a summary of the automatic variables.  *Note Automatic
  152. Variables: Automatic, for full information.
  153.      The file name of the target.
  154.      The target member name, when the target is an archive member.
  155.      The name of the first dependency.
  156.      The names of all the dependencies that are newer than the target,
  157.      with spaces between them.  For dependencies which are archive
  158.      members, only the member named is used (*note Archives::.).
  159.      The names of all the dependencies, with spaces between them.  For
  160.      dependencies which are archive members, only the member named is
  161.      used (*note Archives::.).
  162.      The stem with which an implicit rule matches (*note How Patterns
  163.      Match: Pattern Match.).
  164. `$(@D)'
  165. `$(@F)'
  166.      The directory part and the file-within-directory part of `$@'.
  167. `$(*D)'
  168. `$(*F)'
  169.      The directory part and the file-within-directory part of `$*'.
  170. `$(%D)'
  171. `$(%F)'
  172.      The directory part and the file-within-directory part of `$%'.
  173. `$(<D)'
  174. `$(<F)'
  175.      The directory part and the file-within-directory part of `$<'.
  176. `$(^D)'
  177. `$(^F)'
  178.      The directory part and the file-within-directory part of `$^'.
  179. `$(?D)'
  180. `$(?F)'
  181.      The directory part and the file-within-directory part of `$?'.
  182.    These variables are used specially by GNU `make':
  183. `MAKEFILES'
  184.      Makefiles to be read on every invocation of `make'.
  185.      *Note The Variable `MAKEFILES': MAKEFILES Variable.
  186. `VPATH'
  187.      Directory search path for files not found in the current directory.
  188.      *Note `VPATH' Search Path for All Dependencies: General Search.
  189. `SHELL'
  190.      The name of the system default command interpreter, usually
  191.      `/bin/sh'.  You can set `SHELL' in the makefile to change the
  192.      shell used to run commands.  *Note Command Execution: Execution.
  193. `MAKE'
  194.      The name with which `make' was invoked.  Using this variable in
  195.      commands has special meaning.  *Note How the `MAKE' Variable
  196.      Works: MAKE Variable.
  197. `MAKELEVEL'
  198.      The number of levels of recursion (sub-`make's).
  199.      *Note Variables/Recursion::.
  200. `MAKEFLAGS'
  201. `