ExtUtils::MM_Win32 - 在 ExtUtils::MakeMaker 中覆盖 UN*X 行为的方法
use ExtUtils::MM_Win32; # Done internally by ExtUtils::MakeMaker if needed
有关该方法提供的文档,请参见 ExtUtils::MM_Unix。此包覆盖了这些方法的实现,而不是语义。
在 Win32 上,是 .def
。
将路径分隔符更改为 .
由于 Windows 没有像可执行位那样简单的东西,因此我们检查文件扩展名。
PATHEXT 环境变量将用于获取可能指示命令的扩展名列表,否则默认情况下将使用 .com、.exe、.bat 和 .cmd。
对 Windows 使用 \,除了 "gmake",它使用 /。
用 Windows 特定的命令覆盖一些较慢的、可移植的命令。
覆盖默认链接和编译工具。
LDLOADLIBS 的默认值更改为 $Config{libs}。
针对 Borland 的特殊情况进行调整,需要 -L 放在首位。
添加 MM_Win32_VERSION。
仅当 make 类型为 'gmake' 时,将 SHELL 设置为 $ENV{COMSPEC}。
在输出所有常量之前,为 dmake 添加 MAXLINELENGTH。
为 dmake 添加 .USESHELL 目标。
定义如何运行归档实用程序。
此处覆盖方法:不是 dynamic_lib 本身,而是执行特定于操作系统的实用程序。
清理一些可能由 gcc 生成的额外 dll.{base,exp} 文件。否则,删除所有 *.pdb 文件。
检查几个常见的 perl 扩展下的 perl 程序。
覆盖以修复 MSVC 的 -o 标志。
我们只发送 -nologo 给 nmake 以防止它打印其该死的横幅。
规范化所有参数以确保比较一致性。
这些基于 Win98 上 command.com 的行为。它们可能不适用于其他 Windows shell,我不知道。
dmake 可以处理 Unix 风格的 cd,但 nmake(至少 1.5)不能。它想要
cd dir1\dir2
command
another_command
cd ..\..
nmake 1.50 将命令长度限制为 2048 个字符。
Windows 是 Win32。
返回一个 CC 标志,指示 CC 在编译目标文件时生成单独的调试符号文件。
如果我们配置为静态构建,则定义 PERLDLL 符号,因为所有目标为 perl5xx.dll 的代码都必须在定义了 PERLDLL 符号的情况下进行编译。
返回一个合适的字符串,描述正在编写的 Makefile 的类型。