1
# Makefile for UnZip, fUnZip and UnZipSFX using LCC-Win32.
2
# By E-Yen Tan (3 June 1998).
3
# Last updated 27 December 2001 (Christian Spieler).
5
# This version includes rules to build the 32-bit windll DLL.
7
# This compiler evaluates #include locations relative to current working dir,
8
# not relative to the location of the file containing the #include directive.
9
# As a consequence, a "-Iwin32" option is required to allow compilation of
10
# the WIN32 specific sources.
13
CCFLAGS=-Zp8 -O -DWIN32 $(AS_FLAGS)
15
DLLFLAG=-DWINDLL -DDLL -I./windll
20
DLLLDFLAG=-dll -entry DllMain
29
# Optional macros should be declared below.
30
# (LCC's Make is unable to read the LOCAL_UNZIP environment variable.)
33
# Options to select optimized assembler code for CRC32 calculation.
50
CFLAGS = $(CCFLAGS) $(LOC)
53
CFLAGS_SX = $(CFLAGS) -DSFX
54
CFLAGS_FU = $(CFLAGS) -DFUNZIP
55
CFLAGS_DL = $(CFLAGS) $(DLLFLAG)
56
CFLAGS_SL = $(CFLAGS) $(DLLFLAG) -DUNZIPLIB -DSFX
57
CFLAGS_GX = $(CFLAGS) -I./windll -I./windll/guisfx -DSFX
60
# The system specific files are defined here:
61
OBJUS=win32$(OBJ) nt$(OBJ)
62
OBJXS=win32_$(OBJ) nt_$(OBJ)
64
OBJDS=win32l$(OBJ) ntl$(OBJ)
65
OBLXS=win32g$(OBJ) ntg$(OBJ) windllg$(OBJ)
66
OSDEP_H=win32/w32cfg.h
67
WINDLL_H=windll/windll.h windll/structs.h windll/decs.h
68
DLLDEF=.\windll\windll_lc.def # lcclink requires backslashes as dir-sep!!
69
WINDLL_IMP_H = windll/decs.h windll/structs.h
72
OBJU1 = unzip$(OBJ) $(CRC32)$(OBJ) crctab$(OBJ) crypt$(OBJ) envargs$(OBJ)
73
OBJU2 = explode$(OBJ) extract$(OBJ) fileio$(OBJ) globals$(OBJ)
74
OBJU3 = inflate$(OBJ) list$(OBJ) match$(OBJ) process$(OBJ) ttyio$(OBJ)
75
OBJU4 = unreduce$(OBJ) unshrink$(OBJ) zipinfo$(OBJ)
76
OBJU = $(OBJU1) $(OBJU2) $(OBJU3) $(OBJU4) $(OBJUS)
77
OBJX1 = unzipsf_$(OBJ) $(CRC32X)$(OBJ) crctab_$(OBJ) crypt_$(OBJ)
78
OBJX2 = extract_$(OBJ) fileio_$(OBJ) globals_$(OBJ) inflate_$(OBJ)
79
OBJX3 = match_$(OBJ) process_$(OBJ) ttyio_$(OBJ)
80
OBJX = $(OBJX1) $(OBJX2) $(OBJX3) $(OBJXS)
81
OBJF = funzip$(OBJ) $(CRC32F)$(OBJ) cryptf$(OBJ) inflatef$(OBJ) \
82
globalsf$(OBJ) ttyiof$(OBJ) $(OBJFS)
83
OBJDLL = windll$(OBJ) windll32.res api$(OBJ)
84
OBJD1 = $(CRC32L)$(OBJ) crctabl$(OBJ) cryptl$(OBJ)
85
OBJD2 = explodel$(OBJ) extractl$(OBJ) fileiol$(OBJ) globalsl$(OBJ)
86
OBJD3 = inflatel$(OBJ) listl$(OBJ) matchl$(OBJ) processl$(OBJ)
87
OBJD4 = unreducl$(OBJ) unshrnkl$(OBJ) zipinfol$(OBJ)
88
OBJD = $(OBJDLL) $(OBJD1) $(OBJD2) $(OBJD3) $(OBJD4) $(OBJDS)
89
OBLX1 = apig$(OBJ) $(CRC32G)$(OBJ) crctabg$(OBJ) cryptg$(OBJ)
90
OBLX2 = extractg$(OBJ) fileiog$(OBJ) globalsg$(OBJ) inflateg$(OBJ)
91
OBLX3 = matchg$(OBJ) processg$(OBJ)
92
OBLX = $(OBLX1) $(OBLX2) $(OBLX3) $(OBLXS)
95
UNZIP_H = unzip.h unzpriv.h globals.h $(OSDEP_H)
102
$(CC) -c $(CFLAGS_UN) $(OUT)$@ $<
105
$(AS) $(ASFLAGS) $(OUT)$@ $<
109
unzips: unzip.exe funzip.exe unzipsfx.exe
111
dllsample: uzexampl.exe
113
all: unzips dll dllsample guisfx
116
$(LD) $(LDFLAGS)$@ $(DEF) $(OBJU) $(LDFLAGS2)
119
$(LD) $(LDFLAGS)$@ $(DEF) $(OBJF) $(LDFLAGS2)
121
unzipsfx.exe: $(OBJX)
122
$(LD) $(LDFLAGS)$@ $(DEF) $(OBJX) $(LDFLAGS2)
124
unzip32.dll: $(DLLDEF) $(OBJD)
125
$(LD) $(DLLLDFLAG) $(LDFLAGS)$@ $(DLLDEF) $(OBJD) $(LDFLAGS2)
127
unzsfx32.lib: $(OBLX)
130
SFXWiz32.exe: $(OBGX) sfxwiz.res unzsfx32.lib
131
$(LD) -subsystem windows $(LDFLAGS)$@ \
132
$(OBGX) sfxwiz.res unzsfx32.lib
134
uzexampl.exe: uzexampl$(OBJ)
135
$(LD) $(LDFLAGS)$@ $(DEF) uzexampl$(OBJ) version.lib $(LDFLAGS2)
139
api$(OBJ): api.c $(UNZIP_H) unzvers.h
140
apihelp$(OBJ): apihelp.c $(UNZIP_H) unzvers.h
141
crc32$(OBJ): crc32.c $(UNZIP_H) zip.h
142
crctab$(OBJ): crctab.c $(UNZIP_H) zip.h
143
envargs$(OBJ): envargs.c $(UNZIP_H)
144
explode$(OBJ): explode.c $(UNZIP_H)
145
extract$(OBJ): extract.c $(UNZIP_H) crypt.h
146
fileio$(OBJ): fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h
147
globals$(OBJ): globals.c $(UNZIP_H)
148
inflate$(OBJ): inflate.c $(UNZIP_H)
149
list$(OBJ): list.c $(UNZIP_H)
150
match$(OBJ): match.c $(UNZIP_H)
151
process$(OBJ): process.c $(UNZIP_H)
152
ttyio$(OBJ): ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
153
unreduce$(OBJ): unreduce.c $(UNZIP_H)
154
unshrink$(OBJ): unshrink.c $(UNZIP_H)
155
unzip$(OBJ): unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h
156
zipinfo$(OBJ): zipinfo.c $(UNZIP_H)
158
funzip$(OBJ): funzip.c $(UNZIP_H) crypt.h ttyio.h tables.h
159
$(CC) -c $(CFLAGS) $(OUT)$@ funzip.c
161
uzexampl$(OBJ): windll/uzexampl.c windll/uzexampl.h
162
$(CC) -c $(CFLAGS_UN) -I./windll $(OUT)$@ windll/uzexampl.c
164
win32$(OBJ): win32/win32.c $(UNZIP_H) win32/nt.h unzvers.h
165
$(CC) -c $(CFLAGS_UN) -Iwin32 $(OUT)$@ win32/win32.c
167
nt$(OBJ): win32/nt.c $(UNZIP_H) win32/nt.h
168
$(CC) -c $(CFLAGS_UN) -Iwin32 $(OUT)$@ win32/nt.c
170
crc_lcc$(OBJ): win32/crc_lcc.asm
171
$(AS) $(ASFLAGS) $(OUT)$@ win32/crc_lcc.asm
173
crypt$(OBJ): crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
174
$(CC) -c $(CFLAGS_UN) $(OUT)$@ crypt.c
176
crc32f$(OBJ): crc32.c $(UNZIP_H) zip.h
177
$(CC) -c $(CFLAGS_FU) $(OUT)$@ crc32.c
179
cryptf$(OBJ): crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
180
$(CC) -c $(CFLAGS_FU) $(OUT)$@ crypt.c
182
globalsf$(OBJ): globals.c $(UNZIP_H)
183
$(CC) -c $(CFLAGS_FU) $(OUT)$@ globals.c
185
inflatef$(OBJ): inflate.c inflate.h $(UNZIP_H) crypt.h
186
$(CC) -c $(CFLAGS_FU) $(OUT)$@ inflate.c
188
ttyiof$(OBJ): ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
189
$(CC) -c $(CFLAGS_FU) $(OUT)$@ ttyio.c
191
win32f$(OBJ): win32/win32.c $(UNZIP_H) win32/nt.h
192
$(CC) -c $(CFLAGS_FU) -Iwin32 $(OUT)$@ win32/win32.c
194
crc32_$(OBJ): crc32.c $(UNZIP_H) zip.h
195
$(CC) -c $(CFLAGS_SX) $(OUT)$@ crc32.c
197
crctab_$(OBJ): crctab.c $(UNZIP_H) zip.h
198
$(CC) -c $(CFLAGS_SX) $(OUT)$@ crctab.c
200
crypt_$(OBJ): crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
201
$(CC) -c $(CFLAGS_SX) $(OUT)$@ crypt.c
203
extract_$(OBJ): extract.c $(UNZIP_H) crypt.h
204
$(CC) -c $(CFLAGS_SX) $(OUT)$@ extract.c
206
fileio_$(OBJ): fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h
207
$(CC) -c $(CFLAGS_SX) $(OUT)$@ fileio.c
209
globals_$(OBJ): globals.c $(UNZIP_H)
210
$(CC) -c $(CFLAGS_SX) $(OUT)$@ globals.c
212
inflate_$(OBJ): inflate.c inflate.h $(UNZIP_H) crypt.h
213
$(CC) -c $(CFLAGS_SX) $(OUT)$@ inflate.c
215
match_$(OBJ): match.c $(UNZIP_H)
216
$(CC) -c $(CFLAGS_SX) $(OUT)$@ match.c
218
process_$(OBJ): process.c $(UNZIP_H)
219
$(CC) -c $(CFLAGS_SX) $(OUT)$@ process.c
221
ttyio_$(OBJ): ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
222
$(CC) -c $(CFLAGS_SX) $(OUT)$@ ttyio.c
224
unzipsf_$(OBJ): unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h
225
$(CC) -c $(CFLAGS_SX) $(OUT)$@ unzip.c
227
win32_$(OBJ): win32/win32.c $(UNZIP_H) win32/nt.h
228
$(CC) -c $(CFLAGS_SX) -Iwin32 $(OUT)$@ win32/win32.c
230
nt_$(OBJ): win32/nt.c $(UNZIP_H) win32/nt.h
231
$(CC) -c $(CFLAGS_SX) -Iwin32 $(OUT)$@ win32/nt.c
233
# DLL compilation section
234
api$(OBJ): api.c $(UNZIP_H) $(WINDLL_H) unzvers.h
235
$(CC) -c $(CFLAGS_DL) $(OUT)$@ api.c
237
crc32l$(OBJ): crc32.c $(UNZIP_H) zip.h
238
$(CC) -c $(CFLAGS_DL) $(OUT)$@ crc32.c
240
crctabl$(OBJ): crctab.c $(UNZIP_H) zip.h
241
$(CC) -c $(CFLAGS_DL) $(OUT)$@ crctab.c
243
cryptl$(OBJ): crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
244
$(CC) -c $(CFLAGS_DL) $(OUT)$@ crypt.c
246
explodel$(OBJ): explode.c $(UNZIP_H)
247
$(CC) -c $(CFLAGS_DL) $(OUT)$@ explode.c
249
extractl$(OBJ): extract.c $(UNZIP_H) crypt.h
250
$(CC) -c $(CFLAGS_DL) $(OUT)$@ extract.c
252
fileiol$(OBJ): fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h
253
$(CC) -c $(CFLAGS_DL) $(OUT)$@ fileio.c
255
globalsl$(OBJ): globals.c $(UNZIP_H)
256
$(CC) -c $(CFLAGS_DL) $(OUT)$@ globals.c
258
inflatel$(OBJ): inflate.c inflate.h $(UNZIP_H) crypt.h
259
$(CC) -c $(CFLAGS_DL) $(OUT)$@ inflate.c
261
listl$(OBJ): list.c $(UNZIP_H) $(WINDLL_H)
262
$(CC) -c $(CFLAGS_DL) $(OUT)$@ list.c
264
matchl$(OBJ): match.c $(UNZIP_H)
265
$(CC) -c $(CFLAGS_DL) $(OUT)$@ match.c
267
processl$(OBJ): process.c $(UNZIP_H)
268
$(CC) -c $(CFLAGS_DL) $(OUT)$@ process.c
270
unreducl$(OBJ): unreduce.c $(UNZIP_H)
271
$(CC) -c $(CFLAGS_DL) $(OUT)$@ unreduce.c
273
unshrnkl$(OBJ): unshrink.c $(UNZIP_H)
274
$(CC) -c $(CFLAGS_DL) $(OUT)$@ unshrink.c
276
zipinfol$(OBJ): zipinfo.c $(UNZIP_H)
277
$(CC) -c $(CFLAGS_DL) $(OUT)$@ zipinfo.c
279
win32l$(OBJ): win32/win32.c $(UNZIP_H) win32/nt.h
280
$(CC) -c $(CFLAGS_DL) -Iwin32 $(OUT)$@ win32/win32.c
282
ntl$(OBJ): win32/nt.c $(UNZIP_H) win32/nt.h
283
$(CC) -c $(CFLAGS_DL) -Iwin32 $(OUT)$@ win32/nt.c
285
windll$(OBJ): windll/windll.c $(UNZIP_H) $(WINDLL_H) crypt.h unzvers.h consts.h
286
$(CC) -c $(CFLAGS_DL) $(OUT)$@ windll/windll.c
288
windll32.res: windll/windll.rc unzvers.h
289
- lrc -v -m -r $(DLLFLAG) -DWIN32 -o$@ windll/windll.rc
291
# SFX Lib compilation section
292
apig$(OBJ): api.c $(UNZIP_H) $(WINDLL_H) unzvers.h
293
$(CC) -c $(CFLAGS_SL) $(OUT)$@ api.c
295
crc32g$(OBJ): crc32.c $(UNZIP_H) zip.h
296
$(CC) -c $(CFLAGS_SL) $(OUT)$@ crc32.c
298
crctabg$(OBJ): crctab.c $(UNZIP_H) zip.h
299
$(CC) -c $(CFLAGS_SL) $(OUT)$@ crctab.c
301
cryptg$(OBJ): crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
302
$(CC) -c $(CFLAGS_SL) $(OUT)$@ crypt.c
304
extractg$(OBJ): extract.c $(UNZIP_H) $(WINDLL_H) crypt.h
305
$(CC) -c $(CFLAGS_SL) $(OUT)$@ extract.c
307
fileiog$(OBJ): fileio.c $(UNZIP_H) $(WINDLL_H) crypt.h ttyio.h ebcdic.h
308
$(CC) -c $(CFLAGS_SL) $(OUT)$@ fileio.c
310
globalsg$(OBJ): globals.c $(UNZIP_H)
311
$(CC) -c $(CFLAGS_SL) $(OUT)$@ globals.c
313
inflateg$(OBJ): inflate.c inflate.h $(UNZIP_H)
314
$(CC) -c $(CFLAGS_SL) $(OUT)$@ inflate.c
316
matchg$(OBJ): match.c $(UNZIP_H)
317
$(CC) -c $(CFLAGS_SL) $(OUT)$@ match.c
319
processg$(OBJ): process.c $(UNZIP_H) $(WINDLL_H)
320
$(CC) -c $(CFLAGS_SL) $(OUT)$@ process.c
322
win32g$(OBJ): win32/win32.c $(UNZIP_H) win32/nt.h
323
$(CC) -c $(CFLAGS_SL) -Iwin32 $(OUT)$@ win32/win32.c
325
ntg$(OBJ): win32/nt.c $(UNZIP_H) win32/nt.h
326
$(CC) -c $(CFLAGS_SL) -Iwin32 $(OUT)$@ win32/nt.c
328
windllg$(OBJ): windll/windll.c $(UNZIP_H) $(WINDLL_H) crypt.h unzvers.h consts.h
329
$(CC) -c $(CFLAGS_SL) $(OUT)$@ windll/windll.c
331
sfxwiz$(OBJ): windll/guisfx/sfxwiz.c windll/guisfx/dialog.h $(WINDLL_IMP_H)
332
$(CC) -c $(CFLAGS_GX) $(OUT)$@ windll/guisfx/sfxwiz.c
334
sfxwiz.res: windll/guisfx/sfxwiz.rc
335
- lrc -v -m -r -Iwindll/guisfx -DWIN32 -o$@ windll/guisfx/sfxwiz.rc