1# NMAKE Makefile for Windows NT/2K/XP/... and Windows 95/98/Me 2# D. Feinleib 7/92 <t-davefe@microsoft.com> 3# H. Gessau 9/93 <henryg@kullmar.kullmar.se> 4# J. Lee 8/95 (johnnyl@microsoft.com) 5# C. Spieler 03/99 6# 7# Last revised: 06 Jan 2009 8# 9# Tested with VC++ 2.0 for NT for MIPS and Alpha, Visual C++ 2.2 for Intel CPUs 10# Revision tested with VC++ 5.0, 6.0, 8.0 and 9.0 for Intel CPUs 11# 12# Option switches 13# (specify OPTFLAG as "OPTFLAG={1|0}" on the nmake command line) 14# USEBZ2DLL=1 : bzip2 support, link against externally supplied dll 15# USEBZ2STAT=1 : bzip2 support by static library created during build 16# USEBZ2=1 : alias for USEBZ2STAT=1 17# 18# USEZLIBDLL=1 : replace built-in inflate by external zlib dll 19# USEZLIBSTAT=1 : replace built-in inflate by external zlib static lib 20# USEZLIB=1 : alias for USEZLIBSTAT=1 21# 22# USE_DLLRUNTIME : link executables against C runtime dll 23# (default: executables are linked against static lib) 24# USEBZ2DLL or USEZLIBDLL imply USE_DLLRUNTIME ! 25# DLLSTANDALONE : unzip32.dll is linked against static MT runtime lib 26# (default: unzip32.dll linked against C runtime dll) 27# 28# USE_UTF8 : =0 no unicode names support 29# =1 force recognition of UTF8 extra fields and 30# "UTF8 name" attrib (default) 31# 32# USEASM : use assembler code for crc32 function (default) 33# NOASM : use C implementation for crc32 function 34# USEMASM : use MS macro assembler (MASM) to assemble crc32 code 35# USEML : use MS macro assembler (ML driver) to create crc32 36# (default: use C inline assembler code for crc32) 37# 38# NOCRC_OPT=1 : disable "unfolding CRC tables" optimization 39# 40# USEIZTIMEZONE : =0 (default) timezone setup by built-in C RTL 41# =1 apply InfoZip replacement code for timezone setup 42# (recognizes extended syntax when timezone setup 43# is overridden by environment variable) 44 45# Nmake macros for building Win32 applications 46# To build with debug info use 'nmake debug=1' 47!IFNDEF debug 48NODEBUG=1 49!ENDIF 50 51!ifdef NOASM 52APPLY_ASMCRC=0 53!else 54!ifdef USEASM 55APPLY_ASMCRC=1 56!endif 57!endif 58 59# Options to decide whether using zlib as decompression library. 60# Specify USEZLIBDLL or USEZLIBSTAT to replace UnZip's built-in inflation code 61# by the inflate service of the zlib library. 62# (The option USEZLIB is currently set as a synonym for USEZLIBSTAT.) 63!if defined(USEZLIBSTAT) || defined(USEZLIBDLL) 64USEZLIB=1 65!endif 66 67!ifdef USEZLIB 68!if defined(USEZLIBSTAT) && defined(USEZLIBDLL) 69!ERROR Conflicting options USEZLIBSTAT and USEZLIBDLL requested! 70!endif 71# Set static zlib linkage as default in case nothing is specified. 72!if !defined(USEZLIBSTAT) && !defined(USEZLIBDLL) 73USEZLIBSTAT=1 74!endif 75!undef USEASM 76APPLY_ASMCRC=0 77NOCRC_OPT=1 78ZLIBLIB=zlib.lib 79ZLIBLIBDLL=zdll.lib 80!else # !USEZLIB 81ZLIBLIB= 82ZLIBLIBDLL= 83!endif # ?USEZLIB 84 85 86# Options to include optional support for bzip2 decompression 87!if defined(USEBZ2STAT) || defined(USEBZ2DLL) 88USEBZ2=1 89!endif 90 91IZ_BZIP2 = bzip2 92# Subfolder containing bz2 objects/lib for UnZip program target(s). 93OBEXE = obexe 94# Subfolder containing bz2 objects/lib for UnZip DLL target(s). 95OBDLL = obdll 96!ifdef USEBZ2 97!if defined(USEBZ2STAT) && defined(USEBZ2DLL) 98!ERROR Conflicting options USEBZ2STAT and USEBZ2DLL requested! 99!endif 100INC_BZ2LIB=-I$(IZ_BZIP2) 101# Set static bzip2 linkage as default in case nothing is specified. 102!if !defined(USEBZ2STAT) && !defined(USEBZ2DLL) 103USEBZ2STAT=1 104!endif 105!IFNDEF debug 106!ifdef USEBZ2STAT 107BZIPLIBEXE=$(IZ_BZIP2)/$(OBEXE)/bz2.lib 108BZIPLIBDLL=$(IZ_BZIP2)/$(OBDLL)/bz2.lib 109!else 110BZIPLIBEXE=bz2.lib 111BZIPLIBDLL=bz2.lib 112!endif 113!ELSE 114BZIPLIBEXE=bz2d.lib 115BZIPLIBDLL=bz2d.lib 116!ENDIF 117!else # !USEBZ2 118INC_BZ2LIB= 119BZIPLIBEXE= 120BZIPLIBDLL= 121!endif # ?USEBZ2 122 123!ifndef APPLY_ASMCRC 124#default ASM CRC code (inline asm in C source) for now... 125APPLY_ASMCRC=1 126!endif 127 128!ifndef USE_IZTIMEZONE 129#default: do not use the IZ timezone replacement 130USE_IZTIMEZONE=0 131!endif 132 133!ifndef USE_UTF8 134#default for now: include support for UTF8 paths 135USE_UTF8=1 136!endif 137 138!IF "$(CPU)" == "" && "$(PROCESSOR_ARCHITECTURE)" == "x86" 139CPU = i386 140!ENDIF 141!IF "$(CPU)" == "" && "$(PROCESSOR_ARCHITECTURE)" == "MIPS" 142CPU = $(PROCESSOR_ARCHITECTURE) 143!ENDIF 144!IF "$(CPU)" == "" && "$(PROCESSOR_ARCHITECTURE)" == "ALPHA" 145CPU = $(PROCESSOR_ARCHITECTURE) 146!ENDIF 147!IF "$(CPU)" == "" && "$(PROCESSOR_ARCHITECTURE)" == "PPC" 148CPU = $(PROCESSOR_ARCHITECTURE) 149!ENDIF 150!IF "$(CPU)" == "" 151CPU = i386 152!ENDIF 153 154# special subdirectory for the static library binaries, to separate them 155# from other binaries (including dll import library file) 156OBDIR = ow32lib 157OB = $(OBDIR)/ 158 159# object files 160OBJU1 = unzip.obj crc32.obj $(CRCA_O) crypt.obj envargs.obj explode.obj 161OBJU2 = extract.obj fileio.obj globals.obj inflate.obj list.obj match.obj 162OBJU3 = process.obj ttyio.obj ubz2err.obj unreduce.obj unshrink.obj zipinfo.obj 163OBJUS = win32.obj win32i64.obj nt.obj $(TIMEZONE_OBJU) 164OBJU = $(OBJU1) $(OBJU2) $(OBJU3) $(OBJUS) 165OBJX1 = unzipsfx.obj crc32_.obj $(CRCA_OX) crypt_.obj 166OBJX2 = extract_.obj fileio_.obj globals_.obj inflate_.obj 167OBJX3 = match_.obj process_.obj ttyio_.obj ubz2err_.obj 168OBJXS = win32_.obj win32i64_.obj nt_.obj $(TIMEZONE_OBJX) 169OBJX = $(OBJX1) $(OBJX2) $(OBJX3) $(OBJXS) 170OBJF1 = funzip.obj crc32f.obj $(CRCA_OF) cryptf.obj globalsf.obj 171OBJF2 = inflatef.obj ttyiof.obj 172OBJFS = win32f.obj win32i64f.obj 173OBJF = $(OBJF1) $(OBJF2) $(OBJFS) 174OBJD1 = api.obj crc32l.obj $(CRCA_OL) cryptl.obj explodel.obj 175OBJD2 = extractl.obj fileiol.obj globalsl.obj inflatel.obj 176OBJD3 = listl.obj matchl.obj processl.obj 177OBJD4 = ubz2errl.obj unreducl.obj unshrnkl.obj zipinfol.obj 178OBJDS = win32l.obj win32i64l.obj ntl.obj windll.obj $(TIMEZONE_OBJD) 179OBJD = $(OBJD1) $(OBJD2) $(OBJD3) $(OBJD4) $(OBJDS) 180OBLX1 = apig.obj crc32g.obj $(CRCA_OG) cryptg.obj 181OBLX2 = extractg.obj fileiog.obj globalsg.obj inflateg.obj 182OBLX3 = matchg.obj processg.obj 183OBLXS = win32g.obj win32i64g.obj ntg.obj windllg.obj $(TIMEZONE_OBLX) 184OBLX = $(OBLX1) $(OBLX2) $(OBLX3) $(OBLXS) 185OBGX = sfxwiz.obj 186OBJB1 = $(OB)apib.obj $(OB)crc32b.obj $(CRCA_OB) $(OB)cryptb.obj 187OBJB2 = $(OB)explodeb.obj $(OB)extractb.obj $(OB)fileiob.obj $(OB)globalsb.obj 188OBJB3 = $(OB)inflateb.obj $(OB)listb.obj $(OB)matchb.obj $(OB)processb.obj 189OBJB4 = $(OB)ubz2errb.obj $(OB)unreducb.obj $(OB)unshrnkb.obj $(OB)zipinfob.obj 190OBJBS = $(OB)win32b.obj $(OB)win32i64b.obj $(OB)ntb.obj $(OB)windllb.obj $(TIMEZONE_OBJB) 191OBJB = $(OBJB1) $(OBJB2) $(OBJB3) $(OBJB4) $(OBJBS) 192 193UNZIP_H = unzip.h unzpriv.h globals.h win32/w32cfg.h 194WINDLL_H = windll/windll.h windll/decs.h windll/structs.h 195WINDLL_DEF = windll/windll32.def 196WINDLL_IMP_H = windll/decs.h windll/structs.h 197 198!if $(APPLY_ASMCRC) != 0 199CFVARS_ASM = -DASM_CRC 200!else 201CFVARS_ASM = -DNO_ASM 202!endif 203 204!if $(USE_IZTIMEZONE) != 0 205LOCAL_UNZIP = -DW32_USE_IZ_TIMEZONE $(LOCAL_UNZIP) 206!endif 207 208!if $(USE_UTF8) != 0 209LOCAL_UNZIP = -DUNICODE_SUPPORT $(LOCAL_UNZIP) 210!else 211LOCAL_UNZIP = -DNO_UNICODE_SUPPORT $(LOCAL_UNZIP) 212!endif 213 214!ifndef NOCRC_OPT 215LOCAL_UNZIP = -DIZ_CRCOPTIM_UNFOLDTBL $(LOCAL_UNZIP) 216!endif 217 218!ifdef USEZLIB 219LOCAL_UNZIP = -DUSE_ZLIB $(LOCAL_UNZIP) 220!endif 221!ifdef USEBZ2 222LOCAL_UNZIP = -DUSE_BZIP2 $(LOCAL_UNZIP) 223!endif 224 225#CF_LOC = -nologo -J -D_MBCS $(CFVARS_ASM) -DREENTRANT 226CF_LOC = -nologo -J -D_MBCS $(CFVARS_ASM) $(LOCAL_UNZIP) 227 228!if $(APPLY_ASMCRC) != 0 229CRCA_O = crc_i386.obj 230CRCA_OX = $(CRCA_O) 231CRCA_OF = $(CRCA_O) 232CRCA_OL = crci386l.obj 233CRCA_OG = crci386g.obj 234CRCA_OB = $(OB)crci386b.obj 235!else 236CRCA_O = 237CRCA_OX = 238CRCA_OF = 239CRCA_OL = 240CRCA_OG = 241CRCA_OB = 242!endif 243 244!if $(USE_IZTIMEZONE) != 0 245TIMEZONE_OBJU = timezone.obj 246TIMEZONE_OBJX = timezon_.obj 247TIMEZONE_OBJD = timezonl.obj 248TIMEZONE_OBLX = timezolx.obj 249TIMEZONE_OBJB = $(OB)timezonb.obj 250!else 251TIMEZONE_OBJU = 252TIMEZONE_OBJX = 253TIMEZONE_OBJD = 254TIMEZONE_OBLX = 255TIMEZONE_OBJB = 256!endif 257 258# binary declarations common to all platforms 259cc = cl 260rc = rc 261link = link 262implib = lib 263hc = hcrtf -xn 264 265# declarations common to all compiler options 266cflags = -c -W3 -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo 267!IF "$(CPU)" == "i386" 268cflags = $(cflags) -D_X86_=1 269!ELSE 270!IF "$(CPU)" == "ALPHA" 271cflags = $(cflags) -D_ALPHA_=1 272!ENDIF 273!ENDIF 274 275# for Windows applications that use the C Run-Time libraries 276cvars = -DWIN32 -D_WIN32 277cvarsmt = $(cvars) -MT 278cvarsdll = $(cvars) -MD 279 280## The CRT library, depending on Compiler version and target configuration. 281## This Makefile version has been changed to rely on the 'default library' 282## notations in the compiled object files, to work around differences between 283## MS Visual C++ releases concerning libraries support. 284#libc = libc.lib oldnames.lib 285#libcmt = libcmt.lib oldnames.lib 286#libcdll = msvcrt.lib oldnames.lib 287 288# optional profiling and tuning libraries 289!IFDEF PROFILE 290optlibs = cap.lib 291!ELSE 292!IFDEF TUNE 293optlibs = wst.lib 294!ELSE 295optlibs = 296!ENDIF 297!ENDIF 298 299# USER32.LIB is needed for OemToChar and related routines 300baselibs = kernel32.lib $(optlibs) advapi32.lib user32.lib 301winlibs = $(baselibs) gdi32.lib comdlg32.lib winspool.lib 302conlibs = $(baselibs) 303conlibsmt = $(baselibs) 304conlibsdll = $(baselibs) 305guilibs = $(winlibs) 306guilibsdll = $(winlibs) 307 308# Some optimization (if not debugging) 309!IFDEF NODEBUG 310cdebug = -O2 311cdbgsz = -O1 312!ELSE 313!IFDEF PROFILE 314cdebug = -Gh -Zd -Ox 315!ELSE 316!IFDEF TUNE 317cdebug = -Gh -Zd -Ox 318!ELSE 319cdebug = -Z7 -Od 320!ENDIF 321!ENDIF 322cdbgsz = $(cdebug) 323!ENDIF 324 325# declarations common to all linker options 326lflags = /INCREMENTAL:NO /PDB:NONE /NOLOGO 327 328# for Windows applications that use the C Run-Time libraries 329conlflags = $(lflags) /subsystem:console 330guilflags = $(lflags) /subsystem:windows 331dlllflags = $(lflags) /DLL 332 333# ------------------------------------------------------------------------- 334# Target Module Dependent Link Debug Flags - must be specified after $(link) 335# 336# These switches allow the inclusion of the necessary symbolic information 337# for source level debugging with WinDebug, profiling and/or performance 338# tuning. 339# 340# Note: Debug switches are on by default. 341# ------------------------------------------------------------------------- 342!IFDEF NODEBUG 343ldebug = /RELEASE 344!ELSE 345!IFDEF PROFILE 346ldebug = -debug:mapped,partial -debugtype:coff 347!ELSE 348!IFDEF TUNE 349ldebug = -debug:mapped,partial -debugtype:coff 350!ELSE 351ldebug = -debug:full -debugtype:cv 352!ENDIF 353!ENDIF 354!ENDIF 355 356!ifdef PROFILEINFO 357ldebug = $(ldebug) /PROFILE 358!endif 359 360!ifdef SYM 361ldebug = $(ldebug) /DEBUG:FULL /DEBUGTYPE:CV 362cdebug = $(cdebug) -Zi 363cdbgsz = $(cdbgsz) -Zi 364!endif 365 366# When using zlib and/or bzip2 external decompression code DLLs, we want 367# to link against the dll version of the C runtime library. 368!IF defined(USEZLIBDLL) || defined(USEBZ2DLL) || defined(USE_DLLRUNTIME) 369LINK_CRTDLL=1 370!UNDEF DLLSTANDALONE 371!ELSE 372LINK_CRTDLL=0 373!ENDIF 374 375!IF $(LINK_CRTDLL) == 1 376# Using zlib DLL as decompression core (and/or bzip2 decompression dll) 377# implies linking all executables against the DLL version of the C RTL. 378cvars_iz = $(cvarsdll) $(CF_LOC) 379cvars_izdll = $(cvarsdll) $(CF_LOC) 380conlibs_iz = $(conlibsdll) $(ZLIBLIBDLL) $(BZIPLIBEXE) 381conlibs_izdll = $(conlibsdll) $(ZLIBLIBDLL) $(BZIPLIBDLL) 382guilibs_iz = $(guilibsdll) $(ZLIBLIBDLL) $(BZIPLIBEXE) 383!ELSE 384# With the default setup (using Info-ZIP's own inflate code and/or static 385# external decompression code), the executables are linked against the 386# single-thread static C-RTL library to get self-contained programs. 387cvars_iz = $(cvars) $(CF_LOC) 388conlibs_iz = $(conlibs) $(ZLIBLIB) $(BZIPLIBEXE) 389guilibs_iz = $(guilibs) $(ZLIBLIB) $(BZIPLIBEXE) 390 391!IFDEF DLLSTANDALONE 392# The standalone variant of unzip32.dll is linked against the 393# multithread-safe static C runtime library. 394cvars_izdll = $(cvarsmt) $(CF_LOC) 395conlibs_izdll = $(conlibsmt) $(ZLIBLIB) $(BZIPLIBDLL) 396!ELSE 397# The (normal) variant of unzip32.dll is linked against the import library 398# of the multithread-safe C runtime dll. 399# -> smaller dll size; efficient use of shared resources, 400# but requires the C RTL DLL msvcrt.dll to be installed at runtime 401cvars_izdll = $(cvarsdll) $(CF_LOC) 402conlibs_izdll = $(conlibsdll) $(ZLIBLIBDLL) $(BZIPLIBDLL) 403!ENDIF 404!ENDIF # ?(LINK_CRTDLL == 1) 405 406CFLAGS_UN = $(cdebug) $(cflags) $(INC_BZ2LIB) $(cvars_iz) 407CFLAGS_SX = $(cdbgsz) $(cflags) $(INC_BZ2LIB) $(cvars_iz) -DSFX 408CFLAGS_FU = $(cdebug) $(cflags) $(cvars_iz) -DFUNZIP 409CFLAGS_DL = $(cdebug) $(cflags) $(INC_BZ2LIB) $(cvars_izdll) -DWINDLL -DDLL 410CFLAGS_DX = $(cdebug) $(cflags) $(INC_BZ2LIB) $(cvars_izdll) 411CFLAGS_SL = $(cdbgsz) $(cflags) $(INC_BZ2LIB) $(cvars_iz) -DWINDLL -DDLL -DUNZIPLIB -DSFX 412CFLAGS_GX = $(cdbgsz) $(cflags) $(cvars_iz) -DSFX 413CFLAGS_LB = $(cdebug) $(cflags) $(INC_BZ2LIB) $(cvars_iz) -DWINDLL -DDLL -DUNZIPLIB 414 415# You may define VC6LINK if your linker recognizes "-opt:nowin98" alignment 416# qualifier. (VC6 or newer). This option reduces the executable size of the 417# SFX stubs (Instead, you might apply the free executable compressor "upx" 418# which is far more efficient in reducing the stub's file size.) 419!IFDEF VC6LINK 420LINKOPT_SIZE = -opt:nowin98 421!ENDIF 422 423# How to compile sources 424.c.obj: 425 $(cc) $(CFLAGS_UN) -Fo$@ $< 426 427# How to link 428.obj.exe: 429 $(link) $(ldebug) $(conlflags) $(conlibs_iz) $** -out:$@ 430 431 432# Default target is all command-line executables 433unzips: unzip.exe funzip.exe unzipsfx.exe 434guisfx: SFXWiz32.exe 435dll: unzip32.dll 436dllsample: uzexampl.exe 437lib: $(OBDIR) $(OB)unzip32.lib 438all: unzips guisfx dll dllsample lib 439 440 441unzip.exe: $(OBJU) $(BZIPLIBEXE) winapp.res 442 $(link) $(ldebug) $(conlflags) $(conlibs_iz) $** -out:$@ 443unzipsfx.exe: $(OBJX) $(BZIPLIBEXE) 444 $(link) $(ldebug) $(conlflags) $(conlibs_iz) $** $(LINKOPT_SIZE) -out:$@ 445funzip.exe: $(OBJF) 446unzip32.dll: $(OBJD) $(BZIPLIBDLL) windll.res $(WINDLL_DEF) 447 $(link) $(ldebug) $(dlllflags) $(conlibs_izdll) -def:$(WINDLL_DEF) \ 448 $(OBJD) $(BZIPLIBDLL) windll.res -out:$@ 449unzsfx32.lib: $(OBLX) 450 $(link) -lib $** -out:$@ 451SFXWiz32.exe: $(OBGX) sfxwiz.res unzsfx32.lib $(BZIPLIBEXE) 452 $(link) $(ldebug) $(guilflags) $(guilibs_iz) \ 453 $(OBGX) sfxwiz.res unzsfx32.lib $(LINKOPT_SIZE) -out:$@ 454uzexampl.exe: uzexampl.obj 455 $(link) $(ldebug) $(conlflags) $(conlibs) version.lib $** -out:$@ 456$(OB)unzip32.lib: $(OBJB) 457 $(link) -lib $** -out:$@ 458 459$(IZ_BZIP2)/$(OBEXE)/bz2.lib: 460 $(MAKE) -f $(IZ_BZIP2)/makbz2iz.msc \ 461 CFLSYS="$(cdebug) $(cflags) $(cvars_iz)" \ 462 BZROOTDIR=$(IZ_BZIP2) BZOBDIR=$(IZ_BZIP2)\$(OBEXE) 463 464$(IZ_BZIP2)/$(OBDLL)/bz2.lib: 465 $(MAKE) -f $(IZ_BZIP2)/makbz2iz.msc \ 466 CFLSYS="$(cdebug) $(cflags) $(cvars_izdll)" \ 467 BZROOTDIR=$(IZ_BZIP2) BZOBDIR=$(IZ_BZIP2)\$(OBDLL) 468 469crc32.obj: crc32.c $(UNZIP_H) zip.h crc32.h 470crypt.obj: crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h 471envargs.obj: envargs.c $(UNZIP_H) 472explode.obj: explode.c $(UNZIP_H) 473extract.obj: extract.c $(UNZIP_H) crc32.h crypt.h 474fileio.obj: fileio.c $(UNZIP_H) crc32.h crypt.h ttyio.h ebcdic.h 475funzip.obj: funzip.c $(UNZIP_H) crc32.h crypt.h ttyio.h 476globals.obj: globals.c $(UNZIP_H) 477inflate.obj: inflate.c inflate.h $(UNZIP_H) 478list.obj: list.c $(UNZIP_H) 479match.obj: match.c $(UNZIP_H) 480process.obj: process.c $(UNZIP_H) crc32.h 481timezone.obj: timezone.c $(UNZIP_H) zip.h timezone.h 482ttyio.obj: ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h 483ubz2err.obj: ubz2err.c $(UNZIP_H) 484unreduce.obj: unreduce.c $(UNZIP_H) 485unshrink.obj: unshrink.c $(UNZIP_H) 486unzip.obj: unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h 487zipinfo.obj: zipinfo.c $(UNZIP_H) 488 489win32.obj: win32/win32.c $(UNZIP_H) win32/nt.h 490 $(cc) $(CFLAGS_UN) -I. win32/win32.c -Fo$@ 491 492win32i64.obj: win32/win32i64.c $(UNZIP_H) 493 $(cc) $(CFLAGS_UN) -I. win32/win32i64.c -Fo$@ 494 495nt.obj: win32/nt.c $(UNZIP_H) win32/nt.h 496 $(cc) $(CFLAGS_UN) -I. win32/nt.c -Fo$@ 497 498!ifdef USEMASM 499crc_i386.obj: win32/crc_i386.asm 500 masm -ml win32/crc_i386.asm,$@; 501!else 502!ifdef USEML 503crc_i386.obj: win32/crc_i386.asm 504 ml -c -Cp -coff -Fo$@ win32/crc_i386.asm 505!else 506crc_i386.obj: win32/crc_i386.c 507 $(cc) $(CFLAGS_UN) -I. win32/crc_i386.c -Fo$@ 508!endif 509!endif 510 511# UnZipSFX compilation section 512crc32_.obj: crc32.c $(UNZIP_H) zip.h crc32.h 513 $(cc) $(CFLAGS_SX) crc32.c -Fo$@ 514crypt_.obj: crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h 515 $(cc) $(CFLAGS_SX) crypt.c -Fo$@ 516extract_.obj: extract.c $(UNZIP_H) crc32.h crypt.h 517 $(cc) $(CFLAGS_SX) extract.c -Fo$@ 518fileio_.obj: fileio.c $(UNZIP_H) crc32.h crypt.h ttyio.h ebcdic.h 519 $(cc) $(CFLAGS_SX) fileio.c -Fo$@ 520globals_.obj: globals.c $(UNZIP_H) 521 $(cc) $(CFLAGS_SX) globals.c -Fo$@ 522inflate_.obj: inflate.c inflate.h $(UNZIP_H) crypt.h 523 $(cc) $(CFLAGS_SX) inflate.c -Fo$@ 524match_.obj: match.c $(UNZIP_H) 525 $(cc) $(CFLAGS_SX) match.c -Fo$@ 526process_.obj: process.c $(UNZIP_H) crc32.h 527 $(cc) $(CFLAGS_SX) process.c -Fo$@ 528timezon_.obj: timezone.c $(UNZIP_H) zip.h timezone.h 529 $(cc) $(CFLAGS_SX) timezone.c -Fo$@ 530ttyio_.obj: ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h 531 $(cc) $(CFLAGS_SX) ttyio.c -Fo$@ 532ubz2err_.obj: ubz2err.c $(UNZIP_H) 533 $(cc) $(CFLAGS_SX) ubz2err.c -Fo$@ 534unzipsfx.obj: unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h 535 $(cc) $(CFLAGS_SX) unzip.c -Fo$@ 536 537win32_.obj: win32/win32.c $(UNZIP_H) win32/nt.h 538 $(cc) $(CFLAGS_SX) -I. win32/win32.c -Fo$@ 539 540win32i64_.obj: win32/win32i64.c $(UNZIP_H) 541 $(cc) $(CFLAGS_SX) -I. win32/win32i64.c -Fo$@ 542 543nt_.obj: win32/nt.c $(UNZIP_H) win32/nt.h 544 $(cc) $(CFLAGS_SX) -I. win32/nt.c -Fo$@ 545 546# fUnZip compilation section 547crc32f.obj: crc32.c $(UNZIP_H) zip.h crc32.h 548 $(cc) $(CFLAGS_FU) crc32.c -Fo$@ 549cryptf.obj: crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h 550 $(cc) $(CFLAGS_FU) crypt.c -Fo$@ 551globalsf.obj: globals.c $(UNZIP_H) 552 $(cc) $(CFLAGS_FU) globals.c -Fo$@ 553inflatef.obj: inflate.c inflate.h $(UNZIP_H) crypt.h 554 $(cc) $(CFLAGS_FU) inflate.c -Fo$@ 555ttyiof.obj: ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h 556 $(cc) $(CFLAGS_FU) ttyio.c -Fo$@ 557 558win32f.obj: win32/win32.c $(UNZIP_H) win32/nt.h 559 $(cc) $(CFLAGS_FU) -I. win32/win32.c -Fo$@ 560 561win32i64f.obj: win32/win32i64.c $(UNZIP_H) 562 $(cc) $(CFLAGS_FU) -I. win32/win32i64.c -Fo$@ 563 564# DLL compilation section 565api.obj: api.c $(UNZIP_H) $(WINDLL_H) unzvers.h 566 $(cc) $(CFLAGS_DL) api.c -Fo$@ 567crc32l.obj: crc32.c $(UNZIP_H) zip.h crc32.h 568 $(cc) $(CFLAGS_DL) crc32.c -Fo$@ 569cryptl.obj: crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h 570 $(cc) $(CFLAGS_DL) crypt.c -Fo$@ 571explodel.obj: explode.c $(UNZIP_H) 572 $(cc) $(CFLAGS_DL) explode.c -Fo$@ 573extractl.obj: extract.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h 574 $(cc) $(CFLAGS_DL) extract.c -Fo$@ 575fileiol.obj: fileio.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h ttyio.h ebcdic.h 576 $(cc) $(CFLAGS_DL) fileio.c -Fo$@ 577globalsl.obj: globals.c $(UNZIP_H) 578 $(cc) $(CFLAGS_DL) globals.c -Fo$@ 579inflatel.obj: inflate.c inflate.h $(UNZIP_H) 580 $(cc) $(CFLAGS_DL) inflate.c -Fo$@ 581listl.obj: list.c $(UNZIP_H) $(WINDLL_H) 582 $(cc) $(CFLAGS_DL) list.c -Fo$@ 583matchl.obj: match.c $(UNZIP_H) 584 $(cc) $(CFLAGS_DL) match.c -Fo$@ 585processl.obj: process.c $(UNZIP_H) $(WINDLL_H) crc32.h 586 $(cc) $(CFLAGS_DL) process.c -Fo$@ 587timezonl.obj: timezone.c $(UNZIP_H) zip.h timezone.h 588 $(cc) $(CFLAGS_DL) timezone.c -Fo$@ 589ubz2errl.obj: ubz2err.c $(UNZIP_H) 590 $(cc) $(CFLAGS_DL) ubz2err.c -Fo$@ 591unreducl.obj: unreduce.c $(UNZIP_H) 592 $(cc) $(CFLAGS_DL) unreduce.c -Fo$@ 593unshrnkl.obj: unshrink.c $(UNZIP_H) 594 $(cc) $(CFLAGS_DL) unshrink.c -Fo$@ 595zipinfol.obj: zipinfo.c $(UNZIP_H) 596 $(cc) $(CFLAGS_DL) zipinfo.c -Fo$@ 597 598win32l.obj: win32/win32.c $(UNZIP_H) win32/nt.h 599 $(cc) $(CFLAGS_DL) -I. win32/win32.c -Fo$@ 600 601win32i64l.obj: win32/win32i64.c $(UNZIP_H) 602 $(cc) $(CFLAGS_DL) -I. win32/win32i64.c -Fo$@ 603 604ntl.obj: win32/nt.c $(UNZIP_H) win32/nt.h 605 $(cc) $(CFLAGS_DL) -I. win32/nt.c -Fo$@ 606 607windll.obj: windll/windll.c $(UNZIP_H) $(WINDLL_H) crypt.h unzvers.h consts.h 608 $(cc) $(CFLAGS_DL) -I. windll/windll.c -Fo$@ 609 610!ifdef USEMASM 611crci386l.obj: win32/crc_i386.asm 612 masm -ml win32/crc_i386.asm,$@; 613!else 614!ifdef USEML 615crci386l.obj: win32/crc_i386.asm 616 ml -c -Cp -coff -Fo$@ win32/crc_i386.asm 617!else 618crci386l.obj: win32/crc_i386.c 619 $(cc) $(CFLAGS_DL) -I. win32/crc_i386.c -Fo$@ 620!endif 621!endif 622 623winapp.res: win32/winapp.rc unzvers.h 624 $(rc) /l 0x409 /fo$@ /i win32 /d WIN32 win32/winapp.rc 625 626windll.res: windll/windll.rc unzvers.h 627 $(rc) /l 0x409 /fo$@ /i windll /d WIN32 windll/windll.rc 628 629uzexampl.obj: windll/uzexampl.c windll/uzexampl.h 630 $(cc) $(CFLAGS_DX) -I. windll/uzexampl.c -Fo$@ 631 632# SFX Lib compilation section 633apig.obj: api.c $(UNZIP_H) $(WINDLL_H) unzvers.h 634 $(cc) $(CFLAGS_SL) api.c -Fo$@ 635crc32g.obj: crc32.c $(UNZIP_H) zip.h crc32.h 636 $(cc) $(CFLAGS_SL) crc32.c -Fo$@ 637cryptg.obj: crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h 638 $(cc) $(CFLAGS_SL) crypt.c -Fo$@ 639extractg.obj: extract.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h 640 $(cc) $(CFLAGS_SL) extract.c -Fo$@ 641fileiog.obj: fileio.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h ttyio.h ebcdic.h 642 $(cc) $(CFLAGS_SL) fileio.c -Fo$@ 643globalsg.obj: globals.c $(UNZIP_H) 644 $(cc) $(CFLAGS_SL) globals.c -Fo$@ 645inflateg.obj: inflate.c inflate.h $(UNZIP_H) 646 $(cc) $(CFLAGS_SL) inflate.c -Fo$@ 647matchg.obj: match.c $(UNZIP_H) 648 $(cc) $(CFLAGS_SL) match.c -Fo$@ 649processg.obj: process.c $(UNZIP_H) $(WINDLL_H) crc32.h 650 $(cc) $(CFLAGS_SL) process.c -Fo$@ 651timezong.obj: timezone.c $(UNZIP_H) zip.h timezone.h 652 $(cc) $(CFLAGS_SL) timezone.c -Fo$@ 653ubz2errg.obj: ubz2err.c $(UNZIP_H) 654 $(cc) $(CFLAGS_SL) ubz2err.c -Fo$@ 655 656win32g.obj: win32/win32.c $(UNZIP_H) win32/nt.h 657 $(cc) $(CFLAGS_SL) -I. win32/win32.c -Fo$@ 658 659win32i64g.obj: win32/win32i64.c $(UNZIP_H) 660 $(cc) $(CFLAGS_SL) -I. win32/win32i64.c -Fo$@ 661 662ntg.obj: win32/nt.c $(UNZIP_H) win32/nt.h 663 $(cc) $(CFLAGS_SL) -I. win32/nt.c -Fo$@ 664 665windllg.obj: windll/windll.c $(UNZIP_H) $(WINDLL_H) crypt.h unzvers.h consts.h 666 $(cc) $(CFLAGS_SL) -I. windll/windll.c -Fo$@ 667 668!ifdef USEMASM 669crci386g.obj: win32/crc_i386.asm 670 masm -ml win32/crc_i386.asm,$@; 671!else 672!ifdef USEML 673crci386g.obj: win32/crc_i386.asm 674 ml -c -Cp -coff -Fo$@ win32/crc_i386.asm 675!else 676crci386g.obj: win32/crc_i386.c 677 $(cc) $(CFLAGS_SL) -I. win32/crc_i386.c -Fo$@ 678!endif 679!endif 680 681sfxwiz.obj: windll/guisfx/sfxwiz.c windll/guisfx/dialog.h $(WINDLL_IMP_H) 682 $(cc) $(CFLAGS_GX) windll/guisfx/sfxwiz.c -Fo$@ 683 684sfxwiz.res: windll/guisfx/sfxwiz.rc 685 $(rc) /l 0x409 /fo$@ /i windll/guisfx /d WIN32 windll/guisfx/sfxwiz.rc 686 687# static LIB compilation section 688$(OB)apib.obj: api.c $(UNZIP_H) $(WINDLL_H) unzvers.h 689 $(cc) $(CFLAGS_LB) api.c -Fo$@ 690$(OB)crc32b.obj: crc32.c $(UNZIP_H) zip.h crc32.h 691 $(cc) $(CFLAGS_LB) crc32.c -Fo$@ 692$(OB)cryptb.obj: crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h 693 $(cc) $(CFLAGS_LB) crypt.c -Fo$@ 694$(OB)explodeb.obj: explode.c $(UNZIP_H) 695 $(cc) $(CFLAGS_LB) explode.c -Fo$@ 696$(OB)extractb.obj: extract.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h 697 $(cc) $(CFLAGS_LB) extract.c -Fo$@ 698$(OB)fileiob.obj: fileio.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h ttyio.h ebcdic.h 699 $(cc) $(CFLAGS_LB) fileio.c -Fo$@ 700$(OB)globalsb.obj: globals.c $(UNZIP_H) 701 $(cc) $(CFLAGS_LB) globals.c -Fo$@ 702$(OB)inflateb.obj: inflate.c inflate.h $(UNZIP_H) 703 $(cc) $(CFLAGS_LB) inflate.c -Fo$@ 704$(OB)listb.obj: list.c $(UNZIP_H) $(WINDLL_H) 705 $(cc) $(CFLAGS_LB) list.c -Fo$@ 706$(OB)matchb.obj: match.c $(UNZIP_H) 707 $(cc) $(CFLAGS_LB) match.c -Fo$@ 708$(OB)processb.obj: process.c $(UNZIP_H) $(WINDLL_H) crc32.h 709 $(cc) $(CFLAGS_LB) process.c -Fo$@ 710$(OB)timezonb.obj: timezone.c $(UNZIP_H) zip.h timezone.h 711 $(cc) $(CFLAGS_LB) timezone.c -Fo$@ 712$(OB)ubz2errb.obj: ubz2err.c $(UNZIP_H) 713 $(cc) $(CFLAGS_LB) ubz2err.c -Fo$@ 714$(OB)unreducb.obj: unreduce.c $(UNZIP_H) 715 $(cc) $(CFLAGS_LB) unreduce.c -Fo$@ 716$(OB)unshrnkb.obj: unshrink.c $(UNZIP_H) 717 $(cc) $(CFLAGS_LB) unshrink.c -Fo$@ 718$(OB)zipinfob.obj: zipinfo.c $(UNZIP_H) 719 $(cc) $(CFLAGS_LB) zipinfo.c -Fo$@ 720 721$(OB)win32b.obj: win32/win32.c $(UNZIP_H) win32/nt.h 722 $(cc) $(CFLAGS_LB) -I. win32/win32.c -Fo$@ 723 724$(OB)win32i64b.obj: win32/win32i64.c $(UNZIP_H) 725 $(cc) $(CFLAGS_LB) -I. win32/win32i64.c -Fo$@ 726 727$(OB)ntb.obj: win32/nt.c $(UNZIP_H) win32/nt.h 728 $(cc) $(CFLAGS_LB) -I. win32/nt.c -Fo$@ 729 730$(OB)windllb.obj: windll/windll.c $(UNZIP_H) $(WINDLL_H) crypt.h unzvers.h consts.h 731 $(cc) $(CFLAGS_LB) -I. windll/windll.c -Fo$@ 732 733!ifdef USEMASM 734$(OB)crci386b.obj: win32/crc_i386.asm 735 masm -ml win32/crc_i386.asm,$@; 736!else 737!ifdef USEML 738$(OB)crci386b.obj: win32/crc_i386.asm 739 ml -c -Cp -coff -Fo$@ win32/crc_i386.asm 740!else 741$(OB)crci386b.obj: win32/crc_i386.c 742 $(cc) $(CFLAGS_LB) -I. win32/crc_i386.c -Fo$@ 743!endif 744!endif 745 746$(OBDIR): 747 -mkdir $@ 748 749clean: clean_bz2exe_lib clean_bz2dll_lib 750 -del *.obj 751 -del winapp.res 752 -del unzip.exe 753 -del unzip.pdb 754 -del funzip.exe 755 -del funzip.pdb 756 -del unzipsfx.exe 757 -del unzipsfx.pdb 758 -del vc60.pdb 759 -del sfxwiz.res 760 -del SFXWiz32.exe 761 -del windll.res 762 -del unzip32.dll 763 -del unzip32.lib 764 -del unzip32.exp 765 -del unzip32.dll.manifest 766 -del uzexampl.exe 767 -del unzsfx32.lib 768 -del $(OBDIR)\*.obj 769 -del $(OBDIR)\unzip32.lib 770 -rmdir $(OBDIR) 771 772clean_bz2exe_lib: 773 -$(MAKE) -f $(IZ_BZIP2)/makbz2iz.msc \ 774 BZROOTDIR=$(IZ_BZIP2) BZOBDIR=$(IZ_BZIP2)\$(OBEXE) clean 775 776clean_bz2dll_lib: 777 -$(MAKE) -f $(IZ_BZIP2)/makbz2iz.msc \ 778 BZROOTDIR=$(IZ_BZIP2) BZOBDIR=$(IZ_BZIP2)\$(OBDLL) clean 779