On Wed, 2009-08-12 at 10:23 -0500, Michael Muratet wrote: > I have been searching the list archives looking for information on how > make implements parallelization with make -j. From a most global view, > it appears that there is a data structure of dependancies and multiple > branches from the root are candidates for parallel processing. I > haven't seen any mention of a developer's manual, is there one? Can > anyone point me to some documentation or explain the process?
There is no developers manual. I'm not aware of too many open source projects that provide such a thing: there's the source code and the comments therein after all :-). It's not clear what exactly you're trying to understand so it's hard to explain the process. There's a discussion of GNU make's jobserver algorithm on my page (see the signature), but that talks only about how make ensures that no more than N jobs are run for "make -jN". Make doesn't implement any sort of threading. Since make spends most of its time just waiting for child processes to complete, when you're running in parallel it simply uses that "down time" to determine the next job that could be run. When it finds one, it will start that job and begin looking through its data structures for the next one, etc. -- ------------------------------------------------------------------------------- Paul D. Smith <[email protected]> Find some GNU make tips at: http://www.gnu.org http://make.mad-scientist.net "Please remain calm...I may be mad, but I am a professional." --Mad Scientist _______________________________________________ Help-make mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-make
