Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6725 siemargl 1
#------------------------------------------------------------------------------
2
# Makefile for UnZip 5.53 and later                     Greg Roelofs and others
3
# Version:  Microsoft C (5.x and later)                               29 Dec 05
4
#------------------------------------------------------------------------------
5
 
6
# Users of MSC 6/7 and NMAKE can use the Unix Makefile (target msc_dos),
7
# if desired.  This makefile works just fine, too, however.  OS/2 users
8
# can cross-compile using os2/makefile.os2 (target mscdos).  Note that
9
# there is possibly a bug in MSC 6 which screws up funzip (goes into
10
# infinite loop? --this has not been confirmed in over a year...).  There
11
# is definitely a bug (internal compiler error) in MSC 6.00 while com-
12
# piling explode.c (fixed in 6.0a, 6.0ax, 6.0ax2, 7.*, 8.*).
13
 
14
 
15
#    GNU make doesn't like the return value from "rem"
16
#STRIP=rem
17
STRIP=echo  Ignore this line.
18
#    If you don't have UPX, LZEXE, or PKLITE, get one of them. Then define:
19
#    (NOTE: upx needs a 386 or higher system to run the exe compressor)
20
#STRIP=upx --8086 --best
21
#    or
22
#STRIP=lzexe
23
#    or
24
#STRIP=pklite
25
#    and remove /e from LDFLAGS.
26
#    This makes a big difference in .exe size (and possibly load time).
27
 
28
#    Optional nonstandard preprocessor flags (as -DCHECK_EOF or -DDOS_WILD)
29
#    should be added to the environment via "set LOCAL_UNZIP=-DFOO" or added
30
#    to the declaration of LOC here:
31
LOC = $(LOCAL_UNZIP)
32
 
33
# Type for CPU required: 0: 8086, 1: 80186, 2: 80286, 3: 80386, etc.
34
CPU_TYP = 0
35
 
36
#UNMODEL=M	# medium model for UnZip
37
# with MSC 5.1, 6.0 and 8.x, small model exceeds 64k code segment; use medium
38
# deflate64 support requires large or compact model
39
UNMODEL=L	# large model for UnZip with Deflate64 support
40
FUMODEL=C	# compact model for fUnZip (Deflate64 support enabled)
41
SXMODEL=S	# small model for UnZipSFX (without Deflate64 support)
42
 
43
# name of Flag to select memory model for assembler compiles, supported
44
# values are __SMALL__ , __MEDIUM__ , __COMPACT__ , __LARGE__ :
45
# for MSC 5.1 and 8.x use:
46
ASUNMODEL=__LARGE__	# keep in sync with UNMODEL definition !!
47
ASFUMODEL=__COMPACT__	# keep in sync with FUMODEL definition !!
48
ASSXMODEL=__SMALL__	# keep in sync with SXMODEL definition !!
49
 
50
# Uncomment the following three macros to use the optimized CRC32 assembler
51
# routine in UnZip and UnZipSFX:
52
ASMFLG = -DASM_CRC
53
ASMOBJS = crc_i86.obj
54
ASMOBJF = crc_i86_.obj
55
ASMOBJX = crc_i86x.obj
56
 
57
ASCPUFLAG = __$(CPU_TYP)86
58
 
59
CC = cl
60
# add -G2(3,4) for 286 (386, 486) and/or -FPi87 for 80x87:
61
CC_GENFLAGS = -nologo -DMSC $(ASMFLG) $(LOC) -I. -G$(CPU_TYP)
62
CC_SPEEDOPT = -Oait -Gs         # -Ox does not work for inflate.c
63
CC_SIZEOPT  = -Oas -Gs
64
CFLAGS_UN = -A$(UNMODEL) $(CC_GENFLAGS) $(CC_SPEEDOPT)
65
CFLAGS_FU = -A$(FUMODEL) $(CC_GENFLAGS) $(CC_SPEEDOPT) -DFUNZIP
66
CFLAGS_SX = -A$(SXMODEL) $(CC_GENFLAGS) $(CC_SIZEOPT) -DSFX
67
 
68
AS = masm
69
ASFLAGS = -ml -D$(ASCPUFLAG) $(LOC)
70
 
71
LD = Link	# mixed case to disable special handling by GNU Make
72
# remove /e if you have LZEXE or PKLITE:
73
LDFLAGS = /nologo/noi/e/st:0x0c00/farcall/packcode
74
# "/farcall/packcode" are only useful for `large code' memory models
75
# but should be a "no-op" for small code models.
76
LDFLAGS2 = ,$*
77
LDFLAGS2_UN = $(LDFLAGS2);
78
LDFLAGS2_FU = $(LDFLAGS2);
79
LDFLAGS2_SX = $(LDFLAGS2);
80
 
