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

1.1       jmmv        1: [[!template id=project
                      2: 
1.2     ! dholland    3: title="Suffix 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