| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] | 
You can write a special kind of suffix rule for dealing with archive
files.  See section 10.7 Old-Fashioned Suffix 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 (see section 11.2 Implicit Rule for Archive Member Targets).  But they are retained for compatibility with other
makes.
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 (see section 10.7 Old-Fashioned Suffix Rules).  Thus a double-suffix rule
`.x.a' produces two pattern rules: `(%.o):
%.x' and `%.a: %.x'.