Copyright (C) 2000-2012 |
GNU Info (make.info)Archive Suffix RulesSuffix 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'. automatically generated by info2www version 1.2.2.9 |