經過近三年的發展, 發布了 GNU Make 4.4 構建系統, 在這個新版本中,除了更正錯誤之外,可以看出增加了一些改進,也增加了對編譯環境的要求。
對於那些不熟悉 GNU Make 的人來說,你應該知道這 是一個開發實用程序 非常受歡迎的組織軟件項目的編譯。 Make 常用於管理 GCC 編譯器集,但可用於任何軟件開發或打包任務。
由於創建大型 C/C++ 程序通常涉及幾個步驟,需要Make之類的工具來確保所有源文件都編譯鏈接. Make 還允許開發人員控制如何打包和安裝支持文件,例如文檔、手冊頁、systemd 配置文件、啟動腳本和配置模板。
Make不限於C/C++之類的語言。 Web 開發人員可以使用 GNU Make 執行重複性任務,例如縮小 CSS 和 JS,系統管理員可以自動執行維護任務。
此外,最終用戶可以使用 Make 編譯和安裝軟件,而無需成為他們正在安裝的軟件的程序員或專家。
GNU Make 4.4 的主要新特性
在呈現的這個新版本中, OS/2 (EMX)、AmigaOS、Xenix 和 Cray 平台已被棄用,加上對這些系統的支持將在 GNU Make 的下一個版本中刪除。
新版本中的另一個變化是 增加的構建環境要求,要編譯 GNU Gnulib,您現在需要一個支持 C99 標準元素的編譯器。
除了它,添加了一個 .WAIT 構建目標 一項特殊功能,允許您暫停某些目標的構建啟動,直到其他目標的構建完成。
而 .NOTPARALLEL,實現了指定先決條件的能力 (創建目標所需的文件)順序啟動與它們關聯的目標(好像在每個先決條件之間設置了“.WAIT”)。
另一方面,添加了 .NOTINTERMEDIATE,它禁用了與對特定文件、匹配掩碼的文件或整個 makefile 使用中間目標 (.INTERMEDIATE) 相關的行為。
在兼容的系統上 mkfifo,提供了一種在並行執行期間與作業服務器交互的新方法 基於使用命名管道的作業,以及添加選項“–jobserver-style=pipe”以返回基於未命名管道的舊方法。
還需要注意的是,工作進程中臨時文件的使用已經擴展(當構建系統為臨時文件設置備用目錄 (TMPDIR) 並在編譯期間刪除 TMPDIR 的內容時可能會出現問題)。
其他變化 從這個新版本中脫穎而出:
- 實現了 $(let...) 函數,它允許您在用戶定義的函數中定義局部變量。
- 實現了 $(intcmp…) 函數來比較數字。
- 當使用“-l”(--load-average)選項時,現在要啟動的作業數會考慮 /proc/loadavg 文件中有關係統負載的數據。
- 添加了“--shuffle”選項來打亂先決條件,允許並行構建中的非確定性行為(例如,模糊測試生成文件中先決條件定義的正確性)。
終於 如果您有興趣了解更多信息,您可以查看詳細信息 在下面的鏈接中。
如何在 Linux 上安裝 GNU Make?
對於那些 有興趣能夠安裝這個工具,他們可以通過運行以下命令之一來執行此操作:
對於那些誰的用戶 Debian/Ubuntu 或一些衍生產品:
sudo apt install make
對於那些是 Fedora/RHEL 或衍生產品:
yum install make
而對於那些使用 Arch Linux及其衍生版本:
sudo pacman -S make