# Makefile for Zip, ZipCloak, ZipNote and ZipSplit for # Borland C++ for Win32. # By E-Yen Tan. # Updated on 18 Dec 2005 by Cosmin Truta. # Last updated on 22 Jun 2008 by Christian Spieler. # To use, do "make -fwin32\makefile.bor" # Add -DNO_ASM to LOC and comment out the ASMOBJS definition below # if you do not have tasm32. # Optional nonstandard preprocessor flags (as -DMEDIUM_MEM or -DNO_ASM) # should be added to the environment via "set LOCAL_ZIP=-DFOO" or added # to the declaration of LOC here: !IF $(USEASM) LOC = $(LOCAL_ZIP) !ELSE LOC = -DNO_ASM $(LOCAL_ZIP) !ENDIF # CPU type: 3 (i386), 4 (i486), 5 (Pentium), etc. CPU_TYP = 6 # Uncomment the following macro to use the optimized assembler # routines in Zip: !IF $(USEASM) ASMOBJS = match32.obj CRCA_O = crc_i386.obj !ENDIF ASCPUFLAG = __$(CPU_TYP)86 VPATH=.;win32 CC = bcc32 CFLAGS=-w -w-aus -w-ccc -w-par -w-sig -O2 -I. -DWIN32 $(LOC) UTILFLAGS=-DUTIL $(CFLAGS) -o !ifdef USETASM16 AS=tasm !else AS=tasm32 !endif ASFLAGS=-ml -t -m2 -D$(ASCPUFLAG) $(LOC) LD=ilink32 LDFLAGS= # variables OBJZ1 = zip.obj crypt.obj ttyio.obj zipfile.obj zipup.obj fileio.obj util.obj \ crc32.obj $(CRCA_O) globals.obj OBJZ2 = deflate.obj trees.obj $(ASMOBJS) OBJZS = win32zip.obj win32.obj win32i64.obj nt.obj OBJZ = $(OBJZ1) $(OBJZ2) $(OBJZS) OBJU = zipfile_.obj fileio_.obj util_.obj crc32_.obj $(CRCA_O) globals.obj \ win32_.obj win32i64.obj OBJN = zipnote.obj $(OBJU) OBJC = zipcloak.obj crypt_.obj ttyio.obj $(OBJU) OBJS = zipsplit.obj $(OBJU) ZIP_H = zip.h ziperr.h tailor.h win32/osdep.h ZIPS = zip.exe zipnote.exe zipsplit.exe zipcloak.exe zips: $(ZIPS) zip.obj: zip.c $(ZIP_H) revision.h crc32.h crypt.h ttyio.h $(CC) -c $(CFLAGS) $*.c zipfile.obj: zipfile.c $(ZIP_H) crc32.h $(CC) -c $(CFLAGS) $*.c zipup.obj: zipup.c $(ZIP_H) revision.h crc32.h crypt.h win32/zipup.h $(CC) -c $(CFLAGS) $*.c fileio.obj: fileio.c $(ZIP_H) crc32.h $(CC) -c $(CFLAGS) $*.c util.obj: util.c $(ZIP_H) $(CC) -c $(CFLAGS) $*.c globals.obj: globals.c $(ZIP_H) $(CC) -c $(CFLAGS) $*.c deflate.obj: deflate.c $(ZIP_H) $(CC) -c $(CFLAGS) $*.c trees.obj: trees.c $(ZIP_H) $(CC) -c $(CFLAGS) $*.c crc32.obj: crc32.c $(ZIP_H) crc32.h $(CC) -c $(CFLAGS) $*.c crypt.obj: crypt.c $(ZIP_H) crypt.h crc32.h ttyio.h $(CC) -c $(CFLAGS) $*.c ttyio.obj: ttyio.c $(ZIP_H) crypt.h ttyio.h $(CC) -c $(CFLAGS) $*.c win32zip.obj: win32/win32zip.c $(ZIP_H) win32/win32zip.h win32/nt.h $(CC) -c $(CFLAGS) win32/$*.c win32.obj: win32/win32.c $(ZIP_H) win32/win32zip.h $(CC) -c $(CFLAGS) win32/$*.c win32i64.obj: win32/win32i64.c $(ZIP_H) $(CC) -c $(CFLAGS) win32/$*.c nt.obj: win32/nt.c $(ZIP_H) win32/nt.h $(CC) -c $(CFLAGS) win32/$*.c zipcloak.obj: zipcloak.c $(ZIP_H) revision.h crc32.h crypt.h ttyio.h $(CC) -c $(CFLAGS) $*.c zipnote.obj: zipnote.c $(ZIP_H) revision.h $(CC) -c $(CFLAGS) $*.c zipsplit.obj: zipsplit.c $(ZIP_H) revision.h $(CC) -c $(CFLAGS) $*.c zipfile_.obj: zipfile.c $(ZIP_H) crc32.h $(CC) -c $(UTILFLAGS)$* zipfile.c fileio_.obj: fileio.c $(ZIP_H) crc32.h $(CC) -c $(UTILFLAGS)$* fileio.c util_.obj: util.c $(ZIP_H) $(CC) -c $(UTILFLAGS)$* util.c crc32_.obj: crc32.c $(ZIP_H) crc32.h $(CC) -c $(UTILFLAGS)$* crc32.c crypt_.obj: crypt.c $(ZIP_H) crypt.h crc32.h ttyio.h $(CC) -c $(UTILFLAGS)$* crypt.c win32_.obj: win32/win32.c $(ZIP_H) win32/win32zip.h $(CC) -c $(UTILFLAGS)$* win32/win32.c !ifdef USEMASM crc_i386.obj: win32/crc_i386.asm masm -ml win32/crc_i386.asm,$@; !else !ifndef ASMOVERBCC32 crc_i386.obj: win32/crc_i386.asm $(AS) $(ASFLAGS) win32\crc_i386.asm, $@ ; !else crc_i386.obj: win32/crc_i386.c crc32.h $(CC) -c $(CFLAGS) -o$@ win32/crc_i386.c !endif !endif !ifdef USEMASM match32.obj: win32/match32.asm masm -ml win32/match32.asm,$@; !else match32.obj: win32/match32.asm $(AS) $(ASFLAGS) win32\match32.asm, $@ ; !endif zip.res: win32/zip.rc revision.h $(RC) /l 0x409 /fo$@ /i win32 /d WIN32 win32/zip.rc # Split the command line to fit in the MS-DOS 128 byte limit by using # Borland-Make specific response file syntax: zip.exe: $(OBJZ) zip.res $(LD) -Gn -x -c -ap -Tpe @&&| c0x32.obj $(OBJZ),$@,,import32.lib cw32.lib,,zip.res | zipcloak.exe: $(OBJC) $(CC) $(LDFLAGS) @&&| $(OBJC) | zipnote.exe: $(OBJN) $(CC) $(LDFLAGS) @&&| $(OBJN) | zipsplit.exe: $(OBJS) $(CC) $(LDFLAGS) @&&| $(OBJS) | clean: -del *.obj -del *.res -del *.exe -del *.tds