File: make.info, Node: Archive Suffix Rules, Prev: Archive Pitfalls, Up: Archives 11.4 Suffix Rules for Archive Files =================================== You can write a special kind of suffix rule for dealing with archive files. *Note 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 (*note Archive 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 (*note Suffix Rules::). Thus a double-suffix rule '.X.a' produces two pattern rules: '(%.o): %.X' and '%.a: %.X'.