GNU Make:请求的目标

时间:2016-11-04 15:57:15

标签: bash makefile gnu-make

是否有任何GNU Make特殊变量用于了解哪个目标是用户在命令行调用中发送的目标?为了达到类似的目的(这只是一个例子):

// makefile
ifeq ($(USER_TARGET),"plain")
CXXFLAGS += -O0
else
CXXFLAGS += -O3
endif

plain:
    // do something using CXXFLAGS

all:
    // other rule using CXXFLAGS

重要的是,USER_TARGET变量(可以是一个特殊的GNU Make变量,或者一个自定义变量,其值是由一些返回用户目标的特殊GNU Make函数设置的),包含由呼叫中的用户如:

$ make plain

而不是依赖关系树的任何步骤中的值。换句话说,USER_TARGET在构建依赖链期间不得更改,因为如果我没有错,USER_TARGET的值将在第一次使用时进行评估,而不是可能发生在文档的任何一点,因此,我想确保构建链的当前步骤不会改变USER_TARGET的值。

我不知道我是否已经足够清楚或是否过度解释。

如果在GNU Make中没有内置机制,那么欢迎任何$(shell command)技巧。

1 个答案:

答案 0 :(得分:2)

您需要MAKECMDGOALS变量described here