ExtUtils::MM_Win32(3)

πŸ“¦ version 7.70, in opensuse-leap 16.0

πŸŽ€ NAME πŸŽ€

Okay bestie, this is ExtUtils::MM_Win32(3) β€” the User Contributed Perl Documentation for ExtUtils::MM_Win32: methods to override UN*X behaviour in ExtUtils::MakeMaker. πŸ’–


✨ SYNOPSIS ✨

Literally all you need, bestie:

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

πŸ¦‹ DESCRIPTION πŸ¦‹

Go see ExtUtils::MM_Unix for a documentation of the methods provided there. This package overrides the implementation of these methods, not the semantics. Same vibe, different plumbing, no cap. πŸ’…

🌸 Overridden methods 🌸

Here's the whole roster of overrides, no skips β€” every method and every note from the page, bestie. ✨

  • dlsyms
  • xs_dlsyms_ext β€” On Win32, it's ".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. Lowkey iconic. 🫢

  • 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.
  • 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.

Mwah! πŸ’– This little page came from perl v5.42.0, dated 2023-04-04 β€” and yes, it's ExtUtils::MM_Win32(3), periodt. 🌈

πŸ“¦ where this page comes from