1
# WMAKE makefile for Windows 95 and Windows NT (Intel only)
2
# using Watcom C/C++ v11.0+, by Paul Kienitz, last revised 24 Jan 05.
1
# WMAKE makefile for Windows 9x and Windows NT (Intel only)
2
# using Watcom C/C++ v11.0+, by Paul Kienitz, last revised 18 Jan 2009.
3
3
# Makes UnZip.exe, fUnZip.exe, and UnZipSFX.exe.
5
5
# Invoke from UnZip source dir with "WMAKE -F WIN32\MAKEFILE.WAT [targets]"
6
6
# To build with debug info use "WMAKE DEBUG=1 ..."
7
7
# To build with no assembly modules use "WMAKE NOASM=1 ..."
8
# To support unshrinking use "WMAKE LAWSUIT=1 ..."
8
# To omit unshrinking support use "WMAKE NO_LZW=1 ..."
9
9
# To support unreducing, get the real unreduce.c and go "WMAKE OFFEND_RMS=1 ..."
10
10
# To use Info-Zip's generic timezone functions use "WMAKE USE_IZTIMEZONE=1 ..."
11
# To include support for bzip2 decompression, get the bzip2 source distribution
12
# into the bzip2/ subfolder and start compilation with "WMAKE USEBZ2=1 ..."
12
14
# Other options to be fed to the compiler can be specified in an environment
13
15
# variable called LOCAL_UNZIP.
77
89
# Our object files. OBJU is for UnZip, OBJX for UnZipSFX, OBJF for fUnZip:
79
OBJU1 = $(O)unzip.obj $(crcob) $(O)crctab.obj $(O)crypt.obj $(O)envargs.obj
91
OBJU1 = $(O)unzip.obj $(O)crc32.obj $(crcaob) $(O)crypt.obj $(O)envargs.obj
80
92
OBJU2 = $(O)explode.obj $(O)extract.obj $(O)fileio.obj $(O)globals.obj
81
93
OBJU3 = $(O)inflate.obj $(O)list.obj $(O)match.obj $(O)process.obj
82
OBJU4 = $(O)ttyio.obj $(O)unreduce.obj $(O)unshrink.obj $(O)zipinfo.obj
83
OBJUS = $(O)win32.obj $(O)nt.obj $(TIMEZONE_OBJU)
84
OBJU = $(OBJU1) $(OBJU2) $(OBJU3) $(OBJU4) $(OBJUS)
94
OBJU4 = $(O)ubz2err.obj $(O)ttyio.obj $(O)unreduce.obj $(O)unshrink.obj
95
OBJU5 = $(O)zipinfo.obj
96
OBJUS = $(O)win32.obj $(O)win32i64.obj $(O)nt.obj $(TIMEZONE_OBJU)
97
OBJU = $(OBJU1) $(OBJU2) $(OBJU3) $(OBJU4) $(OBJU5) $(OBJUS)
86
OBJX1 = $(O)unzip.obx $(crcob) $(O)crctab.obx $(O)crypt.obx $(O)extract.obx
99
OBJX1 = $(O)unzip.obx $(O)crc32.obx $(crcaob) $(O)crypt.obx $(O)extract.obx
87
100
OBJX2 = $(O)fileio.obx $(O)globals.obx $(O)inflate.obx $(O)match.obx
88
OBJX3 = $(O)process.obx $(O)ttyio.obx
89
OBJXS = $(O)win32.obx $(O)nt.obx $(TIMEZONE_OBJX)
101
OBJX3 = $(O)process.obx $(O)ttyio.obx $(O)ubz2err.obx
102
OBJXS = $(O)win32.obx $(O)win32i64.obx $(O)nt.obx $(TIMEZONE_OBJX)
90
103
OBJX = $(OBJX1) $(OBJX2) $(OBJX3) $(OBJXS)
92
OBJF1 = $(O)funzip.obj $(crcob) $(O)cryptf.obj $(O)globalsf.obj
93
OBJF2 = $(O)inflatef.obj $(O)ttyiof.obj
94
OBJFS = $(O)win32f.obj
105
OBJF1 = $(O)funzip.obj $(O)crc32f.obj $(crcaob) $(O)cryptf.obj
106
OBJF2 = $(O)globalsf.obj $(O)inflatef.obj $(O)ttyiof.obj
107
OBJFS = $(O)win32f.obj $(O)win32i64f.obj
95
108
OBJF = $(OBJF1) $(OBJF2) $(OBJFS)
97
OBJD1 = $(O)api.obj $(crcob) $(O)crctabl.obj $(O)cryptl.obj $(O)explodel.obj
110
OBJD1 = $(O)api.obj $(O)crc32l.obj $(crcaob) $(O)cryptl.obj $(O)explodel.obj
98
111
OBJD2 = $(O)extractl.obj $(O)fileiol.obj $(O)globalsl.obj $(O)inflatel.obj
99
OBJD3 = $(O)listl.obj $(O)matchl.obj $(O)processl.obj
112
OBJD3 = $(O)listl.obj $(O)matchl.obj $(O)processl.obj $(O)ubz2errl.obj
100
113
OBJD4 = $(O)unreducl.obj $(O)unshrnkl.obj $(O)zipinfol.obj
101
OBJDS = $(O)win32l.obj $(O)ntl.obj $(O)windll.obj $(TIMEZONE_OBJD)
114
OBJDS = $(O)win32l.obj $(O)win32i64l.obj $(O)ntl.obj $(O)windll.obj $(TIMEZONE_OBJD)
102
115
OBJD = $(OBJD1) $(OBJD2) $(OBJD3) $(OBJD4) $(OBJDS)
104
117
UNZIP_H = unzip.h unzpriv.h globals.h win32/w32cfg.h
151
166
x: UnZipSFX.exe .SYMBOLIC
152
167
d: UnZip32.dll .SYMBOLIC
154
UnZip.exe: $(OBDIR) $(OBJU)
155
$(link) $(lflags) $(ldebug) name $@ file {$(OBJU)}
169
UnZip.exe: $(OBDIR) $(OBJU) $(BZIPLIB) $(O)winapp.res
170
$(link) $(lflags) $(ldebug) name $@ file {$(OBJU)} $(BZ2LNKLIB)
157
UnZipSFX.exe: $(OBDIR) $(OBJX)
158
$(link) $(lflags) $(ldebug) name $@ file {$(OBJX)}
172
UnZipSFX.exe: $(OBDIR) $(OBJX) $(BZIPLIB)
173
$(link) $(lflags) $(ldebug) name $@ file {$(OBJX)} $(BZ2LNKLIB)
160
175
fUnZip.exe: $(OBDIR) $(OBJF)
161
176
$(link) $(lflags) $(ldebug) name $@ file {$(OBJF)}
163
UnZip32.dll: $(OBDIR) $(OBJD)
164
$(link) $(lflags_dll) $(ldebug) name $@ file {$(OBJD)}
178
UnZip32.dll: $(OBDIR) $(OBJD) $(BZIPLIB) $(O)windll.res
179
$(link) $(lflags_dll) $(ldebug) name $@ file {$(OBJD)} $(BZ2LNKLIB)
180
$(rc) $(rflags) $(O)windll.res $@
166
182
uzexampl.exe: $(OBDIR) $(O)uzexampl.obj
167
$(link) $(lflags) $(ldebug) name $@ file {$(O)uzexampl.obj}
183
$(link) $(lflags) $(ldebug) name $@ file {$(O)uzexampl.obj} lib version.lib
169
185
# Source dependencies:
171
187
# generic (UnZip, fUnZip):
173
$(O)crc32.obj: crc32.c $(UNZIP_H) zip.h
174
$(O)crctab.obj: crctab.c $(UNZIP_H) zip.h
175
$(O)crypt.obj: crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
189
$(O)crc32.obj: crc32.c $(UNZIP_H) zip.h crc32.h
190
$(O)crypt.obj: crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
176
191
$(O)envargs.obj: envargs.c $(UNZIP_H)
177
192
$(O)explode.obj: explode.c $(UNZIP_H)
178
$(O)extract.obj: extract.c $(UNZIP_H) crypt.h
179
$(O)fileio.obj: fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h
180
$(O)funzip.obj: funzip.c $(UNZIP_H) crypt.h ttyio.h tables.h
193
$(O)extract.obj: extract.c $(UNZIP_H) crc32.h crypt.h
194
$(O)fileio.obj: fileio.c $(UNZIP_H) crc32.h crypt.h ttyio.h ebcdic.h
195
$(O)funzip.obj: funzip.c $(UNZIP_H) crc32.h crypt.h ttyio.h
181
196
$(O)globals.obj: globals.c $(UNZIP_H)
182
197
$(O)inflate.obj: inflate.c inflate.h $(UNZIP_H)
183
198
$(O)list.obj: list.c $(UNZIP_H)
184
199
$(O)match.obj: match.c $(UNZIP_H)
185
$(O)process.obj: process.c $(UNZIP_H)
200
$(O)process.obj: process.c $(UNZIP_H) crc32.h
186
201
$(O)timezone.obj: timezone.c $(UNZIP_H) zip.h timezone.h
187
202
$(O)ttyio.obj: ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
203
$(O)ubz2err.obj: ubz2err.c $(UNZIP_H)
188
204
$(O)unreduce.obj: unreduce.c $(UNZIP_H)
189
205
$(O)unshrink.obj: unshrink.c $(UNZIP_H)
190
206
$(O)unzip.obj: unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h
193
209
# UnZipSFX variants:
195
$(O)crc32.obx: crc32.c $(UNZIP_H) zip.h
196
$(O)crctab.obx: crctab.c $(UNZIP_H) zip.h
197
$(O)crypt.obx: crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
198
$(O)extract.obx: extract.c $(UNZIP_H) crypt.h
199
$(O)fileio.obx: fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h
211
$(O)crc32.obx: crc32.c $(UNZIP_H) zip.h crc32.h
212
$(O)crypt.obx: crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
213
$(O)extract.obx: extract.c $(UNZIP_H) crc32.h crypt.h
214
$(O)fileio.obx: fileio.c $(UNZIP_H) crc32.h crypt.h ttyio.h ebcdic.h
200
215
$(O)globals.obx: globals.c $(UNZIP_H)
201
216
$(O)inflate.obx: inflate.c inflate.h $(UNZIP_H)
202
217
$(O)match.obx: match.c $(UNZIP_H)
203
$(O)process.obx: process.c $(UNZIP_H)
218
$(O)process.obx: process.c $(UNZIP_H) crc32.h
204
219
$(O)timezone.obx: timezone.c $(UNZIP_H) zip.h timezone.h
205
220
$(O)ttyio.obx: ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
221
$(O)ubz2err.obx: ubz2err.c $(UNZIP_H)
206
222
$(O)unzip.obx: unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h
208
224
# Special case object files:
213
229
$(O)win32.obx: win32\win32.c $(UNZIP_H) win32\nt.h
214
230
$(cc) $(cdebux) $(cflags) $(cvars) -DSFX win32\win32.c -fo=$@
232
$(O)win32i64.obj: win32\win32i64.c $(UNZIP_H)
233
$(cc) $(cdebug) $(cflags) $(cvars) win32\win32i64.c -fo=$@
235
$(O)win32i64.obx: win32\win32i64.c $(UNZIP_H)
236
$(cc) $(cdebux) $(cflags) $(cvars) -DSFX win32\win32i64.c -fo=$@
216
238
$(O)nt.obj: win32\nt.c $(UNZIP_H) win32\nt.h
217
239
$(cc) $(cdebug) $(cflags) $(cvars) win32\nt.c -fo=$@
222
244
$(O)crc_i386.obj: win32\crc_i386.asm
223
245
$(asm) $(aflags) $(avars) win32\crc_i386.asm -fo=$@
247
$(O)winapp.res: win32\winapp.rc unzvers.h
248
$(rc) $(rflags) /r /fo=$@ /dWIN32 win32\winapp.rc
225
250
# Variant object files for fUnZip:
252
$(O)crc32f.obj: crc32.c $(UNZIP_H) zip.h crc32.h
253
$(cc) $(CFLAGS_FU) crc32.c -fo=$@
227
255
$(O)cryptf.obj: crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
228
256
$(cc) $(CFLAGS_FU) crypt.c -fo=$@
239
267
$(O)win32f.obj: win32\win32.c $(UNZIP_H)
240
268
$(cc) $(CFLAGS_FU) win32\win32.c -fo=$@
270
$(O)win32i64f.obj: win32\win32i64.c $(UNZIP_H)
271
$(cc) $(CFLAGS_FU) win32\win32i64.c -fo=$@
242
273
# DLL compilation section
243
274
$(O)api.obj: api.c $(UNZIP_H) $(WINDLL_H) unzvers.h
244
275
$(cc) $(CFLAGS_DL) api.c -fo=$@
245
$(O)crc32l.obj: crc32.c $(UNZIP_H) zip.h
276
$(O)crc32l.obj: crc32.c $(UNZIP_H) zip.h crc32.h
246
277
$(cc) $(CFLAGS_DL) crc32.c -fo=$@
247
$(O)crctabl.obj: crctab.c $(UNZIP_H) zip.h
248
$(cc) $(CFLAGS_DL) crctab.c -fo=$@
249
$(O)cryptl.obj: crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
278
$(O)cryptl.obj: crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
250
279
$(cc) $(CFLAGS_DL) crypt.c -fo=$@
251
280
$(O)explodel.obj: explode.c $(UNZIP_H)
252
281
$(cc) $(CFLAGS_DL) explode.c -fo=$@
253
$(O)extractl.obj: extract.c $(UNZIP_H) $(WINDLL_H) crypt.h
282
$(O)extractl.obj: extract.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h
254
283
$(cc) $(CFLAGS_DL) extract.c -fo=$@
255
$(O)fileiol.obj: fileio.c $(UNZIP_H) $(WINDLL_H) crypt.h ttyio.h ebcdic.h
284
$(O)fileiol.obj: fileio.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h ttyio.h ebcdic.h
256
285
$(cc) $(CFLAGS_DL) fileio.c -fo=$@
257
286
$(O)globalsl.obj: globals.c $(UNZIP_H)
258
287
$(cc) $(CFLAGS_DL) globals.c -fo=$@
262
291
$(cc) $(CFLAGS_DL) list.c -fo=$@
263
292
$(O)matchl.obj: match.c $(UNZIP_H)
264
293
$(cc) $(CFLAGS_DL) match.c -fo=$@
265
$(O)processl.obj: process.c $(UNZIP_H) $(WINDLL_H)
294
$(O)processl.obj: process.c $(UNZIP_H) $(WINDLL_H) crc32.h
266
295
$(cc) $(CFLAGS_DL) process.c -fo=$@
267
296
$(O)timezonl.obj: timezone.c $(UNZIP_H) zip.h timezone.h
268
297
$(cc) $(CFLAGS_DL) timezone.c -fo=$@
298
$(O)ubz2errl.obj: ubz2err.c $(UNZIP_H)
299
$(cc) $(CFLAGS_DL) ubz2err.c -fo=$@
269
300
$(O)unreducl.obj: unreduce.c $(UNZIP_H)
270
301
$(cc) $(CFLAGS_DL) unreduce.c -fo=$@
271
302
$(O)unshrnkl.obj: unshrink.c $(UNZIP_H)
276
307
$(O)win32l.obj: win32\win32.c $(UNZIP_H) win32\nt.h
277
308
$(cc) $(CFLAGS_DL) -I. win32\win32.c -fo=$@
310
$(O)win32i64l.obj: win32\win32i64.c $(UNZIP_H)
311
$(cc) $(CFLAGS_DL) -I. win32\win32i64.c -fo=$@
279
313
$(O)ntl.obj: win32\nt.c $(UNZIP_H) win32\nt.h
280
314
$(cc) $(CFLAGS_DL) -I. win32\nt.c -fo=$@
283
317
$(O)windll.obj: crypt.h unzvers.h consts.h
284
318
$(cc) $(CFLAGS_DL) -I. windll\windll.c -fo=$@
286
windll.res: windll\windll.rc unzvers.h
287
$(rc) /l 0x409 /fo$@ /i windll /d WIN32 windll\windll.rc
320
$(O)windll.res: windll\windll.rc unzvers.h
321
$(rc) $(rflags) /r /fo=$@ /i=windll /dWIN32 windll\windll.rc
289
323
# Windll command line example:
291
324
$(O)uzexampl.obj: windll/uzexampl.c windll/uzexampl.h
292
325
$(cc) $(cdebug) $(cflags) $(cvars) windll\uzexampl.c -fo=$@
327
# The bzip2 (de)compression library for BZIP2 support:
328
$(IZ_BZIP2)/$(OBDIR)/bz2.lib : .ALWAYS .RECHECK
329
$(MAKE) -h -f $(IZ_BZIP2)/makbz2iz.wat CC=$(cc) AR=lib386 &
330
CFLSYS="$(cdebug) $(cflags)" &
331
BZROOTDIR=$(IZ_BZIP2) BZOBDIR=$(IZ_BZIP2)/$(OBDIR)
294
333
# Creation of subdirectory for intermediate files
298
337
# Unwanted file removal:
339
clean_bz2_lib: .SYMBOLIC
340
-$(MAKE) -h -f $(IZ_BZIP2)/makbz2iz.wat &
341
BZROOTDIR=$(IZ_BZIP2) BZOBDIR=$(IZ_BZIP2)\$(OBDIR) clean
343
clean: clean_bz2_lib .SYMBOLIC
303
347
cleaner: clean .SYMBOLIC