make: Archive Suffix Rules

 
 11.4 Suffix Rules for Archive Files
 ===================================
 
 You can write a special kind of suffix rule for dealing with archive
 files.  SeeSuffix Rules, for a full explanation of suffix rules.
 Archive suffix rules are obsolete in GNU 'make', because pattern rules
 for archives are a more general mechanism (SeeArchive Update).  But
 they are retained for compatibility with other 'make's.
 
    To write a suffix rule for archives, you simply write a suffix rule
 using the target suffix '.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:
 
      .c.a:
              $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $*.o
              $(AR) r $@ $*.o
              $(RM) $*.o
 
 This works just as if you had written the pattern rule:
 
      (%.o): %.c
              $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $*.o
              $(AR) r $@ $*.o
              $(RM) $*.o
 
    In fact, this is just what 'make' does when it sees a suffix rule
 with '.a' as the target suffix.  Any double-suffix rule '.X.a' is
 converted to a pattern rule with the target pattern '(%.o)' and a
 prerequisite pattern of '%.X'.
 
    Since you might want to use '.a' as the suffix for some other kind of
 file, 'make' also converts archive suffix rules to pattern rules in the
 normal way (SeeSuffix Rules).  Thus a double-suffix rule '.X.a'
 produces two pattern rules: '(%.o): %.X' and '%.a: %.X'.