diff options
-rw-r--r-- | make.texinfo | 67 |
1 files changed, 52 insertions, 15 deletions
diff --git a/make.texinfo b/make.texinfo index 96335d2..180d732 100644 --- a/make.texinfo +++ b/make.texinfo @@ -20,7 +20,7 @@ @tex % trying for a two-level index -\def\doindex#1{\message{FNORD!!!}\edef\indexname{#1}\parsearg\singleindexer} +\def\doindex#1{\message{FNORD!}\edef\indexname{#1}\parsearg\singleindexer} \def\singleindexer #1{\message{frobozzing :{#1}:}\message{}\frobozz{#1}} \def\frobozz[#1,#2]{\message{frobozzed :{#1}:{#2}:}\message{}\dosubind{\indexname}{#1}{#2}} @@ -7199,15 +7199,7 @@ named @file{foo.o}. In connection with such usage, the automatic variables * Archive Symbols:: How to update archive symbol directories. @end menu -@node Archive Suffix Rules -@subsection Suffix Rules for Archive Files -@cindex suffix rule, for archive -@cindex archive, suffix rule -@cindex @code{.a} (archives) - -!!! - -@node Archive Symbols, , , Archive Update +@node Archive Symbols, Archive Suffix Rules, , Archive Update @subsection Updating Archive Symbol Directories @cindex @code{__.SYMDEF} @cindex updating archive symbol directories @@ -7244,6 +7236,51 @@ files into the archive, as described in the preceding section. This is not necessary when using the GNU @code{ar} program, which updates the @file{__.SYMDEF} member automatically. +@node Archive Suffix Rules, , Archive Update, Archives +@subsection Suffix Rules for Archive Files +@cindex suffix rule, for archive +@cindex archive, suffix rule for +@cindex library archive, suffix rule for +@cindex @code{.a} (archives) + +You can write a special kind of suffix rule for dealing with archive +files. @xref{Suffix Rules}, for a full explanation of suffix rules. +Archive suffix rules are obsolete in GNU @code{make}, because pattern +rules for archives are a more general mechanism (@pxref{Archive +Update}). But they are retained for compatibility with other +@code{make}s. + +To write a suffix rule for archives, you simply write a suffix rule +using the target suffix @samp{.a} (the usual suffix for archive files). +For example, here is the old-fashioned suffix rule to update a library +archive from C source files: + +@example +@group +.c.a: + $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $*.o + $(AR) r $@@ $*.o + $(RM) $*.o +@end group +@end example + +@noindent +This works just as if you had written the pattern rule: + +@example +@group +(%.o): %.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $*.o + $(AR) r $@@ $*.o + $(RM) $*.o +@end group +@end example + +In fact, this is just what @code{make} does when it sees a suffix rule +with @samp{.a} as the target suffix. Any double-suffix rule +@w{@samp{.@var{x}.a}} is converted to a pattern rule with the target +pattern @samp{(%.o)} and a dependency pattern of @samp{%.@var{x}}. + @node Features, Missing, Archives, Top @chapter Features of GNU @code{make} @cindex features of GNU @code{make} @@ -7303,12 +7340,12 @@ Execution of recursive commands to run @code{make} via the variable @code{MAKE} even if @samp{-n}, @samp{-q} or @samp{-t} is specified. @xref{Recursion, ,Recursive Use of @code{make}}. -@c !!! what about the kludge for this??? @item -Support for suffix @samp{.a} in suffix rules. In GNU @code{make}, -this is actually implemented by chaining with one pattern rule for -installing members in an archive. -@xref{Chained Rules, ,Chains of Implicit Rules}.@refill +Support for suffix @samp{.a} in suffix rules. @xref{Archive Suffix +Rules}. This feature is obsolete in GNU @code{make}, because the +general feature of rule chaining (@pxref{Chained Rules, ,Chains of +Implicit Rules}) allows one pattern rule for installing members in an +archive (@pxref{Archive Update}) to be sufficient. @item The arrangement of lines and backslash-newline combinations in |