xref: /plan9/sys/src/cmd/gs/src/jpeg.mak (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
1#    Copyright (C) 1994, 2000 Aladdin Enterprises.  All rights reserved.
2#
3# This software is provided AS-IS with no warranty, either express or
4# implied.
5#
6# This software is distributed under license and may not be copied,
7# modified or distributed except as expressly authorized under the terms
8# of the license contained in the file LICENSE in this distribution.
9#
10# For more information about licensing, please refer to
11# http://www.ghostscript.com/licensing/. For information on
12# commercial licensing, go to http://www.artifex.com/licensing/ or
13# contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14# San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
16# $Id: jpeg.mak,v 1.7 2002/06/16 09:11:47 lpd Exp $
17# makefile for Independent JPEG Group library code.
18# Users of this makefile must define the following:
19#	GSSRCDIR - the GS library source directory
20#	JSRCDIR - the source directory
21#	JGENDIR - the generated intermediate file directory
22#	JOBJDIR - the object directory
23#	JVERSION - the library major version number (currently "6",
24#	   "6b", "62" and "6a" are also supported)
25#	SHARE_JPEG - 0 to compile the library, 1 to share
26#	JPEG_NAME - if SHARE_JPEG = 1, the name of the shared library
27#
28# Note that if SHARE_JPEG = 1, you must still have the library header files
29# available to compile Ghostscript: see doc/Make.htm for more information.
30
31# NOTE: This makefile is only known to work with the following versions
32# of the IJG library: 6, 6a, 6b.
33# As of March 27, 1998, version 6b is the current version.
34# The odds are good that other versions v6* will work.
35#
36# You can get the IJG library by Internet anonymous FTP from the following
37# places:
38#   Standard distribution (tar + gzip format, Unix end-of-line):
39#	ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v*.tar.gz
40#   MS-DOS archive (PKZIP a.k.a. zip format, MS-DOS end-of-line):
41#	ftp://ftp.simtel.net/pub/simtelnet/msdos/graphics/jpegsr*.zip
42# Please see Ghostscript's `Make.htm' file for instructions about how to
43# unpack these archives.
44#
45# When each version of Ghostscript is released, we copy the associated
46# version of the IJG library to
47#	ftp://ftp.cs.wisc.edu/ghost/3rdparty/
48# for more convenient access.
49#
50# The platform-specific makefiles expect the jpeg source to be in a
51# directory named 'jpeg' at the top level of the source tree, as per
52# the instructions in Make.htm. If you'd prefer to use the versioned
53# directory name of the native library source, you can override this
54# by setting JSRCSDIR in the platform-specific makefile.
55#
56# NOTE: For some obscure reason (probably a bug in djtarx), if you are
57# compiling on a DesqView/X system, you should use the zip version of the
58# IJG library, not the tar.gz version.
59
60JSRC=$(JSRCDIR)$(D)
61JGEN=$(JGENDIR)$(D)
62JOBJ=$(JOBJDIR)$(D)
63JO_=$(O_)$(JOBJ)
64
65# Define the name of this makefile.
66JPEG_MAK=$(GLSRC)jpeg.mak
67
68jpeg.clean : jpeg.config-clean jpeg.clean-not-config-clean
69
70### WRONG.  MUST DELETE OBJ AND GEN FILES SELECTIVELY.
71jpeg.clean-not-config-clean :
72	$(RM_) $(JOBJ)*.$(OBJ)
73
74jpeg.config-clean :
75	$(RMN_) $(JGEN)jpeg*.dev
76
77# JI_ and JF_ are defined in gs.mak.
78# See below for why we need to include GLGENDIR here.
79JCC=$(CC_) $(I_)$(GLGENDIR) $(II)$(JI_)$(_I) $(JF_)
80
81# We need our own version of jconfig.h, and our own "wrapper" for
82# jmorecfg.h.
83# We also need to change D_MAX_BLOCKS_IN_MCU for Adobe compatibility;
84# we do this in jmorecfg.h.
85
86# Because this file is included after lib.mak, we can't use _h macros
87# to express indirect dependencies; instead, we build the dependencies
88# into the rules for copying the files.
89# Note: jerror__h and jpeglib__h are defined in lib.mak.
90jconfig__h=$(GLGEN)jconfig_.h $(GLGEN)arch.h
91#jerror__h=$(GLSRC)jerror_.h
92jmorecf__h=$(GLGEN)jmorecf_.h
93#jpeglib__h=$(GLGEN)jpeglib_.h
94
95# We use our own jconfig.h and jmorecfg.h iff we aren't sharing the library.
96# The library itself may need copies of them.
97
98jconfig_h=$(GLGEN)jconfig.h
99jmorecfg_h=$(GLGEN)jmorecfg.h
100
101$(GLGEN)jconfig_.h : $(GLGEN)jconfig$(SHARE_JPEG).h $(MAKEFILE)
102	$(CP_) $(GLGEN)jconfig$(SHARE_JPEG).h $(GLGEN)jconfig_.h
103
104$(GLGEN)jconfig0.h : $(ECHOGS_XE) $(GLSRC)gsjconf.h $(stdpre_h) $(MAKEFILE)
105	$(EXP)$(ECHOGS_XE) -w $(GLGEN)jconfig0.h -+R $(GLSRC)stdpn.h -+R $(GLSRC)stdpre.h -+R $(GLSRC)gsjconf.h
106	$(RM_) $(GLGEN)jconfig1.h
107
108$(GLGEN)jconfig1.h : $(ECHOGS_XE) $(JPEG_MAK)
109	$(EXP)$(ECHOGS_XE) -w $(GLGEN)jconfig1.h -x 23 include -x 203c jconfig.h -x 3e
110	$(RMN_) $(GLGEN)jconfig0.h $(GLGEN)jconfig.h
111
112$(GLGEN)jconfig.h : $(GLGEN)jconfig0.h
113	$(CP_) $(GLGEN)jconfig0.h $(GLGEN)jconfig.h
114
115$(GLGEN)jmorecf_.h : $(GLGEN)jmorecf$(SHARE_JPEG).h $(MAKEFILE)
116	$(CP_) $(GLGEN)jmorecf$(SHARE_JPEG).h $(GLGEN)jmorecf_.h
117
118$(GLGEN)jmorecf0.h : $(GLSRC)gsjmorec.h $(GLGEN)jmcorig.h
119	$(CP_) $(GLSRC)gsjmorec.h $(GLGEN)jmorecf0.h
120	$(RM_) $(GLGEN)jmorecf1.h
121
122$(GLGEN)jmorecf1.h : $(ECHOGS_XE) $(JPEG_MAK)
123	$(EXP)$(ECHOGS_XE) -w $(GLGEN)jmorecf1.h -x 23 include -x 203c jmorecfg.h -x 3e
124	$(RMN_) $(GLGEN)jmorecf0.h $(GLGEN)jmorecfg.h
125
126$(GLGEN)jmorecfg.h : $(GLGEN)jmorecf0.h
127	$(CP_) $(GLGEN)jmorecf0.h $(GLGEN)jmorecfg.h
128
129$(GLGEN)jmcorig.h : $(JSRC)jmorecfg.h
130	$(CP_) $(JSRC)jmorecfg.h $(GLGEN)jmcorig.h
131
132# Contrary to what some portability bigots assert as fact, C compilers are
133# not consistent about where they start searching for #included files:
134# some always start by looking in the same directory as the .c file being
135# compiled, before using the search path specified with -I on the command
136# line, while others do not do this.  For this reason, we must explicitly
137# copy and then delete all the .c files, because they need to obtain our
138# modified version of the header files.  We must similarly copy up all
139# all .h files that include either of these files, directly or indirectly.
140# (The only such .h files currently are jinclude.h and jpeglib.h.)
141# And finally, we must include GLGENDIR in the -I list (see JCC= above).
142
143JHCOPY=$(GLGEN)jinclude.h $(GLGEN)jpeglib.h
144
145$(GLGEN)jinclude.h : $(JSRC)jinclude.h
146	$(CP_) $(JSRC)jinclude.h $(GLGEN)jinclude.h
147
148# jpeglib_.h doesn't really depend on jconfig.h or jmcorig.h,
149# but we choose to put the dependencies here rather than in the
150# definition of jpeglib__h.
151$(GLGEN)jpeglib_.h : $(GLGEN)jpeglib$(SHARE_JPEG).h $(MAKEFILE)
152	$(CP_) $(GLGEN)jpeglib$(SHARE_JPEG).h $(GLGEN)jpeglib_.h
153
154$(GLGEN)jpeglib0.h : $(JSRC)jpeglib.h $(jconfig_h) $(jmorecfg_h)
155	$(CP_) $(JSRC)jpeglib.h $(GLGEN)jpeglib0.h
156
157$(GLGEN)jpeglib1.h : $(ECHOGS_XE) $(JPEG_MAK)
158	$(EXP)$(ECHOGS_XE) -w $(GLGEN)jpeglib1.h -x 23 include -x 203c jpeglib.h -x 3e
159
160# We also need jpeglib.h for #includes in the library itself.
161$(GLGEN)jpeglib.h : $(JSRC)jpeglib.h
162	$(CP_) $(JSRC)jpeglib.h $(GLGEN)jpeglib.h
163
164# In order to avoid having to keep the dependency lists for the IJG code
165# accurate, we simply make all of them depend on the only files that
166# we are ever going to change, and on all the .h files that must be copied up.
167# This is too conservative, but only hurts us if we are changing our own
168# j*.h files, which happens only rarely during development.
169
170JDEP=$(AK) $(jconfig_h) $(jmorecfg_h) $(JHCOPY)
171
172# Code common to compression and decompression.
173
174jpegc0_=$(JOBJ)jcomapi.$(OBJ) $(JOBJ)jutils.$(OBJ) $(JOBJ)jmemmgr.$(OBJ) $(JOBJ)jerror.$(OBJ)
175$(JGEN)jpegc0.dev : $(JPEG_MAK) $(ECHOGS_XE) $(jpegc0_)
176	$(SETMOD) $(JGEN)jpegc0 $(jpegc0_)
177
178$(JOBJ)jcomapi.$(OBJ) : $(JSRC)jcomapi.c $(JDEP)
179	$(CP_) $(JSRC)jcomapi.c $(GLGEN)jcomapi.c
180	$(JCC) $(JO_)jcomapi.$(OBJ) $(C_) $(GLGEN)jcomapi.c
181	$(RM_) $(GLGEN)jcomapi.c
182
183$(JOBJ)jutils.$(OBJ) : $(JSRC)jutils.c $(JDEP)
184	$(CP_) $(JSRC)jutils.c $(GLGEN)jutils.c
185	$(JCC) $(JO_)jutils.$(OBJ) $(C_) $(GLGEN)jutils.c
186	$(RM_) $(GLGEN)jutils.c
187
188$(JOBJ)jmemmgr.$(OBJ) : $(JSRC)jmemmgr.c $(JDEP)
189	$(CP_) $(JSRC)jmemmgr.c $(GLGEN)jmemmgr.c
190	$(JCC) $(JO_)jmemmgr.$(OBJ) $(C_) $(GLGEN)jmemmgr.c
191	$(RM_) $(GLGEN)jmemmgr.c
192
193$(JOBJ)jerror.$(OBJ) : $(JSRC)jerror.c $(JDEP)
194	$(CP_) $(JSRC)jerror.c $(GLGEN)jerror.c
195	$(JCC) $(JO_)jerror.$(OBJ) $(C_) $(GLGEN)jerror.c
196	$(RM_) $(GLGEN)jerror.c
197
198# Encoding (compression) code.
199
200$(JGEN)jpege.dev : $(TOP_MAKEFILES) $(JPEG_MAK) $(JGEN)jpege_$(SHARE_JPEG).dev
201	$(CP_) $(JGEN)jpege_$(SHARE_JPEG).dev $(JGEN)jpege.dev
202
203$(JGEN)jpege_1.dev : $(TOP_MAKEFILES) $(JPEG_MAK) $(ECHOGS_XE)
204	$(SETMOD) $(JGEN)jpege_1 -lib $(JPEG_NAME)
205
206# we actually ignore the setting of JVERSION here, which could be used
207# to substitute for jpeg[ed]6.dev to handle differences. However, the
208# build requirements for all supported versions are identical, and
209# new versions are unlikely to be different. We therefore treat all
210# subversions the same.
211$(JGEN)jpege_0.dev : $(TOP_MAKEFILES) $(JPEG_MAK) $(JGEN)jpege6.dev
212	$(CP_) $(JGEN)jpege6.dev $(JGEN)jpege_0.dev
213
214jpege6=$(JOBJ)jcapimin.$(OBJ) $(JOBJ)jcapistd.$(OBJ) $(JOBJ)jcinit.$(OBJ)
215
216jpege_1=$(JOBJ)jccoefct.$(OBJ) $(JOBJ)jccolor.$(OBJ) $(JOBJ)jcdctmgr.$(OBJ)
217jpege_2=$(JOBJ)jchuff.$(OBJ) $(JOBJ)jcmainct.$(OBJ) $(JOBJ)jcmarker.$(OBJ) $(JOBJ)jcmaster.$(OBJ)
218jpege_3=$(JOBJ)jcparam.$(OBJ) $(JOBJ)jcprepct.$(OBJ) $(JOBJ)jcsample.$(OBJ) $(JOBJ)jfdctint.$(OBJ)
219
220$(JGEN)jpege6.dev : $(JPEG_MAK) $(ECHOGS_XE) $(JGEN)jpegc0.dev $(jpege6) $(jpege_1) $(jpege_2) $(jpege_3)
221	$(SETMOD) $(JGEN)jpege6 $(jpege6)
222	$(ADDMOD) $(JGEN)jpege6 -include $(JGEN)jpegc0.dev
223	$(ADDMOD) $(JGEN)jpege6 -obj $(jpege_1)
224	$(ADDMOD) $(JGEN)jpege6 -obj $(jpege_2)
225	$(ADDMOD) $(JGEN)jpege6 -obj $(jpege_3)
226
227$(JOBJ)jcapimin.$(OBJ) : $(JSRC)jcapimin.c $(JDEP)
228	$(CP_) $(JSRC)jcapimin.c $(GLGEN)jcapimin.c
229	$(JCC) $(JO_)jcapimin.$(OBJ) $(C_) $(GLGEN)jcapimin.c
230	$(RM_) $(GLGEN)jcapimin.c
231
232$(JOBJ)jcapistd.$(OBJ) : $(JSRC)jcapistd.c $(JDEP)
233	$(CP_) $(JSRC)jcapistd.c $(GLGEN)jcapistd.c
234	$(JCC) $(JO_)jcapistd.$(OBJ) $(C_) $(GLGEN)jcapistd.c
235	$(RM_) $(GLGEN)jcapistd.c
236
237$(JOBJ)jcinit.$(OBJ) : $(JSRC)jcinit.c $(JDEP)
238	$(CP_) $(JSRC)jcinit.c $(GLGEN)jcinit.c
239	$(JCC) $(JO_)jcinit.$(OBJ) $(C_) $(GLGEN)jcinit.c
240	$(RM_) $(GLGEN)jcinit.c
241
242$(JOBJ)jccoefct.$(OBJ) : $(JSRC)jccoefct.c $(JDEP)
243	$(CP_) $(JSRC)jccoefct.c $(GLGEN)jccoefct.c
244	$(JCC) $(JO_)jccoefct.$(OBJ) $(C_) $(GLGEN)jccoefct.c
245	$(RM_) $(GLGEN)jccoefct.c
246
247$(JOBJ)jccolor.$(OBJ) : $(JSRC)jccolor.c $(JDEP)
248	$(CP_) $(JSRC)jccolor.c $(GLGEN)jccolor.c
249	$(JCC) $(JO_)jccolor.$(OBJ) $(C_) $(GLGEN)jccolor.c
250	$(RM_) $(GLGEN)jccolor.c
251
252$(JOBJ)jcdctmgr.$(OBJ) : $(JSRC)jcdctmgr.c $(JDEP)
253	$(CP_) $(JSRC)jcdctmgr.c $(GLGEN)jcdctmgr.c
254	$(JCC) $(JO_)jcdctmgr.$(OBJ) $(C_) $(GLGEN)jcdctmgr.c
255	$(RM_) $(GLGEN)jcdctmgr.c
256
257$(JOBJ)jchuff.$(OBJ) : $(JSRC)jchuff.c $(JDEP)
258	$(CP_) $(JSRC)jchuff.c $(GLGEN)jchuff.c
259	$(JCC) $(JO_)jchuff.$(OBJ) $(C_) $(GLGEN)jchuff.c
260	$(RM_) $(GLGEN)jchuff.c
261
262$(JOBJ)jcmainct.$(OBJ) : $(JSRC)jcmainct.c $(JDEP)
263	$(CP_) $(JSRC)jcmainct.c $(GLGEN)jcmainct.c
264	$(JCC) $(JO_)jcmainct.$(OBJ) $(C_) $(GLGEN)jcmainct.c
265	$(RM_) $(GLGEN)jcmainct.c
266
267$(JOBJ)jcmarker.$(OBJ) : $(JSRC)jcmarker.c $(JDEP)
268	$(CP_) $(JSRC)jcmarker.c $(GLGEN)jcmarker.c
269	$(JCC) $(JO_)jcmarker.$(OBJ) $(C_) $(GLGEN)jcmarker.c
270	$(RM_) $(GLGEN)jcmarker.c
271
272$(JOBJ)jcmaster.$(OBJ) : $(JSRC)jcmaster.c $(JDEP)
273	$(CP_) $(JSRC)jcmaster.c $(GLGEN)jcmaster.c
274	$(JCC) $(JO_)jcmaster.$(OBJ) $(C_) $(GLGEN)jcmaster.c
275	$(RM_) $(GLGEN)jcmaster.c
276
277$(JOBJ)jcparam.$(OBJ) : $(JSRC)jcparam.c $(JDEP)
278	$(CP_) $(JSRC)jcparam.c $(GLGEN)jcparam.c
279	$(JCC) $(JO_)jcparam.$(OBJ) $(C_) $(GLGEN)jcparam.c
280	$(RM_) $(GLGEN)jcparam.c
281
282$(JOBJ)jcprepct.$(OBJ) : $(JSRC)jcprepct.c $(JDEP)
283	$(CP_) $(JSRC)jcprepct.c $(GLGEN)jcprepct.c
284	$(JCC) $(JO_)jcprepct.$(OBJ) $(C_) $(GLGEN)jcprepct.c
285	$(RM_) $(GLGEN)jcprepct.c
286
287$(JOBJ)jcsample.$(OBJ) : $(JSRC)jcsample.c $(JDEP)
288	$(CP_) $(JSRC)jcsample.c $(GLGEN)jcsample.c
289	$(JCC) $(JO_)jcsample.$(OBJ) $(C_) $(GLGEN)jcsample.c
290	$(RM_) $(GLGEN)jcsample.c
291
292$(JOBJ)jfdctint.$(OBJ) : $(JSRC)jfdctint.c $(JDEP)
293	$(CP_) $(JSRC)jfdctint.c $(GLGEN)jfdctint.c
294	$(JCC) $(JO_)jfdctint.$(OBJ) $(C_) $(GLGEN)jfdctint.c
295	$(RM_) $(GLGEN)jfdctint.c
296
297# Decompression code
298
299$(JGEN)jpegd.dev : $(TOP_MAKEFILES) $(JPEG_MAK) $(JGEN)jpegd_$(SHARE_JPEG).dev
300	$(CP_) $(JGEN)jpegd_$(SHARE_JPEG).dev $(JGEN)jpegd.dev
301
302$(JGEN)jpegd_1.dev : $(TOP_MAKEFILES) $(JPEG_MAK) $(ECHOGS_XE)
303	$(SETMOD) $(JGEN)jpegd_1 -lib $(JPEG_NAME)
304
305$(JGEN)jpegd_0.dev : $(TOP_MAKEFILES) $(JPEG_MAK) $(JGEN)jpegd6.dev
306	$(CP_) $(JGEN)jpegd6.dev $(JGEN)jpegd_0.dev
307
308jpegd6=$(JOBJ)jdapimin.$(OBJ) $(JOBJ)jdapistd.$(OBJ) $(JOBJ)jdinput.$(OBJ) $(JOBJ)jdphuff.$(OBJ)
309
310jpegd_1=$(JOBJ)jdcoefct.$(OBJ) $(JOBJ)jdcolor.$(OBJ)
311jpegd_2=$(JOBJ)jddctmgr.$(OBJ) $(JOBJ)jdhuff.$(OBJ) $(JOBJ)jdmainct.$(OBJ) $(JOBJ)jdmarker.$(OBJ)
312jpegd_3=$(JOBJ)jdmaster.$(OBJ) $(JOBJ)jdpostct.$(OBJ) $(JOBJ)jdsample.$(OBJ) $(JOBJ)jidctint.$(OBJ)
313
314$(JGEN)jpegd6.dev : $(JPEG_MAK) $(ECHOGS_XE) $(JGEN)jpegc0.dev $(jpegd6) $(jpegd_1) $(jpegd_2) $(jpegd_3)
315	$(SETMOD) $(JGEN)jpegd6 $(jpegd6)
316	$(ADDMOD) $(JGEN)jpegd6 -include $(JGEN)jpegc0.dev
317	$(ADDMOD) $(JGEN)jpegd6 -obj $(jpegd_1)
318	$(ADDMOD) $(JGEN)jpegd6 -obj $(jpegd_2)
319	$(ADDMOD) $(JGEN)jpegd6 -obj $(jpegd_3)
320
321$(JOBJ)jdapimin.$(OBJ) : $(JSRC)jdapimin.c $(JDEP)
322	$(CP_) $(JSRC)jdapimin.c $(GLGEN)jdapimin.c
323	$(JCC) $(JO_)jdapimin.$(OBJ) $(C_) $(GLGEN)jdapimin.c
324	$(RM_) $(GLGEN)jdapimin.c
325
326$(JOBJ)jdapistd.$(OBJ) : $(JSRC)jdapistd.c $(JDEP)
327	$(CP_) $(JSRC)jdapistd.c $(GLGEN)jdapistd.c
328	$(JCC) $(JO_)jdapistd.$(OBJ) $(C_) $(GLGEN)jdapistd.c
329	$(RM_) $(GLGEN)jdapistd.c
330
331$(JOBJ)jdcoefct.$(OBJ) : $(JSRC)jdcoefct.c $(JDEP)
332	$(CP_) $(JSRC)jdcoefct.c $(GLGEN)jdcoefct.c
333	$(JCC) $(JO_)jdcoefct.$(OBJ) $(C_) $(GLGEN)jdcoefct.c
334	$(RM_) $(GLGEN)jdcoefct.c
335
336$(JOBJ)jdcolor.$(OBJ) : $(JSRC)jdcolor.c $(JDEP)
337	$(CP_) $(JSRC)jdcolor.c $(GLGEN)jdcolor.c
338	$(JCC) $(JO_)jdcolor.$(OBJ) $(C_) $(GLGEN)jdcolor.c
339	$(RM_) $(GLGEN)jdcolor.c
340
341$(JOBJ)jddctmgr.$(OBJ) : $(JSRC)jddctmgr.c $(JDEP)
342	$(CP_) $(JSRC)jddctmgr.c $(GLGEN)jddctmgr.c
343	$(JCC) $(JO_)jddctmgr.$(OBJ) $(C_) $(GLGEN)jddctmgr.c
344	$(RM_) $(GLGEN)jddctmgr.c
345
346$(JOBJ)jdhuff.$(OBJ) : $(JSRC)jdhuff.c $(JDEP)
347	$(CP_) $(JSRC)jdhuff.c $(GLGEN)jdhuff.c
348	$(JCC) $(JO_)jdhuff.$(OBJ) $(C_) $(GLGEN)jdhuff.c
349	$(RM_) $(GLGEN)jdhuff.c
350
351$(JOBJ)jdinput.$(OBJ) : $(JSRC)jdinput.c $(JDEP)
352	$(CP_) $(JSRC)jdinput.c $(GLGEN)jdinput.c
353	$(JCC) $(JO_)jdinput.$(OBJ) $(C_) $(GLGEN)jdinput.c
354	$(RM_) $(GLGEN)jdinput.c
355
356$(JOBJ)jdmainct.$(OBJ) : $(JSRC)jdmainct.c $(JDEP)
357	$(CP_) $(JSRC)jdmainct.c $(GLGEN)jdmainct.c
358	$(JCC) $(JO_)jdmainct.$(OBJ) $(C_) $(GLGEN)jdmainct.c
359	$(RM_) $(GLGEN)jdmainct.c
360
361$(JOBJ)jdmarker.$(OBJ) : $(JSRC)jdmarker.c $(JDEP)
362	$(CP_) $(JSRC)jdmarker.c $(GLGEN)jdmarker.c
363	$(JCC) $(JO_)jdmarker.$(OBJ) $(C_) $(GLGEN)jdmarker.c
364	$(RM_) $(GLGEN)jdmarker.c
365
366$(JOBJ)jdmaster.$(OBJ) : $(JSRC)jdmaster.c $(JDEP)
367	$(CP_) $(JSRC)jdmaster.c $(GLGEN)jdmaster.c
368	$(JCC) $(JO_)jdmaster.$(OBJ) $(C_) $(GLGEN)jdmaster.c
369	$(RM_) $(GLGEN)jdmaster.c
370
371$(JOBJ)jdphuff.$(OBJ) : $(JSRC)jdphuff.c $(JDEP)
372	$(CP_) $(JSRC)jdphuff.c $(GLGEN)jdphuff.c
373	$(JCC) $(JO_)jdphuff.$(OBJ) $(C_) $(GLGEN)jdphuff.c
374	$(RM_) $(GLGEN)jdphuff.c
375
376$(JOBJ)jdpostct.$(OBJ) : $(JSRC)jdpostct.c $(JDEP)
377	$(CP_) $(JSRC)jdpostct.c $(GLGEN)jdpostct.c
378	$(JCC) $(JO_)jdpostct.$(OBJ) $(C_) $(GLGEN)jdpostct.c
379	$(RM_) $(GLGEN)jdpostct.c
380
381$(JOBJ)jdsample.$(OBJ) : $(JSRC)jdsample.c $(JDEP)
382	$(CP_) $(JSRC)jdsample.c $(GLGEN)jdsample.c
383	$(JCC) $(JO_)jdsample.$(OBJ) $(C_) $(GLGEN)jdsample.c
384	$(RM_) $(GLGEN)jdsample.c
385
386$(JOBJ)jidctint.$(OBJ) : $(JSRC)jidctint.c $(JDEP)
387	$(CP_) $(JSRC)jidctint.c $(GLGEN)jidctint.c
388	$(JCC) $(JO_)jidctint.$(OBJ) $(C_) $(GLGEN)jidctint.c
389	$(RM_) $(GLGEN)jidctint.c
390