## External Builds Support

The IDE will perform the following tasks on external makefiles:

- Build
- Debug
- File Management in Project Manager window
- Source Browsing
- Error Lookup

The IDE can build an external makefile and debug its output. A linker plugin will enable the IDE to manage a command line and targets associated with a makefile. The command line is executed when a build step is initiated. The linker plugin will also supply the executable to use for debugging.

The linker plugin will provide a preference panel named External Build that is used to configure a target. The preference panel provides text fields for you to configure the command line for the target (which will enable building), specify the working directory and the output file used to launch a debugging session, and the debug platform.

The linker plugin is generic so that it can be used regardless of the target CPU and OS. The list of available debugger preference panels will be updated by the IDE when you select the debug platform.

The External Build Target preference panel will collect the following information:

- Build command line to be executed in the build step

> The command line will be sent to the OS shell and will contain all parameters and/or switches that are necessary for proper building of the make file.

- Build directory in which command line will be executed.
- Output file name - Executable to be launched in the debug step. The file will be relative to the output directory specified in the Target Settings preference panel.
- Debug platform - The debugger platform represents the combination of OS and CPU that your build is targeting. “Unspecified/Remote debugging” is the default, which indicates you have not specified a debug platform. In most cases, not specifying a platform will result in not being able to debug. However, some platforms may allow debugging if no additional debugger preference panel is used. If only one platform entry exists with the “Unspecified” option, then it will become the default entry.

> After the IDE converts the makefile into a Carbide project, source files can be added in the project manager window. Files that appear in the project manager will be parsed by the language parser and will supply Source Browsing information, such as code completion.

> When a build step is initiated, the linker plugin will gather output after the command line begins executing. Output is directed to the IDE and displayed in a read-only Build Output Window. A build output window is displayed for each target. The build output window can be displayed manually by selecting the menu command View > Build Output (Windows) or Window > Build Output (Linux/Solaris/Mac). This command is enabled for targets that use the external build linker.

> If multiple build steps are performed on the same target, the output from each build step will be appended to the build output window. Each block of output will be separated by “----Build started----” and “----Done----” tags.

> The build output window will allow users to navigate directly to the location of a compilation error. Double-click a line that contains an error message or press Enter when the cursor is in the line. If the IDE determines that a valid error message exists on the selected line, the source file is opened to the line on which the error occurred.

> Click the right mouse button in the build output window to display a context menu.

- The Copy command will copy selected text to the clipboard. If no text is selected then the line that contains the cursor will be copied.
- The Clear All command will clear contents of output window.
- The Go To Error command will navigate to the error location. This is identical to double-clicking.