File: Makefile.bc

package info (click to toggle)
unzip 6.0-29
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 10,432 kB
  • sloc: ansic: 55,350; cpp: 4,084; makefile: 2,481; asm: 1,789; cs: 1,012; sh: 110
file content (561 lines) | stat: -rw-r--r-- 15,902 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
# Makefile for UnZip(SFX) and fUnZip for Borland C++ for Windows 9x/NT
# Version: 6.0 and later
# Alvin Koh, Jim Knoble, Christian Spieler, E-Yen Tan, Cosmin Truta, etc.
#
# Tested with Borland C++ 5.5 (may work with older C++Builder 3.0, too)
#
# Last revised: 07 Sep 2008 (Christian Spieler)
#
#

#    Optional nonstandard preprocessor flags (as -DCHECK_EOF or -DDOS_WILD)
#    should be added to the environment via "set LOCAL_UNZIP=-DFOO" or added
#    to the declaration of LOC here:
LOC = $(LOCAL_UNZIP)

# Type for CPU required: 3: 80386, 4: 80486, 5: Pentium,
#                        6: Pentium Pro, Pentium II, etc.
!ifndef CPU_TYP
CPU_TYP = 6
!endif

# (De)Select inclusion of optimized assembler CRC32 routine:
!ifdef NOASM
USE_ASMCRC=0
!else
!ifdef USEASM
USE_ASMCRC=1
!endif
!endif

# Specify USEMASM=1 or USETASM=1 in case you have one of these x86 assemblers
# to use the assembler instead of the inline ASM C code.
#USEMASM=1
#USETASM=1
# For the Turbo Assembler, you may choose between the (old) 16-bit version
# and the 32-bit program which is faster provides more resources.
#USETASM16=1

!ifndef USE_ASMCRC
# default to ASM CRC C code for now (BCC needs TASM32 to support inline asm)...
USE_ASMCRC = 0
!endif

!ifndef USE_IZTIMEZONE
#default: do not use the IZ timezone replacement
USE_IZTIMEZONE=0
!endif

!if $(USE_IZTIMEZONE) != 0
LOC = -DW32_USE_IZ_TIMEZONE $(LOC)
!endif

# If you have bcc32i, you should define:
# CC = bcc32i
# This compiler generates a faster code.
CC = bcc32
!ifdef USETASM16
AS = tasm
!else
AS = tasm32
!endif
AR = tlib
LD = ilink32

!if $(USE_ASMCRC) != 0
ASMFLG = -DASM_CRC
CRC32 = crc_i386
CRC32X = $(CRC32)
CRC32F = $(CRC32)
CRC32L = $(CRC32)
CRC32G = $(CRC32)
CRC32B = $(CRC32)
!else
ASMFLG =
CRC32 = crc32
CRC32X = crc32x
CRC32F = crc32f
CRC32L = crc32l
CRC32G = crc32g
CRC32B = $(OB)crc32b
!endif

!if $(USE_IZTIMEZONE) != 0
TIMEZONE_OBJU = timezone.obj
TIMEZONE_OBJX = timezonx.obj
TIMEZONE_OBJD = timezonl.obj
TIMEZONE_OBLX = timezolx.obj
TIMEZONE_OBJB = $(OB)timezonb.obj
!else
TIMEZONE_OBJU =
TIMEZONE_OBJX =
TIMEZONE_OBJD =
TIMEZONE_OBLX =
TIMEZONE_OBJB =
!endif

!if $(UNCLEAN)
DIRT = -DUSE_SMITH_CODE -DUSE_UNSHRINK
!else
DIRT =
!endif

!if $(DEBUG)
CC_SIZE_OPT = -Od
CC_SPEED_OPT = -Od
!else
# Smallest code
CC_SIZE_OPT = -O1 -OS
# Fastest code
CC_SPEED_OPT = -O2 -OS -Oc
!endif
!if $(WARNINGS)
CC_WARN = -w -w-aus -w-par -w-sig -w-use
!else
CC_WARN = -w-
!endif

# compiler flags

