我是 Makefile 新手,所以请耐心等待。
我需要修改 Makefile,以便某些规则根据变量调用不同的实用程序。
现在,规则如下:
ci:
[shell syntax for tool (A)]
但现在我需要 ci 根据变量具有不同的语法。所以我在文件顶部定义了一个全局变量:
TOOL = toolA
或
TOOL = toolB
理想情况下,我想要的是这样的东西,但显然它不起作用:
ifeq ($TOOL, toolA)
ci:
[syntax for tool (A)]
else
ci:
[syntax for tool (B)
endif
有人知道正确实现此类事情的最佳方法吗?
谢谢!!
编辑:该工具语法比一行更复杂。有时它是多行,而不仅仅是“toolA args等”。抱歉造成困惑!
最佳答案
你只是缺少一些括号:
ifeq ($(TOOL), toolA)
...
P.S.您可以使条件更严格一些(并删除一些冗余):
ci:
ifeq ($(TOOL), toolA)
[syntax for tool (A)]
else
[syntax for tool (B)
endif
关于unix - Makefile 规则和 If 语句——如何实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6348643/