# Compiling Programs

You can run a compile command on a server from the Remote System Explorer perspective. When you compile, the workbench determines the source type of the file, and then runs the last used compile command for that type. However, you can always change this behavior through Remote Systems preferences (see the related links).

You can also compile multiple resources listed in a filter by holding down the CTRL key and clicking on all the members you want to compile, right-click to access the compile menu, and then select the compile command you wish to run. The workbench determines what order to compile these resources according to the preferences you specify for that workspace.

Note that multiple file compilation is disabled if:

- One or more of the selected source types are not compatible.
- The selected resources are not from the same connection.

A compile command is always associated with a particular source type. It consists of an identifier and a command string that will be run on the server. Each profile in the Remote System Explorer has a set of source member types, and each source type has a set of compile commands associated with them. You can add source types to a profile and add compile commands to a source type.

IBM supplies a number of default compile commands for common file types and you can also add your own. Since compile commands are owned by a profile they can be shared using team support.

See the related topics below for more information.