SparkBuild — Fast, Reliable Developer Builds

SparkBuild™ is a free build tool for developers who want to save time and quickly debug broken software builds.

Until now, build avoidance techniques such as object reuse and incremental builds have delivered broken builds and disappointing performance. SparkBuild takes a smarter approach to build avoidance called subbuilds, which deliver 6-10x speed improvements on developer builds with no additional hardware required. On top of the speed benefits, SparkBuild makes debugging broken builds just as fast, with powerful build analytics capabilities based on the commercial ElectricInsight solution. SparkBuild is GNU Make and Nmake compatible. Best of all: SparkBuild is free to use for commercial and non-commercial projects.

The SparkBuild build tool is a free download. The product, as well as how-to videos, documentation, and discussion forums are available at www.sparkbuild.com.

Subbuilds: Build Avoidance Done Right

One of SparkBuild's key features is the subbuild technology, which helps developers avoid wasting time on unnecessary builds. Tools like ccache and ClearCase winkins have co-opted the term "build avoidance," but in fact they do object reuse, not build avoidance, and are not always effective for developer builds. Subbuilds are a simple yet effective approach to build avoidance, and are much faster than object reuse.

Subbuilds are an improvement on standard incremental build technology. Instead of checking the whole build for up-to-date status, and then rebuilding just what has changed, our technology uses a pre-existing 'map' to determine what parts of the code are needed to produce the target you're trying to build, and then performs an incremental build on just those pieces. This skips a lot of makefile parsing, stating, and always-run rules for irrelevant components, and leads to 6X or better speed improvements with no additional hardware required. As an added benefit of subbuilds, that 'map' lets you build from a subdirectory and still get the behavior of an incremental 'from the top'.

SparkBuild Insight: Visual Build Debugging

SparkBuild features powerful analytics based on the commercial ElectricInsight product help developers troubleshoot builds at a glance. SparkBuild Insight uses information recorded during the execution of your build to profile its structure and results. This data is used to provide clear insight into the build process, making it simple to identify component relationships, failure causes, and opportunities for optimization.

It gives you a visual environment to rapidly discover build outcomes — instantly identifying specific targets which failed and tracing back to the originating makefile rules — as well as graphical reports that show where your build time is being spent, whether in compilation, file I/O, linking, or other classifications. With this information, making decisions on how to best solve performance bottlenecks, identifying the right place to make structural modifications, and resolving integration issues with new changes and components is straightforward and easy.

Product Comparisons

  SparkBuild
Insight
ElectricInsight
     
Analyze makefile dependencies
Analyze missing dependencies  
Estimate parallel build performance

Identify build time by tool
Display the structure of parallel builds  
Watch live and replay builds  

Track environment and build configuration
Track file and registry usage  
Produce a manifest and BOM  

Search build rules and command output
Change impact analysis  
Identify where specific sources are used  
Identify unnecessary dependencies  

Compatible with SparkBuild
Compatible with ElectricAccelerator  

  SparkBuild ElectricAccelerator
     
GNU make support
NMAKE support
Visual Studio support  
Eclipse support

Optimized gmake parser
Subbuild optimized component builds
Accurate incremental builds  
Missing dependency detection  
Clustered parallel builds  

Reports build structure information
Reports makefile dependencies
Reports missing dependencies  
Reports file and registry information  

Compatible with SparkBuild Insight
Compatible with ElectricInsight