descrbz2.mms 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. !==========================================================================
  2. ! MMS description file for bzip2 support in UnZip 6 2008-02-16
  3. !==========================================================================
  4. !
  5. ! To build the LIBBZ2_NS library, 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. ! In all other cases where you want to explicitly specify a makefile target,
  13. ! you have to specify your compiling environment, too. These are:
  14. !
  15. ! $ MMS/MACRO=(__ALPHA__=1) ! Alpha AXP, (DEC C)
  16. ! $ MMS/MACRO=(__IA64__=1) ! IA64, (DEC C)
  17. ! $ MMS/MACRO=(__DECC__=1) ! VAX, using DEC C
  18. ! $ MMS/MACRO=(__FORCE_VAXC__=1) ! VAX, prefering VAXC over DECC
  19. ! $ MMS/MACRO=(__VAXC__=1) ! VAX, where VAXC is default
  20. ! $ MMS/MACRO=(__GNUC__=1) ! VAX, using GNU C
  21. !
  22. ! To delete all .OBJ, .OLB, .EXE and .HLP files,
  23. ! mms clean
  24. ## The "DO_THE_BUILD" target does no longer work with current
  25. ## releases of the MMS tool, sigh.
  26. #DO_THE_BUILD :
  27. # @ decc = f$search("SYS$SYSTEM:DECC$COMPILER.EXE").nes.""
  28. # @ axp = (f$getsyi("HW_MODEL") .ge. 1024) .and. -
  29. # (f$getsyi("HW_MODEL") .lt. 4096)
  30. # @ i64 = f$getsyi("HW_MODEL") .ge. 4096
  31. # @ macro = "/MACRO=("
  32. #.IFDEF CCOPTS
  33. # @ macro = macro + """CCOPTS=$(CCOPTS)"","
  34. #.ENDIF
  35. # @ if decc then macro = macro + "__DECC__=1,"
  36. # @ if axp then macro = macro + "__ALPHA__=1,"
  37. # @ if i64 then macro = macro + "__IA64__=1,"
  38. # @ if .not.(axp .or. i64 .or. decc) then macro = macro + "__VAXC__=1,"
  39. # @ macro = f$extract(0,f$length(macro)-1,macro)+ ")"
  40. # $(MMS)$(MMSQUALIFIERS)'macro' DEFAULT
  41. # Define MMK architecture macros when using MMS.
  42. .IFDEF __MMK__ # __MMK__
  43. .ELSE # __MMK__
  44. ALPHA_X_ALPHA = 1
  45. IA64_X_IA64 = 1
  46. VAX_X_VAX = 1
  47. .IFDEF $(MMS$ARCH_NAME)_X_ALPHA # $(MMS$ARCH_NAME)_X_ALPHA
  48. __ALPHA__ = 1
  49. .ENDIF # $(MMS$ARCH_NAME)_X_ALPHA
  50. .IFDEF $(MMS$ARCH_NAME)_X_IA64 # $(MMS$ARCH_NAME)_X_IA64
  51. __IA64__ = 1
  52. .ENDIF # $(MMS$ARCH_NAME)_X_IA64
  53. .IFDEF $(MMS$ARCH_NAME)_X_VAX # $(MMS$ARCH_NAME)_X_VAX
  54. __VAX__ = 1
  55. .ENDIF # $(MMS$ARCH_NAME)_X_VAX
  56. .ENDIF # __MMK__
  57. .IFDEF __ALPHA__ # __ALPHA__
  58. DEST = ALPHA
  59. #E = .AXP_EXE
  60. #O = .AXP_OBJ
  61. #A = .AXP_OLB
  62. .ELSE # __ALPHA__
  63. .IFDEF __IA64__ # __IA64__
  64. DEST = IA64
  65. #E = .I64_EXE
  66. #O = .I64_OBJ
  67. #A = .I64_OLB
  68. .ELSE # __IA64__
  69. .IFDEF __DECC__ # __DECC__
  70. DEST = VAX
  71. #E = .VAX_DECC_EXE
  72. #O = .VAX_DECC_OBJ
  73. #A = .VAX_DECC_OLB
  74. .ENDIF # __DECC__
  75. .IFDEF __FORCE_VAXC__ # __FORCE_VAXC__
  76. __VAXC__ = 1
  77. .ENDIF # __FORCE_VAXC__
  78. .IFDEF __VAXC__ # __VAXC__
  79. DEST = VAXV
  80. #E = .VAX_VAXC_EXE
  81. #O = .VAX_VAXC_OBJ
  82. #A = .VAX_VAXC_OLB
  83. .ENDIF # __VAXC__
  84. .IFDEF __GNUC__ # __GNUC__
  85. DEST = VAXG
  86. #E = .VAX_GNUC_EXE
  87. #O = .VAX_GNUC_OBJ
  88. #A = .VAX_GNUC_OLB
  89. .ENDIF # __GNUC__
  90. .ENDIF # __IA64__
  91. .ENDIF # __ALPHA__
  92. .IFDEF O # O
  93. .ELSE # O
  94. !If EXE and OBJ extensions aren't defined, define them
  95. E = .EXE
  96. O = .OBJ
  97. A = .OLB
  98. .ENDIF # O
  99. .IFDEF SRCDIR
  100. .ELSE
  101. SRCDIR = []
  102. .ENDIF
  103. .IFDEF DSTDIR # DSTDIR
  104. .ELSE # DSTDIR
  105. .IFDEF DEST # DEST
  106. DSTDIR = [.$(DEST)]
  107. .ELSE # DEST
  108. DSTDIR = []
  109. .ENDIF # DEST
  110. .ENDIF # DSTDIR
  111. !!!!!!!!!!!!!!!!!!!!!!!!!!! USER CUSTOMIZATION !!!!!!!!!!!!!!!!!!!!!!!!!!!!
  112. ! add any common optional preprocessor flags (macros) here
  113. ! (do not forget a trailing comma!!):
  114. COMMON_DEFS =
  115. !!!!!!!!!!!!!!!!!!!!!!!! END OF USER CUSTOMIZATION !!!!!!!!!!!!!!!!!!!!!!!!
  116. .IFDEF __GNUC__
  117. CC = gcc
  118. LIBS = ,GNU_CC:[000000]GCCLIB.OLB/LIB
  119. .ELSE
  120. CC = cc
  121. LIBS =
  122. .ENDIF
  123. CFLAGS = /NOLIST
  124. OPTFILE = sys$disk:[.vms]vaxcshr.opt
  125. .IFDEF __ALPHA__ # __ALPHA__
  126. CC_OPTIONS = /STANDARD=RELAX/PREFIX=ALL/ANSI/NAMES=(AS_IS)
  127. CC_DEFS =
  128. .ELSE # __ALPHA__
  129. .IFDEF __IA64__ # __IA64__
  130. CC_OPTIONS = /STANDARD=RELAX/PREFIX=ALL/ANSI/NAMES=(AS_IS)
  131. CC_DEFS =
  132. .ELSE # __IA64__
  133. .IFDEF __DECC__ # __DECC__
  134. CC_OPTIONS = /DECC/STANDARD=RELAX/PREFIX=ALL/NAMES=(AS_IS)
  135. CC_DEFS =
  136. .ELSE # __DECC__
  137. .IFDEF __FORCE_VAXC__ # __FORCE_VAXC__
  138. !Select VAXC on systems where DEC C exists
  139. CC_OPTIONS = /VAXC
  140. .ELSE # __FORCE_VAXC__
  141. !No flag allowed/needed on a pure VAXC system
  142. CC_OPTIONS =
  143. .ENDIF # __FORCE_VAXC__
  144. CC_DEFS =
  145. .ENDIF # __DECC__
  146. .ENDIF # __IA64__
  147. .ENDIF # __ALPHA__
  148. !
  149. ! The .FIRST target is needed only if we're serious about building,
  150. ! and then, only if BZIP2 support was requested.
  151. !
  152. .IFDEF MMSTARGETS # MMSTARGETS
  153. .FIRST
  154. @ write sys$output " Destination: $(DSTDIR)"
  155. @ write sys$output ""
  156. if ("$(DEST)" .nes. "") then -
  157. if (f$search("$(DEST).DIR;1") .eqs. "") then -
  158. create /directory $(DSTDIR)
  159. .ENDIF # MMSTARGETS
  160. CC_DEFS2 =
  161. CFLAGS_INCL = /INCLUDE = []
  162. .IFDEF __DEBUG__
  163. CDEB = /DEBUG/NOOPTIMIZE
  164. .ELSE
  165. CDEB =
  166. .ENDIF
  167. CFLAGS_ALL = $(CC_OPTIONS) $(CFLAGS) $(CDEB) $(CFLAGS_INCL) -
  168. /def=($(CC_DEFS) $(COMMON_DEFS) BZ_NO_STDIO, VMS) -
  169. $(CCOPTS)
  170. OBJBZ2LIB = \
  171. $(DSTDIR)blocksort$(O), \
  172. $(DSTDIR)huffman$(O), \
  173. $(DSTDIR)crctable$(O), \
  174. $(DSTDIR)randtable$(O), \
  175. $(DSTDIR)compress$(O), \
  176. $(DSTDIR)decompress$(O), \
  177. $(DSTDIR)bzlib$(O)
  178. OLBBZ2 = $(DSTDIR)LIBBZ2_NS$(A)
  179. BZIP2_H = $(SRCDIR)bzlib.h $(SRCDIR)bzlib_private.h
  180. !!!!!!!!!!!!!!!!!!! override default rules: !!!!!!!!!!!!!!!!!!!
  181. .suffixes :
  182. .suffixes : .ANL $(E) $(A) .MLB .HLB .TLB .FLB $(O) -
  183. .FORM .BLI .B32 .C .c .COB -
  184. .FOR .BAS .B16 .PLI .PEN .PAS .MAC .MAR .M64 .CLD .MSG .COR .DBL -
  185. .RPG .SCN .IFDL .RBA .RC .RCO .RFO .RPA .SC .SCO .SFO .SPA .SPL -
  186. .SQLADA .SQLMOD .RGK .RGC .MEM .RNO .HLP .RNH .L32 .REQ .R32 -
  187. .L16 .R16 .TXT .H .FRM .MMS .DDL .COM .DAT .OPT .CDO .SDML .ADF -
  188. .GDF .LDF .MDF .RDF .TDF
  189. $(O)$(A) :
  190. If "''F$Search("$(MMS$TARGET)")'" .EQS. "" Then $(LIBR)/Create $(MMS$TARGET)
  191. $(LIBR)$(LIBRFLAGS) $(MMS$TARGET) $(MMS$SOURCE)
  192. .c$(O) :
  193. $(CC) $(CFLAGS_ALL) /OBJ=$(MMS$TARGET) $(MMS$SOURCE)
  194. !!!!!!!!!!!!!!!!!! here starts the bzip2 specific part !!!!!!!!!!!
  195. DEFAULT default : CHK_DESTDIR $(OLBBZ2)
  196. @ ! Do nothing.
  197. CLEAN.COM clean.com :
  198. @ open/write tmp $(MMS$TARGET)
  199. @ write tmp "$!"
  200. @ write tmp "$! Clean.com -- procedure to delete files. It always returns success"
  201. @ write tmp "$! status despite any error or warnings. Also it extracts"
  202. @ write tmp "$! filename from MMS ""module=file"" format."
  203. @ write tmp "$!"
  204. @ write tmp "$ on control_y then goto ctly"
  205. @ write tmp "$ if p1.eqs."""" then exit 1"
  206. @ write tmp "$ i = -1"
  207. @ write tmp "$scan_list:"
  208. @ write tmp "$ i = i+1"
  209. @ write tmp "$ item = f$elem(i,"","",p1)"
  210. @ write tmp "$ if item.eqs."""" then goto scan_list"
  211. @ write tmp "$ if item.eqs."","" then goto done ! End of list"
  212. @ write tmp "$ item = f$edit(item,""trim"") ! Clean of blanks"
  213. @ write tmp "$ wild = f$elem(1,""="",item)"
  214. @ write tmp "$ show sym wild"
  215. @ write tmp "$ if wild.eqs.""="" then wild = f$elem(0,""="",item)"
  216. @ write tmp "$ vers = f$parse(wild,,,""version"",""syntax_only"")"
  217. @ write tmp "$ if vers.eqs."";"" then wild = wild - "";"" + "";*"""
  218. @ write tmp "$scan:"
  219. @ write tmp "$ f = f$search(wild)"
  220. @ write tmp "$ if f.eqs."""" then goto scan_list"
  221. @ write tmp "$ on error then goto err"
  222. @ write tmp "$ on warning then goto warn"
  223. @ write tmp "$ delete/log 'f'"
  224. @ write tmp "$warn:"
  225. @ write tmp "$err:"
  226. @ write tmp "$ goto scan"
  227. @ write tmp "$done:"
  228. @ write tmp "$ctly:"
  229. @ write tmp "$ exit 1"
  230. @ close tmp
  231. CLEAN clean : clean.com
  232. @clean "$(OBJBZ2LIB)"
  233. @clean "$(OLBBZ2)"
  234. @- delete/noconfirm/nolog clean.com;*
  235. @- if ("$(DEST).dir" .nes. "") then -
  236. if (f$search("$(DEST).dir") .nes. "") then -
  237. set protect=w:d $(DEST).dir;*
  238. @- if ("$(DEST).dir" .nes. "") then -
  239. if (f$search("$(DEST).dir") .nes. "") then -
  240. delete/noconfirm $(DEST).dir;*
  241. CHK_DESTDIR chk_destdir :
  242. @ If ("$(DEST)" .NES. "") Then -
  243. If "''F$Search("$(DEST).DIR;1")'" .EQS. "" Then -
  244. Create /directory $(DSTDIR)
  245. $(OLBBZ2) : $(OBJBZ2LIB)
  246. If "''F$Search("$(MMS$TARGET)")'" .EQS. "" Then $(LIBR)/Create $(MMS$TARGET)
  247. $(LIBR)$(LIBRFLAGS) $(MMS$TARGET) $(MMS$CHANGED_LIST)
  248. @ write sys$output "$(MMS$TARGET) updated."
  249. $(OBJBZ2LIB) : $(BZIP2_H)
  250. $(DSTDIR)blocksort$(O) : $(SRCDIR)blocksort.c
  251. $(DSTDIR)huffman$(O) : $(SRCDIR)huffman.c
  252. $(DSTDIR)crctable$(O) : $(SRCDIR)crctable.c
  253. $(DSTDIR)randtable$(O) : $(SRCDIR)randtable.c
  254. $(DSTDIR)compress$(O) : $(SRCDIR)compress.c
  255. $(DSTDIR)decompress$(O) : $(SRCDIR)decompress.c
  256. $(DSTDIR)bzlib$(O) : $(SRCDIR)bzlib.c