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