makefile.w32 5.0 KB

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