Richard W.M. Jones wrote:
Is there some rule about what can run in parallel and what can't?
For instance in the toplevel Makefile.am we have:
SUBDIRS = gnulib/lib src daemon appliance fish po examples images \ gnulib/tests capitests regressions test-tool
Each name in $(SUBDIRS) is completed before the build in the next one starts. We've seen that targets in the current Makefile.am can be built in parallel with any of those in SUBDIRS.
If these were to run in parallel, we'd be in trouble, but I'm assuming they don't do that because we'd have seen it by now.
automake.info is quiet on the issue AFAICT.
This is a good argument for avoiding sub-makes. On my list of experiments is to convert a project with non-empty SUBDIRS to build via a single top-level make that includes pieces from sub-directories. Improved parallelism via a complete dependency tree is one advantage, since tools that don't need libraries don't have to wait for an early library-build to finish before starting.