發布 GNU Make 4.4 構建系統

經過將近三年的開發,GNU Make 4.4 構建系統發布了。 除了修復錯誤之外,新版本中還可以注意到以下更改:

  • OS/2 (EMX)、AmigaOS、Xenix 和 Cray 平台已被棄用,並將在未來的版本中棄用。
  • 構建環境的要求已經增加,要構建 GNU Gnulib,您現在需要一個支持 C99 標準元素的編譯器。
  • 添加了一個特殊的 .WAIT 構建目標,允許您暫停啟動某些目標的構建,直到其他目標的構建完成。
  • 在特殊的構建目標 .NOTPARALLEL 中,實現了指定先決條件(構建目標所需的文件)的能力,以順序啟動與其關聯的目標(就像在每個先決條件之間設置了“.WAIT”一樣)。
  • 添加了一個特殊的構建目標 .NOTINTERMEDIATE,它禁用與指定文件、與掩碼匹配的文件或整個 makefile 使用中間目標 (.INTERMEDIATE) 相關的行為。
  • 實現了 $(let ...) 函數,它允許您在用戶定義的函數中定義局部變量。
  • 實現了用於比較數字的 $(intcmp ...) 函數。
  • 使用“-l”(--load-average)選項時,要啟動的作業數現在會考慮文件 /proc/loadavg 中有關係統負載的數據。
  • 添加了“--shuffle”選項來打亂先決條件,允許在並行構建中實現非確定性行為(例如,模糊測試在 makefile 中定義先決條件的正確性)。
  • 在支持 mkfifo 的系統上,提供了一種在基於使用命名管道的作業並行執行期間與作業服務器交互的新方法。 要返回基於未命名管道的舊方法,建議使用選項“--jobserver-style=pipe”。
  • 工作過程中臨時文件的使用得到了擴展(構建系統為臨時文件(TMPDIR)設置替代目錄並在構建過程中刪除 TMPDIR 的內容時可能會出現問題)。

來源: opennet.ru

添加評論