Steve Hay wrote:
Why are you removing the .SUFFIXES target? Isn't it useful? Won't
that break compatibility (as demonstrated here)?
The patch only removes .SUFFIXES for dmake (not for nmake). It does
this because (a) dmake has never made any use of .SUFFIXES in living
memory, and (b) the upcoming version of dmake has deprecated .SUFFIXES
and now issues a warning about any use of it.
I just dug out Sarathy's old version of dmake ("version 4.1 PL1")--the
version that was most used before I started putting newer versions onto
CPAN (and which may well still be widely used)--and here are two
snippets from its manpage:
NOTE: .SUFFIXES is ignored by dmake it is used
here simply as an example.
dmake bases all of its inferences on the inference graph
constructed from the %-rules defined in the makefile. It
knows exactly which targets can be made from which prereq-
uisites by making queries on the inference graph. For
this reason .SUFFIXES is not needed and is completely
ignored.
So you can see that even this old version made no use of .SUFFIXES and
therefore shouldn't be affected by its removal.
Why not continue to silently ignore it? It makes writing cross-make utilities
a little easier. One less exception to worry about. Have you been getting
complaints?
It also allows older versions of MakeMaker to work quietly with newer versions
of dmake. Its much more likely that someone will be using a new dmake against
an old MakeMaker. Few people upgrade MakeMaker but lots of Windows users grab
a copy of dmake off CPAN to install Perl modules.