Shell 的指揮官:Makefile
在軟體開發與 DevOps 領域,Makefile 是一個被低估但強大的工具。它不僅能自動化編譯流程,還能用於各種 Shell 任務,如測試、部署、甚至系統管理。當你需要組織並執行一連串 Shell 指令時,Makefile 就像一名指揮官,確保任務有條不紊地執行。
Makefile 是什麼?
Makefile 最早由 Unix 系統的 make
指令驅動,主要用途是管理程式碼的編譯。但隨著 DevOps 的興起,Makefile 早已超越原始用途,成為自動化腳本的優秀選擇。
為什麼使用 Makefile?
- 簡潔的指令組織:透過 Makefile,我們可以定義一系列可重用的 Shell 指令,避免手動輸入的麻煩。
- 增量執行:
make
具有依賴關係管理的能力,只執行必要的部分,提升效能。 - 環境無關性:無論是 macOS、Linux 還是 Windows(透過 WSL 或 MinGW),Makefile 都能運行。
- 提升團隊協作:讓團隊成員透過統一的 Makefile 輕鬆執行開發、測試與部署流程。
Makefile 基本語法
Makefile 由「目標(target)」、「依賴(dependencies)」與「指令(commands)」組成,基本格式如下:
目標: 依賴
指令
例如:
build:
echo "開始編譯..."
gcc main.c -o main
執行 make build
會觸發 echo
和 gcc
指令。