# 23 February 2007. SMS. # # Zip 3.0 for VMS - MMS (or MMK) Description File. # # Usage: # # MMS /DESCRIP = [.VMS]DESCRIP.MMS [/MACRO = ()] [target] # # Note that this description file must be used from the main # distribution directory, not from the [.VMS] subdirectory. # # Optional macros: # # CCOPTS=xxx Compile with CC options xxx. For example: # CCOPTS=/ARCH=HOST # # DBG=1 Compile with /DEBUG /NOOPTIMIZE. # Link with /DEBUG /TRACEBACK. # (Default is /NOTRACEBACK.) # # IM=1 Use the old "IM" scheme for storing VMS/RMS file # atributes, instead of the newer "PK" scheme. # # IZ_BZIP2=dev:[dir] Add optional BZIP2 support. The valus of the # MMS macro IZ_BZIP2 ("dev:[dir]", or a suitable # logical name) tells where to find "bzlib.h". The # BZIP2 object library (LIBBZ2_NS.OLB) is expected to # be in a "[.dest]" directory under that one # ("dev:[dir.ALPHAL]", for example), or in that # directory itself. # # LARGE=1 Enable large-file (>2GB) support. Non-VAX only. # # LINKOPTS=xxx Link with LINK options xxx. For example: # LINKOPTS=/NOINFO # # LIST=1 Compile with /LIST /SHOW = (ALL, NOMESSAGES). # Link with /MAP /CROSS_REFERENCE /FULL. # # "LOCAL_ZIP=c_macro_1=value1 [, c_macro_2=value2 [...]]" # Compile with these additional C macros defined. # # VAX-specific optional macros: # # VAXC=1 Use the VAX C compiler, assuming "CC" runs it. # (That is, DEC C is not installed, or else DEC C is # installed, but VAX C is the default.) # # FORCE_VAXC=1 Use the VAX C compiler, assuming "CC /VAXC" runs it. # (That is, DEC C is installed, and it is the # default, but you want VAX C anyway, you fool.) # # GNUC=1 Use the GNU C compiler. (Seriously under-tested.) # # # The default target, ALL, builds the selected product executables and # help files. # # Other targets: # # CLEAN deletes architecture-specific files, but leaves any # individual source dependency files and the help files. # # CLEAN_ALL deletes all generated files, except the main (collected) # source dependency file. # # CLEAN_EXE deletes only the architecture-specific executables. # Handy if all you wish to do is re-link the executables. # # Example commands: # # To build the conventional small-file product using the DEC/Compaq/HP C # compiler (Note: DESCRIP.MMS is the default description file name.): # # MMS /DESCRIP = [.VMS] # # To get the large-file executables (on a non-VAX system): # # MMS /DESCRIP = [.VMS] /MACRO = (LARGE=1) # # To delete the architecture-specific generated files for this system # type: # # MMS /DESCRIP = [.VMS] /MACRO = (LARGE=1) CLEAN ! Large-file. # or # MMS /DESCRIP = [.VMS] CLEAN ! Small-file. # # To build a complete small-file product for debug with compiler # listings and link maps: # # MMS /DESCRIP = [.VMS] CLEAN # MMS /DESCRIP = [.VMS] /MACRO = (DBG=1, LIST=1) # ######################################################################## # Include primary product description file. INCL_DESCRIP_SRC = 1 .INCLUDE [.VMS]DESCRIP_SRC.MMS # Object library names. LIB_ZIP = [.$(DEST)]ZIP.OLB LIB_ZIPCLI = [.$(DEST)]ZIPCLI.OLB LIB_ZIPUTILS = [.$(DEST)]ZIPUTILS.OLB # Help file names. ZIP_HELP = ZIP.HLP ZIP_CLI.HLP # Message file names. ZIP_MSG_MSG = [.VMS]ZIP_MSG.MSG ZIP_MSG_EXE = [.$(DEST)]ZIP_MSG.EXE ZIP_MSG_OBJ = [.$(DEST)]ZIP_MSG.OBJ # TARGETS. # Default target, ALL. Build All Zip executables, utility executables, # and help files. ALL : $(ZIP) $(ZIP_CLI) $(ZIPUTILS) $(ZIP_HELP) $(ZIP_MSG_EXE) @ write sys$output "Done." # CLEAN target. Delete the [.$(DEST)] directory and everything in it. CLEAN : if (f$search( "[.$(DEST)]*.*") .nes. "") then - delete /noconfirm [.$(DEST)]*.*;* if (f$search( "$(DEST).DIR") .nes. "") then - set protection = w:d $(DEST).DIR;* if (f$search( "$(DEST).DIR") .nes. "") then - delete /noconfirm $(DEST).DIR;* # CLEAN_ALL target. Delete: # The [.$(DEST)] directories and everything in them. # All help-related derived files, # All individual C dependency files. # Also mention: # Comprehensive dependency file. CLEAN_ALL : if (f$search( "[.ALPHA*]*.*") .nes. "") then - delete /noconfirm [.ALPHA*]*.*;* if (f$search( "ALPHA*.DIR", 1) .nes. "") then - set protection = w:d ALPHA*.DIR;* if (f$search( "ALPHA*.DIR", 2) .nes. "") then - delete /noconfirm ALPHA*.DIR;* if (f$search( "[.IA64*]*.*") .nes. "") then - delete /noconfirm [.IA64*]*.*;* if (f$search( "IA64*.DIR", 1) .nes. "") then - set protection = w:d IA64*.DIR;* if (f$search( "IA64*.DIR", 2) .nes. "") then - delete /noconfirm IA64*.DIR;* if (f$search( "[.VAX*]*.*") .nes. "") then - delete /noconfirm [.VAX*]*.*;* if (f$search( "VAX*.DIR", 1) .nes. "") then - set protection = w:d VAX*.DIR;* if (f$search( "VAX*.DIR", 2) .nes. "") then - delete /noconfirm VAX*.DIR;* if (f$search( "[.vms]ZIP_CLI.RNH") .nes. "") then - delete /noconfirm [.vms]ZIP_CLI.RNH;* if (f$search( "ZIP_CLI.HLP") .nes. "") then - delete /noconfirm ZIP_CLI.HLP;* if (f$search( "ZIP.HLP") .nes. "") then - delete /noconfirm ZIP.HLP;* if (f$search( "*.MMSD") .nes. "") then - delete /noconfirm *.MMSD;* if (f$search( "[.vms]*.MMSD") .nes. "") then - delete /noconfirm [.vms]*.MMSD;* @ write sys$output "" @ write sys$output "Note: This procedure will not" @ write sys$output " DELETE [.VMS]DESCRIP_DEPS.MMS;*" @ write sys$output - "You may choose to, but a recent version of MMS (V3.5 or newer?) is" @ write sys$output - "needed to regenerate it. (It may also be recovered from the original" @ write sys$output - "distribution kit.) See [.VMS]DESCRIP_MKDEPS.MMS for instructions on" @ write sys$output - "generating [.VMS]DESCRIP_DEPS.MMS." @ write sys$output "" @ write sys$output - "It also does not delete the error message source file:" @ write sys$output " DELETE [.VMS]ZIP_MSG.MSG;*" @ write sys$output - "but it can regenerate it if needed." @ write sys$output "" # CLEAN_EXE target. Delete the executables in [.$(DEST)]. CLEAN_EXE : if (f$search( "[.$(DEST)]*.EXE") .nes. "") then - delete /noconfirm [.$(DEST)]*.EXE;* # Object library module dependencies. $(LIB_ZIP) : $(LIB_ZIP)($(MODS_OBJS_LIB_ZIP)) @ write sys$output "$(MMS$TARGET) updated." $(LIB_ZIPCLI) : $(LIB_ZIPCLI)($(MODS_OBJS_LIB_ZIPCLI)) @ write sys$output "$(MMS$TARGET) updated." $(LIB_ZIPUTILS) : $(LIB_ZIPUTILS)($(MODS_OBJS_LIB_ZIPUTILS)) @ write sys$output "$(MMS$TARGET) updated." # Module ID options file. OPT_ID = SYS$DISK:[.VMS]ZIP.OPT # Default C compile rule. .C.OBJ : $(CC) $(CFLAGS) $(CDEFS_UNX) $(MMS$SOURCE) # Normal sources in [.VMS]. [.$(DEST)]VMS.OBJ : [.VMS]VMS.C [.$(DEST)]VMSMUNCH.OBJ : [.VMS]VMSMUNCH.C [.$(DEST)]VMSZIP.OBJ : [.VMS]VMSZIP.C # Command-line interface files. [.$(DEST)]CMDLINE.OBJ : [.VMS]CMDLINE.C $(CC) $(CFLAGS) $(CDEFS_CLI) $(MMS$SOURCE) [.$(DEST)]ZIPCLI.OBJ : ZIP.C $(CC) $(CFLAGS) $(CDEFS_CLI) $(MMS$SOURCE) [.$(DEST)]ZIP_CLI.OBJ : [.VMS]ZIP_CLI.CLD # Utility variant sources. [.$(DEST)]CRC32_.OBJ : CRC32.C $(CC) $(CFLAGS) $(CDEFS_UTIL) $(MMS$SOURCE) [.$(DEST)]CRYPT_.OBJ : CRYPT.C $(CC) $(CFLAGS) $(CDEFS_UTIL) $(MMS$SOURCE) [.$(DEST)]FILEIO_.OBJ : FILEIO.C $(CC) $(CFLAGS) $(CDEFS_UTIL) $(MMS$SOURCE) [.$(DEST)]UTIL_.OBJ : UTIL.C $(CC) $(CFLAGS) $(CDEFS_UTIL) $(MMS$SOURCE) [.$(DEST)]ZIPFILE_.OBJ : ZIPFILE.C $(CC) $(CFLAGS) $(CDEFS_UTIL) $(MMS$SOURCE) [.$(DEST)]VMS_.OBJ : [.VMS]VMS.C $(CC) $(CFLAGS) $(CDEFS_UTIL) $(MMS$SOURCE) # Utility main sources. [.$(DEST)]ZIPCLOAK.OBJ : ZIPCLOAK.C $(CC) $(CFLAGS) $(CDEFS_UTIL) $(MMS$SOURCE) [.$(DEST)]ZIPNOTE.OBJ : ZIPNOTE.C $(CC) $(CFLAGS) $(CDEFS_UTIL) $(MMS$SOURCE) [.$(DEST)]ZIPSPLIT.OBJ : ZIPSPLIT.C $(CC) $(CFLAGS) $(CDEFS_UTIL) $(MMS$SOURCE) # VAX C LINK options file. .IFDEF OPT_FILE $(OPT_FILE) : open /write opt_file_ln $(OPT_FILE) write opt_file_ln "SYS$SHARE:VAXCRTL.EXE /SHARE" close opt_file_ln .ENDIF # Normal Zip executable. $(ZIP) : [.$(DEST)]ZIP.OBJ $(LIB_ZIP) $(OPT_FILE) $(LINK) $(LINKFLAGS) $(MMS$SOURCE), - $(LIB_ZIP) /include = (GLOBALS $(INCL_BZIP2_M)) /library, - $(LIB_BZIP2_OPTS) - $(LFLAGS_ARCH) - $(OPT_ID) /options # CLI Zip executable. $(ZIP_CLI) : [.$(DEST)]ZIPCLI.OBJ \ $(LIB_ZIPCLI) $(OPT_ID) $(OPT_FILE) $(LINK) $(LINKFLAGS) $(MMS$SOURCE), - $(LIB_ZIPCLI) /library, - $(LIB_ZIP) /include = (GLOBALS $(INCL_BZIP2_M)) /library, - $(LIB_BZIP2_OPTS) - $(LFLAGS_ARCH) - $(OPT_ID) /options # Utility executables. [.$(DEST)]ZIPCLOAK.EXE : [.$(DEST)]ZIPCLOAK.OBJ \ $(LIB_ZIPUTILS) \ $(OPT_ID) $(OPT_FILE) $(LINK) $(LINKFLAGS) $(MMS$SOURCE), - $(LIB_ZIPUTILS) /include = (GLOBALS) /library, - $(LFLAGS_ARCH) - $(OPT_ID) /options [.$(DEST)]ZIPNOTE.EXE : [.$(DEST)]ZIPNOTE.OBJ \ $(LIB_ZIPUTILS) \ $(OPT_ID) $(OPT_FILE) $(LINK) $(LINKFLAGS) $(MMS$SOURCE), - $(LIB_ZIPUTILS) /include = (GLOBALS) /library, - $(LFLAGS_ARCH) - $(OPT_ID) /options [.$(DEST)]ZIPSPLIT.EXE : [.$(DEST)]ZIPSPLIT.OBJ \ $(LIB_ZIPUTILS) \ $(OPT_ID) $(OPT_FILE) $(LINK) $(LINKFLAGS) $(MMS$SOURCE), - $(LIB_ZIPUTILS) /include = (GLOBALS) /library, - $(LFLAGS_ARCH) - $(OPT_ID) /options # Help files. ZIP.HLP : [.VMS]VMS_ZIP.RNH runoff /output = $(MMS$TARGET) $(MMS$SOURCE) ZIP_CLI.HLP : [.VMS]ZIP_CLI.HELP [.VMS]CVTHELP.TPU edit := edit edit /tpu /nosection /nodisplay /command = [.VMS]CVTHELP.TPU - $(MMS$SOURCE) rename /noconfirm ZIP_CLI.RNH; [.VMS]; purge /noconfirm /nolog /keep = 1 [.VMS]ZIP_CLI.RNH runoff /output = $(MMS$TARGET) [.VMS]ZIP_CLI.RNH # Message file. $(ZIP_MSG_EXE) : $(ZIP_MSG_OBJ) link /shareable = $(MMS$TARGET) $(ZIP_MSG_OBJ) $(ZIP_MSG_OBJ) : $(ZIP_MSG_MSG) message /object = $(MMS$TARGET) /nosymbols $(ZIP_MSG_MSG) $(ZIP_MSG_MSG) : ZIPERR.H [.VMS]STREAM_LF.FDL [.VMS]VMS_MSG_GEN.C $(CC) /include = [] /object = [.$(DEST)]VMS_MSG_GEN.OBJ - [.VMS]VMS_MSG_GEN.C $(LINK) /executable = [.$(DEST)]VMS_MSG_GEN.EXE - $(LFLAGS_ARCH) - [.$(DEST)]VMS_MSG_GEN.OBJ create /fdl = [.VMS]STREAM_LF.FDL $(MMS$TARGET) define /user_mode sys$output $(MMS$TARGET) run [.$(DEST)]VMS_MSG_GEN.EXE purge $(MMS$TARGET) delete [.$(DEST)]VMS_MSG_GEN.EXE;*, [.$(DEST)]VMS_MSG_GEN.OBJ;* # Include generated source dependencies. INCL_DESCRIP_DEPS = 1 .INCLUDE [.VMS]DESCRIP_DEPS.MMS