Accelerate Make-Based Builds

Using the XGE Interfaces extension package, IncrediBuild can be used to speed up execution of make-based builds by running make tasks across computers and processors in the local network. As with all distributed IncrediBuild jobs, all remotely performed tasks are run through the Xoreax Grid Engine, fully emulating the initiating machine's environment and eliminating the need to copy files or install applications on remote machines.

From "Parallel Make" to "Distributed Parallel Make"

To solve the typically long time it takes to run a make build, many make tools support a "parallel make" mode of operation which allows execution of several processes in parallel, taking advantage of multiple cores/processors (see below for a partial list of make tools supporting parallel make). Using the Automatic Interception Interface, make tools supporting "parallel make" mode can be accelerated without requiring any changes to the makefile contents. This is achieved by intercepting the make tool build process and executing specific tools (for example: the C/C++ compiler) in parallel on remote computers in the local network using the Xoreax Grid Engine. This effectively transforms the "parallel make" mode to "distributed parallel make".

Partial List of Make Tools Supporting Local Parallel Task Execution

Following is a partial list of popular make tools which can be easily accelerated using the Automatic Interception Interface. Note that the interface can be applied to any tool supporting parallel execution of processes:
Make Tool
Parallel Execution Option
gmake (including variants) The -j [N] or --jobs[=N] command line option.
MinGW The -j [N] or --jobs[=N] command line option.
NMAKE More information.
Clearmake The -J command line option (more information. V. 2002.5 and up).
Omake The -j [N] command line option (more information).

Distributed Execution of Other Make Tools

Make tools that do not support local parallel task execution (see above) can be accelerated using the Submission Interface. This involves minor modifications to the makefile contents.