我一直在編寫一個執行一些依賴關係生成的Makefile,並且我發現自己不得不重複規則,因爲(遺留)代碼庫包含.cpp
和.cc
文件的混合。這看起來有點不雅觀。無論如何要指定目標的先決條件可以是.cpp
或.cc
文件?避免重複GNU制定規則
因此而不是:
%.d : %.cpp
$(CPP) -MM $(CPPFLAGS) $<
%.d : %.cc
$(CPP) -MM $(CPPFLAGS) $<
不喜歡重複創造的東西:
%.d : %.(cpp | cc)
$(CPP) -MM $(CPPFLAGS) $<
或者是這個執行冗餘GNU的只是一個不幸的元素製作的設計?
如果使用GNU autotools你可以使用m4宏 – Kevin