Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re^4: Make program used by Perl in windows

by bojinlund (Monsignor)
on May 01, 2012 at 15:17 UTC ( [id://968281]=note: print w/replies, xml ) Need Help??


in reply to Re^3: Make program used by Perl in windows
in thread Make program used by Perl in windows

Yes, but you shouldn't be writing makefiles, you should do everything possible to avoid writing makefiles.

I agree!

However, I believe that a possibility to use the same make program in L/Unix and Windows, at least for Perl modules, would facilitate portability. I am trying to understand if there is a (long term) possibility to use GNU make also in Windows.

A possible path seem to be:

  • A GNU Make distribution for Windows in CPAN
  • A patched ExtUtils::MakeMaker that can create Makefiles that the Windows version of GNU Make understands
  • Comment on Re^4: Make program used by Perl in windows

Replies are listed 'Best First'.
Re^5: Make program used by Perl in windows
by Corion (Patriarch) on May 01, 2012 at 15:27 UTC

    Perl on Windows is currently built using either dmake.exe or nmake.exe. There is no way to currently build Perl on Windows using a GNU make. Also, ExtUtils::MakeMaker likely does not really support outputting GNU makefiles on Windows.

    Traditionally, Perl uses the same toolchain that it was built with for building its modules. I'm not sure why you would want to change that, because that toolchain is proven to work well. Most likely, changing the make utility involves patching ExtUtils::MakeMaker to properly recognize the new type of make tool and produce the appropriate output.

      Traditionally, Perl uses the same toolchain that it was built with for building its modules.

      Is it just a tradition or is it more? Is it possible to use different make programs even for different Perl modules?

      I'm not sure why you would want to change that, because that toolchain is proven to work well.

      I am thinking of:

      • Difficult to find good documentation on Dmake
      • GNU Make is more known than Dmake. There is a bigger user community.
      • GNU Make has a bigger “maintenance” group, with more frequent releases.
      Most likely, changing the make utility involves patching ExtUtils::MakeMaker to properly recognize the new type of make tool and produce the appropriate output.

      Yes, I know. And ExtUtils::MakeMaker is also "doomed" by it's maintainer!

        I don't see what current problems there are with dmake and nmake that would be fixed by a move to GNU make - both other utilities work to build Perl and build its modules, and Perl does not use a make tool for anything else. But as you already seem to have a pretty clear picture of the steps to take, feel free to add a submodule to ExtUtils::MakeMaker that outputs GNU make syntax under Windows. The module is only "doomed" in the sense that schwern has a talk on this out. So far, there has come no replacement for ExtUtils::MakeMaker that is much better if better at all for building and installing Perl modules.

        Is it just a tradition or is it more?

        Tradition is more :)

        Targeting yet another variant of make seems like a spectacular waste of time :)

        I wouldn't target gnu make, i'd target its replacement, makepp - Compatible but reliable and improved replacement for make, Or I would target http://www.bakefile.org/, and you automagically support everything and then some (I know, wishful thinking again )

        Yes, I know. And ExtUtils::MakeMaker is also "doomed" by it's maintainer!

        Seems you've missed the problem behind the punchline, have you actually watched read the slideshow? Or at minimum The Plea? Schwerns point is, make is non-portable external tool, don't patch MakeMaker to work with another make or do something new, just extend Module::Build, switch your distributions to Module::Build

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://968281]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (8)
As of 2024-04-23 12:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found