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.