81
OBJS1 = unzip.obj crc32.obj crypt.obj envargs.obj explode.obj
82
OBJS2 = extract.obj fileio.obj globals.obj inflate.obj list.obj match.obj
83
OBJS3 = process.obj ttyio.obj unreduce.obj unshrink.obj zipinfo.obj
84
OBJS4 = msdos.obj $(ASMOBJS)
85
OBJS = $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4)
86
 
87
OBJX1 = unzipsfx.obj crc32x.obj cryptx.obj extractx.obj fileiox.obj
88
OBJX2 = globalsx.obj inflatex.obj matchx.obj processx.obj ttyiox.obj
89
OBJX3 = msdosx.obj $(ASMOBJX)
90
OBJX = $(OBJX1) $(OBJX2) $(OBJX3)
91
 
92
OBJF = funzip.obj crc32_.obj crypt_.obj globals_.obj inflate_.obj ttyio_.obj \
93
	msdos_.obj $(ASMOBJF)
94
 
95
UNZIP_H = unzip.h unzpriv.h globals.h msdos/doscfg.h
96
 
97
 
98
default:        unzip.exe funzip.exe unzipsfx.exe
99
 
100
#clean:
101
# As long as the brain damaged old ``Make'' utility from MSC 5.1 and earlier
102
# (NMAKE from MSC 6.0 + would work !) remains supported, a "clean" target
103
# cannot be inserted !!
104
 
105
# pattern rules for implicit dependencies:
106
.asm.obj:
107
	$(AS) $(ASFLAGS) -D$(ASUNMODEL) $<, $@;
108
 
109
.c.obj:
110
	$(CC) -c $(CFLAGS_UN) $*.c
111
 
112
# individual dependencies and action rules:
113
crc_i86.obj:    msdos/crc_i86.asm
114
	$(AS) $(ASFLAGS) -D$(ASUNMODEL) msdos/crc_i86.asm, $@;
115
 
116
crc_i86_.obj:   msdos/crc_i86.asm
117
	$(AS) $(ASFLAGS) -D$(ASFUMODEL) msdos/crc_i86.asm, $@;
118
 
119
crc_i86x.obj:   msdos/crc_i86.asm
120
	$(AS) $(ASFLAGS) -D$(ASSXMODEL) msdos/crc_i86.asm, $@;
121
 
122
crc32.obj:      crc32.c $(UNZIP_H) zip.h crc32.h
123
 
124
crc32_.obj:     crc32.c $(UNZIP_H) zip.h crc32.h
125
	$(CC) -c $(CFLAGS_FU) -Focrc32_.obj crc32.c
126
 
127
crc32x.obj:     crc32.c $(UNZIP_H) zip.h crc32.h
128
	$(CC) -c $(CFLAGS_SX) -Focrc32x.obj crc32.c
129
 
130
crypt.obj:      crypt.c $(UNZIP_H) crypt.h crc32.h ttyio.h zip.h
131
 
132
crypt_.obj:     crypt.c $(UNZIP_H) crypt.h crc32.h ttyio.h zip.h
133
	$(CC) -c $(CFLAGS_FU) -Focrypt_.obj crypt.c
134
 
135
cryptx.obj:     crypt.c $(UNZIP_H) crypt.h crc32.h ttyio.h zip.h
136
	$(CC) -c $(CFLAGS_SX) -Focryptx.obj crypt.c
137
 
138
envargs.obj:    envargs.c $(UNZIP_H)
139
 
140
explode.obj:    explode.c $(UNZIP_H)
141
 
142
extract.obj:    extract.c $(UNZIP_H) crc32.h crypt.h
143
 
144
extractx.obj:   extract.c $(UNZIP_H) crc32.h crypt.h
145
	$(CC) -c $(CFLAGS_SX) -Foextractx.obj extract.c
146
 
147
fileio.obj:     fileio.c $(UNZIP_H) crc32.h crypt.h ttyio.h ebcdic.h
148
 
149
fileiox.obj:    fileio.c $(UNZIP_H) crc32.h crypt.h ttyio.h ebcdic.h
150
	$(CC) -c $(CFLAGS_SX) -Fofileiox.obj fileio.c
151
 
152
funzip.obj:     funzip.c $(UNZIP_H) crc32.h crypt.h ttyio.h
153
	$(CC) -c $(CFLAGS_FU) funzip.c
154
 
155
globals.obj:    globals.c $(UNZIP_H)
156
 
157
globals_.obj:   globals.c $(UNZIP_H)
158
	$(CC) -c $(CFLAGS_FU) -Foglobals_.obj globals.c
159
 
160
globalsx.obj:   globals.c $(UNZIP_H)
161
	$(CC) -c $(CFLAGS_SX) -Foglobalsx.obj globals.c
