A software development system is described in which lattice theory is used to model the compatibility and desirability in the target execution environment of various build option parameters selected by a user. A library selector is formed by combining the build option parameters of each source code entity to produce a selector having the maximum level of execution environment requirements needed among the group of source code entities being compiled. This library selector may be used to select a particular library of machine code entities compatible with these execution environment requirements whilst providing the most desirable machine code entities to exploit the capabilities of the target data processing system.