makefile:从目标内动态公开全局变量

时间:2018-04-03 04:48:54

标签: makefile

我想在make文件中使用动态变量,例如:

all: ask
        @echo "I want the $$ANSWER here too"
ask:
        @read -p "please enter your answer: " ans && export ANSWER=$$ans
        @echo "Your answer is $$ANSWER"

以上示例不起作用,$ANSWER为空。

修改

使用read询问问题只是一个例子。我的目的是必须在目标的运行时动态获取值,而不是在makefile之上计算,或者在make的命令行上传入。

1 个答案:

答案 0 :(得分:0)

正如我在评论中所说,在makefile中提出互动问题是一个坏主意; Make不是为此而设计的。 Make的重点是,如果所有文件都是最新的,则没有任何反应。在你的情况下,无论如何,你都希望有所作为。不是Make的一个很好的用例。

话虽如此,我还是想给你答案。也许你会喜欢这个:

all: ask
    @echo "I want the $$(cat ANSWER) here too"
ask:
    @read -p "please enter your answer: " ans && echo -n "$$ans" > ANSWER
    @echo "Your answer is $$(cat ANSWER)"