1# Copyright (C) 2001-2012 Artifex Software, Inc.
2# All Rights Reserved.
3#
4# This software is provided AS-IS with no warranty, either express or
5# implied.
6#
7# This software is distributed under license and may not be copied,
8# modified or distributed except as expressly authorized under the terms
9# of the license contained in the file LICENSE in this distribution.
10#
11# Refer to licensing information at http://www.artifex.com or contact
12# Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
13# CA  94903, U.S.A., +1(415)492-9861, for further information.
14#
15#
16# (Platform-independent) makefile for PostScript and PDF language
17# interpreters.
18# Users of this makefile must define the following:
19#	GLSRCDIR - the graphics library source directory
20#	GLGENDIR - the directory for graphics library source files
21#		generated during building
22#	PSSRCDIR - the source directory
23#	PSOBJDIR - the object code directory
24
25PSSRC=$(PSSRCDIR)$(D)
26PSLIB=$(PSLIBDIR)$(D)
27PSINIT=$(PSRESDIR)$(D)Init$(D)
28PSGEN=$(PSGENDIR)$(D)
29PSOBJ=$(PSOBJDIR)$(D)
30PSO_=$(O_)$(PSOBJ)
31PSI_=$(PSSRCDIR) $(II)$(PSGENDIR) $(II)$(GLI_)
32PSF_=
33PSCC=$(CC_) $(I_)$(PSI_)$(_I) $(PSF_)
34PSJBIG2CC=$(CC_) $(I_)$(JB2I_) $(II)$(PSI_)$(_I) $(JB2CF_) $(PSF_)
35PSJASCC=$(CC_) $(I_)$(JPXI_) $(II)$(PSI_)$(_I) $(JPXCF_) $(PSF)
36PSLDFJB2CC=$(CC_) $(I_)$(LDF_JB2I_) $(II)$(LDF_JB2I_) $(II)$(PSI_)$(_I) $(JB2CF_) $(PSF_)
37PSLWFJPXCC=$(CC_) $(I_)$(LWF_JPXI_) $(II)$(PSI_)$(_I) $(JPXCF_) $(PSF)
38PSOPJJPXCC=$(CC_) $(I_)$(JPX_OPENJPEG_I_)$(D).. $(I_)$(JPX_OPENJPEG_I_) $(II)$(PSI_)$(_I) $(JPXCF_) $(PSF)
39
40# All top-level makefiles define PSD.
41#PSD=$(PSGEN)
42
43# Define the name of this makefile.
44INT_MAK=$(PSSRC)int.mak
45
46# ======================== Interpreter support ======================== #
47
48# This is support code for all interpreters, not just PostScript and PDF.
49# It knows about the PostScript data types, but isn't supposed to
50# depend on anything outside itself.
51
52ierrors_h=$(PSSRC)ierrors.h
53iconf_h=$(PSSRC)iconf.h
54idebug_h=$(PSSRC)idebug.h
55# Having iddstack.h at this level is unfortunate, but unavoidable.
56iddstack_h=$(PSSRC)iddstack.h
57idict_h=$(PSSRC)idict.h $(iddstack_h)
58idictdef_h=$(PSSRC)idictdef.h
59idicttpl_h=$(PSSRC)idicttpl.h
60idosave_h=$(PSSRC)idosave.h
61igcstr_h=$(PSSRC)igcstr.h
62inames_h=$(PSSRC)inames.h
63iname_h=$(PSSRC)iname.h $(inames_h)
64inameidx_h=$(PSSRC)inameidx.h
65inamestr_h=$(PSSRC)inamestr.h $(inameidx_h)
66ipacked_h=$(PSSRC)ipacked.h
67iref_h=$(PSSRC)iref.h
68isave_h=$(PSSRC)isave.h $(idosave_h)
69isstate_h=$(PSSRC)isstate.h
70istruct_h=$(PSSRC)istruct.h $(gsstruct_h)
71iutil_h=$(PSSRC)iutil.h
72ivmspace_h=$(PSSRC)ivmspace.h $(gsgc_h)
73opdef_h=$(PSSRC)opdef.h
74# Nested include files
75ghost_h=$(PSSRC)ghost.h $(gx_h) $(iref_h)
76igc_h=$(PSSRC)igc.h $(istruct_h)
77imemory_h=$(PSSRC)imemory.h $(gsalloc_h) $(ivmspace_h)
78ialloc_h=$(PSSRC)ialloc.h $(imemory_h)
79iastruct_h=$(PSSRC)iastruct.h $(gxobj_h) $(ialloc_h)
80iastate_h=$(PSSRC)iastate.h $(gxalloc_h) $(ialloc_h) $(istruct_h)
81inamedef_h=$(PSSRC)inamedef.h\
82 $(gsstruct_h) $(inameidx_h) $(inames_h) $(inamestr_h)
83store_h=$(PSSRC)store.h $(ialloc_h) $(idosave_h)
84iplugin_h=$(PSSRC)iplugin.h
85ifapi_h=$(PSSRC)ifapi.h $(iplugin_h) $(gstypes_h) $(gsmatrix_h) $(gp_h) $(memory__h)
86zht2_h=$(PSSRC)zht2.h $(gscspace_h)
87zchar42_h=$(PSSRC)zchar42.h
88zfunc_h=$(PSSRC)zfunc.h
89
90GH=$(AK) $(ghost_h)
91
92isupport1_=$(PSOBJ)ialloc.$(OBJ) $(PSOBJ)igc.$(OBJ) $(PSOBJ)igcref.$(OBJ) $(PSOBJ)igcstr.$(OBJ)
93isupport2_=$(PSOBJ)ilocate.$(OBJ) $(PSOBJ)iname.$(OBJ) $(PSOBJ)isave.$(OBJ)
94isupport_=$(isupport1_) $(isupport2_)
95$(PSD)isupport.dev : $(INT_MAK) $(ECHOGS_XE) $(isupport_)
96	$(SETMOD) $(PSD)isupport $(isupport1_)
97	$(ADDMOD) $(PSD)isupport -obj $(isupport2_)
98
99$(PSOBJ)ialloc.$(OBJ) : $(PSSRC)ialloc.c $(AK) $(memory__h) $(gx_h)\
100 $(ierrors_h) $(gsstruct_h)\
101 $(iastate_h) $(igc_h) $(ipacked_h) $(iref_h) $(iutil_h) $(ivmspace_h)\
102 $(store_h)
103	$(PSCC) $(PSO_)ialloc.$(OBJ) $(C_) $(PSSRC)ialloc.c
104
105# igc.c, igcref.c, and igcstr.c should really be in the dpsand2 list,
106# but since all the GC enumeration and relocation routines refer to them,
107# it's too hard to separate them out from the Level 1 base.
108$(PSOBJ)igc.$(OBJ) : $(PSSRC)igc.c $(GH) $(memory__h)\
109 $(ierrors_h) $(gsexit_h) $(gsmdebug_h) $(gsstruct_h)\
110 $(iastate_h) $(idict_h) $(igc_h) $(igcstr_h) $(inamedef_h)\
111 $(ipacked_h) $(isave_h) $(isstate_h) $(istruct_h) $(opdef_h)
112	$(PSCC) $(PSO_)igc.$(OBJ) $(C_) $(PSSRC)igc.c
113
114$(PSOBJ)igcref.$(OBJ) : $(PSSRC)igcref.c $(GH) $(memory__h)\
115 $(gsexit_h) $(gsstruct_h)\
116 $(iastate_h) $(idebug_h) $(igc_h) $(iname_h) $(ipacked_h) $(store_h)
117	$(PSCC) $(PSO_)igcref.$(OBJ) $(C_) $(PSSRC)igcref.c
118
119$(PSOBJ)igcstr.$(OBJ) : $(PSSRC)igcstr.c $(GH) $(memory__h)\
120 $(gsmdebug_h) $(gsstruct_h) $(iastate_h) $(igcstr_h)
121	$(PSCC) $(PSO_)igcstr.$(OBJ) $(C_) $(PSSRC)igcstr.c
122
123$(PSOBJ)ilocate.$(OBJ) : $(PSSRC)ilocate.c $(GH) $(memory__h)\
124 $(ierrors_h) $(gsexit_h) $(gsstruct_h)\
125 $(iastate_h) $(idict_h) $(igc_h) $(igcstr_h) $(iname_h)\
126 $(ipacked_h) $(isstate_h) $(iutil_h) $(ivmspace_h)\
127 $(store_h)
128	$(PSCC) $(PSO_)ilocate.$(OBJ) $(C_) $(PSSRC)ilocate.c
129
130$(PSOBJ)iname.$(OBJ) : $(PSSRC)iname.c $(GH) $(memory__h) $(string__h)\
131 $(gsstruct_h) $(gxobj_h)\
132 $(ierrors_h) $(imemory_h) $(inamedef_h) $(isave_h) $(store_h)
133	$(PSCC) $(PSO_)iname.$(OBJ) $(C_) $(PSSRC)iname.c
134
135$(PSOBJ)isave.$(OBJ) : $(PSSRC)isave.c $(GH) $(memory__h)\
136 $(ierrors_h) $(gsexit_h) $(gsstruct_h) $(gsutil_h)\
137 $(iastate_h) $(iname_h) $(inamedef_h) $(isave_h) $(isstate_h) $(ivmspace_h)\
138 $(ipacked_h) $(store_h) $(stream_h) $(igc_h)
139	$(PSCC) $(PSO_)isave.$(OBJ) $(C_) $(PSSRC)isave.c
140
141### Include files
142
143idparam_h=$(PSSRC)idparam.h
144ilevel_h=$(PSSRC)ilevel.h
145interp_h=$(PSSRC)interp.h
146iparam_h=$(PSSRC)iparam.h $(gsparam_h)
147isdata_h=$(PSSRC)isdata.h
148istack_h=$(PSSRC)istack.h $(isdata_h)
149istkparm_h=$(PSSRC)istkparm.h
150iutil2_h=$(PSSRC)iutil2.h
151oparc_h=$(PSSRC)oparc.h
152opcheck_h=$(PSSRC)opcheck.h
153opextern_h=$(PSSRC)opextern.h
154# Nested include files
155idsdata_h=$(PSSRC)idsdata.h $(isdata_h)
156idstack_h=$(PSSRC)idstack.h $(iddstack_h) $(idsdata_h) $(istack_h)
157iesdata_h=$(PSSRC)iesdata.h $(isdata_h)
158iestack_h=$(PSSRC)iestack.h $(istack_h) $(iesdata_h)
159iosdata_h=$(PSSRC)iosdata.h $(isdata_h)
160iostack_h=$(PSSRC)iostack.h $(istack_h) $(iosdata_h)
161icstate_h=$(PSSRC)icstate.h $(imemory_h) $(iref_h) $(idsdata_h) $(iesdata_h) $(iosdata_h)
162iddict_h=$(PSSRC)iddict.h $(icstate_h) $(idict_h)
163dstack_h=$(PSSRC)dstack.h $(icstate_h) $(idstack_h)
164estack_h=$(PSSRC)estack.h $(icstate_h) $(iestack_h)
165ostack_h=$(PSSRC)ostack.h $(icstate_h) $(iostack_h)
166oper_h=$(PSSRC)oper.h $(ierrors_h) $(iutil_h) $(opcheck_h) $(opdef_h) $(opextern_h) $(ostack_h)
167
168$(PSOBJ)idebug.$(OBJ) : $(PSSRC)idebug.c $(GH) $(string__h)\
169 $(gxalloc_h)\
170 $(idebug_h) $(idict_h) $(iname_h) $(istack_h) $(iutil_h) $(ivmspace_h)\
171 $(opdef_h) $(ipacked_h)
172	$(PSCC) $(PSO_)idebug.$(OBJ) $(C_) $(PSSRC)idebug.c
173
174$(PSOBJ)idict.$(OBJ) : $(PSSRC)idict.c $(GH) $(math__h) $(string__h)\
175 $(ierrors_h)\
176 $(gxalloc_h)\
177 $(iddstack_h) $(idebug_h) $(idict_h) $(idictdef_h) $(idicttpl_h)\
178 $(imemory_h) $(iname_h) $(inamedef_h) $(ipacked_h) $(isave_h)\
179 $(iutil_h) $(ivmspace_h) $(store_h)
180	$(PSCC) $(PSO_)idict.$(OBJ) $(C_) $(PSSRC)idict.c
181
182$(PSOBJ)idparam.$(OBJ) : $(PSSRC)idparam.c $(GH) $(memory__h) $(string__h) $(ierrors_h)\
183 $(gsmatrix_h) $(gsuid_h) $(dstack_h)\
184 $(idict_h) $(iddict_h) $(idparam_h) $(ilevel_h) $(imemory_h) $(iname_h) $(iutil_h)\
185 $(oper_h) $(store_h)
186	$(PSCC) $(PSO_)idparam.$(OBJ) $(C_) $(PSSRC)idparam.c
187
188$(PSOBJ)idstack.$(OBJ) : $(PSSRC)idstack.c $(GH)\
189 $(idebug_h) $(idict_h) $(idictdef_h) $(idicttpl_h) $(idstack_h) $(iname_h) $(inamedef_h)\
190 $(ipacked_h) $(iutil_h) $(ivmspace_h)
191	$(PSCC) $(PSO_)idstack.$(OBJ) $(C_) $(PSSRC)idstack.c
192
193$(PSOBJ)iparam.$(OBJ) : $(PSSRC)iparam.c $(GH)\
194 $(memory__h) $(string__h) $(ierrors_h)\
195 $(ialloc_h) $(idict_h) $(iname_h) $(imemory_h) $(iparam_h) $(istack_h) $(iutil_h) $(ivmspace_h)\
196 $(opcheck_h) $(oper_h) $(store_h)
197	$(PSCC) $(PSO_)iparam.$(OBJ) $(C_) $(PSSRC)iparam.c
198
199$(PSOBJ)istack.$(OBJ) : $(PSSRC)istack.c $(GH) $(memory__h)\
200 $(ierrors_h) $(gsstruct_h) $(gsutil_h)\
201 $(ialloc_h) $(istack_h) $(istkparm_h) $(istruct_h) $(iutil_h) $(ivmspace_h)\
202 $(store_h)
203	$(PSCC) $(PSO_)istack.$(OBJ) $(C_) $(PSSRC)istack.c
204
205$(PSOBJ)iutil.$(OBJ) : $(PSSRC)iutil.c $(GH) $(math__h) $(memory__h) $(string__h)\
206 $(gsccode_h) $(gsmatrix_h) $(gsutil_h) $(gxfont_h)\
207 $(sstring_h) $(strimpl_h)\
208 $(ierrors_h) $(idict_h) $(imemory_h) $(iutil_h) $(ivmspace_h)\
209 $(iname_h) $(ipacked_h) $(oper_h) $(store_h)
210	$(PSCC) $(PSO_)iutil.$(OBJ) $(C_) $(PSSRC)iutil.c
211
212$(PSOBJ)iplugin.$(OBJ) : $(PSSRC)iplugin.c $(GH) $(malloc__h) $(string__h)\
213 $(gxalloc_h)\
214 $(ierrors_h) $(ialloc_h) $(icstate_h) $(iplugin_h)
215	$(PSCC) $(PSO_)iplugin.$(OBJ) $(C_) $(PSSRC)iplugin.c
216
217# ======================== PostScript Level 1 ======================== #
218
219###### Include files
220
221# Binary tokens are a Level 2 feature, but we need to refer to them
222# in the scanner.
223btoken_h=$(PSSRC)btoken.h
224files_h=$(PSSRC)files.h
225fname_h=$(PSSRC)fname.h
226iapi_h=$(PSSRC)iapi.h
227ichar_h=$(PSSRC)ichar.h
228ichar1_h=$(PSSRC)ichar1.h
229icharout_h=$(PSSRC)icharout.h
230icolor_h=$(PSSRC)icolor.h
231icremap_h=$(PSSRC)icremap.h $(gsccolor_h)
232icsmap_h=$(PSSRC)icsmap.h
233idisp_h=$(PSSRC)idisp.h
234ifilter2_h=$(PSSRC)ifilter2.h
235ifont_h=$(PSSRC)ifont.h $(gsccode_h) $(gsstype_h)
236ifont1_h=$(PSSRC)ifont1.h
237ifont2_h=$(PSSRC)ifont2.h
238ifont42_h=$(PSSRC)ifont42.h
239ifrpred_h=$(PSSRC)ifrpred.h
240ifwpred_h=$(PSSRC)ifwpred.h
241iht_h=$(PSSRC)iht.h
242iimage_h=$(PSSRC)iimage.h
243iinit_h=$(PSSRC)iinit.h
244imain_h=$(PSSRC)imain.h $(gsexit_h)
245imainarg_h=$(PSSRC)imainarg.h
246iminst_h=$(PSSRC)iminst.h
247iparray_h=$(PSSRC)iparray.h
248iscanbin_h=$(PSSRC)iscanbin.h
249iscannum_h=$(PSSRC)iscannum.h
250istream_h=$(PSSRC)istream.h
251itoken_h=$(PSSRC)itoken.h
252main_h=$(PSSRC)main.h $(iapi_h) $(imain_h) $(iminst_h)
253sbwbs_h=$(PSSRC)sbwbs.h
254shcgen_h=$(PSSRC)shcgen.h
255smtf_h=$(PSSRC)smtf.h
256# Nested include files
257bfont_h=$(PSSRC)bfont.h $(ifont_h)
258icontext_h=$(PSSRC)icontext.h $(gsstype_h) $(icstate_h)
259ifilter_h=$(PSSRC)ifilter.h $(istream_h) $(ivmspace_h)
260igstate_h=$(PSSRC)igstate.h $(gsstate_h) $(gxstate_h) $(imemory_h) $(istruct_h) $(gxcindex_h)
261iscan_h=$(PSSRC)iscan.h $(sa85x_h) $(sstring_h) $(inamestr_h)
262sbhc_h=$(PSSRC)sbhc.h $(shc_h)
263zfile_h=$(PSSRC)zfile.h
264# Include files for optional features
265ibnum_h=$(PSSRC)ibnum.h
266zcolor_h=$(PSSRC)zcolor.h
267zcie_h=$(PSSRC)zcie.h
268zicc_h=$(PSSRC)zicc.h
269zfrsd_h=$(PSSRC)zfrsd.h
270
271### Initialization and scanning
272
273$(PSOBJ)iconfig.$(OBJ) : $(gconfig_h) $(PSSRC)iconf.c $(stdio__h)\
274 $(gconf_h) $(gconfigd_h) $(gsmemory_h) $(gstypes_h)\
275 $(iminst_h) $(iref_h) $(ivmspace_h) $(opdef_h) $(iplugin_h)
276	$(RM_) $(PSGEN)iconfig.c
277	$(CP_) $(PSSRC)iconf.c $(PSGEN)iconfig.c
278	$(PSCC) $(PSO_)iconfig.$(OBJ) $(C_) $(PSGEN)iconfig.c
279
280$(PSOBJ)iinit.$(OBJ) : $(PSSRC)iinit.c $(GH) $(string__h)\
281 $(gscdefs_h) $(gsexit_h) $(gsstruct_h)\
282 $(dstack_h) $(ierrors_h) $(ialloc_h) $(iddict_h)\
283 $(iinit_h) $(ilevel_h) $(iname_h) $(interp_h) $(opdef_h)\
284 $(ipacked_h) $(iparray_h) $(iutil_h) $(ivmspace_h) $(store_h)
285	$(PSCC) $(PSO_)iinit.$(OBJ) $(C_) $(PSSRC)iinit.c
286
287$(PSOBJ)iscan.$(OBJ) : $(PSSRC)iscan.c $(GH) $(memory__h)\
288 $(btoken_h) $(dstack_h) $(ierrors_h) $(files_h)\
289 $(ialloc_h) $(idict_h) $(ilevel_h) $(iname_h) $(ipacked_h) $(iparray_h)\
290 $(iscan_h) $(iscanbin_h) $(iscannum_h)\
291 $(istruct_h) $(istream_h) $(iutil_h) $(ivmspace_h)\
292 $(ostack_h) $(store_h)\
293 $(sa85d_h) $(stream_h) $(strimpl_h) $(sfilter_h) $(scanchar_h)
294	$(PSCC) $(PSO_)iscan.$(OBJ) $(C_) $(PSSRC)iscan.c
295
296$(PSOBJ)iscannum.$(OBJ) : $(PSSRC)iscannum.c $(GH) $(math__h)\
297 $(ierrors_h) $(iscan_h) $(iscannum_h) $(scanchar_h) $(scommon_h) $(store_h)
298	$(PSCC) $(PSO_)iscannum.$(OBJ) $(C_) $(PSSRC)iscannum.c
299
300### Streams
301
302$(PSOBJ)sfilter1.$(OBJ) : $(PSSRC)sfilter1.c $(AK) $(stdio__h) $(memory__h)\
303 $(sfilter_h) $(strimpl_h)
304	$(PSCC) $(PSO_)sfilter1.$(OBJ) $(C_) $(PSSRC)sfilter1.c
305
306###### Operators
307
308OP=$(GH) $(oper_h)
309
310### Non-graphics operators
311
312$(PSOBJ)zarith.$(OBJ) : $(PSSRC)zarith.c $(OP) $(math__h) $(store_h)
313	$(PSCC) $(PSO_)zarith.$(OBJ) $(C_) $(PSSRC)zarith.c
314
315$(PSOBJ)zarray.$(OBJ) : $(PSSRC)zarray.c $(OP) $(memory__h)\
316 $(ialloc_h) $(ipacked_h) $(store_h)
317	$(PSCC) $(PSO_)zarray.$(OBJ) $(C_) $(PSSRC)zarray.c
318
319$(PSOBJ)zcontrol.$(OBJ) : $(PSSRC)zcontrol.c $(OP) $(string__h)\
320 $(estack_h) $(files_h) $(ipacked_h) $(iutil_h) $(store_h) $(stream_h)
321	$(PSCC) $(PSO_)zcontrol.$(OBJ) $(C_) $(PSSRC)zcontrol.c
322
323$(PSOBJ)zdict.$(OBJ) : $(PSSRC)zdict.c $(OP)\
324 $(dstack_h) $(iddict_h) $(ilevel_h) $(iname_h) $(ipacked_h) $(ivmspace_h)\
325 $(store_h)
326	$(PSCC) $(PSO_)zdict.$(OBJ) $(C_) $(PSSRC)zdict.c
327
328$(PSOBJ)zfile.$(OBJ) : $(PSSRC)zfile.c $(OP)\
329 $(memory__h) $(string__h) $(unistd__h) $(stat__h) $(gp_h) $(gpmisc_h)\
330 $(gscdefs_h) $(gsfname_h) $(gsstruct_h) $(gsutil_h) $(gxalloc_h) $(gxiodev_h)\
331 $(dstack_h) $(estack_h) $(files_h)\
332 $(ialloc_h) $(idict_h) $(ilevel_h) $(iname_h) $(iutil_h)\
333 $(isave_h) $(main_h) $(sfilter_h) $(stream_h) $(strimpl_h) $(store_h)\
334 $(zfile_h)
335	$(PSCC) $(PSO_)zfile.$(OBJ) $(C_) $(PSSRC)zfile.c
336
337$(PSOBJ)zfile1.$(OBJ) : $(PSSRC)zfile1.c $(OP) $(memory__h) $(string__h)\
338 $(gp_h) $(ierrors_h) $(oper_h) $(opcheck_h) $(ialloc_h) $(opdef_h) $(store_h)\
339 $(gpmisc_h)
340	$(PSCC) $(PSO_)zfile1.$(OBJ) $(C_) $(PSSRC)zfile1.c
341
342$(PSOBJ)zfileio.$(OBJ) : $(PSSRC)zfileio.c $(OP) $(memory__h) $(gp_h)\
343 $(estack_h) $(files_h) $(ifilter_h) $(interp_h) $(store_h)\
344 $(stream_h) $(strimpl_h)\
345 $(gsmatrix_h) $(gxdevice_h) $(gxdevmem_h)
346	$(PSCC) $(PSO_)zfileio.$(OBJ) $(C_) $(PSSRC)zfileio.c
347
348$(PSOBJ)zfilter.$(OBJ) : $(PSSRC)zfilter.c $(OP) $(memory__h)\
349 $(gsstruct_h)\
350 $(files_h) $(ialloc_h) $(idict_h) $(idparam_h) $(ifilter_h) $(ilevel_h)\
351 $(sfilter_h) $(srlx_h) $(sstring_h) $(stream_h) $(strimpl_h)
352	$(PSCC) $(PSO_)zfilter.$(OBJ) $(C_) $(PSSRC)zfilter.c
353
354$(PSOBJ)zfproc.$(OBJ) : $(PSSRC)zfproc.c $(GH) $(memory__h) $(stat__h)\
355 $(oper_h)\
356 $(estack_h) $(files_h) $(gsstruct_h) $(ialloc_h) $(ifilter_h) $(istruct_h)\
357 $(store_h) $(stream_h) $(strimpl_h)
358	$(PSCC) $(PSO_)zfproc.$(OBJ) $(C_) $(PSSRC)zfproc.c
359
360$(PSOBJ)zgeneric.$(OBJ) : $(PSSRC)zgeneric.c $(OP) $(memory__h)\
361 $(gsstruct_h)\
362 $(dstack_h) $(estack_h) $(iddict_h) $(iname_h) $(ipacked_h) $(ivmspace_h)\
363 $(store_h)
364	$(PSCC) $(PSO_)zgeneric.$(OBJ) $(C_) $(PSSRC)zgeneric.c
365
366$(PSOBJ)ziodev.$(OBJ) : $(PSSRC)ziodev.c $(OP)\
367 $(memory__h) $(stdio__h) $(string__h)\
368 $(gp_h) $(gpcheck_h)\
369 $(gxiodev_h)\
370 $(files_h) $(ialloc_h) $(iscan_h) $(ivmspace_h)\
371 $(scanchar_h) $(store_h) $(stream_h) $(istream_h) $(ierrors_h)
372	$(PSCC) $(PSO_)ziodev.$(OBJ) $(C_) $(PSSRC)ziodev.c
373
374$(PSOBJ)ziodevs$(STDIO_IMPLEMENTATION).$(OBJ) : $(PSSRC)ziodevs$(STDIO_IMPLEMENTATION).c $(OP) $(stdio__h)\
375 $(gpcheck_h)\
376 $(gxiodev_h)\
377 $(files_h) $(ifilter_h) $(istream_h) $(store_h) $(stream_h)
378	$(PSCC) $(PSO_)ziodevs$(STDIO_IMPLEMENTATION).$(OBJ) $(C_) $(PSSRC)ziodevs$(STDIO_IMPLEMENTATION).c
379
380$(PSOBJ)zmath.$(OBJ) : $(PSSRC)zmath.c $(OP) $(math__h) $(gxfarith_h) $(store_h)
381	$(PSCC) $(PSO_)zmath.$(OBJ) $(C_) $(PSSRC)zmath.c
382
383$(PSOBJ)zalg.$(OBJ) : $(PSSRC)zalg.c $(OP) $(ghost_h) $(gserrors_h)\
384 $(oper_h) $(store_h) $(estack_h)
385	$(PSCC) $(PSO_)zalg.$(OBJ) $(C_) $(PSSRC)zalg.c
386
387$(PSOBJ)zmisc.$(OBJ) : $(PSSRC)zmisc.c $(OP) $(gscdefs_h) $(gp_h)\
388 $(errno__h) $(memory__h) $(string__h)\
389 $(ialloc_h) $(idict_h) $(dstack_h) $(iname_h) $(ivmspace_h) $(ipacked_h) $(store_h)
390	$(PSCC) $(PSO_)zmisc.$(OBJ) $(C_) $(PSSRC)zmisc.c
391
392$(PSOBJ)zpacked.$(OBJ) : $(PSSRC)zpacked.c $(OP)\
393 $(ialloc_h) $(idict_h) $(ivmspace_h) $(iname_h) $(ipacked_h) $(iparray_h)\
394 $(istack_h) $(store_h)
395	$(PSCC) $(PSO_)zpacked.$(OBJ) $(C_) $(PSSRC)zpacked.c
396
397$(PSOBJ)zrelbit.$(OBJ) : $(PSSRC)zrelbit.c $(OP)\
398 $(gsutil_h) $(store_h) $(idict_h)
399	$(PSCC) $(PSO_)zrelbit.$(OBJ) $(C_) $(PSSRC)zrelbit.c
400
401$(PSOBJ)zstack.$(OBJ) : $(PSSRC)zstack.c $(OP) $(memory__h)\
402 $(ialloc_h) $(istack_h) $(store_h)
403	$(PSCC) $(PSO_)zstack.$(OBJ) $(C_) $(PSSRC)zstack.c
404
405$(PSOBJ)zstring.$(OBJ) : $(PSSRC)zstring.c $(OP) $(memory__h)\
406 $(gsutil_h)\
407 $(ialloc_h) $(iname_h) $(ivmspace_h) $(store_h)
408	$(PSCC) $(PSO_)zstring.$(OBJ) $(C_) $(PSSRC)zstring.c
409
410$(PSOBJ)zsysvm.$(OBJ) : $(PSSRC)zsysvm.c $(GH)\
411 $(ialloc_h) $(ivmspace_h) $(oper_h) $(store_h)
412	$(PSCC) $(PSO_)zsysvm.$(OBJ) $(C_) $(PSSRC)zsysvm.c
413
414$(PSOBJ)ztoken.$(OBJ) : $(PSSRC)ztoken.c $(OP) $(string__h) $(stat__h)\
415 $(gsstruct_h) $(gsutil_h)\
416 $(dstack_h) $(estack_h) $(files_h)\
417 $(idict_h) $(iname_h) $(iscan_h) $(itoken_h)\
418 $(sfilter_h) $(store_h) $(stream_h) $(strimpl_h)
419	$(PSCC) $(PSO_)ztoken.$(OBJ) $(C_) $(PSSRC)ztoken.c
420
421$(PSOBJ)ztype.$(OBJ) : $(PSSRC)ztype.c $(OP)\
422 $(math__h) $(memory__h) $(string__h)\
423 $(gsexit_h)\
424 $(dstack_h) $(idict_h) $(imemory_h) $(iname_h)\
425 $(iscan_h) $(iutil_h) $(sfilter_h) $(store_h) $(stream_h) $(strimpl_h)
426	$(PSCC) $(PSO_)ztype.$(OBJ) $(C_) $(PSSRC)ztype.c
427
428$(PSOBJ)zvmem.$(OBJ) : $(PSSRC)zvmem.c $(OP) $(stat__h)\
429 $(dstack_h) $(estack_h) $(files_h)\
430 $(ialloc_h) $(idict_h) $(igstate_h) $(isave_h) $(store_h) $(stream_h)\
431 $(gsmalloc_h) $(gsmatrix_h) $(gsstate_h) $(gsstruct_h)
432	$(PSCC) $(PSO_)zvmem.$(OBJ) $(C_) $(PSSRC)zvmem.c
433
434### Graphics operators
435
436$(PSOBJ)zbfont.$(OBJ) : $(PSSRC)zbfont.c $(OP) $(memory__h) $(string__h)\
437 $(gscencs_h) $(gsmatrix_h) $(gxdevice_h) $(gxfixed_h) $(gxfont_h)\
438 $(bfont_h) $(ialloc_h) $(idict_h) $(idparam_h) $(ilevel_h)\
439 $(iname_h) $(inamedef_h) $(interp_h) $(istruct_h) $(ipacked_h) $(store_h)
440	$(PSCC) $(PSO_)zbfont.$(OBJ) $(C_) $(PSSRC)zbfont.c
441
442$(PSOBJ)zchar.$(OBJ) : $(PSSRC)zchar.c $(OP)\
443 $(gsstruct_h) $(gstext_h) $(gxarith_h) $(gxfixed_h) $(gxmatrix_h)\
444 $(gxdevice_h) $(gxfont_h) $(gxfont42_h) $(gxfont0_h) $(gzstate_h)\
445 $(dstack_h) $(estack_h) $(ialloc_h) $(ichar_h)  $(ichar1_h) $(idict_h) $(ifont_h)\
446 $(ilevel_h) $(iname_h) $(igstate_h) $(ipacked_h) $(store_h) $(zchar42_h)
447	$(PSCC) $(PSO_)zchar.$(OBJ) $(C_) $(PSSRC)zchar.c
448
449# zcharout is used for Type 1 and Type 42 fonts only.
450$(PSOBJ)zcharout.$(OBJ) : $(PSSRC)zcharout.c $(OP) $(memory__h)\
451 $(gscrypt1_h) $(gstext_h) $(gxdevice_h) $(gxfont_h) $(gxfont1_h)\
452 $(dstack_h) $(estack_h) $(ichar_h) $(icharout_h)\
453 $(idict_h) $(ifont_h) $(igstate_h) $(iname_h) $(store_h)
454	$(PSCC) $(PSO_)zcharout.$(OBJ) $(C_) $(PSSRC)zcharout.c
455
456$(PSOBJ)zcolor.$(OBJ) : $(PSSRC)zcolor.c $(OP)\
457 $(memory__h) $(math__h) $(dstack_h) $(estack_h) $(ialloc_h)\
458 $(igstate_h) $(iutil_h) $(store_h) $(gscolor_h)\
459 $(gscsepr_h) $(gscdevn_h) $(gscpixel_h) $(gxfixed_h) $(gxmatrix_h)\
460 $(gzstate_h) $(gxdcolor_h) $(gxdevice_h) $(gxdevmem_h) $(gxcmap_h)\
461 $(gxcspace_h) $(gxcolor2_h) $(gxpcolor_h)\
462 $(idict_h) $(icolor_h) $(idparam_h) $(iname_h) $(iutil_h) $(icsmap_h)\
463 $(ifunc_h) $(zht2_h) $(zcolor_h) $(zcie_h) $(zicc_h) $(gscspace_h)\
464 $(zfrsd_h)
465	$(PSCC) $(PSO_)zcolor.$(OBJ) $(C_) $(PSSRC)zcolor.c
466
467$(PSOBJ)zdevice.$(OBJ) : $(PSSRC)zdevice.c $(OP) $(string__h)\
468 $(ialloc_h) $(idict_h) $(igstate_h) $(iname_h) $(interp_h) $(iparam_h) $(ivmspace_h)\
469 $(gsmatrix_h) $(gsstate_h) $(gxdevice_h) $(gxgetbit_h) $(store_h) $(gsicc_manage_h)
470	$(PSCC) $(PSO_)zdevice.$(OBJ) $(C_) $(PSSRC)zdevice.c
471
472$(PSOBJ)zdfilter.$(OBJ) : $(PSSRC)zdfilter.c $(OP) $(string__h) $(ghost_h) $(oper_h)\
473 $(ialloc_h) $(idict_h) $(igstate_h) $(iname_h) $(interp_h) $(iparam_h) $(ivmspace_h)\
474 $(gsdfilt_h) $(gsmatrix_h) $(gsstate_h) $(gxdevice_h) $(store_h)
475	$(PSCC) $(PSO_)zdfilter.$(OBJ) $(C_) $(PSSRC)zdfilter.c
476
477$(PSOBJ)zfont.$(OBJ) : $(PSSRC)zfont.c $(OP)\
478 $(gsstruct_h) $(gxdevice_h) $(gxfont_h) $(gxfcache_h)\
479 $(gzstate_h)\
480 $(ialloc_h) $(iddict_h) $(igstate_h) $(iname_h) $(isave_h) $(ivmspace_h)\
481 $(bfont_h) $(store_h) $(gscencs_h)
482	$(PSCC) $(PSO_)zfont.$(OBJ) $(C_) $(PSSRC)zfont.c
483
484$(PSOBJ)zfontenum.$(OBJ) : $(PSSRC)zfontenum.c $(OP)\
485 $(memory__h) $(gsstruct_h) $(ialloc_h) $(idict_h)
486	$(PSCC) $(PSO_)zfontenum.$(OBJ) $(C_) $(PSSRC)zfontenum.c
487
488$(PSOBJ)zgstate.$(OBJ) : $(PSSRC)zgstate.c $(OP) $(math__h)\
489 $(gsmatrix_h)\
490 $(ialloc_h) $(icremap_h) $(idict_h) $(igstate_h) $(istruct_h) $(store_h)
491	$(PSCC) $(PSO_)zgstate.$(OBJ) $(C_) $(PSSRC)zgstate.c
492
493$(PSOBJ)zht.$(OBJ) : $(PSSRC)zht.c $(OP) $(memory__h)\
494 $(gsmatrix_h) $(gsstate_h) $(gsstruct_h) $(gxdevice_h) $(gzht_h)\
495 $(ialloc_h) $(estack_h) $(igstate_h) $(iht_h) $(store_h)
496	$(PSCC) $(PSO_)zht.$(OBJ) $(C_) $(PSSRC)zht.c
497
498$(PSOBJ)zimage.$(OBJ) : $(PSSRC)zimage.c $(OP) $(math__h) $(memory__h) $(stat__h)\
499 $(gscspace_h) $(gscssub_h) $(gsimage_h) $(gsmatrix_h) $(gsstruct_h)\
500 $(gxiparam_h)\
501 $(estack_h) $(ialloc_h) $(ifilter_h) $(igstate_h) $(iimage_h) $(ilevel_h)\
502 $(store_h) $(stream_h) $(gxcspace_h)
503	$(PSCC) $(PSO_)zimage.$(OBJ) $(C_) $(PSSRC)zimage.c
504
505$(PSOBJ)zmatrix.$(OBJ) : $(PSSRC)zmatrix.c $(OP)\
506 $(gsmatrix_h) $(igstate_h) $(gscoord_h) $(store_h)
507	$(PSCC) $(PSO_)zmatrix.$(OBJ) $(C_) $(PSSRC)zmatrix.c
508
509$(PSOBJ)zpaint.$(OBJ) : $(PSSRC)zpaint.c $(OP)\
510 $(gspaint_h) $(igstate_h)
511	$(PSCC) $(PSO_)zpaint.$(OBJ) $(C_) $(PSSRC)zpaint.c
512
513$(PSOBJ)zpath.$(OBJ) : $(PSSRC)zpath.c $(OP) $(math__h)\
514 $(gsmatrix_h) $(gspath_h) $(igstate_h) $(store_h)
515	$(PSCC) $(PSO_)zpath.$(OBJ) $(C_) $(PSSRC)zpath.c
516
517# Define the base PostScript language interpreter.
518# This is the subset of PostScript Level 1 required by our PDF reader.
519
520INT1=$(PSOBJ)iapi.$(OBJ) $(PSOBJ)icontext.$(OBJ) $(PSOBJ)idebug.$(OBJ)
521INT2=$(PSOBJ)idict.$(OBJ) $(PSOBJ)idparam.$(OBJ) $(PSOBJ)idstack.$(OBJ)
522INT3=$(PSOBJ)iinit.$(OBJ) $(PSOBJ)interp.$(OBJ)
523INT4=$(PSOBJ)iparam.$(OBJ) $(PSOBJ)ireclaim.$(OBJ) $(PSOBJ)iplugin.$(OBJ)
524INT5=$(PSOBJ)iscan.$(OBJ) $(PSOBJ)iscannum.$(OBJ) $(PSOBJ)istack.$(OBJ)
525INT6=$(PSOBJ)iutil.$(OBJ) $(GLOBJ)sa85d.$(OBJ) $(GLOBJ)scantab.$(OBJ)
526INT7=$(PSOBJ)sfilter1.$(OBJ) $(GLOBJ)sstring.$(OBJ) $(GLOBJ)stream.$(OBJ)
527Z1=$(PSOBJ)zarith.$(OBJ) $(PSOBJ)zarray.$(OBJ) $(PSOBJ)zcontrol.$(OBJ)
528Z2=$(PSOBJ)zdict.$(OBJ) $(PSOBJ)zfile.$(OBJ) $(PSOBJ)zfile1.$(OBJ) $(PSOBJ)zfileio.$(OBJ)
529Z3=$(PSOBJ)zfilter.$(OBJ) $(PSOBJ)zfproc.$(OBJ) $(PSOBJ)zgeneric.$(OBJ)
530Z4=$(PSOBJ)ziodev.$(OBJ) $(PSOBJ)ziodevs$(STDIO_IMPLEMENTATION).$(OBJ) $(PSOBJ)zmath.$(OBJ) $(PSOBJ)zalg.$(OBJ)
531Z5=$(PSOBJ)zmisc.$(OBJ) $(PSOBJ)zpacked.$(OBJ) $(PSOBJ)zrelbit.$(OBJ)
532Z6=$(PSOBJ)zstack.$(OBJ) $(PSOBJ)zstring.$(OBJ) $(PSOBJ)zsysvm.$(OBJ)
533Z7=$(PSOBJ)ztoken.$(OBJ) $(PSOBJ)ztype.$(OBJ) $(PSOBJ)zvmem.$(OBJ)
534Z8=$(PSOBJ)zbfont.$(OBJ) $(PSOBJ)zchar.$(OBJ) $(PSOBJ)zcolor.$(OBJ)
535Z9=$(PSOBJ)zdevice.$(OBJ) $(PSOBJ)zfont.$(OBJ) $(PSOBJ)zfontenum.$(OBJ) $(PSOBJ)zgstate.$(OBJ)
536Z10=$(PSOBJ)zdfilter.$(OBJ) $(PSOBJ)zht.$(OBJ) $(PSOBJ)zimage.$(OBJ) $(PSOBJ)zmatrix.$(OBJ)
537Z11=$(PSOBJ)zpaint.$(OBJ) $(PSOBJ)zpath.$(OBJ)
538Z12=$(PSOBJ)zncdummy.$(OBJ)
539Z1OPS=zarith zarray zcontrol1 zcontrol2 zcontrol3
540Z2OPS=zdict1 zdict2 zfile zfile1 zfileio1 zfileio2
541Z3_4OPS=zfilter zfproc zgeneric ziodev zmath zalg
542Z5_6OPS=zmisc zpacked zrelbit zstack zstring zsysvm
543Z7_8OPS=ztoken ztype zvmem zbfont zchar_a zchar_b zcolor zcolor_ext
544Z9OPS=zdevice zfont zfontenum zgstate1 zgstate2 zgstate3
545Z10OPS=zdfilter zht zimage zmatrix zmatrix2
546Z11OPS=zpaint zpath pantone
547# We have to be a little underhanded with *config.$(OBJ) so as to avoid
548# circular definitions.
549INT_MAIN=$(PSOBJ)imain.$(OBJ) $(PSOBJ)imainarg.$(OBJ) $(GLOBJ)gsargs.$(OBJ) $(PSOBJ)idisp.$(OBJ)
550INT_OBJS=$(INT_MAIN)\
551 $(INT1) $(INT2) $(INT3) $(INT4) $(INT5) $(INT6) $(INT7)\
552 $(Z1) $(Z2) $(Z3) $(Z4) $(Z5) $(Z6) $(Z7) $(Z8) $(Z9) $(Z10) $(Z11) $(Z12)
553INT_CONFIG=$(GLOBJ)gconfig.$(OBJ) $(GLOBJ)gscdefs.$(OBJ)\
554 $(PSOBJ)iconfig.$(OBJ)
555INT_ALL=$(INT_OBJS) $(INT_CONFIG)
556# We omit libcore.dev, which should be included here, because problems
557# with the Unix linker require libcore to appear last in the link list
558# when libcore is really a library.
559# We omit $(INT_CONFIG) from the dependency list because they have special
560# dependency requirements and are added to the link list at the very end.
561# zfilter.c shouldn't include the RLE and RLD filters, but we don't want to
562# change this now.
563#
564# We add dscparse.dev here since it can be used with any PS level even
565# though we don't strictly need it unless we have the pdfwrite device.
566$(PSD)psbase.dev : $(INT_MAK) $(ECHOGS_XE) $(INT_OBJS)\
567 $(PSD)isupport.dev $(PSD)nobtoken.dev $(PSD)nousparm.dev\
568 $(GLD)rld.dev $(GLD)rle.dev $(GLD)sfile.dev $(PSD)dscparse.dev
569	$(SETMOD) $(PSD)psbase $(INT_MAIN)
570	$(ADDMOD) $(PSD)psbase -obj $(INT_CONFIG)
571	$(ADDMOD) $(PSD)psbase -obj $(INT1)
572	$(ADDMOD) $(PSD)psbase -obj $(INT2)
573	$(ADDMOD) $(PSD)psbase -obj $(INT3)
574	$(ADDMOD) $(PSD)psbase -obj $(INT4)
575	$(ADDMOD) $(PSD)psbase -obj $(INT5)
576	$(ADDMOD) $(PSD)psbase -obj $(INT6)
577	$(ADDMOD) $(PSD)psbase -obj $(INT7)
578	$(ADDMOD) $(PSD)psbase -obj $(Z1)
579	$(ADDMOD) $(PSD)psbase -obj $(Z2)
580	$(ADDMOD) $(PSD)psbase -obj $(Z3)
581	$(ADDMOD) $(PSD)psbase -obj $(Z4)
582	$(ADDMOD) $(PSD)psbase -obj $(Z5)
583	$(ADDMOD) $(PSD)psbase -obj $(Z6)
584	$(ADDMOD) $(PSD)psbase -obj $(Z7)
585	$(ADDMOD) $(PSD)psbase -obj $(Z8)
586	$(ADDMOD) $(PSD)psbase -obj $(Z9)
587	$(ADDMOD) $(PSD)psbase -obj $(Z10)
588	$(ADDMOD) $(PSD)psbase -obj $(Z11)
589	$(ADDMOD) $(PSD)psbase -obj $(Z12)
590	$(ADDMOD) $(PSD)psbase -oper $(Z1OPS)
591	$(ADDMOD) $(PSD)psbase -oper $(Z2OPS)
592	$(ADDMOD) $(PSD)psbase -oper $(Z3_4OPS)
593	$(ADDMOD) $(PSD)psbase -oper $(Z5_6OPS)
594	$(ADDMOD) $(PSD)psbase -oper $(Z7_8OPS)
595	$(ADDMOD) $(PSD)psbase -oper $(Z9OPS)
596	$(ADDMOD) $(PSD)psbase -oper $(Z10OPS)
597	$(ADDMOD) $(PSD)psbase -oper $(Z11OPS)
598	$(ADDMOD) $(PSD)psbase -iodev stdin stdout stderr lineedit statementedit
599	$(ADDMOD) $(PSD)psbase -include $(PSD)isupport $(PSD)nobtoken $(PSD)nousparm
600	$(ADDMOD) $(PSD)psbase -include $(GLD)rld $(GLD)rle $(GLD)sfile $(PSD)dscparse
601	$(ADDMOD) $(PSD)psbase -replace $(GLD)gsiodevs
602
603# -------------------------- Feature definitions -------------------------- #
604
605# ---------------- Full Level 1 interpreter ---------------- #
606
607# We keep the old name for backward compatibility.
608$(PSD)level1.dev : $(PSD)psl1.dev
609	$(CP_) $(PSD)psl1.dev $(PSD)level1.dev
610
611$(PSD)psl1.dev : $(INT_MAK) $(ECHOGS_XE)\
612 $(PSD)psbase.dev $(PSD)bcp.dev $(PSD)path1.dev $(PSD)type1.dev
613	$(SETMOD) $(PSD)psl1 -include $(PSD)psbase $(PSD)bcp $(PSD)path1 $(PSD)type1
614	$(ADDMOD) $(PSD)psl1 -emulator PostScript PostScriptLevel1
615
616# -------- Level 1 color extensions (CMYK color and colorimage) -------- #
617
618$(PSD)color.dev : $(INT_MAK) $(ECHOGS_XE) $(GLD)cmyklib.dev $(GLD)colimlib.dev $(PSD)cmykread.dev
619	$(SETMOD) $(PSD)color -include $(GLD)cmyklib $(GLD)colimlib $(PSD)cmykread
620
621cmykread_=$(PSOBJ)zcolor1.$(OBJ) $(PSOBJ)zht1.$(OBJ)
622$(PSD)cmykread.dev : $(INT_MAK) $(ECHOGS_XE) $(cmykread_)
623	$(SETMOD) $(PSD)cmykread $(cmykread_)
624	$(ADDMOD) $(PSD)cmykread -oper zcolor1 zht1
625
626$(PSOBJ)zcolor1.$(OBJ) : $(PSSRC)zcolor1.c $(OP)\
627 $(gscolor1_h) $(gscssub_h)\
628 $(gxcmap_h) $(gxcspace_h) $(gxdevice_h) $(gxfixed_h) $(gxmatrix_h)\
629 $(gzstate_h)\
630 $(ialloc_h) $(icolor_h) $(iimage_h) $(estack_h) $(iutil_h) $(igstate_h) $(store_h)
631	$(PSCC) $(PSO_)zcolor1.$(OBJ) $(C_) $(PSSRC)zcolor1.c
632
633$(PSOBJ)zht1.$(OBJ) : $(PSSRC)zht1.c $(OP) $(memory__h)\
634 $(gsmatrix_h) $(gsstate_h) $(gsstruct_h) $(gxdevice_h) $(gzht_h)\
635 $(ialloc_h) $(estack_h) $(igstate_h) $(iht_h) $(store_h)
636	$(PSCC) $(PSO_)zht1.$(OBJ) $(C_) $(PSSRC)zht1.c
637
638# ---------------- DSC Parser ---------------- #
639
640# The basic DSC parsing facility, used both for Orientation detection
641# (to compensate for badly-written PostScript producers that don't emit
642# the necessary setpagedevice calls) and by the PDF writer.
643
644dscparse_h=$(PSSRC)dscparse.h
645
646$(PSOBJ)zdscpars.$(OBJ) : $(PSSRC)zdscpars.c $(GH) $(memory__h) $(string__h)\
647 $(dscparse_h) $(estack_h) $(ialloc_h) $(idict_h) $(iddict_h) $(iname_h)\
648 $(iparam_h) $(istack_h) $(ivmspace_h) $(oper_h) $(store_h)\
649 $(gsstruct_h)
650	$(PSCC) $(PSO_)zdscpars.$(OBJ) $(C_) $(PSSRC)zdscpars.c
651
652$(PSOBJ)dscparse.$(OBJ) : $(PSSRC)dscparse.c $(dscparse_h)
653	$(PSCC) $(PSO_)dscparse.$(OBJ) $(C_) $(PSSRC)dscparse.c
654
655dscparse_=$(PSOBJ)zdscpars.$(OBJ) $(PSOBJ)dscparse.$(OBJ)
656
657$(PSD)dscparse.dev : $(INT_MAK) $(ECHOGS_XE) $(dscparse_)
658	$(SETMOD) $(PSD)dscparse -obj $(dscparse_)
659	$(ADDMOD) $(PSD)dscparse -oper zdscpars
660
661# A feature to pass the Orientation information from the DSC comments
662# to setpagedevice.
663
664$(PSD)usedsc.dev : $(INT_MAK) $(ECHOGS_XE) $(PSD)dscparse.dev
665	$(SETMOD) $(PSD)usedsc -include $(PSD)dscparse -ps gs_dscp
666
667# ---- Level 1 path miscellany (arcs, pathbbox, path enumeration) ---- #
668
669path1_=$(PSOBJ)zpath1.$(OBJ)
670$(PSD)path1.dev : $(INT_MAK) $(ECHOGS_XE) $(path1_) $(GLD)path1lib.dev
671	$(SETMOD) $(PSD)path1 $(path1_)
672	$(ADDMOD) $(PSD)path1 -include $(GLD)path1lib
673	$(ADDMOD) $(PSD)path1 -oper zpath1
674
675$(PSOBJ)zpath1.$(OBJ) : $(PSSRC)zpath1.c $(OP) $(memory__h)\
676 $(ialloc_h) $(estack_h) $(gspath_h) $(gsstruct_h) $(igstate_h)\
677 $(oparc_h) $(store_h)
678	$(PSCC) $(PSO_)zpath1.$(OBJ) $(C_) $(PSSRC)zpath1.c
679
680# ================ Level-independent PostScript options ================ #
681
682# ---------------- BCP filters ---------------- #
683
684bcp_=$(GLOBJ)sbcp.$(OBJ) $(PSOBJ)zfbcp.$(OBJ)
685$(PSD)bcp.dev : $(INT_MAK) $(ECHOGS_XE) $(bcp_)
686	$(SETMOD) $(PSD)bcp $(bcp_)
687	$(ADDMOD) $(PSD)bcp -oper zfbcp
688
689$(PSOBJ)zfbcp.$(OBJ) : $(PSSRC)zfbcp.c $(OP) $(memory__h)\
690 $(gsstruct_h) $(ialloc_h) $(ifilter_h)\
691 $(sbcp_h) $(stream_h) $(strimpl_h)
692	$(PSCC) $(PSO_)zfbcp.$(OBJ) $(C_) $(PSSRC)zfbcp.c
693
694# ---------------- Incremental font loading ---------------- #
695# (This only works for Type 1 fonts without eexec encryption.)
696
697$(PSD)diskfont.dev : $(INT_MAK) $(ECHOGS_XE)
698	$(SETMOD) $(PSD)diskfont -ps gs_diskf
699
700# ---------------- Double-precision floats ---------------- #
701
702double_=$(PSOBJ)zdouble.$(OBJ)
703$(PSD)double.dev : $(INT_MAK) $(ECHOGS_XE) $(double_)
704	$(SETMOD) $(PSD)double $(double_)
705	$(ADDMOD) $(PSD)double -oper zdouble1 zdouble2
706
707$(PSOBJ)zdouble.$(OBJ) : $(PSSRC)zdouble.c $(OP)\
708 $(ctype__h) $(math__h) $(memory__h) $(string__h)\
709 $(gxfarith_h) $(store_h)
710	$(PSCC) $(PSO_)zdouble.$(OBJ) $(C_) $(PSSRC)zdouble.c
711
712# ---------------- EPSF files with binary headers ---------------- #
713
714$(PSD)epsf.dev : $(INT_MAK) $(ECHOGS_XE)
715	$(SETMOD) $(PSD)epsf -ps gs_epsf
716
717# ---------------- RasterOp ---------------- #
718# This should be a separable feature in the core also....
719
720$(PSD)rasterop.dev : $(INT_MAK) $(ECHOGS_XE) $(GLD)roplib.dev $(PSD)ropread.dev
721	$(SETMOD) $(PSD)rasterop -include $(GLD)roplib $(PSD)ropread
722
723ropread_=$(PSOBJ)zrop.$(OBJ)
724$(PSD)ropread.dev : $(INT_MAK) $(ECHOGS_XE) $(ropread_)
725	$(SETMOD) $(PSD)ropread $(ropread_)
726	$(ADDMOD) $(PSD)ropread -oper zrop
727
728$(PSOBJ)zrop.$(OBJ) : $(PSSRC)zrop.c $(OP) $(memory__h)\
729 $(gsrop_h) $(gsutil_h) $(gxdevice_h)\
730 $(idict_h) $(idparam_h) $(igstate_h) $(store_h)
731	$(PSCC) $(PSO_)zrop.$(OBJ) $(C_) $(PSSRC)zrop.c
732
733# ---------------- PostScript Type 1 (and Type 4) fonts ---------------- #
734
735$(PSD)type1.dev : $(INT_MAK) $(ECHOGS_XE) $(GLD)psf1lib.dev $(PSD)psf1read.dev
736	$(SETMOD) $(PSD)type1 -include $(GLD)psf1lib $(PSD)psf1read
737
738psf1read_1=$(PSOBJ)zchar1.$(OBJ) $(PSOBJ)zcharout.$(OBJ)
739psf1read_2=$(PSOBJ)zfont1.$(OBJ) $(PSOBJ)zmisc1.$(OBJ)
740psf1read_=$(psf1read_1) $(psf1read_2)
741$(PSD)psf1read.dev : $(INT_MAK) $(ECHOGS_XE) $(psf1read_) $(GLD)seexec.dev
742	$(SETMOD) $(PSD)psf1read $(psf1read_1)
743	$(ADDMOD) $(PSD)psf1read -obj $(psf1read_2)
744	$(ADDMOD) $(PSD)psf1read -include $(GLD)seexec
745	$(ADDMOD) $(PSD)psf1read -oper zchar1 zfont1 zmisc1
746	$(ADDMOD) $(PSD)psf1read -ps gs_type1
747
748$(PSOBJ)zchar1.$(OBJ) : $(PSSRC)zchar1.c $(OP) $(memory__h)\
749 $(gscencs_h) $(gspaint_h) $(gspath_h) $(gsrect_h) $(gsstruct_h)\
750 $(gxdevice_h) $(gxfixed_h) $(gxmatrix_h)\
751 $(gxfont_h) $(gxfont1_h) $(gxtype1_h) $(gxfcid_h) $(gxchar_h) $(gzstate_h)\
752 $(estack_h) $(ialloc_h) $(ichar_h) $(ichar1_h) $(icharout_h)\
753 $(idict_h) $(ifont_h) $(igstate_h) $(iname_h) $(iutil_h) $(store_h)
754	$(PSCC) $(PSO_)zchar1.$(OBJ) $(C_) $(PSSRC)zchar1.c
755
756$(PSOBJ)zfont1.$(OBJ) : $(PSSRC)zfont1.c $(OP) $(memory__h)\
757 $(gsmatrix_h) $(gxdevice_h)\
758 $(gxfixed_h) $(gxfont_h) $(gxfont1_h)\
759 $(bfont_h) $(ialloc_h) $(ichar1_h) $(icharout_h) $(idict_h) $(idparam_h)\
760 $(ifont1_h) $(iname_h) $(store_h)
761	$(PSCC) $(PSO_)zfont1.$(OBJ) $(C_) $(PSSRC)zfont1.c
762
763$(PSOBJ)zmisc1.$(OBJ) : $(PSSRC)zmisc1.c $(OP) $(memory__h)\
764 $(gscrypt1_h)\
765 $(idict_h) $(idparam_h) $(ifilter_h)\
766 $(sfilter_h) $(stream_h) $(strimpl_h)
767	$(PSCC) $(PSO_)zmisc1.$(OBJ) $(C_) $(PSSRC)zmisc1.c
768
769# -------------- Compact Font Format and Type 2 charstrings ------------- #
770
771$(PSD)cff.dev : $(INT_MAK) $(ECHOGS_XE) $(PSD)psl2int.dev
772	$(SETMOD) $(PSD)cff -include $(PSD)psl2int -ps gs_css_e gs_cff
773
774$(PSOBJ)zchar2.$(OBJ) : $(PSSRC)zchar2.c $(OP)\
775 $(gxfixed_h) $(gxmatrix_h) $(gxfont_h) $(gxfont1_h) $(gxtype1_h)\
776 $(ichar1_h)
777	$(PSCC) $(PSO_)zchar2.$(OBJ) $(C_) $(PSSRC)zchar2.c
778
779$(PSOBJ)zfont2.$(OBJ) : $(PSSRC)zfont2.c $(OP) $(string__h)\
780 $(gsmatrix_h) $(gxfixed_h) $(gxfont_h) $(gxfont1_h)\
781 $(bfont_h) $(idict_h) $(idparam_h) $(ifont1_h) $(ifont2_h)\
782 $(iname_h) $(iddict_h) $(store_h)
783	$(PSCC) $(PSO_)zfont2.$(OBJ) $(C_) $(PSSRC)zfont2.c
784
785type2_=$(PSOBJ)zchar2.$(OBJ) $(PSOBJ)zfont2.$(OBJ)
786$(PSD)type2.dev : $(INT_MAK) $(ECHOGS_XE) $(type2_)\
787 $(PSD)type1.dev $(GLD)psf2lib.dev
788	$(SETMOD) $(PSD)type2 $(type2_)
789	$(ADDMOD) $(PSD)type2 -oper zchar2 zfont2
790	$(ADDMOD) $(PSD)type2 -include $(PSD)type1 $(GLD)psf2lib
791
792# ---------------- Type 32 (downloaded bitmap) fonts ---------------- #
793
794$(PSOBJ)zchar32.$(OBJ) : $(PSSRC)zchar32.c $(OP)\
795 $(gsccode_h) $(gsmatrix_h) $(gsutil_h)\
796 $(gxfcache_h) $(gxfixed_h) $(gxfont_h)\
797 $(ifont_h) $(igstate_h) $(store_h)
798	$(PSCC) $(PSO_)zchar32.$(OBJ) $(C_) $(PSSRC)zchar32.c
799
800$(PSOBJ)zfont32.$(OBJ) : $(PSSRC)zfont32.c $(OP)\
801 $(gsccode_h) $(gsmatrix_h) $(gsutil_h) $(gxfont_h) $(gxtext_h)\
802 $(bfont_h) $(store_h) $(ichar_h)
803	$(PSCC) $(PSO_)zfont32.$(OBJ) $(C_) $(PSSRC)zfont32.c
804
805type32_=$(PSOBJ)zchar32.$(OBJ) $(PSOBJ)zfont32.$(OBJ)
806$(PSD)type32.dev : $(INT_MAK) $(ECHOGS_XE) $(type32_)
807	$(SETMOD) $(PSD)type32 $(type32_)
808	$(ADDMOD) $(PSD)type32 -oper zchar32 zfont32
809	$(ADDMOD) $(PSD)type32 -ps gs_res gs_typ32
810
811# ---------------- TrueType and PostScript Type 42 fonts ---------------- #
812
813# Mac glyph support (has an internal dependency)
814$(PSD)macroman.dev : $(INT_MAK) $(ECHOGS_XE) $(PSINIT)gs_mro_e.ps
815	$(SETMOD) $(PSD)macroman -ps gs_mro_e
816
817$(PSD)macglyph.dev : $(INT_MAK) $(ECHOGS_XE) $(PSINIT)gs_mgl_e.ps\
818 $(PSD)macroman.dev
819	$(SETMOD) $(PSD)macglyph -include $(PSD)macroman -ps gs_mgl_e
820
821# Native TrueType support
822$(PSD)ttfont.dev : $(INT_MAK) $(ECHOGS_XE) $(PSD)macglyph.dev $(PSD)type42.dev
823	$(SETMOD) $(PSD)ttfont -include $(PSD)macglyph $(PSD)type42
824	$(ADDMOD) $(PSD)ttfont -ps gs_wan_e gs_agl gs_ttf
825
826# Type 42 (embedded TrueType) support
827type42read_=$(PSOBJ)zchar42.$(OBJ) $(PSOBJ)zcharout.$(OBJ) $(PSOBJ)zfont42.$(OBJ)
828$(PSD)type42.dev : $(INT_MAK) $(ECHOGS_XE) $(type42read_) $(GLD)ttflib.dev
829	$(SETMOD) $(PSD)type42 $(type42read_)
830	$(ADDMOD) $(PSD)type42 -include $(GLD)ttflib
831	$(ADDMOD) $(PSD)type42 -oper zchar42 zfont42
832	$(ADDMOD) $(PSD)type42 -ps gs_typ42
833
834$(PSOBJ)zchar42.$(OBJ) : $(PSSRC)zchar42.c $(OP)\
835 $(gsmatrix_h) $(gspaint_h) $(gspath_h)\
836 $(gxfixed_h) $(gxfont_h) $(gxfont42_h)\
837 $(gxistate_h) $(gxpath_h) $(gxtext_h) $(gzstate_h)\
838 $(dstack_h) $(estack_h) $(ichar_h) $(icharout_h)\
839 $(ifont_h) $(igstate_h) $(store_h) $(string_h) $(zchar42_h) $(idict_h)
840	$(PSCC) $(PSO_)zchar42.$(OBJ) $(C_) $(PSSRC)zchar42.c
841
842$(PSOBJ)zfont42.$(OBJ) : $(PSSRC)zfont42.c $(OP) $(memory__h)\
843 $(gsccode_h) $(gsmatrix_h) $(gxfont_h) $(gxfont42_h)\
844 $(bfont_h) $(icharout_h) $(idict_h) $(idparam_h) $(ifont42_h) $(iname_h)\
845 $(ichar1_h) $(store_h)
846	$(PSCC) $(PSO_)zfont42.$(OBJ) $(C_) $(PSSRC)zfont42.c
847
848# ======================== Precompilation options ======================== #
849
850# ---------------- Stochastic halftone ---------------- #
851
852$(PSD)stocht.dev : $(INT_MAK) $(ECHOGS_XE) $(PSD)stocht$(COMPILE_INITS).dev
853	$(SETMOD) $(PSD)stocht -include $(PSD)stocht$(COMPILE_INITS)
854
855# If we aren't compiling, just include the PostScript code.
856# Note that the resource machinery must be loaded first.
857$(PSD)stocht0.dev : $(INT_MAK) $(ECHOGS_XE)
858	$(SETMOD) $(PSD)stocht0 -ps gs_res ht_ccsto
859
860# If we are compiling, a special compilation step is needed.
861stocht1_=$(PSOBJ)ht_ccsto.$(OBJ)
862$(PSD)stocht1.dev : $(INT_MAK) $(ECHOGS_XE) $(stocht1_) $(PSD)stocht0.dev
863	$(SETMOD) $(PSD)stocht1 $(stocht1_)
864	$(ADDMOD) $(PSD)stocht1 -halftone $(Q)StochasticDefault$(Q)
865	$(ADDMOD) $(PSD)stocht1 -include $(PSD)stocht0
866
867$(PSOBJ)ht_ccsto.$(OBJ) : $(PSGEN)ht_ccsto.c $(gxdhtres_h)
868	$(PSCC) $(PSO_)ht_ccsto.$(OBJ) $(C_) $(PSGEN)ht_ccsto.c
869
870$(PSGEN)ht_ccsto.c : $(PSLIB)ht_ccsto.ps $(GENHT_XE)
871	$(EXP)$(GENHT_XE) $(PSLIB)ht_ccsto.ps $(PSGEN)ht_ccsto.c
872
873# ================ PS LL3 features used internally in L2 ================ #
874
875# ---------------- Functions ---------------- #
876
877ifunc_h=$(PSSRC)ifunc.h $(gsfunc_h)
878
879# Generic support, and FunctionType 0.
880funcread_=$(PSOBJ)zfunc.$(OBJ) $(PSOBJ)zfunc0.$(OBJ)
881$(PSD)func.dev : $(INT_MAK) $(ECHOGS_XE) $(funcread_) $(GLD)funclib.dev
882	$(SETMOD) $(PSD)func $(funcread_)
883	$(ADDMOD) $(PSD)func -oper zfunc
884	$(ADDMOD) $(PSD)func -functiontype 0
885	$(ADDMOD) $(PSD)func -include $(GLD)funclib
886
887$(PSOBJ)zfunc.$(OBJ) : $(PSSRC)zfunc.c $(OP) $(memory__h)\
888 $(gscdefs_h) $(gsfunc_h) $(gsstruct_h)\
889 $(ialloc_h) $(idict_h) $(idparam_h) $(ifunc_h) $(store_h) $(zfunc_h)
890	$(PSCC) $(PSO_)zfunc.$(OBJ) $(C_) $(PSSRC)zfunc.c
891
892$(PSOBJ)zfunc0.$(OBJ) : $(PSSRC)zfunc0.c $(OP) $(memory__h)\
893 $(gsdsrc_h) $(gsfunc_h) $(gsfunc0_h)\
894 $(stream_h)\
895 $(files_h) $(ialloc_h) $(idict_h) $(idparam_h) $(ifunc_h)
896	$(PSCC) $(PSO_)zfunc0.$(OBJ) $(C_) $(PSSRC)zfunc0.c
897
898# ---------------- zlib/Flate filters ---------------- #
899
900fzlib_=$(PSOBJ)zfzlib.$(OBJ)
901$(PSD)fzlib.dev : $(INT_MAK) $(ECHOGS_XE) $(fzlib_)\
902 $(GLD)szlibe.dev $(GLD)szlibd.dev
903	$(SETMOD) $(PSD)fzlib -include $(GLD)szlibe $(GLD)szlibd
904	$(ADDMOD) $(PSD)fzlib -obj $(fzlib_)
905	$(ADDMOD) $(PSD)fzlib -oper zfzlib
906
907$(PSOBJ)zfzlib.$(OBJ) : $(PSSRC)zfzlib.c $(OP)\
908 $(idict_h) $(idparam_h) $(ifilter_h) $(ifrpred_h) $(ifwpred_h)\
909 $(spdiffx_h) $(spngpx_h) $(strimpl_h) $(szlibx_h)
910	$(PSCC) $(PSO_)zfzlib.$(OBJ) $(C_) $(PSSRC)zfzlib.c
911
912# ---------------- ReusableStreamDecode filter ---------------- #
913# This is also used by the implementation of CIDFontType 0 fonts.
914
915$(PSD)frsd.dev : $(INT_MAK) $(ECHOGS_XE) $(PSD)zfrsd.dev
916	$(SETMOD) $(PSD)frsd -include $(PSD)zfrsd
917	$(ADDMOD) $(PSD)frsd -ps gs_lev2 gs_res gs_frsd
918
919zfrsd_=$(PSOBJ)zfrsd.$(OBJ)
920$(PSD)zfrsd.dev : $(INT_MAK) $(ECHOGS_XE) $(zfrsd_)
921	$(SETMOD) $(PSD)zfrsd $(zfrsd_)
922	$(ADDMOD) $(PSD)zfrsd -oper zfrsd
923
924$(PSOBJ)zfrsd.$(OBJ) : $(PSSRC)zfrsd.c $(OP) $(memory__h)\
925 $(gsfname_h) $(gxiodev_h)\
926 $(sfilter_h) $(stream_h) $(strimpl_h)\
927 $(files_h) $(idict_h) $(idparam_h) $(iname_h) $(istruct_h) $(store_h)\
928 $(zfile_h) $(zfrsd_h)
929	$(PSCC) $(PSO_)zfrsd.$(OBJ) $(C_) $(PSSRC)zfrsd.c
930
931# ======================== PostScript Level 2 ======================== #
932
933# We keep the old name for backward compatibility.
934$(PSD)level2.dev : $(PSD)psl2.dev
935	$(CP_) $(PSD)psl2.dev $(PSD)level2.dev
936
937# We -include dpsand2 first so that geninit will have access to the
938# system name table as soon as possible.
939$(PSD)psl2.dev : $(INT_MAK) $(ECHOGS_XE)\
940 $(PSD)cidfont.dev $(PSD)cie.dev $(PSD)cmapread.dev $(PSD)compfont.dev\
941 $(PSD)dct.dev $(PSD)dpsand2.dev\
942 $(PSD)filter.dev $(PSD)iodevice.dev $(PSD)pagedev.dev $(PSD)pattern.dev\
943 $(PSD)psl1.dev $(GLD)psl2lib.dev $(PSD)psl2read.dev\
944 $(PSD)sepr.dev $(PSD)type32.dev $(PSD)type42.dev\
945 $(PSD)fimscale.dev
946	$(SETMOD) $(PSD)psl2 -include $(PSD)dpsand2
947	$(ADDMOD) $(PSD)psl2 -include $(PSD)cidfont $(PSD)cie $(PSD)cmapread $(PSD)compfont
948	$(ADDMOD) $(PSD)psl2 -include $(PSD)dct $(PSD)filter $(PSD)iodevice
949	$(ADDMOD) $(PSD)psl2 -include $(PSD)pagedev $(PSD)pattern $(PSD)psl1 $(GLD)psl2lib $(PSD)psl2read
950	$(ADDMOD) $(PSD)psl2 -include $(PSD)sepr $(PSD)type32 $(PSD)type42
951	$(ADDMOD) $(PSD)psl2 -include $(PSD)fimscale
952	$(ADDMOD) $(PSD)psl2 -emulator PostScript PostScriptLevel2
953
954# Define basic Level 2 language support.
955# This is the minimum required for CMap and CIDFont support.
956
957psl2int_=$(PSOBJ)iutil2.$(OBJ) $(PSOBJ)zmisc2.$(OBJ)
958$(PSD)psl2int.dev : $(INT_MAK) $(ECHOGS_XE) $(psl2int_)\
959 $(PSD)dps2int.dev $(PSD)usparam.dev
960	$(SETMOD) $(PSD)psl2int $(psl2int_)
961	$(ADDMOD) $(PSD)psl2int -include $(PSD)dps2int $(PSD)usparam
962	$(ADDMOD) $(PSD)psl2int -oper zmisc2
963	$(ADDMOD) $(PSD)psl2int -ps gs_lev2 gs_res
964
965ivmem2_h=$(PSSRC)ivmem2.h
966
967$(PSOBJ)iutil2.$(OBJ) : $(PSSRC)iutil2.c $(GH) $(memory__h) $(string__h)\
968 $(gsparam_h) $(gsutil_h)\
969 $(ierrors_h) $(idict_h) $(imemory_h) $(iutil_h) $(iutil2_h) $(opcheck_h)
970	$(PSCC) $(PSO_)iutil2.$(OBJ) $(C_) $(PSSRC)iutil2.c
971
972$(PSOBJ)zmisc2.$(OBJ) : $(PSSRC)zmisc2.c $(OP) $(memory__h) $(string__h)\
973 $(iddict_h) $(idparam_h) $(iparam_h) $(dstack_h) $(estack_h)\
974 $(ilevel_h) $(iname_h) $(iutil2_h) $(ivmspace_h) $(store_h)
975	$(PSCC) $(PSO_)zmisc2.$(OBJ) $(C_) $(PSSRC)zmisc2.c
976
977# Define support for user and system parameters.
978# We make this a separate module only because it must have a default.
979
980nousparm_=$(PSOBJ)inouparm.$(OBJ)
981$(PSD)nousparm.dev : $(INT_MAK) $(ECHOGS_XE) $(nousparm_)
982	$(SETMOD) $(PSD)nousparm $(nousparm_)
983
984$(PSOBJ)inouparm.$(OBJ) : $(PSSRC)inouparm.c\
985 $(ghost_h) $(icontext_h)
986	$(PSCC) $(PSO_)inouparm.$(OBJ) $(C_) $(PSSRC)inouparm.c
987
988usparam_=$(PSOBJ)zusparam.$(OBJ)
989$(PSD)usparam.dev : $(INT_MAK) $(ECHOGS_XE) $(usparam_)
990	$(SETMOD) $(PSD)usparam $(usparam_)
991	$(ADDMOD) $(PSD)usparam -oper zusparam -replace $(PSD)nousparm
992
993
994# Note that zusparam includes both Level 1 and Level 2 operators.
995$(PSOBJ)zusparam.$(OBJ) : $(PSSRC)zusparam.c $(OP) $(memory__h) $(string__h)\
996 $(gscdefs_h) $(gsfont_h) $(gsstruct_h) $(gsutil_h) $(gxht_h)\
997 $(ialloc_h) $(icontext_h) $(idict_h) $(idparam_h) $(iparam_h)\
998 $(iname_h) $(itoken_h) $(iutil2_h) $(ivmem2_h)\
999 $(dstack_h) $(estack_h) $(store_h) $(gsnamecl_h) $(gslibctx_h)
1000	$(PSCC) $(PSO_)zusparam.$(OBJ) $(C_) $(PSSRC)zusparam.c
1001
1002# Define full Level 2 support.
1003
1004iimage2_h=$(PSSRC)iimage2.h
1005
1006psl2read_=$(PSOBJ)zcolor2.$(OBJ) $(PSOBJ)zcsindex.$(OBJ) $(PSOBJ)zht2.$(OBJ) $(PSOBJ)zimage2.$(OBJ)
1007# Note that zmisc2 includes both Level 1 and Level 2 operators.
1008$(PSD)psl2read.dev : $(INT_MAK) $(ECHOGS_XE) $(psl2read_)\
1009 $(PSD)psl2int.dev $(PSD)dps2read.dev
1010	$(SETMOD) $(PSD)psl2read $(psl2read_)
1011	$(ADDMOD) $(PSD)psl2read -include $(PSD)psl2int $(PSD)dps2read
1012	$(ADDMOD) $(PSD)psl2read -oper zht2_l2
1013
1014$(PSOBJ)zcolor2.$(OBJ) : $(PSSRC)zcolor2.c $(OP) $(string__h)\
1015 $(gscolor_h) $(gscssub_h) $(gsmatrix_h) $(gsstruct_h)\
1016 $(gxcolor2_h) $(gxcspace_h) $(gxdcolor_h) $(gxdevice_h) $(gxdevmem_h) $(gxfixed_h) $(gxpcolor_h)\
1017 $(estack_h) $(ialloc_h) $(idict_h) $(iname_h) $(idparam_h) $(igstate_h) $(istruct_h)\
1018 $(store_h)
1019	$(PSCC) $(PSO_)zcolor2.$(OBJ) $(C_) $(PSSRC)zcolor2.c
1020
1021$(PSOBJ)zcsindex.$(OBJ) : $(PSSRC)zcsindex.c $(OP) $(memory__h)\
1022 $(gscolor_h) $(gsstruct_h) $(gxfixed_h) $(gxcolor2_h) $(gxcspace_h) $(gsmatrix_h)\
1023 $(ialloc_h) $(icsmap_h) $(estack_h) $(igstate_h) $(ivmspace_h) $(store_h)
1024	$(PSCC) $(PSO_)zcsindex.$(OBJ) $(C_) $(PSSRC)zcsindex.c
1025
1026$(PSOBJ)zht2.$(OBJ) : $(PSSRC)zht2.c $(OP)\
1027 $(gsstruct_h) $(gxdevice_h) $(gzht_h)\
1028 $(estack_h) $(ialloc_h) $(icolor_h) $(iddict_h) $(idparam_h) $(igstate_h)\
1029 $(iht_h) $(store_h) $(iname) $(zht2_h)
1030	$(PSCC) $(PSO_)zht2.$(OBJ) $(C_) $(PSSRC)zht2.c
1031
1032$(PSOBJ)zimage2.$(OBJ) : $(PSSRC)zimage2.c $(OP) $(math__h) $(memory__h)\
1033 $(gscolor_h) $(gscolor2_h) $(gscspace_h) $(gsimage_h) $(gsmatrix_h)\
1034 $(gxfixed_h)\
1035 $(idict_h) $(idparam_h) $(iimage_h) $(iimage2_h) $(ilevel_h) $(igstate_h)
1036	$(PSCC) $(PSO_)zimage2.$(OBJ) $(C_) $(PSSRC)zimage2.c
1037
1038# ---------------- setpagedevice ---------------- #
1039
1040pagedev_=$(PSOBJ)zdevice2.$(OBJ) $(PSOBJ)zmedia2.$(OBJ)
1041$(PSD)pagedev.dev : $(INT_MAK) $(ECHOGS_XE) $(pagedev_)
1042	$(SETMOD) $(PSD)pagedev $(pagedev_)
1043	$(ADDMOD) $(PSD)pagedev -oper zdevice2_l2 zmedia2_l2
1044	$(ADDMOD) $(PSD)pagedev -ps gs_setpd
1045
1046$(PSOBJ)zdevice2.$(OBJ) : $(PSSRC)zdevice2.c $(OP) $(math__h) $(memory__h)\
1047 $(dstack_h) $(estack_h)\
1048 $(idict_h) $(idparam_h) $(igstate_h) $(iname_h) $(iutil_h) $(store_h)\
1049 $(gxdevice_h) $(gsstate_h)
1050	$(PSCC) $(PSO_)zdevice2.$(OBJ) $(C_) $(PSSRC)zdevice2.c
1051
1052$(PSOBJ)zmedia2.$(OBJ) : $(PSSRC)zmedia2.c $(OP) $(math__h) $(memory__h)\
1053 $(gsmatrix_h) $(idict_h) $(idparam_h) $(iname_h) $(store_h)
1054	$(PSCC) $(PSO_)zmedia2.$(OBJ) $(C_) $(PSSRC)zmedia2.c
1055
1056# ---------------- IODevices ---------------- #
1057
1058iodevice_=$(PSOBJ)ziodev2.$(OBJ) $(PSOBJ)zdevcal.$(OBJ)
1059$(PSD)iodevice.dev : $(INT_MAK) $(ECHOGS_XE) $(iodevice_)
1060	$(SETMOD) $(PSD)iodevice $(iodevice_)
1061	$(ADDMOD) $(PSD)iodevice -oper ziodev2_l2
1062	$(ADDMOD) $(PSD)iodevice -iodev null calendar
1063
1064$(PSOBJ)ziodev2.$(OBJ) : $(PSSRC)ziodev2.c $(OP) $(string__h) $(gp_h)\
1065 $(gxiodev_h) $(stream_h)\
1066 $(dstack_h) $(files_h) $(iparam_h) $(iutil2_h) $(store_h)
1067	$(PSCC) $(PSO_)ziodev2.$(OBJ) $(C_) $(PSSRC)ziodev2.c
1068
1069$(PSOBJ)zdevcal.$(OBJ) : $(PSSRC)zdevcal.c $(GH) $(time__h)\
1070 $(gxiodev_h) $(iparam_h) $(istack_h)
1071	$(PSCC) $(PSO_)zdevcal.$(OBJ) $(C_) $(PSSRC)zdevcal.c
1072
1073# ---------------- Filters other than the ones in sfilter.c ---------------- #
1074
1075# Standard Level 2 decoding filters only.  The PDF configuration uses this.
1076fdecode_=$(GLOBJ)scantab.$(OBJ) $(GLOBJ)scfparam.$(OBJ) $(GLOBJ)sfilter2.$(OBJ) $(PSOBJ)zfdecode.$(OBJ)
1077$(PSD)fdecode.dev : $(INT_MAK) $(ECHOGS_XE) $(fdecode_)\
1078 $(GLD)cfd.dev $(GLD)lzwd.dev $(GLD)pdiff.dev $(GLD)pngp.dev $(GLD)rld.dev
1079	$(SETMOD) $(PSD)fdecode $(fdecode_)
1080	$(ADDMOD) $(PSD)fdecode -include $(GLD)cfd $(GLD)lzwd $(GLD)pdiff $(GLD)pngp $(GLD)rld
1081	$(ADDMOD) $(PSD)fdecode -oper zfdecode
1082
1083$(PSOBJ)zfdecode.$(OBJ) : $(PSSRC)zfdecode.c $(OP) $(memory__h)\
1084 $(gsparam_h) $(gsstruct_h)\
1085 $(ialloc_h) $(idict_h) $(idparam_h) $(ifilter_h) $(ifilter2_h) $(ifrpred_h)\
1086 $(ilevel_h) $(iparam_h)\
1087 $(sa85x_h) $(scf_h) $(scfx_h) $(sfilter_h) $(slzwx_h) $(spdiffx_h) $(spngpx_h)\
1088 $(store_h) $(stream_h) $(strimpl_h)
1089	$(PSCC) $(PSO_)zfdecode.$(OBJ) $(C_) $(PSSRC)zfdecode.c
1090
1091# Complete Level 2 filter capability.
1092filter_=$(PSOBJ)zfilter2.$(OBJ)
1093$(PSD)filter.dev : $(INT_MAK) $(ECHOGS_XE) $(PSD)fdecode.dev $(filter_)\
1094 $(GLD)cfe.dev $(GLD)lzwe.dev $(GLD)rle.dev
1095	$(SETMOD) $(PSD)filter -include $(PSD)fdecode
1096	$(ADDMOD) $(PSD)filter -obj $(filter_)
1097	$(ADDMOD) $(PSD)filter -include $(GLD)cfe $(GLD)lzwe $(GLD)rle
1098	$(ADDMOD) $(PSD)filter -oper zfilter2
1099
1100$(PSOBJ)zfilter2.$(OBJ) : $(PSSRC)zfilter2.c $(OP) $(memory__h)\
1101 $(gsstruct_h)\
1102 $(ialloc_h) $(idict_h) $(idparam_h) $(ifilter_h) $(ifilter2_h) $(ifwpred_h)\
1103 $(store_h)\
1104 $(sfilter_h) $(scfx_h) $(slzwx_h) $(spdiffx_h) $(spngpx_h) $(strimpl_h)
1105	$(PSCC) $(PSO_)zfilter2.$(OBJ) $(C_) $(PSSRC)zfilter2.c
1106
1107# Extensions beyond Level 2 standard.
1108xfilter_=$(PSOBJ)sbhc.$(OBJ) $(PSOBJ)sbwbs.$(OBJ) $(PSOBJ)shcgen.$(OBJ)\
1109 $(PSOBJ)smtf.$(OBJ) $(PSOBJ)zfilterx.$(OBJ)
1110$(PSD)xfilter.dev : $(INT_MAK) $(ECHOGS_XE) $(xfilter_) $(GLD)pngp.dev
1111	$(SETMOD) $(PSD)xfilter $(xfilter_)
1112	$(ADDMOD) $(PSD)xfilter -include $(GLD)pngp
1113	$(ADDMOD) $(PSD)xfilter -oper zfilterx
1114
1115$(PSOBJ)sbhc.$(OBJ) : $(PSSRC)sbhc.c $(AK) $(memory__h) $(stdio__h)\
1116 $(gdebug_h) $(sbhc_h) $(shcgen_h) $(strimpl_h)
1117	$(PSCC) $(PSO_)sbhc.$(OBJ) $(C_) $(PSSRC)sbhc.c
1118
1119$(PSOBJ)sbwbs.$(OBJ) : $(PSSRC)sbwbs.c $(AK) $(stdio__h) $(memory__h)\
1120 $(gdebug_h) $(sbwbs_h) $(sfilter_h) $(strimpl_h)
1121	$(PSCC) $(PSO_)sbwbs.$(OBJ) $(C_) $(PSSRC)sbwbs.c
1122
1123$(PSOBJ)shcgen.$(OBJ) : $(PSSRC)shcgen.c $(AK) $(memory__h) $(stdio__h)\
1124 $(gdebug_h) $(gserrors_h) $(gsmemory_h)\
1125 $(scommon_h) $(shc_h) $(shcgen_h)
1126	$(PSCC) $(PSO_)shcgen.$(OBJ) $(C_) $(PSSRC)shcgen.c
1127
1128$(PSOBJ)smtf.$(OBJ) : $(PSSRC)smtf.c $(AK) $(stdio__h)\
1129 $(smtf_h) $(strimpl_h)
1130	$(PSCC) $(PSO_)smtf.$(OBJ) $(C_) $(PSSRC)smtf.c
1131
1132$(PSOBJ)zfilterx.$(OBJ) : $(PSSRC)zfilterx.c $(OP) $(memory__h)\
1133 $(gsstruct_h) $(ialloc_h) $(idict_h) $(idparam_h) $(ifilter_h)\
1134 $(store_h) $(sfilter_h) $(sbhc_h) $(sbtx_h) $(sbwbs_h) $(shcgen_h)\
1135 $(smtf_h) $(strimpl_h)
1136	$(PSCC) $(PSO_)zfilterx.$(OBJ) $(C_) $(PSSRC)zfilterx.c
1137
1138# MD5 digest filter
1139fmd5_=$(PSOBJ)zfmd5.$(OBJ)
1140$(PSD)fmd5.dev : $(INT_MAK) $(ECHOGS_XE) $(fmd5_) $(GLD)smd5.dev
1141	$(SETMOD) $(PSD)fmd5 $(fmd5_)
1142	$(ADDMOD) $(PSD)fmd5 -include $(GLD)smd5
1143	$(ADDMOD) $(PSD)fmd5 -oper zfmd5
1144
1145$(PSOBJ)zfmd5.$(OBJ) : $(PSSRC)zfmd5.c $(OP) $(memory__h)\
1146 $(gsstruct_h) $(ialloc_h) $(ifilter_h)\
1147 $(smd5_h) $(stream_h) $(strimpl_h)
1148	$(PSCC) $(PSO_)zfmd5.$(OBJ) $(C_) $(PSSRC)zfmd5.c
1149
1150# SHA-256 digest filter
1151fsha2_=$(PSOBJ)zfsha2.$(OBJ)
1152$(PSD)fsha2.dev : $(INT_MAK) $(ECHOGS_XE) $(fsha2_) $(GLD)ssha2.dev
1153	$(SETMOD) $(PSD)fsha2 $(fsha2_)
1154	$(ADDMOD) $(PSD)fsha2 -include $(GLD)ssha2
1155	$(ADDMOD) $(PSD)fsha2 -oper zfsha2
1156
1157$(PSOBJ)zfsha2.$(OBJ) : $(PSSRC)zfsha2.c $(OP) $(memory__h)\
1158 $(ghost_h) $(oper_h) $(gsstruct_h) $(stream_h) $(strimpl_h)\
1159 $(ialloc_h) $(ifilter_h) $(ssha2_h)
1160	$(PSCC) $(PSO_)zfsha2.$(OBJ) $(C_) $(PSSRC)zfsha2.c
1161
1162# Arcfour cipher filter
1163farc4_=$(PSOBJ)zfarc4.$(OBJ)
1164$(PSD)farc4.dev : $(INT_MAK) $(ECHOGS_XE) $(farc4_) $(GLD)sarc4.dev
1165	$(SETMOD) $(PSD)farc4 $(farc4_)
1166	$(ADDMOD) $(PSD)farc4 -include $(GLD)sarc4
1167	$(ADDMOD) $(PSD)farc4 -oper zfarc4
1168
1169$(PSOBJ)zfarc4.$(OBJ) : $(PSSRC)zfarc4.c $(OP) $(memory__h)\
1170 $(gsstruct_h) $(ialloc_h) $(idict_h) $(ifilter_h)\
1171 $(sarc4_h) $(stream_h) $(strimpl_h)
1172	$(PSCC) $(PSO_)zfarc4.$(OBJ) $(C_) $(PSSRC)zfarc4.c
1173
1174# AES cipher filter
1175faes_=$(PSOBJ)zfaes.$(OBJ)
1176$(PSD)faes.dev : $(INT_MAK) $(ECHOGS_XE) $(faes_) $(GLD)saes.dev
1177	$(SETMOD) $(PSD)faes $(faes_)
1178	$(ADDMOD) $(PSD)faes -include $(GLD)saes
1179	$(ADDMOD) $(PSD)faes -oper zfaes
1180
1181$(PSOBJ)zfaes.$(OBJ) : $(PSSRC)zfaes.c $(OP) $(memory__h)\
1182 $(gsstruct_h) $(ialloc_h) $(idict_h) $(idparam_h) $(ifilter_h)\
1183 $(saes_h) $(stream_h) $(strimpl_h)
1184	$(PSCC) $(PSO_)zfaes.$(OBJ) $(C_) $(PSSRC)zfaes.c
1185
1186# JBIG2 compression filter
1187# this can be turned on and off with a FEATURE_DEV
1188
1189fjbig2_=$(PSOBJ)zfjbig2_$(JBIG2_LIB).$(OBJ)
1190$(PSD)jbig2.dev : $(INT_MAK) $(ECHOGS_XE) $(fjbig2_) $(GLD)sjbig2.dev
1191	$(SETMOD) $(PSD)jbig2 $(fjbig2_)
1192	$(ADDMOD) $(PSD)jbig2 -include $(GLD)sjbig2
1193	$(ADDMOD) $(PSD)jbig2 -oper zfjbig2
1194
1195$(PSOBJ)zfjbig2_jbig2dec.$(OBJ) : $(PSSRC)zfjbig2.c $(OP) $(memory__h)\
1196 $(gsstruct_h) $(gstypes_h) $(ialloc_h) $(idict_h) $(ifilter_h)\
1197 $(store_h) $(stream_h) $(strimpl_h) $(sjbig2_h)
1198	$(PSJBIG2CC) $(PSO_)zfjbig2_jbig2dec.$(OBJ) $(C_) $(PSSRC)zfjbig2.c
1199
1200$(PSOBJ)zfjbig2_luratech.$(OBJ) : $(PSSRC)zfjbig2.c $(OP) $(memory__h)\
1201 $(gsstruct_h) $(gstypes_h) $(ialloc_h) $(idict_h) $(ifilter_h)\
1202 $(store_h) $(stream_h) $(strimpl_h) $(sjbig2_h)
1203	$(PSLDFJB2CC) $(PSO_)zfjbig2_luratech.$(OBJ) $(C_) $(PSSRC)zfjbig2.c
1204
1205# JPX (jpeg 2000) compression filter
1206# this can be turned on and off with a FEATURE_DEV
1207
1208$(PSD)jpx.dev : $(INT_MAK) $(ECHOGS_XE) $(PSD)jpx_$(JPX_LIB).dev
1209	$(CP_) $(PSD)jpx_$(JPX_LIB).dev $(PSD)jpx.dev
1210
1211fjpx_jasper=$(PSOBJ)zfjpx.$(OBJ)
1212
1213$(PSD)jpx_jasper.dev : $(INT_MAK) $(ECHOGS_XE) $(fjpx_jasper) $(GLD)sjpx.dev
1214	$(SETMOD) $(PSD)jpx_jasper $(fjpx_jasper)
1215	$(ADDMOD) $(PSD)jpx_jasper -include $(GLD)sjpx
1216	$(ADDMOD) $(PSD)jpx_jasper -include $(GLD)jasper
1217	$(ADDMOD) $(PSD)jpx_jasper -oper zfjpx
1218
1219fjpx_luratech=$(PSOBJ)zfjpx_luratech.$(OBJ)
1220
1221$(PSOBJ)zfjpx.$(OBJ) : $(PSSRC)zfjpx.c $(OP) $(memory__h)\
1222 $(gsstruct_h) $(gstypes_h) $(ialloc_h) $(idict_h) $(ifilter_h)\
1223 $(store_h) $(stream_h) $(strimpl_h) $(ialloc_h) $(iname_h)\
1224 $(gdebug_h) $(sjpx_h)
1225	$(PSJASCC) $(PSO_)zfjpx.$(OBJ) $(C_) $(PSSRC)zfjpx.c
1226
1227$(PSD)jpx_luratech.dev : $(INT_MAK) $(ECHOGS_XE) $(fjpx_luratech) $(GLD)sjpx.dev
1228	$(SETMOD) $(PSD)jpx_luratech $(fjpx_luratech)
1229	$(ADDMOD) $(PSD)jpx_luratech -include $(GLD)sjpx
1230	$(ADDMOD) $(PSD)jpx_luratech -include $(GLD)lwf_jp2
1231	$(ADDMOD) $(PSD)jpx_luratech -oper zfjpx
1232
1233$(PSOBJ)zfjpx_luratech.$(OBJ) : $(PSSRC)zfjpx.c $(OP) $(memory__h)\
1234 $(gsstruct_h) $(gstypes_h) $(ialloc_h) $(idict_h) $(ifilter_h)\
1235 $(store_h) $(stream_h) $(strimpl_h) $(sjpx_luratech_h)
1236	$(PSLWFJPXCC) $(PSO_)zfjpx_luratech.$(OBJ) \
1237		$(C_) $(PSSRC)zfjpx.c
1238
1239fjpx_openjpeg=$(PSOBJ)zfjpx_openjpeg.$(OBJ)
1240
1241$(PSD)jpx_openjpeg.dev : $(INT_MAK) $(ECHOGS_XE) $(fjpx_openjpeg) $(GLD)sjpx.dev
1242	$(SETMOD) $(PSD)jpx_openjpeg $(fjpx_openjpeg)
1243	$(ADDMOD) $(PSD)jpx_openjpeg -include $(GLD)sjpx
1244	$(ADDMOD) $(PSD)jpx_openjpeg -include $(GLD)openjpeg
1245	$(ADDMOD) $(PSD)jpx_openjpeg -oper zfjpx
1246
1247$(PSOBJ)zfjpx_openjpeg.$(OBJ) : $(PSSRC)zfjpx.c $(OP) $(memory__h)\
1248 $(gsstruct_h) $(gstypes_h) $(ialloc_h) $(idict_h) $(ifilter_h)\
1249 $(store_h) $(stream_h) $(strimpl_h) $(sjpx_openjpeg_h)
1250	$(PSOPJJPXCC) $(PSO_)zfjpx_openjpeg.$(OBJ) \
1251		$(C_) $(PSSRC)zfjpx.c
1252
1253
1254# imagemask scaling filter
1255fimscale_=$(PSOBJ)zfimscale.$(OBJ)
1256$(PSD)fimscale.dev : $(INT_MAK) $(ECHOGS_XE) $(fimscale_) $(GLD)simscale.dev
1257	$(SETMOD) $(PSD)fimscale $(fimscale_)
1258	$(ADDMOD) $(PSD)fimscale -include $(GLD)simscale
1259	$(ADDMOD) $(PSD)fimscale -oper zfimscale
1260
1261$(PSOBJ)zfimscale.$(OBJ) : $(PSSRC)zfimscale.c $(OP) $(memory__h)\
1262 $(gsstruct_h) $(ialloc_h) $(idict_h) $(ifilter_h)\
1263 $(simscale_h) $(stream_h) $(strimpl_h)
1264	$(PSCC) $(PSO_)zfimscale.$(OBJ) $(C_) $(PSSRC)zfimscale.c
1265
1266# ---------------- Binary tokens ---------------- #
1267
1268nobtoken_=$(PSOBJ)inobtokn.$(OBJ)
1269$(PSD)nobtoken.dev : $(INT_MAK) $(ECHOGS_XE) $(nobtoken_)
1270	$(SETMOD) $(PSD)nobtoken $(nobtoken_)
1271
1272$(PSOBJ)inobtokn.$(OBJ) : $(PSSRC)inobtokn.c $(GH)\
1273 $(stream_h) $(ierrors_h) $(iscan_h) $(iscanbin_h)
1274	$(PSCC) $(PSO_)inobtokn.$(OBJ) $(C_) $(PSSRC)inobtokn.c
1275
1276btoken_=$(PSOBJ)iscanbin.$(OBJ) $(PSOBJ)zbseq.$(OBJ)
1277$(PSD)btoken.dev : $(INT_MAK) $(ECHOGS_XE) $(btoken_)
1278	$(SETMOD) $(PSD)btoken $(btoken_)
1279	$(ADDMOD) $(PSD)btoken -oper zbseq_l2 -replace $(PSD)nobtoken
1280	$(ADDMOD) $(PSD)btoken -ps gs_btokn
1281
1282$(PSOBJ)iscanbin.$(OBJ) : $(PSSRC)iscanbin.c $(GH)\
1283 $(math__h) $(memory__h) $(ierrors_h)\
1284 $(gsutil_h) $(gxalloc_h) $(ialloc_h) $(ibnum_h) $(iddict_h) $(iname_h)\
1285 $(iscan_h) $(iscanbin_h) $(iutil_h) $(ivmspace_h)\
1286 $(btoken_h) $(dstack_h) $(ostack_h)\
1287 $(sfilter_h) $(store_h) $(stream_h) $(strimpl_h)
1288	$(PSCC) $(PSO_)iscanbin.$(OBJ) $(C_) $(PSSRC)iscanbin.c
1289
1290$(PSOBJ)zbseq.$(OBJ) : $(PSSRC)zbseq.c $(OP) $(memory__h)\
1291 $(gxalloc_h)\
1292 $(btoken_h) $(ialloc_h) $(istruct_h) $(store_h)
1293	$(PSCC) $(PSO_)zbseq.$(OBJ) $(C_) $(PSSRC)zbseq.c
1294
1295# ---------------- User paths & insideness testing ---------------- #
1296
1297upath_=$(PSOBJ)zupath.$(OBJ) $(PSOBJ)ibnum.$(OBJ) $(GLOBJ)gdevhit.$(OBJ)
1298$(PSD)upath.dev : $(INT_MAK) $(ECHOGS_XE) $(upath_)
1299	$(SETMOD) $(PSD)upath $(upath_)
1300	$(ADDMOD) $(PSD)upath -oper zupath_l2
1301
1302$(PSOBJ)zupath.$(OBJ) : $(PSSRC)zupath.c $(OP)\
1303 $(dstack_h) $(oparc_h) $(store_h)\
1304 $(ibnum_h) $(idict_h) $(igstate_h) $(iname_h) $(iutil_h) $(stream_h)\
1305 $(gscoord_h) $(gsmatrix_h) $(gspaint_h) $(gspath_h) $(gsstate_h)\
1306 $(gxfixed_h) $(gxdevice_h) $(gzpath_h) $(gzstate_h)
1307	$(PSCC) $(PSO_)zupath.$(OBJ) $(C_) $(PSSRC)zupath.c
1308
1309# -------- Additions common to Display PostScript and Level 2 -------- #
1310
1311$(PSD)dpsand2.dev : $(INT_MAK) $(ECHOGS_XE)\
1312 $(PSD)btoken.dev $(PSD)color.dev $(PSD)upath.dev $(GLD)dps2lib.dev $(PSD)dps2read.dev
1313	$(SETMOD) $(PSD)dpsand2 -include $(PSD)btoken $(PSD)color $(PSD)upath $(GLD)dps2lib $(PSD)dps2read
1314
1315dps2int_=$(PSOBJ)zvmem2.$(OBJ) $(PSOBJ)zdps1.$(OBJ)
1316# Note that zvmem2 includes both Level 1 and Level 2 operators.
1317$(PSD)dps2int.dev : $(INT_MAK) $(ECHOGS_XE) $(dps2int_)
1318	$(SETMOD) $(PSD)dps2int $(dps2int_)
1319	$(ADDMOD) $(PSD)dps2int -oper zvmem2 zdps1_l2
1320	$(ADDMOD) $(PSD)dps2int -ps gs_dps1
1321
1322dps2read_=$(PSOBJ)ibnum.$(OBJ) $(PSOBJ)zcharx.$(OBJ)
1323$(PSD)dps2read.dev : $(INT_MAK) $(ECHOGS_XE) $(dps2read_) $(PSD)dps2int.dev
1324	$(SETMOD) $(PSD)dps2read $(dps2read_)
1325	$(ADDMOD) $(PSD)dps2read -include $(PSD)dps2int
1326	$(ADDMOD) $(PSD)dps2read -oper ireclaim_l2 zcharx
1327	$(ADDMOD) $(PSD)dps2read -ps gs_dps2
1328
1329$(PSOBJ)ibnum.$(OBJ) : $(PSSRC)ibnum.c $(GH) $(math__h) $(memory__h)\
1330 $(ierrors_h) $(stream_h) $(ibnum_h) $(imemory_h) $(iutil_h)
1331	$(PSCC) $(PSO_)ibnum.$(OBJ) $(C_) $(PSSRC)ibnum.c
1332
1333$(PSOBJ)zcharx.$(OBJ) : $(PSSRC)zcharx.c $(OP)\
1334 $(gsmatrix_h) $(gstext_h) $(gxfixed_h) $(gxfont_h) $(gxtext_h)\
1335 $(ialloc_h) $(ibnum_h) $(ichar_h) $(iname_h) $(igstate_h) $(memory__h)
1336	$(PSCC) $(PSO_)zcharx.$(OBJ) $(C_) $(PSSRC)zcharx.c
1337
1338$(PSOBJ)zdps1.$(OBJ) : $(PSSRC)zdps1.c $(OP)\
1339 $(gsmatrix_h) $(gspath_h) $(gspath2_h) $(gsstate_h)\
1340 $(ialloc_h) $(ivmspace_h) $(igstate_h) $(store_h) $(stream_h) $(ibnum_h)
1341	$(PSCC) $(PSO_)zdps1.$(OBJ) $(C_) $(PSSRC)zdps1.c
1342
1343$(PSOBJ)zvmem2.$(OBJ) : $(PSSRC)zvmem2.c $(OP)\
1344 $(estack_h) $(ialloc_h) $(ivmspace_h) $(store_h) $(ivmem2_h)
1345	$(PSCC) $(PSO_)zvmem2.$(OBJ) $(C_) $(PSSRC)zvmem2.c
1346
1347# -------- Composite (PostScript Type 0) font support -------- #
1348
1349$(PSD)compfont.dev : $(INT_MAK) $(ECHOGS_XE)\
1350 $(GLD)psf0lib.dev $(PSD)psf0read.dev
1351	$(SETMOD) $(PSD)compfont -include $(GLD)psf0lib $(PSD)psf0read
1352
1353# We always include cmapread because zfont0.c refers to it,
1354# and it's not worth the trouble to exclude.
1355psf0read_=$(PSOBJ)zcfont.$(OBJ) $(PSOBJ)zfont0.$(OBJ)
1356$(PSD)psf0read.dev : $(INT_MAK) $(ECHOGS_XE) $(psf0read_)
1357	$(SETMOD) $(PSD)psf0read $(psf0read_)
1358	$(ADDMOD) $(PSD)psf0read -oper zcfont zfont0
1359	$(ADDMOD) $(PSD)psf0read -include $(PSD)cmapread
1360
1361$(PSOBJ)zcfont.$(OBJ) : $(PSSRC)zcfont.c $(OP)\
1362 $(gsmatrix_h)\
1363 $(gxfixed_h) $(gxfont_h) $(gxtext_h)\
1364 $(ichar_h) $(estack_h) $(ifont_h) $(igstate_h) $(store_h)
1365	$(PSCC) $(PSO_)zcfont.$(OBJ) $(C_) $(PSSRC)zcfont.c
1366
1367$(PSOBJ)zfont0.$(OBJ) : $(PSSRC)zfont0.c $(OP)\
1368 $(gsstruct_h)\
1369 $(gxdevice_h) $(gxfcmap_h) $(gxfixed_h) $(gxfont_h) $(gxfont0_h) $(gxmatrix_h)\
1370 $(gzstate_h)\
1371 $(bfont_h) $(ialloc_h) $(iddict_h) $(idparam_h) $(igstate_h) $(iname_h)\
1372 $(store_h)
1373	$(PSCC) $(PSO_)zfont0.$(OBJ) $(C_) $(PSSRC)zfont0.c
1374
1375# ---------------- CMap and CIDFont support ---------------- #
1376# Note that this requires at least minimal Level 2 support,
1377# because it requires findresource.
1378
1379icid_h=$(PSSRC)icid.h
1380ifcid_h=$(PSSRC)ifcid.h
1381
1382cmapread_=$(PSOBJ)zcid.$(OBJ) $(PSOBJ)zfcmap.$(OBJ)
1383$(PSD)cmapread.dev : $(INT_MAK) $(ECHOGS_XE) $(cmapread_)\
1384 $(GLD)cmaplib.dev $(PSD)psl2int.dev
1385	$(SETMOD) $(PSD)cmapread $(cmapread_)
1386	$(ADDMOD) $(PSD)cmapread -include $(GLD)cmaplib $(PSD)psl2int
1387	$(ADDMOD) $(PSD)cmapread -oper zfcmap
1388	$(ADDMOD) $(PSD)cmapread -ps gs_cmap
1389
1390$(PSOBJ)zfcmap.$(OBJ) : $(PSSRC)zfcmap.c $(OP) $(memory__h)\
1391 $(gsmatrix_h) $(gsstruct_h) $(gsutil_h)\
1392 $(gxfcmap1_h) $(gxfont_h)\
1393 $(ialloc_h) $(icid_h) $(iddict_h) $(idparam_h) $(ifont_h) $(iname_h)\
1394 $(store_h)
1395	$(PSCC) $(PSO_)zfcmap.$(OBJ) $(C_) $(PSSRC)zfcmap.c
1396
1397cidread_=$(PSOBJ)zcid.$(OBJ) $(PSOBJ)zfcid.$(OBJ) $(PSOBJ)zfcid0.$(OBJ) $(PSOBJ)zfcid1.$(OBJ)
1398$(PSD)cidfont.dev : $(INT_MAK) $(ECHOGS_XE) $(cidread_)\
1399 $(PSD)psf1read.dev $(PSD)psl2int.dev $(PSD)type2.dev $(PSD)type42.dev\
1400 $(PSD)zfrsd.dev
1401	$(SETMOD) $(PSD)cidfont $(cidread_)
1402	$(ADDMOD) $(PSD)cidfont -include $(PSD)psf1read $(PSD)psl2int
1403	$(ADDMOD) $(PSD)cidfont -include $(PSD)type2 $(PSD)type42 $(PSD)zfrsd
1404	$(ADDMOD) $(PSD)cidfont -oper zfcid0 zfcid1
1405	$(ADDMOD) $(PSD)cidfont -ps gs_cidfn gs_cidcm gs_fntem gs_cidtt gs_cidfm
1406
1407$(PSOBJ)zcid.$(OBJ) : $(PSSRC)zcid.c $(OP)\
1408 $(gxcid_h) $(ierrors_h) $(icid_h) $(idict_h) $(idparam_h) $(store_h)
1409	$(PSCC) $(PSO_)zcid.$(OBJ) $(C_) $(PSSRC)zcid.c
1410
1411$(PSOBJ)zfcid.$(OBJ) : $(PSSRC)zfcid.c $(OP)\
1412 $(gsmatrix_h) $(gxfcid_h)\
1413 $(bfont_h) $(icid_h) $(idict_h) $(idparam_h) $(ifcid_h) $(store_h)
1414	$(PSCC) $(PSO_)zfcid.$(OBJ) $(C_) $(PSSRC)zfcid.c
1415
1416$(PSOBJ)zfcid0.$(OBJ) : $(PSSRC)zfcid0.c $(OP) $(memory__h)\
1417 $(gsccode_h) $(gsmatrix_h) $(gsstruct_h)\
1418 $(gxalloc_h) $(gxfcid_h) $(gxfont1_h)\
1419 $(stream_h)\
1420 $(bfont_h) $(files_h) $(ichar_h) $(ichar1_h) $(icid_h) $(idict_h) $(idparam_h)\
1421 $(ifcid_h) $(ifont1_h) $(ifont2_h) $(ifont42_h) $(store_h)
1422	$(PSCC) $(PSO_)zfcid0.$(OBJ) $(C_) $(PSSRC)zfcid0.c
1423
1424$(PSOBJ)zfcid1.$(OBJ) : $(PSSRC)zfcid1.c $(OP) $(memory__h)\
1425 $(gsccode_h) $(gsmatrix_h) $(gsstruct_h) $(gsgcache_h) $(gsutil_h)\
1426 $(gxfcid_h) $(gxfcache_h)\
1427 $(bfont_h) $(icid_h) $(ichar1_h) $(idict_h) $(idparam_h)\
1428 $(ifcid_h) $(ifont42_h) $(store_h) $(stream_h) $(files_h)
1429	$(PSCC) $(PSO_)zfcid1.$(OBJ) $(C_) $(PSSRC)zfcid1.c
1430
1431# Testing only (CIDFont and CMap)
1432
1433cidtest_=$(PSOBJ)zcidtest.$(OBJ) $(GLOBJ)gsfont0c.$(OBJ)
1434$(PSD)cidtest.dev : $(INT_MAK) $(ECHOGS_XE) $(cidtest_)\
1435 $(PSD)cidfont.dev $(PSD)cmapread.dev $(GLD)psf.dev $(GLD)psf0lib.dev
1436	$(SETMOD) $(PSD)cidtest $(cidtest_)
1437	$(ADDMOD) $(PSD)cidtest -oper zcidtest
1438	$(ADDMOD) $(PSD)cidtest -include $(PSD)cidfont $(PSD)cmapread
1439	$(ADDMOD) $(PSD)cidtest -include $(GLD)psf $(GLD)psf0lib
1440
1441$(PSOBJ)zcidtest.$(OBJ) : $(PSSRC)zcidtest.c $(string__h) $(OP)\
1442 $(gdevpsf_h) $(gxfont_h) $(gxfont0c_h)\
1443 $(spprint_h) $(stream_h)\
1444 $(files_h) $(idict_h) $(ifont_h) $(igstate_h) $(iname_h) $(store_h)
1445	$(PSCC) $(PSO_)zcidtest.$(OBJ) $(C_) $(PSSRC)zcidtest.c
1446
1447# ---------------- CIE color ---------------- #
1448
1449cieread_=$(PSOBJ)zcie.$(OBJ) $(PSOBJ)zcrd.$(OBJ)
1450$(PSD)cie.dev : $(INT_MAK) $(ECHOGS_XE) $(cieread_) $(GLD)cielib.dev
1451	$(SETMOD) $(PSD)cie $(cieread_)
1452	$(ADDMOD) $(PSD)cie -oper zcrd_l2
1453	$(ADDMOD) $(PSD)cie -include $(GLD)cielib
1454
1455icie_h=$(PSSRC)icie.h
1456
1457$(PSOBJ)zcie.$(OBJ) : $(PSSRC)zcie.c $(OP) $(math__h) $(memory__h)\
1458 $(gscolor2_h) $(gscie_h) $(gsstruct_h) $(gxcspace_h)\
1459 $(ialloc_h) $(icie_h) $(idict_h) $(idparam_h) $(estack_h)\
1460 $(isave_h) $(igstate_h) $(ivmspace_h) $(store_h)\
1461 $(zcie_h) $(gsicc_create_h) $(gsicc_manage_h) $(gsicc_profilecache_h)
1462	$(PSCC) $(PSO_)zcie.$(OBJ) $(C_) $(PSSRC)zcie.c
1463
1464$(PSOBJ)zcrd.$(OBJ) : $(PSSRC)zcrd.c $(OP) $(math__h)\
1465 $(gscrd_h) $(gscrdp_h) $(gscspace_h) $(gscolor2_h) $(gsstruct_h)\
1466 $(estack_h) $(ialloc_h) $(icie_h) $(idict_h) $(idparam_h) $(igstate_h)\
1467 $(iparam_h) $(ivmspace_h) $(store_h)
1468	$(PSCC) $(PSO_)zcrd.$(OBJ) $(C_) $(PSSRC)zcrd.c
1469
1470# ---------------- Pattern color ---------------- #
1471
1472ipcolor_h=$(PSSRC)ipcolor.h
1473
1474$(PSD)pattern.dev : $(INT_MAK) $(ECHOGS_XE) $(GLD)patlib.dev $(PSD)patread.dev
1475	$(SETMOD) $(PSD)pattern -include $(GLD)patlib $(PSD)patread
1476
1477patread_=$(PSOBJ)zpcolor.$(OBJ)
1478$(PSD)patread.dev : $(INT_MAK) $(ECHOGS_XE) $(patread_)
1479	$(SETMOD) $(PSD)patread $(patread_)
1480	$(ADDMOD) $(PSD)patread -oper zpcolor_l2
1481
1482$(PSOBJ)zpcolor.$(OBJ) : $(PSSRC)zpcolor.c $(OP)\
1483 $(gscolor_h) $(gsmatrix_h) $(gsstruct_h) $(gscoord_h)\
1484 $(gxcolor2_h) $(gxcspace_h) $(gxdcolor_h) $(gxdevice_h) $(gxdevmem_h)\
1485 $(gxfixed_h) $(gxpcolor_h) $(gxpath_h)\
1486 $(estack_h)\
1487 $(ialloc_h) $(icremap_h) $(idict_h) $(idparam_h) $(igstate_h)\
1488 $(ipcolor_h) $(istruct_h)\
1489 $(store_h) $(gzstate_h) $(memory__h) $(gdevp14_h)
1490	$(PSCC) $(PSO_)zpcolor.$(OBJ) $(C_) $(PSSRC)zpcolor.c
1491
1492# ---------------- Separation color ---------------- #
1493
1494seprread_=$(PSOBJ)zcssepr.$(OBJ) $(PSOBJ)zfsample.$(OBJ)
1495$(PSD)sepr.dev : $(INT_MAK) $(ECHOGS_XE) $(seprread_)\
1496 $(PSD)func4.dev $(GLD)seprlib.dev
1497	$(SETMOD) $(PSD)sepr $(seprread_)
1498	$(ADDMOD) $(PSD)sepr -oper zcssepr_l2
1499	$(ADDMOD) $(PSD)sepr -oper zfsample
1500	$(ADDMOD) $(PSD)sepr -include $(PSD)func4 $(GLD)seprlib
1501
1502$(PSOBJ)zcssepr.$(OBJ) : $(PSSRC)zcssepr.c $(OP) $(memory__h)\
1503 $(gscolor_h) $(gscsepr_h) $(gsmatrix_h) $(gsstruct_h)\
1504 $(gxcolor2_h) $(gxcspace_h) $(gxfixed_h) $(zht2_h)\
1505 $(estack_h) $(ialloc_h) $(icsmap_h) $(ifunc_h) $(igstate_h) $(iname_h) $(ivmspace_h) $(store_h)
1506	$(PSCC) $(PSO_)zcssepr.$(OBJ) $(C_) $(PSSRC)zcssepr.c
1507
1508$(PSOBJ)zfsample.$(OBJ) : $(PSSRC)zfsample.c $(OP) $(memory__h)\
1509 $(gxcspace_h)\
1510 $(estack_h) $(ialloc_h) $(idict_h) $(idparam_h) $(ifunc_h) $(ostack_h)\
1511 $(store_h) $(gsfunc0_h) $(gscdevn_h) $(zfunc_h) $(zcolor_h)
1512	$(PSCC) $(PSO_)zfsample.$(OBJ) $(C_) $(PSSRC)zfsample.c
1513
1514# ---------------- DCT filters ---------------- #
1515# The definitions for jpeg*.dev are in jpeg.mak.
1516
1517$(PSD)dct.dev : $(INT_MAK) $(ECHOGS_XE) $(PSD)dcte.dev $(PSD)dctd.dev
1518	$(SETMOD) $(PSD)dct -include $(PSD)dcte $(PSD)dctd
1519
1520# Encoding (compression)
1521
1522dcte_=$(PSOBJ)zfdcte.$(OBJ)
1523$(PSD)dcte.dev : $(INT_MAK) $(ECHOGS_XE) $(GLD)sdcte.dev $(GLD)sdeparam.dev $(dcte_)
1524	$(SETMOD) $(PSD)dcte -include $(GLD)sdcte $(GLD)sdeparam
1525	$(ADDMOD) $(PSD)dcte -obj $(dcte_)
1526	$(ADDMOD) $(PSD)dcte -oper zfdcte
1527
1528$(PSOBJ)zfdcte.$(OBJ) : $(PSSRC)zfdcte.c $(OP)\
1529 $(memory__h) $(stdio__h) $(jpeglib__h) $(gsmemory_h)\
1530 $(sdct_h) $(sjpeg_h) $(stream_h) $(strimpl_h)\
1531 $(files_h) $(ialloc_h) $(idict_h) $(idparam_h) $(ifilter_h) $(iparam_h)
1532	$(PSCC) $(PSO_)zfdcte.$(OBJ) $(C_) $(PSSRC)zfdcte.c
1533
1534# Decoding (decompression)
1535
1536dctd_=$(PSOBJ)zfdctd.$(OBJ)
1537$(PSD)dctd.dev : $(INT_MAK) $(ECHOGS_XE) $(GLD)sdctd.dev $(GLD)sddparam.dev $(dctd_)
1538	$(SETMOD) $(PSD)dctd -include $(GLD)sdctd $(GLD)sddparam
1539	$(ADDMOD) $(PSD)dctd -obj $(dctd_)
1540	$(ADDMOD) $(PSD)dctd -oper zfdctd
1541
1542$(PSOBJ)zfdctd.$(OBJ) : $(PSSRC)zfdctd.c $(OP)\
1543 $(memory__h) $(stdio__h) $(jpeglib__h) $(gsmemory_h)\
1544 $(ialloc_h) $(ifilter_h) $(iparam_h) $(sdct_h) $(sjpeg_h) $(strimpl_h)
1545	$(PSCC) $(PSO_)zfdctd.$(OBJ) $(C_) $(PSSRC)zfdctd.c
1546
1547# ================ Display PostScript ================ #
1548
1549dps_=$(PSOBJ)zdps.$(OBJ) $(PSOBJ)zcontext.$(OBJ)
1550$(PSD)dps.dev : $(INT_MAK) $(ECHOGS_XE) $(GLD)dpslib.dev $(PSD)psl2.dev $(dps_)
1551	$(SETMOD) $(PSD)dps -include $(GLD)dpslib $(PSD)psl2
1552	$(ADDMOD) $(PSD)dps -obj $(dps_)
1553	$(ADDMOD) $(PSD)dps -oper zcontext1 zcontext2 zdps
1554	$(ADDMOD) $(PSD)dps -ps gs_dps
1555
1556$(PSOBJ)zdps.$(OBJ) : $(PSSRC)zdps.c $(OP)\
1557 $(gsdps_h) $(gsimage_h) $(gsiparm2_h) $(gsstate_h)\
1558 $(gxalloc_h) $(gxfixed_h) $(gxpath_h)\
1559 $(btoken_h)\
1560 $(idparam_h) $(iddict_h) $(igstate_h) $(iimage2_h) $(iname_h) $(store_h)
1561	$(PSCC) $(PSO_)zdps.$(OBJ) $(C_) $(PSSRC)zdps.c
1562
1563$(PSOBJ)zcontext.$(OBJ) : $(PSSRC)zcontext.c $(OP) $(gp_h) $(memory__h)\
1564 $(gsexit_h) $(gsgc_h) $(gsstruct_h) $(gsutil_h) $(gxalloc_h) $(gxstate_h)\
1565 $(icontext_h) $(idict_h) $(igstate_h) $(interp_h) $(isave_h) $(istruct_h)\
1566 $(dstack_h) $(estack_h) $(files_h) $(ostack_h) $(store_h) $(stream_h)
1567	$(PSCC) $(PSO_)zcontext.$(OBJ) $(C_) $(PSSRC)zcontext.c
1568
1569# ---------------- NeXT Display PostScript ---------------- #
1570
1571dpsnext_=$(PSOBJ)zdpnext.$(OBJ)
1572$(PSD)dpsnext.dev : $(INT_MAK) $(ECHOGS_XE) $(dpsnext_)\
1573 $(PSD)dps.dev $(GLD)dpnxtlib.dev
1574	$(SETMOD) $(PSD)dpsnext -include $(PSD)dps $(GLD)dpnxtlib
1575	$(ADDMOD) $(PSD)dpsnext -obj $(dpsnext_)
1576	$(ADDMOD) $(PSD)dpsnext -oper zdpnext
1577	$(ADDMOD) $(PSD)dpsnext -ps gs_dpnxt
1578
1579$(PSOBJ)zdpnext.$(OBJ) : $(PSSRC)zdpnext.c $(math__h) $(OP)\
1580 $(gscoord_h) $(gscspace_h) $(gsdpnext_h)\
1581 $(gsiparam_h) $(gsiparm2_h) $(gsmatrix_h) $(gspath2_h)\
1582 $(gxcvalue_h) $(gxdevice_h) $(gxsample_h)\
1583 $(ialloc_h) $(igstate_h) $(iimage_h) $(iimage2_h) $(store_h)
1584	$(PSCC) $(PSO_)zdpnext.$(OBJ) $(C_) $(PSSRC)zdpnext.c
1585
1586# ==================== PostScript LanguageLevel 3 ===================== #
1587
1588# ---------------- DevicePixel color space ---------------- #
1589
1590cspixint_=$(PSOBJ)zcspixel.$(OBJ)
1591$(PSD)cspixel.dev : $(INT_MAK) $(ECHOGS_XE) $(cspixint_) $(GLD)cspixlib.dev
1592	$(SETMOD) $(PSD)cspixel $(cspixint_)
1593	$(ADDMOD) $(PSD)cspixel -include $(GLD)cspixlib
1594
1595$(PSOBJ)zcspixel.$(OBJ) : $(PSSRC)zcspixel.c $(OP)\
1596 $(gscolor2_h) $(gscpixel_h) $(gscspace_h) $(gsmatrix_h)\
1597 $(igstate_h)
1598	$(PSCC) $(PSO_)zcspixel.$(OBJ) $(C_) $(PSSRC)zcspixel.c
1599
1600# ---------------- Rest of LanguageLevel 3 ---------------- #
1601
1602$(PSD)psl3.dev : $(INT_MAK) $(ECHOGS_XE)\
1603 $(PSD)psl2.dev $(PSD)cspixel.dev $(PSD)frsd.dev $(PSD)func.dev\
1604 $(GLD)psl3lib.dev $(PSD)psl3read.dev
1605	$(SETMOD) $(PSD)psl3 -include $(PSD)psl2 $(PSD)cspixel $(PSD)frsd $(PSD)func
1606	$(ADDMOD) $(PSD)psl3 -include $(GLD)psl3lib $(PSD)psl3read
1607	$(ADDMOD) $(PSD)psl3 -emulator PostScript PostScriptLevel2 PostScriptLevel3
1608
1609$(PSOBJ)zfunc3.$(OBJ) : $(PSSRC)zfunc3.c $(memory__h) $(OP)\
1610 $(gsfunc3_h) $(gsstruct_h)\
1611 $(files_h) $(ialloc_h) $(idict_h) $(idparam_h) $(ifunc_h)\
1612 $(store_h) $(stream_h)
1613	$(PSCC) $(PSO_)zfunc3.$(OBJ) $(C_) $(PSSRC)zfunc3.c
1614
1615# FunctionType 4 functions are not a PostScript feature, but they
1616# are used in the implementation of Separation and DeviceN color spaces.
1617
1618func4read_=$(PSOBJ)zfunc4.$(OBJ)
1619$(PSD)func4.dev : $(INT_MAK) $(ECHOGS_XE) $(func4read_)\
1620 $(PSD)func.dev $(GLD)func4lib.dev
1621	$(SETMOD) $(PSD)func4 $(func4read_)
1622	$(ADDMOD) $(PSD)func4 -functiontype 4
1623	$(ADDMOD) $(PSD)func4 -include $(PSD)func $(GLD)func4lib
1624
1625# Note: opextern.h is included from oper.h and is a dependency of oper.h
1626$(PSOBJ)zfunc4.$(OBJ) : $(PSSRC)zfunc4.c $(memory__h) $(string__h)\
1627 $(OP) $(opextern_h)\
1628 $(gsfunc_h) $(gsfunc4_h) $(gsutil_h)\
1629 $(idict_h) $(ifunc_h) $(iname_h) $(ialloc_h)\
1630 $(dstack_h) $(gzstate_h) $(gxdevcli_h) $(string__h) $(zfunc_h)\
1631 $(zcolor_h)
1632	$(PSCC) $(PSO_)zfunc4.$(OBJ) $(C_) $(PSSRC)zfunc4.c
1633
1634$(PSOBJ)zimage3.$(OBJ) : $(PSSRC)zimage3.c $(OP) $(memory__h)\
1635 $(gscolor2_h) $(gsiparm3_h) $(gsiparm4_h) $(gscspace_h) $(gxiparam_h)\
1636 $(idparam_h) $(idict_h) $(igstate_h) $(iimage_h) $(iimage2_h)
1637	$(PSCC) $(PSO_)zimage3.$(OBJ) $(C_) $(PSSRC)zimage3.c
1638
1639$(PSOBJ)zmisc3.$(OBJ) : $(PSSRC)zmisc3.c $(GH)\
1640 $(gsclipsr_h) $(gscolor2_h) $(gscspace_h) $(gscssub_h) $(gsmatrix_h)\
1641 $(igstate_h) $(oper_h) $(store_h)
1642	$(PSCC) $(PSO_)zmisc3.$(OBJ) $(C_) $(PSSRC)zmisc3.c
1643
1644$(PSOBJ)zcolor3.$(OBJ) : $(PSSRC)zcolor3.c $(GH)\
1645 $(oper_h) $(igstate_h)
1646	$(PSCC) $(PSO_)zcolor3.$(OBJ) $(C_) $(PSSRC)zcolor3.c
1647
1648$(PSOBJ)zshade.$(OBJ) : $(PSSRC)zshade.c $(memory__h) $(OP)\
1649 $(gscolor2_h) $(gscolor3_h) $(gscspace_h) $(gsfunc3_h)\
1650 $(gsptype2_h) $(gsshade_h) $(gsstruct_h) $(gsuid_h) $(gscie_h)\
1651 $(stream_h)\
1652 $(files_h)\
1653 $(ialloc_h) $(idict_h) $(idparam_h) $(ifunc_h) $(igstate_h) $(ipcolor_h)\
1654 $(store_h)
1655	$(PSCC) $(PSO_)zshade.$(OBJ) $(C_) $(PSSRC)zshade.c
1656
1657psl3read_1=$(PSOBJ)zfunc3.$(OBJ) $(PSOBJ)zfsample.$(OBJ)
1658psl3read_2=$(PSOBJ)zimage3.$(OBJ) $(PSOBJ)zmisc3.$(OBJ) $(PSOBJ)zcolor3.$(OBJ)\
1659 $(PSOBJ)zshade.$(OBJ)
1660psl3read_=$(psl3read_1) $(psl3read_2)
1661
1662# Note: we need the ReusableStreamDecode filter for shadings.
1663$(PSD)psl3read.dev : $(INT_MAK) $(ECHOGS_XE) $(psl3read_)\
1664 $(PSD)frsd.dev $(PSD)fzlib.dev
1665	$(SETMOD) $(PSD)psl3read $(psl3read_1)
1666	$(ADDMOD) $(PSD)psl3read $(psl3read_2)
1667	$(ADDMOD) $(PSD)psl3read -oper zfsample
1668	$(ADDMOD) $(PSD)psl3read -oper zimage3 zmisc3 zcolor3_l3 zshade
1669	$(ADDMOD) $(PSD)psl3read -functiontype 2 3
1670	$(ADDMOD) $(PSD)psl3read -ps gs_ll3
1671	$(ADDMOD) $(PSD)psl3read -include $(PSD)frsd $(PSD)fzlib
1672
1673# ---------------- Trapping ---------------- #
1674
1675trapread_=$(PSOBJ)ztrap.$(OBJ)
1676$(PSD)trapread.dev : $(INT_MAK) $(ECHOGS_XE) $(trapread_)
1677	$(SETMOD) $(PSD)trapread $(trapread_)
1678	$(ADDMOD) $(PSD)trapread -oper ztrap
1679	$(ADDMOD) $(PSD)trapread -ps gs_trap
1680
1681$(PSOBJ)ztrap.$(OBJ) : $(PSSRC)ztrap.c $(OP)\
1682 $(gstrap_h)\
1683 $(ialloc_h) $(iparam_h)
1684	$(PSCC) $(PSO_)ztrap.$(OBJ) $(C_) $(PSSRC)ztrap.c
1685
1686$(PSD)trapping.dev : $(INT_MAK) $(ECHOGS_XE) $(GLD)traplib.dev $(PSD)trapread.dev
1687	$(SETMOD) $(PSD)trapping -include $(GLD)traplib $(PSD)trapread
1688
1689# ---------------- Transparency ---------------- #
1690
1691transread_=$(PSOBJ)ztrans.$(OBJ)
1692$(PSD)transpar.dev : $(INT_MAK) $(ECHOGS_XE)\
1693 $(PSD)psl2read.dev $(GLD)translib.dev $(transread_)
1694	$(SETMOD) $(PSD)transpar $(transread_)
1695	$(ADDMOD) $(PSD)transpar -oper ztrans1 ztrans2
1696	$(ADDMOD) $(PSD)transpar -include $(PSD)psl2read $(GLD)translib
1697
1698$(PSOBJ)ztrans.$(OBJ) : $(PSSRC)ztrans.c $(OP) $(memory__h) $(string__h)\
1699 $(ghost_h) $(oper_h) $(gscspace_h) $(gscolor2_h) $(gsipar3x_h) $(gstrans_h)\
1700 $(gxiparam_h) $(gxcspace_h)\
1701 $(idict_h) $(idparam_h) $(ifunc_h) $(igstate_h) $(iimage_h) $(iname_h)\
1702 $(store_h) $(gsdflt_h)  $(gdevdevn_h)  $(gxblend_h) $(gdevp14_h)
1703	$(PSCC) $(PSO_)ztrans.$(OBJ) $(C_) $(PSSRC)ztrans.c
1704
1705# ---------------- ICCBased color spaces ---------------- #
1706
1707iccread_=$(PSOBJ)zicc.$(OBJ)
1708$(PSD)icc.dev : $(INT_MAK) $(ECHOGS_XE) $(PSD)cie.dev $(iccread_) \
1709                $(GLD)sicclib.dev
1710	$(SETMOD) $(PSD)icc $(iccread_)
1711	$(ADDMOD) $(PSD)icc -oper zicc_ll3
1712	$(ADDMOD) $(PSD)icc -ps gs_icc
1713	$(ADDMOD) $(PSD)icc -include $(GLD)sicclib $(PSD)cie
1714
1715$(PSOBJ)zicc.$(OBJ) : $(PSSRC)zicc.c  $(OP) $(math__h) $(memory__h)\
1716 $(gsstruct_h) $(gxcspace_h) $(stream_h) $(files_h) $(gscolor2_h)\
1717 $(gsicc_h) $(estack_h) $(idict_h) $(idparam_h) $(igstate_h)\
1718 $(icie_h) $(ialloc_h) $(zicc_h) $(gsicc_manage_h) $(GX) $(gxistate_h)\
1719 $(gsicc_create_h) $(gsicc_profilecache_h) $(gxdevice_h) $(gsicc_cache_h)
1720	$(PSCC) $(PSO_)zicc.$(OBJ) $(C_) $(PSSRC)zicc.c
1721
1722# ---------------- Support for %disk IODevices ---------------- #
1723
1724# Note that we go ahead and create 7 %disk devices. The internal
1725# overhead of any unused %disk structures is minimal.
1726# We could have more, but the DynaLab font installer has problems
1727# with more than 7 disk devices.
1728diskn_=$(GLOBJ)gsiodisk.$(OBJ)
1729$(GLD)diskn.dev : $(LIB_MAK) $(ECHOGS_XE) $(diskn_)
1730	$(SETMOD) $(GLD)diskn $(diskn_)
1731	$(ADDMOD) $(GLD)diskn -iodev disk0 disk1 disk2 disk3 disk4 disk5 disk6
1732	$(ADDMOD) $(GLD)diskn -ps gs_diskn
1733
1734# ================================ PDF ================================ #
1735
1736# We need nearly all of the PostScript LanguageLevel 3 interpreter for PDF,
1737# but not all of it: we could do without the arc operators (Level 1),
1738# the Encode filters (Level 2), and some LL3 features (clipsave/cliprestore,
1739# UseCIEColor, IdiomSets).  However, we've decided it isn't worth the
1740# trouble to do the fine-grain factoring to enable this, since code size
1741# is not at a premium for PDF interpreters.
1742
1743# Because of the way the PDF encodings are defined, they must get loaded
1744# before we install the Level 2 resource machinery.
1745# On the other hand, the PDF .ps files must get loaded after
1746# level2dict is defined.
1747$(PSD)pdf.dev : $(INT_MAK) $(ECHOGS_XE)\
1748 $(PSD)psbase.dev $(GLD)dps2lib.dev $(PSD)dps2read.dev\
1749 $(PSD)pdffonts.dev $(PSD)psl3.dev $(PSD)pdfread.dev $(PSD)cff.dev\
1750 $(PSD)fmd5.dev $(PSD)fsha2.dev $(PSD)farc4.dev $(PSD)faes.dev\
1751 $(PSD)ttfont.dev $(PSD)type2.dev $(PSD)icc.dev $(PSD)pdfops.dev
1752	$(SETMOD) $(PSD)pdf -include $(PSD)psbase $(GLD)dps2lib
1753	$(ADDMOD) $(PSD)pdf -include $(PSD)dps2read $(PSD)pdffonts $(PSD)psl3
1754	$(ADDMOD) $(PSD)pdf -include $(GLD)psl2lib $(PSD)pdfread $(PSD)cff
1755	$(ADDMOD) $(PSD)pdf -include $(PSD)fmd5 $(PSD)fsha2
1756	$(ADDMOD) $(PSD)pdf -include $(PSD)farc4 $(PSD)faes.dev
1757	$(ADDMOD) $(PSD)pdf -include $(PSD)ttfont $(PSD)type2
1758	$(ADDMOD) $(PSD)pdf -include $(PSD)icc $(PSD)pdfops
1759	$(ADDMOD) $(PSD)pdf -functiontype 4
1760	$(ADDMOD) $(PSD)pdf -emulator PDF
1761
1762# Reader only
1763
1764$(PSD)pdffonts.dev : $(INT_MAK) $(ECHOGS_XE)
1765	$(SETMOD) $(PSD)pdffonts -ps gs_mex_e gs_mro_e gs_pdf_e gs_wan_e
1766
1767$(PSD)pdfread.dev : $(INT_MAK) $(ECHOGS_XE) \
1768 $(PSD)frsd.dev $(PSD)func4.dev $(PSD)fzlib.dev $(PSD)transpar.dev
1769	$(SETMOD) $(PSD)pdfread -include $(PSD)frsd $(PSD)func4 $(PSD)fzlib
1770	$(ADDMOD) $(PSD)pdfread -include $(PSD)transpar
1771	$(ADDMOD) $(PSD)pdfread -ps pdf_ops gs_l2img
1772	$(ADDMOD) $(PSD)pdfread -ps pdf_rbld
1773	$(ADDMOD) $(PSD)pdfread -ps pdf_base pdf_draw pdf_font pdf_main pdf_sec
1774
1775# Optional Illustrator CS2/CS3 layer info extractor
1776
1777$(PSD)cslayer.dev : $(INT_MAK) $(ECHOGS_XE) $(PSD)pdfread.dev
1778	$(SETMOD) $(PSD)cslayer -ps pdf_cslayer
1779
1780# ---------------- Font API ---------------- #
1781
1782$(PSD)fapi.dev : $(INT_MAK) $(ECHOGS_XE) $(PSOBJ)zfapi.$(OBJ)\
1783 $(PSD)fapiu$(UFST_BRIDGE).dev $(PSD)fapif$(FT_BRIDGE).dev \
1784 $(PSD)fapib$(BITSTREAM_BRIDGE).dev
1785	$(SETMOD) $(PSD)fapi $(PSOBJ)zfapi.$(OBJ)
1786	$(ADDMOD) $(PSD)fapi -oper zfapi
1787	$(ADDMOD) $(PSD)fapi -ps gs_fntem gs_fapi
1788	$(ADDMOD) $(PSD)fapi -include $(PSD)fapiu$(UFST_BRIDGE)
1789	$(ADDMOD) $(PSD)fapi -include $(PSD)fapif$(FT_BRIDGE)
1790	$(ADDMOD) $(PSD)fapi -include $(PSD)fapib$(BITSTREAM_BRIDGE)
1791
1792wrfont_h=$(stdpre_h) $(PSSRC)wrfont.h
1793write_t1_h=$(ifapi_h) $(PSSRC)write_t1.h
1794write_t2_h=$(ifapi_h) $(PSSRC)write_t2.h
1795
1796$(PSOBJ)write_t1.$(OBJ) : $(PSSRC)write_t1.c $(AK)\
1797 $(wrfont_h) $(write_t1_h)
1798	$(PSCC) $(FT_CFLAGS) $(PSO_)write_t1.$(OBJ) $(C_) $(PSSRC)write_t1.c
1799
1800$(PSOBJ)write_t2.$(OBJ) : $(PSSRC)write_t2.c $(AK)\
1801 $(wrfont_h) $(write_t2_h) $(ghost_h) $(gxfont_h) $(gxfont1_h)
1802	$(PSCC) $(FT_CFLAGS) $(PSO_)write_t2.$(OBJ) $(C_) $(PSSRC)write_t2.c
1803
1804$(PSOBJ)wrfont.$(OBJ) : $(PSSRC)wrfont.c $(AK)\
1805 $(wrfont_h) $(stdio__h)
1806	$(PSCC) $(FT_CFLAGS) $(PSO_)wrfont.$(OBJ) $(C_) $(PSSRC)wrfont.c
1807
1808$(PSOBJ)zfapi.$(OBJ) : $(PSSRC)zfapi.c $(OP) $(math__h) $(memory__h) $(string__h)\
1809 $(stat__h)\
1810 $(gp_h) $(gscoord_h) $(gscrypt1_h) $(gsfont_h) $(gspaint_h) $(gspath_h)\
1811 $(gxchar_h) $(gxchrout_h) $(gximask_h) $(gxdevice_h) $(gxfcache_h) $(gxfcid_h)\
1812 $(gxfont_h) $(gxfont1_h) $(gxpath_h) $(gzstate_h) $(gdevpsf_h)\
1813 $(bfont_h) $(dstack_h) $(files_h) \
1814 $(ichar_h) $(idict_h) $(iddict_h) $(idparam_h) $(iname_h) $(ifont_h)\
1815 $(icid_h) $(igstate_h) $(icharout_h) $(ifapi_h) $(iplugin_h) \
1816 $(oper_h) $(store_h) $(stream_h)
1817	$(PSCC) $(PSO_)zfapi.$(OBJ) $(C_) $(PSSRC)zfapi.c
1818
1819# Bitstream bridge :
1820
1821BITSTREAM_LIB=$(BITSTREAM_ROOT)$(D)core$(D)
1822BITSTREAM_INC=$(I_)"$(BITSTREAM_ROOT)$(D)core"
1823
1824$(PSD)fapib1.dev : $(INT_MAK) $(ECHOGS_XE) \
1825 $(PSOBJ)fapibstm.$(OBJ) $(PSOBJ)t2k.$(OBJ) $(PSOBJ)t2kextra.$(OBJ) $(PSOBJ)tsimem.$(OBJ)\
1826   $(PSOBJ)t2ktt.$(OBJ) $(PSOBJ)cstream.$(OBJ) $(PSOBJ)fft1hint.$(OBJ) $(PSOBJ)ghints.$(OBJ)\
1827   $(PSOBJ)glyph.$(OBJ) $(PSOBJ)t1.$(OBJ) $(PSOBJ)t2kstrm.$(OBJ) $(PSOBJ)truetype.$(OBJ)\
1828   $(PSOBJ)util.$(OBJ) $(PSOBJ)fnt.$(OBJ) $(PSOBJ)pclread.$(OBJ) $(PSOBJ)t2ksc.$(OBJ)\
1829   $(PSOBJ)write_t1.$(OBJ) $(PSOBJ)write_t2.$(OBJ) $(PSOBJ)wrfont.$(OBJ)
1830	$(SETMOD) $(PSD)fapib1 $(PSOBJ)fapibstm.$(OBJ)
1831	$(ADDMOD) $(PSD)fapib1 $(PSOBJ)t2k.$(OBJ) $(PSOBJ)t2kextra.$(OBJ) $(PSOBJ)fnt.$(OBJ)
1832	$(ADDMOD) $(PSD)fapib1 $(PSOBJ)tsimem.$(OBJ) $(PSOBJ)t2ktt.$(OBJ) $(PSOBJ)util.$(OBJ)
1833	$(ADDMOD) $(PSD)fapib1 $(PSOBJ)t2kstrm.$(OBJ) $(PSOBJ)truetype.$(OBJ) $(PSOBJ)cstream.$(OBJ)
1834	$(ADDMOD) $(PSD)fapib1 $(PSOBJ)fft1hint.$(OBJ) $(PSOBJ)ghints.$(OBJ) $(PSOBJ)glyph.$(OBJ)
1835	$(ADDMOD) $(PSD)fapib1 $(PSOBJ)t1.$(OBJ) $(PSOBJ)pclread.$(OBJ) $(PSOBJ)t2ksc.$(OBJ)
1836	$(ADDMOD) $(PSD)fapib1 $(PSOBJ)write_t1.$(OBJ) $(PSOBJ)write_t2.$(OBJ) $(PSOBJ)wrfont.$(OBJ)
1837	$(ADDMOD) $(PSD)fapib1 -plugin fapibstm
1838
1839$(PSOBJ)fapibstm.$(OBJ) : $(PSSRC)fapibstm.c $(AK)\
1840 $(memory__h) $(stdio__h) $(math__h) $(strmio_h)\
1841 $(ierrors_h) $(iplugin_h) $(ifapi_h) $(gxfapi_h) $(gp_h)
1842	$(PSCC) $(BITSTREAM_CFLAGS) $(BITSTREAM_INC) $(PSO_)fapibstm.$(OBJ) $(C_) $(PSSRC)fapibstm.c
1843
1844$(PSOBJ)t2k.$(OBJ) : "$(BITSTREAM_LIB)t2k.c" $(AK)
1845	$(PSCC) $(BITSTREAM_CFLAGS) $(BITSTREAM_INC) $(PSO_)t2k.$(OBJ) $(C_) "$(BITSTREAM_LIB)t2k.c"
1846
1847$(PSOBJ)t2kextra.$(OBJ) : "$(BITSTREAM_LIB)t2kextra.c" $(AK)
1848	$(PSCC) $(BITSTREAM_CFLAGS) $(BITSTREAM_INC) $(PSO_)t2kextra.$(OBJ) $(C_) "$(BITSTREAM_LIB)t2kextra.c"
1849
1850$(PSOBJ)tsimem.$(OBJ) : "$(BITSTREAM_LIB)tsimem.c" $(AK)
1851	$(PSCC) $(BITSTREAM_CFLAGS) $(BITSTREAM_INC) $(PSO_)tsimem.$(OBJ) $(C_) "$(BITSTREAM_LIB)tsimem.c"
1852
1853$(PSOBJ)t2ktt.$(OBJ) : "$(BITSTREAM_LIB)t2ktt.c" $(AK)
1854	$(PSCC) $(BITSTREAM_CFLAGS) $(BITSTREAM_INC) $(PSO_)t2ktt.$(OBJ) $(C_) "$(BITSTREAM_LIB)t2ktt.c"
1855
1856$(PSOBJ)cstream.$(OBJ) : "$(BITSTREAM_LIB)cstream.c" $(AK)
1857	$(PSCC) $(BITSTREAM_CFLAGS) $(BITSTREAM_INC) $(PSO_)cstream.$(OBJ) $(C_) "$(BITSTREAM_LIB)cstream.c"
1858
1859$(PSOBJ)fft1hint.$(OBJ) : "$(BITSTREAM_LIB)fft1hint.c" $(AK)
1860	$(PSCC) $(BITSTREAM_CFLAGS) $(BITSTREAM_INC) $(PSO_)fft1hint.$(OBJ) $(C_) "$(BITSTREAM_LIB)fft1hint.c"
1861
1862$(PSOBJ)ghints.$(OBJ) : "$(BITSTREAM_LIB)ghints.c" $(AK)
1863	$(PSCC) $(BITSTREAM_CFLAGS) $(BITSTREAM_INC) $(PSO_)ghints.$(OBJ) $(C_) "$(BITSTREAM_LIB)ghints.c"
1864
1865$(PSOBJ)glyph.$(OBJ) : "$(BITSTREAM_LIB)glyph.c" $(AK)
1866	$(PSCC) $(BITSTREAM_CFLAGS) $(BITSTREAM_INC) $(PSO_)glyph.$(OBJ) $(C_) "$(BITSTREAM_LIB)glyph.c"
1867
1868$(PSOBJ)t1.$(OBJ) : "$(BITSTREAM_LIB)t1.c" $(AK)
1869	$(PSCC) $(BITSTREAM_CFLAGS) $(BITSTREAM_INC) $(PSO_)t1.$(OBJ) $(C_) "$(BITSTREAM_LIB)t1.c"
1870
1871$(PSOBJ)t2kstrm.$(OBJ) : "$(BITSTREAM_LIB)t2kstrm.c" $(AK)
1872	$(PSCC) $(BITSTREAM_CFLAGS) $(BITSTREAM_INC) $(PSO_)t2kstrm.$(OBJ) $(C_) "$(BITSTREAM_LIB)t2kstrm.c"
1873
1874$(PSOBJ)truetype.$(OBJ) : "$(BITSTREAM_LIB)truetype.c" $(AK)
1875	$(PSCC) $(BITSTREAM_CFLAGS) $(BITSTREAM_INC) $(PSO_)truetype.$(OBJ) $(C_) "$(BITSTREAM_LIB)truetype.c"
1876
1877$(PSOBJ)util.$(OBJ) : "$(BITSTREAM_LIB)util.c" $(AK)
1878	$(PSCC) $(BITSTREAM_CFLAGS) $(BITSTREAM_INC) $(PSO_)util.$(OBJ) $(C_) "$(BITSTREAM_LIB)util.c"
1879
1880$(PSOBJ)fnt.$(OBJ) : "$(BITSTREAM_LIB)fnt.c" $(AK)
1881	$(PSCC) $(BITSTREAM_CFLAGS) $(BITSTREAM_INC) $(PSO_)fnt.$(OBJ) $(C_) "$(BITSTREAM_LIB)fnt.c"
1882
1883$(PSOBJ)pclread.$(OBJ) : "$(BITSTREAM_LIB)pclread.c" $(AK)
1884	$(PSCC) $(BITSTREAM_CFLAGS) $(BITSTREAM_INC) $(PSO_)pclread.$(OBJ) $(C_) "$(BITSTREAM_LIB)pclread.c"
1885
1886$(PSOBJ)t2ksc.$(OBJ) : "$(BITSTREAM_LIB)t2ksc.c" $(AK)
1887	$(PSCC) $(BITSTREAM_CFLAGS) $(BITSTREAM_INC) $(PSO_)t2ksc.$(OBJ) $(C_) "$(BITSTREAM_LIB)t2ksc.c"
1888
1889# stub for Bitstream bridge :
1890
1891$(PSD)fapib.dev : $(INT_MAK) $(ECHOGS_XE)
1892	$(SETMOD) $(PSD)fapib
1893
1894
1895# UFST bridge :
1896
1897UFST_LIB=$(UFST_ROOT)$(D)rts$(D)lib$(D)
1898UFST_INC0=$(I_)$(UFST_ROOT)$(D)sys$(D)inc$(_I) $(I_)$(UFST_ROOT)$(D)rts$(D)inc$(_I)
1899UFST_INC1=$(UFST_INC0) $(I_)$(UFST_ROOT)$(D)rts$(D)psi$(_I)
1900UFST_INC2=$(UFST_INC1) $(I_)$(UFST_ROOT)$(D)rts$(D)fco$(_I)
1901UFST_INC3=$(UFST_INC2) $(I_)$(UFST_ROOT)$(D)rts$(D)gray$(_I)
1902UFST_INC=$(UFST_INC3) $(I_)$(UFST_ROOT)$(D)rts$(D)tt$(_I)
1903
1904$(PSD)fapiu1.dev : $(INT_MAK) $(ECHOGS_XE) \
1905 $(UFST_LIB)fco_lib$(UFST_LIB_EXT) $(UFST_LIB)if_lib$(UFST_LIB_EXT) \
1906 $(UFST_LIB)psi_lib$(UFST_LIB_EXT) $(UFST_LIB)tt_lib$(UFST_LIB_EXT) \
1907 $(PSOBJ)fapiufst.$(OBJ)
1908	$(SETMOD) $(PSD)fapiu1 $(PSOBJ)fapiufst.$(OBJ)
1909	$(ADDMOD) $(PSD)fapiu1 -plugin fapiufst
1910	$(ADDMOD) $(PSD)fapiu1 -link $(UFST_LIB)if_lib$(UFST_LIB_EXT) $(UFST_LIB)fco_lib$(UFST_LIB_EXT)
1911	$(ADDMOD) $(PSD)fapiu1 -link $(UFST_LIB)tt_lib$(UFST_LIB_EXT) $(UFST_LIB)psi_lib$(UFST_LIB_EXT)
1912
1913fapiufst_1 : $(PSSRC)fapiufst.c $(AK)\
1914 $(memory__h) $(stdio__h) $(math__h) $(strmio_h)\
1915 $(ierrors_h) $(iplugin_h) $(ifapi_h) $(gxfapi_h) $(gp_h) $(gxfapiu_h) \
1916 $(UFST_ROOT)$(D)rts$(D)inc$(D)cgconfig.h\
1917 $(UFST_ROOT)$(D)rts$(D)inc$(D)shareinc.h\
1918 $(UFST_ROOT)$(D)sys$(D)inc$(D)ufstport.h\
1919 $(UFST_ROOT)$(D)sys$(D)inc$(D)cgmacros.h\
1920 $(UFST_ROOT)$(D)rts$(D)psi$(D)t1isfnt.h\
1921 $(UFST_ROOT)$(D)rts$(D)tt$(D)sfntenum.h\
1922 $(UFST_ROOT)$(D)rts$(D)tt$(D)ttpcleo.h
1923	$(PSCC) $(UFST_CFLAGS) -DUFSTFONTDIR=$(UFSTROMFONTDIR) $(UFST_INC) $(PSO_)fapiufst.$(OBJ) $(C_) $(PSSRC)fapiufst.c
1924
1925fapiufst_0 : $(PSSRC)fapiufst.c $(AK)\
1926 $(memory__h) $(stdio__h) $(math__h) $(strmio_h)\
1927 $(ierrors_h) $(iplugin_h) $(ifapi_h) $(gxfapi_h) $(gp_h) $(gxfapiu_h) \
1928 $(UFST_ROOT)$(D)rts$(D)inc$(D)cgconfig.h\
1929 $(UFST_ROOT)$(D)rts$(D)inc$(D)shareinc.h\
1930 $(UFST_ROOT)$(D)sys$(D)inc$(D)ufstport.h\
1931 $(UFST_ROOT)$(D)sys$(D)inc$(D)cgmacros.h\
1932 $(UFST_ROOT)$(D)rts$(D)psi$(D)t1isfnt.h\
1933 $(UFST_ROOT)$(D)rts$(D)tt$(D)sfntenum.h\
1934 $(UFST_ROOT)$(D)rts$(D)tt$(D)ttpcleo.h
1935	$(PSCC) $(UFST_CFLAGS) -DUFSTFONTDIR=$(UFSTDISCFONTDIR) $(UFST_INC) $(PSO_)fapiufst.$(OBJ) $(C_) $(PSSRC)fapiufst.c
1936
1937
1938$(PSOBJ)fapiufst.$(OBJ) : fapiufst_$(COMPILE_INITS)
1939
1940# stub for UFST bridge :
1941
1942$(PSD)fapiu.dev : $(INT_MAK) $(ECHOGS_XE)
1943	$(SETMOD) $(PSD)fapiu
1944
1945# FreeType bridge :
1946
1947# the top-level makefile should define
1948# FT_CFLAGS for the include directive and other switches
1949
1950$(PSD)fapif1.dev : $(INT_MAK) $(ECHOGS_XE) $(PSOBJ)fapi_ft.$(OBJ) \
1951 $(PSOBJ)write_t1.$(OBJ) $(PSOBJ)write_t2.$(OBJ) $(PSOBJ)wrfont.$(OBJ) \
1952 $(GLD)freetype.dev
1953	$(SETMOD) $(PSD)fapif1 $(PSOBJ)fapi_ft.$(OBJ) $(PSOBJ)write_t1.$(OBJ)
1954	$(ADDMOD) $(PSD)fapif1 $(PSOBJ)write_t2.$(OBJ) $(PSOBJ)wrfont.$(OBJ)
1955	$(ADDMOD) $(PSD)fapif1 -plugin fapi_ft
1956	$(ADDMOD) $(PSD)fapif1 -include $(GLD)freetype
1957
1958$(PSOBJ)fapi_ft.$(OBJ) : $(PSSRC)fapi_ft.c $(AK)\
1959 $(stdio__h) $(math__h) $(ifapi_h) $(gserrors_h)\
1960 $(write_t1_h) $(write_t2_h)
1961	$(PSCC) $(FT_CFLAGS) $(PSO_)fapi_ft.$(OBJ) $(C_) $(PSSRC)fapi_ft.c
1962
1963# stub for FreeType bridge :
1964
1965$(PSD)fapif0.dev : $(INT_MAK) $(ECHOGS_XE)
1966	$(SETMOD) $(PSD)fapif0
1967
1968
1969# ---------------- Custom color dummy callback ---------------- #
1970
1971$(PSOBJ)zncdummy.$(OBJ) : $(PSSRC)zncdummy.c $(OP) $(GX) $(math_h)\
1972  $(memory__h) $(gscdefs_h) $(gsnamecl_h) $(malloc__h) $(gsncdummy_h)
1973	$(PSCC) $(PSO_)zncdummy.$(OBJ) $(C_) $(PSSRC)zncdummy.c
1974
1975# ---------------- Custom operators for PDF interpreter ---------------- #
1976
1977zpdfops_=$(PSOBJ)zpdfops.$(OBJ)
1978$(PSD)pdfops.dev : $(INT_MAK) $(ECHOGS_XE) $(zpdfops_)
1979	$(SETMOD) $(PSD)pdfops $(zpdfops_)
1980	$(ADDMOD) $(PSD)pdfops -oper zpdfops
1981
1982$(PSOBJ)zpdfops.$(OBJ) : $(PSSRC)zpdfops.c $(OP) $(MAKEFILE)\
1983 $(igstate_h) $(istack_h) $(iutil_h) $(gspath_h) $(math__h) $(ialloc_h)\
1984 $(string__h) $(store_h)
1985	$(PSCC) $(PSO_)zpdfops.$(OBJ) $(C_) $(PSSRC)zpdfops.c
1986
1987zutf8_=$(PSOBJ)zutf8.$(OBJ)
1988$(PSD)utf8.dev : $(INT_MAK) $(ECHOGS_XE) $(zutf8_)
1989	$(SETMOD) $(PSD)utf8 $(zutf8_)
1990	$(ADDMOD) $(PSD)utf8 -oper zutf8
1991
1992$(PSOBJ)zutf8.$(OBJ) : $(PSSRC)zutf8.c $(OP)\
1993 $(ghost_h) $(oper_h) $(iutil_h) $(ialloc_h) $(malloc__h) $(string__h)\
1994 $(store_h)
1995	$(PSCC) $(PSO_)zutf8.$(OBJ) $(C_) $(PSSRC)zutf8.c
1996
1997# ================ Dependencies for auxiliary programs ================ #
1998
1999# ============================= Main program ============================== #
2000
2001$(PSOBJ)gs.$(OBJ) : $(PSSRC)gs.c $(GH)\
2002 $(ierrors_h) $(iapi_h) $(imain_h) $(imainarg_h) $(iminst_h) $(gsmalloc_h)\
2003 $(locale__h)
2004	$(PSCC) $(PSO_)gs.$(OBJ) $(C_) $(PSSRC)gs.c
2005
2006$(PSOBJ)iapi.$(OBJ) : $(PSSRC)iapi.c $(AK)\
2007 $(string__h) $(ierrors_h) $(gscdefs_h) $(gstypes_h) $(iapi_h)\
2008 $(iref_h) $(imain_h) $(imainarg_h) $(iminst_h) $(gslibctx_h)
2009	$(PSCC) $(PSO_)iapi.$(OBJ) $(C_) $(PSSRC)iapi.c
2010
2011$(PSOBJ)icontext.$(OBJ) : $(PSSRC)icontext.c $(GH)\
2012 $(gsstruct_h) $(gxalloc_h)\
2013 $(dstack_h) $(ierrors_h) $(estack_h) $(files_h)\
2014 $(icontext_h) $(idict_h) $(igstate_h) $(interp_h) $(isave_h) $(store_h)\
2015 $(stream_h)
2016	$(PSCC) $(PSO_)icontext.$(OBJ) $(C_) $(PSSRC)icontext.c
2017
2018gdevdsp_h=$(GLSRC)gdevdsp.h
2019gdevdsp2_h=$(GLSRC)gdevdsp2.h
2020
2021$(PSOBJ)idisp.$(OBJ) : $(PSSRC)idisp.c $(OP) $(stdio__h) $(gp_h)\
2022 $(stdpre_h) $(gscdefs_h) $(gsdevice_h) $(gsmemory_h) $(gstypes_h)\
2023 $(iapi_h) $(iref_h)\
2024 $(imain_h) $(iminst_h) $(idisp_h) $(ostack_h)\
2025 $(gx_h) $(gxdevice_h) $(gxdevmem_h) $(gdevdsp_h) $(gdevdsp2_h)
2026	$(PSCC) $(PSO_)idisp.$(OBJ) $(C_) $(PSSRC)idisp.c
2027
2028$(PSOBJ)imainarg.$(OBJ) : $(PSSRC)imainarg.c $(GH)\
2029 $(ctype__h) $(memory__h) $(string__h)\
2030 $(gp_h)\
2031 $(gsargs_h) $(gscdefs_h) $(gsdevice_h) $(gsmalloc_h) $(gsmdebug_h)\
2032 $(gxdevice_h) $(gxdevmem_h)\
2033 $(ierrors_h) $(estack_h) $(files_h)\
2034 $(iapi_h) $(ialloc_h) $(iconf_h) $(imain_h) $(imainarg_h) $(iminst_h)\
2035 $(iname_h) $(interp_h) $(iscan_h) $(iutil_h) $(ivmspace_h)\
2036 $(ostack_h) $(sfilter_h) $(store_h) $(stream_h) $(strimpl_h) \
2037 $(vdtrace_h)
2038	$(PSCC) $(PSO_)imainarg.$(OBJ) $(C_) $(PSSRC)imainarg.c
2039
2040$(PSOBJ)imain.$(OBJ) : $(PSSRC)imain.c $(GH) $(memory__h) $(string__h)\
2041 $(gp_h) $(gscdefs_h) $(gslib_h) $(gsmatrix_h) $(gsutil_h)\
2042 $(gxalloc_h) $(gxdevice_h) $(gzstate_h)\
2043 $(dstack_h) $(ierrors_h) $(estack_h) $(files_h)\
2044 $(ialloc_h) $(iconf_h) $(idebug_h) $(idict_h) $(idisp_h) $(iinit_h)\
2045 $(iname_h) $(interp_h) $(iplugin_h) $(isave_h) $(iscan_h) $(ivmspace_h)\
2046 $(iinit_h) $(main_h) $(oper_h) $(ostack_h)\
2047 $(sfilter_h) $(store_h) $(stream_h) $(strimpl_h)
2048	$(PSCC) $(PSO_)imain.$(OBJ) $(C_) $(PSSRC)imain.c
2049
2050#****** $(CCINT) interp.c
2051$(PSOBJ)interp.$(OBJ) : $(PSSRC)interp.c $(GH) $(memory__h) $(string__h)\
2052 $(gsstruct_h) $(idebug_h)\
2053 $(dstack_h) $(ierrors_h) $(estack_h) $(files_h)\
2054 $(ialloc_h) $(iastruct_h) $(icontext_h) $(icremap_h) $(iddict_h) $(igstate_h)\
2055 $(iname_h) $(inamedef_h) $(interp_h) $(ipacked_h)\
2056 $(isave_h) $(iscan_h) $(istack_h) $(itoken_h) $(iutil_h) $(ivmspace_h)\
2057 $(oper_h) $(ostack_h) $(sfilter_h) $(store_h) $(stream_h) $(strimpl_h)\
2058 $(gpcheck_h)
2059	$(PSCC) $(PSO_)interp.$(OBJ) $(C_) $(PSSRC)interp.c
2060
2061$(PSOBJ)ireclaim.$(OBJ) : $(PSSRC)ireclaim.c $(GH)\
2062 $(gsstruct_h)\
2063 $(iastate_h) $(icontext_h) $(interp_h) $(isave_h) $(isstate_h)\
2064 $(dstack_h) $(ierrors_h) $(estack_h) $(opdef_h) $(ostack_h) $(store_h)
2065	$(PSCC) $(PSO_)ireclaim.$(OBJ) $(C_) $(PSSRC)ireclaim.c
2066