!========================================================================== ! MMS description file for UnZip/UnZipSFX 5.20 or later 11 Feb 96 !========================================================================== ! ! To build UnZip that uses shared libraries, edit the USER CUSTOMIZATION ! lines below to taste, then do ! mms ! or ! mmk ! if you use Matt's Make (free MMS-compatible make utility). ! ! (One-time users will find it easier to use the MAKE_UNZ.COM command file, ! which generates both UnZip and UnZipSFX. Just type "@[.VMS]MAKE_UNZ", or ! "@[.VMS]MAKE_UNZ GCC" if you want to use GNU C.) ! Only when you try to build the default target ! "all executables (linked against shareable images), and help file" ! you can simply type "mmk" or "mms". ! (You have to copy the description file to your working directory for MMS, ! with MMK you can alternatively use the /DESCR=[.VMS] qualifier. ! ! In all other cases where you want to explicitely specify a makefile target, ! you have to specify your compiling environment, too. These are: ! ! $ MMS/MACRO=(__ALPHA__=1) ! Alpha AXP, (DEC C) ! $ MMS/MACRO=(__DECC__=1) ! VAX, using DEC C ! $ MMS/MACRO=(__FORCE_VAXC__=1) ! VAX, prefering VAXC over DECC ! $ MMS/MACRO=(__VAXC__=1) ! VAX, where VAXC is default ! $ MMS/MACRO=(__GNUC__=1) ! VAX, using GNU C ! ! To build UnZip without shared libraries, ! mms noshare ! To delete all .OBJ, .OLB, .EXE and .HLP files, ! mms clean DO_THE_BUILD : @ decc = f$search("SYS$SYSTEM:DECC$COMPILER.EXE").nes."" @ axp = f$getsyi("HW_MODEL").ge.1024 @ macro = "/MACRO=(" @ if decc then macro = macro + "__DECC__=1," @ if axp then macro = macro + "__ALPHA__=1," @ if .not.(axp.or.decc) then macro = macro + "__VAXC__=1," @ macro = f$extract(0,f$length(macro)-1,macro)+ ")" $(MMS)$(MMSQUALIFIERS)'macro' default .IFDEF __ALPHA__ E = .AXP_EXE O = .AXP_OBJ A = .AXP_OLB .ELSE .IFDEF __DECC__ E = .VAX_DECC_EXE O = .VAX_DECC_OBJ A = .VAX_DECC_OLB .ENDIF .IFDEF __FORCE_VAXC__ __VAXC__ = 1 .ENDIF .IFDEF __VAXC__ E = .VAX_VAXC_EXE O = .VAX_VAXC_OBJ A = .VAX_VAXC_OLB .ENDIF .IFDEF __GNUC__ E = .VAX_GNUC_EXE O = .VAX_GNUC_OBJ A = .VAX_GNUC_OLB .ENDIF .ENDIF .IFDEF O .ELSE !If EXE and OBJ extentions aren't defined, define them E = .EXE O = .OBJ A = .OLB .ENDIF !!!!!!!!!!!!!!!!!!!!!!!!!!! USER CUSTOMIZATION !!!!!!!!!!!!!!!!!!!!!!!!!!!! ! uncomment the following line if you want the VMS CLI$ interface: !VMSCLI = VMSCLI, ! add VMSWILD, RETURN_CODES, and/or any other optional ! macros (except VMSCLI, above) to the following line for a custom version: COMMON_DEFS = !!!!!!!!!!!!!!!!!!!!!!!! END OF USER CUSTOMIZATION !!!!!!!!!!!!!!!!!!!!!!!! .IFDEF __GNUC__ CC = gcc LIBS = ,GNU_CC:[000000]GCCLIB.OLB/LIB .ELSE CC = cc LIBS = .ENDIF CFLAGS = /NOLIST/INCL=(SYS$DISK:[]) OPTFILE = [.vms]vaxcshr.opt .IFDEF __ALPHA__ CC_OPTIONS = /STANDARD=VAXC/PREFIX=ALL/ANSI CC_DEFS = MODERN, OPTFILE_LIST = OPTIONS = $(LIBS) NOSHARE_OPTS = $(LIBS)/NOSYSSHR .ELSE .IFDEF __DECC__ CC_OPTIONS = /DECC/STANDARD=VAXC/PREFIX=ALL CC_DEFS = MODERN, OPTFILE_LIST = OPTIONS = $(LIBS) NOSHARE_OPTS = $(LIBS),SYS$LIBRARY:DECCRTL.OLB/LIB/INCL=(CMA$TIS)/NOSYSSHR .ELSE .IFDEF __FORCE_VAXC__ !Select VAXC on systems where DEC C exists CC_OPTIONS = /VAXC .ELSE !No flag allowed/needed on a pure VAXC system CC_OPTIONS = .ENDIF CC_DEFS = OPTFILE_LIST = ,$(OPTFILE) OPTIONS = $(LIBS),$(OPTFILE)/OPTIONS NOSHARE_OPTS = $(LIBS),SYS$LIBRARY:VAXCRTL.OLB/LIB/NOSYSSHR .ENDIF .ENDIF .IFDEF __DEBUG__ CDEB = /DEBUG/NOOPTIMIZE LDEB = /DEBUG .ELSE CDEB = LDEB = /NOTRACE .ENDIF CFLAGS_SFX = $(CC_OPTIONS) $(CFLAGS) $(CDEB) - /def=($(CC_DEFS) $(COMMON_DEFS) $(VMSCLI) SFX, VMS) CFLAGS_ALL = $(CC_OPTIONS) $(CFLAGS) $(CDEB) - /def=($(CC_DEFS) $(COMMON_DEFS) $(VMSCLI) VMS) LINKFLAGS = $(LDEB) COMMON_OBJS1 = unzip$(O),crc32$(O),crctab$(O),crypt$(O),envargs$(O),- explode$(O),extract$(O),fileio$(O),globals$(O) COMMON_OBJS2 = inflate$(O),list$(O),match$(O),process$(O),ttyio$(O),- unreduce$(O),unshrink$(O),zipinfo$(O),- vms$(O) COMMON_OBJS = $(COMMON_OBJS1),$(COMMON_OBJS2) COMMON_OBJX1 = UNZIP=unzipsfx$(O),- crc32$(O),crctab$(O),crypt$(O),- EXTRACT=extract_$(O),- fileio$(O),globals$(O) COMMON_OBJX2 = inflate$(O),match$(O),- PROCESS=process_$(O),- ttyio$(O),- VMS=vms_$(O) COMMON_OBJX = $(COMMON_OBJX1),$(COMMON_OBJX2) .IFDEF VMSCLI CLI_OBJS = VMS_UNZIP_CLD=unz_cli$(O),- VMS_UNZIP_CMDLINE=cmdline$(O) OBJS = $(COMMON_OBJS),$(CLI_OBJS) CLI_OBJX = VMS_UNZIP_CLD=unz_cli$(O),- VMS_UNZIP_CMDLINE=cmdline_$(O) OBJX = $(COMMON_OBJX),$(CLI_OBJX) .ELSE CLI_OBJS = OBJS = $(COMMON_OBJS) OBJX = $(COMMON_OBJX) .ENDIF UNZIP_H = unzip.h unzpriv.h globals.h !!!!!!!!!!!!!!!!!!! override default rules: !!!!!!!!!!!!!!!!!!! .suffixes : .suffixes : .ANL $(E) $(A) .MLB .HLB .TLB .FLB $(O) - .FORM .BLI .B32 .C .COB - .FOR .BAS .B16 .PLI .PEN .PAS .MAC .MAR .M64 .CLD .MSG .COR .DBL - .RPG .SCN .IFDL .RBA .RC .RCO .RFO .RPA .SC .SCO .SFO .SPA .SPL - .SQLADA .SQLMOD .RGK .RGC .MEM .RNO .HLP .RNH .L32 .REQ .R32 - .L16 .R16 .TXT .H .FRM .MMS .DDL .COM .DAT .OPT .CDO .SDML .ADF - .GDF .LDF .MDF .RDF .TDF $(O)$(E) : $(LINK) $(LINKFLAGS) /EXE=$(MMS$TARGET) $(MMS$SOURCE) $(O)$(A) : If "''F$Search("$(MMS$TARGET)")'" .EQS. "" Then $(LIBR)/Create $(MMS$TARGET) $(LIBR)$(LIBRFLAGS) $(MMS$TARGET) $(MMS$SOURCE) .CLD$(O) : SET COMMAND /OBJECT=$(MMS$TARGET) $(CLDFLAGS) $(MMS$SOURCE) .C$(O) : $(CC) $(CFLAGS_ALL) /OBJ=$(MMS$TARGET) $(MMS$SOURCE) !!!!!!!!!!!!!!!!!! here starts the unzip specific part !!!!!!!!!!! default : unzip$(E) unzipsfx$(E) unzip.hlp @ ! Do nothing. noshare : unzip_noshare$(E) unzipsfx_noshare$(E) unzip.hlp @ ! Do nothing. unzip$(E) : UNZIP$(A)($(OBJS))$(OPTFILE_LIST) $(LINK)$(LINKFLAGS) /EXE=$(MMS$TARGET) - UNZIP$(A)/INCLUDE=UNZIP/LIBRARY$(OPTIONS), - [.vms]unzip.opt/OPT unzipsfx$(E) : UNZIPSFX$(A)($(OBJX))$(OPTFILE_LIST) $(LINK)$(LINKFLAGS) /EXE=$(MMS$TARGET) - UNZIPSFX$(A)/INCLUDE=UNZIP/LIBRARY$(OPTIONS), - [.vms]unzipsfx.opt/OPT unzip_noshare$(E) : UNZIP$(A)($(OBJS)) $(LINK)$(LINKFLAGS) /EXE=$(MMS$TARGET) - UNZIP$(A)/INCLUDE=UNZIP/LIBRARY$(NOSHARE_OPTS), - sys$disk:[.vms]unzip.opt/OPT unzipsfx_noshare$(E) : UNZIPSFX$(A)($(OBJX)) $(LINK)$(LINKFLAGS) /EXE=$(MMS$TARGET) - UNZIPSFX$(A)/INCLUDE=UNZIP/LIBRARY$(NOSHARE_OPTS), - sys$disk:[.vms]unzipsfx.opt/OPT $(OPTFILE) : @ open/write tmp $(MMS$TARGET) @ write tmp "SYS$SHARE:VAXCRTL.EXE/SHARE" @ close tmp clean.com : @ open/write tmp $(MMS$TARGET) @ write tmp "$!" @ write tmp "$! Clean.com -- procedure to delete files. It always returns success" @ write tmp "$! status despite any error or warnings. Also it extracts" @ write tmp "$! filename from MMS ""module=file"" format." @ write tmp "$!" @ write tmp "$ on control_y then goto ctly" @ write tmp "$ if p1.eqs."""" then exit 1" @ write tmp "$ i = -1" @ write tmp "$scan_list:" @ write tmp "$ i = i+1" @ write tmp "$ item = f$elem(i,"","",p1)" @ write tmp "$ if item.eqs."""" then goto scan_list" @ write tmp "$ if item.eqs."","" then goto done ! End of list" @ write tmp "$ item = f$edit(item,""trim"") ! Clean of blanks" @ write tmp "$ wild = f$elem(1,""="",item)" @ write tmp "$ show sym wild" @ write tmp "$ if wild.eqs.""="" then wild = f$elem(0,""="",item)" @ write tmp "$ vers = f$parse(wild,,,""version"",""syntax_only"")" @ write tmp "$ if vers.eqs."";"" then wild = wild - "";"" + "";*""" @ write tmp "$scan:" @ write tmp "$ f = f$search(wild)" @ write tmp "$ if f.eqs."""" then goto scan_list" @ write tmp "$ on error then goto err" @ write tmp "$ on warning then goto warn" @ write tmp "$ delete/log 'f'" @ write tmp "$warn:" @ write tmp "$err:" @ write tmp "$ goto scan" @ write tmp "$done:" @ write tmp "$ctly:" @ write tmp "$ exit 1" @ close tmp clean : clean.com ! delete *$(O);*, *$(A);*, unzip$(exe);*, unzipsfx$(exe);*, - ! unzip.hlp;*, [.vms]unzip.rnh;* ! @clean "$(OBJS)" @clean "$(COMMON_OBJS1)" @clean "$(COMMON_OBJS2)" @clean "$(CLI_OBJS)" ! @clean "$(OBJX)" @clean "$(COMMON_OBJX1)" @clean "$(COMMON_OBJX2)" @clean "$(CLI_OBJX)" @clean "$(OPTFILE)" @clean unzip$(A),unzipsfx$(A) @clean unzip$(E),unzipsfx$(E) @clean unzip_noshare$(E),unzipsfx_noshare$(E) @clean unzip.hlp,[.vms]unzip.rnh - delete/noconfirm/nolog clean.com;* crc32$(O) : crc32.c $(UNZIP_H) zip.h crctab$(O) : crctab.c $(UNZIP_H) zip.h crypt$(O) : crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h envargs$(O) : envargs.c $(UNZIP_H) explode$(O) : explode.c $(UNZIP_H) extract$(O) : extract.c $(UNZIP_H) crypt.h fileio$(O) : fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h globals$(O) : globals.c $(UNZIP_H) inflate$(O) : inflate.c inflate.h $(UNZIP_H) list$(O) : list.c $(UNZIP_H) match$(O) : match.c $(UNZIP_H) process$(O) : process.c $(UNZIP_H) ttyio$(O) : ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h unreduce$(O) : unreduce.c $(UNZIP_H) unshrink$(O) : unshrink.c $(UNZIP_H) unzip$(O) : unzip.c $(UNZIP_H) crypt.h version.h consts.h unzip.hlp : [.vms]unzip.rnh zipinfo$(O) : zipinfo.c $(UNZIP_H) cmdline$(O) : [.vms]cmdline.c $(UNZIP_H) version.h unz_cli$(O) : [.vms]unz_cli.cld cmdline_$(O) : [.vms]cmdline.c $(UNZIP_H) version.h $(CC) $(CFLAGS_SFX) /OBJ=$(MMS$TARGET) [.vms]cmdline.c extract_$(O) : extract.c $(UNZIP_H) crypt.h $(CC) $(CFLAGS_SFX) /OBJ=$(MMS$TARGET) extract.c process_$(O) : process.c $(UNZIP_H) $(CC) $(CFLAGS_SFX) /OBJ=$(MMS$TARGET) process.c unzipsfx$(O) : unzip.c $(UNZIP_H) crypt.h version.h consts.h $(CC) $(CFLAGS_SFX) /OBJ=$(MMS$TARGET) unzip.c vms$(O) : [.vms]vms.c [.vms]vms.h [.vms]vmsdefs.h $(UNZIP_H) ! @ x = "" ! @ if f$search("SYS$LIBRARY:SYS$LIB_C.TLB").nes."" then x = "+SYS$LIBRARY:SYS$LIB_C.TLB/LIBRARY" $(CC) $(CFLAGS_ALL) /OBJ=$(MMS$TARGET) [.vms]vms.c vms_$(O) : [.vms]vms.c [.vms]vms.h [.vms]vmsdefs.h $(UNZIP_H) ! @ x = "" ! @ if f$search("SYS$LIBRARY:SYS$LIB_C.TLB").nes."" then x = "+SYS$LIBRARY:SYS$LIB_C.TLB/LIBRARY" $(CC) $(CFLAGS_SFX) /OBJ=$(MMS$TARGET) [.vms]vms.c .IFDEF VMSCLI [.vms]unzip.rnh : [.vms]unzip_cli.help @ set default [.vms] edit/tpu/nosection/nodisplay/command=cvthelp.tpu unzip_cli.help rename unzip_cli.rnh unzip.rnh @ set default [-] .ELSE [.vms]unzip.rnh : [.vms]unzip_def.rnh copy [.vms]unzip_def.rnh [.vms]unzip.rnh .ENDIF