162
 
163
inflate.obj:    inflate.c inflate.h $(UNZIP_H)
164
 
165
inflate_.obj:   inflate.c inflate.h $(UNZIP_H) crypt.h
166
	$(CC) -c $(CFLAGS_FU) -Foinflate_.obj inflate.c
167
 
168
inflatex.obj:   inflate.c inflate.h $(UNZIP_H) crypt.h
169
	$(CC) -c $(CFLAGS_SX) -Foinflatex.obj inflate.c
170
 
171
list.obj:       list.c $(UNZIP_H)
172
 
173
match.obj:      match.c $(UNZIP_H)
174
 
175
matchx.obj:     match.c $(UNZIP_H)
176
	$(CC) -c $(CFLAGS_SX) -Fomatchx.obj match.c
177
 
178
msdos.obj:      msdos/msdos.c $(UNZIP_H)
179
	$(CC) -c $(CFLAGS_UN) msdos/msdos.c
180
 
181
msdos_.obj:     msdos/msdos.c $(UNZIP_H)
182
	$(CC) -c $(CFLAGS_FU) -Fomsdos_.obj msdos/msdos.c
183
 
184
msdosx.obj:     msdos/msdos.c $(UNZIP_H)
185
	$(CC) -c $(CFLAGS_SX) -Fomsdosx.obj msdos/msdos.c
186
 
187
process.obj:    process.c $(UNZIP_H) crc32.h
188
 
189
processx.obj:   process.c $(UNZIP_H) crc32.h
190
	$(CC) -c $(CFLAGS_SX) -Foprocessx.obj process.c
191
 
192
ttyio.obj:      ttyio.c $(UNZIP_H) crypt.h ttyio.h zip.h
193
 
194
ttyio_.obj:     ttyio.c $(UNZIP_H) crypt.h ttyio.h zip.h
195
	$(CC) -c $(CFLAGS_FU) -Fottyio_.obj ttyio.c
196
 
197
ttyiox.obj:     ttyio.c $(UNZIP_H) crypt.h ttyio.h zip.h
198
	$(CC) -c $(CFLAGS_SX) -Fottyiox.obj ttyio.c
199
 
200
unreduce.obj:   unreduce.c $(UNZIP_H)
201
 
202
unshrink.obj:   unshrink.c $(UNZIP_H)
203
 
204
unzip.obj:      unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h
205
 
206
unzipsfx.obj:   unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h
207
	$(CC) -c $(CFLAGS_SX) -Founzipsfx.obj unzip.c
208
 
209
zipinfo.obj:    zipinfo.c $(UNZIP_H)
210
 
211
 
212
# MS make:
213
# -------
214
unzip.exe:      $(OBJS)
215
	echo $(OBJS1)+ > unzip.rsp
216
	echo $(OBJS2)+ >> unzip.rsp
217
	echo $(OBJS3)+ >> unzip.rsp
218
	echo $(OBJS4) >> unzip.rsp
219
	echo $(LDFLAGS2_UN) >> unzip.rsp
220
	$(LD) $(LDFLAGS) @unzip.rsp
221
	del unzip.rsp
222
	$(STRIP) unzip.exe
223
 
224
unzipsfx.exe:   $(OBJX)
225
	echo $(OBJX1)+ > unzipsfx.rsp
226
	echo $(OBJX2)+ >> unzipsfx.rsp
227
	echo $(OBJX3) >> unzipsfx.rsp
228
	echo $(LDFLAGS2_UN) >> unzipsfx.rsp
229
	$(LD) $(LDFLAGS) @unzipsfx.rsp
230
	del unzipsfx.rsp
231
	$(STRIP) unzipsfx.exe
232
 
233
funzip.exe:     $(OBJF)
234
	echo $(OBJF) > funzip.rsp
235
	echo $(LDFLAGS2_FU) >> funzip.rsp
236
	$(LD) $(LDFLAGS) @funzip.rsp
237
	del funzip.rsp
238
	$(STRIP) funzip.exe
239
 
240
# better makes which know how to deal with 128-char limit on command line:
241
# -----------------------------------------------------------------------
242
#unzip.exe:      $(OBJS)
243
#	$(LD) $(LDFLAGS) $(OBJS) $(LDFLAGS2)
244
#	$(STRIP) unzip.exe
245
#
246
#unzipsfx.exe:   $(OBJX)
247
#	$(LD) $(LDFLAGS) $(OBJX) $(LDFLAGS2)
248
#	$(STRIP) unzipsfx.exe
249
#
250
#funzip.exe:     $(OBJF)
251
#	$(LD) $(LDFLAGS) $(OBJF) $(LDFLAGS2_FU)
252
#	$(STRIP) funzip.exe