Makefile:在执行期间保存变量

时间:2015-08-07 17:17:47

标签: makefile

我正在使用带有“make”的Makefiles来处理很多事情,例如启动/停止/配置我写的服务。有时我想阅读用户的输入。我知道的唯一方法是让用户在执行make时使用NAME = VALUE传递输入,或者将类似read -p "setting X: " var ; echo $$var的命令放入Makefile中。

NAME = VALUE的缺点是用户必须手动设置它,我不能“要求”他输入值。 read的缺点是读取值不能(或者我不知道如何)保存在变量中,因此不能多次使用。

有没有办法在执行特定的makefile目标时将用户输入读入变量? (我不想将FILE ?= 'read -p "value: " var ; echo $$var'放在标题中,因为只需要一个目标的值,当我将该行放在目标本身时,我得到错误“/ bin / bash:FILE:Command没找到。“。

1 个答案:

答案 0 :(得分:0)

我为此目的使用中间文件。

INPUT = dialog --inputbox 80 10 10

all: case1 case2

case1: read-input
    echo $(shell cat read-input) in case 1

case2: read-input
    echo $(shell cat read-input) in case 2


.INTERMEDIATE: read-input
read-input:
    $(INPUT) 2>$@