!++ ! DESCRIP.MMS ! ! MMS (MMK) description file for building MMK. ! ! N.B.: If you are on an AXP system and using DEC/MMS, ! use the command MMS/MACRO=(__AXP__=1) to build MMK, ! so you get the right linker options file. This may ! or may not work; some versions of MMS may not be ! able to handle some of the syntax in this file. ! ! 28-SEP-1993 V1.0 Madison Initial commenting. ! 25-JUL-1994 V1.1 Madison Update for V3.2. !-- .IFDEF __MADGOAT_BUILD__ MG_FACILITY = MMK .INCLUDE MG_TOOLS:HEADER.MMS .ELSE ETCDIR = KITDIR = BINDIR = .ENDIF ! ! Set up some macros we'll need ! .IFDEF __MMK_V32__ .IFDEF __AXP__ ARCH = AXP MMKCOPT = MMK_COMPILE_RULES.ALPHA_OPT OPTFILE = MMK.ALPHA_OPT .ELSE ARCH = VAX MMKCOPT = MMK_COMPILE_RULES.OPT OPTFILE = MMK.OPT .ENDIF .IFDEF __MADGOAT_BUILD__ .ELSE BINDIR = SYS$DISK:[.BIN-$(ARCH)] .FIRST @ IF F$PARSE("$(BINDIR)") .EQS. "" THEN CREATE/DIR $(BINDIR) @ DEFINE/NOLOG BIN_DIR $(BINDIR) {}.C{$(BINDIR)}.OBJ : $(CC)$(CFLAGS) $(MMS$SOURCE) {}.MSG{$(BINDIR)}.OBJ : $(MESSAGE) $(MSGFLAGS) $(MMS$SOURCE) .ENDIF MMKCLOC = $(BINDIR) .ELSE ! MMK pre-V3.2, or DEC/MMS .IFDEF __AXP__ OPT = .ALPHA_OPT .ELSE OPT = .OPT .ENDIF MMKCLOC = SYS$DISK:[] MMKCOPT = MMK_COMPILE_RULES$(OPT) OPTFILE = MMS_MMK$(OPT) .ENDIF ! ! Make sure we compile /NOOPT when we compile /DEBUG. ! .IFDEF DBG .IFDEF NOOPT .ELSE NOOPT = /NOOPT .ENDIF .ENDIF ! ! Modules for building MMK ! OBJECTS = MMK,FILEIO,MEM,GET_RDT,SP_MGR,MISC,OBJECTS,- SYMBOLS,READDESC,BUILD_TARGET,PARSE_DESCRIP,CMS_INTERFACE,- PARSE_OBJECTS,PARSE_TABLES,MMK_MSG,MMK_CLD,DEFAULT_RULES ! ! Modules for building the rules compiler ! MMKCMODS = FILEIO,MEM,MISC,OBJECTS,SYMBOLS,READDESC,PARSE_DESCRIP,- PARSE_OBJECTS,PARSE_TABLES,MMK_MSG ! ! The AXP default rules are slightly different from the VAX default rules ! .IFDEF __AXP__ RULES = MMK_DEFAULT_RULES_AXP .ELSE RULES = MMK_DEFAULT_RULES .ENDIF CFLAGS = $(CFLAGS)$(DBG)$(NOOPT)/NOLIST$(LIS)$(DEFINE) LINKFLAGS = /EXEC=$(MMS$TARGET)/NOTRACE$(DBG)/NOMAP$(MAP) $(BINDIR)MMK.EXE : $(BINDIR)MMK.OLB($(OBJECTS)),$(OPTFILE) $(LIBR)/COMPRESS/OUTPUT=$(BINDIR)MMK.OLB $(BINDIR)MMK.OLB $(LINK)$(LINKFLAGS) $(OPTFILE)/OPT ! ! We only try to generate the message codes .H file from the .MSG file ! if GENMSG is installed ! .IFDEF GENMSG MMK_MSG.H : MMK_MSG.MSG @ GENMSG := $(GENMSG) GENMSG $(MMS$SOURCE) $(MMS$TARGET) .ENDIF $(BINDIR)MEM.OBJ, $(BINDIR)GET_RDT.OBJ, $(BINDIR)SP_MGR.OBJ : MMK.H $(BINDIR)SYMBOLS.OBJ, $(BINDIR)OBJECTS.OBJ, $(BINDIR)MISC.OBJ : MMK.H, GLOBALS.H $(BINDIR)READDESC.OBJ, $(BINDIR)BUILD_TARGET.OBJ : MMK.H, MMK_MSG.H, GLOBALS.H $(BINDIR)PARSE_DESCRIP.OBJ, $(BINDIR)PARSE_OBJECTS.OBJ : MMK.H, GLOBALS.H, MMK_MSG.H, TPADEF.H $(BINDIR)CMS_INTERFACE.OBJ : CMS_INTERFACE.C, MMK.H, CMSDEF.H, GLOBALS.H $(BINDIR)MMK.OBJ : MMK.H, MMK_MSG.H $(BINDIR)DEFAULT_RULES.OBJ : MMK.H, GLOBALS.H, $(RULES).H $(RULES).H : $(RULES).MMS, $(BINDIR)MMK_COMPILE_RULES.EXE MMKC := $$(MMKCLOC)MMK_COMPILE_RULES.EXE MMKC/OUTPUT=$(MMS$TARGET) $(MMS$SOURCE) MMKCOBJ = $(BINDIR)MMK_COMPILE_RULES.OBJ,$(BINDIR)GENSTRUC.OBJ,$(BINDIR)MMK_COMPILE_RULES_CLD.OBJ $(BINDIR)MMK_COMPILE_RULES.EXE : $(MMKCOBJ),$(BINDIR)MMK.OLB($(MMKCMODS)),$(MMKCOPT) $(LINK)$(LINKFLAGS)/nodebug $(MMKCOBJ),$(BINDIR)MMK.OLB/LIB,SYS$DISK:[]$(MMKCOPT)/opt $(BINDIR)MMK_COMPILE_RULES.OBJ : MMK.H, MMK_MSG.H $(BINDIR)GENSTRUC.OBJ : MMK.H, GLOBALS.H ! ! The help file ! MMK_HELP.HLP : MMK_HELP.RNH ! ! Documentation ! $(KITDIR)MMK_DOC.PS : MMK_DOC.SDML,MMK_DEFAULT_RULES.MMS,MMK_DEFAULT_RULES_AXP.MMS DOCUMENT/CONTENTS/NOPRINT/DEVICE=BLANK_PAGES/OUTPUT=$(MMS$TARGET) $(MMS$SOURCE) SOFTWARE.REFERENCE PS $(KITDIR)MMK_DOC.TXT : MMK_DOC.SDML,MMK_DEFAULT_RULES.MMS,MMK_DEFAULT_RULES_AXP.MMS DOCUMENT/CONTENTS/NOPRINT/OUTPUT=$(MMS$TARGET) $(MMS$SOURCE) SOFTWARE.REFERENCE MAIL ! ! Building the kit. Note that my foreign command symbol for ZIP is ! PKZIP, rather than just plain ZIP, because I use ZIP for something else. -mdm ! ZIP = PKZIP KIT : $(KITDIR)MMK.ZIP @ ! $(KITDIR)MMK.ZIP : DISTRIBUTION, SOURCE IF F$SEARCH("$(MMS$TARGET)") .NES. "" THEN DELETE $(MMS$TARGET);* olddef = F$ENV("DEFAULT") SET DEFAULT DIST_ROOT:[DIST] PURGE [...]*.* $(ZIP) -r "-V" DIST_ROOT:[000000]MMK.ZIP *.*; SET DEFAULT 'olddef' TREDEL $(KITDIR)DIST.DIR TAPE : DISTRIBUTION, SOURCE ROOT = F$PARSE("$(KITDIR)DIST.DIR",,,"DEVICE","NO_CONCEAL")+F$PARSE("$(KITDIR)DIST.DIR",,,"DIRECTORY","NO_CONCEAL")-"]["-"]"+".]" DEFINE MMK_ROOT 'ROOT'/TRANSLATION=CONCEAL BACKUP/LOG=TAPE.LIS MMK_ROOT:[DIST...]*.*; $(TAPE)MMK.BCK/SAVE/INTERCHANGE TREDEL $(KITDIR)DIST.DIR DISTRIBUTION : DIST_PREP, DIST_DOC, DIST_BIN @ ! DIST_PREP : IF F$SEARCH("$(KITDIR)DIST.DIR") .NES. "" THEN TREDEL $(KITDIR)DIST.DIR olddef = F$ENV("DEFAULT") IF "$(KITDIR)" .NES. "" THEN SET DEFAULT $(KITDIR) CREATE/DIRECTORY [.DIST] SET DEFAULT 'olddef ROOT = F$PARSE("$(KITDIR)DIST.DIR",,,"DEVICE","NO_CONCEAL")+F$PARSE("$(KITDIR)DIST.DIR",,,"DIRECTORY","NO_CONCEAL")-"]["-"]"+".]" DEFINE DIST_ROOT 'ROOT'/TRANSLATION=CONCEAL DIST_DOC : AAAREADME.DOC,AAAREADME.TOO,AAAREADME.INSTALL,LINK.COM,MMK.OPT,MMK.ALPHA_OPT,- MMK_DEFAULT_RULES.MMS,MMK_DEFAULT_RULES_AXP.MMS,CROSS_ALPHA.MMS,- $(KITDIR)MMK_HELP.HLP,$(KITDIR)MMK_DOC.PS,$(KITDIR)MMK_DOC.TXT PURGE $(MMS$SOURCE_LIST) BACKUP $(MMS$SOURCE_LIST) DIST_ROOT:[DIST...]/OWNER=PARENT DIST_BIN : $(BINVAX)MMK.OLB,$(BINAXP)MMK.OLB PURGE $(BINVAX)MMK.OLB,$(BINAXP)MMK.OLB BACKUP $(BINVAX)MMK.OLB DIST_ROOT:[DIST.BIN-VAX]*.*/OWNER=PARENT BACKUP $(BINAXP)MMK.OLB DIST_ROOT:[DIST.BIN-AXP]*.*/OWNER=PARENT SOURCE : MMK.C,FILEIO.C,MEM.C,GET_RDT.C,SP_MGR.C,- MISC.C,OBJECTS.C,SYMBOLS.C,READDESC.C,BUILD_TARGET.C,PARSE_DESCRIP.C,- PARSE_OBJECTS.C,PARSE_TABLES.MAR,MMK_MSG.MSG,MMK_CLD.CLD,- MMK.H,GLOBALS.H,TPADEF.H,MMK_MSG.H,CMSDEF.H,CMS_INTERFACE.C,- MHDDEF.H,CLIDEFS.H,DESCRIP.MMS,MMK.OPT,MMK.ALPHA_OPT,- MMK_COMPILE_RULES.C,GENSTRUC.C,DEFAULT_RULES.C,MMK_COMPILE_RULES.OPT,- MMK_COMPILE_RULES.ALPHA_OPT,MMK_COMPILE_RULES_CLD.CLD,- MMK_DEFAULT_RULES.MMS,MMK_DEFAULT_RULES_AXP.MMS,CROSS_ALPHA.MMS,- MMK_HELP.RNH,MMK_DOC.SDML,MMS_MMK.OPT,MMS_MMK.ALPHA_OPT PURGE $(MMS$SOURCE_LIST) CREATE/DIRECTORY DIST_ROOT:[DIST.SOURCE] BACKUP $(MMS$SOURCE_LIST) DIST_ROOT:[DIST.SOURCE]/OWNER=PARENT