I have a gigantic project that is built using make files. Running make at the root of the project takes more than 20 minutes when the files have not been changed (i.e., just moving the project and checking the files).
I would like to create a dependency map that tells me which directories that I need to run make on the basis of the files (s) have been changed. I already have a list of updated files that I can get from my version control system, and I would like to skip 20 minutes and go straight to the places that need to be recompiled.
The project combines several languages ββand custom tools, so ideally it does not depend on the language (i.e. process all make files only to create dependencies). I will also agree to a solution based on C / C ++, since most of the project is in C ++. The project is built on Linux.
[Change - clarifications, replies to comments]
The project is truly gigantic, it takes 20 minutes simply because of the size and because of all the things described in the link below ("recursive will be considered harmful"). Unfortunately, the project is made up of many parts that come from different places, and a little flexibility in what I can do with low-level mafia files ... those that combine elements on the upper level are the ones that I manage.
Stan source share