Subversion Repositories Kolibri OS

Rev

Rev 6764 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6725 siemargl 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
6775 siemargl 21
CC_CPU_OPT=-march=pentium
6745 siemargl 22
#USEZLIB=1
6775 siemargl 23
DEBUG=1
24
 
6725 siemargl 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
6775 siemargl 100
INCLUDES= -I $(SDK_DIR)/sources/newlib/libc/include -I $(SDK_DIR)/sources/zlib
6725 siemargl 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
6764 siemargl 132
CC_DEBUG_OPT = -g -DDEBUG
6725 siemargl 133
AS_DEBUG_OPT = $(CC_DEBUG_OPT)
6764 siemargl 134
LD_DEBUG_OPT = -g
6725 siemargl 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
6745 siemargl 158
LD_SPECIFIC_OPT = -o $@ -static -S -nostdlib -T $(SDK_DIR)/sources/newlib/app-dynamic.lds \
6725 siemargl 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)
6745 siemargl 163
# -lapp only for gcc 4.8
6725 siemargl 164
ifdef USEZLIB
6745 siemargl 165
LD_RELEASE_LIBS = -lz -lgcc -ldll -lc.dll -lapp
6725 siemargl 166
else
6775 siemargl 167
LD_RELEASE_LIBS = -lgcc -ldll -lc.dll
6725 siemargl 168
endif
169
LD_DEBUG_LIBS = $(LD_RELEASE_LIBS)
170
 
171
 
172
### System-specific section
173
 
174
# Suffixes
175
OBJ = .o
6745 siemargl 176
EXE = .
6725 siemargl 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
 
6775 siemargl 263
UNZIP_H = unzip.h unzpriv.h globals.h
6725 siemargl 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)
6745 siemargl 280
	$(LD) $(LDFLAGS) $(LDVER) $(OBJU) $(LD_BZ2LIB) $(LDLIBS) -Map=unzip.map
6725 siemargl 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
 
6775 siemargl 338
kos32$(OBJ): kolibri/kos32.c kolibri/kos32sys1.h
6725 siemargl 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