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