Gnu-Make

如何判斷 GNU make 是否在 makefile 中使用?

  • December 7, 2018

我知道 GNU Make 是迄今為止最常用的,但我正在尋找一種方法來驗證 GNU Make 是正在使用的實際 make 程序。是否有我可以從 Makefile 中列印的特殊變數,例如:

@echo "$(MAKE_VERSION)"

如果我同時安裝了 GNU Make 和另一個變體怎麼辦?

which make
/usr/bin/make

來自GNU make 手冊

預設情況下,當 make 查找 makefile 時,它會依次嘗試以下名稱:GNUmakefile、makefile 和 Makefile。

因此,如果您命名您的 make 文件GNUmakefile,那麼您應該保證它只會被 GNU make 讀取,而不會被任何其他 make 讀取。

這裡我發現在makefile中這樣做的唯一方法是

 ifeq (3.81,$(firstword $(sort $(MAKE_VERSION) 3.81)))
   # stuff that requires make-3.81 or higher
 endif

引用自:https://unix.stackexchange.com/questions/218692