Auto-generated MMS
The default MMS file generated by VMS-IDE: Create MMS command includes the following operations:
- Collect the list of header files
- Collect the list of source files
- Add header files list as INCLUDES
- Add source files list as SOURCES
- Define the main target depending on the project type
- Define object dependencies
Note: For some languages the compilation order is important. To change the order in which objects are compiled, reorder the object files in the main target definition.
Variables DEBUG, OUTDIR and CONFIG will be defined by the VMS IDE extension during compilation.
Example
! header !auto
! Do not modify this file. It may be overwritten automatically. !auto
! includes !auto
INCLUDES= !auto
! sources !auto
SOURCES= - !auto
myprog.cob !auto
! dependencies !auto
.FIRST !auto
!auto
! compiler/linker options !auto
.IF DEBUG !auto
COMPILEFLAGS = /DEBUG/NOOP/LIST=$(MMS$TARGET_NAME)/OBJECT=$(MMS$TARGET) !auto
LINKFLAGS = /DEBUG/MAP=$(MMS$TARGET_NAME)/EXECUTABLE=$(MMS$TARGET) !auto
.ELSE !auto
COMPILEFLAGS = /OBJECT=$(MMS$TARGET) !auto
LINKFLAGS = /EXECUTABLE=$(MMS$TARGET) !auto
.ENDIF !auto
! directives !auto
.SILENT !auto
OUT_DIR = .$(OUTDIR).$(CONFIG) !auto
OBJ_DIR = $(OUT_DIR).obj !auto
.SUFFIXES !auto
.SUFFIXES .OBJ .CPP .C .CLD .MSG .BLI .COB .PAS .BAS .F77 .F90 .FOR .B32 .CBL !auto
.CPP.OBJ !auto
pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl: !auto
$(CXX) $(COMPILEFLAGS) $(MMS$SOURCE) !auto
!auto
.C.OBJ !auto
pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl: !auto
$(CC) $(COMPILEFLAGS) $(MMS$SOURCE) !auto
!auto
.CLD.OBJ !auto
pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl: !auto
SET COMMAND/OBJECT=$(MMS$TARGET) $(MMS$SOURCE) !auto
!auto
.MSG.OBJ !auto
pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl: !auto
MESSAGE /OBJECT=$(MMS$TARGET) $(MMS$SOURCE) !auto
!auto
.BLI.OBJ !auto
pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl: !auto
BLISS $(COMPILEFLAGS) $(MMS$SOURCE) !auto
!auto
.B32.OBJ !auto
pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl: !auto
BLISS $(COMPILEFLAGS) $(MMS$SOURCE) !auto
!auto
.COB.OBJ !auto
pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl: !auto
COBOL $(COMPILEFLAGS) $(MMS$SOURCE) !auto
!auto
.CBL.OBJ !auto
pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl: !auto
COBOL $(COMPILEFLAGS) $(MMS$SOURCE) !auto
!auto
.PAS.OBJ !auto
pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl: !auto
PASCAL $(COMPILEFLAGS) $(MMS$SOURCE) !auto
!auto
.BAS.OBJ !auto
pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl: !auto
BASIC $(COMPILEFLAGS) $(MMS$SOURCE) !auto
!auto
.F77.OBJ !auto
pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl: !auto
FORTRAN $(COMPILEFLAGS) $(MMS$SOURCE) !auto
!auto
.F90.OBJ !auto
pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl: !auto
FORTRAN $(COMPILEFLAGS) $(MMS$SOURCE) !auto
!auto
.FOR.OBJ !auto
pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl: !auto
FORTRAN $(COMPILEFLAGS) $(MMS$SOURCE) !auto
!auto
.DEFAULT !auto
! Source $(MMS$TARGET) not yet added !auto
!auto
! main target !auto
[$(OUT_DIR)]$(NAME).EXE : - !auto
[$(OBJ_DIR)]myprog.obj !auto
CXXLINK $(LINKFLAGS) $(MMS$SOURCE_LIST) !auto
!auto
! objects !auto
[$(OBJ_DIR)]myprog.obj : myprog.cob $(INCLUDES) !auto