Makefile是否支持基于文件是否存在的某种条件依赖项?

时间:2015-02-18 23:28:06

标签: makefile gnu-make

例如,我想做这样的事情:

%.o: %.fast.c                       # Prefer this if %.fast.c exists
        $(CC) $(FASTFLAGS) $< -o $@

%.o: %.slow.c                       # Only if %.fast.c does not exist
        $(CC) $(SLOWFLAGS) $< -o $@

这可能吗?

1 个答案:

答案 0 :(得分:1)

如果make无法找到(并且无法构建)模式规则的先决条件,那么make将不会使用该规则,而是将使用另一个规则。考虑从各种来源构建.o文件的内置规则(.c.cpp.f,仅举几例。)

有关详细信息,请参阅makefile的How Patterns Match部分。

使用该手册部分需要注意的唯一警告是,在3.81之前的制作没有最短的干规则。这是3.82的新增内容。