ExtUtils::MM_Win32 - methods to override UN*X behaviour in ExtUtils::MakeMaker
use ExtUtils::MM_Win32; # Done internally by ExtUtils::MakeMaker if needed
See ExtUtils::MM_Unix for a documentation of the methods provided there. This package overrides the implementation of these methods, not the semantics.
Changes the path separator with .
Since Windows has nothing as simple as an executable bit, we check the file extension.
The PATHEXT env variable will be used to get a list of extensions that might indicate a command, otherwise .com, .exe, .bat and .cmd will be used by default.
Using \ for Windows.
Override some of the Unix specific commands with portable ExtUtils::Command ones.
Also provide defaults for LD and AR in case the %Config values aren't set.
LDLOADLIBS's default is changed to $Config{libs}.
Adjustments are made for Borland's quirks needing -L to come first.
Add MM_Win32_VERSION.
Add .USESHELL target for dmake.
Changes how to run the linker.
The rest is duplicate code from MM_Unix. Should move the linker code to its own method.
Complicated stuff for Win32 that I don't understand. :(
Clean out some extra dll.{base,exp} files which might be generated by gcc. Otherwise, take out all *.pdb files.
Checks for the perl program under several common perl extensions.
This target is stubbed out. Not sure why.
All we send is -nologo to nmake to prevent it from printing its damned banner.
These are based on what command.com does on Win98. They may be wrong for other Windows shells, I don't know.
dmake can handle Unix style cd'ing but nmake (at least 1.5) cannot. It wants:
cd dir
command
another_command
cd ..
NOTE This cd can only go one level down. So far this sufficient for what MakeMaker needs.
nmake 1.50 limits command length to 2048 characters.
Windows is Win32.