1# Makefile for Zip, ZipCloak, ZipNote and ZipSplit for 2# 32-bit Microsoft Visual C++ 3 4# To use, do "nmake -f makefile.w32" 5 6# Add "NOASM=1" to the nmake command to disable usage of assembler sources 7# if you do not have masm 6.1X. 8 9# Optional nonstandard preprocessor flags (as -DMEDIUM_MEM or -DNO_ASM) 10# should be added to the environment via "set LOCAL_ZIP=-DFOO" or added 11# to the declaration of LOC here: 12LOC = $(LOCAL_ZIP) 13 14!IFNDEF debug 15NODEBUG=1 16!ENDIF 17 18# Uncomment the following macro to use the optimized assembler 19# routines in Zip: 20!IFDEF NOASM 21ASMOBJS = 22CRCA_O = 23CFLG_ASM = -DNO_ASM 24!ELSE 25ASMOBJS = match32.obj 26CRCA_O = crci386c.obj 27CFLG_ASM = -DASM_CRC 28!ENDIF 29 30!IFDEF USEBZ2 31LOC=$(LOC) -DBZIP2_SUPPORT 32!IFNDEF debug 33EXTLIB=$(EXTLIB) libbz2.lib 34!ELSE 35EXTLIB=$(EXTLIB) libbz2.lib 36!ENDIF 37!ENDIF 38 39!IFDEF USEZLIB 40LOC=$(LOC) -DUSE_ZLIB 41ASMOBJS= 42!IFNDEF debug 43EXTLIB=$(EXTLIB) zlib.lib 44!ELSE 45EXTLIB=$(EXTLIB) zlib.lib 46!ENDIF 47!ENDIF 48 49!IFDEF USEZLIB 50USE_MSVCRT=1 51!ELSE 52!IFDEF USEBZIP2 53USE_MSVCRT=1 54!ELSE 55USE_MSVCRT=0 56!ENDIF 57!ENDIF # USEZLIB 58 59!IF $(USE_MSVCRT) == 1 60CRTLIB=-MD 61!ELSE 62!IF "$(VS80COMNTOOLS)" == "" 63CRTLIB=-ML 64!ELSE 65# no single-threaded CRT static lib, only multi-threaded in VC8 66CRTLIB=-MT 67!ENDIF 68!ENDIF 69 70!IFDEF NODEBUG 71cdebug = -O2 72cdbgsz = -O1 73!ELSE 74cdebug = -Od 75cdbgsz = $(cdebug) 76!ENDIF 77 78# ------------- 32-bit Microsoft Visual C++ ------------- 79CC=cl -nologo 80CFLAGS=-W3 $(cdebug) -DWIN32 $(CFLG_ASM) $(CRTLIB) $(LOC) 81UTILFLAGS=$(CFLAGS) -DUTIL -Fo$@ 82 83# Remove "-coff" from ASFLAGS if you do not have MASM 6.11. 84 85AS=ml -nologo 86ASFLAGS=-c -coff -Cx 87 88RC=rc 89 90# If you build 16-bit executables with MS Visual C++ v1.0/1.5 and link them 91# with the /KNOWEAS switch, you can build dual-mode MS-DOS/Win32 executables 92# by passing the -stub switch to the 32-bit linker to specify the 16-bit part. 93 94LD=link -nologo 95LDFLAGS=user32.lib advapi32.lib /OPT:NOWIN98 /INCREMENTAL:NO /PDB:$*.pdb $(EXTLIB) 96SYMS=/DEBUG:full /DEBUGTYPE:CV 97!IFDEF debug 98LDFLAGS=$(LDFLAGS) $(SYMS) 99CFLAGS=$(CFLAGS) /Zi 100!ELSE 101LDFLAGS=$(LDFLAGS) /RELEASE 102!IFDEF sym 103LDFLAGS=$(LDFLAGS) $(SYMS) 104CFLAGS=$(CFLAGS) /Zi 105!ENDIF 106!ENDIF 107 108# variables 109OBJZ = zip.obj crypt.obj ttyio.obj zipfile.obj zipup.obj fileio.obj util.obj \ 110 crc32.obj $(CRCA_O) globals.obj 111 112OBJI = deflate.obj trees.obj $(ASMOBJS) win32.obj win32zip.obj nt.obj win32i64.obj 113 114OBJU = zipfile_.obj fileio_.obj util_.obj crc32_.obj $(CRCA_O) globals.obj \ 115 win32_.obj win32i64.obj 116OBJN = zipnote.obj $(OBJU) 117OBJC = zipcloak.obj crypt_.obj ttyio.obj $(OBJU) 118OBJS = zipsplit.obj $(OBJU) 119 120ZIP_H = zip.h ziperr.h tailor.h win32/osdep.h 121 122ZIPS = zip.exe zipnote.exe zipsplit.exe zipcloak.exe 123 124zips: $(ZIPS) 125 126zip.obj: zip.c $(ZIP_H) revision.h crc32.h crypt.h ttyio.h 127 $(CC) -c $(CFLAGS) $*.c 128 129zipfile.obj: zipfile.c $(ZIP_H) crc32.h 130 $(CC) -c $(CFLAGS) $*.c 131 132zipup.obj: zipup.c $(ZIP_H) revision.h crc32.h crypt.h win32/zipup.h 133 $(CC) -c $(CFLAGS) $*.c 134 135fileio.obj: fileio.c $(ZIP_H) crc32.h 136 $(CC) -c $(CFLAGS) $*.c 137 138util.obj: util.c $(ZIP_H) 139 $(CC) -c $(CFLAGS) $*.c 140 141globals.obj: globals.c $(ZIP_H) 142 $(CC) -c $(CFLAGS) $*.c 143 144deflate.obj: deflate.c $(ZIP_H) 145 $(CC) -c $(CFLAGS) $*.c 146 147trees.obj: trees.c $(ZIP_H) 148 $(CC) -c $(CFLAGS) $*.c 149 150crc32.obj: crc32.c $(ZIP_H) crc32.h 151 $(CC) -c $(CFLAGS) $*.c 152 153crypt.obj: crypt.c $(ZIP_H) crypt.h crc32.h ttyio.h 154 $(CC) -c $(CFLAGS) $*.c 155 156ttyio.obj: ttyio.c $(ZIP_H) crypt.h ttyio.h 157 $(CC) -c $(CFLAGS) $*.c 158 159win32i64.obj: win32/win32i64.c $(ZIP_H) 160 $(CC) -c $(CFLAGS) -I. win32/win32i64.c 161 162win32zip.obj: win32/win32zip.c $(ZIP_H) win32/win32zip.h win32/nt.h 163 $(CC) -c $(CFLAGS) -I. win32/win32zip.c 164 165win32.obj: win32/win32.c $(ZIP_H) win32/win32zip.h 166 $(CC) -c $(CFLAGS) -I. win32/win32.c 167 168nt.obj: win32/nt.c $(ZIP_H) win32/nt.h 169 $(CC) -c $(CFLAGS) -I. win32/nt.c 170 171zipcloak.obj: zipcloak.c $(ZIP_H) revision.h crc32.h crypt.h ttyio.h 172 $(CC) -c $(CFLAGS) $*.c 173 174zipnote.obj: zipnote.c $(ZIP_H) revision.h 175 $(CC) -c $(CFLAGS) $*.c 176 177zipsplit.obj: zipsplit.c $(ZIP_H) revision.h 178 $(CC) -c $(CFLAGS) $*.c 179 180zipfile_.obj: zipfile.c $(ZIP_H) crc32.h 181 $(CC) -c $(UTILFLAGS) zipfile.c 182 183fileio_.obj: fileio.c $(ZIP_H) crc32.h 184 $(CC) -c $(UTILFLAGS) fileio.c 185 186util_.obj: util.c $(ZIP_H) 187 $(CC) -c $(UTILFLAGS) util.c 188 189crc32_.obj: crc32.c $(ZIP_H) crc32.h 190 $(CC) -c $(UTILFLAGS) crc32.c 191 192crypt_.obj: crypt.c $(ZIP_H) crypt.h crc32.h ttyio.h 193 $(CC) -c $(UTILFLAGS) crypt.c 194 195win32_.obj: win32/win32.c $(ZIP_H) win32/win32zip.h 196 $(CC) -c $(UTILFLAGS) -I. win32/win32.c 197 198crci386c.obj: win32/crc_i386.c $(ZIP_H) crc32.h 199 $(CC) -c $(CFLAGS) -I. -Fo$@ win32/crc_i386.c 200 201crc_i386.obj: win32/crc_i386.asm 202 $(AS) $(ASFLAGS) win32\crc_i386.asm 203 204match32.obj: win32/match32.asm 205 $(AS) $(ASFLAGS) win32\match32.asm 206 207zip.res: win32/zip.rc revision.h 208 $(RC) /l 0x409 /fo$@ /i win32 /d WIN32 win32/zip.rc 209 210zip.exe: $(OBJZ) $(OBJI) zip.res 211 $(LD) $(LDFLAGS) $(OBJZ) $(OBJI) zip.res 212 213zipcloak.exe: $(OBJC) 214 $(LD) $(LDFLAGS) $(OBJC) 215 216zipnote.exe: $(OBJN) 217 $(LD) $(LDFLAGS) $(OBJN) 218 219zipsplit.exe: $(OBJS) 220 $(LD) $(LDFLAGS) $(OBJS) 221 222clean: 223 -del *.obj 224 -del *.exe 225