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

  1. # VMS Makefile for Zip, ZipNote, ZipCloak and ZipSplit
  2.  
  3. #
  4. #  Modified to support both AXP and VAX by Hunter Goatley, 10-SEP-1993 06:43
  5. #  Modified (DECC VAX, Zip 2.1) by Christian Spieler, 16-SEP-1995
  6. #  Modified (Addition of VMS CLI) by Christian Spieler, 10-OCT-1995
  7. #  Modified (fixed VAXC, changed compiler opts) by C. Spieler, 10-DEC-1995
  8. #  Modified (removed zipup_.obj from Zip utils) by C. Spieler, 08-JAN-1996
  9. #  Modified (cmdline$O depends on crypt.h) by C. Spieler, 09-JAN-1996
  10. #  Modified (split crypt -> crypt, ttyio) by C. Spieler, 16-JAN-1996
  11. #  Modified (modified VMSCLI compilation) by C. Spieler, 25-JUL-1997
  12. #  Last modified (comment concerning online help) by C. Spieler, 14-OCT-1997
  13. #
  14. #  To build Zip and the Ziputils, use one of the following commands,
  15. #  depending on your system:
  16. #
  17. #    $ MMS/MACRO=(__ALPHA__=1)        ! Alpha AXP, (DEC C)
  18. #    $ MMS/MACRO=(__DECC__=1)        ! VAX, using DEC C
  19. #    $ MMS/MACRO=(__FORCE_VAXC__=1)        ! VAX, prefering VAXC over DECC
  20. #    $ MMS/MACRO=(__VAXC__=1)        ! VAX, where VAXC is default
  21. #    $ MMS/MACRO=(__GNUC__=1)        ! VAX, using GNU C
  22. #
  23. #  Other MMS macros intended for use on the MMS' command line are:
  24. #    __DEBUG__=1                ! compile for debugging
  25. #  For some discussion on the compiler switches used, see documentation
  26. #  in 00readme.vms.
  27. #
  28. .IFDEF __ALPHA__
  29. E = .AXP_EXE
  30. O = .AXP_OBJ
  31. A = .AXP_OLB
  32. .ELSE
  33. .IFDEF __DECC__
  34. E = .VAX_DECC_EXE
  35. O = .VAX_DECC_OBJ
  36. A = .VAX_DECC_OLB
  37. .ENDIF
  38. .IFDEF __FORCE_VAXC__
  39. __VAXC__ = 1
  40. .ENDIF
  41. .IFDEF __VAXC__
  42. E = .VAX_VAXC_EXE
  43. O = .VAX_VAXC_OBJ
  44. A = .VAX_VAXC_OLB
  45. .ENDIF
  46. .IFDEF __GNUC__
  47. E = .VAX_GNUC_EXE
  48. O = .VAX_GNUC_OBJ
  49. A = .VAX_GNUC_OLB
  50. .ENDIF
  51. .ENDIF
  52. .IFDEF O
  53. .ELSE
  54. !If EXE and OBJ extensions aren't defined, define them
  55. E = .EXE
  56. O = .OBJ
  57. A = .OLB
  58. .ENDIF
  59.  
  60. !The following preprocessor macros are set to enable the VMS CLI$ interface:
  61. CLI_DEFS = VMSCLI,
  62.  
  63. !!!!!!!!!!!!!!!!!!!!!!!!!!! USER CUSTOMIZATION !!!!!!!!!!!!!!!!!!!!!!!!!!!!
  64. ! add any other optional preprocessor flags (macros) except VMSCLI to the
  65. ! following line for a custom version (do not forget a trailing comma!!):
  66. COMMON_DEFS =
  67. !
  68. ! WARNING: Do not use VMSCLI here!! The creation of a Zip executable
  69. !          utilizing the VMS CLI$ command interface is handled differently.
  70. !!!!!!!!!!!!!!!!!!!!!!!! END OF USER CUSTOMIZATION !!!!!!!!!!!!!!!!!!!!!!!!
  71.  
  72. .IFDEF __GNUC__
  73. CC = gcc
  74. LIBS = ,GNU_CC:[000000]GCCLIB.OLB/LIB
  75. .ELSE
  76. CC = cc
  77. LIBS =
  78. .ENDIF
  79.  
  80. CFLAGS = /NOLIST/INCL=(SYS$DISK:[])
  81.  
  82. OPTFILE = sys$disk:[.vms]vaxcshr.opt
  83.  
  84. .IFDEF __ALPHA__        !Under OpenVMS AXP, we must use /PREFIX=ALL
  85. CFLG_ARCH = /STANDARD=RELAX/PREFIX=ALL/ANSI_ALIAS
  86. OPTFILE_LIST =
  87. OPTIONS = $(LIBS)
  88. .ELSE
  89. .IFDEF __DECC__            !Under DECC VAX, we must use /PREFIX=ALL
  90. CFLG_ARCH = /DECC/STANDARD=VAXC/PREFIX=ALL
  91. OPTFILE_LIST =
  92. OPTIONS = $(LIBS)
  93. .ELSE                !VAXC, or GNU C on VAX
  94. .IFDEF __FORCE_VAXC__        !Select VAXC on systems where DEC C exists
  95. CFLG_ARCH = /VAXC
  96. .ELSE                !No flag allowed/needed on a pure VAXC system
  97. CFLG_ARCH =
  98. .ENDIF
  99. OPTFILE_LIST = ,$(OPTFILE)
  100. OPTIONS = $(LIBS),$(OPTFILE)/OPT
  101. .ENDIF
  102. .ENDIF
  103.  
  104. .IFDEF __DEBUG__
  105. CDEB = /DEBUG/NOOPTIMIZE
  106. LDEB = /DEBUG
  107. .ELSE
  108. CDEB =
  109. LDEB = /NOTRACE
  110. .ENDIF
  111.  
  112. CFLAGS_ALL  = $(CFLG_ARCH) $(CFLAGS) $(CDEB) -
  113.     /def=($(COMMON_DEFS) VMS)
  114. CFLAGS_CLI  = $(CFLG_ARCH) $(CFLAGS) $(CDEB) -
  115.     /def=($(COMMON_DEFS) $(CLI_DEFS) VMS)
  116. CFLAGS_UTIL = $(CFLG_ARCH) $(CFLAGS) $(CDEB) -
  117.     /def=($(COMMON_DEFS) UTIL, VMS)
  118.  
  119. LINKFLAGS = $(LDEB)
  120.  
  121.  
  122. OBJM =    zip$(O), zipcli$(O)
  123. OBJZ =    crc32$(O), crctab$(O), crypt$(O), ttyio$(O), -
  124.     zipfile$(O), zipup$(O), fileio$(O), globals$(O), util$(O)
  125. OBJV =    vmszip$(O), vms$(O), vmsmunch$(O)
  126. OBJI =    deflate$(O), trees$(O), bits$(O)
  127. OBJU =    ZIPFILE=zipfile_$(O), FILEIO=fileio_$(O), globals$(O), -
  128.     UTIL=util_$(O), VMS=vms_$(O), vmsmunch$(O)
  129. OBJR =    crctab$(O), CRYPT=crypt_$(O), ttyio$(O)
  130. OBJC =    zipcloak$(O)
  131. OBJN =    zipnote$(O)
  132. OBJS =    zipsplit$(O)
  133.  
  134. ZIPX_UNX = zip
  135. ZIPX_CLI = zip_cli
  136. OBJSZIPLIB = $(OBJZ), $(OBJI), $(OBJV)
  137. OBJSZIP = zip$(O), $(OBJSZIPLIB)
  138. OBJSCLI = ZIP=zipcli$(O), -
  139.     ZIP_CLITABLE=zip_cli$(O), VMS_ZIP_CMDLINE=cmdline$(O)
  140. ZIPHELP_UNX_RNH = [.vms]vms_zip.rnh
  141. ZIPHELP_CLI_RNH = [.vms]zip_cli.rnh
  142.  
  143. OLBZIP = zip$(A)
  144. OLBCLI = zipcli$(A)
  145. OLBUTI = ziputils$(A)
  146.  
  147. ZIP_H =    zip.h,ziperr.h,tailor.h,[.vms]osdep.h
  148.  
  149. ZIPS =    $(ZIPX_UNX)$(E), $(ZIPX_CLI)$(E),-
  150.     zipcloak$(E), zipnote$(E), zipsplit$(E)
  151. ZIPHELPS = $(ZIPX_UNX).hlp, $(ZIPX_CLI).hlp
  152.  
  153. #
  154. #  Define our new suffixes list
  155. #
  156. .SUFFIXES :
  157. .SUFFIXES :    $(E) $(A) $(O) .C .MAR .CLD .HLP .RNH
  158.  
  159. $(O)$(E) :
  160.     $(LINK) $(LINKFLAGS) /EXE=$(MMS$TARGET) $(MMS$SOURCE)
  161.  
  162. $(O)$(A) :
  163.     If "''F$Search("$(MMS$TARGET)")'" .EQS. "" Then $(LIBR)/Create $(MMS$TARGET)
  164.     $(LIBR)$(LIBRFLAGS) $(MMS$TARGET) $(MMS$SOURCE)
  165.  
  166. .CLD$(O) :
  167.     SET COMMAND /OBJECT=$(MMS$TARGET) $(CLDFLAGS) $(MMS$SOURCE)
  168.  
  169. .c$(O) :
  170.     $(CC) $(CFLAGS_ALL) /OBJ=$(MMS$TARGET) $(MMS$SOURCE)
  171.  
  172. .RNH.HLP :
  173.     runoff /out=$@ $<
  174.  
  175.  
  176. # rules for zip, zipnote, zipsplit, and VMS online help file.
  177.  
  178. default :    $(ZIPS), $(ZIPHELPS)
  179.     @ !
  180.  
  181. vmszip$(O)   : [.vms]vmszip.c
  182. vmsmunch$(O) : [.vms]vmsmunch.c
  183. vms$(O)      : [.vms]vms.c [.vms]vms_im.c [.vms]vms_pk.c [.vms]vms.h
  184. zipcli$(O)   : zip.c
  185.     $(CC) $(CFLAGS_CLI) /OBJ=$(MMS$TARGET) $<
  186. cmdline$(O)  : [.vms]cmdline.c $(ZIP_H) crypt.h revision.h
  187.     $(CC) $(CFLAGS_CLI) /OBJ=$(MMS$TARGET) $<
  188. zip_cli$(O)  : [.vms]zip_cli.cld
  189.  
  190.  
  191. zipfile_$(O) :    zipfile.c,[.vms]vmsmunch.h,[.vms]vmsdefs.h
  192.     $(CC) $(CFLAGS_UTIL) /OBJECT=$(MMS$TARGET) $<
  193. fileio_$(O)  :    fileio.c
  194.     $(CC) $(CFLAGS_UTIL) /OBJECT=$(MMS$TARGET) $<
  195. util_$(O)    :    util.c
  196.     $(CC) $(CFLAGS_UTIL) /OBJECT=$(MMS$TARGET) $<
  197. crypt_$(O)   :    crypt.c,crypt.h,ttyio.h
  198.     $(CC) $(CFLAGS_UTIL) /OBJECT=$(MMS$TARGET) $<
  199. vms_$(O)     :    [.vms]vms.c,[.vms]vms_im.c,[.vms]vms_pk.c, -
  200.         [.vms]vms.h,[.vms]vmsdefs.h
  201.     $(CC) $(CFLAGS_UTIL) /OBJECT=$(MMS$TARGET) $<
  202.  
  203. $(OBJM),zipcloak$(O),zipnote$(O),zipsplit$(O),zipup$(O) : revision.h
  204.  
  205. $(OBJM),zipcloak$(O),zipup$(O),bits$(O),crypt$(O),ttyio$(O) : crypt.h
  206.  
  207. $(OBJM),zipcloak$(O),crypt$(O),ttyio$(O) : ttyio.h
  208.  
  209. zipup$(O) : [.vms]zipup.h
  210.  
  211. $(OBJM), zipfile$(O), vmszip$(O), vmsmunch$(O) : [.vms]vmsmunch.h
  212.  
  213. zipfile$(O), vms$(O), vmsmunch$(O) : [.vms]vmsdefs.h
  214.  
  215. $(OBJM) : $(ZIP_H)
  216. $(OBJZ) : $(ZIP_H)
  217. $(OBJV) : $(ZIP_H)
  218. $(OBJI) : $(ZIP_H)
  219. $(OBJU) : $(ZIP_H)
  220. $(OBJR) : $(ZIP_H)
  221. $(OBJC) : $(ZIP_H)
  222. $(OBJN) : $(ZIP_H)
  223. $(OBJS) : $(ZIP_H)
  224.  
  225.  
  226. $(ZIPX_UNX)$(E) : $(OLBZIP)($(OBJSZIP))$(OPTFILE_LIST)
  227.     $(LINK)$(LINKFLAGS) /EXE=$@ -
  228.     $(OLBZIP)/inc=(zip,globals)/lib$(OPTIONS)
  229.  
  230. $(ZIPX_CLI)$(E) : $(OLBCLI)($(OBJSCLI)),$(OLBZIP)($(OBJSZIPLIB))$(OPTFILE_LIST)
  231.     $(LINK)$(LINKFLAGS) /EXE=$@ -
  232.     $(OLBCLI)/inc=(zip)/lib, $(OLBZIP)/inc=(globals)/lib$(OPTIONS)
  233.  
  234. zipcloak$(E) : $(OBJC),$(OLBUTI)($(OBJR),$(OBJU))$(OPTFILE_LIST)
  235.     $(LINK)$(LINKFLAGS) /EXE=$@ $<, -
  236.     $(OLBUTI)/inc=(globals)/lib$(OPTIONS)
  237.  
  238. zipnote$(E) : $(OBJN),$(OLBUTI)($(OBJU))$(OPTFILE_LIST)
  239.     $(LINK)$(LINKFLAGS) /EXE=$@ $<, -
  240.     $(OLBUTI)/inc=(globals)/lib$(OPTIONS)
  241.  
  242. zipsplit$(E) : $(OBJS),$(OLBUTI)($(OBJU))$(OPTFILE_LIST)
  243.     $(LINK)$(LINKFLAGS) /EXE=$@ $<, -
  244.     $(OLBUTI)/inc=(globals)/lib$(OPTIONS)
  245.  
  246. $(OPTFILE) :
  247.     @ open/write tmp $(OPTFILE)
  248.     @ write tmp "SYS$SHARE:VAXCRTL.EXE/SHARE"
  249.     @ close tmp
  250.  
  251. $(ZIPHELP_CLI_RNH) : [.vms]zip_cli.help
  252.     @ set default [.vms]
  253.     edit/tpu/nosection/nodisplay/command=cvthelp.tpu zip_cli.help
  254.     @ set default [-]
  255.  
  256. $(ZIPX_UNX).hlp : $(ZIPHELP_UNX_RNH)
  257.     runoff /out=$@ $<
  258.  
  259. $(ZIPX_CLI).hlp : $(ZIPHELP_CLI_RNH)
  260.  
  261. clean.com :
  262.     @ open/write tmp $(MMS$TARGET)
  263.     @ write tmp "$!"
  264.     @ write tmp "$!    Clean.com --    procedure to delete files. It always returns success"
  265.     @ write tmp "$!            status despite any error or warnings. Also it extracts"
  266.     @ write tmp "$!            filename from MMS ""module=file"" format."
  267.     @ write tmp "$!"
  268.     @ write tmp "$ on control_y then goto ctly"
  269.     @ write tmp "$ if p1.eqs."""" then exit 1"
  270.     @ write tmp "$ i = -1"
  271.     @ write tmp "$scan_list:"
  272.     @ write tmp "$    i = i+1"
  273.     @ write tmp "$    item = f$elem(i,"","",p1)"
  274.     @ write tmp "$    if item.eqs."""" then goto scan_list"
  275.     @ write tmp "$    if item.eqs."","" then goto done        ! End of list"
  276.     @ write tmp "$    item = f$edit(item,""trim"")        ! Clean of blanks"
  277.     @ write tmp "$    wild = f$elem(1,""="",item)"
  278.     @ write tmp "$    show sym wild"
  279.     @ write tmp "$    if wild.eqs.""="" then wild = f$elem(0,""="",item)"
  280.     @ write tmp "$    vers = f$parse(wild,,,""version"",""syntax_only"")"
  281.     @ write tmp "$    if vers.eqs."";"" then wild = wild - "";"" + "";*"""
  282.     @ write tmp "$scan:"
  283.     @ write tmp "$        f = f$search(wild)"
  284.     @ write tmp "$        if f.eqs."""" then goto scan_list"
  285.     @ write tmp "$        on error then goto err"
  286.     @ write tmp "$        on warning then goto warn"
  287.     @ write tmp "$        delete/log 'f'"
  288.     @ write tmp "$warn:"
  289.     @ write tmp "$err:"
  290.     @ write tmp "$        goto scan"
  291.     @ write tmp "$done:"
  292.     @ write tmp "$ctly:"
  293.     @ write tmp "$    exit 1"
  294.     @ close tmp
  295.  
  296. clean : clean.com
  297.     @clean "$(OBJM)"
  298.     @clean "$(OBJZ)"
  299.     @clean "$(OBJI)"
  300.     @clean "$(OBJV)"
  301.     @clean "$(OBJU)"
  302.     @clean "$(OBJR)"
  303.     @clean "$(OBJN)"
  304.     @clean "$(OBJS)"
  305.     @clean "$(OBJC)"
  306.     @clean "$(OBJSCLI)"
  307.     @clean "$(OLBZIP)"
  308.     @clean "$(OLBCLI)"
  309.     @clean "$(OLBUTI)"
  310.     @clean "$(OPTFILE)"
  311.     @clean "$(ZIPS)"
  312.     @clean "$(ZIPHELP_CLI_RNH)"
  313.     @clean "$(ZIPHELPS)"
  314.     - delete/noconfirm/nolog clean.com;*
  315.