我一直在编写一个生成一些依赖项的 Makefile,我发现自己不得不复制规则,因为(旧版)代码库包含文件的.cpp
混合.cc
。好像有点不好看。无论如何要指定目标的先决条件可以是文件.cpp
还是.cc
文件?
因此,与其拥有:
%.d : %.cpp
$(CPP) -MM $(CPPFLAGS) $<
%.d : %.cc
$(CPP) -MM $(CPPFLAGS) $<
创建没有重复的东西,例如:
%.d : %.(cpp | cc)
$(CPP) -MM $(CPPFLAGS) $<
还是这种强制冗余只是 GNU Make 设计的一个不幸元素?