---
name: "ExtUtils::MM_Win32"
section: "3p"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["openbsd"]
url: "https://new.carta.tech/ExtUtils::MM_Win32"
---

# ExtUtils::MM\_Win32(3p)

methods to override UN\*X behaviour in ExtUtils::MakeMaker

## 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

- **dlsyms**

  - xs\_dlsyms\_ext

  On Win32, is `".def"`.

- replace\_manpage\_separator

  Changes the path separator with .

- **maybe\_command**

  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.

- **init\_DIRFILESEP**

  Using \\ for Windows, except for "gmake" where it is /.

- init\_tools

  Override some of the slower, portable commands with Windows specific ones.

- init\_others

  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.

- init\_platform

  Add MM\_Win32\_VERSION.

- platform\_constants

  - specify\_shell

  Set SHELL to `$ENV`{COMSPEC} only if make is type 'gmake'.

- constants

  Add MAXLINELENGTH for dmake before all the constants are output.

- dep\_constants

  Makes dependencies that work for nmake.

- special\_targets

  Add .USESHELL target for dmake.

- static\_lib\_pure\_cmd

  Defines how to run the archive utility

- dynamic\_lib

  Methods are overridden here: not dynamic\_lib itself, but the utility ones that do the OS-specific work.

- extra\_clean\_files

  Clean out some extra dll.{base,exp} files which might be generated by gcc.  Otherwise, take out all \*.pdb files.

- init\_linker

  - perl\_script

  Checks for the perl program under several common perl extensions.

- quote\_dep

  - xs\_obj\_opt

  Override to fixup -o flags for MSVC.

- pasthru

  All we send is -nologo to nmake to prevent it from printing its damned banner.

- arch\_check (override)

  Normalize all arguments for consistency of comparison.

- oneliner

  These are based on what command.com does on Win98.  They may be wrong for other Windows shells, I don't know.

- cd

  dmake can handle Unix style cd'ing but nmake (at least 1.5) cannot.  It wants:

  ```
      cd dir1\dir2
      command
      another_command
      cd ..\..
  ```

- max\_exec\_len

  nmake 1.50 limits command length to 2048 characters.

- os\_flavor

  Windows is Win32.

- dbgoutflag

  Returns a CC flag that tells the CC to emit a separate debugging symbol file when compiling an object file.

- cflags

  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.

- make\_type

  Returns a suitable string describing the type of makefile being written.
