]>
Commit | Line | Data |
---|---|---|
1 | # Makefile for Independent JPEG Group's software | |
2 | ||
3 | # This makefile is suitable for Borland C on MS-DOS or OS/2. | |
4 | # It works with Borland C++ for DOS, revision 3.0 or later, | |
5 | # and has been tested with Borland C++ for OS/2. | |
6 | # Watch out for optimization bugs in the OS/2 compilers --- see notes below! | |
7 | # Thanks to Tom Wright and Ge' Weijers (original DOS) and | |
8 | # Ken Porter (OS/2) for this file. | |
9 | ||
10 | # Read installation instructions before saying "make" !! | |
11 | ||
12 | # Are we under DOS or OS/2? | |
13 | !if !$d(DOS) && !$d(OS2) | |
14 | !if $d(__OS2__) | |
15 | OS2=1 | |
16 | !else | |
17 | DOS=1 | |
18 | !endif | |
19 | !endif | |
20 | ||
21 | # The name of your C compiler: | |
22 | CC= bcc | |
23 | ||
24 | # You may need to adjust these cc options: | |
25 | !if $d(DOS) | |
26 | CFLAGS= -O2 -mm -w-par -w-stu -w-ccc -w-rch | |
27 | !else | |
28 | CFLAGS= -O1 -w-par -w-stu -w-ccc -w-rch | |
29 | !endif | |
30 | # -O2 enables full code optimization (for pre-3.0 Borland C++, use -O -G -Z). | |
31 | # -O2 is buggy in Borland OS/2 C++ revision 2.0, so use -O1 there for now. | |
32 | # If you have Borland OS/2 C++ revision 1.0, use -O or no optimization at all. | |
33 | # -mm selects medium memory model (near data, far code pointers; DOS only!) | |
34 | # -w-par suppresses warnings about unused function parameters | |
35 | # -w-stu suppresses warnings about incomplete structures | |
36 | # -w-ccc suppresses warnings about compile-time-constant conditions | |
37 | # -w-rch suppresses warnings about unreachable code | |
38 | # Generally, we recommend defining any configuration symbols in jconfig.h, | |
39 | # NOT via -D switches here. | |
40 | ||
41 | # Link-time cc options: | |
42 | !if $d(DOS) | |
43 | LDFLAGS= -mm | |
44 | # memory model option here must match CFLAGS! | |
45 | !else | |
46 | LDFLAGS= | |
47 | # -lai full-screen app | |
48 | # -lc case-significant link | |
49 | !endif | |
50 | ||
51 | # Put here the object file name for the correct system-dependent memory | |
52 | # manager file. | |
53 | # For DOS, we recommend jmemdos.c and jmemdosa.asm. | |
54 | # For OS/2, we recommend jmemnobs.c (flat memory!) | |
55 | # SYSDEPMEMLIB must list the same files with "+" signs for the librarian. | |
56 | !if $d(DOS) | |
57 | SYSDEPMEM= jmemdos.obj jmemdosa.obj | |
58 | SYSDEPMEMLIB= +jmemdos.obj +jmemdosa.obj | |
59 | !else | |
60 | SYSDEPMEM= jmemnobs.obj | |
61 | SYSDEPMEMLIB= +jmemnobs.obj | |
62 | !endif | |
63 | ||
64 | # End of configurable options. | |
65 | ||
66 | ||
67 | # source files: JPEG library proper | |
68 | LIBSOURCES= jcapimin.c jcapistd.c jccoefct.c jccolor.c jcdctmgr.c jchuff.c \ | |
69 | jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c jcparam.c \ | |
70 | jcphuff.c jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c \ | |
71 | jdatadst.c jdatasrc.c jdcoefct.c jdcolor.c jddctmgr.c jdhuff.c \ | |
72 | jdinput.c jdmainct.c jdmarker.c jdmaster.c jdmerge.c jdphuff.c \ | |
73 | jdpostct.c jdsample.c jdtrans.c jerror.c jfdctflt.c jfdctfst.c \ | |
74 | jfdctint.c jidctflt.c jidctfst.c jidctint.c jidctred.c jquant1.c \ | |
75 | jquant2.c jutils.c jmemmgr.c | |
76 | # memmgr back ends: compile only one of these into a working library | |
77 | SYSDEPSOURCES= jmemansi.c jmemname.c jmemnobs.c jmemdos.c jmemmac.c | |
78 | # source files: cjpeg/djpeg/jpegtran applications, also rdjpgcom/wrjpgcom | |
79 | APPSOURCES= cjpeg.c djpeg.c jpegtran.c rdjpgcom.c wrjpgcom.c cdjpeg.c \ | |
80 | rdcolmap.c rdswitch.c transupp.c rdppm.c wrppm.c rdgif.c wrgif.c \ | |
81 | rdtarga.c wrtarga.c rdbmp.c wrbmp.c rdrle.c wrrle.c | |
82 | SOURCES= $(LIBSOURCES) $(SYSDEPSOURCES) $(APPSOURCES) | |
83 | # files included by source files | |
84 | INCLUDES= jchuff.h jdhuff.h jdct.h jerror.h jinclude.h jmemsys.h jmorecfg.h \ | |
85 | jpegint.h jpeglib.h jversion.h cdjpeg.h cderror.h transupp.h | |
86 | # documentation, test, and support files | |
87 | DOCS= README install.doc usage.doc cjpeg.1 djpeg.1 jpegtran.1 rdjpgcom.1 \ | |
88 | wrjpgcom.1 wizard.doc example.c libjpeg.doc structure.doc \ | |
89 | coderules.doc filelist.doc change.log | |
90 | MKFILES= configure makefile.cfg makefile.ansi makefile.unix makefile.bcc \ | |
91 | makefile.mc6 makefile.dj makefile.wat makefile.vc makelib.ds \ | |
92 | makeapps.ds makeproj.mac makcjpeg.st makdjpeg.st makljpeg.st \ | |
93 | maktjpeg.st makefile.manx makefile.sas makefile.mms makefile.vms \ | |
94 | makvms.opt | |
95 | CONFIGFILES= jconfig.cfg jconfig.bcc jconfig.mc6 jconfig.dj jconfig.wat \ | |
96 | jconfig.vc jconfig.mac jconfig.st jconfig.manx jconfig.sas \ | |
97 | jconfig.vms | |
98 | CONFIGUREFILES= config.guess config.sub install-sh ltconfig ltmain.sh | |
99 | OTHERFILES= jconfig.doc ckconfig.c ansi2knr.c ansi2knr.1 jmemdosa.asm | |
100 | TESTFILES= testorig.jpg testimg.ppm testimg.bmp testimg.jpg testprog.jpg \ | |
101 | testimgp.jpg | |
102 | DISTFILES= $(DOCS) $(MKFILES) $(CONFIGFILES) $(SOURCES) $(INCLUDES) \ | |
103 | $(CONFIGUREFILES) $(OTHERFILES) $(TESTFILES) | |
104 | # library object files common to compression and decompression | |
105 | COMOBJECTS= jcomapi.obj jutils.obj jerror.obj jmemmgr.obj $(SYSDEPMEM) | |
106 | # compression library object files | |
107 | CLIBOBJECTS= jcapimin.obj jcapistd.obj jctrans.obj jcparam.obj jdatadst.obj \ | |
108 | jcinit.obj jcmaster.obj jcmarker.obj jcmainct.obj jcprepct.obj \ | |
109 | jccoefct.obj jccolor.obj jcsample.obj jchuff.obj jcphuff.obj \ | |
110 | jcdctmgr.obj jfdctfst.obj jfdctflt.obj jfdctint.obj | |
111 | # decompression library object files | |
112 | DLIBOBJECTS= jdapimin.obj jdapistd.obj jdtrans.obj jdatasrc.obj \ | |
113 | jdmaster.obj jdinput.obj jdmarker.obj jdhuff.obj jdphuff.obj \ | |
114 | jdmainct.obj jdcoefct.obj jdpostct.obj jddctmgr.obj jidctfst.obj \ | |
115 | jidctflt.obj jidctint.obj jidctred.obj jdsample.obj jdcolor.obj \ | |
116 | jquant1.obj jquant2.obj jdmerge.obj | |
117 | # These objectfiles are included in libjpeg.lib | |
118 | LIBOBJECTS= $(CLIBOBJECTS) $(DLIBOBJECTS) $(COMOBJECTS) | |
119 | # object files for sample applications (excluding library files) | |
120 | COBJECTS= cjpeg.obj rdppm.obj rdgif.obj rdtarga.obj rdrle.obj rdbmp.obj \ | |
121 | rdswitch.obj cdjpeg.obj | |
122 | DOBJECTS= djpeg.obj wrppm.obj wrgif.obj wrtarga.obj wrrle.obj wrbmp.obj \ | |
123 | rdcolmap.obj cdjpeg.obj | |
124 | TROBJECTS= jpegtran.obj rdswitch.obj cdjpeg.obj transupp.obj | |
125 | ||
126 | ||
127 | all: libjpeg.lib cjpeg.exe djpeg.exe jpegtran.exe rdjpgcom.exe wrjpgcom.exe | |
128 | ||
129 | libjpeg.lib: $(LIBOBJECTS) | |
130 | - del libjpeg.lib | |
131 | tlib libjpeg.lib /E /C @&&| | |
132 | +jcapimin.obj +jcapistd.obj +jctrans.obj +jcparam.obj +jdatadst.obj & | |
133 | +jcinit.obj +jcmaster.obj +jcmarker.obj +jcmainct.obj +jcprepct.obj & | |
134 | +jccoefct.obj +jccolor.obj +jcsample.obj +jchuff.obj +jcphuff.obj & | |
135 | +jcdctmgr.obj +jfdctfst.obj +jfdctflt.obj +jfdctint.obj +jdapimin.obj & | |
136 | +jdapistd.obj +jdtrans.obj +jdatasrc.obj +jdmaster.obj +jdinput.obj & | |
137 | +jdmarker.obj +jdhuff.obj +jdphuff.obj +jdmainct.obj +jdcoefct.obj & | |
138 | +jdpostct.obj +jddctmgr.obj +jidctfst.obj +jidctflt.obj +jidctint.obj & | |
139 | +jidctred.obj +jdsample.obj +jdcolor.obj +jquant1.obj +jquant2.obj & | |
140 | +jdmerge.obj +jcomapi.obj +jutils.obj +jerror.obj +jmemmgr.obj & | |
141 | $(SYSDEPMEMLIB) | |
142 | | | |
143 | ||
144 | cjpeg.exe: $(COBJECTS) libjpeg.lib | |
145 | $(CC) $(LDFLAGS) -ecjpeg.exe $(COBJECTS) libjpeg.lib | |
146 | ||
147 | djpeg.exe: $(DOBJECTS) libjpeg.lib | |
148 | $(CC) $(LDFLAGS) -edjpeg.exe $(DOBJECTS) libjpeg.lib | |
149 | ||
150 | jpegtran.exe: $(TROBJECTS) libjpeg.lib | |
151 | $(CC) $(LDFLAGS) -ejpegtran.exe $(TROBJECTS) libjpeg.lib | |
152 | ||
153 | rdjpgcom.exe: rdjpgcom.c | |
154 | !if $d(DOS) | |
155 | $(CC) -ms -O rdjpgcom.c | |
156 | !else | |
157 | $(CC) $(CFLAGS) rdjpgcom.c | |
158 | !endif | |
159 | ||
160 | # On DOS, wrjpgcom needs large model so it can malloc a 64K chunk | |
161 | wrjpgcom.exe: wrjpgcom.c | |
162 | !if $d(DOS) | |
163 | $(CC) -ml -O wrjpgcom.c | |
164 | !else | |
165 | $(CC) $(CFLAGS) wrjpgcom.c | |
166 | !endif | |
167 | ||
168 | # This "{}" syntax allows Borland Make to "batch" source files. | |
169 | # In this way, each run of the compiler can build many modules. | |
170 | .c.obj: | |
171 | $(CC) $(CFLAGS) -c{ $<} | |
172 | ||
173 | jconfig.h: jconfig.doc | |
174 | echo You must prepare a system-dependent jconfig.h file. | |
175 | echo Please read the installation directions in install.doc. | |
176 | exit 1 | |
177 | ||
178 | clean: | |
179 | - del *.obj | |
180 | - del libjpeg.lib | |
181 | - del cjpeg.exe | |
182 | - del djpeg.exe | |
183 | - del jpegtran.exe | |
184 | - del rdjpgcom.exe | |
185 | - del wrjpgcom.exe | |
186 | - del testout*.* | |
187 | ||
188 | test: cjpeg.exe djpeg.exe jpegtran.exe | |
189 | - del testout*.* | |
190 | djpeg -dct int -ppm -outfile testout.ppm testorig.jpg | |
191 | djpeg -dct int -bmp -colors 256 -outfile testout.bmp testorig.jpg | |
192 | cjpeg -dct int -outfile testout.jpg testimg.ppm | |
193 | djpeg -dct int -ppm -outfile testoutp.ppm testprog.jpg | |
194 | cjpeg -dct int -progressive -opt -outfile testoutp.jpg testimg.ppm | |
195 | jpegtran -outfile testoutt.jpg testprog.jpg | |
196 | !if $d(DOS) | |
197 | fc /b testimg.ppm testout.ppm | |
198 | fc /b testimg.bmp testout.bmp | |
199 | fc /b testimg.jpg testout.jpg | |
200 | fc /b testimg.ppm testoutp.ppm | |
201 | fc /b testimgp.jpg testoutp.jpg | |
202 | fc /b testorig.jpg testoutt.jpg | |
203 | !else | |
204 | echo n > n.tmp | |
205 | comp testimg.ppm testout.ppm < n.tmp | |
206 | comp testimg.bmp testout.bmp < n.tmp | |
207 | comp testimg.jpg testout.jpg < n.tmp | |
208 | comp testimg.ppm testoutp.ppm < n.tmp | |
209 | comp testimgp.jpg testoutp.jpg < n.tmp | |
210 | comp testorig.jpg testoutt.jpg < n.tmp | |
211 | del n.tmp | |
212 | !endif | |
213 | ||
214 | ||
215 | jcapimin.obj: jcapimin.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
216 | jcapistd.obj: jcapistd.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
217 | jccoefct.obj: jccoefct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
218 | jccolor.obj: jccolor.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
219 | jcdctmgr.obj: jcdctmgr.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h | |
220 | jchuff.obj: jchuff.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jchuff.h | |
221 | jcinit.obj: jcinit.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
222 | jcmainct.obj: jcmainct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
223 | jcmarker.obj: jcmarker.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
224 | jcmaster.obj: jcmaster.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
225 | jcomapi.obj: jcomapi.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
226 | jcparam.obj: jcparam.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
227 | jcphuff.obj: jcphuff.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jchuff.h | |
228 | jcprepct.obj: jcprepct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
229 | jcsample.obj: jcsample.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
230 | jctrans.obj: jctrans.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
231 | jdapimin.obj: jdapimin.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
232 | jdapistd.obj: jdapistd.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
233 | jdatadst.obj: jdatadst.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h | |
234 | jdatasrc.obj: jdatasrc.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h | |
235 | jdcoefct.obj: jdcoefct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
236 | jdcolor.obj: jdcolor.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
237 | jddctmgr.obj: jddctmgr.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h | |
238 | jdhuff.obj: jdhuff.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdhuff.h | |
239 | jdinput.obj: jdinput.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
240 | jdmainct.obj: jdmainct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
241 | jdmarker.obj: jdmarker.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
242 | jdmaster.obj: jdmaster.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
243 | jdmerge.obj: jdmerge.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
244 | jdphuff.obj: jdphuff.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdhuff.h | |
245 | jdpostct.obj: jdpostct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
246 | jdsample.obj: jdsample.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
247 | jdtrans.obj: jdtrans.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
248 | jerror.obj: jerror.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jversion.h jerror.h | |
249 | jfdctflt.obj: jfdctflt.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h | |
250 | jfdctfst.obj: jfdctfst.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h | |
251 | jfdctint.obj: jfdctint.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h | |
252 | jidctflt.obj: jidctflt.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h | |
253 | jidctfst.obj: jidctfst.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h | |
254 | jidctint.obj: jidctint.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h | |
255 | jidctred.obj: jidctred.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h | |
256 | jquant1.obj: jquant1.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
257 | jquant2.obj: jquant2.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
258 | jutils.obj: jutils.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h | |
259 | jmemmgr.obj: jmemmgr.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jmemsys.h | |
260 | jmemansi.obj: jmemansi.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jmemsys.h | |
261 | jmemname.obj: jmemname.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jmemsys.h | |
262 | jmemnobs.obj: jmemnobs.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jmemsys.h | |
263 | jmemdos.obj: jmemdos.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jmemsys.h | |
264 | jmemmac.obj: jmemmac.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jmemsys.h | |
265 | cjpeg.obj: cjpeg.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h jversion.h | |
266 | djpeg.obj: djpeg.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h jversion.h | |
267 | jpegtran.obj: jpegtran.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h transupp.h jversion.h | |
268 | rdjpgcom.obj: rdjpgcom.c jinclude.h jconfig.h | |
269 | wrjpgcom.obj: wrjpgcom.c jinclude.h jconfig.h | |
270 | cdjpeg.obj: cdjpeg.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h | |
271 | rdcolmap.obj: rdcolmap.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h | |
272 | rdswitch.obj: rdswitch.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h | |
273 | transupp.obj: transupp.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h transupp.h | |
274 | rdppm.obj: rdppm.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h | |
275 | wrppm.obj: wrppm.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h | |
276 | rdgif.obj: rdgif.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h | |
277 | wrgif.obj: wrgif.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h | |
278 | rdtarga.obj: rdtarga.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h | |
279 | wrtarga.obj: wrtarga.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h | |
280 | rdbmp.obj: rdbmp.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h | |
281 | wrbmp.obj: wrbmp.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h | |
282 | rdrle.obj: rdrle.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h | |
283 | wrrle.obj: wrrle.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h | |
284 | jmemdosa.obj: jmemdosa.asm | |
285 | tasm /mx jmemdosa.asm |