Gnu-Make
如何判斷 GNU make 是否在 makefile 中使用?
我知道 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