http://www.perlmonks.org?node_id=92516


in reply to make / Makemaker trouble

OK, this post is a few months old, but I just spent much of the day wrangling with this very same thing and I've got it fixed, and I want to set down my findings for future SuperSearchers.

First: nmake: leave it to Microsoft to produce a closed-source version of make that deviates from standards. Bag that, and go to The Perl Powertools project and grab their version of make, written in Perl.

Next: find your "lib/Config.pm" file. Find the "make" entry. Change it to "make". ("pmake" is, I think, probably the more correct value, but at least for the version of perl and ExtUtils that I'm using, it seems to make no difference.) Save the file.

That should be all you need. Run "make clean", and "perl Makefile.PL" over again to rebuild the Makefile, and make should now work.

Here's what's going on: The "$(PM_TO_BLIB) <<" bit and the "<<pmfiles.dat" bit are nmake-specific and break other makes. When perl runs Makefile.PL, it looks to Config.pm to determine what sort of Makefile it should be writing. Then it spits out this wrong format, which breaks other makes. To see what other makes perl tries to account for, and how this gets generated, examine ExtUtils::MM_Win32.pm.

-- Frag.
(Yeahyeah, I realize that technically there's no such beast as "make standards", and MS doesn't seem to be the only purveyor of oddball makes.)