Scroll to navigation

ExtUtils::MM_Win32(3) User Contributed Perl Documentation ExtUtils::MM_Win32(3)

NAME

ExtUtils::MM_Win32 - methods to override UN*X behaviour in ExtUtils::MakeMaker

SYNOPSIS

 use ExtUtils::MM_Win32; # Done internally by ExtUtils::MakeMaker if needed

DESCRIPTION

See ExtUtils::MM_Unix for a documentation of the methods provided there. This package overrides the implementation of these methods, not the semantics.

Overridden methods

On Win32, is ".def".
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, except for "gmake" where it is /.
Override some of the slower, portable commands with Windows specific ones.
Override the default link and compile tools.

LDLOADLIBS's default is changed to $Config{libs}.

Adjustments are made for Borland's quirks needing -L to come first.

Add MM_Win32_VERSION.
Set SHELL to $ENV{COMSPEC} only if make is type 'gmake'.
Add MAXLINELENGTH for dmake before all the constants are output.
Add .USESHELL target for dmake.
Defines how to run the archive utility
Methods are overridden here: not dynamic_lib itself, but the utility ones that do the OS-specific work.
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.
Override to fixup -o flags for MSVC.
All we send is -nologo to nmake to prevent it from printing its damned banner.
Normalize all arguments for consistency of comparison.
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 dir1\dir2
    command
    another_command
    cd ..\..
    
nmake 1.50 limits command length to 2048 characters.
Windows is Win32.
Returns a CC flag that tells the CC to emit a separate debugging symbol file when compiling an object file.
Defines the PERLDLL symbol if we are configured for static building since all code destined for the perl5xx.dll must be compiled with the PERLDLL symbol defined.
Returns a suitable string describing the type of makefile being written.
2021-08-09 perl v5.32.1