Annotation of wikisrc/projects/project/bsdmake-enhancements.mdwn, revision 1.3

1.1       jmmv        1: [[!template id=project
                      2: 
1.3     ! dholland    3: title="Suffix and pattern rules in BSD make"
1.1       jmmv        4: 
                      5: contact="""
                      6: [tech-toolchain](mailto:tech-toolchain@NetBSD.org)
                      7: """
                      8: 
                      9: category="userland"
1.2       dholland   10: difficulty="medium"
1.1       jmmv       11: duration="1 month"
                     12: 
                     13: description="""
1.2       dholland   14: 
                     15: BSD make (aka bmake) uses traditional suffix rules (.c.o: ...) instead
                     16: of pattern rules like gmake's (%.c:%.o: ...) which are more general
                     17: and flexible.
                     18: 
                     19: The suffix module should be re-written to work from a general
                     20: match-and-transform function on targets, which is sufficient to
                     21: implement not only traditional suffix rules and gmake pattern rules,
                     22: but also whatever other more general transformation rule syntax comes
                     23: down the pike next. Then the suffix rule syntax and pattern rule
                     24: syntax can both be fed into this code.
                     25: 
                     26: Note that it is already possible to write rules where the source is
                     27: computed explicitly based on the target, simply by using $(.TARGET) in
                     28: the right hand side of the rule. Investigate whether this logic should
                     29: be rewritten using the match-and-transform code, or if the
                     30: match-and-transform code should use the logic that makes these rules
                     31: possible instead.
                     32: 
                     33: Implementing pattern rules is widely desired in order to be able to
                     34: read more makefiles written for gmake, even though gmake's pattern
                     35: rules aren't well designed or particularly principled.
                     36: 
1.1       jmmv       37: """
                     38: ]]

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb