Ted Gould wrote:
Uhm, yeah. I like the recursive Makefiles. I like being able to work in one directory (e.g. extension) and being able to continually rebuild that directory to get all the warnings and errors out. Also, by building the individual libraries I think it will be easier to create test programs that work with them (e.g. the ones in libnr). So, while I know there is a lot of cruft in the automake files (which should be removed), I think that recursive Makefiles is a good thing.
Non-recursive makes allow for that.
One way is to have makefiles that just work up to find the base, non-recursive one. And if you only want to make a single lib, just do "make libfoo".
Among other issues fixes is proper dependency checking. Also, as "Recursive Make Considered Harmful" points out, most of the time spent is in determining dependencies and checking status over and over. A single unified make gets a proper dependency graph and can speed builds greatly, especially for cases where only a few things have changed.
I've seen the first project I tried it on go from 5+ minutes for a "one-file" change build to under 20 seconds. Plus it started getting all sub-projects right where before they had .phony all over the place.