make: archivo de make jerárquico
(descargo de responsabilidad: estoy acostumbrado a los scons ... no tengo experiencia con la marca)
Contexto: Estoy usando Eclipse CDT que genera makefiles.
Digamos que tengo un directorio de proyecto 'lib' y 2 configuraciones de compilación 'Debug' y 'Release'. Eclipse CDT genera con gracia un archivo MAKE para cada configuración de compilación. Dichos makefiles terminan residiendo en las carpetas 'Debug' y 'Release'.
Ahora, lo que quiero hacer es tener un makefile en la carpeta 'lib' quellamadas los makefiles 'Debug / makefile' y 'Release / makefile'.
¿Cómo puedo hacer eso?
Quiero poder iniciar 'make' en la carpeta 'lib' y se llamará a ambas configuraciones con el (los) destino (s) especificado (s).
Solución Basándome en todas las grandes aportaciones reunidas aquí, ideé lo siguiente:
MAKE=make
BUILDS=Release Debug
TARGETS=all clean
$(TARGETS):
@for b in $(BUILDS) ; do $(MAKE) -C $b $@ ; done
$(BUILDS):
@for t in $(TARGETS) ; do $(MAKE) -C $@ $t ; done
%:
@for b in $(BUILDS) ; do $(MAKE) -C $b $@ ; done