2009-10-21 170 views
5

有沒有辦法檢測是否已從環境中設置變量與命令行上的變量?命令行與環境的Makefile變量

我想區分有人在調用make與make LIB=mylibmake和$ LIB被定義。

+0

請用[make]標籤標記與製作相關的問題。有關基本原理,請參閱http://meta.stackexchange.com/questions/24030/why-do-they-specify-makefile-tag-instead-of-make/26567#26567 – 2009-10-23 20:40:59

回答

5

是的。您可以使用origin函數來確定變量的定義位置。

 
ifneq (,$(findstring environment,$(origin LIB))) 
    # LIB was defined by the environment 
else 
    # LIB was defined some other way 
endif 
0

隨着非GNU做,你可能有問題的變量運行export命令和grep。這隻適用於規則,只要變量沒有設置爲一次性(如LIB=foo make)。