Subversion Repositories Kolibri OS

Rev

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