diff options
Diffstat (limited to 'vms/descrip.mms')
-rw-r--r-- | vms/descrip.mms | 358 |
1 files changed, 358 insertions, 0 deletions
diff --git a/vms/descrip.mms b/vms/descrip.mms new file mode 100644 index 0000000..ae2bc04 --- /dev/null +++ b/vms/descrip.mms @@ -0,0 +1,358 @@ +# 23 February 2007. SMS. +# +# Zip 3.0 for VMS - MMS (or MMK) Description File. +# +# Usage: +# +# MMS /DESCRIP = [.VMS]DESCRIP.MMS [/MACRO = (<see_below>)] [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 + |