KJam Build Tool 0.37

License: Free ‎File size: 371.00 KB
‎Users Rating: 1.3/5 - ‎3 ‎votes

ABOUT KJam Build Tool

KJam is a build tool like make. It uses a syntax similar to Jam but is much more powerful than the original. It is the fastest build system available today, for both full and incremental builds. It has the fastest dependency scanner of any current build system. Even for projects with many thousands of files, KJam will finish scanning and start building almost instantly. Unlike most current build systems, KJam is designed from the beginning to be multi-threaded, resulting in maximum utilization of multi-processor workstations. Through the use of batched building, a built-in shell, and parallel command execution KJam reduces build times radically. KJam on multi-processor workstations reduces MSVC build times by 2-5x compared to MSBuild or Gnu Make. KJam is designed to support even the largest projects with hundreds of thousands of files. It may even be run as a distributed peer network of build servers allowing projects to share the build load over a large heterogeneous network of build machines. KJam's dependency scanner uses advanced caching techniques which make it especially efficient when dealing with very large numbers of targets. It has per target viewpathing. KJam computes dependencies for its targets during building. There is no need for a separate off-line make depend step. By default, on any platform, KJam runs its command scripts using its own built-in sh-like shell. This way developers can expect a common set of minimal shell features on every platform. Using a built-in shell allows KJam to report errors in command scripts which reference the errant command directly in the jamfile, something an external shell cannot do. It eliminates another point of difference between multiple platforms making it easier to write actions which run on any platform. KJam currently runs on Windows and Linux, and comes preconfigured to support MSVC and GCC. It can be easily extended to support any compiler or software tool.