123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358 |
- # 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
|