unix - Makefile 规则和 If 语句——如何实现?

标签 unix if-statement makefile tcsh

我是 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/

相关文章:

macos - 在Mac中计算目录及其子目录的特定文件类型的数量

vba - If 和 Do Until 循环 EXCEL VBA

arrays - 使用 Swift 中的变量过滤数组中的结果

makefile - 如何解决:/usr/bin/ld: cannot find -lGL

makefile - $@ 如何在 make 条件下工作?

c - 如何解决两个共享库之间的相互引用?

linux - 如何使用 Unix 排序从平局决胜组中选取最高值

makefile - override_dh_auto_install 在debuild期间不运行

使用 wget 下载的图像大小为 4 个字节

Java代码问题: Capping an amount