HP OpenVMS Systems Documentation

Content starts here

DECset
Guide to DIGITAL
Module Management System
for OpenVMS Systems


Previous Contents Index



UTIL(MOD1) : MOD1.OBJ 

   LIBR UTIL.LIB MOD1.OBJ 

 

UTIL(MOD2) : MOD2.OBJ 

   LIBR UTIL.LIB MOD2.OBJ 

The following dependency rule is correct for the double colon use:



UTIL.OLB :: MOD1.OBJ 

    LIBR UTIL.LIB MOD1.OBJ 

 

UTIL.OLB :: MOD2.OBJ 

    LIBR UTIL.LIB MOD2.OBJ 

NOMACFIL Cannot open macro file 'filespec.'
Explanation: You specified either an illegal or a nonexistent file in the command-line macro definitions.
User Action: Create the file, or correct the file specification.

NOOUTFIL Cannot open output file 'filespec.'
Explanation: MMS failed to create the output file.
User Action: Verify that the file specification is legal, check your disk quota, or check the protection of an existing file of the same name as the output file.

NOREVIEW No module to review.
Explanation: Informational message from the DECwindows UI.
User Action: No user action required.

NORMAL MMS description file generation completed.
Explanation: Success message from the Automatic Description File Generator.
User Action: No user action required.

NOSOURCES No input source file specified.
Explanation: Severe error message from the DECwindows UI.
User Action: Specify the input source file.

NOSTATUS Unable to set MMS$STATUS to 'value.'
Explanation: MMS received an error from OpenVMS when trying to set the symbol MMS$STATUS. This error can occur if you have exceeded the available space for symbols defined by your process, or if symbol scope is set to noglobal.
User Action: Remove some of your symbols, or have the system manager change the SYSGEN parameter CLISYMTBL, or set the symbol scope to global.

NOTARGET No target specified.
Explanation: You did not specify a target for MMS to build.
User Action: Specify a target on the MMS command line, or correct the description file so it specifies a target.

OUTPUTERR Error in MMS output processing.
Explanation: Failure in Automatic Description File Generator.
User Action: Collect as much information as possible and submit an SPR.

SCANNING Scanning 'filespec'.
Explanation: Information message from the Automatic Description File Generator. The specified file is being scanned for dependencies.
User Action: No user action required.

SKIPPING Skipping 'filespec'.
Explanation: Information message from the Automatic Description File Generator. The specified file is not being scanned because it contains no dependencies.
User Action: No user action required.

SOURCERR Error in source file processing.
Explanation: Failure in Automatic Description File Generator.
User Action: Collect as much information as possible and submit an SPR.

UNABLOPEN Cannot open output file 'filespec'.
Explanation: Error message from the Automatic Description File Generator. Unable to open the file to which the new MMS description should be output; output will be to SYS$OUTPUT instead.
User Action: Check the description file 'filespec'.

UNACCESS Unable to access file 'filespec'.
Explanation: Warning message from the Automatic Description File Generator. Not able to access the specified file.
User Action: Check the protection of 'filespec'.

UNEXPTYP Unexpected file type 'filespec'.
Explanation: Warning message from the Automatic Description File Generator. The specified file is a type that can only be referenced as an include file.
User Action: Check the 'filespec'.

UNKNOWNTYP Unknown file type 'filespec'.
Explanation: Warning message from the Automatic Description File Generator. The specified file type is not associated with a recognized language.
User Action: Check the 'filespec'.

USETOWRITE Writing output to SYS$OUTPUT.
Explanation: Information message from the Automatic Description File Generator. MMS has been unable to open the file to which the new MMS description should be output; output will be to SYS$OUTPUT instead.
User Action: No user action required.

UTLALLOCFAIL Failed to allocate memory for dynamic data structures.
Explanation: An MMS call to obtain more virtual memory failed. Either your description file is too large or a system service failed unexpectedly.
User Action: Try trimming your description file. If this fails, consult your system manager about increasing the size of virtual address space available to your system processes. If this fails, submit an SPR.

UTLBADMAC Unterminated macro name 'string.'
Explanation: The character combination "$(" was encountered without a matching closing parenthesis. As a result, on the line that contains the offending macro, all characters to the right of the "$(" are ignored.
User Action: Correct the erroneous line.

UTLUNDERFLOW Deallocation of unallocated space.
Explanation: This is an internal MMS error.
User Action: Collect as much information as possible and submit an SPR.

WILDDIRCMS Wildcarding not permitted in [directory-spec] when using CMS.
Explanation: Warning message from the Automatic Description File Generator. A [directory-spec] associated with a CMS element defines the directory to which the element is to be fetched and must not contain wildcards.
User Action: Amend [directory-spec].


Appendix B
MMS and make Comparisons

This appendix briefly compares the characteristics of MMS and the UNIX make utility. It is designed to ease the transition to MMS for users already familiar with make.

