Macro library directive Format .LIBRARY quoted-literal1 [quoted-literal2]
1 – Parameters
quoted-literal1 A string enclosed within double quotes that is the file specification of a macro library. If a logical name exists and it is the same as the macro library name, specify the .MLB file extension to override the logical name. quoted-literal2 An optional string enclosed within double quotes that specifies a search list of file specifications where the assembler should look for the specified macro library. The assembler successively processes the search list in left-to-right order and attempts to locate the specified macro library in each location specified in the search list until the macro library is found. If the macro library is not found, the assembler issues a diagnostic message. If you omit the second argument to the .LIBRARY directive, the assembler uses the following search list by default: o The current device and directory o The device and directory specified by the logical name MACRO64$LIBRARY (if defined) o The device and directory specified by the logical name ALPHA$LIBRARY (if defined) o The device and directory specified by the logical name SYS$LIBRARY Logical names may be defined as OpenVMS search lists.
2 – Description
.LIBRARY adds a name to the macro library list that is searched whenever a .MCALL or an undefined opcode is encountered. The libraries are searched in the reverse order in which they were specified to the assembler. If you omit any information from the macro-library-name file description, default values are assumed. The device defaults to your current default disk; the directory defaults to your current default directory; the file type defaults to MLB.
3 – Example
.LIBRARY "MY_MACROS" 1 .LIBRARY "PROJ_MACROS" "PROJ:[MACRO],PROJ:[DEVELOPMENT]" 2 1 The first statement adds the macro library MY_MACROS.MLB to the macro library list. The assembler first looks for MY_MACROS.MLB in the current directory. If not found there, the assembler next looks in the directory or directories indicated by the MACRO64$LIBRARY logical name if it is defined. If not found there or if MACRO64$LIBRARY is not defined, the assembler next looks in the directory or directories indicated by the ALPHA$LIBRARY logical name if it is defined. If not found there or if ALPHA$LIBRARY is not defined, the assembler next looks in the directory or directories indicated by the SYS$LIBRARY logical name. If not found there, the assembler issues a diagnostic message. 2 The second statement adds the macro library PROJ_MACROS.MLB to the macro library list. The assembler first looks for PROJ_MACROS.MLB in the PROJ:[MACRO] directory. If not found there, the assembler next looks in the PROJ:[DEVELOPMENT] directory. If not found there, the assembler issues a diagnostic message.