例如,我想做这样的事情:
%.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 $@
这可能吗?
答案 0 :(得分:1)
如果make无法找到(并且无法构建)模式规则的先决条件,那么make将不会使用该规则,而是将使用另一个规则。考虑从各种来源构建.o
文件的内置规则(.c
,.cpp
和.f
,仅举几例。)
有关详细信息,请参阅makefile的How Patterns Match部分。
使用该手册部分需要注意的唯一警告是,在3.81之前的制作没有最短的干规则。这是3.82的新增内容。