[cmake-developers] [SOLVED] Parallel build of cmake-2.8.3 works for both the "MinGW Makefiles" and "MSYS Makefiles" generators on the wine platform if you avoid using the standalone install target

Brad King brad.king at kitware.com
Thu Dec 9 10:00:51 EST 2010


On 12/09/2010 09:48 AM, Brad King wrote:
> On 12/08/2010 10:11 PM, Alan W. Irwin wrote:
>> So for both the Linux and wine platforms for all make-related
>> generators the only remaining issue is the important bug that the
>> parallel builds do not work correctly for the standalone install
>> target.
> Please prepare a build tree up to the point where you would be
> about to type "make -j4 install" and see this problem.  Then
> tarball it up and send it to me.

Nevermind.

It is a problem specifically with building CMake itself.  This code
in cmGlobalGenerator:

    if(mf->GetDefinition("CMake_BINARY_DIR"))
      {
      // We are building CMake itself.  We cannot use the original
      // executable to install over itself.  The generator will
      // automatically convert this name to the build-time location.
      cmd = "cmake";
      }

is the cause.  This tricks the custom command dependency tracing
into adding a dependency between the "install" target and "cmake".
This appears in the top-level Makefile as

  install: cmake
  install: preinstall

It makes the command

 make install -j 8

equivalent to

 make install cmake -j 8

which is not supported by our Makefiles.  We need to add a special
case like that above to block the extra "install: cmake" from
showing up when building CMake itself.

-Brad



More information about the cmake-developers mailing list