Not all r-code is portable. You can usually port r-code between clients as long as you do not change display architectures, database types, platform classes or major r-code versions. For example:
If you port a Windows application to character-mode, you must recompile, because the display architecture has changed.
If you port a character application compiled against an ORACLE DataServer on a SUN workstation to a character application accessing an ORACLE DataServer on a Hewlett-Packard (HP) workstation, you do not have to recompile (assuming that the ORACLE release level does not change and both platforms are 32-bit or 64-bit, respectively).
If you port a character application compiled against the DataServer for ORACLE on a SUN workstation to a character application accessing the DataServer for Microsoft SQL Server on an HP workstation, you must recompile because the database type has changed.
If you migrate an application from either Progress® Version 8 or Progress Version 9 to OpenEdge Release 10, you must recompile it. If you want to migrate a Progress Version 8 application to OpenEdge 10, it is not necessary to upgrade to Version 9 first, you can upgrade from Progress Version 8 directly to OpenEdge Release 10.
You must be able to reproduce the target environment to generate the required r-code. For each combination, you have to keep track of a different code tree. For each combination, you also require a full development OpenEdge product to do the compilations.