1. A method of compiling a source code program into a plurality of object code files for a plurality of target processors comprising the steps of: dividing the source code program into a plurality of functional modules; compiling each functional module into a plurality of target object versions, each target object version for one of the target processors; for each functional module, merging the target object versions by deleting any target object versions of that functional module that are identical to another target object version by 1) for each functional module, selecting a first target object version from the plurality of target object versions for that functional module, 2) deleting any target object versions of that functional module that are identical to the first target object version for that functional module, and 3) selecting a different first target object version for that functional module and repeating step 2) until all functional module target object versions for all functional modules have been selected or deleted; and after merging, forming a composite object code file of all function module target object versions.