2
有没有办法使用本地Makefile if-else条件,还有它尊重目标特定的变量重新分配?Makefile有条件的不尊重目标特定的变量
Makefile例子:
#!/usr/bin/make
CONFIG = Debug
.PHONY: test printme
test: override CONFIG=Release
test: printme
@echo "Done."
printme:
ifeq "$(CONFIG)" "Debug"
@echo "should be DEBUG -> $(CONFIG)"
else
@echo "should be RELEASE -> $(CONFIG)"
endif
运行make test
打印输出如下:
should be DEBUG -> Release
Done.
我要找的输出是should be RELEASE -> Release
我怎么能做到这一点?我需要使用外壳条件吗?
生成文件条件总是被解释_当生成文件被解析_时。只有在配方被调用_时,才会设置目标特定的变量。 “ifeq”根本不可能考虑目标特定的变量,因为在解析“ifeq”时它们不存在。你必须在你的配方中使用shell条件或'$(if ...)'函数。 – MadScientist 2014-10-08 11:32:43