To set project properties that apply to all files in the project, right-click the project in the
PL/I Explorer view and click
Properties, then expand the
Micro Focus > Project Settings > PL/I Compile Settings node. The following options can be set:
Common options
- System
- Enables linking to the mainframe system with which the program will operate: either IMS, MVS for programs executing under JCL, or CICS.
Restriction: This option applies to Mainframe PL/I projects only.
- Compile for debug
- Compile the program for debugging.
- Generate listing file
- Produce a compiler listing file. The default name of the file containing the listing is
xxx.lst, where
xxx is the source filename (excluding the pathname) up to, but not including, a last "." (period) in the name. For example, if the source filename is
prog.pl1, the default listing is
prog.lst. A compiler listing is produced by default whenever -exp, -map, or -xref is specified.
- Optimization level
- Specifies the level of optimization by the PL/I compiler, where level stands for the level (1 - 3) of optimization. The default setting is -noopt. If a level is not included, the program is optimized at level 3. If -deb is specified, -opt 2 is the maximum level allowed. Note -opt -deb is equivalent to -opt 2 -deb.
- Endianness
-
Select the endianness of the system. The default is "Big endian" (or non-native). Select "Native" for little endian.
- EXEC preprocessor options
- Specify options for the EXEC preprocessor. Options include PLITEST and NEWNAME(name)
- Additional options
- Enter any other required compiler directives in this text box.
Logging information
- Warnings for filters in structures
- Produce warnings for structures containing fillers.
- Emit diagnostics
-
Emit diagnostics for I, W, E, or S level errors.
- Print statistics
- Prints compiler statistics to the standard output as each compiler phase completes.
- Cross reference information
-
Controls the production of cross reference information
- Verbose output
- Shows additional build output.
Data types
- Use float binary as float decimal
-
Controls whether or not to use float binary as float decimal.
- Use floating point in trigonometry
-
Controls the uses of floating point for trigonometric functions.
- Fixed binary precision
-
Changes the default precision of fixed binary variables.
- Inverse bits
- Inverse bits for UNSPEC, INT, and POSINT on big-endian machines.
Formatting and display
- Control alignment
- Controls alignment of generated code.
- Currency symbol
- Provides a currency symbol for picture specification. It can take the character, decimal number, or hex constant of the form 0xDD. For example:
- -currency_symbol £
- -currency_symbol 163
- -currency_symbol 0xa3
- Specify margins
-
Specifies the margins (-margins left, right).
- Additional NLS support
- Provides extended character support. For example, "-names 'string1' ['string2']" where
string1 are extralingual characters to add to identifiers, and
string2 are optional corresponding uppercase characters. Hex constants of the form 0xDD are accepted in place of the strings. The default is -names.
Initialization
- Initialize aggregates
- Performs initialization of aggregates (arrays and structures) compatible with 7.x versions of Open PL/I.
- Initialize automatic storage
- Initializes automatic storage to zero.
- Set value of null pointer
- Designates a null pointer value
n to be returned by the NULL built-in function, where
n is a decimal value. If this option is not specified, the value of the NULL built-in function is an address with all bits set to 1.
- Storage allocation map
- Specifies production of storage allocation maps.
Data checking
- More extensive prototype checking
- Provides more extensive prototype checking on arguments against parameters in entry declarations (also assumed by default when using -vax).
- Subscript range checking
- Specify subscript range checking
- Undeclared variable declarations
- Do not allow implicit compiler declarations for undeclared variables.
External elements
- External vars in data section
- Causes external variables to be defined in the .data section. You must use this option for programs using external files.
- Include file suffix
- File extension to use for include files. While the defaults are both
.in and
.inc, you can only add one extension in this field.
- Include handling
- Determines how %INCLUDE statements are handled.
- Unreferenced external handling in obj files
- Include or exclude unreferenced external entries in object files.
Compatibility
- Use VAX conventions
- Makes the following adaptations for programs originally written with Digital Equipment Corporation's PL/I Compiler for the VAX platform:
- enables the Fixed Binary(p ≤ 7) data type as a one-byte signed binary integer.
- enables Float Binary(24) as equivalent to Float Binary(23).
- enables Float Binary(53) as equivalent to Float Binary(52).
- causes the BINARY attribute to be assumed if the FIXED attribute is specified without BINARY or DECIMAL.
- Limit argument descriptors
- Tells the compiler to produce argument descriptors for calls only when array bounds or string lengths in the parameter declaration are represented by the asterisk (*) symbol.
- When this option is not used, the compiler produces descriptors for array, structure, and string arguments, which can be a problem for very large structures.
- Set unaligned at level 1
- Causes all structures to be mapped as if the UNALIGNED attribute is specified at the level 1 structure level. This option is for compatibility with versions of DEC VAX PL/I.
Other compiler options
- Alternate NOT symbol
- Selects alternate NOT symbol.
- Alternate OR symbol
- Selects alternate OR symbol.
CICS Preprocessor settings
Restriction: These options apply to Mainframe PL/I projects only.
You need to select
Enable configuration specific settings to change these settings.
- CICS preprocessor options
- Specify the options for the CICS External Compiler Module to use.
Macro Preprocessor settings
You need to select
Enable configuration specific settings to change these settings.
- Emit full listing
- When invoking macro preprocessor do not emit %NOLIST before includes.
- Infuse include file
- Name of include file to infuse as first line of source
- No debug information
- Specifies that the preprocessor will not generate the normal debug information that it passes to the Compiler. This is useful if you wish to debug using the post-preprocessing PL/I source file rather than the original source file.
- Define a macro
- Causes value to be used in place of name wherever the identifier name appears.
- Undefine a macro
- Removes a definition for name, if name was created by a -define option, and leaves the identifier name in the source as name. It does not preclude a %REPLACE statement or %name=expr from changing the value of name.
- Specify variant
- Supplies a string to be used in place of the VARIANT built-in function.
- Process include name
- Causes the preprocessor to examine a %INCLUDE file name for the characters @, #, and $, and to replace @ with A, # with N, and $ with D.
SQL Preprocessor settings
You need to select
Enable configuration specific settings to change these settings.
- DB2 preprocessor options
- Specify the DB2 precompiler options for the SQL External Compiler Module to use.