Le bon sens nous pousse à utiliser un Makefile par répertoire, sauf cas particuliers où il n'y a rien à compiler ou à traiter d'une manière générale dans ces dépôts.
Ensuite, on compile en général toutes les sources et ressources d'un même module en un seul *.o local, puis le Makefile du premier niveau les assemble tous avec le main pour former l'exécutable final.
[^] # Recursive make considered harmful
Posté par alf . En réponse au message makefile pour code divisé en modules. Évalué à 3.
Sauf quand les dépendances sont plus complexes que ça...
http://www.canb.auug.org.au/~millerp/rmch/recu-make-cons-har(...) explique (en anglais) pourquoi les "make" récursifs posent problème, et y propose une solution non-récursive simple à mettre en oeuvre.