# Electric Make plugin

Electric Make plugin
====================

Electric Make (eMake) distributes build jobs in parallel to a cluster of nodes to automatically execute a build faster than with a sequential build. Electric Make is compatible with GNU Make, Microsoft NMAKE, Symbian’s Make variant, Ant, and Visual Studio.

For more information, refer to the [Electric Make user guide](/docs/cloudbees-build-acceleration/latest/emake-user-guide/).

The Electric Make plugin calls the ElectricAccelerator tool’s `emake` command-line tool and passes it user-provided parameters.

Plugin Version 1.0.8.2020102201

Revised on October 22, 2020

[](#_supported_versions)Supported versions
------------------------------------------

This plugin was developed and tested against version 5.0.0.

[](#_create_electric_make_plugin_procedures)Create Electric Make plugin procedures
----------------------------------------------------------------------------------

Plugin procedures can be used in [procedure steps](/docs/cloudbees-cd/latest/procedures/), [process steps](/docs/cloudbees-cd/latest/applications-processes/plugin-process-steps), and [pipeline tasks](/docs/cloudbees-cd/latest/pipelines/example-plugin-task), allowing you to orchestrate third-party tools at the appropriate time in your component, application process, or pipeline.

Depending on your plugin configuration and how you run procedures, the **Input parameters**  **Configuration name** field may behave differently in the CloudBees CD/RO UI. For more information, refer to [Differences in plugin UI behavior](/docs/cloudbees-cd-plugin-docs/latest/#plugin-ui-differences).

### [](#runEmake)RunElectric make

Builds your applications using the eMake tool.

 

Parameter

Description

Working Directory

Provide the directory where the eMake project is located.

Cluster manager

Required. Name of the cluster manager host (`Host:port`). This is equivalent to the command-line `--emake-cm` option.

Emake root

Required. List of eMake roots, for example, `/c/example[path separator]/c/example2/root[path separator]…​`. Default is the job workspace. This is equivalent to the command-line `--emake-root` option.

Emulation mode

Required. Emake emulation mode.

Starting director

Root of the build tree. Use this option to run a build in a subdirectory. This is equivalent to the command-line `-C` option.

Targets

List of targets to be built. If not specified, eMake builds the default target for the makefile in the specified starting directory.

Additional options

Additional command-line options for eMake.

Annotation level

Emake annotation detail settings. This is equivalent to the command-line `--emake-annodetail` option.

[](#_electric_make_plugin_example)Electric Make plugin example
--------------------------------------------------------------

In this example, the Electric Make plugin is used to compile and execute defined tasks in a Makefile just as if using GNU Make to do it.

1.  Create a simple Makefile with a single task named `sayHello`:
    
    ![Create a Makefile](../../../cloudbees-common-sda/latest/_images/cd-plugins/ec-emake/emake-1.f186280.png)
    
2.  Create a procedure and fill in the parameter form:
    
    ![Create a plugin procedure](../../../cloudbees-common-sda/latest/_images/cd-plugins/ec-emake/emake-2.c7c24c4.png)
    
3.  Run the procedure to view the results:
    
    ![Run plugin procedure](../../../cloudbees-common-sda/latest/_images/cd-plugins/ec-emake/emake-3.8ea5204.png)
    

[](#_electric_make_plugin_release_notes)Electric Make plugin release notes
--------------------------------------------------------------------------

### [](#_1_0_8)1.0.8

*   The documentation has been migrated to the main documentation site.
    

### [](#_1_0_7)1.0.7

*   Added metadata that is required for the 9.0 release.
    

### [](#_1_0_6)1.0.6

*   Renamed to "ElectricFlow".
    

### [](#_1_0_5)1.0.5

*   Added the option to specify a working directory.
    

### [](#_1_0_4)1.0.4

*   Procedure name(s) were changed in the step picker section.
    

### [](#_1_0_3)1.0.3

*   Updated the XML parameter panel.
    
*   Updated the documentation.
    
*   Made code improvements.
    

### [](#_1_0_2)1.0.2

*   Fixed local resource issues.
    
*   Added support for Postp matchers.
    

### [](#_1_0_1)1.0.1

*   Updated the documentation.
    

### [](#_1_0_0)1.0.0

*   Initial release.