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