home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 9 Archive / 09-Archive.zip / unzip540.zip / vms / descrip.mms < prev    next >
Text File  |  1997-10-05  |  12KB  |  378 lines

  1. !==========================================================================
  2. ! MMS description file for UnZip/UnZipSFX 5.32 or later           14 Sep 97
  3. !==========================================================================
  4. !
  5. ! To build UnZip that uses shared libraries, edit the USER CUSTOMIZATION
  6. ! lines below to taste, then do
  7. !    mms
  8. ! or
  9. !    mmk
  10. ! if you use Matt's Make (free MMS-compatible make utility).
  11. !
  12. ! (One-time users will find it easier to use the MAKE_UNZ.COM command file,
  13. ! which generates both UnZip and UnZipSFX.  Just type "@[.VMS]MAKE_UNZ", or
  14. ! "@[.VMS]MAKE_UNZ GCC" if you want to use GNU C.)
  15.  
  16. ! To build the default target
  17. !   "all executables (linked against shareable images), and help file",
  18. ! you can simply type "mmk" or "mms".
  19. ! (You have to copy the description file to your working directory for MMS,
  20. ! with MMK you can alternatively use the /DESCR=[.VMS] qualifier.
  21. !
  22. ! In all other cases where you want to explicitely specify a makefile target,
  23. ! you have to specify your compiling environment, too. These are:
  24. !
  25. !    $ MMS/MACRO=(__ALPHA__=1)        ! Alpha AXP, (DEC C)
  26. !    $ MMS/MACRO=(__DECC__=1)        ! VAX, using DEC C
  27. !    $ MMS/MACRO=(__FORCE_VAXC__=1)        ! VAX, prefering VAXC over DECC
  28. !    $ MMS/MACRO=(__VAXC__=1)        ! VAX, where VAXC is default
  29. !    $ MMS/MACRO=(__GNUC__=1)        ! VAX, using GNU C
  30. !
  31.  
  32. ! To build UnZip without shared libraries,
  33. !    mms noshare
  34.  
  35. ! To delete all .OBJ, .OLB, .EXE and .HLP files,
  36. !    mms clean
  37.  
  38. DO_THE_BUILD :
  39.     @ decc = f$search("SYS$SYSTEM:DECC$COMPILER.EXE").nes.""
  40.     @ axp = f$getsyi("HW_MODEL").ge.1024
  41.     @ macro = "/MACRO=("
  42.     @ if decc then macro = macro + "__DECC__=1,"
  43.     @ if axp then macro = macro + "__ALPHA__=1,"
  44.     @ if .not.(axp.or.decc) then macro = macro + "__VAXC__=1,"
  45.     @ macro = f$extract(0,f$length(macro)-1,macro)+ ")"
  46.     $(MMS)$(MMSQUALIFIERS)'macro' default
  47.  
  48. .IFDEF __ALPHA__
  49. E = .AXP_EXE
  50. O = .AXP_OBJ
  51. A = .AXP_OLB
  52. .ELSE
  53. .IFDEF __DECC__
  54. E = .VAX_DECC_EXE
  55. O = .VAX_DECC_OBJ
  56. A = .VAX_DECC_OLB
  57. .ENDIF
  58. .IFDEF __FORCE_VAXC__
  59. __VAXC__ = 1
  60. .ENDIF
  61. .IFDEF __VAXC__
  62. E = .VAX_VAXC_EXE
  63. O = .VAX_VAXC_OBJ
  64. A = .VAX_VAXC_OLB
  65. .ENDIF
  66. .IFDEF __GNUC__
  67. E = .VAX_GNUC_EXE
  68. O = .VAX_GNUC_OBJ
  69. A = .VAX_GNUC_OLB
  70. .ENDIF
  71. .ENDIF
  72. .IFDEF O
  73. .ELSE
  74. !If EXE and OBJ extensions aren't defined, define them
  75. E = .EXE
  76. O = .OBJ
  77. A = .OLB
  78. .ENDIF
  79.  
  80. !The following preprocessor macros are set to enable the VMS CLI$ interface:
  81. CLI_DEFS = VMSCLI,
  82.  
  83. !!!!!!!!!!!!!!!!!!!!!!!!!!! USER CUSTOMIZATION !!!!!!!!!!!!!!!!!!!!!!!!!!!!
  84. ! add RETURN_CODES, and/or any other optional preprocessor flags (macros)
  85. ! except VMSCLI to the following line for a custom version (do not forget
  86. ! a trailing comma!!):
  87. COMMON_DEFS =
  88. !
  89. ! WARNING: Do not use VMSCLI here!! The creation of an UnZip executable
  90. !          utilizing the VMS CLI$ command interface is handled differently.
  91. !!!!!!!!!!!!!!!!!!!!!!!! END OF USER CUSTOMIZATION !!!!!!!!!!!!!!!!!!!!!!!!
  92.  
  93. .IFDEF __GNUC__
  94. CC = gcc
  95. LIBS = ,GNU_CC:[000000]GCCLIB.OLB/LIB
  96. .ELSE
  97. CC = cc
  98. LIBS =
  99. .ENDIF
  100.  
  101. CFLAGS = /NOLIST/INCL=(SYS$DISK:[])
  102.  
  103. OPTFILE = sys$disk:[.vms]vaxcshr.opt
  104.  
  105. .IFDEF __ALPHA__
  106. CC_OPTIONS = /STANDARD=RELAX/PREFIX=ALL/ANSI
  107. CC_DEFS = MODERN,
  108. OPTFILE_LIST =
  109. OPTIONS = $(LIBS)
  110. NOSHARE_OPTS = $(LIBS)/NOSYSSHR
  111. .ELSE
  112. .IFDEF __DECC__
  113. CC_OPTIONS = /DECC/STANDARD=VAXC/PREFIX=ALL
  114. CC_DEFS = MODERN,
  115. OPTFILE_LIST =
  116. OPTIONS = $(LIBS)
  117. NOSHARE_OPTS = $(LIBS),SYS$LIBRARY:DECCRTL.OLB/LIB/INCL=(CMA$TIS)/NOSYSSHR
  118. .ELSE
  119. .IFDEF __FORCE_VAXC__        !Select VAXC on systems where DEC C exists
  120. CC_OPTIONS = /VAXC
  121. .ELSE                !No flag allowed/needed on a pure VAXC system
  122. CC_OPTIONS =
  123. .ENDIF
  124. CC_DEFS =
  125. OPTFILE_LIST = ,$(OPTFILE)
  126. OPTIONS = $(LIBS),$(OPTFILE)/OPTIONS
  127. NOSHARE_OPTS = $(LIBS),SYS$LIBRARY:VAXCRTL.OLB/LIB/NOSYSSHR
  128. .ENDIF
  129. .ENDIF
  130.  
  131. .IFDEF __DEBUG__
  132. CDEB = /DEBUG/NOOPTIMIZE
  133. LDEB = /DEBUG
  134. .ELSE
  135. CDEB =
  136. LDEB = /NOTRACE
  137. .ENDIF
  138.  
  139. CFLAGS_ALL  = $(CC_OPTIONS) $(CFLAGS) $(CDEB) -
  140.               /def=($(CC_DEFS) $(COMMON_DEFS) VMS)
  141. CFLAGS_SFX  = $(CC_OPTIONS) $(CFLAGS) $(CDEB) -
  142.               /def=($(CC_DEFS) $(COMMON_DEFS) SFX, VMS)
  143. CFLAGS_CLI  = $(CC_OPTIONS) $(CFLAGS) $(CDEB) -
  144.               /def=($(CC_DEFS) $(COMMON_DEFS) $(CLI_DEFS) VMS)
  145. CFLAGS_SXC = $(CC_OPTIONS) $(CFLAGS) $(CDEB) -
  146.               /def=($(CC_DEFS) $(COMMON_DEFS) $(CLI_DEFS) SFX, VMS)
  147.  
  148. LINKFLAGS   = $(LDEB)
  149.  
  150.  
  151. OBJM =        unzip$(O), unzcli$(O), unzipsfx$(O), unzsxcli$(O)
  152. COMMON_OBJS1 =    crc32$(O),crctab$(O),crypt$(O),envargs$(O),-
  153.         explode$(O),extract$(O),fileio$(O),globals$(O)
  154. COMMON_OBJS2 =    inflate$(O),list$(O),match$(O),process$(O),ttyio$(O),-
  155.         unreduce$(O),unshrink$(O),zipinfo$(O),-
  156.         vms$(O)
  157. OBJUNZLIB =    $(COMMON_OBJS1),$(COMMON_OBJS2)
  158.  
  159. COMMON_OBJX1 =    crc32$(O),crctab$(O),crypt$(O),-
  160.         EXTRACT=extract_$(O),-
  161.         fileio$(O),globals$(O)
  162. COMMON_OBJX2 =    inflate$(O),match$(O),-
  163.         PROCESS=process_$(O),-
  164.         ttyio$(O),-
  165.         VMS=vms_$(O)
  166. OBJSFXLIB =    $(COMMON_OBJX1),$(COMMON_OBJX2)
  167.  
  168. UNZX_UNX = unzip
  169. UNZX_CLI = unzip_cli
  170. UNZSFX_DEF = unzipsfx
  171. UNZSFX_CLI = unzipsfx_cli
  172.  
  173. OBJS = unzip$(O), $(OBJUNZLIB)
  174. OBJX = UNZIP=unzipsfx$(O), $(OBJSFXLIB)
  175. OBJSCLI = UNZIP=unzipcli$(O), -
  176.     VMS_UNZIP_CLD=unz_cli$(O),-
  177.     VMS_UNZIP_CMDLINE=cmdline$(O)
  178. OBJXCLI = UNZIP=unzsxcli$(O),-
  179.     VMS_UNZIP_CLD=unz_cli$(O),-
  180.     VMS_UNZIP_CMDLINE=cmdline_$(O)
  181. UNZHELP_UNX_RNH = [.vms]unzip_def.rnh
  182. UNZHELP_CLI_RNH = [.vms]unzip_cli.rnh
  183.  
  184. OLBUNZ = unzip$(A)
  185. OLBCLI = unzipcli$(A)
  186. OLBSFX = unzipsfx$(A)
  187. OLBSXC = unzsxcli$(A)
  188.  
  189. UNZIP_H = unzip.h unzpriv.h globals.h
  190.  
  191. UNZIPS = $(UNZX_UNX)$(E), $(UNZX_CLI)$(E), $(UNZSFX_DEF)$(E), $(UNZSFX_CLI)$(E)
  192. UNZIPS_NOSHARE = $(UNZX_UNX)_noshare$(E), $(UNZSFX_DEF)_noshare$(E)
  193. UNZIPHELPS = $(UNZX_UNX).hlp, $(UNZX_CLI).hlp
  194.  
  195. !!!!!!!!!!!!!!!!!!! override default rules: !!!!!!!!!!!!!!!!!!!
  196. .suffixes :
  197. .suffixes : .ANL $(E) $(A) .MLB .HLB .TLB .FLB $(O) -
  198.         .FORM .BLI .B32 .C .COB -
  199.         .FOR .BAS .B16 .PLI .PEN .PAS .MAC .MAR .M64 .CLD .MSG .COR .DBL -
  200.         .RPG .SCN .IFDL .RBA .RC .RCO .RFO .RPA .SC .SCO .SFO .SPA .SPL -
  201.         .SQLADA .SQLMOD .RGK .RGC .MEM .RNO .HLP .RNH .L32 .REQ .R32 -
  202.         .L16 .R16 .TXT .H .FRM .MMS .DDL .COM .DAT .OPT .CDO .SDML .ADF -
  203.         .GDF .LDF .MDF .RDF .TDF
  204.  
  205. $(O)$(E) :
  206.     $(LINK) $(LINKFLAGS) /EXE=$(MMS$TARGET) $(MMS$SOURCE)
  207.  
  208. $(O)$(A) :
  209.     If "''F$Search("$(MMS$TARGET)")'" .EQS. "" Then $(LIBR)/Create $(MMS$TARGET)
  210.     $(LIBR)$(LIBRFLAGS) $(MMS$TARGET) $(MMS$SOURCE)
  211.  
  212. .CLD$(O) :
  213.     SET COMMAND /OBJECT=$(MMS$TARGET) $(CLDFLAGS) $(MMS$SOURCE)
  214.  
  215. .c$(O) :
  216.     $(CC) $(CFLAGS_ALL) /OBJ=$(MMS$TARGET) $(MMS$SOURCE)
  217.  
  218. .RNH.HLP :
  219.     runoff /out=$@ $<
  220.  
  221. !!!!!!!!!!!!!!!!!! here starts the unzip specific part !!!!!!!!!!!
  222.  
  223. default :    $(UNZIPS), $(UNZIPHELPS)
  224.     @    !    Do nothing.
  225.  
  226. noshare :    $(UNZIPS_NOSHARE), $(UNZIPHELPS)
  227.     @    !    Do nothing.
  228.  
  229. $(UNZX_UNX)$(E) : $(OLBUNZ)($(OBJS))$(OPTFILE_LIST)
  230.     $(LINK)$(LINKFLAGS) /EXE=$(MMS$TARGET) -
  231.     $(OLBUNZ)/INCLUDE=UNZIP/LIBRARY$(OPTIONS), -
  232.     sys$disk:[.vms]unzip.opt/OPT
  233.  
  234. $(UNZX_CLI)$(E) : $(OLBCLI)($(OBJSCLI)),$(OLBUNZ)($(OBJUNZLIB))$(OPTFILE_LIST)
  235.     $(LINK)$(LINKFLAGS) /EXE=$(MMS$TARGET) -
  236.     $(OLBCLI)/INCLUDE=UNZIP/LIBRARY, $(OLBUNZ)/LIBRARY$(OPTIONS), -
  237.     sys$disk:[.vms]unzip.opt/OPT
  238.  
  239. $(UNZSFX_DEF)$(E) : $(OLBSFX)($(OBJX))$(OPTFILE_LIST)
  240.     $(LINK)$(LINKFLAGS) /EXE=$(MMS$TARGET) -
  241.     $(OLBSFX)/INCLUDE=UNZIP/LIBRARY$(OPTIONS), -
  242.     sys$disk:[.vms]unzipsfx.opt/OPT
  243.  
  244. $(UNZSFX_CLI)$(E) : $(OLBSXC)($(OBJXCLI)),$(OLBSFX)($(OBJSFXLIB))$(OPTFILE_LIST)
  245.     $(LINK)$(LINKFLAGS) /EXE=$(MMS$TARGET) -
  246.     $(OLBSXC)/INCLUDE=UNZIP/LIBRARY, $(OLBSFX)/LIBRARY$(OPTIONS), -
  247.     sys$disk:[.vms]unzipsfx.opt/OPT
  248.  
  249. $(UNZX_UNX)_noshare$(E) :    $(OLBUNZ)($(OBJS))
  250.     $(LINK)$(LINKFLAGS) /EXE=$(MMS$TARGET) -
  251.     $(OLBUNZ)/INCLUDE=UNZIP/LIBRARY$(NOSHARE_OPTS), -
  252.     sys$disk:[.vms]unzip.opt/OPT
  253.  
  254. $(UNZSFX_DEF)_noshare$(E) :    $(OLBSFX)($(OBJX))
  255.     $(LINK)$(LINKFLAGS) /EXE=$(MMS$TARGET) -
  256.     $(OLBSFX)/INCLUDE=UNZIP/LIBRARY$(NOSHARE_OPTS), -
  257.     sys$disk:[.vms]unzipsfx.opt/OPT
  258.  
  259. $(OPTFILE) :
  260.     @ open/write tmp $(MMS$TARGET)
  261.     @ write tmp "SYS$SHARE:VAXCRTL.EXE/SHARE"
  262.     @ close tmp
  263.  
  264. $(UNZHELP_CLI_RNH) : [.vms]unzip_cli.help
  265.     @ set default [.vms]
  266.     edit/tpu/nosection/nodisplay/command=cvthelp.tpu unzip_cli.help
  267.     @ set default [-]
  268.  
  269. $(UNZX_UNX).hlp : $(UNZHELP_UNX_RNH)
  270.     runoff /out=$@ $<
  271.  
  272. $(UNZX_CLI).hlp : $(UNZHELP_CLI_RNH)
  273.  
  274. clean.com :
  275.     @ open/write tmp $(MMS$TARGET)
  276.     @ write tmp "$!"
  277.     @ write tmp "$!    Clean.com --    procedure to delete files. It always returns success"
  278.     @ write tmp "$!            status despite any error or warnings. Also it extracts"
  279.     @ write tmp "$!            filename from MMS ""module=file"" format."
  280.     @ write tmp "$!"
  281.     @ write tmp "$ on control_y then goto ctly"
  282.     @ write tmp "$ if p1.eqs."""" then exit 1"
  283.     @ write tmp "$ i = -1"
  284.     @ write tmp "$scan_list:"
  285.     @ write tmp "$    i = i+1"
  286.     @ write tmp "$    item = f$elem(i,"","",p1)"
  287.     @ write tmp "$    if item.eqs."""" then goto scan_list"
  288.     @ write tmp "$    if item.eqs."","" then goto done        ! End of list"
  289.     @ write tmp "$    item = f$edit(item,""trim"")        ! Clean of blanks"
  290.     @ write tmp "$    wild = f$elem(1,""="",item)"
  291.     @ write tmp "$    show sym wild"
  292.     @ write tmp "$    if wild.eqs.""="" then wild = f$elem(0,""="",item)"
  293.     @ write tmp "$    vers = f$parse(wild,,,""version"",""syntax_only"")"
  294.     @ write tmp "$    if vers.eqs."";"" then wild = wild - "";"" + "";*"""
  295.     @ write tmp "$scan:"
  296.     @ write tmp "$        f = f$search(wild)"
  297.     @ write tmp "$        if f.eqs."""" then goto scan_list"
  298.     @ write tmp "$        on error then goto err"
  299.     @ write tmp "$        on warning then goto warn"
  300.     @ write tmp "$        delete/log 'f'"
  301.     @ write tmp "$warn:"
  302.     @ write tmp "$err:"
  303.     @ write tmp "$        goto scan"
  304.     @ write tmp "$done:"
  305.     @ write tmp "$ctly:"
  306.     @ write tmp "$    exit 1"
  307.     @ close tmp
  308.  
  309. clean : clean.com
  310.     ! delete *$(O);*, *$(A);*, unzip$(exe);*, unzipsfx$(exe);*, -
  311.     !  unzip.hlp;*, [.vms]unzip.rnh;*
  312.     @clean "$(OBJM)"
  313.     @clean "$(COMMON_OBJS1)"
  314.     @clean "$(COMMON_OBJS2)"
  315.     @clean "$(OBJSCLI)"
  316.     @clean "$(COMMON_OBJX1)"
  317.     @clean "$(COMMON_OBJX2)"
  318.     @clean "$(OBJXCLI)"
  319.     @clean "$(OPTFILE)"
  320.     @clean "$(OLBUNZ),$(OLBCLI),$(OLBSFX),$(OLBSXC)"
  321.     @clean "$(UNZIPS)"
  322.     @clean "$(UNZIPS_NOSHARE)"
  323.     @clean "$(UNZHELP_CLI_RNH)"
  324.     @clean "$(UNZIPHELPS)"
  325.     - delete/noconfirm/nolog clean.com;*
  326.  
  327. crc32$(O)        : crc32.c $(UNZIP_H) zip.h
  328. crctab$(O)        : crctab.c $(UNZIP_H) zip.h
  329. crypt$(O)        : crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
  330. envargs$(O)        : envargs.c $(UNZIP_H)
  331. explode$(O)        : explode.c $(UNZIP_H)
  332. extract$(O)        : extract.c $(UNZIP_H) crypt.h
  333. fileio$(O)        : fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h
  334. globals$(O)        : globals.c $(UNZIP_H)
  335. inflate$(O)        : inflate.c inflate.h $(UNZIP_H)
  336. list$(O)        : list.c $(UNZIP_H)
  337. match$(O)        : match.c $(UNZIP_H)
  338. process$(O)        : process.c $(UNZIP_H)
  339. ttyio$(O)        : ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
  340. unreduce$(O)        : unreduce.c $(UNZIP_H)
  341. unshrink$(O)        : unshrink.c $(UNZIP_H)
  342. unzip$(O)        : unzip.c $(UNZIP_H) crypt.h version.h consts.h
  343. zipinfo$(O)        : zipinfo.c $(UNZIP_H)
  344.  
  345. unzipcli$(O)        : unzip.c $(UNZIP_H) crypt.h version.h consts.h
  346.     $(CC) $(CFLAGS_CLI) /OBJ=$(MMS$TARGET) $(MMS$SOURCE)
  347.  
  348. cmdline$(O)        : [.vms]cmdline.c $(UNZIP_H) version.h
  349.     $(CC) $(CFLAGS_CLI) /OBJ=$(MMS$TARGET) $(MMS$SOURCE)
  350.  
  351. unz_cli$(O)        : [.vms]unz_cli.cld
  352.  
  353.  
  354. cmdline_$(O)        : [.vms]cmdline.c $(UNZIP_H) version.h
  355.     $(CC) $(CFLAGS_SXC) /OBJ=$(MMS$TARGET) [.vms]cmdline.c
  356.  
  357. extract_$(O)        : extract.c $(UNZIP_H) crypt.h
  358.     $(CC) $(CFLAGS_SFX) /OBJ=$(MMS$TARGET) extract.c
  359.  
  360. process_$(O)        : process.c $(UNZIP_H)
  361.     $(CC) $(CFLAGS_SFX) /OBJ=$(MMS$TARGET) process.c
  362.  
  363. unzipsfx$(O)        : unzip.c $(UNZIP_H) crypt.h version.h consts.h
  364.     $(CC) $(CFLAGS_SFX) /OBJ=$(MMS$TARGET) unzip.c
  365.  
  366. unzsxcli$(O)        : unzip.c $(UNZIP_H) crypt.h version.h consts.h
  367.     $(CC) $(CFLAGS_SXC) /OBJ=$(MMS$TARGET) unzip.c
  368.  
  369. vms$(O)            : [.vms]vms.c [.vms]vms.h [.vms]vmsdefs.h $(UNZIP_H)
  370. !    @ x = ""
  371. !    @ if f$search("SYS$LIBRARY:SYS$LIB_C.TLB").nes."" then x = "+SYS$LIBRARY:SYS$LIB_C.TLB/LIBRARY"
  372.     $(CC) $(CFLAGS_ALL) /OBJ=$(MMS$TARGET) [.vms]vms.c
  373.  
  374. vms_$(O)        : [.vms]vms.c [.vms]vms.h [.vms]vmsdefs.h $(UNZIP_H)
  375. !    @ x = ""
  376. !    @ if f$search("SYS$LIBRARY:SYS$LIB_C.TLB").nes."" then x = "+SYS$LIBRARY:SYS$LIB_C.TLB/LIBRARY"
  377.     $(CC) $(CFLAGS_SFX) /OBJ=$(MMS$TARGET) [.vms]vms.c
  378.