Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. # Makefile for UnZip, fUnZip and UnZipSFX for native Win32-Intel ports of gcc.
  2. # Currently supported implementations: Cygnus/Win32 and MinGW32.
  3. #
  4. # First version: Cosmin Truta, Dec 1997.
  5. # Last revision: Christian Spieler, 09-Aug-2008.
  6. #
  7. # To use, do "make -f win32/makefile.gcc".
  8.  
  9. # configuration switches supported:
  10. #   NOASM=1     disable assembler crc32 code, the generic C source code
  11. #               is used instead.
  12. #   NOCRC_OPT=1 disable "unfolding CRC tables" optimization.
  13. #   OPT_P6=1    add "modern gcc" tuning option for PentiumPro family CPU.
  14. #   USEBZ2=1    activate integrated compilation of bzip2 compression support,
  15. #               this requires the bzip2 sources present in the bzip2 subfolder.
  16. #   USEZLIB=1   replace internal deflate code by externally provided zlib.
  17. #   USE_POSIX=1 build posix-style binaries targeted for the CygWin unix
  18. #               emulation environment.
  19. SDK_DIR:= $(abspath ../../../contrib/sdk)
  20. NOASM=1
  21. CC_CPU_OPT=-march=pentium
  22.  
  23. ###  still not work - EMFILE error
  24. ###USEZLIB=1
  25.  
  26. ### Optional section
  27.  
  28. # The following options allow to override the default assembler code usage
  29. ifdef NOASM
  30. APPLY_ASMCRC=0
  31. endif
  32. ifdef USEASM
  33. APPLY_ASMCRC=1
  34. endif
  35.  
  36. # The external zlib library supplies its own crc32 implementation...
  37. ifdef USEZLIB
  38. APPLY_ASMCRC=0
  39. endif
  40.  
  41. # default is ASM CRC code (from .S source) for now...
  42. ifndef APPLY_ASMCRC
  43. APPLY_ASMCRC=1
  44. endif
  45.  
  46. # optional inclusion of bzip2 decompression
  47. IZ_BZIP2 = bzip2
  48. ifdef USEBZ2
  49. INC_BZ2LIB = -I$(IZ_BZIP2)
  50. LOCFLAGS = $(INC_BZ2LIB) -DUSE_BZIP2
  51. LD_BZ2LIB = -L$(IZ_BZIP2) -lbz2
  52. LIBBZIP2 = $(IZ_BZIP2)/libbz2.a
  53. else
  54. INC_BZ2LIB =
  55. LOCFLAGS =
  56. LD_BZ2LIB =
  57. LIBBZIP2 =
  58. endif
  59. LIBBZIP2X = $(LIBBZIP2)
  60.  
  61. ifndef USEZLIB
  62.  
  63. # Apply the "CRC unfolding tables" optimization unless explicitly disabled.
  64. # (This optimization might have negative effects on old CPU designs with a
  65. # small first-level data cache.)
  66. ifndef NOCRC_OPT
  67. LOCFLAGS += -DIZ_CRCOPTIM_UNFOLDTBL
  68. endif
  69.  
  70. # Optional nonstandard preprocessor flags (as -DUSE_ZLIB or -DUSE_SMITH_CODE)
  71. # should be added to the environment via "set LOCAL_UNZIP=-DFOO" or added
  72. # to the declaration of LOCFLAGS here:
  73. ifneq ($(APPLY_ASMCRC),0)
  74. LOCFLAGS += -DASM_CRC
  75. endif
  76.  
  77. else    # ifndef USEZLIB
  78.  
  79. LOCFLAGS += -DUSE_ZLIB
  80.  
  81. endif   # ifndef USEZLIB ... else ...
  82.  
  83. # Finally, append additional externally supplied options.
  84. LOCFLAGS += $(LOCAL_UNZIP)
  85.  
  86. # Some gcc distributions for Win32 (e.g. CygWin) try to emulate a POSIX-
  87. # compatible (Unix-style) environment.  This Makefile defaults to a
  88. # "native Win32" build.  To build POSIX-mode binaries, it is recommended
  89. # to use the Makefile of the Unix port.  However, by defining the variable
  90. # "USE_POSIX", building binaries for the POSIX environment can be enabled
  91. # here as well.
  92. ifdef 0
  93. ifdef USE_POSIX
  94. CC_ENVIR_OPT = -DUNIX -DFORCE_UNIX_OVER_WIN32
  95. else
  96. CC_ENVIR_OPT = -DWIN32 -DFORCE_WIN32_OVER_UNIX
  97. endif
  98. endif
  99. ### kolibri specific
  100. INCLUDES= -I $(SDK_DIR)/sources/newlib/libc/include -I $(SDK_DIR)/sources/zlib
  101. LIBPATH = -L $(SDK_DIR)/lib -L /home/autobuild/tools/win32/mingw32/lib
  102.  
  103. CC_ENVIR_OPT = -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -DKOS32 \
  104.         $(INCLUDES)
  105.  
  106. ### Compiler-specific section
  107.  
  108. # ------------ GNU C ------------
  109. CC = kos32-gcc
  110.  
  111. #AS = as
  112. AS = $(CC)
  113.  
  114. LD = kos32-ld
  115. ###LD = $(CC)
  116.  
  117. AR = ar
  118.  
  119. ###RC = windres
  120.  
  121. # Quiet
  122. CC_QUIET_OPT =
  123. AS_QUIET_OPT = $(CC_QUIET_OPT)
  124. LD_QUIET_OPT = $(CC_QUIET_OPT)
  125.  
  126. # Warnings
  127. CC_WARN_OPT = -Wall
  128. AS_WARN_OPT = $(CC_WARN_OPT)
  129. LD_WARN_OPT =
  130.  
  131. # Debug version
  132. CC_DEBUG_OPT = -g
  133. AS_DEBUG_OPT = $(CC_DEBUG_OPT)
  134. LD_DEBUG_OPT = $(CC_DEBUG_OPT)
  135.  
  136. # Release version
  137. CC_RELEASE_OPT =
  138. AS_RELEASE_OPT =
  139. LD_RELEASE_OPT = -s
  140.  
  141. # Prefered target CPU (instruction scheduling optimized for...)
  142. ifndef CC_CPU_OPT
  143. CC_CPU_OPT = -mcpu=pentiumpro
  144. endif
  145.  
  146. # Smallest code  (-Os is new since EGC 1.1, use -O1 for 2.8.1 and earlier)
  147. CC_SIZE_OPT = -Os $(CC_CPU_OPT)
  148.  
  149. # Fastest code
  150. CC_SPEED_OPT = -O2 $(CC_CPU_OPT)
  151.  
  152. # Output object file name
  153. CC_OUT_OPT = -o
  154.  
  155. # Other specific options
  156. CC_SPECIFIC_OPT = -c $(CC_ENVIR_OPT)
  157. AS_SPECIFIC_OPT = -c
  158. LD_SPECIFIC_OPT = -o $@ -static -S -nostdlib -T $(SDK_DIR)/sources/newlib/app-dynamic.lds \
  159.           --image-base 0 $(LIBPATH)
  160.  
  161. # Libraries for the debug & release version
  162. # (GCC 2.95 and newer does not require the system library specifications)
  163. # -lapp only for gcc 4.8
  164. ifdef USEZLIB
  165. LD_RELEASE_LIBS = -lz -lgcc -ldll -lc.dll -lapp
  166. else
  167. LD_RELEASE_LIBS = -lgcc -ldll -lc.dll -lapp
  168. endif
  169. LD_DEBUG_LIBS = $(LD_RELEASE_LIBS)
  170.  
  171.  
  172. ### System-specific section
  173.  
  174. # Suffixes
  175. OBJ = .o
  176. EXE = .
  177.  
  178. .SUFFIXES: .c .S $(OBJ) $(EXE)
  179. .PHONY: FORCE
  180.  
  181. # Commands
  182. RM = del /q
  183.  
  184.  
  185. ### General section
  186.  
  187. CFLAGS  = $(CC_SPECIFIC_OPT) $(CC_QUIET_OPT) $(CC_WARN_OPT) $(LOCFLAGS) \
  188.  $(CC_OUT_OPT) $@
  189. ASFLAGS = $(AS_SPECIFIC_OPT) $(AS_QUIET_OPT) $(AS_WARN_OPT) $(LOCFLAGS)
  190. LDFLAGS = $(LD_SPECIFIC_OPT) $(LD_QUIET_OPT) $(LD_WARN_OPT)
  191.  
  192. # To build with debug info, use 'make DEBUG=1'.
  193. ifdef DEBUG
  194. CVER     = $(CC_DEBUG_OPT)
  195. ASVER    = $(AS_DEBUG_OPT)
  196. LDVER    = $(LD_DEBUG_OPT)
  197. GENFLAGS =
  198. FFLAGS   = -DFUNZIP
  199. SFXFLAGS = -DSFX
  200. GENDLLFL = -DDLL -DWINDLL
  201. GENGUILB = -DSFX -DDLL -DWINDLL -DUNZIPLIB
  202. GENGUISX = -DSFX
  203. GENLIBFL = -DDLL -DWINDLL -DUNZIPLIB
  204. LDLIBS   = $(LD_DEBUG_LIBS)
  205. else
  206. CVER     = $(CC_RELEASE_OPT)
  207. ASVER    = $(AS_RELEASE_OPT)
  208. LDVER    = $(LD_RELEASE_OPT)
  209. GENFLAGS = $(CC_SPEED_OPT)
  210. FFLAGS   = $(CC_SPEED_OPT) -DFUNZIP
  211. SFXFLAGS = $(CC_SIZE_OPT) -DSFX
  212. GENDLLFL = $(CC_SPEED_OPT) -DDLL -DWINDLL
  213. GENGUILB = $(CC_SIZE_OPT) -DSFX -DDLL -DWINDLL -DUNZIPLIB
  214. GENGUISX = $(CC_SIZE_OPT) -DSFX
  215. GENLIBFL = $(CC_SPEED_OPT) -DDLL -DWINDLL -DUNZIPLIB
  216. LDLIBS   = $(LD_RELEASE_LIBS)
  217. endif
  218. GUILDFLAG=-mwindows
  219.  
  220. # Object files
  221. ifneq ($(APPLY_ASMCRC),0)
  222. OBJA  = crc_i386$(OBJ)
  223. else
  224. OBJA  =
  225. endif
  226. OBJU1 = unzip$(OBJ) crc32$(OBJ) crypt$(OBJ) envargs$(OBJ)
  227. OBJU2 = explode$(OBJ) extract$(OBJ) fileio$(OBJ) globals$(OBJ) inflate$(OBJ)
  228. OBJU3 = list$(OBJ) match$(OBJ) process$(OBJ) ttyio$(OBJ) ubz2err$(OBJ)
  229. OBJU4 = unreduce$(OBJ) unshrink$(OBJ) zipinfo$(OBJ)
  230. OBJUS= kos32$(OBJ) dirent$(OBJ)
  231. ###OBJUS = win32$(OBJ) win32i64$(OBJ) nt$(OBJ) winapprc$(OBJ)
  232. OBJU  = $(OBJU1) $(OBJU2) $(OBJU3) $(OBJU4) $(OBJA) $(OBJUS)
  233. OBJX1 = unzipsfx$(OBJ) crc32x$(OBJ) cryptx$(OBJ) extractx$(OBJ)
  234. OBJX2 = fileiox$(OBJ) globalsx$(OBJ) inflatex$(OBJ) matchx$(OBJ) processx$(OBJ)
  235. OBJX3 = ttyiox$(OBJ) ubz2errx$(OBJ)
  236. ###OBJXS = win32x$(OBJ) win32i64x$(OBJ) ntx$(OBJ)
  237. OBJX  = $(OBJX1) $(OBJX2) $(OBJX3) $(OBJA) $(OBJXS)
  238. OBJF1 = funzip$(OBJ) crc32$(OBJ) cryptf$(OBJ) globalsf$(OBJ) inflatef$(OBJ)
  239. OBJF2 = ttyiof$(OBJ)
  240. ###OBJFS = win32f$(OBJ) win32i64f$(OBJ)
  241. OBJF  = $(OBJF1) $(OBJF2) $(OBJA) $(OBJFS)
  242. OBJDLL = windll$(OBJ) windllrc$(OBJ) api$(OBJ)
  243. OBJD1 = crc32l$(OBJ) cryptl$(OBJ)
  244. OBJD2 = explodel$(OBJ) extractl$(OBJ) fileiol$(OBJ) globalsl$(OBJ)
  245. OBJD3 = inflatel$(OBJ) listl$(OBJ) matchl$(OBJ) processl$(OBJ) ubz2errl$(OBJ)
  246. OBJD4 = unreducl$(OBJ) unshrnkl$(OBJ) zipinfol$(OBJ)
  247. ###OBJDS = win32l$(OBJ) win32i64l$(OBJ) ntl$(OBJ)
  248. OBJD  = $(OBJDLL) $(OBJD1) $(OBJD2) $(OBJD3) $(OBJD4) $(OBJA) $(OBJDS)
  249. OBLX1 = apig$(OBJ) crc32g$(OBJ) cryptg$(OBJ)
  250. OBLX2 = extractg$(OBJ) fileiog$(OBJ) globalsg$(OBJ) inflateg$(OBJ)
  251. OBLX3 = matchg$(OBJ) processg$(OBJ) ubz2errg$(OBJ)
  252. ###OBLXS = win32g$(OBJ) win32i64g$(OBJ) ntg$(OBJ) windllg$(OBJ)
  253. OBLX  = $(OBLX1) $(OBLX2) $(OBLX3) $(OBJA) $(OBLXS)
  254. OBGX  = sfxwiz$(OBJ) sfxwizrc$(OBJ)
  255. OBJLIB = windllb$(OBJ) apib$(OBJ)
  256. OBJB1 = crc32b$(OBJ) cryptb$(OBJ)
  257. OBJB2 = explodeb$(OBJ) extractb$(OBJ) fileiob$(OBJ) globalsb$(OBJ)
  258. OBJB3 = inflateb$(OBJ) listb$(OBJ) matchb$(OBJ) processb$(OBJ) ubz2errb$(OBJ)
  259. OBJB4 = unreducb$(OBJ) unshrnkb$(OBJ) zipinfob$(OBJ)
  260. ###OBJBS = win32b$(OBJ) win32i64b$(OBJ) ntb$(OBJ)
  261. OBJB  = $(OBJLIB) $(OBJB1) $(OBJB2) $(OBJB3) $(OBJB4) $(OBJA) $(OBJBS)
  262.  
  263. UNZIP_H = unzip.h unzpriv.h globals.h
  264. ###win32/w32cfg.h
  265. ###WINDLL_H = windll/windll.h windll/structs.h windll/decs.h
  266. ###DLLDEF = windll/windllgcc.def
  267. ###WINDLL_IMP_H = windll/decs.h windll/structs.h
  268.  
  269.  
  270. # Default target is all the executables
  271. ###unzips: unzip$(EXE) funzip$(EXE) unzipsfx$(EXE)
  272. ###dll:    unzip32.dll
  273. ###dllsample: uzexampl$(EXE)
  274. ###guisfx: SFXWiz32$(EXE)
  275. #lib:    libunzip32.a
  276. ###all:    unzips dll dllsample guisfx lib
  277. all:    unzip$(EXE)
  278.  
  279. unzip$(EXE): $(OBJU) $(LIBBZIP2)
  280.         $(LD) $(LDFLAGS) $(LDVER) $(OBJU) $(LD_BZ2LIB) $(LDLIBS) -Map=unzip.map
  281.         kos32-objcopy $@ -O binary
  282.  
  283. unzipsfx$(EXE): $(OBJX) $(LIBBZIP2X)
  284.         $(LD) $(LDFLAGS) $(LDVER) $(OBJX) $(LDLIBS)
  285.  
  286. funzip$(EXE): $(OBJF)
  287.         $(LD) $(LDFLAGS) $(LDVER) $(OBJF) $(LDLIBS)
  288.  
  289. unzip32.dll: $(DLLDEF) $(OBJD) $(LIBBZIP2)
  290.         dllwrap --driver-name $(CC) --def $(DLLDEF) $(LDFLAGS) $(LDVER) $(OBJD) $(LD_BZ2LIB) $(LDLIBS)
  291.  
  292. libunzsfx32.a: $(OBLX)
  293.         $(AR) -rus $@ $(OBLX)
  294.  
  295. SFXWiz32$(EXE): $(OBGX) libunzsfx32.a $(LIBBZIP2X)
  296.         $(LD) $(GUILDFLAG) $(LDFLAGS) $(LDVER) $(OBGX) -L. -lunzsfx32 $(LDLIBS)
  297.  
  298. uzexampl$(EXE): uzexampl$(OBJ)
  299.         $(CC) $(LDFLAGS) $(LDVER) uzexampl$(OBJ) -lversion $(LDLIBS)
  300.  
  301. libunzip32.a: $(OBJB)
  302.         $(AR) -rus $@ $(OBJB)
  303.  
  304.  
  305. # create/update the library for the optional bzip2 support:
  306. $(IZ_BZIP2)/libbz2.a: FORCE
  307.         $(subst /,\,$(MAKE)) -C $(IZ_BZIP2) -f Makebz2.iz CC="$(CC)" RM="$(RM)"
  308. FORCE:
  309.  
  310. # How to compile sources
  311. .c$(OBJ):
  312.         $(CC) $(CFLAGS) $(CVER) $(GENFLAGS) $<
  313. .S$(OBJ):
  314.         $(AS) $(ASFLAGS) $(ASVER) $(GENFLAGS) $<
  315.  
  316. # Dependencies
  317. crc32$(OBJ):    crc32.c $(UNZIP_H) zip.h crc32.h
  318. crypt$(OBJ):    crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
  319. envargs$(OBJ):  envargs.c $(UNZIP_H)
  320. explode$(OBJ):  explode.c $(UNZIP_H)
  321. extract$(OBJ):  extract.c $(UNZIP_H) crc32.h crypt.h
  322. fileio$(OBJ):   fileio.c $(UNZIP_H) crc32.h crypt.h ttyio.h ebcdic.h
  323. funzip$(OBJ):   funzip.c $(UNZIP_H) crc32.h crypt.h ttyio.h
  324. globals$(OBJ):  globals.c $(UNZIP_H)
  325. inflate$(OBJ):  inflate.c inflate.h $(UNZIP_H)
  326. list$(OBJ):     list.c $(UNZIP_H)
  327. match$(OBJ):    match.c $(UNZIP_H)
  328. process$(OBJ):  process.c $(UNZIP_H) crc32.h
  329. ttyio$(OBJ):    ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
  330. ubz2err$(OBJ): ubz2err.c $(UNZIP_H)
  331. unreduce$(OBJ): unreduce.c $(UNZIP_H)
  332. unshrink$(OBJ): unshrink.c $(UNZIP_H)
  333. unzip$(OBJ):    unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h
  334. zipinfo$(OBJ):  zipinfo.c $(UNZIP_H)
  335. crc_i386$(OBJ): crc_i386.S
  336.  
  337.  
  338. kos32$(OBJ): kolibri/kos32.c kolibri/kos32sys1.h
  339.         $(CC) $(CFLAGS) $(CVER) $(GENFLAGS) -I. $<
  340. dirent$(OBJ): kolibri/dirent.c kolibri/kos32sys1.h
  341.         $(CC) $(CFLAGS) $(CVER) $(GENFLAGS) -I. $<
  342. ###win32$(OBJ): win32/win32.c $(UNZIP_H) win32/nt.h
  343. ###     $(CC) $(CFLAGS) $(CVER) $(GENFLAGS) -I. $<
  344.  
  345. ###win32i64$(OBJ): win32/win32i64.c $(UNZIP_H)
  346. ###     $(CC) $(CFLAGS) $(CVER) $(GENFLAGS) -I. $<
  347.  
  348. ###nt$(OBJ): win32/nt.c $(UNZIP_H) win32/nt.h
  349. ###     $(CC) $(CFLAGS) $(CVER) $(GENFLAGS) -I. $<
  350.  
  351. ###winapprc$(OBJ):      win32/winapp.rc unzvers.h
  352. ###     - $(RC) -o $@ $<
  353.  
  354. # UnZipSFX compilation section
  355. crc32x$(OBJ): crc32.c $(UNZIP_H) zip.h crc32.h
  356.         $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) $<
  357.  
  358. cryptx$(OBJ): crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
  359.         $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) $<
  360.  
  361. extractx$(OBJ): extract.c $(UNZIP_H) crc32.h crypt.h
  362.         $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) $<
  363.  
  364. fileiox$(OBJ):   fileio.c $(UNZIP_H) crc32.h crypt.h ttyio.h ebcdic.h
  365.         $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) $<
  366.  
  367. globalsx$(OBJ): globals.c $(UNZIP_H)
  368.         $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) $<
  369.  
  370. inflatex$(OBJ): inflate.c inflate.h $(UNZIP_H) crypt.h
  371.         $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) $<
  372.  
  373. matchx$(OBJ): match.c $(UNZIP_H)
  374.         $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) $<
  375.  
  376. processx$(OBJ): process.c $(UNZIP_H) crc32.h
  377.         $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) $<
  378.  
  379. ttyiox$(OBJ): ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
  380.         $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) $<
  381.  
  382. ubz2errx$(OBJ): ubz2err.c $(UNZIP_H)
  383.         $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) $<
  384.  
  385. unzipsfx$(OBJ): unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h
  386.         $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) $<
  387.  
  388. win32x$(OBJ): win32/win32.c $(UNZIP_H) win32/nt.h
  389.         $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) -I. $<
  390.  
  391. win32i64x$(OBJ): win32/win32i64.c $(UNZIP_H)
  392.         $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) -I. $<
  393.  
  394. ntx$(OBJ): win32/nt.c $(UNZIP_H) win32/nt.h
  395.         $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) -I. $<
  396.  
  397. # fUnZip compilation section
  398. cryptf$(OBJ): crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
  399.         $(CC) $(CFLAGS) $(CVER) $(FFLAGS) $<
  400.  
  401. globalsf$(OBJ): globals.c $(UNZIP_H)
  402.         $(CC) $(CFLAGS) $(CVER) $(FFLAGS) $<
  403.  
  404. inflatef$(OBJ): inflate.c inflate.h $(UNZIP_H) crypt.h
  405.         $(CC) $(CFLAGS) $(CVER) $(FFLAGS) $<
  406.  
  407. ttyiof$(OBJ): ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
  408.         $(CC) $(CFLAGS) $(CVER) $(FFLAGS) $<
  409.  
  410. win32f$(OBJ): win32/win32.c $(UNZIP_H) win32/nt.h
  411.         $(CC) $(CFLAGS) $(CVER) $(FFLAGS) -I. $<
  412.  
  413. win32i64f$(OBJ): win32/win32i64.c $(UNZIP_H)
  414.         $(CC) $(CFLAGS) $(CVER) $(FFLAGS) -I. $<
  415.  
  416. # WINDLL sample
  417. uzexampl$(OBJ): windll/uzexampl.c windll/uzexampl.h
  418.         $(CC) $(CFLAGS) $(CVER) $(GENFLAGS) -I. $<
  419.  
  420. # DLL compilation section
  421. api$(OBJ): api.c $(UNZIP_H) $(WINDLL_H) unzvers.h
  422.         $(CC) $(CFLAGS) $(CVER) $(GENDLLFL) $<
  423.  
  424. crc32l$(OBJ):   crc32.c $(UNZIP_H) zip.h crc32.h
  425.         $(CC) $(CFLAGS) $(CVER) $(GENDLLFL) $<
  426.  
  427. cryptl$(OBJ):   crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
  428.         $(CC) $(CFLAGS) $(CVER) $(GENDLLFL) $<
  429.  
  430. explodel$(OBJ): explode.c $(UNZIP_H)
  431.         $(CC) $(CFLAGS) $(CVER) $(GENDLLFL) $<
  432.  
  433. extractl$(OBJ): extract.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h
  434.         $(CC) $(CFLAGS) $(CVER) $(GENDLLFL) $<
  435.  
  436. fileiol$(OBJ):  fileio.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h ttyio.h ebcdic.h
  437.         $(CC) $(CFLAGS) $(CVER) $(GENDLLFL) $<
  438.  
  439. globalsl$(OBJ): globals.c $(UNZIP_H)
  440.         $(CC) $(CFLAGS) $(CVER) $(GENDLLFL) $<
  441.  
  442. inflatel$(OBJ): inflate.c inflate.h $(UNZIP_H) crypt.h
  443.         $(CC) $(CFLAGS) $(CVER) $(GENDLLFL) $<
  444.  
  445. listl$(OBJ):    list.c $(UNZIP_H) $(WINDLL_H)
  446.         $(CC) $(CFLAGS) $(CVER) $(GENDLLFL) $<
  447.  
  448. matchl$(OBJ):   match.c $(UNZIP_H)
  449.         $(CC) $(CFLAGS) $(CVER) $(GENDLLFL) $<
  450.  
  451. processl$(OBJ): process.c $(UNZIP_H) $(WINDLL_H) crc32.h
  452.         $(CC) $(CFLAGS) $(CVER) $(GENDLLFL) $<
  453.  
  454. ubz2errl$(OBJ): ubz2err.c $(UNZIP_H)
  455.         $(CC) $(CFLAGS) $(CVER) $(GENDLLFL) $<
  456.  
  457. unreducl$(OBJ): unreduce.c $(UNZIP_H)
  458.         $(CC) $(CFLAGS) $(CVER) $(GENDLLFL) $<
  459.  
  460. unshrnkl$(OBJ): unshrink.c $(UNZIP_H)
  461.         $(CC) $(CFLAGS) $(CVER) $(GENDLLFL) $<
  462.  
  463. zipinfol$(OBJ): zipinfo.c $(UNZIP_H)
  464.         $(CC) $(CFLAGS) $(CVER) $(GENDLLFL) $<
  465.  
  466. win32l$(OBJ): win32/win32.c $(UNZIP_H) win32/nt.h
  467.         $(CC) $(CFLAGS) $(CVER) $(GENDLLFL) -I. $<
  468.  
  469. win32i64l$(OBJ): win32/win32i64.c $(UNZIP_H)
  470.         $(CC) $(CFLAGS) $(CVER) $(GENDLLFL) -I. $<
  471.  
  472. ntl$(OBJ): win32/nt.c $(UNZIP_H) win32/nt.h
  473.         $(CC) $(CFLAGS) $(CVER) $(GENDLLFL) -I. $<
  474.  
  475. windll$(OBJ): windll/windll.c $(UNZIP_H) $(WINDLL_H) crypt.h unzvers.h consts.h
  476.         $(CC) $(CFLAGS) $(CVER) $(GENDLLFL) -I. $<
  477.  
  478. windllrc$(OBJ): windll/windll.rc unzvers.h
  479.         - $(RC) -o $@ $<
  480.  
  481. # SFX Lib compilation section
  482. apig$(OBJ):     api.c $(UNZIP_H) $(WINDLL_H) unzvers.h
  483.         $(CC) $(CFLAGS) $(CVER) $(GENGUILB) $<
  484.  
  485. crc32g$(OBJ):   crc32.c $(UNZIP_H) zip.h crc32.h
  486.         $(CC) $(CFLAGS) $(CVER) $(GENGUILB) $<
  487.  
  488. cryptg$(OBJ):   crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
  489.         $(CC) $(CFLAGS) $(CVER) $(GENGUILB) $<
  490.  
  491. extractg$(OBJ): extract.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h
  492.         $(CC) $(CFLAGS) $(CVER) $(GENGUILB) $<
  493.  
  494. fileiog$(OBJ):  fileio.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h ttyio.h ebcdic.h
  495.         $(CC) $(CFLAGS) $(CVER) $(GENGUILB) $<
  496.  
  497. globalsg$(OBJ): globals.c $(UNZIP_H)
  498.         $(CC) $(CFLAGS) $(CVER) $(GENGUILB) $<
  499.  
  500. inflateg$(OBJ): inflate.c inflate.h $(UNZIP_H)
  501.         $(CC) $(CFLAGS) $(CVER) $(GENGUILB) $<
  502.  
  503. matchg$(OBJ):   match.c $(UNZIP_H)
  504.         $(CC) $(CFLAGS) $(CVER) $(GENGUILB) $<
  505.  
  506. processg$(OBJ): process.c $(UNZIP_H) $(WINDLL_H) crc32.h
  507.         $(CC) $(CFLAGS) $(CVER) $(GENGUILB) $<
  508.  
  509. ubz2errg$(OBJ): ubz2err.c $(UNZIP_H)
  510.         $(CC) $(CFLAGS) $(CVER) $(GENGUILB) $<
  511.  
  512. win32g$(OBJ):   win32/win32.c $(UNZIP_H) win32/nt.h
  513.         $(CC) $(CFLAGS) $(CVER) $(GENGUILB) -I. $<
  514.  
  515. win32i64g$(OBJ):        win32/win32i64.c $(UNZIP_H)
  516.         $(CC) $(CFLAGS) $(CVER) $(GENGUILB) -I. $<
  517.  
  518. ntg$(OBJ):      win32/nt.c $(UNZIP_H) win32/nt.h
  519.         $(CC) $(CFLAGS) $(CVER) $(GENGUILB) -I. $<
  520.  
  521. windllg$(OBJ):  windll/windll.c $(UNZIP_H) $(WINDLL_H) crypt.h unzvers.h consts.h
  522.         $(CC) $(CFLAGS) $(CVER) $(GENGUILB) -I. $<
  523.  
  524. sfxwiz$(OBJ):   windll/guisfx/sfxwiz.c windll/guisfx/dialog.h $(WINDLL_IMP_H)
  525.         $(CC) $(CFLAGS) $(CVER) $(GENGUISX) -I. $<
  526.  
  527. sfxwizrc$(OBJ): windll/guisfx/sfxwiz.rc
  528.         - $(RC)  --include-dir windll/guisfx --define WIN32 -o$@ $<
  529.  
  530. # Static LIB compilation section
  531. apib$(OBJ): api.c $(UNZIP_H) $(WINDLL_H) unzvers.h
  532.         $(CC) $(CFLAGS) $(CVER) $(GENLIBFL) $<
  533.  
  534. crc32b$(OBJ):   crc32.c $(UNZIP_H) zip.h crc32.h
  535.         $(CC) $(CFLAGS) $(CVER) $(GENLIBFL) $<
  536.  
  537. cryptb$(OBJ):   crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
  538.         $(CC) $(CFLAGS) $(CVER) $(GENLIBFL) $<
  539.  
  540. explodeb$(OBJ): explode.c $(UNZIP_H)
  541.         $(CC) $(CFLAGS) $(CVER) $(GENLIBFL) $<
  542.  
  543. extractb$(OBJ): extract.c $(UNZIP_H) crc32.h crypt.h
  544.         $(CC) $(CFLAGS) $(CVER) $(GENLIBFL) $<
  545.  
  546. fileiob$(OBJ):  fileio.c $(UNZIP_H) crc32.h crypt.h ttyio.h ebcdic.h
  547.         $(CC) $(CFLAGS) $(CVER) $(GENLIBFL) $<
  548.  
  549. globalsb$(OBJ): globals.c $(UNZIP_H)
  550.         $(CC) $(CFLAGS) $(CVER) $(GENLIBFL) $<
  551.  
  552. inflateb$(OBJ): inflate.c inflate.h $(UNZIP_H) crypt.h
  553.         $(CC) $(CFLAGS) $(CVER) $(GENLIBFL) $<
  554.  
  555. listb$(OBJ):    list.c $(UNZIP_H) $(WINDLL_H)
  556.         $(CC) $(CFLAGS) $(CVER) $(GENLIBFL) $<
  557.  
  558. matchb$(OBJ):   match.c $(UNZIP_H)
  559.         $(CC) $(CFLAGS) $(CVER) $(GENLIBFL) $<
  560.  
  561. processb$(OBJ): process.c $(UNZIP_H) crc32.h
  562.         $(CC) $(CFLAGS) $(CVER) $(GENLIBFL) $<
  563.  
  564. ubz2errb$(OBJ): ubz2err.c $(UNZIP_H)
  565.         $(CC) $(CFLAGS) $(CVER) $(GENLIBFL) $<
  566.  
  567. unreducb$(OBJ): unreduce.c $(UNZIP_H)
  568.         $(CC) $(CFLAGS) $(CVER) $(GENLIBFL) $<
  569.  
  570. unshrnkb$(OBJ): unshrink.c $(UNZIP_H)
  571.         $(CC) $(CFLAGS) $(CVER) $(GENLIBFL) $<
  572.  
  573. zipinfob$(OBJ): zipinfo.c $(UNZIP_H)
  574.         $(CC) $(CFLAGS) $(CVER) $(GENLIBFL) $<
  575.  
  576. win32b$(OBJ): win32/win32.c $(UNZIP_H) win32/nt.h
  577.         $(CC) $(CFLAGS) $(CVER) $(GENLIBFL) -I. $<
  578.  
  579. win32i64b$(OBJ): win32/win32i64.c $(UNZIP_H)
  580.         $(CC) $(CFLAGS) $(CVER) $(GENLIBFL) -I. $<
  581.  
  582. ntb$(OBJ): win32/nt.c $(UNZIP_H) win32/nt.h
  583.         $(CC) $(CFLAGS) $(CVER) $(GENLIBFL) -I. $<
  584.  
  585. windllb$(OBJ): windll/windll.c $(UNZIP_H) $(WINDLL_H) crypt.h unzvers.h consts.h
  586.         $(CC) $(CFLAGS) $(CVER) $(GENLIBFL) -I. $<
  587.  
  588. clean:
  589.         -$(subst /,\,$(MAKE)) -C $(IZ_BZIP2) -f Makebz2.iz RM="$(RM)" clean
  590.         -$(RM) *$(OBJ)
  591.         -$(RM) unzip$(EXE) funzip$(EXE) unzipsfx$(EXE)
  592.         -$(RM) unzip32.dll uzexampl$(EXE) SFXWiz32$(EXE)
  593.         -$(RM) libunzip32.a libunzsfx32.a
  594.