命令行与环境中的Makefile变量

命令行与环境中的Makefile变量,makefile,Makefile,是否有一种方法可以检测是否从环境中设置了变量,而不是在命令行中设置了变量 我想区分使用makelib=mylib调用make的人与定义了$LIB的人。您可以使用该函数确定变量的定义位置 ifneq (,$(findstring environment,$(origin LIB))) # LIB was defined by the environment else # LIB was defined some other way endif ifneq(,$(findstring

是否有一种方法可以检测是否从环境中设置了变量,而不是在命令行中设置了变量

我想区分使用
makelib=mylib调用make的人与定义了$LIB的人。您可以使用该函数确定变量的定义位置

ifneq (,$(findstring environment,$(origin LIB))) # LIB was defined by the environment else # LIB was defined some other way endif ifneq(,$(findstring环境,$(源库))) #LIB是由环境定义的 其他的 #LIB是以其他方式定义的 恩迪夫
使用非Gnu make,您可以对相关变量运行
export
命令和
grep
。这仅适用于规则,并且只要变量未设置为一次性(如在
LIB=foo make
中)。请使用[make]标记标记与make相关的问题。有关理由,请参见