unzip/bzip2/descrbz2.mms

286 lines
9.1 KiB
Plaintext

!==========================================================================
! MMS description file for bzip2 support in UnZip 6 2008-02-16
!==========================================================================
!
! To build the LIBBZ2_NS library, edit the USER CUSTOMIZATION
! lines below to taste, then do
! mms
! or
! mmk
! if you use Matt's Make (free MMS-compatible make utility).
!
! In all other cases where you want to explicitly specify a makefile target,
! you have to specify your compiling environment, too. These are:
!
! $ MMS/MACRO=(__ALPHA__=1) ! Alpha AXP, (DEC C)
! $ MMS/MACRO=(__IA64__=1) ! IA64, (DEC C)
! $ MMS/MACRO=(__DECC__=1) ! VAX, using DEC C
! $ MMS/MACRO=(__FORCE_VAXC__=1) ! VAX, prefering VAXC over DECC
! $ MMS/MACRO=(__VAXC__=1) ! VAX, where VAXC is default
! $ MMS/MACRO=(__GNUC__=1) ! VAX, using GNU C
!
! To delete all .OBJ, .OLB, .EXE and .HLP files,
! mms clean
## The "DO_THE_BUILD" target does no longer work with current
## releases of the MMS tool, sigh.
#DO_THE_BUILD :
# @ decc = f$search("SYS$SYSTEM:DECC$COMPILER.EXE").nes.""
# @ axp = (f$getsyi("HW_MODEL") .ge. 1024) .and. -
# (f$getsyi("HW_MODEL") .lt. 4096)
# @ i64 = f$getsyi("HW_MODEL") .ge. 4096
# @ macro = "/MACRO=("
#.IFDEF CCOPTS
# @ macro = macro + """CCOPTS=$(CCOPTS)"","
#.ENDIF
# @ if decc then macro = macro + "__DECC__=1,"
# @ if axp then macro = macro + "__ALPHA__=1,"
# @ if i64 then macro = macro + "__IA64__=1,"
# @ if .not.(axp .or. i64 .or. decc) then macro = macro + "__VAXC__=1,"
# @ macro = f$extract(0,f$length(macro)-1,macro)+ ")"
# $(MMS)$(MMSQUALIFIERS)'macro' DEFAULT
# Define MMK architecture macros when using MMS.
.IFDEF __MMK__ # __MMK__
.ELSE # __MMK__
ALPHA_X_ALPHA = 1
IA64_X_IA64 = 1
VAX_X_VAX = 1
.IFDEF $(MMS$ARCH_NAME)_X_ALPHA # $(MMS$ARCH_NAME)_X_ALPHA
__ALPHA__ = 1
.ENDIF # $(MMS$ARCH_NAME)_X_ALPHA
.IFDEF $(MMS$ARCH_NAME)_X_IA64 # $(MMS$ARCH_NAME)_X_IA64
__IA64__ = 1
.ENDIF # $(MMS$ARCH_NAME)_X_IA64
.IFDEF $(MMS$ARCH_NAME)_X_VAX # $(MMS$ARCH_NAME)_X_VAX
__VAX__ = 1
.ENDIF # $(MMS$ARCH_NAME)_X_VAX
.ENDIF # __MMK__
.IFDEF __ALPHA__ # __ALPHA__
DEST = ALPHA
#E = .AXP_EXE
#O = .AXP_OBJ
#A = .AXP_OLB
.ELSE # __ALPHA__
.IFDEF __IA64__ # __IA64__
DEST = IA64
#E = .I64_EXE
#O = .I64_OBJ
#A = .I64_OLB
.ELSE # __IA64__
.IFDEF __DECC__ # __DECC__
DEST = VAX
#E = .VAX_DECC_EXE
#O = .VAX_DECC_OBJ
#A = .VAX_DECC_OLB
.ENDIF # __DECC__
.IFDEF __FORCE_VAXC__ # __FORCE_VAXC__
__VAXC__ = 1
.ENDIF # __FORCE_VAXC__
.IFDEF __VAXC__ # __VAXC__
DEST = VAXV
#E = .VAX_VAXC_EXE
#O = .VAX_VAXC_OBJ
#A = .VAX_VAXC_OLB
.ENDIF # __VAXC__
.IFDEF __GNUC__ # __GNUC__
DEST = VAXG
#E = .VAX_GNUC_EXE
#O = .VAX_GNUC_OBJ
#A = .VAX_GNUC_OLB
.ENDIF # __GNUC__
.ENDIF # __IA64__
.ENDIF # __ALPHA__
.IFDEF O # O
.ELSE # O
!If EXE and OBJ extensions aren't defined, define them
E = .EXE
O = .OBJ
A = .OLB
.ENDIF # O
.IFDEF SRCDIR
.ELSE
SRCDIR = []
.ENDIF
.IFDEF DSTDIR # DSTDIR
.ELSE # DSTDIR
.IFDEF DEST # DEST
DSTDIR = [.$(DEST)]
.ELSE # DEST
DSTDIR = []
.ENDIF # DEST
.ENDIF # DSTDIR
!!!!!!!!!!!!!!!!!!!!!!!!!!! USER CUSTOMIZATION !!!!!!!!!!!!!!!!!!!!!!!!!!!!
! add any common optional preprocessor flags (macros) here
! (do not forget a trailing comma!!):
COMMON_DEFS =
!!!!!!!!!!!!!!!!!!!!!!!! END OF USER CUSTOMIZATION !!!!!!!!!!!!!!!!!!!!!!!!
.IFDEF __GNUC__
CC = gcc
LIBS = ,GNU_CC:[000000]GCCLIB.OLB/LIB
.ELSE
CC = cc
LIBS =
.ENDIF
CFLAGS = /NOLIST
OPTFILE = sys$disk:[.vms]vaxcshr.opt
.IFDEF __ALPHA__ # __ALPHA__
CC_OPTIONS = /STANDARD=RELAX/PREFIX=ALL/ANSI/NAMES=(AS_IS)
CC_DEFS =
.ELSE # __ALPHA__
.IFDEF __IA64__ # __IA64__
CC_OPTIONS = /STANDARD=RELAX/PREFIX=ALL/ANSI/NAMES=(AS_IS)
CC_DEFS =
.ELSE # __IA64__
.IFDEF __DECC__ # __DECC__
CC_OPTIONS = /DECC/STANDARD=RELAX/PREFIX=ALL/NAMES=(AS_IS)
CC_DEFS =
.ELSE # __DECC__
.IFDEF __FORCE_VAXC__ # __FORCE_VAXC__
!Select VAXC on systems where DEC C exists
CC_OPTIONS = /VAXC
.ELSE # __FORCE_VAXC__
!No flag allowed/needed on a pure VAXC system
CC_OPTIONS =
.ENDIF # __FORCE_VAXC__
CC_DEFS =
.ENDIF # __DECC__
.ENDIF # __IA64__
.ENDIF # __ALPHA__
!
! The .FIRST target is needed only if we're serious about building,
! and then, only if BZIP2 support was requested.
!
.IFDEF MMSTARGETS # MMSTARGETS
.FIRST
@ write sys$output " Destination: $(DSTDIR)"
@ write sys$output ""
if ("$(DEST)" .nes. "") then -
if (f$search("$(DEST).DIR;1") .eqs. "") then -
create /directory $(DSTDIR)
.ENDIF # MMSTARGETS
CC_DEFS2 =
CFLAGS_INCL = /INCLUDE = []
.IFDEF __DEBUG__
CDEB = /DEBUG/NOOPTIMIZE
.ELSE
CDEB =
.ENDIF
CFLAGS_ALL = $(CC_OPTIONS) $(CFLAGS) $(CDEB) $(CFLAGS_INCL) -
/def=($(CC_DEFS) $(COMMON_DEFS) BZ_NO_STDIO, VMS) -
$(CCOPTS)
OBJBZ2LIB = \
$(DSTDIR)blocksort$(O), \
$(DSTDIR)huffman$(O), \
$(DSTDIR)crctable$(O), \
$(DSTDIR)randtable$(O), \
$(DSTDIR)compress$(O), \
$(DSTDIR)decompress$(O), \
$(DSTDIR)bzlib$(O)
OLBBZ2 = $(DSTDIR)LIBBZ2_NS$(A)
BZIP2_H = $(SRCDIR)bzlib.h $(SRCDIR)bzlib_private.h
!!!!!!!!!!!!!!!!!!! override default rules: !!!!!!!!!!!!!!!!!!!
.suffixes :
.suffixes : .ANL $(E) $(A) .MLB .HLB .TLB .FLB $(O) -
.FORM .BLI .B32 .C .c .COB -
.FOR .BAS .B16 .PLI .PEN .PAS .MAC .MAR .M64 .CLD .MSG .COR .DBL -
.RPG .SCN .IFDL .RBA .RC .RCO .RFO .RPA .SC .SCO .SFO .SPA .SPL -
.SQLADA .SQLMOD .RGK .RGC .MEM .RNO .HLP .RNH .L32 .REQ .R32 -
.L16 .R16 .TXT .H .FRM .MMS .DDL .COM .DAT .OPT .CDO .SDML .ADF -
.GDF .LDF .MDF .RDF .TDF
$(O)$(A) :
If "''F$Search("$(MMS$TARGET)")'" .EQS. "" Then $(LIBR)/Create $(MMS$TARGET)
$(LIBR)$(LIBRFLAGS) $(MMS$TARGET) $(MMS$SOURCE)
.c$(O) :
$(CC) $(CFLAGS_ALL) /OBJ=$(MMS$TARGET) $(MMS$SOURCE)
!!!!!!!!!!!!!!!!!! here starts the bzip2 specific part !!!!!!!!!!!
DEFAULT default : CHK_DESTDIR $(OLBBZ2)
@ ! Do nothing.
CLEAN.COM clean.com :
@ open/write tmp $(MMS$TARGET)
@ write tmp "$!"
@ write tmp "$! Clean.com -- procedure to delete files. It always returns success"
@ write tmp "$! status despite any error or warnings. Also it extracts"
@ write tmp "$! filename from MMS ""module=file"" format."
@ write tmp "$!"
@ write tmp "$ on control_y then goto ctly"
@ write tmp "$ if p1.eqs."""" then exit 1"
@ write tmp "$ i = -1"
@ write tmp "$scan_list:"
@ write tmp "$ i = i+1"
@ write tmp "$ item = f$elem(i,"","",p1)"
@ write tmp "$ if item.eqs."""" then goto scan_list"
@ write tmp "$ if item.eqs."","" then goto done ! End of list"
@ write tmp "$ item = f$edit(item,""trim"") ! Clean of blanks"
@ write tmp "$ wild = f$elem(1,""="",item)"
@ write tmp "$ show sym wild"
@ write tmp "$ if wild.eqs.""="" then wild = f$elem(0,""="",item)"
@ write tmp "$ vers = f$parse(wild,,,""version"",""syntax_only"")"
@ write tmp "$ if vers.eqs."";"" then wild = wild - "";"" + "";*"""
@ write tmp "$scan:"
@ write tmp "$ f = f$search(wild)"
@ write tmp "$ if f.eqs."""" then goto scan_list"
@ write tmp "$ on error then goto err"
@ write tmp "$ on warning then goto warn"
@ write tmp "$ delete/log 'f'"
@ write tmp "$warn:"
@ write tmp "$err:"
@ write tmp "$ goto scan"
@ write tmp "$done:"
@ write tmp "$ctly:"
@ write tmp "$ exit 1"
@ close tmp
CLEAN clean : clean.com
@clean "$(OBJBZ2LIB)"
@clean "$(OLBBZ2)"
@- delete/noconfirm/nolog clean.com;*
@- if ("$(DEST).dir" .nes. "") then -
if (f$search("$(DEST).dir") .nes. "") then -
set protect=w:d $(DEST).dir;*
@- if ("$(DEST).dir" .nes. "") then -
if (f$search("$(DEST).dir") .nes. "") then -
delete/noconfirm $(DEST).dir;*
CHK_DESTDIR chk_destdir :
@ If ("$(DEST)" .NES. "") Then -
If "''F$Search("$(DEST).DIR;1")'" .EQS. "" Then -
Create /directory $(DSTDIR)
$(OLBBZ2) : $(OBJBZ2LIB)
If "''F$Search("$(MMS$TARGET)")'" .EQS. "" Then $(LIBR)/Create $(MMS$TARGET)
$(LIBR)$(LIBRFLAGS) $(MMS$TARGET) $(MMS$CHANGED_LIST)
@ write sys$output "$(MMS$TARGET) updated."
$(OBJBZ2LIB) : $(BZIP2_H)
$(DSTDIR)blocksort$(O) : $(SRCDIR)blocksort.c
$(DSTDIR)huffman$(O) : $(SRCDIR)huffman.c
$(DSTDIR)crctable$(O) : $(SRCDIR)crctable.c
$(DSTDIR)randtable$(O) : $(SRCDIR)randtable.c
$(DSTDIR)compress$(O) : $(SRCDIR)compress.c
$(DSTDIR)decompress$(O) : $(SRCDIR)decompress.c
$(DSTDIR)bzlib$(O) : $(SRCDIR)bzlib.c