descrip_src.mms 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373
  1. # 23 February 2007. SMS.
  2. #
  3. # Zip 3.0 for VMS - MMS (or MMK) Source Description File.
  4. #
  5. # This description file is included by other description files. It is
  6. # not intended to be used alone. Verify proper inclusion.
  7. .IFDEF INCL_DESCRIP_SRC
  8. .ELSE
  9. $$$$ THIS DESCRIPTION FILE IS NOT INTENDED TO BE USED THIS WAY.
  10. .ENDIF
  11. # Define MMK architecture macros when using MMS.
  12. .IFDEF __MMK__ # __MMK__
  13. .ELSE # __MMK__
  14. ALPHA_X_ALPHA = 1
  15. IA64_X_IA64 = 1
  16. VAX_X_VAX = 1
  17. .IFDEF $(MMS$ARCH_NAME)_X_ALPHA # $(MMS$ARCH_NAME)_X_ALPHA
  18. __ALPHA__ = 1
  19. .ENDIF # $(MMS$ARCH_NAME)_X_ALPHA
  20. .IFDEF $(MMS$ARCH_NAME)_X_IA64 # $(MMS$ARCH_NAME)_X_IA64
  21. __IA64__ = 1
  22. .ENDIF # $(MMS$ARCH_NAME)_X_IA64
  23. .IFDEF $(MMS$ARCH_NAME)_X_VAX # $(MMS$ARCH_NAME)_X_VAX
  24. __VAX__ = 1
  25. .ENDIF # $(MMS$ARCH_NAME)_X_VAX
  26. .ENDIF # __MMK__
  27. # Combine command-line VAX C compiler macros.
  28. .IFDEF VAXC # VAXC
  29. VAXC_OR_FORCE_VAXC = 1
  30. .ELSE # VAXC
  31. .IFDEF FORCE_VAXC # FORCE_VAXC
  32. VAXC_OR_FORCE_VAXC = 1
  33. .ENDIF # FORCE_VAXC
  34. .ENDIF # VAXC
  35. # Analyze architecture-related and option macros.
  36. .IFDEF __ALPHA__ # __ALPHA__
  37. DECC = 1
  38. DESTM = ALPHA
  39. .ELSE # __ALPHA__
  40. .IFDEF __IA64__ # __IA64__
  41. DECC = 1
  42. DESTM = IA64
  43. .ELSE # __IA64__
  44. .IFDEF __VAX__ # __VAX__
  45. .IFDEF VAXC_OR_FORCE_VAXC # VAXC_OR_FORCE_VAXC
  46. DESTM = VAXV
  47. .ELSE # VAXC_OR_FORCE_VAXC
  48. .IFDEF GNUC # GNUC
  49. CC = GCC
  50. DESTM = VAXG
  51. .ELSE # GNUC
  52. DECC = 1
  53. DESTM = VAX
  54. .ENDIF # GNUC
  55. .ENDIF # VAXC_OR_FORCE_VAXC
  56. .ELSE # __VAX__
  57. DESTM = UNK
  58. UNK_DEST = 1
  59. .ENDIF # __VAX__
  60. .ENDIF # __IA64__
  61. .ENDIF # __ALPHA__
  62. .IFDEF IM # IM
  63. DESTI = I
  64. .ELSE # IM
  65. DESTI =
  66. .ENDIF # IM
  67. .IFDEF LARGE # LARGE
  68. .IFDEF __VAX__ # __VAX__
  69. DESTL =
  70. .ELSE # __VAX__
  71. DESTL = L
  72. .ENDIF # __VAX__
  73. .ELSE # LARGE
  74. DESTL =
  75. .ENDIF # LARGE
  76. DEST = $(DESTM)$(DESTI)$(DESTL)
  77. SEEK_BZ = $(DESTM)$(DESTL)
  78. # Library module name suffix for XXX_.OBJ with GNU C.
  79. .IFDEF GNUC # GNUC
  80. GCC_ = _
  81. .ELSE # GNUC
  82. GCC_ =
  83. .ENDIF # GNUC
  84. # Check for option problems.
  85. .IFDEF __VAX__ # __VAX__
  86. .IFDEF LARGE # LARGE
  87. LARGE_VAX = 1
  88. .ENDIF # LARGE
  89. .IFDEF VAXC_OR_FORCE_VAXC # VAXC_OR_FORCE_VAXC
  90. .IFDEF GNUC # GNUC
  91. VAX_MULTI_CMPL = 1
  92. .ENDIF # GNUC
  93. .ENDIF # VAXC_OR_FORCE_VAXC
  94. .ELSE # __VAX__
  95. .IFDEF VAXC_OR_FORCE_VAXC # VAXC_OR_FORCE_VAXC
  96. NON_VAX_CMPL = 1
  97. .ELSE # VAXC_OR_FORCE_VAXC
  98. .IFDEF GNUC # GNUC
  99. NON_VAX_CMPL = 1
  100. .ENDIF # GNUC
  101. .ENDIF # VAXC_OR_FORCE_VAXC
  102. .ENDIF # __VAX__
  103. # Complain if warranted. Otherwise, show destination directory.
  104. # Make the destination directory, if necessary.
  105. .IFDEF UNK_DEST # UNK_DEST
  106. .FIRST
  107. @ write sys$output -
  108. " Unknown system architecture."
  109. .IFDEF __MMK__ # __MMK__
  110. @ write sys$output -
  111. " MMK on IA64? Try adding ""/MACRO = __IA64__""."
  112. .ELSE # __MMK__
  113. @ write sys$output -
  114. " MMS too old? Try adding ""/MACRO = MMS$ARCH_NAME=ALPHA"","
  115. @ write sys$output -
  116. " or ""/MACRO = MMS$ARCH_NAME=IA64"", or ""/MACRO = MMS$ARCH_NAME=VAX"","
  117. @ write sys$output -
  118. " as appropriate. (Or try a newer version of MMS.)"
  119. .ENDIF # __MMK__
  120. @ write sys$output ""
  121. I_WILL_DIE_NOW. /$$$$INVALID$$$$
  122. .ELSE # UNK_DEST
  123. .IFDEF VAX_MULTI_CMPL # VAX_MULTI_CMPL
  124. .FIRST
  125. @ write sys$output -
  126. " Macro ""GNUC"" is incompatible with ""VAXC"" or ""FORCE_VAXC""."
  127. @ write sys$output ""
  128. I_WILL_DIE_NOW. /$$$$INVALID$$$$
  129. .ELSE # VAX_MULTI_CMPL
  130. .IFDEF NON_VAX_CMPL # NON_VAX_CMPL
  131. .FIRST
  132. @ write sys$output -
  133. " Macros ""GNUC"", ""VAXC"", and ""FORCE_VAXC"" are valid only on VAX."
  134. @ write sys$output ""
  135. I_WILL_DIE_NOW. /$$$$INVALID$$$$
  136. .ELSE # NON_VAX_CMPL
  137. .IFDEF LARGE_VAX # LARGE_VAX
  138. .FIRST
  139. @ write sys$output -
  140. " Macro ""LARGE"" is invalid on VAX."
  141. @ write sys$output ""
  142. I_WILL_DIE_NOW. /$$$$INVALID$$$$
  143. .ELSE # LARGE_VAX
  144. .IFDEF IZ_BZIP2 # IZ_BZIP2
  145. CDEFS_BZ = , BZIP2_SUPPORT
  146. CFLAGS_INCL = /INCLUDE = ([], [.VMS])
  147. INCL_BZIP2_M = , ZBZ2ERR
  148. LIB_BZIP2_OPTS = LIB_BZIP2:LIBBZ2_NS.OLB /library,
  149. .FIRST
  150. @ define incl_bzip2 $(IZ_BZIP2)
  151. @ @[.VMS]FIND_BZIP2_LIB.COM $(IZ_BZIP2) $(SEEK_BZ) -
  152. LIBBZ2_NS.OLB lib_bzip2
  153. @ write sys$output ""
  154. @ if (f$trnlnm( "lib_bzip2") .nes. "") then -
  155. write sys$output " BZIP2 dir: ''f$trnlnm( "lib_bzip2")'"
  156. @ if (f$trnlnm( "lib_bzip2") .eqs. "") then -
  157. write sys$output " Can not find BZIP2 object library."
  158. @ write sys$output ""
  159. @ if (f$trnlnm( "lib_bzip2") .eqs. "") then -
  160. I_WILL_DIE_NOW. /$$$$INVALID$$$$
  161. @ write sys$output " Destination: [.$(DEST)]"
  162. @ write sys$output ""
  163. if (f$search( "$(DEST).DIR;1") .eqs. "") then -
  164. create /directory [.$(DEST)]
  165. .ELSE # IZ_BZIP2
  166. CDEFS_BZ =
  167. CFLAGS_INCL = /include = []
  168. INCL_BZIP2_M = , ZBZ2ERR
  169. LIB_BZIP2_OPTS =
  170. .FIRST
  171. @ write sys$output " Destination: [.$(DEST)]"
  172. @ write sys$output ""
  173. if (f$search( "$(DEST).DIR;1") .eqs. "") then -
  174. create /directory [.$(DEST)]
  175. .ENDIF # IZ_BZIP2
  176. .ENDIF # LARGE_VAX
  177. .ENDIF # NON_VAX_CMPL
  178. .ENDIF # VAX_MULTI_CMPL
  179. .ENDIF # UNK_DEST
  180. # DBG options.
  181. .IFDEF DBG # DBG
  182. CFLAGS_DBG = /debug /nooptimize
  183. LINKFLAGS_DBG = /debug /traceback
  184. .ELSE # DBG
  185. CFLAGS_DBG =
  186. LINKFLAGS_DBG = /notraceback
  187. .ENDIF # DBG
  188. # "IM" scheme for storing VMS/RMS file attributes.
  189. .IFDEF IM # IM
  190. CDEFS_IM = , VMS_IM_EXTRA
  191. .ELSE # IM
  192. CDEFS_IM =
  193. .ENDIF # IM
  194. # Large-file options.
  195. .IFDEF LARGE # LARGE
  196. CDEFS_LARGE = , LARGE_FILE_SUPPORT
  197. .ELSE # LARGE
  198. CDEFS_LARGE =
  199. .ENDIF # LARGE
  200. # C compiler defines.
  201. .IFDEF LOCAL_ZIP
  202. C_LOCAL_ZIP = , $(LOCAL_ZIP)
  203. .ELSE
  204. C_LOCAL_ZIP =
  205. .ENDIF
  206. CDEFS = VMS $(CDEFS_BZ) $(CDEFS_IM) $(CDEFS_LARGE) $(C_LOCAL_ZIP)
  207. CDEFS_UNX = /define = ($(CDEFS))
  208. CDEFS_CLI = /define = ($(CDEFS), VMSCLI)
  209. CDEFS_UTIL = /define = ($(CDEFS), UTIL)
  210. # Other C compiler options.
  211. .IFDEF DECC # DECC
  212. CFLAGS_ARCH = /decc /prefix = (all)
  213. .ELSE # DECC
  214. .IFDEF FORCE_VAXC # FORCE_VAXC
  215. CFLAGS_ARCH = /vaxc
  216. .IFDEF VAXC # VAXC
  217. .ELSE # VAXC
  218. VAXC = 1
  219. .ENDIF # VAXC
  220. .ELSE # FORCE_VAXC
  221. CFLAGS_ARCH =
  222. .ENDIF # FORCE_VAXC
  223. .ENDIF # DECC
  224. .IFDEF VAXC_OR_FORCE_VAXC # VAXC_OR_FORCE_VAXC
  225. OPT_FILE = [.$(DEST)]VAXCSHR.OPT
  226. LFLAGS_ARCH = $(OPT_FILE) /options,
  227. .ELSE # VAXC_OR_FORCE_VAXC
  228. .IFDEF GNUC # GNUC
  229. OPT_FILE = [.$(DEST)]VAXCSHR.OPT
  230. LFLAGS_GNU = GNU_CC:[000000]GCCLIB.OLB /LIBRARY
  231. LFLAGS_ARCH = $(LFLAGS_GNU), SYS$DISK:$(OPT_FILE) /options,
  232. .ELSE # GNUC
  233. OPT_FILE =
  234. LFLAGS_ARCH =
  235. .ENDIF # GNUC
  236. .ENDIF # VAXC_OR_FORCE_VAXC
  237. # LIST options.
  238. .IFDEF LIST # LIST
  239. .IFDEF DECC # DECC
  240. CFLAGS_LIST = /list = $*.LIS /show = (all, nomessages)
  241. .ELSE # DECC
  242. CFLAGS_LIST = /list = $*.LIS /show = (all)
  243. .ENDIF # DECC
  244. LINKFLAGS_LIST = /map = $*.MAP /cross_reference /full
  245. .ELSE # LIST
  246. CFLAGS_LIST =
  247. LINKFLAGS_LIST =
  248. .ENDIF # LIST
  249. # Common CFLAGS and LINKFLAGS.
  250. CFLAGS = \
  251. $(CFLAGS_ARCH) $(CFLAGS_DBG) $(CFLAGS_INCL) $(CFLAGS_LIST) $(CCOPTS) \
  252. /object = $(MMS$TARGET)
  253. LINKFLAGS = \
  254. $(LINKFLAGS_DBG) $(LINKFLAGS_LIST) $(LINKOPTS) \
  255. /executable = $(MMS$TARGET)
  256. # Object library module=object lists.
  257. # Primary object library, [].
  258. MODS_OBJS_LIB_ZIP_N = \
  259. CRC32=[.$(DEST)]CRC32.OBJ \
  260. CRYPT=[.$(DEST)]CRYPT.OBJ \
  261. DEFLATE=[.$(DEST)]DEFLATE.OBJ \
  262. FILEIO=[.$(DEST)]FILEIO.OBJ \
  263. GLOBALS=[.$(DEST)]GLOBALS.OBJ \
  264. TREES=[.$(DEST)]TREES.OBJ \
  265. TTYIO=[.$(DEST)]TTYIO.OBJ \
  266. UTIL=[.$(DEST)]UTIL.OBJ \
  267. ZBZ2ERR=[.$(DEST)]ZBZ2ERR.OBJ \
  268. ZIPFILE=[.$(DEST)]ZIPFILE.OBJ \
  269. ZIPUP=[.$(DEST)]ZIPUP.OBJ
  270. # Primary object library, [.VMS].
  271. MODS_OBJS_LIB_ZIP_V = \
  272. VMS=[.$(DEST)]VMS.OBJ \
  273. VMSMUNCH=[.$(DEST)]VMSMUNCH.OBJ \
  274. VMSZIP=[.$(DEST)]VMSZIP.OBJ
  275. MODS_OBJS_LIB_ZIP = $(MODS_OBJS_LIB_ZIP_N) $(MODS_OBJS_LIB_ZIP_V)
  276. # Utility object library, normal, [].
  277. MODS_OBJS_LIB_ZIPUTILS_N = \
  278. GLOBALS=[.$(DEST)]GLOBALS.OBJ \
  279. TTYIO=[.$(DEST)]TTYIO.OBJ
  280. # Utility object library, variant, [].
  281. MODS_OBJS_LIB_ZIPUTILS_U = \
  282. CRC32$(GCC_)=[.$(DEST)]CRC32_.OBJ \
  283. CRYPT$(GCC_)=[.$(DEST)]CRYPT_.OBJ \
  284. FILEIO$(GCC_)=[.$(DEST)]FILEIO_.OBJ \
  285. UTIL$(GCC_)=[.$(DEST)]UTIL_.OBJ \
  286. ZIPFILE$(GCC_)=[.$(DEST)]ZIPFILE_.OBJ
  287. # Utility object library, normal, [.VMS].
  288. MODS_OBJS_LIB_ZIPUTILS_N_V = \
  289. VMSMUNCH=[.$(DEST)]VMSMUNCH.OBJ
  290. # Utility object library, variant, [.VMS].
  291. MODS_OBJS_LIB_ZIPUTILS_U_V = \
  292. VMS$(GCC_)=[.$(DEST)]VMS_.OBJ
  293. MODS_OBJS_LIB_ZIPUTILS = $(MODS_OBJS_LIB_ZIPUTILS_N) \
  294. $(MODS_OBJS_LIB_ZIPUTILS_U) \
  295. $(MODS_OBJS_LIB_ZIPUTILS_N_V) \
  296. $(MODS_OBJS_LIB_ZIPUTILS_U_V) \
  297. # CLI object library, [.VMS].
  298. MODS_OBJS_LIB_ZIPCLI_C_V = \
  299. CMDLINE=[.$(DEST)]CMDLINE.OBJ
  300. MODS_OBJS_LIB_ZIPCLI_CLD_V = \
  301. ZIP_CLITABLE=[.$(DEST)]ZIP_CLI.OBJ
  302. MODS_OBJS_LIB_ZIPCLI = \
  303. $(MODS_OBJS_LIB_ZIPCLI_C_V) \
  304. $(MODS_OBJS_LIB_ZIPCLI_CLD_V)
  305. # Executables.
  306. ZIP = [.$(DEST)]ZIP.EXE
  307. ZIP_CLI = [.$(DEST)]ZIP_CLI.EXE
  308. ZIPUTILS = \
  309. [.$(DEST)]ZIPCLOAK.EXE \
  310. [.$(DEST)]ZIPNOTE.EXE \
  311. [.$(DEST)]ZIPSPLIT.EXE