He estado escribiendo un Makefile que realiza alguna generación de dependencia y he encontrado a mí mismo tener que duplicar las reglas porque el (legacy) base de código contiene una mezcla de .cpp
y .cc
archivos. Parece un poco desagradable. ¿Hay alguna forma de especificar que los requisitos previos de un destino pueden ser .cpp
o .cc
?evitar la duplicación de GNU Make reglas
Así que en lugar de tener:
%.d : %.cpp
$(CPP) -MM $(CPPFLAGS) $<
%.d : %.cc
$(CPP) -MM $(CPPFLAGS) $<
crear algo sin la duplicación como:
%.d : %.(cpp | cc)
$(CPP) -MM $(CPPFLAGS) $<
O es esta redundancia forzada simplemente un elemento desafortunado de GNU make de diseño?
si utiliza Autotools de GNU que posiblemente pueda usar macros m4 – Kevin