$ZCO[MPILE] contains a string value composed of one or more qualifiers that control the GT.M compiler. Explicit ZLINKs and auto-ZLINKs use these qualifiers as defaults for any compilations that they perform.

$ZCOMPILE is a read-write ISV, that is, it can appear on the left side of the equal sign (=) in the argument to the SET command. A $ZCOMPILE value has the form of a list of M command qualifiers each separated by a space ( ).

When the environment variable gtmcompile is defined, GT.M initializes $ZCOMPILE to the translation of gtmcompile. Otherwise GT.M initializes $ZCOMPILE to null. Changes to the value of $ZCOMPILE during a GT.M invocation only last for the current invocation and do not change the value of the environment variable gtmcompile.

ZCOMPILE returns a status of 1 after any error in compilation.

When $ZCOMPILE is null, GT.M uses the default M command qualifiers -IGNORE, -LABEL=LOWER, -NOLIST, and -OBJECT. See Chapter 3: “Development Cycle for detailed descriptions of the M command qualifiers.


$ export gtmcompile="-LIST -LENGTH=56 -SPACE=2"
$ gtm
$ echo $gtmcompile

This example uses the environment variable gtmcompile to set up $ZCOMPILE. Then it modifies $ZCOMPILE with the SET command. The ZLINK argument specifies a file with a .m extension (type), which forces a compile. The compile produces a listing for routine A.m and does not produce an object module if A.m contains compilation errors. After GT.M terminates, the shell command echo $gtmcompile demonstrates that the SET command did not change the environment variable.