ASCPUFLAG = __$(CPU_TYP)86
!if $(CPU_TYP) != 0
CC_CPUFLG = -$(CPU_TYP)
!endif
ASFLAGS = -ml -m2 -w0 -D$(ASCPUFLAG) $(LOC)
CFLAGS = $(CC_WARN) $(CC_CPUFLG) -d -ff- -k- -P-.C -I. $(ASMFLG) $(LOC) $(DIRT)
LDFLAGS = # -lxncd -l-P		# for bcc
LDFLAGS_DLL = $(LDFLAGS) -tWD
LDFLAGS_GUI = $(LDFLAGS) -tW
UNFLAGS = $(CFLAGS) $(CC_SPEED_OPT)
FUFLAGS = $(CFLAGS) $(CC_SPEED_OPT) -K -DFUNZIP
SXFLAGS = $(CFLAGS) $(CC_SIZE_OPT) -DSFX
DLFLAGS = $(CFLAGS) $(CC_SPEED_OPT) -tWD -DWINDLL -DDLL
SLFLAGS = $(CFLAGS) $(CC_SIZE_OPT) -DWINDLL -DDLL -DUNZIPLIB -DSFX
GXFLAGS = $(CFLAGS) $(CC_SIZE_OPT) -tW -DSFX
LBFLAGS = $(CFLAGS) $(CC_SPEED_OPT) -DWINDLL -DDLL -DUNZIPLIB

# list macros

# special subdirectory for the static library binaries, to separate them
# from other binaries (including dll import library file)
OBDIR = ow32lib
OB = $(OBDIR)/

# object files
OBJU1 = unzip.obj $(CRC32).obj crypt.obj envargs.obj explode.obj
OBJU2 = extract.obj fileio.obj globals.obj inflate.obj list.obj match.obj
OBJU3 = process.obj ttyio.obj ubz2err.obj unreduce.obj unshrink.obj zipinfo.obj
OBJUS = win32.obj win32i64.obj nt.obj $(TIMEZONE_OBJU)
OBJU  = $(OBJU1) $(OBJU2) $(OBJU3) $(OBJUS)
OBJF  = funzip.obj $(CRC32F).obj cryptf.obj globalsf.obj inflatef.obj \
	ttyiof.obj win32f.obj win32i64f.obj
OBJX1 = unzipsfx.obj $(CRC32X).obj cryptx.obj
OBJX2 = extractx.obj fileiox.obj globalsx.obj inflatex.obj matchx.obj
OBJX3 = processx.obj ttyiox.obj ubz2errx.obj
OBJXS = win32x.obj win32i64x.obj ntx.obj $(TIMEZONE_OBJX)
OBJX  = $(OBJX1) $(OBJX2) $(OBJX3) $(OBJXS)
OBJD1 = api.obj $(CRC32L).obj cryptl.obj explodel.obj
OBJD2 = extractl.obj fileiol.obj globalsl.obj inflatel.obj listl.obj matchl.obj
OBJD3 = processl.obj ubz2errl.obj unreducl.obj unshrnkl.obj zipinfol.obj
OBJDS = win32l.obj win32i64l.obj ntl.obj windll.obj $(ASMOBJS) $(TIMEZONE_OBJD)
OBJD  = $(OBJD1) $(OBJD2) $(OBJD3) $(OBJDS)
OBLX1 = apig.obj $(CRC32G).obj cryptg.obj
OBLX2 = extractg.obj fileiog.obj globalsg.obj inflateg.obj
OBLX3 = matchg.obj processg.obj ubz2errg.obj
OBLXS = win32g.obj win32i64g.obj ntg.obj windllg.obj $(TIMEZONE_OBLX)
OBLX  = $(OBLX1) $(OBLX2) $(OBLX3) $(OBLXS)
OBGX  = sfxwiz.obj
OBJLIB = $(OB)windllb.obj $(OB)apib.obj
OBJB1 = $(CRC32B).obj $(OB)cryptb.obj
OBJB2 = $(OB)explodeb.obj $(OB)extractb.obj $(OB)fileiob.obj $(OB)globalsb.obj
OBJB3 = $(OB)inflateb.obj $(OB)listb.obj $(OB)matchb.obj $(OB)processb.obj
OBJB4 = $(OB)ubz2errb.obj $(OB)unreducb.obj $(OB)unshrnkb.obj $(OB)zipinfob.obj
OBJBS = $(OB)win32b.obj $(OB)win32i64b.obj $(OB)ntb.obj $(TIMEZONE_OBJB)
OBJB  = $(OBJLIB) $(OBJB1) $(OBJB2) $(OBJB3) $(OBJB4) $(OBJBS)

UNZIP_H = unzip.h unzpriv.h globals.h win32/w32cfg.h
WINDLL_H = windll/windll.h windll/structs.h windll/decs.h
WINDLL_DEF = windll/windll32.def
WINDLL_IMP_H = windll/decs.h windll/structs.h

