2 ms·
This brings back some memories. While it's nearly 20 years old, it's taken a surprisingly long time for this to become widely understood and tackled. Even tod
by rleigh 11y ago
This brings back some memories. While it's nearly 20 years old, it's taken a surprisingly long time for this to become widely understood and tackled.
Even today, tools like Automake default to recursion. It offers a non-recursive mode if you explicitly enable it and adapt your code to use it. I did this for my projects when the support was originally added, and the improvement is noticable, from both a speed point of view and overall maintainability. If you're not using Makefile generators, the effect is even more dramatic.
Today I use CMake for all new projects and have converted from Automake for some older projects. This is always non-recursive but split up into separate files. Having a global DAG of dependencies for the whole project and being able to run a parallelised make over a huge source tree is a wonderful thing to behold, and greatly reduces build times.