home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 9 Archive
/
09-Archive.zip
/
unzip540.zip
/
msdos
/
makefile.bc
< prev
next >
Wrap
Makefile
|
1998-04-16
|
5KB
|
194 lines
# Makefile for UnZip(SFX) and fUnZip for Borland C++ 2.x-4.x and Turbo C++ 1.0
# Version: 5.20 and later Alvin Koh, Jim Knoble, Christian Spieler, etc.
#
# Last revised: 16 Apr 98
#
# To compile with Turbo C++ 1.0, set the macro CC_REV to 1 at the command line
# (make -fmsdos/makefile.bc -DCC_REV=1).
# GNU make doesn't like the return value from "rem"
#STRIP=rem
STRIP=echo Ignore this line.
# If you don't have LZEXE or PKLITE, get one of them. Then define:
#STRIP=lzexe
# or
#STRIP=pklite
# This makes a big difference in .exe size (and possibly load time).
# Optional nonstandard preprocessor flags (as -DCHECK_EOF or -DDOS_WILD)
# should be added to the environment via "set LOCAL_UNZIP=-DFOO" or added
# to the declaration of LOC here:
LOC = $(LOCAL_UNZIP)
# Type for CPU required: 0: 8086, 1: 80186, 2: 80286, 3: 80386, etc.
CPU_TYP = 0
# (De)Select inclusion of optimized assembler CRC32 routine:
USE_ASMCRC = 1
!if $(CC_REV) == 1
# Turbo C++ 1.0
CC = tcc
!else
# Borland C++ 2.0, 3.0, 3.1 ...
! if !$(CC_REV)
CC_REV = 3
! endif
CC = bcc
!endif
AS = tasm
# "near data" model is sufficient for UnZip and ZipInfo, now that strings moved
# switched to medium model; UnZip code has grown beyond the 64k limit.
UNMODEL = m # medium model for UnZip and ZipInfo
ASUNMODEL=__MEDIUM__ # keep in sync with UNMODEL definition !!
FUMODEL = s # always use small model for fUnZip
ASFUMODEL=__SMALL__ # keep in sync with FUMODEL definition !!
!if $(USE_ASMCRC)
ASMFLG = -DASM_CRC
ASMOBJS = crc_i86.obj
ASMOBJF = crc_i86_.obj
!else
ASMFLG =
ASMOBJS =
ASMOBJF =
!endif
# compiler flags
ASCPUFLAG = __$(CPU_TYP)86
!if $(CPU_TYP) != 0
CC_CPUFLG = -$(CPU_TYP)
!endif
ASFLAGS = -ml -m2 -w0 -D$(ASCPUFLAG) $(LOC)
!if $(CC_REV) == 1
# Bug: TC ++ 1.0 ignores "far" on "const" strings, so const is disabled!
CCOPTIM = -O -G -Z -a -d -DZCONST
LDFLAGS = -lxncd # for tcc
!else
CCOPTIM = -O2
LDFLAGS = -lxncd -l-P # for bcc
!endif
CFLAGS = $(CCOPTIM) $(CC_CPUFLG) -ff- -k- -P-.C -I. $(ASMFLG) $(LOC)
UNFLAGS = -m$(UNMODEL) $(CFLAGS)
FUFLAGS = -m$(FUMODEL) $(CFLAGS) -K -d
SXFLAGS = -m$(UNMODEL) $(CFLAGS)
# implicit rules
.asm.obj:
$(AS) $(ASFLAGS) -D$(ASUNMODEL) $<
.c.obj:
$(CC) -c $(UNFLAGS) {$< }
# list macros
OBJU1 = unzip.obj crc32.obj crctab.obj crypt.obj envargs.obj explode.obj
OBJU2 = extract.obj fileio.obj globals.obj inflate.obj list.obj match.obj
OBJU3 = process.obj ttyio.obj unreduce.obj unshrink.obj zipinfo.obj
OBJUS = msdos.obj $(ASMOBJS)
OBJU = $(OBJU1) $(OBJU2) $(OBJU3) $(OBJUS)
OBJF = funzip.obj crc32f.obj cryptf.obj globalsf.obj inflatef.obj \
ttyiof.obj $(ASMOBJF)
OBJX1 = unzipsfx.obj crc32.obj crctab.obj crypt.obj extractx.obj fileio.obj
OBJX2 = globals.obj inflate.obj match.obj processx.obj ttyio.obj
OBJXS = msdosx.obj $(ASMOBJS)
OBJX = $(OBJX1) $(OBJX2) $(OBJXS)
UNZIP_H = unzip.h unzpriv.h globals.h msdos/doscfg.h
# explicit rules
all: unzip.exe funzip.exe unzipsfx.exe
unzip.exe: $(OBJU)
$(CC) -m$(UNMODEL) $(LDFLAGS) -eunzip.exe @&&|
$(OBJU)
|
$(STRIP) unzip.exe
funzip.exe: $(OBJF)
$(CC) -m$(FUMODEL) $(LDFLAGS) -efunzip.exe @&&|
$(OBJF)
|
$(STRIP) funzip.exe
unzipsfx.exe: $(OBJX)
$(CC) -m$(UNMODEL) $(LDFLAGS) -eunzipsfx.exe @&&|
$(OBJX)
|
$(STRIP) unzipsfx.exe
clean:
rem Ignore any errors in the following...
-del *.obj
-del unzip.exe
-del funzip.exe
-del unzipsfx.exe
# individual file dependencies
crc32.obj: crc32.c $(UNZIP_H) zip.h
crctab.obj: crctab.c $(UNZIP_H) zip.h
crypt.obj: crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
envargs.obj: envargs.c $(UNZIP_H)
explode.obj: explode.c $(UNZIP_H)
extract.obj: extract.c $(UNZIP_H) crypt.h
fileio.obj: fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h
globals.obj: globals.c $(UNZIP_H)
inflate.obj: inflate.c inflate.h $(UNZIP_H)
list.obj: list.c $(UNZIP_H)
match.obj: match.c $(UNZIP_H)
process.obj: process.c $(UNZIP_H)
ttyio.obj: ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
unreduce.obj: unreduce.c $(UNZIP_H)
unshrink.obj: unshrink.c $(UNZIP_H)
unzip.obj: unzip.c $(UNZIP_H) crypt.h version.h consts.h
zipinfo.obj: zipinfo.c $(UNZIP_H)
crc_i86.obj: msdos/crc_i86.asm
$(AS) $(ASFLAGS) -D$(ASUNMODEL) msdos\crc_i86.asm, $*.obj ;
crc_i86_.obj: msdos/crc_i86.asm
$(AS) $(ASFLAGS) -D$(ASFUMODEL) msdos\crc_i86.asm, $*.obj ;
msdos.obj: msdos/msdos.c $(UNZIP_H)
$(CC) -c $(UNFLAGS) msdos/msdos.c
funzip.obj: funzip.c $(UNZIP_H) crypt.h ttyio.h tables.h
$(CC) -c $(FUFLAGS) funzip.c
crc32f.obj: crc32.c $(UNZIP_H) zip.h
$(CC) -c $(FUFLAGS) -DFUNZIP -ocrc32f.obj crc32.c
cryptf.obj: crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
$(CC) -c $(FUFLAGS) -DFUNZIP -ocryptf.obj crypt.c
globalsf.obj: globals.c $(UNZIP_H)
$(CC) -c $(FUFLAGS) -DFUNZIP -oglobalsf.obj globals.c
inflatef.obj: inflate.c inflate.h $(UNZIP_H) crypt.h
$(CC) -c $(FUFLAGS) -DFUNZIP -oinflatef.obj inflate.c
ttyiof.obj: ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
$(CC) -c $(FUFLAGS) -DFUNZIP -ottyiof.obj ttyio.c
unzipsfx.obj: unzip.c $(UNZIP_H) crypt.h version.h consts.h
$(CC) -c $(SXFLAGS) -DSFX -ounzipsfx.obj unzip.c
extractx.obj: extract.c $(UNZIP_H) crypt.h
$(CC) -c $(SXFLAGS) -DSFX -oextractx.obj extract.c
processx.obj: process.c $(UNZIP_H)
$(CC) -c $(SXFLAGS) -DSFX -oprocessx.obj process.c
msdosx.obj: msdos/msdos.c $(UNZIP_H)
$(CC) -c $(SXFLAGS) -DSFX -omsdosx.obj msdos/msdos.c