# implicit rules

.asm.obj:
	$(AS) $(ASFLAGS) $<

.c.obj:
	$(CC) -c $(UNFLAGS) {$< }

# explicit rules

# Default target is all the command line executables
unzips: unzip.exe funzip.exe unzipsfx.exe
dll:    unzip32.dll
dllsample: uzexampl.exe
guisfx: SFXWiz32.exe
lib:    $(OBDIR) $(OB)unzip32.lib
all:    unzips dll dllsample guisfx lib

unzip.exe:      $(OBJU) winapp.res
	$(CC) $(LDFLAGS) -e$@ @&&|
$(OBJU)
|

funzip.exe:     $(OBJF)
	$(CC) $(LDFLAGS) -e$@ @&&|
$(OBJF)
|

unzipsfx.exe:   $(OBJX)
	$(CC) $(LDFLAGS) -e$@ @&&|
$(OBJX)
|

unzip32.dll:    $(OBJD) windll.res $(WINDLL_DEF)
	$(LD) -Gn -x -c -aa -Tpd @&&|
c0d32.obj $(OBJD),$@,,import32.lib cw32.lib,$(WINDLL_DEF:/=\),windll.res
|
#	$(CC) $(LDFLAGS_DLL) -e$@ @&&|
#$(OBJD)
##, windll.res
#|
#	brc32 windll.res $@

unzsfx32.lib:   $(OBLX)
	$(AR) /C $(@:/=\) @&&|
/u $(OBLX:/=\)
|

SFXWiz32.exe:   $(OBGX) sfxwiz.res unzsfx32.lib
	$(LD) -Gn -x -c -aa -Tpe @&&|
c0w32.obj $(OBGX),$@,,unzsfx32.lib import32.lib cw32.lib,,sfxwiz.res
|
#	$(CC) $(LDFLAGS_GUI) -e$@ $(OBGX) unzsfx32.lib $(LDLIBS)
#	brc32 sfxwiz.res $@

uzexampl.exe:   uzexampl.obj
	$(CC) $(LDFLAGS) -e$@ uzexampl.obj #version.lib

$(OB)unzip32.lib: $(OBJB)
	$(AR) /C $(@:/=\) @&&|
/u $(OBJB:/=\)
|

clean:
	rem Ignore any errors in the following...
	-del *.obj
	-del winapp.res
	-del unzip.exe
	-del funzip.exe
	-del unzipsfx.exe
	-del windll.res
	-del unzip32.dll
	-del uzexampl.exe
	-del sfxwiz.res
	-del unzsfx32.lib
	-del SFXWiz32.exe
	-del $(OB:/=\)*.obj
	-del $(OB:/=\)unzip32.lib
	-del *.tds
	-del $(OB:/=\)*.tds

# individual file dependencies

crc32.obj:      crc32.c $(UNZIP_H) zip.h crc32.h
crypt.obj:      crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
envargs.obj:    envargs.c $(UNZIP_H)
explode.obj:    explode.c $(UNZIP_H)
extract.obj:    extract.c $(UNZIP_H) crc32.h crypt.h
fileio.obj:     fileio.c $(UNZIP_H) crc32.h crypt.h ttyio.h ebcdic.h
globals.obj:    globals.c $(UNZIP_H)
inflate.obj:    inflate.c inflate.h $(UNZIP_H)
list.obj:       list.c $(UNZIP_H)
match.obj:      match.c $(UNZIP_H)
process.obj:    process.c $(UNZIP_H) crc32.h
timezone.obj:   timezone.c $(UNZIP_H) zip.h timezone.h
ttyio.obj:      ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
ubz2err.obj:    ubz2err.c $(UNZIP_H)
unreduce.obj:   unreduce.c $(UNZIP_H)
unshrink.obj:   unshrink.c $(UNZIP_H)
unzip.obj:      unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h
zipinfo.obj:    zipinfo.c $(UNZIP_H)

!ifdef USEMASM
crc_i386.obj:   win32/crc_i386.asm
	masm -ml win32/crc_i386.asm,$@;
!else
!ifdef USETASM
crc_i386.obj:   win32/crc_i386.asm
	$(AS) $(ASFLAGS) win32\crc_i386.asm, $@ ;
!else
crc_i386.obj:	win32/crc_i386.c
	$(CC) -c $(UNFLAGS) -o$@ win32/crc_i386.c
!endif
!endif

