如何根据命令行输入更新makefile变量



假设我在makefile中定义了一个变量"ABC=0"。现在,当makefile运行时,用户会被问到一个问题"它是什么类型的程序?",如果用户输入"pq",则将makefile变量"ABC"更新为1,否则保持原样。

Make不是为用户交互而设计的,但它可以将该任务委托给脚本。

考虑这个脚本:

#!/bin/bash
echo What type of program is it?
read
if [ "$REPLY" = pq ]; then
echo 1
else
echo 0
fi

Make可以执行这个脚本,收集输出并将其分配给一个变量。唯一的技巧是,它将收集所有的输出,因此任何不属于的东西(例如"它是什么类型的程序"(都应该从脚本中删除:

#!/bin/bash
read
if [ "$REPLY" = pq ]; then
echo 1
else
echo 0
fi

并由makefile处理:

$(info  What type of program is it?)
ABC := $(shell ./ask.bsh)

最新更新