A build tool is a programming utility that may be used when building a new version of a program. For example, “Make” is a popular open source build tool that uses “makefile”, a file that instructs the Make tool to perform build operations. Make is typically used to ensure that the latest source files (and the files that are dependent on them) will be compiled into a new version (build) of a program. Build tools are typically invoked by executing a command line instruction. A command line option is referred to as a switch and is an argument to a command that modifies the function of the utility rather than providing data. Options generally start with a character such as “−” in Unix or “/” in MS-DOS. The character is usually followed by a single letter or digit.
Currently, there is no easy way to extend a build system to integrate external tools (that is, tools not originally built in to an existing design environment) into a project system within a design environment so that the tools interact with the user in the same way that built-in tools interact, without changing the design environment programmatically. Some design environments support external tools to some extent by allowing a command line to be executed at a particular time in the build process. The command line typically must be typed in exactly as the command line will be executed for the project. If the same tool is used for multiple projects, each project will have a separate command line. The mechanism provided for integrating external tools, if present at all, is not user friendly or versatile. It would be helpful if there were an easier way to integrate external tools into an existing design environment in such a way that no coding is required, a familiar user interface is employed and a rich and versatile means of integration is provided, with the end result being that the integrated tool is indistinguishable from a built-in tool.