Difference between revisions of "Auto-generated MMS"
(Created page with " The order of default MMS creation: # Collect header files list # Collect source files list # Put header files list as '''INCLUDES''' into default MMS content # Put source fil...") |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | The default MMS file generated by <code>VMS-IDE: Create MMS</code> command includes the following operations: | |
− | The | + | # Collect the list of header files |
− | # Collect header files | + | # Collect the list of source files |
− | # Collect source files | + | # Add header files list as '''INCLUDES''' |
− | # | + | # Add source files list as '''SOURCES''' |
− | # | + | # Define the main target depending on the project type |
− | # Define main target depending on type | ||
# Define object dependencies | # 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 extension | + | '''NOTE:''' Variables '''DEBUG''', '''OUTDIR''' and '''CONFIG''' will be defined by the VMS IDE extension during compilation. |
==Example== | ==Example== |
Latest revision as of 10:30, 20 August 2019
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.
NOTE: 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