Ray*_*szt 5 unix if-statement makefile tcsh
我是Makefiles的新手所以请耐心等待.
我需要修改一个Makefile,这样一些规则会根据变量调用不同的实用程序.
现在,规则看起来像:
ci:
[shell syntax for tool (A)]
Run Code Online (Sandbox Code Playgroud)
但是现在我需要ci根据变量使用不同的语法.所以我在文件的顶部定义了一个全局变量:
TOOL = toolA
Run Code Online (Sandbox Code Playgroud)
要么
TOOL = toolB
Run Code Online (Sandbox Code Playgroud)
理想情况下我喜欢的是这样的东西,但显然它不起作用:
ifeq ($TOOL, toolA)
ci:
[syntax for tool (A)]
else
ci:
[syntax for tool (B)
endif
Run Code Online (Sandbox Code Playgroud)
有谁知道正确实现这样的事情的最佳方法?
谢谢!!
编辑:工具语法比一行更复杂.有时它的多行而不仅仅是"toolA args等".对困惑感到抱歉!
你只是缺少一些括号:
ifeq ($(TOOL), toolA)
...
Run Code Online (Sandbox Code Playgroud)
PS您可以使条件更严格(并删除一点冗余):
ci:
ifeq ($(TOOL), toolA)
[syntax for tool (A)]
else
[syntax for tool (B)
endif
Run Code Online (Sandbox Code Playgroud)