Diff for /wikisrc/projects/project/bsdmake-enhancements.mdwn between versions 1.1 and 1.2

version 1.1, 2011/11/06 19:58:46 version 1.2, 2014/02/27 08:37:50
Line 1 Line 1
 [[!template id=project  [[!template id=project
 title="Make enhancements"  title="Suffix rules in BSD Make"
 contact="""  contact="""
 [tech-toolchain](mailto:tech-toolchain@NetBSD.org)  [tech-toolchain](mailto:tech-toolchain@NetBSD.org)
 """  """
 category="userland"  category="userland"
 difficulty="easy"  difficulty="medium"
 duration="1 month"  duration="1 month"
 description="""  description="""
 BSD make (aka pmake) uses suffix rules (.c.o: ...)  instead of pattern rules  
 (%.c:%.o: ...) which are more general and flexible. The suffix module should be  BSD make (aka bmake) uses traditional suffix rules (.c.o: ...) instead
 re-written so that is based on pattern rules, and pattern rules should be  of pattern rules like gmake's (%.c:%.o: ...) which are more general
 implemented. This will gain 90% compatibility with GNU make, and the rest  and flexible.
 (variable manipulations) can easily be added.  
   The suffix module should be re-written to work from a general
   match-and-transform function on targets, which is sufficient to
   implement not only traditional suffix rules and gmake pattern rules,
   but also whatever other more general transformation rule syntax comes
   down the pike next. Then the suffix rule syntax and pattern rule
   syntax can both be fed into this code.
   Note that it is already possible to write rules where the source is
   computed explicitly based on the target, simply by using $(.TARGET) in
   the right hand side of the rule. Investigate whether this logic should
   be rewritten using the match-and-transform code, or if the
   match-and-transform code should use the logic that makes these rules
   possible instead.
   Implementing pattern rules is widely desired in order to be able to
   read more makefiles written for gmake, even though gmake's pattern
   rules aren't well designed or particularly principled.
 """  """
 ]]  ]]

Removed from v.1.1  
changed lines
  Added in v.1.2

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