On Tue, 2009-09-29 at 19:46 -0400, Bill Hoffman wrote: > Alan W. Irwin wrote: > > On 2009-09-29 16:36-0400 Bill Hoffman wrote: > > > >> make -j N is only supported with the all target. > > > > How difficult would it be to implement parallel build support for more than > > just the "all" target? Note, if there is some limitation that makes it > > impractical or inefficient to implement this current "all" target > > capability > > for every target, you could instead implement this capability just for the > > targets where this capability is wanted (as designated, say, by a > > PARALLEL_BUILD=ON target property). > > > It is very hard to implement on top of make. Let me restate what I > mean, it is not the all target that is special. You can do make -j N > target. You just can't do make -jN target1 target2 if target1 and > target2 have a common target that they depend on. You can only specify > one target at a time for make -j N. The /fast targets could be used to > avoid the issue you are having maybe... > Hi Alan,
I don't think this is a limitation of CMake. It's rather a limitation of make. An (in)famous example of doing a parallel build with 'make' that will likely cause a broken build is: $ make -j4 all install In this example, it's possible that 'make' will try to install, e.g., a library that has yet to be built. The only safe way to run a parallel 'make' with multiple targets is to serialize them (sounds contradictory, doesn't it?): $ make -j4 all && make -j4 install Or better: $ export MAKEFLAGS=-j4 $ make all && make install Best regards, Marcel Loose. _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake