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