Избегайте дублирования правил GNU Make

Я писал Makefile, который выполняет некоторую генерацию зависимостей, и мне пришлось дублировать правила, потому что (устаревшая) кодовая база содержит смесь .cpp и .cc файлы. Это кажется немного некрасивым. Можно ли каким-либо образом указать, что предварительные условия цели могут быть файлами .cpp или .cc ?

Так что вместо того, чтобы иметь:

%.d : %.cpp
    $(CPP) -MM $(CPPFLAGS) $<

%.d : %.cc
    $(CPP) -MM $(CPPFLAGS) $<

Создать что-нибудь без дублирования, например:

%.d : %.(cpp | cc)
    $(CPP) -MM $(CPPFLAGS) $<

Или это принудительное дублирование - просто неудачный элемент дизайна GNU Make?

5
задан Alastair 22 August 2011 в 15:43
поделиться