win32.obj:      win32/win32.c $(UNZIP_H) win32/nt.h
	$(CC) -c $(UNFLAGS) win32/win32.c

win32i64.obj:   win32/win32i64.c $(UNZIP_H)
	$(CC) -c $(UNFLAGS) win32/win32i64.c

nt.obj:         win32/nt.c $(UNZIP_H) win32/nt.h
	$(CC) -c $(UNFLAGS) win32/nt.c

funzip.obj:     funzip.c $(UNZIP_H) crc32.h crypt.h ttyio.h
	$(CC) -c $(FUFLAGS) -o$@ funzip.c

crc32f.obj:     crc32.c $(UNZIP_H) zip.h crc32.h
	$(CC) -c $(FUFLAGS) -o$@ crc32.c

cryptf.obj:     crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
	$(CC) -c $(FUFLAGS) -o$@ crypt.c

globalsf.obj:   globals.c $(UNZIP_H)
	$(CC) -c $(FUFLAGS) -o$@ globals.c

inflatef.obj:   inflate.c inflate.h $(UNZIP_H) crypt.h
	$(CC) -c $(FUFLAGS) -o$@ inflate.c

ttyiof.obj:     ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
	$(CC) -c $(FUFLAGS) -o$@ ttyio.c

win32f.obj:     win32/win32.c $(UNZIP_H) win32/nt.h
	$(CC) -c $(FUFLAGS) -o$@ win32/win32.c

win32i64f.obj:  win32/win32i64.c $(UNZIP_H)
	$(CC) -c $(FUFLAGS) -o$@ win32/win32i64.c

unzipsfx.obj:   unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h
	$(CC) -c $(SXFLAGS) -o$@ unzip.c

crc32x.obj:     crc32.c $(UNZIP_H) zip.h crc32.h
	$(CC) -c $(SXFLAGS) -o$@ crc32.c

cryptx.obj:     crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
	$(CC) -c $(SXFLAGS) -o$@ crypt.c

extractx.obj:   extract.c $(UNZIP_H) crc32.h crypt.h
	$(CC) -c $(SXFLAGS) -o$@ extract.c

fileiox.obj:    fileio.c $(UNZIP_H) crc32.h crypt.h ttyio.h ebcdic.h
	$(CC) -c $(SXFLAGS) -o$@ fileio.c

globalsx.obj:   globals.c $(UNZIP_H)
	$(CC) -c $(SXFLAGS) -o$@ globals.c

inflatex.obj:   inflate.c inflate.h $(UNZIP_H)
	$(CC) -c $(SXFLAGS) -o$@ inflate.c

matchx.obj:     match.c $(UNZIP_H)
	$(CC) -c $(SXFLAGS) -o$@ match.c

processx.obj:   process.c $(UNZIP_H) crc32.h
	$(CC) -c $(SXFLAGS) -o$@ process.c

timezonx.obj:   timezone.c $(UNZIP_H) zip.h timezone.h
	$(CC) -c $(SXFLAGS) -o$@ timezone.c

ttyiox.obj:     ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
	$(CC) -c $(SXFLAGS) -o$@ ttyio.c

ubz2errx.obj:   ubz2err.c $(UNZIP_H)
	$(CC) -c $(SXFLAGS) -o$@ ubz2err.c

win32x.obj:     win32/win32.c $(UNZIP_H) win32/nt.h
	$(CC) -c $(SXFLAGS) -o$@ win32/win32.c

win32i64x.obj:  win32/win32i64.c $(UNZIP_H)
	$(CC) -c $(SXFLAGS) -o$@ win32/win32i64.c

ntx.obj:        win32/nt.c $(UNZIP_H) win32/nt.h
	$(CC) -c $(SXFLAGS) -o$@ win32/nt.c

uzexampl.obj:   windll/uzexampl.c windll/uzexampl.h
	$(CC) -c $(UNFLAGS) -I./windll -o$@ windll/uzexampl.c

winapp.res:	win32/winapp.rc unzvers.h
	$(RC) /l 0x409 /fo$@ /i win32 /d WIN32 win32/winapp.rc

# DLL compilation section
api.obj:        api.c $(UNZIP_H) $(WINDLL_H) unzvers.h
	$(CC) -c $(DLFLAGS) -o$@ api.c

crc32l.obj:     crc32.c $(UNZIP_H) zip.h crc32.h
	$(CC) -c $(DLFLAGS) -o$@ crc32.c

