-
-#
-
Provides information on how the Compiler and linker would be invoked without actually invoking them. This option also shows which UNIX options are translated to Micro Focus options; for example, when the standard UNIX -O option is given on the driver command line, it is translated on the Compiler invocation line as -opt.
-
--agginit
- Performs initialzation of aggregates (arrays and structures) compatible with 7.x versions of Open PL/I.
Example:
dcl myarr(4) fixed bin(31) static init (1);
put skip list (myarr);
results in:
1 1 1 1
By default, without -agginit, only the first element is initialized.
-
-bigendian
- Specifies that all fixed binary items are implicitly declared with the BIGENDIAN data attribute, unless the NATIVE attribute is explicitly applied to a data item.
-
-c
-
Suppresses linking and produces a relocatable object file. This option applies to mfplx only.
-
-coffdebug
- Emits line number information for the Visual Studio debugger to enable breakpoints, statement tracing, and call stack information of Open-PLI source code.
Note: Evaluation of variables is not supported.
-
-currency_symbol
-
Allows an alternate currency symbol for picture specification. It can take a character, decimal number, or hex constant of the form 0xDD, for example, -currency_symbol £, -currency_symbol 163, -currency_symbol 0xa3.
-
-db2
-
Invokes the DB2 precompiler,
mfdb2. The default DB2 precompiler output file name is
xxx.pp2, where
xxx is the name of the source file. If the -ppdb2 option is not specified, the file
xxx.pp2 is deleted after the compilation phase is completed. The -db2 option applies to mfplx only.
-
-deb
-
Produces debugging information for CodeWatch, Micro Focus's source-level debugger. You must specify this option if you intend to use CodeWatch to debug this source. When using -deb, you may specify only optimization levels 1 or 2.
-
-default_binary
-
Causes the BINARY attribute to be assumed if the FIXED attribute is specified without BINARY or DECIMAL.
-
-default_decimal
-
Causes the DECIMAL attribute to be assumed if the FIXED attribute is specified without BINARY or DECIMAL. This option is the Compiler default.
-
-defext
-
Causes external variables to be defined in the .data section. You must use this option for programs using external files.
The -defext option causes the initialized values of STATIC EXTERNAL variables and external file constants to be defined. Each STATIC EXTERNAL variable that has an INITIAL value must be declared in one and only one module that has been compiled with -defext. Failure to do so causes the INITIAL value to have no effect. The default is -nodefext.
Also, each file constant must be declared in one and only one module that has been compiled with -defext. When -defext is used, file attributes specified in the file declaration will be merged with attributes specified when the file is opened. This is critical when doing VSAM/INDEXED I/O.
-
-E
-
Causes any specified precompilers or preprocessor (-macro, -unikix, -db2) to be run on the source file, and saves their output, but stops without running the Compiler.
-
-exp
-
Produces an expanded listing of the generated code in the form of assembly language statements in the listing file.
-
-fdasfb
-
Causes Float Decimal data to be internally coded as Float Binary. This option produces much faster code but loses precision in the least significant digits of arithmetic results. -fdasfb is the default. See also the -nofdasfb option.
-
-flag
- Specifies the minimum diagnostic level of messages listed in the compiler listing.
-flag minimum diagnostic level
The minimum diagnostic level can be:
- I
- Emits diagnostic messages beginning at the Informational level (Lists all messages. This is the default).
- W
- Emits diagnostic messages beginning at the Warning level.
-
- E
- Emits diagnostic messages beginning at the Error level.
- S
- Emits diagnostic messages beginning at the Severe level.
- A
- Abort.
-
-fmaxp
-
Causes extended floating-point precision to be used for the trigonometric built-ins and for the following arithmetic built-ins: EXP, LOG, LOG10, LOG2, SQRT. -fmaxp is the default.
-
-highbif
-
This compile-time switch allows changing the value returned by the HIGH() built-in function. For example, -highbif 127 (the default value is 255; the value 127 maybe used for compatibility with earlier versions of Open PL/I).
-
-ipath
dirlist
-
Directs the Compiler to search specified directories for files to be included in the source program text by use of the %INCLUDE statement.
dirlist is an ordered list of directories of the form
dirname[:dirname] ...
-ipath instructs the Compiler to use these directories in the specified order in its search for files to satisfy %INCLUDE statements (except in cases where an absolute directory path is specified in the %INCLUDE statement).
For example, suppose the source program contains:
%INCLUDE partlist;
and the Compiler invocation command is:
mfplx source_file -ipath .:/u/libr1:/u/libr2
In this case, the Compiler will first search for "PARTLIST" in the current working directory, then /u/ libr1, and finally
/u/ libr2. If that fails, it will search for "partlist" (lowercase) in the same directories.
In a Windows environment, the equivalent Compiler invocation is:
mfplx source_file -ipath .;drive:\libr1;drive:\libr2
-
-isuffix
string
-
Causes
string to be appended to the filename specified in %INCLUDE statements, except those in which the quoted filename form of the %INCLUDE statement is used.
For example, suppose the source program contains:
%INCLUDE partlist;
and the Compiler invocation command is:
mfplx source_file -isuffix .INC
In this case, the Compiler will search for a file named "PARTLIST.INC".
-
-l [
file]
-
Produces a Compiler listing where
file is the name of the file to which the listing is output. If you do not supply a filename, you must place this option after the source filename on the command line; otherwise, an error message appears. The default name of the file containing the listing is
xxx.list, where
xxx is the source filename (excluding the pathname) up to, but not including, the last "." (if any) in the name. For example, if the source filename is
prog.pl1, the default listing is
prog.list (prog.lst for Windows systems). A Compiler listing is produced by default whenever -exp, -map, or -xref is specified.
-
-longint
-
Changes the default precision of Fixed Binary variables from (15) to (31).
-
-lowercase
-
Converts all uppercase names of internal and external variables and constants to lowercase.
-
-macro
-
Invokes the Open PL/I Macro Preprocessor,
mfpp. The default preprocessor output file name is
xxx.pp, where
xxx is the name of the source file. If the -pp option is not specified, the
xxx.pp file is deleted after the compilation phase is completed. The -macro option applies to mfplx only.
-
-map
-
Produces a storage allocation map at the end of the listing file.
-
-margins
1,r
-
Sets the margins within which characters of the source file are interpreted as source code and outside which all characters are ignored by the Compiler.
1 is the column number of the leftmost character, and
r is the column number of the rightmost character to be interpreted as source code. Note that if tabs are used, each tab is counted as a single character. The -margins option can be overridden by a *PROCESS statement in the source.
Note: There must be no spaces around the comma separating the left and right margin.
-
-names
- Adds extralingual characters to identifiers via the compiler options, similar in nature to *PROCESS NAMES().
Example:
-names 'string1' [ 'string2' ]
- string1
- Extralingual characters to add to identifier.
- string2
-
Corresponding upper case characters. Optional.
The default is:
-names '$@#' '$@#'
When there are no extralingual characters, the compiler option is:
-nonames
-nonames and
-names can't be used together as they are conflicting options and cause an error.
-nonames -names ...
For additional characters you must specify the default
$@# or subset if desired, plus the additional lingual characters.
-names '$@#Ј'
For convenience, hex constants of the form
0xDD..DD are accepted in place of the strings above.
-names 0x402324a3
-
-nest
-
Indicates the nesting level on the listing of DO ... END, PROC ... END, and so on.
-
-nocicsdebug
-
Allows use of CodeWatch to debug the original source file, rather than the intermediate file generated by the CICS precompiler. Also, causes Compiler diagnostics to use line numbers referencing the original source file. This is the default. The -nocicsdebug command applies to mfplx and kixplt only.
-
-nofdasfb
-
Causes Float Decimal data to be internally coded as Binary Coded Decimal. The default setting is -fdasfb.
-
-nofmaxp
-
Causes standard PL/I conversion rules to be used to determine the precision of trigonometric and certain arithmetic built-ins. The default is -fmaxp.
-
-noincludes
-
Directs the Compiler not to include the contents of %INCLUDE files in the listing file. The default is to include file contents in the listing file.
-
-nomacro
-
Suppresses the invocation of the Open PL/I Macro Preprocessor. The default is -nomacro.
-
-[no]namesstring1 [string2]
-
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.
-
-noobj
-
Compiles for syntax and semantic checking only. Does not produce an object file.
-
-noopt
-
Compiles without optimization. This is the default.
-
-norange
-
Suppresses generation of code to check the validity of subscript references and substring bounds. This option should be used after your program has been debugged to improve execution time performance. The default is -norange.
-
-not_symbol
- Allows an additional NOT symbol. It can take a character, decimal number, or hex constant of the form 0xDD. See also %PROCESS in the Language Reference Manual.
-
-nounixdebug
-
Avoids generating the additional object file data needed to report source file and line number when a fatal run-time error occurs, or for use by the ONLOC built-in function.
-
-nounrefexternals
-
Prevents external entry symbols that are not referenced in the program from being generated in the object file. This is the default.
-
-nowarn
-
Suppresses all WARNING level diagnostics.
-
-O
-
Invokes the optimization phase of the Compiler. This option applies to mfplx only and is equivalent to the -opt option.
-
-o
file
-
Names the object file the name you specify with
file. If -o is not specified, the default name of the file is
xxx.o, where
xxx is the source filename up to, but not including, the last "." (if any) in the name. For example, if the source filename is
prog.pl1, the default object filename is
prog.o (prog.obj for Windows).
If -c is specified, the -o option is passed to the compiler; if -c is not specified, -o is passed to ldpli.
-
-oldalign
-
Causes the Compiler to allocate Character Varying items and align structure members compatible with releases prior to Open PL/I 6.0.
-
-opt
[level]
- Specifies the level of optimization by the Open PL/I Compiler, where
level stands for the level (1 – 3) of optimization. The default setting is -noopt. If
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.
-
-or_symbol
- Allows an additional OR symbol. It can take a character, decimal number, or hex constant of the form 0xDD. See also %PROCESS in the Language Reference Manual.
-
-pass
- Connects to a remote DB2 database. You can use this option with a specified username and password. The format is:
–pass myid.mypass
Where
myid is the username and
mypass is the password for the remote DB2 connection. mfplx first checks the -pass for a username/password and uses these values if specified. If not specified, it uses the values set for the
DB2_USERNAME and
DB2_PASSSWORD environment variables.
-
-pic
- Generates position-independent code, suitable for linking into a shared library. This option is only available on Solaris, SUSE Linux and Red Hat Linux.
- Use this option when compiling code for inclusion in a shared object.
-
-pl1g
- Causes Open PL/I to retain the behavior of releases prior to Open PL/I 5.0 for certain operations that have been changed in such a way as to become incompatible with that former behavior. For example, TIME() returns a value including three fractional digits (thousandths), but -pl1g causes it to return only two fractional digits (hundredths).
-
-pp
[file]
- Specifies the file name for the output file of the Open PL/I Macro Preprocessor. An output file created with the -pp option is preserved after the compilation phase is completed. This option applies to mfplx and mfpp only.
-
-ppcics
[file]
- Specifies the file name for the output of the CICS precompiler. An output file created with the -ppcics option is preserved after the compilation phase is completed. This option applies to mfplx only.
-
-ppdb2
[file]
- Specifies the file name for the output of the DB2 precompiler. An output file created with the -ppdb2 option is preserved after the compilation phase is completed. This option applies to mfplx only.
-
-proto
- Provides more extensive prototype checking on arguments vs. parameters in entry declarations (also assumed by default when using -vax).
Example:
declare myproc external entry(
fixed binary(31),
fixed binary(15),
fixed binary(15));
myproc: procedure(a,b,c); /* mismatch diagnosed, -proto and -vax */
declare a fixed binary(15);
declare b fixed binary(15);
declare c fixed binary(15);
end t660;
-
-range
- Validates all static array bound references at compilation time, and generates code to check the run time validity of all subscript references, and substring bounds. Note that the checking code slows down execution time performance.
-
If array or string bounds are exceeded at run time, the SUBSCRIPTRANGE or STRINGRANGE conditions will be raised, as appropriate. We recommend that this option be used to debug programming errors relating to subscripting and substringing, and that the -norange option be used for debugged code. The default is -norange.
-
-report [file]
- Specifies the file name for the output of the Open PL/I Source Checker. If this option is not used, the output of the checker will be directed to the standard error file. This option applies to mfplx only.
-
-setnull
n
- 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.
-
-stardesc
- 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. (This was compiler behavior in releases prior to release 7.0.) 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.
-
-stat
- Prints Compiler statistics to the standard output as each Compiler phase completes.
-
-unaligned
- This compile-time switch has been added for use on RISC architectures. This switch causes byte instructions to be generated for all based references, which might point anywhere in memory.
-
-unikix
-
Invokes the CICS precompiler, kixplt. The default CICS precompiler output file name is
xxx.pp1, where
xxx is the name of the source file. If the -ppcics option is not specified, the file
xxx.pp1 is deleted after the compilation phase is completed. The -unikix option applies to mfplx only.
-
-unrefexternals
- Causes external entry symbols to be generated in the object file, even if they are not referenced in the program.
-
-v
- Prints information to stdout relating to the compilation and link-step phases. This option applies to mfplx only.
-
-variant
string
- Passes the variant string
string to the Open PL/I Macro Preprocessor. This option applies to mfplx only.
-
-vax
- Makes the following adaptations for programs originally written with Digital Equipment Corporations'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.
-
-warn
- Does not suppress level 1 (WARNING) messages. This is the default.
-
-xref
- Produces cross-reference information in the listing file.
-
-zp1
- 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.