Setting a Value for $ZROutines

By default, each directory entry in $ZROUTINES is assumed to contain both object and source files. However, each object directory may have an associated directory or list of directories in which to search for the corresponding source files. This is done with the /SRC=directory-list qualifier. If /SRC= specifies more than one directory, the directories must be separated by commas, and the entire list must be enclosed in parentheses ().

If a directory has a /SRC= qualifier, and it should be searched for source, the argument for the /SRC must include the name of that directory, usually as the first element in the list. Directory-specifications may also have a /NOSRC qualifier, directing GT.M to proceed as if no source files exist for objects located in the qualified directory.

File-specifications in $ZROUTINES indicate object libraries. If you specify file-specifications, indicating object-libraries, rather than specifying object directories, the command assumes the /NOSRC qualifier. You may not specify source directories for an object library.

Because /NOSRC directories and object libraries prevent automatic recompilation of the objects they contain, use them with caution in a development environment.

To set $ZROUTINES outside of M, use the DCL command DEFINE to assign a translation to GTM$ROUTINES. Because GTM$ROUTINES is not a VMS search list, but rather a piece of data, usually containing one or more commas (,), that is passed to a GT.M process, enclose the equivalent parameter to the DEFINE or ASSIGN command in quotes (" "). If the definition contains commas and is not enclosed in quotes, VMS treats it as a VMS search list and the GT.M process subsequently receives an improperly formatted $ZROUTINES.

Frequently a system manager provides a default definition of GTM$ROUTINES in the system logical name table or in the login command files. You can override such a definition by (re)defining GTM$ROUTINES in your process logical name table. Changes to the value of $ZROUTINES during a GT.M invocation only last for the current invocation and do not change the value of GTM$ROUTINES.

Either directory- or file-specifications may include a logical name. GT.M handles logical names that translate to other logical names by performing iterative translations according to VMS conventions. If a logical name translates to a VMS search list, GT.M uses only the first name in the list. If the directory or file exists on a different node or device, the list element must specify the node and/or device. When GT.M SETs $ZROUTINES, it translates all logical names and verifies the syntax and the existence of all specified directories and libraries. If $ZROUTINES is set to an invalid value, GT.M generates a run-time error and does not change the value of $ZROUTINES. Because the logical names are translated when $ZROUTINES is set, any changes to their definition have no effect until $ZROUTINES is next set.