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,以防止它列印該死的橫幅。
標準化所有引數,以確保比較的一致性。
這些指令根據 command.com 在 Win98 上執行的內容而定。對於其他 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 類型的適當字串。