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,> |