The Module Management System (MMS) is a tool that updates files
by comparing the revision times of files you specify in a description
file. If a "source" file (for example, an object module) is newer
than its "target" (for example, an executable image), MMS updates the
source by executing commands that you also supply in the description
file. If some of the sources need updating, MMS updates them before
building the target. If the target is newer than its sources, it is
already up-to-date and MMS does not rebuild it.
Format:
$ MMS [qualifier...] [target,...]
If you do not specify a target on the command line, MMS processes the
first target in the description file.
MMS can also generate a description file from a list of sources files.
Format:
$ MMS/GENERATE [qualifier...] source[,source...]
1 – Parameters
MMS accepts an optional list of targets to build. If you do not
specify a target on the command line, and if you do not specify
/NODESCRIPTION, MMS tries to build the first target in the
description file. If you do not specify the name of a description
file, MMS attempts to process the default description file
DESCRIP.MMS; if it does not exist, MMS attempts to process MAKEFILE.
If MAKEFILE. does not exist, MMS attempts to process
target-name.MMS. If all these files exist, MMS uses only
DESCRIP.MMS. If none of these files exist, MMS uses built-in rules
to build the target.
If you specify the target on the command line, MMS looks for a
description file with the same name and builds that target directly.
If you specify /NODESCRIPTION, MMS does not look for a description
file but uses its built-in rules to build the target specified on the
command line.
When generating a description file, MMS accepts a list of sources that
will be scanned for dependencies.
2 – Qualifiers
2.1 /ACTION
/ACTION (D)
/NOACTION
Controls whether MMS executes the action lines in a description
file. These qualifiers affect only the execution of action lines,
not the behavior of MMS.
The /ACTION qualifier displays action lines as they are invoked.
MMS does not display any information on dependencies.
If you specify /NOACTION, MMS does not execute the action lines,
but instead writes them to an output file (either SYS$OUTPUT
or the file specified by the /OUTPUT qualifier). /NOACTION is
useful for determining what actions MMS would have executed had
the system actually been built. You can also use /NOACTION in
combination with the /OUTPUT qualifier to generate a command
procedure (see the description of the /OUTPUT qualifier).
/NOACTION overrides the Silent action-line prefix - @. Note that
the $(MMS) reserved macro is executed even if you specify
/NOACTION. Therefore, you can see what actions MMS would have
executed in the subprocess.
/NOACTION does not affect the /AUDIT qualifier that you can
provide with references to CDD records. That is, if you suppress
the execution of action lines with the /NOACTION qualifier,
the remark you supply with /AUDIT is still written to the CDD
history file.
2.2 /CHANGED
/CHANGED=(source1, source2,...)
Directs MMS to treat only the specified sources as having been
changed, regardless of their actual modification times. No date
checking is performed at all; MMS simply rebuilds any targets
that depend on one or more of the specified sources. This
qualifier affects the behavior of MMS but not the execution of
action lines.
2.3 /CHECK_STATUS
/CHECK_STATUS
/NOCHECK_STATUS (D)
Controls whether MMS returns a value in the symbol MMS$STATUS
instead of updating a target. This symbol contains the status
of the last action line executed by MMS. These qualifiers affect
both the execution of action lines and the behavior of MMS.
When you specify the /CHECK_STATUS qualifier, MMS checks whether
a target is up-to-date by determining whether any actions would
be executed if the /ACTION qualifier was specified. MMS issues
an informational message and sets MMS$STATUS to 1 if no actions
would be executed (that is, if the target is up-to-date). If the
target needs to be updated, MMS sets the MMS$STATUS value to 0.
/CHECK_STATUS has precedence over both the /ACTION and "/REVISE_
DATE" qualifiers if they appear on the same command line. In this
case, only /CHECK_STATUS is processed.
The /NOCHECK_STATUS qualifier directs MMS to process the
description file as it normally would, executing action lines
if necessary.
2.4 /CMS
/CMS
/NOCMS (D)
Controls whether MMS looks for source files, description files,
and include files in the current default CMS library as well
as in the specified directories. CMS must be installed on your
system. These qualifiers affect both the execution of action
lines and the behavior of MMS.
For information on using the /CMS qualifier with the
description-file generator, refer to the /GENERATE qualifier.
When you specify the /CMS qualifier and the source in the CMS
library is newer, MMS fetches it from the CMS library. If the
source in the CMS library is older, MMS instead uses the source
in the specified directory.
/CMS also directs MMS to look in the current default CMS library
for a description file and any files included with the .INCLUDE
directive, or specified with the /RULES qualifier. If MMS does
not find a description file in either the specified directory or
the current default CMS library, it aborts execution.
The /CMS qualifier also directs MMS to apply CMS built-in rules
where appropriate.
The /NOCMS qualifier directs MMS not to look in the current
default CMS library for source files, description files, rules
files, or include files. However, if any file specifications in
the description file are followed by a tilde (~) to indicate
specific CMS elements, MMS looks for the files in the CMS library
regardless of whether /NOCMS is in effect.
If you specify /NOCMS, or the combination /CMS/NORULES, and
the sources do not exist in the specified directory, MMS aborts
execution.
2.5 /DESCRIPTION
/DESCRIPTION[=filespec...](D)
/NODESCRIPTION target
Controls whether MMS looks for a description file to update the
target. These qualifiers affect the behavior of MMS, but not the
execution of action lines.
The filespec is an OpenVMS file specification or a logical name
that identifies the description file. The default file type is
.MMS. If a tilde (~) follows the file specification, MMS fetches
the description file from the default CMS library even if the
description file exists in the default directory. The target is
an OpenVMS file specification or a mnemonic name that designates
the target to be built.
When you specify more than one description file, separate the
file specifications with either commas (,) or plus signs (+) and
enclose them in parentheses or quotation marks.
If you use commas, the description files are processed separately
and the list of files must be enclosed in parentheses. For
example:
$ MMS/DESCRIPTION=(A, B)
If you use plus signs, the description files are concatenated
and processed as one file. The list of files must be enclosed in
quotation marks. For example:
$ MMS/DESCRIPTION="A + B"
You can combine separate description files with description files
to be concatenated and processed as one file. For example:
$ MMS/DESCRIPTION=("A + B", CLEANUP)
This command line directs MMS to process A.MMS and B.MMS as
one file, and CLEANUP.MMS as another. In this case, there are
two default targets: the first one is in either A.MMS or B.MMS
(depending on the contents of the two files) and the second one
is in CLEANUP.MMS.
If you specify a list of description files in parentheses and a
list of targets, the rules for updating all the listed targets
must occur in all the listed description files. For example:
$ MMS/DESC=(A,B) X,Y,Z
In this case, the rules for updating X, Y, and Z must appear in
both description files, A.MMS and B.MMS.
If you specify a concatenated list of description files and a
list of targets, the rules for updating all the listed targets
must occur in the concatenated description file. For example:
$ MMS/DESC="A + B" X,Y,Z
In this case, the description file formed by the concatenation of
A.MMS and B.MMS must contain the rules for updating X, Y, and Z.
If you specify the /DESCRIPTION qualifier without a file
specification or if you do not specify /DESCRIPTION, MMS looks
first for the default description file DESCRIP.MMS. If it cannot
locate that file, it looks for one called MAKEFILE.; if it
cannot find MAKEFILE., it looks for target-name.MMS. If MMS
finds target-name.MMS, it does not update the first target in
the description file, but instead attempts to directly update the
target indicated by target-name.MMS. For example:
$ MMS MAIN.EXE
In this example, if DESCRIP.MMS and MAKEFILE. are not present,
MMS looks for a file named MAIN.MMS. If MAIN.MMS exists, MMS
directly processes the target you specified on the command
line, MAIN.EXE.
If MMS cannot find any one of these files, it attempts to use
built-in rules to build the target.
If you use the /NODESCRIPTION qualifier, you must specify a
target on the command line. /NODESCRIPTION directs MMS to ignore
all description files and to build the target specified on the
command line.
For information on using the /DESCRIPTION qualifier with the
description-file generator, refer to the /GENERATE qualifier.
2.6 /EXTENDED_SYNTAX
/EXTENDED_SYNTAX
/NOEXTENDED_SYNTAX (D)
The /EXTENDED_SYNTAX qualifier instructs MMS to enable the
extension of MMS syntax, providing for the following:
o Use of predefined MMS functions.
o Macro redefinition.
o Nested macro expansion.
To enable the /EXTENDED_SYNTAX qualifier in DECwindows MMS, check
the Extended Syntax check box in the Build Definitions/Directives
Options dialog box.
The /EXTENDED_SYNTAX qualifier will be used to include all future
extensions to the MMS syntax. The inverse qualifier, the default
/NOEXTENDED_SYNTAX, will continue to support the syntax of MMS
Version 3.2.
2.7 /FORCE
/FORCE
/NOFORCE(D)
Controls whether MMS executes the action lines necessary to
update one specific target. These qualifiers affect the behavior
of MMS but not the execution of action lines.
When you specify the /FORCE qualifier, MMS does not check whether
the target or its sources are up-to-date, but simply rebuilds the
specified target by executing the action lines. MMS also executes
any .FIRST and .LAST directives associated with the target.
The /FORCE qualifier is useful for quickly rebuilding a single
target.
2.8 /FROM_SOURCES
/FROM_SOURCES
/NOFROM_SOURCES (D)
Directs MMS to build a target from its sources, regardless of
whether the target is already up-to-date. This qualifier affects
the execution of action lines and the behavior of MMS.
When you specify the /FROM_SOURCES qualifier, MMS does not
compare the revision times of the specified sources and target.
Instead, it executes the action lines in the description file
necessary to update the target. The /FROM_SOURCES qualifier
is useful when you want to guarantee that an entire system is
rebuilt, perhaps for an internal release.
If you specify the /CMS and /FROM_SOURCES qualifiers on the MMS
command line, MMS uses the sources found in the default CMS
library. If you do not use /CMS, MMS uses the sources found in
the specified directory.
The /FROM_SOURCES qualifier overrides the /SKIP_INTERMEDIATE
qualifier.
2.9 /GENERATE
/GENERATE [/qualifier[/...]] source_filespec[,...]
Invokes the MMS description file generator.
Select MMS subtopic 'Generating_Description_Files' for more
information.
2.10 /HELP
/HELP[="topic"]
Provides information about MMS and its qualifiers. The topic is
an MMS topic on which you want information.
The /HELP qualifier displays information about MMS on your
terminal. If you specify the /HELP qualifier without a topic,
MMS displays general information and a list of qualifiers. To
get help on a specific topic, type /HELP with an equal sign (=)
and the topic. The topic must be enclosed in quotation marks. For
example:
$ MMS/HELP="/RULES"
2.11 /IDENTIFICATION
/IDENTIFICATION
Directs MMS to display an informational message with the version
number and copyright date of the MMS image you are running. MMS
does not process any description files or qualifiers; it simply
displays an informational message on your screen.
You should include the version number and copyright date with any
MMS Software Performance Reports (SPRs) you submit.
2.12 /IGNORE
/IGNORE[=options]
/NOIGNORE (D)
Directs MMS to specify the severity levels of errors that MMS
normally ignores when it executes action lines. The parameters
correspond to the DCL severity levels W, E, and F. The /NOIGNORE
qualifier directs MMS to abort execution when it finds an error.
These qualifiers affect the execution of action lines but not the
behavior of MMS.
The options field can contain the keyword WARNING, ERROR, or
FATAL. WARNING directs MMS to ignore W errors and continue
processing, but to abort execution if it finds an E or F error.
If you specify the /IGNORE qualifier without parameters, WARNING
is the default. ERROR directs MMS to ignore both W and E errors,
but to abort execution if it finds an F error. FATAL directs MMS
to ignore all errors, and to continue processing the description
file. This parameter is equivalent to the .IGNORE directive.
When you specify the /IGNORE qualifier, the errors that MMS
ignores are those generated by the execution of action lines.
The only fatal errors MMS will not ignore are syntax errors.
The /IGNORE qualifier does not stop MMS error messages from
being generated or displayed. Informational messages are always
displayed, regardless of whether you use the /IGNORE qualifier.
NOTE
Take caution when executing MMS with the /IGNORE qualifier;
if errors occur during processing, the target might be
updated but still contain errors of which you will not be
aware.
The .IGNORE directive and the Ignore action line prefix are
similar to the /IGNORE=FATAL qualifier. However, instead of
typing them on the command line, you include them in the
description file.
To override the .IGNORE directive contained in a description
file, type the /IGNORE[=WARNING], /IGNORE=ERROR, or /IGNORE=FATAL
qualifier explicitly on the MMS command line. You cannot override
the Ignore action-line prefix on the MMS command line.
2.13 /INTERFACE
/INTERFACE[=DECWINDOWS]
/INTERFACE[=CHARACTER_CELL] (D)
Controls whether MMS invokes the DECwindows Motif user interface
or the character-cell interface. The CHARACTER_CELL qualifier is
the default.
2.14 /LIST
/LIST[=filespec]
/NOLIST (D)
Controls whether MMS writes dependencies and action lines to
an output file as it processes the description file. These
qualifiers affect the behavior of MMS, but not the execution
of action lines.
When you specify the /LIST qualifier, MMS creates a complete
listing of all dependencies, dependents, and actions that need
to be processed to update the target. MMS creates this listing as
it processes the description file and writes the listing to the
output file, or to SYS$OUTPUT if you did not specify a file.
The /LIST qualifier is useful during the debugging of description
files. You can also use /LIST in combination with the /NOACTION
qualifier to display the dependency list and action lines without
executing any actions.
2.15 /LOG
/LOG
/NOLOG (D)
Controls whether MMS displays informational messages as it
processes the description file. These qualifiers affect the
behavior of MMS, but not the execution of action lines.
The /LOG qualifier directs MMS to write all informational
messages to your terminal screen while it processes the
description file. The /LOG qualifier is useful for debugging
your description files. These messages indicate what MMS finds
and what it assumes as it processes the description file. You
should include these messages with any MMS Software Performance
Reports (SPRs) you submit. To save these messages in a file, type
the following:
$ DEFINE SYS$OUTPUT MYFILE.LOG
$ MMS/LOG
.
.
.
$ DEASSIGN SYS$OUTPUT
The /NOLOG qualifier prevents MMS from displaying informational
messages. However, if you specify /NOLOG/CHECK_STATUS on the same
command line, MMS does display the informational message that
reports the value of MMS$STATUS.
2.16 /MACRO
/MACRO=filespec | "macro", . . .
Directs MMS to add to or override the macro definitions in the
description file. This qualifier affects the behavior of MMS but
not the execution of action lines.
The filespec is an OpenVMS file specification or a logical name
that identifies a file of macro definitions. The default file
type is .MMS. The macro string is a macro definition enclosed
in quotation marks. The definition of the macro should always
assign a value to the macro. Use the same format as for macro
definitions in description files, that is, name = "string".
With the /MACRO qualifier, you can specify a macro definition
on the MMS command line. You can also specify a file
of macro definitions to use in your description file.
You can define macros in three locations:
o In a description file
o In a macro definitions file
o On the command line
To specify more than one macro definition on the MMS command
line, enclose the list of macros in parentheses. For example:
$ MMS/MACRO=("A=MAC1", "B=MAC2")
You can also specify both a macro definition and a file on the
same command line. For example:
$ MMS/MACRO=("A=MAC1", MACROS)
2.17 /OUTPUT
/OUTPUT=filespec
Directs MMS to write action lines and output to the specified
file. Error messages preceded by "%MMS" are not written to this
output file, but instead are written to SYS$ERROR. The /OUTPUT
qualifier affects the behavior of MMS, but not the execution of
action lines.
The filespec is an OpenVMS file specification or a logical name
that identifies the output file. The default file type is .LOG.
If you do not specify the /OUTPUT qualifier on the MMS command
line, MMS writes all action lines, messages, and output to
SYS$OUTPUT.
If you specify the /NOVERIFY qualifier on the same MMS command
line with /OUTPUT, MMS does not write action lines to the output
file.
If you specify /OUTPUT and your command-line interpreter is DCL,
MMS automatically prefixes a dollar sign ($) to any action
line that does not begin with one. Thus, you can use the file
generated by /OUTPUT as a DCL command procedure.
2.18 /OVERRIDE
/OVERRIDE
/NOOVERRIDE (D)
Controls the order in which MMS applies definitions when it
processes macros. These qualifiers affect the behavior of MMS,
but not the execution of action lines.
When you specify the /OVERRIDE qualifier, MMS overrides the macro
definitions in the description file with CLI symbol definitions.
To find the macro definitions that should have precedence,
MMS looks at symbols defined by the CLI assignment statement,
scanning the CLI symbol table for the body of the macro. If the
body of the macro is not in the CLI symbol table, MMS substitutes
a null string for all invocations of the macro.
The /OVERRIDE qualifier imposes the following order of
application when MMS processes macro definitions:
1. Command line
2. CLI symbol
3. Description file
4. Built-in
Once MMS finds a definition for a macro, it does not search those
locations farther down the list for more definitions. If MMS
finds more than one definition in the same location (such as on a
command line), it uses the last definition it processed, unless
the location is a description file. MMS issues an error message
if a macro is defined more than once in a description file.
The /NOOVERRIDE qualifier imposes the following order, which is
the default hierarchy:
1. Command-line
2. Description file
3. Built-in
4. CLI symbol
2.19 /REVISE_DATE
/REVISE_DATE
/NOREVISE_DATE (D)
Controls whether MMS changes only the revision dates of all
targets that need updating, or performs the update. These
qualifiers affect the behavior of MMS, not the execution of
action lines.
When you specify the /REVISE_DATE qualifier, MMS changes only the
revision dates of targets that need updating; it does not direct
MMS to execute the action lines that actually do the updating.
If any files are missing, /REVISE_DATE causes MMS to create them.
If MMS cannot create a missing file, or if it cannot update the
revision date of an existing file, it issues an error message.
The /REVISE_DATE qualifier is useful for reducing the number of
superfluous compilations, for example, when you change only a
comment line in a required file. However, /REVISE_DATE can defeat
the purpose of using MMS, so use this qualifier with caution.
As it changes the revision times, MMS writes the name of
the revised files to an output file (or to SYS$OUTPUT if no
file is specified). If you specify the /REVISE_DATE and
/NOVERIFY qualifiers, the names of revised files are suppressed.
Unless you specify a target on the command line, the /REVISE_
DATE qualifier causes MMS to revise the first target (and its
sources) in the description file. If you specify multiple targets
on the command line, those targets and their sources are revised.
/REVISE_DATE does not change the value of MMS$STATUS.
The /REVISE_DATE qualifier has precedence over the /ACTION
qualifier if they both appear on the same command line. In that
case, only /REVISE_DATE is processed.
The /NOREVISE_DATE qualifier directs MMS to build the system
by updating targets as necessary (as long as the /CHECK_STATUS
qualifier is not specified on the same command line).
2.20 /RULES
/RULES[=filespec] (D)
/NORULES
Controls whether MMS applies user-defined built-in rules and
a suffixes-precedence list when it builds a system. These
qualifiers affect the behavior of MMS, but not the execution
of action lines.
The filespec is an OpenVMS file specification or a logical
name that identifies the file of user-created rules that MMS
is to use. When you supply a file specification with the /RULES
qualifier, MMS replaces the built-in rules it normally uses with
the built-in rules and suffixes list in the file you specify.
The file specified with /RULES has precedence over the file
represented by MMS$RULES.
If you specify /RULES without a file specification, MMS
translates the logical name MMS$RULES to locate the user-defined
built-in rules file. If MMS$RULES is not defined, MMS uses its
own built-in rules.
The /NORULES qualifier prevents MMS from using its built-in
rules or the suffixes-precedence list. It also prevents MMS from
applying user-defined rules and default macros. When you specify
/NORULES, MMS applies only the dependency rules contained in the
description file.
2.21 /SCA_LIBRARY
/SCA_LIBRARY[=library-name]
/NOSCA_LIBRARY (D)
Controls whether MMS generates an SCA library during the build
process.
When you specify a library name with the /SCA_LIBRARY qualifier,
MMS defines the macro $(SCALIBRARY) to be that library name.
If you use /SCA_LIBRARY without specifying a library name,
SCA$LIBRARY is the value of $(SCALIBRARY). If you do not specify
/SCA_LIBRARY, /NOSCA_LIBRARY is the default.
The macro $(SCA) is defined to be SCA regardless of the setting
of the /SCA_LIBRARY qualifier.
The macro $(MMSQUALIFIERS) contains the setting of the /SCA_
LIBRARY qualifier.
When you specify the /SCA_LIBRARY qualifier, built-in rules for
BASIC, BLISS-32, C, C++, COBOL, DIGITAL Fortran, MACRO, Pascal,
PL/I, and SCAN change.
NOTE
You might choose to defer loading modules into the SCA
library until after all compilations are completed. In
this case, define the default rules for compilation in your
description file to be the same as the default rule provided
by MMS when the /NOSCA_LIBRARY qualifier is specified. You
should also include a .LAST directive, which then loads the
SCA database. For example:
.LAST :
$(SCA) SET LIBRARY $(SCALIBRARY)
$(SCA) LOAD *
2.22 /SHOW_DESCRIPTION_FILE
/SHOW_DESCRIPTION_FILE (D)
/[NO]SHOW_DESCRIPTION_FILE
Controls whether MMS displays the current description file in the
MMS description file area.
When you specify the /SHOW_DESCRIPTION_FILE qualifier, if the
DECwindows version of LSE is not presently invoked, MMS displays
the current description file in the MMS description file area as
read-only for browsing purposes. If the DECwindows version of LSE
is currently invoked, MMS displays the description file in the
MMS description file area in a modifiable LSE buffer.
The /NOSHOW_DESCRIPTION_FILE qualifier directs MMS to hide the
current description file from the MMS description file area. The
default qualifier is /SHOW_DESCRIPTION_FILE.
2.23 /SKIP_INTERMEDIATE
/SKIP_INTERMEDIATE
/NOSKIP_INTERMEDIATE (D)
Controls whether MMS builds intermediate source or target
files. These qualifiers affect the behavior of MMS, but not the
execution of action lines.
The /SKIP_INTERMEDIATE qualifier directs MMS to determine whether
a target is up-to-date without rebuilding intermediate files,
unless they need to be updated.
MMS first checks the target date against the dates of its
sources. If the target is newer than its sources, MMS determines
that the target does not need to be rebuilt; if MMS cannot find
some intermediate files, it acts as though they already exist,
and skips over them to check their sources, and so on.
For example, if you have a .C file and an .EXE file, but no .OBJ
file, and the time of the .EXE file is more recent than that
of the .C file, the /SKIP_INTERMEDIATE qualifier prevents MMS
from building the .OBJ file and the .EXE file because the target
is already up-to-date with regard to its nearest source. Using
/SKIP_INTERMEDIATE saves time and disk space.
If the target is older than its sources, MMS determines that
the target does need to be rebuilt. It then ensures that all of
the target's immediate sources exist; if any do not, MMS works
from the bottom up by first rebuilding the missing sources, then
rebuilding the target. If the sources contain include files that
have changed, are located in a CMS library, or both, MMS also
fetches the include files and recompiles the source files, then
rebuilds the system. For example:
!
! SYSTEM2.MMS
!
SYSTEM2 : MAIN.EXE, MOD.EXE
MAIN.EXE : MAIN.OBJ
MAIN.OBJ : MAIN.C, DEFS1.H, DEFS2.H
MOD.OBJ : MOD.C, DEFS2.H
If the include file DEFS1.H changes, MMS does the following when
you specify the /SKIP_INTERMEDIATE qualifier:
1. Determines that one of the target's sources is newer than the
target, and that the target must be rebuilt.
2. Verifies that MAIN.OBJ depends on MAIN.C, which contains the
include files DEFS1.H and DEFS2.H.
3. Fetches MAIN.C, DEFS1.H, and DEFS2.H from the CMS library and
recompiles MAIN.C.
4. Because MAIN.OBJ is now newer than MAIN.EXE, MMS rebuilds
MAIN.EXE.
5. Because none of the sources for MOD.EXE have changed, MMS does
not need to fetch them from CMS, and target SYSTEM2 is now
up-to-date.
The /NOSKIP_INTERMEDIATE qualifier directs MMS to ensure that
all intermediate source files exist and are up-to-date. If any
intermediate source files do not exist, MMS builds them. This is
the default.
2.24 /VERIFY
/VERIFY (D)
/NOVERIFY
Controls whether MMS displays action lines before executing
them. These qualifiers affect the behavior of MMS, but not the
execution of action lines.
The /VERIFY qualifier directs MMS to display each action line
before executing it. MMS writes action lines either to SYS$OUTPUT
or to a file you specify on the /OUTPUT qualifier.
If you specify the /REVISE_DATE qualifier in combination with the
/VERIFY qualifier, MMS displays the names of files whose dates
have been revised.
When you specify the /NOVERIFY qualifier, MMS suppresses the
display (but not the execution) of action lines. Any error
messages generated by the execution of action lines continue
to be displayed. If you specify the /REVISE_DATE and /NOVERIFY
qualifiers on the same command line, the names of files whose
dates have been revised are not displayed.
The behavior of the /NOVERIFY qualifier is identical to
that of the Silent action-line prefix and the .SILENT
directive. If a description file contains the .SILENT directive, to
override it you must type the /VERIFY qualifier explicitly on the
MMS command line. You cannot override the Silent action-line prefix
from the MMS command line.
3 – Generating Description Files
MMS/GENERATE [/qualifier[/...]] source_filespec[,...]
Controls whether MMS automatically generates a description file.
The source_filespec specifies the source files to inspect for
dependencies and from which the target will be built. The first
file specified must contain the main module from which the target
will be built. Otherwise, the source files can be specified in
any order and wildcard characters can be used. Unless the /CMS
qualifier has been specified, the description-file generator
scans all the specified files for dependencies and generates an
MMS description file for the target defined by the main module.
For example, if the target is built from C files in the current
default directory and from Bliss files in the subdirectory
[.BLISS], and the file MAIN.C contains the main module, the
following command generates the description file in DESCRIP.MMS:
$ MMS/GENERATE MAIN.C,*.C,[.BLISS]*.BLI
3.1 – Qualifiers
3.1.1 /BUILTIN_RULES_APPLY
/BUILTIN_RULES_APPLY
/NOBUILTIN_RULES_APPLY (D)
Controls whether MMS generates compilation actions lines. When
/BUILTIN_RULES_APPLY is selected, no compilation action lines are
included in the generated description file; the MMS built-in rules
will be used to perform the compilations.
3.1.2 /CMS
/CMS
/NOCMS (D)
Controls whether MMS looks for source files and include files in
the current default CMS library. CMS must be installed on your
system. If a directory-spec is associated with a file, that is the
directory into which MMS fetches the file when building the target.
3.1.3 /DESCRIPTION
/DESCRIPTION[=filespec]
Specifies the file to which the generated description is written.
When not specified, the description is written to the file
DESCRIP.MMS in the current default directory.
3.1.4 /FMS_LIBRARY
/FMS_LIBRARY=forms-library-name
Specifies an FMS library. This qualifier defaults to MMS$FLB.FLB.
3.1.5 /INCLUDES
/INCLUDES (D)
/NOINCLUDES
Indicates whether C include files are scanned for dependencies.
This qualifier gives the same functionality as the Scan Include
Files toggle button.
3.1.6 /LINK_LIBRARY
/LINK_LIBRARY=filespec[,...]
Specifies additional object libraries to be included in the LINK
command in the description file.
3.1.7 /MAIN_MODULE
/MAIN_MODULE=module-name
Specifies the main module to be included from the object library
during the Link process. The main module is that defined in the
first source file specified and, by default, the module name is
the same name as the file. This qualifier lets you specify a
module name that is different from the file name. Note that if an
appropriate language-dependent module name directive is detected
within the first source file, the value specified by this
qualifier is ignored.
3.1.8 /OBJECT_LIBRARY
/OBJECT_LIBRARY=filespec
Specifies the object library to be included in the LINK command in
the description file. Object files from the compilations are
inserted into this object library.
3.1.9 /OPTIONS_FILE
/OPTIONS_FILE=filespec[,...]
Specifies user-written options files to be included in the LINK
command in the description file.
3.1.10 /SWITCHES
/SWITCHES=COMPILE="/qualifier..."
/SWITCHES=LINK="/qualifier..."
/SWITCHES=(COMPILE="/qualifier...",LINK="/qualifier...")
Specifies additional command line qualifiers to be included in the
generated description file for all compilation and/or link commands.
Additional compilation switches can not be specified when
/BUILTIN_RULES_APPLY has been specified.
3.1.11 /TARGET
/TARGET=name
Specifies a name for the build target. If this qualifier is not
specified, the target defaults to the first file specified. This
lets you specify an executable name that is different from the file
name.
4 – Description File
The description file contains rules that describe how the components
of your system are related and how MMS is to build them. You create
and modify a description file with any text editor (or by using
MMS/GENERATE); once the description file exists, you need issue only
a simple MMS command to update your system.
A description file contains dependency rules and can also contain
macro definitions, directives, and user-defined rules.
4.1 – Dependency rules
Dependency rules describe the relationships among the files in a
software system and specify the actions MMS is to perform in updating
those files.
Format:
target,... : source,... [! comment]
action line [! comment]
Targets and sources are OpenVMS file specifications or mnemonic
names. A target is the file you want updated. A source is a file
from which the target is built and can be optional. You must begin a
target/source line in column 1 of the line, and you must include at
least one space or tab on each side of the colon. A comment is
simply a string of text that documents the description file.
An action line contains a CLI command that specifies how the target
is to be built from the source. An action line must be indented by
at least one space or tab below the corresponding target/source line.
When you run MMS, all action lines, including any comments you
specified in the description file, are written to SYS$OUTPUT (or to
the file specified by the /OUTPUT qualifier) as they are executed.
MMS supplies some default, or "built-in," dependency rules. You can
also define your own rules.
4.1.1 – Built-in Rules
MMS uses built-in rules when you omit the action line or the source,
or both, from a dependency rule. Built-in rules allow MMS to assume
dependencies that are not stated in the description file and to
perform actions necessary to update the target. To decide which
built-in rule to apply to a dependency, MMS also uses the suffixes
precedence list.
Built-in rules also allow you to access files stored in OpenVMS,
CMS, FMS libraries and records stored in the Common Data Dictionary.
4.1.2 – User-defined Rules
You can define your own rules in a description file if MMS does not
supply a built-in rule that meets your needs. Once you define a new
rule, MMS uses it every time it builds your system with that
description file.
Format:
.SRC.TAR [! comment]
action line... [! comment]
.SRC is the source file type, and .TAR is the target file type. The
comment is a string of text that documents your rule. The action
lines specify the CLI commands that MMS should execute to update a
file of the target type from a file of the source type. Both the
source and target file types must appear in the suffixes precedence
list.
4.1.3 – Suffixes precedence list
The suffixes precedence list is a list of all the file types MMS
recognizes, arranged in a predetermined order. MMS uses the list to
decide which built-in rule to apply based on the order of the types
in the list, the file type of the target currently being updated, and
the existence of source files in the specified directory.
You can alter the suffixes precedence list by using one of the
.SUFFIXES... directives.
4.2 – Macros
A macro is a name that represents a character string. You can define
a macro at the beginning of the description file or on the MMS
command line and then use its name anywhere in the description file
in place of the equivalent string. A macro must be defined before
you use it.
Format:
name = string
The name identifies the macro, and the string is the text that
replaces the name when the macro is expanded. A macro definition
must begin in column 1 of the line. To invoke a macro, type:
$(name)
You can define a macro on the command line with the /MACRO qualifier;
you can also use a CLI symbol as a macro.
If a macro is not defined in the description file, MMS looks in its
environment for macro definitions. To find them, it looks at symbols
defined by the CLI assignment statement, scanning the CLI symbol
table for the body of the macro. If the body of the macro is not in
the CLI symbol table, MMS substitutes a null string for all
invocations of the macro.
MMS supplies some default, or "built-in," macro definitions and some
"special" macros for use in action lines.
4.3 – Reserved-Macros
MMS Used to invoke MMS from a description file.
MMSALPHA Defined as 'Alpha' if MMS is running on Alpha.
MMSARCH_NAME The architecture name on which MMS is running
(i.e. 'IA64', 'Alpha' or 'VAX').
MMSDESCRIPTION_FILE The full file specification of the description
file specified (or implied) by the command line.
MMSIA64 Defined as 'IA64' if MMS is running on IA64.
MMSQUALIFIERS The command line qualifiers used to invoke MMS.
MMSTARGETS The target list specified on the command line.
MMSVAX Defined as 'VAX' if MMS is running on VAX.
Note: the MMSIA64, MMSVAX and MMSALPHA macros can be used with the
.IF directive to include description file lines that should
only be processed for the appropriate architecture.
4.4 – Special-Macros
MMS$TARGET $@ The current target
MMS$TARGET_NAME $* The current target (excluding file type)
MMS$SOURCE $< The source file specification
MMS$SOURCE_LIST $+ Comma-separated list of all sources
MMS$CHANGED_LIST $? Comma-separated list of sources that are
newer than the current target
MMS$TARGET_SPEC $> The current target
If the target is a module in an OpenVMS library...
MMS$LIB_ELEMENT $% Element spec (i.e., module=alias)
MMS$TARGET $@ The library file specification
MMS$TARGET_NAME $* The module name
MMS$TARGET_SPEC $> The library file specification
If the source is a CMS element...
MMS$CMS_ELEMENT $< The CMS element
MMS$CMS_GEN $& The CMS generation
MMS$CMS_LIBRARY $@ The CMS library specification
4.5 – Directives
A directive is a word that instructs MMS to take a certain action as
it processes a description file. A directive can appear on any line
in the description file, but it affects how the entire description
file is processed. A directive must start in column 1 of the line.
The MMS directives and their functions are:
Directive Function
.ACTION_STATUS Introduces a user-defined severity rule; select
'Description_File' subtopic 'User_Defined_Severity'
for more information.
.DEFAULT Indicates actions to be performed if MMS built-in
rules or user-defined rules do not specify how to
update a target.
.ELSE Causes subsequent lines of a description file to be
processed if the boolean-expressions for the .IF
and all the preceding .ELSIF directives are false.
.ELSIF Causes subsequent lines of a description file to be
processed if the boolean-expressions for the .IF
and all the preceding .ELSIF directives are false
and the specified boolean-expression is true.
.ENDIF Terminates the set of lines in the description file
whose processing is controlled by .IF, .ELSIF and
.ELSE.
.FIRST Indicates actions to be performed before MMS has
executed any action lines to update the target.
.IF Causes subsequent lines of a description file to be
processed only if the specified boolean-expression
is true; select 'Description_File' subtopic
'Using_Conditionals' for more information.
.IFDEF Causes subsequent lines of a description file to be
processed only if the specified macro is defined
(obsolete, use .IF instead).
.IGNORE Causes MMS to ignore all errors generated by all
action lines and to continue processing the
description file.
.INCLUDE Includes the specified file in the description file.
.LAST Indicates actions to be performed after MMS has
executed all the action lines that update the target.
.SILENT Suppresses the writing of all action lines to the
output file (whether to SYS$OUTPUT or to the file
specified by the /OUTPUT qualifier).
.SUFFIXES Clears or appends to the suffixes-precedence list.
.SUFFIXES_DELETE Clears or deletes types from the suffixes-precedence
list.
.SUFFIXES_AFTER Inserts types into the suffixes-precedence list
after the first type specified.
.SUFFIXES_BEFORE Inserts types into the suffixes-precedence list
before the first type specified.
4.6 – Action line prefixes
An action line prefix is a modifier that controls the processing of a
single action line in a description file. The action line prefixes
are:
Prefix Function
- (Ignore) Causes MMS to ignore errors generated by the action
line on which the prefix appears.
@ (Silent) Suppresses the writing to the output file of the
action line on which the prefix appears. (The output
file can be either SYS$OUTPUT or the file specified
by the /OUTPUT qualifier).
?name (Severity) Use named user-defined severity rule to convert the
status returned by the action line to the equivalent
OpenVMS severity. Select 'Description_File' subtopic
'User_Defined_Severity' for more information.
An action line prefix must appear as the first character on an action
line. The rest of the action line must be separated from the prefix
by at least one space or tab. To use more than one prefix on the
same action line, type them next to each other with no intervening
spaces; they must be separated from the rest of the action line with at
least one space or tab.
4.7 – Predefined functions
Predefined functions can be used to perform text processing operations,
operate on file specifications and determine the origin of macros. Note
that, predefined functions can only be used if extended syntax has been
enabled (use /EXTENDED_SYNTAX qualifier when invoking MMS or, in
DECwindows MMS, check the Extended Syntax check box in the Build
Definitions/Directives Options dialog box).
Where a parameter to a function is considered to be a list of words,
a word is defined as any sequence of characters, not containing
white-space characters, that is terminated by a white-space character
or ')'. White-space characters are space and tab. Functions that
generate word lists will produce lists that are white-space
compressed (i.e. no leading or trailing spaces and a single space
character between each word in the list).
4.7.1 – Text operations
The following functions perform text processing operations:
4.7.1.1 – ADDPREFIX
$(ADDPREFIX prefix,text)
Prepends to text. 'prefix' is prepended to the start of each word
in 'text'.
4.7.1.2 – ADDSUFFIX
$(ADDSUFFIX suffix,text)
Appends to text. 'suffix' is appended to the end of each word in
'text'.
4.7.1.3 – FILTER
$(FILTER pattern...,text)
Filters text. Any word in 'text' that does not match any 'pattern'
word is removed. 'pattern' words may contain the wildcard
characters * and %.
4.7.1.4 – FILTER-OUT
$(FILTER-OUT pattern...,text)
Filters text. Any word in 'text' that matches any 'pattern' word
is removed. 'pattern' words may contain the wildcard characters
* and %.
4.7.1.5 – FINDSTRING
$(FINDSTRING find,text)
String search. If 'find' occurs in 'text', the value is 'find';
otherwise, the value is empty.
4.7.1.6 – FIRSTWORD
$(FIRSTWORD text)
Returns the first word in 'text'.
4.7.1.7 – FOREACH
$(FOREACH macro,list,text)
Repeatedly expands text. For each word in 'list', 'text' is
repeated with the value of 'macro' defined as the word from 'list'.
4.7.1.8 – JOIN
$(JOIN list,text)
Concatenates word by word. Each word in 'text' is appended to the
corresponding word in 'list' to form a word in the result. When
the number of words in 'list' and 'text' are not the same, the
remaining words from the longer list are simply appended to the
result.
4.7.1.9 – PATSUBST
$(PATSUBST pattern...,to,text)
Pattern substitution. Each word in 'text' that matches any
'pattern' word is replaced by 'to'. 'pattern' words may contain
the wildcard characters * and %. If 'to' also contains wildcard
characters, they will be replaced by the text that matched the
wildcard characters in 'pattern'.
4.7.1.10 – SORT
$(SORT text)
Sorts text. Words in 'text' are sorted into lexical order;
duplicated words are removed.
4.7.1.11 – STRIP
$(STRIP text)
White-space compression. Leading and trailing white-space is
removed from 'text' and each internal sequence of white-space
characters is replaced by a single space.
4.7.1.12 – SUBST
$(SUBST from,to,text)
String substitution. Each occurrence of 'from' in 'text' is
replaced by 'to'.
4.7.1.13 – WORD
$(WORD n,text)
Returns the n'th word from 'text'. 'n' should be in the range 1 to the
number of words in the list; when 'n' is not in this range, the result
is empty.
4.7.1.14 – WORDS
$(WORDS text)
Returns the number of words in 'text'.
4.7.2 – File operations
The following functions operate on file specifications; each has a
single parameter which is a list of words where each word is
considered to be a file specification:
4.7.2.1 – BASENAME
$(BASENAME text)
Returns directory and name part. For each file specification in
'text', returns that part of the file specification that is not
the type or version.
4.7.2.2 – DIR
$(DIR text)
Returns directory part. For each file specification in 'text',
returns that part of the file specification that is not the name,
type or version.
4.7.2.3 – FILETYPE
$(FILETYPE text)
Returns type part. For each file specification in 'text', returns
the type part of the file specification.
4.7.2.4 – FILEVERSION
$(FILEVERSION text)
Returns version part. For each file specification in 'text',
returns the version part of the file specification.
4.7.2.5 – NOTDIR
$(NOTDIR text)
Returns name/type part. For each file specification in 'text',
returns the name and type part of the file specification.
4.7.2.6 – WILDCARD
$(WILDCARD text)
File search. Result is the name and type part of all existing files
that match any of the file specifications in 'text'. The file
specifications may contain the wildcard characters * and %.
4.7.3 – Other operations
Other miscellaneous operations:
4.7.3.1 – ORIGIN
$(ORIGIN macro)
Result is the origin of 'macro' as follows:
"FILE" defined in a description file
"COMMAND LINE" defined on the command line
"SPECIAL" a special macro
"DEFAULT" a default macro
"CLI SYMBOL" a CLI symbol
"TEMPORARY" defined by function FOREACH
"UNDEFINED" 'macro' is not defined
4.8 – User Defined Severity
When an action line returns a value that is not a standard OpenVMS
status, the .ACTION_STATUS directive can be used to define how the
equivalent OpenVMS severity can be determined from the foreign status
value.
The action line prefix, ?name, indicates those action lines for which
the severity must be determined according to the named ACTION_STATUS
directive.
The ACTION_STATUS directive has the following form:
(use the line continuation character '-' if the directive uses more
than one line)
.ACTION_STATUS name [ .MASK m ]
[ .SUCCESS { s1,s2,... | OTHERS } ]
[ .INFORMATION { i1,i2,... | OTHERS } ]
[ .WARNING { w1,w2,... | OTHERS } ]
[ .ERROR { e1,e2,... | OTHERS } ]
[ .FATAL { f1,f2,... | OTHERS } ]
where,
Name is any sequence of characters not starting with a punctuation
character and terminated by comma, space or tab (punctuation
characters are ! : ; , # ).
m,s,i,w,e,f are decimal, octal or hex numbers
(octal numbers are 0... and hex numbers are %x... or 0x...).
Space, tab or comma can be used as the separators in a list of
numbers.
OTHERS can only be specified for one severity.
If OTHERS is not specified, it will default to the least severe of
any undefined severity (or ERROR if all severity values are
defined).
The directive is effective over the entire file.
It is an error to specify two ACTION_STATUS directives with the same
name.
MMS will then interpret the status returned from an action line
prefixed by ?name as follows:
If mask is specified, extract value from the action line status
using the mask value; the extracted value is shifted right to match
the first bit in the mask.
If mask is not specified, extracted value is the action line status.
Determine the severity associated with the extracted value.
MMS will then continue, treating this severity as if it were a standard
OpenVMS $SEVERITY.
4.9 – Using Conditionals
The directives .IF, .ELSIF, .ELSE and .ENDIF are used to instruct MMS
to process selected lines in your description file.
The .IF directive has the following format:
.IF boolean-expression
[description file line] ...
{.ELSIF boolean-expression}
[description file line] ...
[.ELSE]
[description file line] ...
.ENDIF
In this syntax, the "description file line" is zero or more
description file lines that may include further .IF directives. The
.IF directive may be followed by zero or any number of .ELSIF
directives, and zero or one .ELSE directive. The .IF directive must
always be accompanied by a matching .ENDIF directive.
MMS evaluates the 'boolean-expression' specified with the .IF
directive. If true, the lines of the description file between the .IF
directive and a corresponding .ELSIF, .ELSE or .ENDIF are processed;
then, if either .ELSIF or .ELSE were detected, all description file
lines from this line to the corresponding .ENDIF directive are
ignored. When the boolean-expression specified with the .IF directive
is false, all description file lines from this point to a
corresponding .ELSE, .ENDIF or .ELSIF whose associated
'boolean-expression' is true, are ignored.
The 'boolean-expression' specified in .IF and .ELSIF directives is
defined as follows:
boolean-expression
:== [ .NOT ] boolean-operation |
[ .NOT ] boolean-operation boolean-operator boolean-expression
boolean-operation :== ( boolean-expression ) |
word |
word comparison-operator word
word :== null |
any sequence of characters, terminated by space, and not
starting with '.', '(' or ')'.
boolean-operator :== .AND | .OR
comparison-operator :== .EQ | .NE | .GE | .LE | .GT | .LT
The operands in the 'boolean-expression' take one of two forms:
.IF word
or,
.IF word1 .EQ word2
In the first case, MMS checks to see if 'word' is a macro that has
been defined to a non-null value; the expression is true if it is,
false otherwise. (NOTE: this is precisely the same functionality as
that of the obsolete .IFDEF directive). For example, to check that
the macro FRUIT is defined, write:
.IF FRUIT
In the second case, MMS performs the requested comparison between
'word1' and 'word2' to determine the expression value; the comparison
operation is case-sensitive. Note that, when using macros and
functions in expressions of this form, you must reference the macro
or function in the standard way, in $(). For example, to check that
the macro FRUIT is defined to be BANANAS, write:
.IF $(FRUIT) .EQ BANANAS
If you need to compare words that start with the characters '.', '('
or ')' or text containing layout characters then, enclose the
words or text (on both sides of the comparison operator) in
quotation-marks. For example, to check that the macro FILETYPE is
defined as .MMS, and that the macro VERSION is not defined as
'Version 3.2', you must write:
.IF "$(FILETYPE)" .EQ ".MMS" .AND "$(VERSION)" .NE "Version 3.2"
5 – Examples
5.1 – Description File
The following description file directs MMS to build MYPROG.EXE using
the appropriate architecture-dependent *_DEFS.REQ:
! Macro definitions
LIBRARYMODULES = A, B, C, D, E
LIBRARIES = MYPROG.OLB($(LIBRARYMODULES)) - ! project library
SYS$LIBRARY:CRTLIB.OLB ! C Runtime Library
! Dependencies
MYPROG.EXE : $(LIBRARIES)
LINK/EXEC=MYPROG MYPROG/LIB/INCLUDE=(A)
.IF MMSIA64
A.OBJ, B.OBJ : IA64_DEFS.REQ
.ELSIF MMSALPHA
A.OBJ, B.OBJ : ALPHA_DEFS.REQ
.ELSE
A.OBJ, B.OBJ : VAX_DEFS.REQ
.ENDIF
D.OBJ, E.OBJ : COMMON.H
E.OBJ : DATA.H
If this file is named DESCRIP.MMS, the following command causes MMS
to use the file to build MYPROG.EXE:
$ MMS
5.2 – MMS Actions
If the current default directory contains the following files:
A.BLI;1 B.BLI;1 C.MAR;1
COMMON.H;1 D.C;1 DATA.H;1
DEFS.REQ;1 DESCRIP.MMS;1 E.C;1
MMS will execute the following actions as it processes the sample
description file:
BLISS A.BLI
IF "''F$SEARCH("MYPROG.OLB")'" .EQS. "" THEN LIBRARY/CREATE
MYPROG.OLB
LIBRARY/REPLACE MYPROG.OLB A.OBJ
BLISS B.BLI
IF "''F$SEARCH("MYPROG.OLB")'" .EQS. "" THEN LIBRARY/CREATE
MYPROG.OLB
LIBRARY/REPLACE MYPROG.OLB B.OBJ
MACRO C.MAR
IF "''F$SEARCH("MYPROG.OLB")'" .EQS. "" THEN LIBRARY/CREATE
MYPROG.OLB
LIBRARY/REPLACE MYPROG.OLB C.OBJ
CC /NOLIST D.C
IF "''F$SEARCH("MYPROG.OLB")'" .EQS. "" THEN LIBRARY/CREATE
MYPROG.OLB
LIBRARY/REPLACE MYPROG.OLB D.OBJ
CC /NOLIST E.C
IF "''F$SEARCH("MYPROG.OLB")'" .EQS. "" THEN LIBRARY/CREATE
MYPROG.OLB
LIBRARY/REPLACE MYPROG.OLB E.OBJ
LINK/EXEC=MYPROG MYPROG/LIB/INCLUDE=(A)
These actions result in the production of all the intermediate files
needed to produce MYPROG.EXE. If you then delete all the object
files (.OBJ), and run MMS again using the /SKIP qualifier, MMS
informs you that the target MYPROG.EXE is already up-to-date.
6 – CMS
If CMS is installed on your system and your source files are in the
current default CMS library, MYPROG.EXE may be built from the CMS
library when you issue the following command:
$ MMS/CMS
This command causes MMS to fetch the description file, if necessary,
and source files from the CMS library, and perform the actions needed
to create an up-to-date MYPROG.EXE.
If a module, for example A.BLI, is replaced in the CMS library (by
you or anyone else), thus causing a later version of A.BLI to exist
in the library, the command
$ MMS/CMS
causes MMS to fetch the new CMS element A.BLI, compile it, add it to
the MYPROG.OLB library, and produce a new MYPROG.EXE by executing the
LINK command.
7 – FMS
If FMS (Forms Management System) is installed on your system, you can
use MMS to access forms stored in FMS libraries. To specify an FMS
form in a dependency rule, use the same syntax as for files in
OpenVMS libraries. The file type .FLB after the library name informs
FMS that the library contains FMS forms. The default file type for
FMS forms is .FRM.
The MMS default macro FMSFLAGS invokes FMS with the /REPLACE
qualifier.
MMS uses the insertion time of a form in an FMS library to determine
whether a source is newer than the target. You cannot use the
/REVISE_DATE qualifier with references to FMS forms.
8 – MMS$STATUS
Unless the qualifiers /CHECK_STATUS or /REVISE_DATE have been
selected, when MMS completes, the symbol MMS$STATUS is set to the
status value($STATUS) of the last action line executed.
9 – MMS$SEVEREST_STATUS
When MMS completes, the symbol MMS$SEVEREST_STATUS is set to the
'severest' status value($STATUS) of all action lines executed. If the
status values of more than one action line have the same severity,
then the resulting value of MMS$SEVEREST_STATUS will be that of the
last of these action lines.
10 – Oracle CDD/Plus
If the Oracle Common Data Dictionary (CDD/Plus) is installed on your
system, you can use MMS to access records and other definitions
stored in CDD/Plus. In a dependency rule, you follow the path name
of a CDD/Plus definition with a caret (^) to inform MMS that the
source is stored in CDD/Plus. For example:
A.PAS : CDD$TOP.B.C.D.E^ ! CDD record that updates A.PAS
! action to update A.PAS
To insert a remark in the CDD/Plus history list when MMS accesses a
CDD/Plus definition, use the /AUDIT qualifier after the caret in the
CDD/Plus specification. Follow the /AUDIT qualifier with a quoted
string that contains the remark to be inserted in the CDD/Plus
history file. For example:
A : CDD$TOP.B.C.D.E^/AUDIT="Accessed by MMS to update A"
! action to update A
The MMS default macro CDDFLAGS is initially defined to be the null
string, but you can redefine it so that the same remark is written to
the history file for all accesses to CDD/Plus entities.
You cannot use the /REVISE_DATE qualifier with references to CDD/Plus
definitions. The /NOACTION qualifier does not affect the /AUDIT
qualifier; that is, remarks are written to the CDD/Plus history file
even if action lines are not being executed.
11 – Release Notes
The release notes for MMS Version 4.0 are contained in the file:
SYS$HELP:MMS040.RELEASE_NOTES
You can type or print this file to read the release note information.
If you have installed prior versions of MMS, the associated release
notes up to and including Version 4.0 can be found in
SYS$HELP:MMSvvu.RELEASE_NOTES, where vv is the major version number,
and u is the update number.