我有一个makefile
PATH = "MyFolder_"{ver}
compile:
[list_of_commands] $PATH
然后像这样运行
make ver="1.1" compile
如果未指定 ver ,如何停止编译?
我想要这样的东西
#input
make compile
然后输出
No version specified. Compilation terminated.
答案 0 :(得分:1)
有很多方法可以做到这一点。部分取决于你正在使用哪个版本的make,以及你正在运行它的操作系统(哪个shell调用)。
请注意, NOT 应该在makefile中使用变量PATH
;这是系统的PATH
变量,重置它会破坏你的所有食谱。
在这样的变量中包含引号通常也是一个坏主意。如果你想引用它,那么在食谱中添加引号。
如果你有GNU make,你可以这样做:
ifeq ($(ver),)
$(error No version specified.)
endif
如果您没有GNU make,但是您使用的是UNIX系统或带有UNIX shell的Windows,则可以执行以下操作:
MYPATH = MyFolder_$(ver)
compile:
[ -n "$(ver)" ] || { echo "No version specified."; exit 1; }
[list_of_commands] "$(MYPATH)"
如果你在Windows上使用Windows,那么你可以做类似的事情,但我不确定细节。