cryptl.obj:     crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
	$(CC) -c $(DLFLAGS) -o$@ crypt.c

explodel.obj:    explode.c $(UNZIP_H)
	$(CC) -c $(DLFLAGS) -o$@ explode.c

extractl.obj:   extract.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h
	$(CC) -c $(DLFLAGS) -o$@ extract.c

fileiol.obj:    fileio.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h ttyio.h ebcdic.h
	$(CC) -c $(DLFLAGS) -o$@ fileio.c

globalsl.obj:   globals.c $(UNZIP_H)
	$(CC) -c $(DLFLAGS) -o$@ globals.c

inflatel.obj:   inflate.c inflate.h $(UNZIP_H) crypt.h
	$(CC) -c $(DLFLAGS) -o$@ inflate.c

listl.obj:      list.c $(UNZIP_H) $(WINDLL_H)
	$(CC) -c $(DLFLAGS) -o$@ list.c

matchl.obj:     match.c $(UNZIP_H)
	$(CC) -c $(DLFLAGS) -o$@ match.c

processl.obj:   process.c $(UNZIP_H) $(WINDLL_H) crc32.h
	$(CC) -c $(DLFLAGS) -o$@ process.c

timezonl.obj:   timezone.c $(UNZIP_H) zip.h timezone.h
	$(CC) -c $(DLFLAGS) -o$@ timezone.c

ubz2errl.obj:   ubz2err.c $(UNZIP_H)
	$(CC) -c $(DLFLAGS) -o$@ ubz2err.c

unreducl.obj:   unreduce.c $(UNZIP_H)
	$(CC) -c $(DLFLAGS) -o$@ unreduce.c

unshrnkl.obj:   unshrink.c $(UNZIP_H)
	$(CC) -c $(DLFLAGS) -o$@ unshrink.c

zipinfol.obj:   zipinfo.c $(UNZIP_H)
	$(CC) -c $(DLFLAGS) -o$@ zipinfo.c

win32l.obj:     win32/win32.c $(UNZIP_H) win32/nt.h
	$(CC) -c $(DLFLAGS) -o$@ win32/win32.c

win32i64l.obj:  win32/win32i64.c $(UNZIP_H)
	$(CC) -c $(DLFLAGS) -o$@ win32/win32i64.c

ntl.obj:        win32/nt.c $(UNZIP_H) win32/nt.h
	$(CC) -c $(DLFLAGS) -o$@ win32/nt.c

windll.obj: windll/windll.c $(UNZIP_H) $(WINDLL_H) crypt.h unzvers.h consts.h
	$(CC) -c $(DLFLAGS) -o$@ windll/windll.c

windll.res:	windll/windll.rc unzvers.h
	$(RC) /l 0x409 /fo$@ /i windll /d WIN32 windll/windll.rc

# SFX Lib compilation section
apig.obj:       api.c $(UNZIP_H) $(WINDLL_H) unzvers.h
	$(CC) -c $(SLFLAGS) -o$@ api.c

crc32g.obj:     crc32.c $(UNZIP_H) zip.h crc32.h
	$(CC) -c $(SLFLAGS) -o$@ crc32.c

cryptg.obj:     crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
	$(CC) -c $(SLFLAGS) -o$@ crypt.c

explodeg.obj:    explode.c $(UNZIP_H)
	$(CC) -c $(SLFLAGS) -o$@ explode.c

extractg.obj:   extract.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h
	$(CC) -c $(SLFLAGS) -o$@ extract.c

fileiog.obj:    fileio.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h ttyio.h ebcdic.h
	$(CC) -c $(SLFLAGS) -o$@ fileio.c

globalsg.obj:   globals.c $(UNZIP_H)
	$(CC) -c $(SLFLAGS) -o$@ globals.c

inflateg.obj:   inflate.c inflate.h $(UNZIP_H) crypt.h
	$(CC) -c $(SLFLAGS) -o$@ inflate.c

matchg.obj:     match.c $(UNZIP_H)
	$(CC) -c $(SLFLAGS) -o$@ match.c

processg.obj:   process.c $(UNZIP_H) $(WINDLL_H) crc32.h
	$(CC) -c $(SLFLAGS) -o$@ process.c

timezong.obj:   timezone.c $(UNZIP_H) zip.h timezone.h
	$(CC) -c $(SLFLAGS) -o$@ timezone.c

ubz2errg.obj:   ubz2err.c $(UNZIP_H)
	$(CC) -c $(SLFLAGS) -o$@ ubz2err.c

