【问题标题】:How to conditional set up a Makefile variable by testing if a file exists如何通过测试文件是否存在来有条件地设置 Makefile 变量
【发布时间】:2010-11-07 20:09:15
【问题描述】:

例如: 我要:

如果文件 1 存在:

CLEAN_SRC = *.h file3

其他

CLEAN_SRC = 

【问题讨论】:

    标签: makefile


    【解决方案1】:

    如果file1 不存在,那么$(wildcard file1) 将评估为空字符串。

    ifeq ($(wildcard file1),) 
        CLEAN_SRC =
    else 
        CLEAN_SRC = *.h file3
    endif 
    

    【讨论】:

    • 注意缩进和制表符/空格字符。例如。 CLEAN_SRC 需要用 TAB 字符分隔,否则会抛出 no separator 错误。
    • @ArunM:我不认为TAB/空格字符是这样的。只有 规则定义 需要 Tab 缩进。 makefile 的其他部分可以缩进空格,或者根本不缩进——make 不在乎。
    • $(realpath file1) 在这种情况下可以替代 $(wildcard file1),因为如果文件丢失,它也会计算为空字符串。
    • 但是,有人告诉我 $(wildcard file1) 比 $(realpath file1) 更受青睐,因为它不会打印可能被误认为指示错误的消息。
    • 我会先用ifneq ($(wildcard file1),) 写肯定的情况,然后“文件不存在”将是else 的情况。
    猜你喜欢
    • 2015-08-21
    • 2011-02-10
    • 2019-01-03
    • 1970-01-01
    • 2016-12-12
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    相关资源
    最近更新 更多