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
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.