win32g.obj:     win32/win32.c $(UNZIP_H) win32/nt.h
	$(CC) -c $(SLFLAGS) -o$@ win32/win32.c

win32i64g.obj:  win32/win32i64.c $(UNZIP_H)
	$(CC) -c $(SLFLAGS) -o$@ win32/win32i64.c

ntg.obj:        win32/nt.c $(UNZIP_H) win32/nt.h
	$(CC) -c $(SLFLAGS) -o$@ win32/nt.c

windllg.obj: windll/windll.c $(UNZIP_H) $(WINDLL_H) crypt.h unzvers.h consts.h
	$(CC) -c $(SLFLAGS) -o$@ windll/windll.c

sfxwiz.obj:     windll/guisfx/sfxwiz.c windll/guisfx/dialog.h $(WINDLL_IMP_H)
	$(CC) -c $(GXFLAGS) -o$@ windll/guisfx/sfxwiz.c

sfxwiz.res:     windll/guisfx/sfxwiz.rc
	$(RC) /l 0x409 /fo$@ /i windll/guisfx /d WIN32 windll/guisfx/sfxwiz.rc

# Static LIB compilation section
$(OB)apib.obj:      api.c $(UNZIP_H) $(WINDLL_H) unzvers.h
	$(CC) -c $(LBFLAGS) -o$@ api.c

$(OB)crc32b.obj:    crc32.c $(UNZIP_H) zip.h crc32.h
	$(CC) -c $(LBFLAGS) -o$@ crc32.c

$(OB)cryptb.obj:    crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
	$(CC) -c $(LBFLAGS) -o$@ crypt.c

$(OB)explodeb.obj:  explode.c $(UNZIP_H)
	$(CC) -c $(LBFLAGS) -o$@ explode.c

$(OB)extractb.obj:  extract.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h
	$(CC) -c $(LBFLAGS) -o$@ extract.c

$(OB)fileiob.obj:   fileio.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h ttyio.h ebcdic.h
	$(CC) -c $(LBFLAGS) -o$@ fileio.c

$(OB)globalsb.obj:  globals.c $(UNZIP_H)
	$(CC) -c $(LBFLAGS) -o$@ globals.c

$(OB)inflateb.obj:  inflate.c inflate.h $(UNZIP_H) crypt.h
	$(CC) -c $(LBFLAGS) -o$@ inflate.c

$(OB)listb.obj:     list.c $(UNZIP_H) $(WINDLL_H)
	$(CC) -c $(LBFLAGS) -o$@ list.c

$(OB)matchb.obj:    match.c $(UNZIP_H)
	$(CC) -c $(LBFLAGS) -o$@ match.c

$(OB)processb.obj:  process.c $(UNZIP_H) $(WINDLL_H) crc32.h
	$(CC) -c $(LBFLAGS) -o$@ process.c

$(OB)timezonb.obj:  timezone.c $(UNZIP_H) zip.h timezone.h
	$(CC) -c $(LBFLAGS) -o$@ timezone.c

$(OB)ubz2errb.obj:  ubz2err.c $(UNZIP_H)
	$(CC) -c $(LBFLAGS) -o$@ ubz2err.c

$(OB)unreducb.obj:  unreduce.c $(UNZIP_H)
	$(CC) -c $(LBFLAGS) -o$@ unreduce.c

$(OB)unshrnkb.obj:  unshrink.c $(UNZIP_H)
	$(CC) -c $(LBFLAGS) -o$@ unshrink.c

$(OB)zipinfob.obj:  zipinfo.c $(UNZIP_H)
	$(CC) -c $(LBFLAGS) -o$@ zipinfo.c

$(OB)win32b.obj:    win32/win32.c $(UNZIP_H) win32/nt.h
	$(CC) -c $(LBFLAGS) -o$@ win32/win32.c

$(OB)win32i64b.obj: win32/win32i64.c $(UNZIP_H)
	$(CC) -c $(LBFLAGS) -o$@ win32/win32i64.c

$(OB)ntb.obj:       win32/nt.c $(UNZIP_H) win32/nt.h
	$(CC) -c $(LBFLAGS) -o$@ win32/nt.c

$(OB)windllb.obj: windll/windll.c $(UNZIP_H) $(WINDLL_H) crypt.h unzvers.h consts.h
	$(CC) -c $(LBFLAGS) -o$@ windll/windll.c

$(OBDIR):
	-mkdir $@