\entry{POSIX}{1}{POSIX} \entry{IEEE Standard 1003.2}{1}{IEEE Standard 1003.2} \entry{standards conformance}{1}{standards conformance} \entry{reporting bugs}{1}{reporting bugs} \entry{bugs, reporting}{1}{bugs, reporting} \entry{problems and bugs, reporting}{1}{problems and bugs, reporting} \entry{makefile}{3}{makefile} \entry{recompilation}{3}{recompilation} \entry{editor}{3}{editor} \entry{rule, introduction to}{3}{rule, introduction to} \entry{makefile rule parts}{3}{makefile rule parts} \entry{parts of makefile rule}{3}{parts of makefile rule} \entry{targets, introduction to}{3}{targets, introduction to} \entry{prerequisites, introduction to}{3}{prerequisites, introduction to} \entry{commands, introduction to}{3}{commands, introduction to} \entry{tabs in rules}{3}{tabs in rules} \entry{simple makefile}{4}{simple makefile} \entry{makefile, simple}{4}{makefile, simple} \entry{continuation lines}{4}{continuation lines} \entry{{\tt\indexbackslash } (backslash), for continuation lines}{4}{\code {{\tt\rawbackslashxx }} (backslash), for continuation lines} \entry{backslash ({\tt\indexbackslash }), for continuation lines}{4}{backslash (\code {{\tt\rawbackslashxx }}), for continuation lines} \entry{quoting newline, in makefile}{4}{quoting newline, in makefile} \entry{newline, quoting, in makefile}{4}{newline, quoting, in makefile} \entry{shell command}{5}{shell command} \entry{clean target}{5}{\code {clean} target} \entry{rm (shell command)}{5}{\code {rm} (shell command)} \entry{processing a makefile}{5}{processing a makefile} \entry{makefile, how make processes}{5}{makefile, how \code {make} processes} \entry{default goal}{5}{default goal} \entry{goal, default}{5}{goal, default} \entry{goal}{5}{goal} \entry{relinking}{5}{relinking} \entry{variables}{6}{variables} \entry{simplifying with variables}{6}{simplifying with variables} \entry{objects}{6}{\code {objects}} \entry{OBJECTS}{6}{\code {OBJECTS}} \entry{objs}{6}{\code {objs}} \entry{OBJS}{6}{\code {OBJS}} \entry{obj}{6}{\code {obj}} \entry{OBJ}{6}{\code {OBJ}} \entry{deducing commands (implicit rules)}{7}{deducing commands (implicit rules)} \entry{implicit rule, introduction to}{7}{implicit rule, introduction to} \entry{rule, implicit, introduction to}{7}{rule, implicit, introduction to} \entry{combining rules by prerequisite}{7}{combining rules by prerequisite} \entry{cleaning up}{8}{cleaning up} \entry{removing, to clean up}{8}{removing, to clean up} \entry{clean target}{8}{\code {clean} target} \entry{makefile, how to write}{9}{makefile, how to write} \entry{rule, explicit, definition of}{9}{rule, explicit, definition of} \entry{explicit rule, definition of}{9}{explicit rule, definition of} \entry{rule, implicit, definition of}{9}{rule, implicit, definition of} \entry{implicit rule, definition of}{9}{implicit rule, definition of} \entry{variable definition}{9}{variable definition} \entry{directive}{9}{directive} \entry{comments, in makefile}{9}{comments, in makefile} \entry{# (comments), in makefile}{9}{\code {#} (comments), in makefile} \entry{makefile name}{10}{makefile name} \entry{name of makefile}{10}{name of makefile} \entry{default makefile name}{10}{default makefile name} \entry{file name of makefile}{10}{file name of makefile} \entry{README}{10}{\code {README}} \entry{-f}{10}{\code {-f}} \entry{--file}{10}{\code {--file}} \entry{--makefile}{10}{\code {--makefile}} \entry{specifying makefile name}{10}{specifying makefile name} \entry{makefile name, how to specify}{10}{makefile name, how to specify} \entry{name of makefile, how to specify}{10}{name of makefile, how to specify} \entry{file name of makefile, how to specify}{10}{file name of makefile, how to specify} \entry{including other makefiles}{10}{including other makefiles} \entry{makefile, including}{10}{makefile, including} \entry{shell file name pattern (in include)}{10}{shell file name pattern (in \code {include})} \entry{shell wildcards (in include)}{10}{shell wildcards (in \code {include})} \entry{wildcard, in include}{10}{wildcard, in \code {include}} \entry{prerequisites, automatic generation}{11}{prerequisites, automatic generation} \entry{automatic generation of prerequisites}{11}{automatic generation of prerequisites} \entry{generating prerequisites automatically}{11}{generating prerequisites automatically} \entry{-I}{11}{\code {-I}} \entry{--include-dir}{11}{\code {--include-dir}} \entry{included makefiles, default directories}{11}{included makefiles, default directories} \entry{default directories for included makefiles}{11}{default directories for included makefiles} \entry{makefile, and MAKEFILES variable}{11}{makefile, and \code {MAKEFILES} variable} \entry{including (MAKEFILES variable)}{11}{including (\code {MAKEFILES} variable)} \entry{recursion, and MAKEFILES variable}{11}{recursion, and \code {MAKEFILES} variable} \entry{makefiles, and MAKEFILE_LIST variable}{12}{makefiles, and \code {MAKEFILE_LIST} variable} \entry{including (MAKEFILE_LIST variable)}{12}{including (\code {MAKEFILE_LIST} variable)} \entry{makefiles, and special variables}{12}{makefiles, and special variables} \entry{special variables}{12}{special variables} \entry{updating makefiles}{12}{updating makefiles} \entry{remaking makefiles}{12}{remaking makefiles} \entry{makefile, remaking of}{12}{makefile, remaking of} \entry{overriding makefiles}{14}{overriding makefiles} \entry{makefile, overriding}{14}{makefile, overriding} \entry{match-anything rule, used to override}{14}{match-anything rule, used to override} \entry{reading makefiles}{14}{reading makefiles} \entry{makefile, parsing}{14}{makefile, parsing} \entry{+=, expansion}{15}{+=, expansion} \entry{=, expansion}{15}{=, expansion} \entry{?=, expansion}{15}{?=, expansion} \entry{+=, expansion}{15}{+=, expansion} \entry{define, expansion}{15}{define, expansion} \entry{ifdef, expansion}{15}{ifdef, expansion} \entry{ifeq, expansion}{15}{ifeq, expansion} \entry{ifndef, expansion}{15}{ifndef, expansion} \entry{ifneq, expansion}{15}{ifneq, expansion} \entry{target, expansion}{15}{target, expansion} \entry{prerequisite, expansion}{15}{prerequisite, expansion} \entry{implicit rule, expansion}{15}{implicit rule, expansion} \entry{pattern rule, expansion}{15}{pattern rule, expansion} \entry{explicit rule, expansion}{15}{explicit rule, expansion} \entry{writing rules}{17}{writing rules} \entry{rule, how to write}{17}{rule, how to write} \entry{target}{17}{target} \entry{prerequisite}{17}{prerequisite} \entry{default goal}{17}{default goal} \entry{goal, default}{17}{goal, default} \entry{rule syntax}{17}{rule syntax} \entry{syntax of rules}{17}{syntax of rules} \entry{targets}{17}{targets} \entry{rule targets}{17}{rule targets} \entry{commands}{17}{commands} \entry{tab character (in commands)}{17}{tab character (in commands)} \entry{dollar sign ($), in rules}{17}{dollar sign (\code {$}), in rules} \entry{$, in rules}{17}{\code {$}, in rules} \entry{rule, and $}{17}{rule, and \code {$}} \entry{prerequisites}{17}{prerequisites} \entry{rule prerequisites}{17}{rule prerequisites} \entry{prerequisite types}{18}{prerequisite types} \entry{types of prerequisites}{18}{types of prerequisites} \entry{prerequisites, normal}{18}{prerequisites, normal} \entry{normal prerequisites}{18}{normal prerequisites} \entry{prerequisites, order-only}{18}{prerequisites, order-only} \entry{order-only prerequisites}{18}{order-only prerequisites} \entry{wildcard}{18}{wildcard} \entry{file name with wildcards}{18}{file name with wildcards} \entry{globbing (wildcards)}{18}{globbing (wildcards)} \entry{* (wildcard character)}{18}{\code {*} (wildcard character)} \entry{? (wildcard character)}{18}{\code {?} (wildcard character)} \entry{[...{}] (wildcard characters)}{18}{\code {[\dots {}]} (wildcard characters)} \entry{~ (tilde)}{18}{\code {~} (tilde)} \entry{tilde (~)}{18}{tilde (\code {~})} \entry{home directory}{18}{home directory} \entry{rm (shell command)}{19}{\code {rm} (shell command)} \entry{print target}{19}{\code {print} target} \entry{lpr (shell command)}{19}{\code {lpr} (shell command)} \entry{touch (shell command)}{19}{\code {touch} (shell command)} \entry{wildcard pitfalls}{19}{wildcard pitfalls} \entry{pitfalls of wildcards}{19}{pitfalls of wildcards} \entry{mistakes with wildcards}{19}{mistakes with wildcards} \entry{errors with wildcards}{19}{errors with wildcards} \entry{problems with wildcards}{19}{problems with wildcards} \entry{wildcards and MS-DOS/MS-Windows backslashes}{19}{wildcards and MS-DOS/MS-Windows backslashes} \entry{backslashes in pathnames and wildcard expansion}{19}{backslashes in pathnames and wildcard expansion} \entry{vpath}{20}{vpath} \entry{search path for prerequisites (VPATH)}{20}{search path for prerequisites (\code {VPATH})} \entry{directory search (VPATH)}{20}{directory search (\code {VPATH})} \entry{%, quoting in vpath}{22}{\code {%}, quoting in \code {vpath}} \entry{%, quoting with {\tt\indexbackslash } (backslash)}{22}{\code {%}, quoting with \code {{\tt\rawbackslashxx }} (backslash)} \entry{{\tt\indexbackslash } (backslash), to quote %}{22}{\code {{\tt\rawbackslashxx }} (backslash), to quote \code {%}} \entry{backslash ({\tt\indexbackslash }), to quote %}{22}{backslash (\code {{\tt\rawbackslashxx }}), to quote \code {%}} \entry{quoting %, in vpath}{22}{quoting \code {%}, in \code {vpath}} \entry{algorithm for directory search}{22}{algorithm for directory search} \entry{directory search algorithm}{22}{directory search algorithm} \entry{traditional directory search (GPATH)}{23}{traditional directory search (GPATH)} \entry{directory search, traditional (GPATH)}{23}{directory search, traditional (GPATH)} \entry{shell command, and directory search}{23}{shell command, and directory search} \entry{directory search (VPATH), and shell commands}{23}{directory search (\code {VPATH}), and shell commands} \entry{VPATH, and implicit rules}{23}{\code {VPATH}, and implicit rules} \entry{directory search (VPATH), and implicit rules}{23}{directory search (\code {VPATH}), and implicit rules} \entry{search path for prerequisites (VPATH), and implicit rules}{23}{search path for prerequisites (\code {VPATH}), and implicit rules} \entry{implicit rule, and directory search}{23}{implicit rule, and directory search} \entry{implicit rule, and VPATH}{23}{implicit rule, and \code {VPATH}} \entry{rule, implicit, and directory search}{23}{rule, implicit, and directory search} \entry{rule, implicit, and VPATH}{23}{rule, implicit, and \code {VPATH}} \entry{link libraries, and directory search}{24}{link libraries, and directory search} \entry{libraries for linking, directory search}{24}{libraries for linking, directory search} \entry{directory search (VPATH), and link libraries}{24}{directory search (\code {VPATH}), and link libraries} \entry{VPATH, and link libraries}{24}{\code {VPATH}, and link libraries} \entry{search path for prerequisites (VPATH), and link libraries}{24}{search path for prerequisites (\code {VPATH}), and link libraries} \entry{-l (library search)}{24}{\code {-l} (library search)} \entry{link libraries, patterns matching}{24}{link libraries, patterns matching} \entry{.LIBPATTERNS, and link libraries}{24}{\code {.LIBPATTERNS}, and link libraries} \entry{phony targets}{24}{phony targets} \entry{targets, phony}{24}{targets, phony} \entry{targets without a file}{24}{targets without a file} \entry{rm (shell command)}{25}{\code {rm} (shell command)} \entry{force targets}{27}{force targets} \entry{targets, force}{27}{targets, force} \entry{FORCE}{27}{\code {FORCE}} \entry{rule, no commands or prerequisites}{27}{rule, no commands or prerequisites} \entry{empty targets}{27}{empty targets} \entry{targets, empty}{27}{targets, empty} \entry{recording events with empty targets}{27}{recording events with empty targets} \entry{print target}{27}{\code {print} target} \entry{lpr (shell command)}{27}{\code {lpr} (shell command)} \entry{touch (shell command)}{27}{\code {touch} (shell command)} \entry{special targets}{27}{special targets} \entry{built-in special targets}{27}{built-in special targets} \entry{targets, built-in special}{27}{targets, built-in special} \entry{precious targets}{28}{precious targets} \entry{preserving with .PRECIOUS}{28}{preserving with \code {.PRECIOUS}} \entry{intermediate targets, explicit}{28}{intermediate targets, explicit} \entry{secondary targets}{28}{secondary targets} \entry{preserving with .SECONDARY}{28}{preserving with \code {.SECONDARY}} \entry{removing targets on failure}{28}{removing targets on failure} \entry{parallel execution, overriding}{29}{parallel execution, overriding} \entry{multiple targets}{30}{multiple targets} \entry{several targets in a rule}{30}{several targets in a rule} \entry{targets, multiple}{30}{targets, multiple} \entry{rule, with multiple targets}{30}{rule, with multiple targets} \entry{multiple rules for one target}{30}{multiple rules for one target} \entry{several rules for one target}{30}{several rules for one target} \entry{rule, multiple for one target}{30}{rule, multiple for one target} \entry{target, multiple rules for one}{30}{target, multiple rules for one} \entry{static pattern rule}{31}{static pattern rule} \entry{rule, static pattern}{31}{rule, static pattern} \entry{pattern rules, static (not implicit)}{31}{pattern rules, static (not implicit)} \entry{varying prerequisites}{31}{varying prerequisites} \entry{prerequisites, varying (static pattern)}{31}{prerequisites, varying (static pattern)} \entry{static pattern rule, syntax of}{31}{static pattern rule, syntax of} \entry{pattern rules, static, syntax of}{31}{pattern rules, static, syntax of} \entry{target pattern, static (not implicit)}{31}{target pattern, static (not implicit)} \entry{stem}{31}{stem} \entry{prerequisite pattern, static (not implicit)}{32}{prerequisite pattern, static (not implicit)} \entry{%, quoting in static pattern}{32}{\code {%}, quoting in static pattern} \entry{%, quoting with {\tt\indexbackslash } (backslash)}{32}{\code {%}, quoting with \code {{\tt\rawbackslashxx }} (backslash)} \entry{{\tt\indexbackslash } (backslash), to quote %}{32}{\code {{\tt\rawbackslashxx }} (backslash), to quote \code {%}} \entry{backslash ({\tt\indexbackslash }), to quote %}{32}{backslash (\code {{\tt\rawbackslashxx }}), to quote \code {%}} \entry{quoting %, in static pattern}{32}{quoting \code {%}, in static pattern} \entry{rule, static pattern versus implicit}{33}{rule, static pattern versus implicit} \entry{static pattern rule, versus implicit}{33}{static pattern rule, versus implicit} \entry{double-colon rules}{33}{double-colon rules} \entry{rule, double-colon (::)}{33}{rule, double-colon (\code {::})} \entry{multiple rules for one target (::)}{33}{multiple rules for one target (\code {::})} \entry{:: rules (double-colon)}{33}{\code {::} rules (double-colon)} \entry{prerequisites, automatic generation}{34}{prerequisites, automatic generation} \entry{automatic generation of prerequisites}{34}{automatic generation of prerequisites} \entry{generating prerequisites automatically}{34}{generating prerequisites automatically} \entry{#include}{34}{\code {#include}} \entry{-M (to compiler)}{34}{\code {-M} (to compiler)} \entry{make depend}{34}{\code {make depend}} \entry{-e (shell flag)}{34}{\code {-e} (shell flag)} \entry{-MM (to GNU compiler)}{34}{\code {-MM} (to GNU compiler)} \entry{sed (shell command)}{34}{\code {sed} (shell command)} \entry{.d}{35}{\code {.d}} \entry{commands, how to write}{37}{commands, how to write} \entry{rule commands}{37}{rule commands} \entry{writing rule commands}{37}{writing rule commands} \entry{comments, in commands}{37}{comments, in commands} \entry{commands, comments in}{37}{commands, comments in} \entry{# (comments), in commands}{37}{\code {#} (comments), in commands} \entry{echoing of commands}{37}{echoing of commands} \entry{silent operation}{37}{silent operation} \entry{@ (in commands)}{37}{\code {@} (in commands)} \entry{commands, echoing}{37}{commands, echoing} \entry{printing of commands}{37}{printing of commands} \entry{-n}{37}{\code {-n}} \entry{--just-print}{37}{\code {--just-print}} \entry{--dry-run}{37}{\code {--dry-run}} \entry{--recon}{37}{\code {--recon}} \entry{-s}{37}{\code {-s}} \entry{--silent}{37}{\code {--silent}} \entry{--quiet}{37}{\code {--quiet}} \entry{commands, execution}{37}{commands, execution} \entry{execution, of commands}{37}{execution, of commands} \entry{shell command, execution}{37}{shell command, execution} \entry{cd (shell command)}{37}{\code {cd} (shell command)} \entry{commands, backslash ({\tt\indexbackslash }) in}{38}{commands, backslash (\code {{\tt\rawbackslashxx }}) in} \entry{commands, quoting newlines in}{38}{commands, quoting newlines in} \entry{backslash ({\tt\indexbackslash }), in commands}{38}{backslash (\code {{\tt\rawbackslashxx }}), in commands} \entry{{\tt\indexbackslash } (backslash), in commands}{38}{\code {{\tt\rawbackslashxx }} (backslash), in commands} \entry{quoting newline, in commands}{38}{quoting newline, in commands} \entry{newline, quoting, in commands}{38}{newline, quoting, in commands} \entry{SHELL, MS-DOS specifics}{38}{\code {SHELL}, MS-DOS specifics} \entry{environment, SHELL in}{38}{environment, \code {SHELL} in} \entry{commands, execution in parallel}{39}{commands, execution in parallel} \entry{parallel execution}{39}{parallel execution} \entry{execution, in parallel}{39}{execution, in parallel} \entry{job slots}{39}{job slots} \entry{-j}{39}{\code {-j}} \entry{--jobs}{39}{\code {--jobs}} \entry{broken pipe}{39}{broken pipe} \entry{standard input}{39}{standard input} \entry{load average}{39}{load average} \entry{limiting jobs based on load}{39}{limiting jobs based on load} \entry{jobs, limiting based on load}{39}{jobs, limiting based on load} \entry{-l (load average)}{39}{\code {-l} (load average)} \entry{--max-load}{39}{\code {--max-load}} \entry{--load-average}{39}{\code {--load-average}} \entry{errors (in commands)}{40}{errors (in commands)} \entry{commands, errors in}{40}{commands, errors in} \entry{exit status (errors)}{40}{exit status (errors)} \entry{- (in commands)}{40}{\code {-} (in commands)} \entry{rm (shell command)}{40}{\code {rm} (shell command)} \entry{-i}{40}{\code {-i}} \entry{--ignore-errors}{40}{\code {--ignore-errors}} \entry{-k}{40}{\code {-k}} \entry{--keep-going}{40}{\code {--keep-going}} \entry{Emacs (M-x compile)}{41}{Emacs (\code {M-x compile})} \entry{deletion of target files}{41}{deletion of target files} \entry{removal of target files}{41}{removal of target files} \entry{target, deleting on error}{41}{target, deleting on error} \entry{interrupt}{41}{interrupt} \entry{signal}{41}{signal} \entry{deletion of target files}{41}{deletion of target files} \entry{removal of target files}{41}{removal of target files} \entry{target, deleting on interrupt}{41}{target, deleting on interrupt} \entry{killing (interruption)}{41}{killing (interruption)} \entry{recursion}{41}{recursion} \entry{subdirectories, recursion for}{41}{subdirectories, recursion for} \entry{-C}{42}{\code {-C}} \entry{--directory}{42}{\code {--directory}} \entry{recursion, and MAKE variable}{42}{recursion, and \code {MAKE} variable} \entry{cd (shell command)}{42}{\code {cd} (shell command)} \entry{+, and commands}{42}{+, and commands} \entry{-t, and recursion}{42}{\code {-t}, and recursion} \entry{recursion, and -t}{42}{recursion, and \code {-t}} \entry{--touch, and recursion}{42}{\code {--touch}, and recursion} \entry{sub-make}{42}{sub-\code {make}} \entry{environment, and recursion}{42}{environment, and recursion} \entry{exporting variables}{42}{exporting variables} \entry{variables, environment}{42}{variables, environment} \entry{variables, exporting}{42}{variables, exporting} \entry{recursion, and environment}{42}{recursion, and environment} \entry{recursion, and variables}{42}{recursion, and variables} \entry{compatibility in exporting}{44}{compatibility in exporting} \entry{recursion, level of}{44}{recursion, level of} \entry{options, and recursion}{44}{options, and recursion} \entry{recursion, and options}{44}{recursion, and options} \entry{command line variable definitions, and recursion}{44}{command line variable definitions, and recursion} \entry{variables, command line, and recursion}{44}{variables, command line, and recursion} \entry{recursion, and command line variable definitions}{44}{recursion, and command line variable definitions} \entry{-C, and recursion}{44}{\code {-C}, and recursion} \entry{-f, and recursion}{44}{\code {-f}, and recursion} \entry{-o, and recursion}{44}{\code {-o}, and recursion} \entry{-W, and recursion}{44}{\code {-W}, and recursion} \entry{--directory, and recursion}{44}{\code {--directory}, and recursion} \entry{--file, and recursion}{44}{\code {--file}, and recursion} \entry{--old-file, and recursion}{44}{\code {--old-file}, and recursion} \entry{--assume-old, and recursion}{44}{\code {--assume-old}, and recursion} \entry{--assume-new, and recursion}{44}{\code {--assume-new}, and recursion} \entry{--new-file, and recursion}{44}{\code {--new-file}, and recursion} \entry{recursion, and -C}{44}{recursion, and \code {-C}} \entry{recursion, and -f}{44}{recursion, and \code {-f}} \entry{recursion, and -o}{44}{recursion, and \code {-o}} \entry{recursion, and -W}{44}{recursion, and \code {-W}} \entry{-j, and recursion}{44}{\code {-j}, and recursion} \entry{--jobs, and recursion}{44}{\code {--jobs}, and recursion} \entry{recursion, and -j}{44}{recursion, and \code {-j}} \entry{job slots, and recursion}{44}{job slots, and recursion} \entry{Arg list too long}{45}{Arg list too long} \entry{E2BIG}{45}{E2BIG} \entry{POSIX.2}{45}{POSIX.2} \entry{setting options from environment}{45}{setting options from environment} \entry{options, setting from environment}{45}{options, setting from environment} \entry{setting options in makefiles}{45}{setting options in makefiles} \entry{options, setting in makefiles}{45}{options, setting in makefiles} \entry{directories, printing them}{46}{directories, printing them} \entry{printing directories}{46}{printing directories} \entry{recursion, and printing directories}{46}{recursion, and printing directories} \entry{-C, and -w}{46}{\code {-C}, and \code {-w}} \entry{--directory, and --print-directory}{46}{\code {--directory}, and \code {--print-directory}} \entry{recursion, and -w}{46}{recursion, and \code {-w}} \entry{-w, and -C}{46}{\code {-w}, and \code {-C}} \entry{-w, and recursion}{46}{\code {-w}, and recursion} \entry{--print-directory, and --directory}{46}{\code {--print-directory}, and \code {--directory}} \entry{--print-directory, and recursion}{46}{\code {--print-directory}, and recursion} \entry{--no-print-directory}{46}{\code {--no-print-directory}} \entry{--print-directory, disabling}{46}{\code {--print-directory}, disabling} \entry{-w, disabling}{46}{\code {-w}, disabling} \entry{sequences of commands}{46}{sequences of commands} \entry{commands, sequences of}{46}{commands, sequences of} \entry{yacc}{46}{\code {yacc}} \entry{@, and define}{47}{@, and \code {define}} \entry{-, and define}{47}{-, and \code {define}} \entry{+, and define}{47}{+, and \code {define}} \entry{empty commands}{47}{empty commands} \entry{commands, empty}{47}{commands, empty} \entry{variable}{49}{variable} \entry{value}{49}{value} \entry{recursive variable expansion}{49}{recursive variable expansion} \entry{simple variable expansion}{49}{simple variable expansion} \entry{macro}{49}{macro} \entry{variables, how to reference}{49}{variables, how to reference} \entry{reference to variables}{49}{reference to variables} \entry{$, in variable reference}{49}{\code {$}, in variable reference} \entry{dollar sign ($), in variable reference}{49}{dollar sign (\code {$}), in variable reference} \entry{flavors of variables}{50}{flavors of variables} \entry{recursive variable expansion}{50}{recursive variable expansion} \entry{variables, flavors}{50}{variables, flavors} \entry{recursively expanded variables}{50}{recursively expanded variables} \entry{variables, recursively expanded}{50}{variables, recursively expanded} \entry{=}{50}{=} \entry{loops in variable expansion}{50}{loops in variable expansion} \entry{variables, loops in expansion}{50}{variables, loops in expansion} \entry{simply expanded variables}{50}{simply expanded variables} \entry{variables, simply expanded}{50}{variables, simply expanded} \entry{:=}{50}{:=} \entry{spaces, in variable values}{51}{spaces, in variable values} \entry{whitespace, in variable values}{51}{whitespace, in variable values} \entry{variables, spaces in values}{51}{variables, spaces in values} \entry{conditional variable assignment}{52}{conditional variable assignment} \entry{variables, conditional assignment}{52}{variables, conditional assignment} \entry{?=}{52}{?=} \entry{reference to variables}{52}{reference to variables} \entry{modified variable reference}{52}{modified variable reference} \entry{substitution variable reference}{52}{substitution variable reference} \entry{variables, modified reference}{52}{variables, modified reference} \entry{variables, substitution reference}{52}{variables, substitution reference} \entry{variables, substituting suffix in}{52}{variables, substituting suffix in} \entry{suffix, substituting in variables}{52}{suffix, substituting in variables} \entry{nested variable reference}{53}{nested variable reference} \entry{computed variable name}{53}{computed variable name} \entry{variables, computed names}{53}{variables, computed names} \entry{variables, nested references}{53}{variables, nested references} \entry{variables, $ in name}{53}{variables, \samp {$} in name} \entry{$, in variable name}{53}{\code {$}, in variable name} \entry{dollar sign ($), in variable name}{53}{dollar sign (\code {$}), in variable name} \entry{variables, how they get their values}{55}{variables, how they get their values} \entry{value, how a variable gets it}{55}{value, how a variable gets it} \entry{setting variables}{55}{setting variables} \entry{variables, setting}{55}{variables, setting} \entry{=}{55}{=} \entry{:=}{55}{:=} \entry{?=}{55}{?=} \entry{+=}{56}{+=} \entry{appending to variables}{56}{appending to variables} \entry{variables, appending to}{56}{variables, appending to} \entry{overriding with override}{57}{overriding with \code {override}} \entry{variables, overriding}{57}{variables, overriding} \entry{verbatim variable definition}{58}{verbatim variable definition} \entry{defining variables verbatim}{58}{defining variables verbatim} \entry{variables, defining verbatim}{58}{variables, defining verbatim} \entry{variables, environment}{59}{variables, environment} \entry{environment}{59}{environment} \entry{target-specific variables}{59}{target-specific variables} \entry{variables, target-specific}{59}{variables, target-specific} \entry{pattern-specific variables}{60}{pattern-specific variables} \entry{variables, pattern-specific}{60}{variables, pattern-specific} \entry{conditionals}{61}{conditionals} \entry{functions}{65}{functions} \entry{$, in function call}{65}{\code {$}, in function call} \entry{dollar sign ($), in function call}{65}{dollar sign (\code {$}), in function call} \entry{arguments of functions}{65}{arguments of functions} \entry{functions, syntax of}{65}{functions, syntax of} \entry{functions, for text}{66}{functions, for text} \entry{%, quoting in patsubst}{66}{\code {%}, quoting in \code {patsubst}} \entry{%, quoting with {\tt\indexbackslash } (backslash)}{66}{\code {%}, quoting with \code {{\tt\rawbackslashxx }} (backslash)} \entry{{\tt\indexbackslash } (backslash), to quote %}{66}{\code {{\tt\rawbackslashxx }} (backslash), to quote \code {%}} \entry{backslash ({\tt\indexbackslash }), to quote %}{66}{backslash (\code {{\tt\rawbackslashxx }}), to quote \code {%}} \entry{quoting %, in patsubst}{66}{quoting \code {%}, in \code {patsubst}} \entry{stripping whitespace}{67}{stripping whitespace} \entry{whitespace, stripping}{67}{whitespace, stripping} \entry{spaces, stripping}{67}{spaces, stripping} \entry{searching for strings}{67}{searching for strings} \entry{finding strings}{67}{finding strings} \entry{strings, searching for}{67}{strings, searching for} \entry{filtering words}{67}{filtering words} \entry{words, filtering}{67}{words, filtering} \entry{filtering out words}{67}{filtering out words} \entry{words, filtering out}{67}{words, filtering out} \entry{sorting words}{68}{sorting words} \entry{removing duplicate words}{68}{removing duplicate words} \entry{duplicate words, removing}{68}{duplicate words, removing} \entry{words, removing duplicates}{68}{words, removing duplicates} \entry{word, selecting a}{68}{word, selecting a} \entry{selecting a word}{68}{selecting a word} \entry{words, selecting lists of}{68}{words, selecting lists of} \entry{selecting word lists}{68}{selecting word lists} \entry{words, finding number}{68}{words, finding number} \entry{words, extracting first}{68}{words, extracting first} \entry{functions, for file names}{69}{functions, for file names} \entry{file name functions}{69}{file name functions} \entry{directory part}{69}{directory part} \entry{file name, directory part}{69}{file name, directory part} \entry{file name, nondirectory part}{69}{file name, nondirectory part} \entry{nondirectory part}{69}{nondirectory part} \entry{suffix, function to find}{69}{suffix, function to find} \entry{file name suffix}{69}{file name suffix} \entry{basename}{70}{basename} \entry{file name, basename of}{70}{file name, basename of} \entry{suffix, adding}{70}{suffix, adding} \entry{file name suffix, adding}{70}{file name suffix, adding} \entry{prefix, adding}{70}{prefix, adding} \entry{file name prefix, adding}{70}{file name prefix, adding} \entry{joining lists of words}{70}{joining lists of words} \entry{words, joining lists}{70}{words, joining lists} \entry{wildcard, function}{70}{wildcard, function} \entry{words, iterating over}{71}{words, iterating over} \entry{conditional expansion}{72}{conditional expansion} \entry{functions, user defined}{72}{functions, user defined} \entry{user defined functions}{72}{user defined functions} \entry{variables, unexpanded value}{73}{variables, unexpanded value} \entry{evaluating makefile syntax}{74}{evaluating makefile syntax} \entry{makefile syntax, evaluating}{74}{makefile syntax, evaluating} \entry{variables, origin of}{75}{variables, origin of} \entry{origin of variable}{75}{origin of variable} \entry{commands, expansion}{76}{commands, expansion} \entry{backquotes}{76}{backquotes} \entry{shell command, function for}{76}{shell command, function for} \entry{functions, for controlling make}{77}{functions, for controlling make} \entry{controlling make}{77}{controlling make} \entry{error, stopping on}{77}{error, stopping on} \entry{stopping make}{77}{stopping make} \entry{warnings, printing}{77}{warnings, printing} \entry{printing user warnings}{77}{printing user warnings} \entry{--file}{79}{\code {--file}} \entry{--makefile}{79}{\code {--makefile}} \entry{-f}{79}{\code {-f}} \entry{goal, how to specify}{79}{goal, how to specify} \entry{MAKECMDGOALS}{80}{\code {MAKECMDGOALS}} \entry{all (standard target)}{80}{\code {all} \r {(standard target)}} \entry{clean (standard target)}{80}{\code {clean} \r {(standard target)}} \entry{mostlyclean (standard target)}{80}{\code {mostlyclean} \r {(standard target)}} \entry{distclean (standard target)}{80}{\code {distclean} \r {(standard target)}} \entry{realclean (standard target)}{80}{\code {realclean} \r {(standard target)}} \entry{clobber (standard target)}{80}{\code {clobber} \r {(standard target)}} \entry{install (standard target)}{81}{\code {install} \r {(standard target)}} \entry{print (standard target)}{81}{\code {print} \r {(standard target)}} \entry{tar (standard target)}{81}{\code {tar} \r {(standard target)}} \entry{shar (standard target)}{81}{\code {shar} \r {(standard target)}} \entry{dist (standard target)}{81}{\code {dist} \r {(standard target)}} \entry{TAGS (standard target)}{81}{\code {TAGS} \r {(standard target)}} \entry{check (standard target)}{81}{\code {check} \r {(standard target)}} \entry{test (standard target)}{81}{\code {test} \r {(standard target)}} \entry{execution, instead of}{81}{execution, instead of} \entry{commands, instead of executing}{81}{commands, instead of executing} \entry{--just-print}{81}{\code {--just-print}} \entry{--dry-run}{81}{\code {--dry-run}} \entry{--recon}{81}{\code {--recon}} \entry{-n}{81}{\code {-n}} \entry{--touch}{81}{\code {--touch}} \entry{touching files}{81}{touching files} \entry{target, touching}{81}{target, touching} \entry{-t}{81}{\code {-t}} \entry{--question}{81}{\code {--question}} \entry{-q}{81}{\code {-q}} \entry{question mode}{81}{question mode} \entry{--what-if}{81}{\code {--what-if}} \entry{-W}{81}{\code {-W}} \entry{--assume-new}{81}{\code {--assume-new}} \entry{--new-file}{81}{\code {--new-file}} \entry{what if}{81}{what if} \entry{files, assuming new}{81}{files, assuming new} \entry{+, and command execution}{82}{+, and command execution} \entry{-o}{82}{\code {-o}} \entry{--old-file}{82}{\code {--old-file}} \entry{--assume-old}{82}{\code {--assume-old}} \entry{files, assuming old}{82}{files, assuming old} \entry{files, avoiding recompilation of}{82}{files, avoiding recompilation of} \entry{recompilation, avoiding}{82}{recompilation, avoiding} \entry{overriding variables with arguments}{83}{overriding variables with arguments} \entry{variables, overriding with arguments}{83}{variables, overriding with arguments} \entry{command line variables}{83}{command line variables} \entry{variables, command line}{83}{variables, command line} \entry{testing compilation}{83}{testing compilation} \entry{compilation, testing}{83}{compilation, testing} \entry{-k}{84}{\code {-k}} \entry{--keep-going}{84}{\code {--keep-going}} \entry{options}{84}{options} \entry{flags}{84}{flags} \entry{switches}{84}{switches} \entry{-b}{84}{\code {-b}} \entry{-m}{84}{\code {-m}} \entry{-B}{84}{\code {-B}} \entry{--always-make}{84}{\code {--always-make}} \entry{-C}{84}{\code {-C}} \entry{--directory}{84}{\code {--directory}} \entry{-d}{84}{\code {-d}} \entry{--debug}{84}{\code {--debug}} \entry{-e}{85}{\code {-e}} \entry{--environment-overrides}{85}{\code {--environment-overrides}} \entry{-f}{85}{\code {-f}} \entry{--file}{85}{\code {--file}} \entry{--makefile}{85}{\code {--makefile}} \entry{-h}{85}{\code {-h}} \entry{--help}{85}{\code {--help}} \entry{-i}{85}{\code {-i}} \entry{--ignore-errors}{85}{\code {--ignore-errors}} \entry{-I}{85}{\code {-I}} \entry{--include-dir}{85}{\code {--include-dir}} \entry{-j}{86}{\code {-j}} \entry{--jobs}{86}{\code {--jobs}} \entry{-k}{86}{\code {-k}} \entry{--keep-going}{86}{\code {--keep-going}} \entry{-l}{86}{\code {-l}} \entry{--load-average}{86}{\code {--load-average}} \entry{--max-load}{86}{\code {--max-load}} \entry{-n}{86}{\code {-n}} \entry{--just-print}{86}{\code {--just-print}} \entry{--dry-run}{86}{\code {--dry-run}} \entry{--recon}{86}{\code {--recon}} \entry{-o}{86}{\code {-o}} \entry{--old-file}{86}{\code {--old-file}} \entry{--assume-old}{86}{\code {--assume-old}} \entry{-p}{86}{\code {-p}} \entry{--print-data-base}{86}{\code {--print-data-base}} \entry{data base of make rules}{86}{data base of \code {make} rules} \entry{predefined rules and variables, printing}{86}{predefined rules and variables, printing} \entry{-q}{87}{\code {-q}} \entry{--question}{87}{\code {--question}} \entry{-r}{87}{\code {-r}} \entry{--no-builtin-rules}{87}{\code {--no-builtin-rules}} \entry{-R}{87}{\code {-R}} \entry{--no-builtin-variables}{87}{\code {--no-builtin-variables}} \entry{-s}{87}{\code {-s}} \entry{--silent}{87}{\code {--silent}} \entry{--quiet}{87}{\code {--quiet}} \entry{-S}{87}{\code {-S}} \entry{--no-keep-going}{87}{\code {--no-keep-going}} \entry{--stop}{87}{\code {--stop}} \entry{-t}{87}{\code {-t}} \entry{--touch}{87}{\code {--touch}} \entry{-v}{88}{\code {-v}} \entry{--version}{88}{\code {--version}} \entry{-w}{88}{\code {-w}} \entry{--print-directory}{88}{\code {--print-directory}} \entry{--no-print-directory}{88}{\code {--no-print-directory}} \entry{-W}{88}{\code {-W}} \entry{--what-if}{88}{\code {--what-if}} \entry{--new-file}{88}{\code {--new-file}} \entry{--assume-new}{88}{\code {--assume-new}} \entry{--warn-undefined-variables}{88}{\code {--warn-undefined-variables}} \entry{variables, warning for undefined}{88}{variables, warning for undefined} \entry{undefined variables, warning message}{88}{undefined variables, warning message} \entry{implicit rule}{89}{implicit rule} \entry{rule, implicit}{89}{rule, implicit} \entry{implicit rule, how to use}{89}{implicit rule, how to use} \entry{rule, implicit, how to use}{89}{rule, implicit, how to use} \entry{implicit rule, predefined}{90}{implicit rule, predefined} \entry{rule, implicit, predefined}{90}{rule, implicit, predefined} \entry{C, rule to compile}{90}{C, rule to compile} \entry{cc}{90}{\code {cc}} \entry{gcc}{90}{\code {gcc}} \entry{.o}{90}{\code {.o}} \entry{.c}{90}{\code {.c}} \entry{C++, rule to compile}{91}{C++, rule to compile} \entry{g++}{91}{\code {g++}} \entry{.C}{91}{\code {.C}} \entry{.cc}{91}{\code {.cc}} \entry{Pascal, rule to compile}{91}{Pascal, rule to compile} \entry{pc}{91}{\code {pc}} \entry{.p}{91}{\code {.p}} \entry{Fortran, rule to compile}{91}{Fortran, rule to compile} \entry{Ratfor, rule to compile}{91}{Ratfor, rule to compile} \entry{f77}{91}{\code {f77}} \entry{.f}{91}{\code {.f}} \entry{.r}{91}{\code {.r}} \entry{.F}{91}{\code {.F}} \entry{Modula-2, rule to compile}{91}{Modula-2, rule to compile} \entry{m2c}{91}{\code {m2c}} \entry{.sym}{91}{\code {.sym}} \entry{.def}{91}{\code {.def}} \entry{.mod}{91}{\code {.mod}} \entry{assembly, rule to compile}{91}{assembly, rule to compile} \entry{as}{91}{\code {as}} \entry{.s}{91}{\code {.s}} \entry{.S}{91}{\code {.S}} \entry{linking, predefined rule for}{91}{linking, predefined rule for} \entry{ld}{91}{\code {ld}} \entry{.o}{91}{\code {.o}} \entry{yacc}{92}{\code {yacc}} \entry{Yacc, rule to run}{92}{Yacc, rule to run} \entry{.y}{92}{\code {.y}} \entry{lex}{92}{\code {lex}} \entry{Lex, rule to run}{92}{Lex, rule to run} \entry{.l}{92}{\code {.l}} \entry{lint}{92}{\code {lint}} \entry{lint, rule to run}{92}{\code {lint}, rule to run} \entry{.ln}{92}{\code {.ln}} \entry{TeX{}, rule to run}{92}{\TeX{}, rule to run} \entry{Web, rule to run}{92}{Web, rule to run} \entry{tex}{92}{\code {tex}} \entry{cweave}{92}{\code {cweave}} \entry{weave}{92}{\code {weave}} \entry{tangle}{92}{\code {tangle}} \entry{ctangle}{92}{\code {ctangle}} \entry{.dvi}{92}{\code {.dvi}} \entry{.tex}{92}{\code {.tex}} \entry{.web}{92}{\code {.web}} \entry{.w}{92}{\code {.w}} \entry{.ch}{92}{\code {.ch}} \entry{Texinfo, rule to format}{93}{Texinfo, rule to format} \entry{Info, rule to format}{93}{Info, rule to format} \entry{texi2dvi}{93}{\code {texi2dvi}} \entry{makeinfo}{93}{\code {makeinfo}} \entry{.texinfo}{93}{\code {.texinfo}} \entry{.info}{93}{\code {.info}} \entry{.texi}{93}{\code {.texi}} \entry{.txinfo}{93}{\code {.txinfo}} \entry{RCS, rule to extract from}{93}{RCS, rule to extract from} \entry{co}{93}{\code {co}} \entry{,v (RCS file extension)}{93}{\code {,v \r {(RCS file extension)}}} \entry{SCCS, rule to extract from}{93}{SCCS, rule to extract from} \entry{get}{93}{\code {get}} \entry{s. (SCCS file prefix)}{93}{\code {s. \r {(SCCS file prefix)}}} \entry{.sh}{93}{\code {.sh}} \entry{flags for compilers}{93}{flags for compilers} \entry{ar}{94}{\code {ar}} \entry{as}{94}{\code {as}} \entry{cc}{94}{\code {cc}} \entry{g++}{94}{\code {g++}} \entry{co}{94}{\code {co}} \entry{f77}{94}{\code {f77}} \entry{get}{94}{\code {get}} \entry{lex}{94}{\code {lex}} \entry{pc}{94}{\code {pc}} \entry{yacc}{94}{\code {yacc}} \entry{makeinfo}{94}{\code {makeinfo}} \entry{tex}{94}{\code {tex}} \entry{texi2dvi}{94}{\code {texi2dvi}} \entry{weave}{94}{\code {weave}} \entry{cweave}{94}{\code {cweave}} \entry{tangle}{94}{\code {tangle}} \entry{ctangle}{94}{\code {ctangle}} \entry{rm}{94}{\code {rm}} \entry{chains of rules}{95}{chains of rules} \entry{rule, implicit, chains of}{95}{rule, implicit, chains of} \entry{intermediate files}{95}{intermediate files} \entry{files, intermediate}{95}{files, intermediate} \entry{intermediate files, preserving}{96}{intermediate files, preserving} \entry{preserving intermediate files}{96}{preserving intermediate files} \entry{secondary files}{96}{secondary files} \entry{preserving with .PRECIOUS}{96}{preserving with \code {.PRECIOUS}} \entry{.PRECIOUS intermediate files}{96}{\code {.PRECIOUS} intermediate files} \entry{pattern rule}{97}{pattern rule} \entry{rule, pattern}{97}{rule, pattern} \entry{target pattern, implicit}{97}{target pattern, implicit} \entry{%, in pattern rules}{97}{\code {%}, in pattern rules} \entry{prerequisite pattern, implicit}{97}{prerequisite pattern, implicit} \entry{multiple targets, in pattern rule}{97}{multiple targets, in pattern rule} \entry{target, multiple in pattern rule}{97}{target, multiple in pattern rule} \entry{pattern rules, order of}{97}{pattern rules, order of} \entry{order of pattern rules}{97}{order of pattern rules} \entry{automatic variables}{98}{automatic variables} \entry{variables, automatic}{98}{variables, automatic} \entry{variables, and implicit rule}{98}{variables, and implicit rule} \entry{prerequisites, list of changed}{98}{prerequisites, list of changed} \entry{list of changed prerequisites}{98}{list of changed prerequisites} \entry{prerequisites, list of all}{99}{prerequisites, list of all} \entry{list of all prerequisites}{99}{list of all prerequisites} \entry{stem, variable for}{99}{stem, variable for} \entry{$$@, support for}{100}{$$@, support for} \entry{stem}{100}{stem} \entry{match-anything rule}{101}{match-anything rule} \entry{terminal rule}{101}{terminal rule} \entry{last-resort default rules}{102}{last-resort default rules} \entry{default rules, last-resort}{102}{default rules, last-resort} \entry{old-fashioned suffix rules}{103}{old-fashioned suffix rules} \entry{suffix rule}{103}{suffix rule} \entry{implicit rule, search algorithm}{104}{implicit rule, search algorithm} \entry{search algorithm, implicit rule}{104}{search algorithm, implicit rule} \entry{archive}{107}{archive} \entry{archive member targets}{107}{archive member targets} \entry{wildcard, in archive member}{107}{wildcard, in archive member} \entry{__.SYMDEF}{108}{\code {__.SYMDEF}} \entry{updating archive symbol directories}{108}{updating archive symbol directories} \entry{archive symbol directory updating}{108}{archive symbol directory updating} \entry{symbol directories, updating archive}{108}{symbol directories, updating archive} \entry{directories, updating archive symbol}{108}{directories, updating archive symbol} \entry{archive, and parallel execution}{108}{archive, and parallel execution} \entry{parallel execution, and archive update}{108}{parallel execution, and archive update} \entry{archive, and -j}{108}{archive, and \code {-j}} \entry{-j, and archive update}{108}{\code {-j}, and archive update} \entry{suffix rule, for archive}{109}{suffix rule, for archive} \entry{archive, suffix rule for}{109}{archive, suffix rule for} \entry{library archive, suffix rule for}{109}{library archive, suffix rule for} \entry{.a (archives)}{109}{\code {.a} (archives)} \entry{features of GNU make}{111}{features of GNU \code {make}} \entry{portability}{111}{portability} \entry{compatibility}{111}{compatibility} \entry{incompatibilities}{115}{incompatibilities} \entry{missing features}{115}{missing features} \entry{features, missing}{115}{features, missing} \entry{makefile, conventions for}{117}{makefile, conventions for} \entry{conventions for makefiles}{117}{conventions for makefiles} \entry{standards for makefiles}{117}{standards for makefiles} \entry{pre-installation commands}{127}{pre-installation commands} \entry{post-installation commands}{127}{post-installation commands} \entry{binary packages}{128}{binary packages} \entry{FDL, GNU Free Documentation License}{147}{FDL, GNU Free Documentation License} .