Because OpenVMS and UNIX are very different operating systems, certain system-imposed changes were necessary to provide the features of make on OpenVMS systems. The experienced user of make will notice the following differences:

  • In the absence of a /DESCRIPTION or /NODESCRIPTION qualifier, MMS looks first for the description file DESCRIP.MMS. It looks for MAKEFILE. only if it cannot locate DESCRIP.MMS. If it cannot find DESCRIP.MMS or MAKEFILE., it looks for target-name.MMS.
  • In the target or source line of a dependency rule, there must be at least one space or tab on either side of the colon or double colon that separates the list of targets from the list of sources. The space or tab prevents MMS from trying to interpret the colon or colons as part of an OpenVMS file specification.
  • With MMS, you can use commas as well as spaces to separate the elements in a list of targets or sources.
  • You can use either a number sign (#) or an exclamation point (!) as a comment character. On target or source lines, as well as on blank lines that separate dependency rules, you can use the number sign and the exclamation point interchangeably; however, on action lines, you can use only the exclamation point to indicate a comment.
  • In MMS, subprocesses are not executed independently of one another. Therefore, it is possible to define logical names, change directories, and in general manipulate the subprocess environment at will.
  • The dummy target .PRECIOUS, found in make, is not implemented in MMS.
  • When invoking a macro in MMS, you must enclose the macro name in parentheses. That is, $(A) is a legal invocation of an MMS macro, but $A is not.
  • MMS action lines can begin with either a space or a tab. MMS assumes that any line that begins with a space or tab is an action line unless the preceding line ends with a continuation character.
  • MMS has different built-in rules from those of make. See Table C-6 for the format and contents of MMS built-in rules.
  • MMS requires you to separate the Silent (@) and Ignore (-) action-line prefixes from the rest of the action line by at least one space.
  • In a description file, the line continuation character can be either a hyphen (-) or a backslash (\). On the MMS command line, only the hyphen is legal.
  • In the specification of an OpenVMS library module, you can use the question mark (?) wildcard character as a synonym for the percent sign (%) wildcard character.
  • MMS has an optional format for dependency rules:


    
    PROG.OBJ DEPENDS_ON PROG.C 
    
     
    
    UTIL.LIB ADDITIONALLY_DEPENDS_ON MOD1.OBJ 
    
    

    In this format, you can use DEPENDS_ON in place of the colon, and ADDITIONALLY_DEPENDS_ON in place of the double colon.

For compatibility with make, MMS provides alternate formats for dependency rules, user--defined rules, and directives, and recognizes two-character abbreviations for special macros. The experienced user of make will recognize the following make features in MMS:

  • MMS allows the following alternative format for dependency rules:


    
    target...[source...] ; [action line...] 
    
    

    In this format, the only legal comment character is an exclamation point (!). You cannot use the Ignore (-) action-line prefix with this format because the hyphen is interpreted as a line continuation character.
  • MMS allows the following alternative format for user--defined rules:


    
    .SRC.TAR : ; action line...
    
    

    In this format, you must include at least one space or tab on each side of the colon and the semicolon to prevent MMS from trying to interpret the rule as a file specification. You cannot use the Ignore (-) action-line prefix with this format because the hyphen is interpreted as a line continuation character.
  • You can place a colon after the name of a directive. For example, you can specify either .SILENT or .SILENT : in a description file.
  • The period preceding the .INCLUDE directive is optional.
  • You can abbreviate MMS special macros to two characters (see Table C-3).

The make utilities, such as NMAKE and GNU Make, continue to evolve with additional features and functions. The /EXTENDED_SYNTAX qualifier enables the use of the following functions within the MMS product:

  • wildcard---Process file names that contain wildcard characters.
  • subst---Perform a textual replacement on each occurrence of the specified text.
  • findstring---Searches for all occurrences of the specified string.

In addition, the /EXTENDED_SYNTAX qualifier enables you to redefine macros within the same description file for a series of conditions. The default is the /NOEXTENDED_SYNTAX state. suffix


Appendix C
MMS Built-In Features

This appendix contains tables of MMS built-in features, including the default macros, suffixes-precedence list, and built-in rules. Chapter 2 contains detailed information about how these three features work together in MMS.

The tables in this appendix are as follows:

  • Table C-1 lists the default macros.
  • Table C-2 lists the changed default macros when you use the /SCA_LIBRARY qualifier.
  • Table C-3 lists the special macros.
  • Table C-4 contains the suffixes-precedence list.
  • Table C-5 lists and describes the directives used in a description file.
  • Table C-6 contains the standard built-in rules.

Section C.7 describes the built-in rules for accessing OpenVMS libraries. Section C.8 lists the built-in rules that change when you use the /SCA_LIBRARY qualifier. Section C.9 includes the built-in rules for accessing CMS library elements.

For information on using MMS to create and access elements in OpenVMS libraries, see Section 4.1; in CMS libraries, see Section 4.2.

C.1 Default Macros

MMS uses the default macros shown in Table C-1 to build your system if none are specified or redefined.

Table C-1 MMS Default Macros
Macro Definition
ANLFLAGS /OUTPUT=$(MMS$TARGET_NAME).ANL
AS MACRO
BASFLAGS 1 /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ
BASIC BASIC
BFLAGS 1 /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ
BLIBFLAGS 1 /NOLIST
BLISS BLISS
BLISS16 BLISS/PDP11
CC CC
CDDFLAGS null string
CFLAGS 1 /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ
CLDFLAGS null string
CMS CMS
CMSCOMMENT null string
CMSFLAGS /GEN=$(MMS$CMS_GEN)
COBFLAGS 1 /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ
COBOL COBOL
CORAL CORAL
CXX C++
CXXFLAGS 1 /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ
CORFLAGS /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ
DBLFLAGS /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ
DIBOL DIBOL
FFLAGS 1 /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ
FMS FMS
FMSFLAGS /REPLACE
FORMS FORMS
FORMS_EXOBJ_FLAGS /NOLIST/OUTPUT=$(MMS$TARGET_NAME).OBJ
FORMS_TRANS_FLAGS /NOLIST/OUTPUT=$(MMS$TARGET_NAME).FORM
FORT FORTRAN
F90 Fortran 90
F90FLAGS 1 /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ
LIBR LIBRARY
LIBRFLAGS /REPLACE
LINK LINK
LINKFLAGS /TRACE/NOMAP/EXEC=$(MMS$TARGET_NAME).EXE
MACRO MACRO
MFLAGS 1 /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ
MSGFLAGS /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ
PASCAL PASCAL
PENVFLAGS /NOLIST
PFLAGS 1 /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ
PLI PLI
PLIFLAGS 1 /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ
RALFLAGS null string
RALLY RALLY
RFLAGS /OUTPUT=$(MMS$TARGET_NAME).OBJ
RPG RPG
RPGFLAGS /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ
RUNOFF RUNOFF
SCA SCA
SCAFLAGS /LOG
SCALIBRARY 1 Not defined
SCAN SCAN
SCANFLAGS 1 /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ
SQL$PRE SQL$PRE
SQL$MOD SQL$MOD
SQLFLAGS null string

1This default macro changes when you use the /SCA_LIBRARY qualifier. (See Table C-2.)

C.2 Default Macro Changes with the /SCA_LIBRARY Qualifiers

Table C-2 lists the default macro changes with the /SCA_LIBRARY qualifier.

Table C-2 The /SCA_LIBRARY Qualifiers Default Macros
Macro Definition
SCA SCA
SCALIBRARY Library name from the /SCA_LIBRARY qualifier
BASFLAGS /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ/ANALYSIS_DATA=$(MMS$TARGET_NAME).ANA
BFLAGS /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ/ANALYSIS_DATA=$(MMS$TARGET_NAME).ANA
BLIBFLAGS /NOLIST/ANALYSIS_DATA=$(MMS$TARGET_NAME).ANA
CFLAGS /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ/ANALYSIS_DATA=$(MMS$TARGET_NAME).ANA
COBFLAGS /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ/ANALYSIS_DATA=$(MMS$TARGET_NAME).ANA
CXXFLAGS /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ/ANALYSIS_DATA=$(MMS$TARGET_NAME).ANA
FFLAGS /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ/ANALYSIS_DATA=$(MMS$TARGET_NAME).ANA
F90FLAGS /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ/XREF_DATA=$(MMS$TARGET_NAME).ANA
MFLAGS /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ/ANALYSIS_DATA=$(MMS$TARGET_NAME).ANA
PFLAGS /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ/ANALYSIS_DATA=$(MMS$TARGET_NAME).ANA
PLIFLAGS /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ/ANALYSIS_DATA=$(MMS$TARGET_NAME).ANA
SCANFLAGS /NOLIST/OBJECT=$(MMS$TARGET_NAME).OBJ/ANALYSIS_DATA=$(MMS$TARGET_NAME).ANA

C.3 Special Macros

Table C-3 lists the MMS special macros and describes their functions. The table also lists a symbol that you can use as an abbreviation for each macro.

Table C-3 MMS Special Macros
Macro Symbol Meaning
MMS$ARCH_NAME   Expands to the value of the lexical F$GETSYI("ARCH_NAME") on the system on which MMS is processing the dependencies or actions.
MMS$TARGET $@ Expands to the mnemonic name or the complete file specification of the target currently being updated.
MMS$TARGET_NAME $* Expands to the mnemonic name or the file name (excluding the file type) of the target being updated. The device, directory, and node information are included.
MMS$TARGET_SPEC $> In an OpenVMS library target dependency rule, this expands to the target OpenVMS library specification. Otherwise, it expands to the complete specification of the target being updated.
MMS$SOURCE $< Expands to the source file specification.
MMS$SOURCE_LIST $+ Expands to a comma list of the full file specifications of all sources specified in this dependency rule, including any sources implied by built-in rules.
MMS$CHANGED_LIST $? Expands to a comma list of the full file specifications of all sources that have changed since the target was updated, including any sources implied by built-in rules.
MMS$LIB_ELEMENT $% Expands to the name of a module in an OpenVMS library and its file name, including the file type (see Section 4.1).
MMS$CMS_ELEMENT $< Expands to the implicit CMS element specification (if the source file is a CMS element).
MMS$CMS_GEN $& Expands to the CMS generation specified by the source file (if the source is a CMS element).
MMS$CMS_LIBRARY $@ Expands to the CMS library specification (if the source is a CMS element).


Previous Next Contents Index