PORTING APL "BASIC" TO A NEW PLATFORM ============================================================================== General instructions porting APL to a target platform. NOTE: ONLY the intefaces listed in this file have dependencies on the target platform and require porting. Porting the System Interfaces (apl/system/*api.h) ------------------------------------------------------------------------------ 1. Create a new platform specific directory tree under the apl/platmappings/ directory. 2. ONLY the following interface(s) must be implemented: apl/system/errapi.h 3. Create a 'platform/' directory to contain the 'mapping' header files that are created in step 4. 4. Create a 'mapping' header file for each of the above the interface files. Each mapping file is responsible for providing concrete definitions for all of the methods, types, constants, etc. 'declared' in the interface file. See the following directories for example mappings: apl/platmappings/ansi apl/platmappings/xmk 5. Create an 'adaptor' code that is require to map the APL interface to the underlying platform. Typically, this code is placed in a sub-directory in the apl/system directory tree, but it can reside anywhere. Porting the logging interfaces (apl/logging/*api.h) ------------------------------------------------------------------------------ The logging intefaces are 'partially' dependent on the target platform. The platform dependencies come from platform specific data types (such as AplSize_t, etc) and the logging MEDIA. Because of these dependencies, the logging interface MAY need to be ported to a particular platform. 1. ONLY the following interface(s) have platform dependences: apl/logging/xslogapi.h 2. If not using the './platform/' directory created in step 3 from porting the system interface, create a 'platform/' directory to contain the 'mapping' header files that are created in step 3. Note: There can be multiple 'platform/' directories. The only requirement is that there is one and only 'mapping' header file per interface file. 3. Create a 'mapping' header file for each of the above the interface files. Each mapping file is responsible for providing concrete definitions for all of the methods, types, constants, etc. 'declared' in the interface file. See the following directories for example mappings: apl/devtests/platmappings/ansi apl/devtests/platmappings/xmk 4. Create an 'adaptor' code that is require to map the APL interface to the underlying platform. Typically, this code is placed in a sub-directory in the apl/logging directory tree, but it can reside anywhere.