386BSD 0.1 development
[unix-history] / usr / othersrc / public / ghostscript-2.4.1 / gs.mak
CommitLineData
9909e96f
WJ
1# Copyright (C) 1989, 1992 Aladdin Enterprises. All rights reserved.
2# Distributed by Free Software Foundation, Inc.
3#
4# This file is part of Ghostscript.
5#
6# Ghostscript is distributed in the hope that it will be useful, but
7# WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
8# to anyone for the consequences of using it or for whether it serves any
9# particular purpose or works at all, unless he says so in writing. Refer
10# to the Ghostscript General Public License for full details.
11#
12# Everyone is granted permission to copy, modify and redistribute
13# Ghostscript, but only under the conditions described in the Ghostscript
14# General Public License. A copy of this license is supposed to have been
15# given to you along with Ghostscript so you can know your rights and
16# responsibilities. It should be in a file named COPYING. Among other
17# things, the copyright notice and this notice must be preserved on all
18# copies.
19
20# Generic makefile for Ghostscript.
21# The platform-specific makefiles `include' this file.
22# They define the following symbols:
23# GS_INIT - the name of the initialization file for Ghostscript,
24# normally gs_init.ps.
25# GS_LIB_DEFAULT - the default directory/ies for searching for the
26# initialization and font files at run time.
27# DEVICE_DEVS - the devices to include in the executable.
28# See devs.mak for details.
29# DEVICE_DEVS2...DEVICE_DEVS5 - additional devices, if the definition of
30# DEVICE_DEVS doesn't fit on one line.
31# See devs.mak for details.
32# FEATURE_DEVS - the optional features to include in the
33# executable. Current features are:
34# dps - support for Display PostScript extensions.
35# *** PARTIALLY IMPLEMENTED, SEE language.doc. ***
36# level2 - support for PostScript Level 2 extensions.
37# *** PARTIALLY IMPLEMENTED, SEE language.doc. ***
38# compfont - support for composite (type 0) fonts.
39# *** NOT IMPLEMENTED YET. ***
40# filter - support for Level 2 filters (other than eexec,
41# ASCIIHexEncode/Decode, and PFBDecode, which are
42# always included).
43# ccfonts - precompile fonts into C, and link them
44# with the executable. In the standard makefiles,
45# this is only implemented for a very few fonts:
46# see fonts.doc for details.
47# It is very unlikely that anyone would want to edit the remaining
48# symbols, but we describe them here for completeness:
49# PLATFORM - a "device" name for the platform, so that platforms can
50# add various kinds of resources like devices and features.
51# QQ - a " preceded by whatever escape characters are needed to
52# persuade the shell to pass a " to a program (" on MS-DOS,
53# \" on Unix).
54# XE - the extension for executable files (e.g., null or .exe).
55# OBJ - the extension for relocatable object files (e.g., o or obj).
56# CCC - the C invocation for normal compilation.
57# CC0 - a C invocation with the fewest possible flags. Needed because
58# MS-DOS limits the length of command lines to 128 characters.
59# CCINT - the C invocation for compiling the main interpreter module,
60# normally the same as CCC: this is needed because the
61# Borland compiler generates *worse* code for this module
62# (but only this module) when optimization (-O) is turned on.
63# AK - if source files must be converted from ANSI to K&R syntax,
64# this is ansi2knr$(XE); if not, it is null.
65# If a particular platform requires other utility programs
66# to be built, AK must include them too.
67# UNIQ - null on systems that provide the uniq utility,
68# uniq$(XE) on systems where we have to provide our own.
69# SHP - the prefix for invoking a shell script in the current directory
70# (null for MS-DOS, $(SH) ./ for Unix).
71# EXPP, EXP - the prefix for invoking an executable program in the
72# current directory (null for MS-DOS, ./ for Unix).
73# SH - the shell for scripts (null on MS-DOS, sh on Unix).
74# The platform-specific makefiles must also include rules for creating
75# ansi2knr$(XE) and genarch$(XE) from the corresponding .c files,
76# and for making arch.h by executing genarch$(XE). (This
77# shouldn't really be necessary, but Turbo C and Unix C treat the -o
78# switch slightly differently (Turbo C requires no following space,
79# Unix C requires a following space), and I haven't found a way to capture
80# the difference in a macro; also, Unix requires ./ because . may not be
81# in the search path, whereas MS-DOS always looks in the current
82# directory first.)
83
84all default: gs$(XE)
85
86test: gt$(XE)
87
88mostlyclean realclean distclean clean:
89 rm -f *.$(OBJ) *.a core gmon.out
90 rm -f *.dev gconfig.h obj*.tr lib*.tr
91 rm -f t _temp_* _temp_*.* *.map *.sym
92 rm -f ansi2knr$(XE) genarch$(XE) uniq$(XE) arch.h gs$(XE)
93
94# Auxiliary programs
95
96# genarch may cause a (deliberate) addressing fault,
97# so we invoke it with a preceding -.
98
99arch.h: genarch$(XE)
100 - $(EXPP) $(EXP)genarch arch.h
101
102# -------------------------------- Library -------------------------------- #
103
104# Define the inter-dependencies of the .h files.
105# Since not all versions of `make' defer expansion of macros,
106# we must list these in bottom-to-top order.
107
108# Generic files
109
110arch_h=arch.h
111std_h=std.h $(arch_h)
112gs_h=gs.h $(std_h)
113gx_h=gx.h $(gs_h)
114
115# C library interfaces
116
117# Because of variations in the "standard" header files between systems,
118# we define local include files named *_.h to substitute for <*.h>.
119
120vmsmath_h=vmsmath.h
121
122dos__h=dos_.h
123malloc__h=malloc_.h
124math__h=math_.h $(vmsmath_h)
125memory__h=memory_.h
126stat__h=stat_.h
127string__h=string_.h
128time__h=time_.h
129
130# Miscellaneous
131
132gserrors_h=gserrors.h
133
134GX=$(AK) $(gx_h)
135GXERR=$(GX) $(gserrors_h)
136
137###### Low-level facilities and utilities
138
139### Include files
140
141gschar_h=gschar.h
142gscolor_h=gscolor.h
143gscoord_h=gscoord.h
144gsfont_h=gsfont.h
145gsmatrix_h=gsmatrix.h
146gspaint_h=gspaint.h
147gspath_h=gspath.h
148gsprops_h=gsprops.h
149gsstate_h=gsstate.h $(gscolor_h)
150gstype1_h=gstype1.h
151gsutil_h=gsutil.h
152
153gxarith_h=gxarith.h
154gxbitmap_h=gxbitmap.h
155gxcache_h=gxcache.h
156gxchar_h=gxchar.h $(gschar_h)
157gxclist_h=gxclist.h
158gxcpath_h=gxcpath.h
159gxdevice_h=gxdevice.h $(gsmatrix_h) $(gxbitmap_h)
160gxdevmem_h=gxdevmem.h
161gxfdir_h=gxfdir.h
162gxfixed_h=gxfixed.h
163gxfont_h=gxfont.h $(gsfont_h)
164gximage_h=gximage.h
165gxlum_h=gxlum.h
166gxmatrix_h=gxmatrix.h $(gsmatrix_h)
167gxop1_h=gxop1.h
168gxpath_h=gxpath.h
169gxtype1_h=gxtype1.h $(gstype1_h)
170
171gzcolor_h=gzcolor.h $(gscolor_h)
172gzdevice_h=gzdevice.h $(gxdevice_h)
173gzht_h=gzht.h
174gzline_h=gzline.h
175gzpath_h=gzpath.h $(gxpath_h)
176gzstate_h=gzstate.h $(gsstate_h)
177
178### Executable code
179
180gsutil.$(OBJ): gsutil.c \
181 $(std_h) $(gsprops_h) $(gsutil_h)
182
183gxcache.$(OBJ): gxcache.c $(GXERR) \
184 $(gxfixed_h) $(gxmatrix_h) $(gspaint_h) $(gzdevice_h) $(gzcolor_h) \
185 $(gxcpath_h) $(gxdevmem_h) $(gxfont_h) $(gxfdir_h) $(gxchar_h) \
186 $(gxcache_h) $(gzstate_h) $(gzpath_h)
187
188gxclist.$(OBJ): gxclist.c $(GXERR) \
189 $(gsmatrix_h) $(gxbitmap_h) $(gxclist_h) $(gxdevice_h) $(gxdevmem_h)
190
191gxcolor.$(OBJ): gxcolor.c $(GXERR) \
192 $(gxfixed_h) $(gxmatrix_h) $(gxdevice_h) $(gxlum_h) $(gzcolor_h) $(gzht_h) $(gzstate_h)
193
194gxcpath.$(OBJ): gxcpath.c $(GXERR) \
195 $(gxdevice_h) $(gxfixed_h) $(gzcolor_h) $(gzpath_h) $(gxcpath_h)
196
197gxdither.$(OBJ): gxdither.c $(GX) \
198 $(gxfixed_h) $(gxlum_h) $(gxmatrix_h) $(gzstate_h) $(gzdevice_h) $(gzcolor_h) $(gzht_h)
199
200gxdraw.$(OBJ): gxdraw.c $(GX) \
201 $(gxfixed_h) $(gxmatrix_h) $(gxbitmap_h) $(gzcolor_h) $(gzdevice_h) $(gzstate_h)
202
203gxfill.$(OBJ): gxfill.c $(GXERR) \
204 $(gxfixed_h) $(gxmatrix_h) $(gxdevice_h) $(gzcolor_h) $(gzpath_h) $(gzstate_h) $(gxcpath_h)
205
206gxht.$(OBJ): gxht.c $(GXERR) \
207 $(gxfixed_h) $(gxmatrix_h) $(gxbitmap_h) $(gzstate_h) $(gzcolor_h) $(gzdevice_h) $(gzht_h)
208
209gxpath.$(OBJ): gxpath.c $(GXERR) \
210 $(gxfixed_h) $(gzpath_h)
211
212gxpath2.$(OBJ): gxpath2.c $(GXERR) \
213 $(gxfixed_h) $(gxarith_h) $(gzpath_h)
214
215gxstroke.$(OBJ): gxstroke.c $(GXERR) \
216 $(gxfixed_h) $(gxarith_h) $(gxmatrix_h) $(gzstate_h) $(gzcolor_h) $(gzdevice_h) $(gzline_h) $(gzpath_h)
217
218###### High-level facilities
219
220gschar.$(OBJ): gschar.c $(GXERR) \
221 $(gxfixed_h) $(gxarith_h) $(gxmatrix_h) $(gzdevice_h) $(gxdevmem_h) $(gxfont_h) $(gxchar_h) $(gxcache_h) $(gstype1_h) $(gspath_h) $(gzpath_h) $(gzcolor_h) $(gzstate_h)
222
223gscolor.$(OBJ): gscolor.c $(GXERR) \
224 $(gxfixed_h) $(gxmatrix_h) $(gxdevice_h) $(gzstate_h) $(gzcolor_h) $(gzht_h)
225
226gscoord.$(OBJ): gscoord.c $(GXERR) \
227 $(gxarith_h) $(gxfixed_h) $(gxmatrix_h) $(gzdevice_h) $(gzstate_h) $(gscoord_h)
228
229gsdevice.$(OBJ): gsdevice.c $(GXERR) \
230 $(gsarith_h) $(gsprops_h) $(gsutil_h) $(gxfixed_h) $(gxmatrix_h) $(gxbitmap_h) $(gxdevmem_h) $(gzstate_h) $(gzdevice_h)
231
232gsfile.$(OBJ): gsfile.c $(GXERR) \
233 $(gsmatrix_h) $(gxdevice_h) $(gxdevmem_h)
234
235gsfont.$(OBJ): gsfont.c $(GXERR) \
236 $(gxdevice_h) $(gxfixed_h) $(gxmatrix_h) $(gxfont_h) $(gxfdir_h) $(gzstate_h)
237
238gsimage.$(OBJ): gsimage.c $(GXERR) \
239 $(gxfixed_h) $(gxarith_h) $(gxmatrix_h) $(gspaint_h) $(gzcolor_h) $(gzdevice_h) $(gzpath_h) $(gzstate_h) $(gxcpath_h) $(gxdevmem_h) $(gximage_h)
240
241gsim2out.$(OBJ): gsim2out.c $(GXERR) \
242 $(gsstate_h) $(gsmatrix_h) $(gscoord_h) $(gxfixed_h) $(gxtype1_h)
243
244gsline.$(OBJ): gsline.c $(GXERR) \
245 $(gxfixed_h) $(gxmatrix_h) $(gzstate_h) $(gzline_h)
246
247gsmatrix.$(OBJ): gsmatrix.c $(GXERR) \
248 $(gxfixed_h) $(gxarith_h) $(gxmatrix_h)
249
250gsmisc.$(OBJ): gsmisc.c $(GX) $(MAKEFILE)
251 $(CCC) -DUSE_ASM=0$(USE_ASM) gsmisc.c
252
253gspaint.$(OBJ): gspaint.c $(GXERR) \
254 $(gxfixed_h) $(gxmatrix_h) $(gspaint_h) $(gzpath_h) $(gzstate_h) $(gzdevice_h) $(gxcpath_h) $(gxdevmem_h) $(gximage_h)
255
256gspath.$(OBJ): gspath.c $(GXERR) \
257 $(gxfixed_h) $(gxmatrix_h) $(gxpath_h) $(gzstate_h)
258
259gspath2.$(OBJ): gspath2.c $(GXERR) \
260 $(gspath_h) $(gxfixed_h) $(gxmatrix_h) $(gzstate_h) $(gzpath_h) $(gzdevice_h)
261
262gsstate.$(OBJ): gsstate.c $(GXERR) \
263 $(gxfixed_h) $(gxmatrix_h) $(gzstate_h) $(gzcolor_h) $(gzdevice_h) $(gzht_h) $(gzline_h) $(gzpath_h)
264
265gstdev.$(OBJ): gstdev.c $(GX) \
266 $(gxbitmap_h) $(gxdevice_h) $(gxfixed_h) $(gxmatrix_h)
267
268gstype1.$(OBJ): gstype1.c $(GXERR) \
269 $(gxarith_h) $(gxfixed_h) $(gxmatrix_h) $(gxchar_h) $(gxdevmem_h) $(gxop1_h) $(gxtype1_h) \
270 $(gzstate_h) $(gzdevice_h) $(gzpath_h)
271
272###### The internal devices
273
274gdevmem_h=gdevmem.h
275
276gdevmem1.$(OBJ): gdevmem1.c $(AK) \
277 $(gs_h) $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h)
278
279gdevmem2.$(OBJ): gdevmem2.c $(AK) \
280 $(gs_h) $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h)
281
282gdevmem3.$(OBJ): gdevmem3.c $(AK) \
283 $(gs_h) $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h)
284
285###### Files dependent on the installed devices, features, and platform.
286###### Generating gconfig.h also generates obj*.tr and lib.tr.
287
288gconfig.h obj.tr objw.tr lib.tr: devs.mak $(MAKEFILE) $(UNIQ) \
289 $(DEVICE_DEVS) $(DEVICE_DEVS2) $(DEVICE_DEVS3) $(DEVICE_DEVS4) $(DEVICE_DEVS5)\
290 $(FEATURE_DEVS) $(PLATFORM).dev
291 $(SHP)gsconfig $(DEVICE_DEVS) +
292 $(SHP)gsconfig + $(DEVICE_DEVS2) +
293 $(SHP)gsconfig + $(DEVICE_DEVS3) +
294 $(SHP)gsconfig + $(DEVICE_DEVS4) +
295 $(SHP)gsconfig + $(DEVICE_DEVS5) +
296 $(SHP)gsconfig + $(FEATURE_DEVS) $(PLATFORM).dev
297
298gconfig.$(OBJ): gconfig.c $(AK) gconfig.h $(MAKEFILE)
299 $(CC0) -DGS_LIB_DEFAULT=$(QQ)$(GS_LIB_DEFAULT)$(QQ) -DGS_INIT=$(QQ)$(GS_INIT)$(QQ) gconfig.c
300
301###### On Unix, we pre-link all of the library except the back end.
302###### On MS-DOS, we have to do the whole thing at once.
303
304LIB=gschar.$(OBJ) gscolor.$(OBJ) gscoord.$(OBJ) \
305 gsdevice.$(OBJ) gsfile.$(OBJ) gsfont.$(OBJ) \
306 gsimage.$(OBJ) gsim2out.$(OBJ) \
307 gsline.$(OBJ) gsmatrix.$(OBJ) gsmisc.$(OBJ) \
308 gspaint.$(OBJ) gspath.$(OBJ) gspath2.$(OBJ) \
309 gsstate.$(OBJ) gstdev.$(OBJ) gstype1.$(OBJ) gsutil.$(OBJ) \
310 gxcache.$(OBJ) gxclist.$(OBJ) gxcolor.$(OBJ) gxcpath.$(OBJ) \
311 gxdither.$(OBJ) gxdraw.$(OBJ) gxfill.$(OBJ) \
312 gxht.$(OBJ) gxpath.$(OBJ) gxpath2.$(OBJ) gxstroke.$(OBJ) \
313 gdevmem1.$(OBJ) gdevmem2.$(OBJ) gdevmem3.$(OBJ) gconfig.$(OBJ)
314
315# ------------------------------ Interpreter ------------------------------ #
316
317###### Include files
318
319alloc_h=alloc.h
320astate_h=astate.h
321ccfont_h=ccfont.h
322dict_h=dict.h
323dstack_h=dstack.h
324errors_h=errors.h
325estack_h=estack.h
326file_h=file.h
327font_h=font.h
328ghost_h=ghost.h $(gx_h)
329gp_h=gp.h
330iutil_h=iutil.h
331name_h=name.h
332opdef_h=opdef.h
333ostack_h=ostack.h
334overlay_h=overlay.h
335packed_h=packed.h
336save_h=save.h
337scanchar_h=scanchar.h
338state_h=state.h
339store_h=store.h
340stream_h=stream.h
341# Nested include files
342oper_h=oper.h $(gsutil_h) $(iutil_h) $(opdef_h) $(ostack_h)
343# Include files for optional features
344bnum_h=bnum.h
345bseq_h=bseq.h
346btoken_h=btoken.h
347
348comp1_h=comp1.h $(ghost_h) $(oper_h) $(gserrors_h) $(gxfixed_h) $(gxop1_h)
349
350gdevpccm_h=gdevpccm.h
351gdevpcl_h=gdevpcl.h
352gdevprn_h=gdevprn.h $(memory__h) $(string__h) $(gs_h) \
353 $(gsmatrix_h) $(gxdevice_h) $(gxdevmem_h) $(gxclist_h)
354gdevx_h=gdevx.h
355
356###### Utilities
357
358GH=$(AK) $(ghost_h)
359
360ialloc.$(OBJ): ialloc.c $(AK) $(gs_h) $(alloc_h) $(astate_h)
361
362iccfont.$(OBJ): iccfont.c $(GH) \
363 $(ghost_h) $(alloc_h) $(ccfont_h) $(dict_h) $(dstack_h) $(errors_h) $(name_h) $(save_h) $(store_h)
364
365idebug.$(OBJ): idebug.c $(GH) \
366 $(iutil_h) $(dict_h) $(name_h) $(ostack_h) $(opdef_h) $(packed_h) $(store_h)
367
368idict.$(OBJ): idict.c $(GH) $(alloc_h) $(errors_h) $(name_h) $(packed_h) $(save_h) $(store_h) $(iutil_h) $(dict_h) $(dstack_h)
369
370iinit.$(OBJ): iinit.c $(GH) gconfig.h $(alloc_h) $(dict_h) $(dstack_h) $(errors_h) $(name_h) $(oper_h) $(store_h)
371
372iname.$(OBJ): iname.c $(GH) $(alloc_h) $(errors_h) $(name_h) $(store_h)
373
374isave.$(OBJ): isave.c $(GH) $(alloc_h) $(astate_h) $(name_h) $(packed_h) $(save_h) $(store_h)
375
376iscan.$(OBJ): iscan.c $(GH) $(alloc_h) $(dict_h) $(dstack_h) $(errors_h) $(iutil_h) \
377 $(name_h) $(ostack_h) $(packed_h) $(store_h) $(stream_h) $(scanchar_h)
378
379iutil.$(OBJ): iutil.c $(GH) \
380 $(errors_h) $(alloc_h) $(dict_h) $(iutil_h) $(name_h) $(ostack_h) $(opdef_h) $(store_h) \
381 $(gsmatrix_h) $(gxdevice_h) $(gzcolor_h)
382
383sfilter.$(OBJ): sfilter.c $(AK) $(std_h) $(scanchar_h) $(stream_h) \
384 $(gxfixed_h) $(gstype1_h)
385
386stream.$(OBJ): stream.c $(AK) $(std_h) $(stream_h) $(scanchar_h)
387
388###### Operators
389
390OP=$(GH) $(errors_h) $(oper_h)
391
392### Non-graphics operators
393
394zarith.$(OBJ): zarith.c $(OP) $(store_h)
395
396zarray.$(OBJ): zarray.c $(OP) $(alloc_h) $(packed_h) $(store_h)
397
398zcontrol.$(OBJ): zcontrol.c $(OP) $(estack_h) $(iutil_h) $(store_h)
399
400zdict.$(OBJ): zdict.c $(OP) $(dict_h) $(dstack_h) $(store_h)
401
402zfile.$(OBJ): zfile.c $(OP) $(gp_h) \
403 $(alloc_h) $(estack_h) $(file_h) $(iutil_h) $(save_h) $(stream_h) $(store_h)
404
405zfileio.$(OBJ): zfileio.c $(OP) $(gp_h) \
406 $(estack_h) $(file_h) $(store_h) $(stream_h) \
407 $(gsmatrix_h) $(gxdevice_h) $(gxdevmem_h)
408
409zfilter.$(OBJ): zfilter.c $(OP) $(alloc_h) $(stream_h)
410
411zgeneric.$(OBJ): zgeneric.c $(OP) $(dict_h) $(estack_h) $(name_h) $(packed_h) $(store_h)
412
413zmath.$(OBJ): zmath.c $(OP) $(store_h)
414
415zmisc.$(OBJ): zmisc.c $(OP) $(gp_h) \
416 $(alloc_h) $(dict_h) $(dstack_h) $(name_h) $(packed_h) $(store_h) \
417 $(gstype1_h) $(gxfixed_h)
418
419zpacked.$(OBJ): zpacked.c $(OP) \
420 $(alloc_h) $(dict_h) $(name_h) $(packed_h) $(save_h) $(store_h)
421
422zprops.$(OBJ): zprops.c $(OP) \
423 $(alloc_h) $(dict_h) $(name_h) $(store_h) \
424 $(gsprops_h) $(gsmatrix_h) $(gxdevice_h)
425
426zrelbit.$(OBJ): zrelbit.c $(OP) $(store_h) $(dict_h)
427
428zstack.$(OBJ): zstack.c $(OP) $(store_h)
429
430zstring.$(OBJ): zstring.c $(OP) $(alloc_h) $(iutil_h) $(name_h) $(store_h) $(stream_h)
431
432ztype.$(OBJ): ztype.c $(OP) $(dict_h) $(iutil_h) $(name_h) $(stream_h) $(store_h)
433
434zvmem.$(OBJ): zvmem.c $(OP) $(alloc_h) $(dict_h) $(dstack_h) $(estack_h) $(save_h) $(state_h) $(store_h) \
435 $(gsmatrix_h) $(gsstate_h)
436
437###### Graphics operators
438
439zchar.$(OBJ): zchar.c $(OP) $(gxmatrix_h) $(gschar_h) $(gstype1_h) $(gxdevice_h) $(gxfixed_h) $(gxfont_h) $(gzpath_h) $(gzstate_h) $(alloc_h) $(dict_h) $(dstack_h) $(font_h) $(estack_h) $(state_h) $(store_h)
440
441zcolor.$(OBJ): zcolor.c $(OP) $(alloc_h) $(estack_h) $(gxfixed_h) $(gxmatrix_h) $(gzstate_h) $(gxdevice_h) $(gzcolor_h) $(iutil_h) $(state_h) $(store_h)
442
443zdevice.$(OBJ): zdevice.c $(OP) $(alloc_h) $(state_h) $(gsmatrix_h) $(gsstate_h) $(gxdevice_h) $(store_h)
444
445zfont.$(OBJ): zfont.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gxfont_h) $(gxfdir_h) \
446 $(alloc_h) $(font_h) $(dict_h) $(name_h) $(packed_h) $(save_h) $(state_h) $(store_h)
447
448zfont1.$(OBJ): zfont1.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gschar_h) $(gxfixed_h) $(gxfont_h) \
449 $(dict_h) $(font_h) $(name_h) $(store_h)
450
451zfont2.$(OBJ): zfont2.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gschar_h) $(gxfixed_h) $(gxfont_h) \
452 $(alloc_h) $(dict_h) $(font_h) $(name_h) $(packed_h) $(store_h)
453
454zgstate.$(OBJ): zgstate.c $(OP) $(alloc_h) $(gsmatrix_h) $(gsstate_h) $(state_h) $(store_h)
455
456zht.$(OBJ): zht.c $(OP) $(alloc_h) $(estack_h) $(gsmatrix_h) $(gsstate_h) $(state_h) $(store_h)
457
458zmatrix.$(OBJ): zmatrix.c $(OP) $(gsmatrix_h) $(state_h) $(gscoord_h) $(store_h)
459
460zpaint.$(OBJ): zpaint.c $(OP) $(alloc_h) $(estack_h) $(gsmatrix_h) $(gspaint_h) $(state_h) $(store_h)
461
462zpath.$(OBJ): zpath.c $(OP) $(gsmatrix_h) $(gspath_h) $(state_h) $(store_h)
463
464zpath2.$(OBJ): zpath2.c $(OP) $(alloc_h) $(estack_h) $(gspath_h) $(state_h) $(store_h)
465
466###### Linking
467
468INT=ialloc.$(OBJ) idebug.$(OBJ) idict.$(OBJ) iinit.$(OBJ) iname.$(OBJ) \
469 interp.$(OBJ) isave.$(OBJ) iscan.$(OBJ) iutil.$(OBJ) \
470 sfilter.$(OBJ) stream.$(OBJ) \
471 zarith.$(OBJ) zarray.$(OBJ) zcontrol.$(OBJ) zdict.$(OBJ) \
472 zfile.$(OBJ) zfileio.$(OBJ) zfilter.$(OBJ) zgeneric.$(OBJ) \
473 zmath.$(OBJ) zmisc.$(OBJ) zpacked.$(OBJ) zprops.$(OBJ) zrelbit.$(OBJ) \
474 zstack.$(OBJ) zstring.$(OBJ) ztype.$(OBJ) zvmem.$(OBJ) \
475 zchar.$(OBJ) zcolor.$(OBJ) zfont.$(OBJ) zfont1.$(OBJ) zfont2.$(OBJ) \
476 zdevice.$(OBJ) zgstate.$(OBJ) zht.$(OBJ) zmatrix.$(OBJ) \
477 zpaint.$(OBJ) zpath.$(OBJ) zpath2.$(OBJ)
478
479# -------------------------- Optional features ---------------------------- #
480
481### Additions common to Display PostScript and Level 2
482
483dpsand2_=gsdps1.$(OBJ) ibnum.$(OBJ) ibscan.$(OBJ) \
484 zbseq.$(OBJ) zdps1.$(OBJ) zupath.$(OBJ)
485dpsand2.dev: $(dpsand2_)
486 $(SHP)gssetmod dpsand2 $(dpsand2_)
487 $(SHP)gsaddmod dpsand2 -oper zbseq zdps1 zupath
488 $(SHP)gsaddmod dpsand2 -ps gs_dps1
489
490gsdps1.$(OBJ): gsdps1.c $(GXERR) $(gsmatrix_h) $(gspath_h)
491
492ibnum.$(OBJ): ibnum.c $(GH) $(errors_h) $(stream_h) $(bnum_h) $(btoken_h)
493
494ibscan.$(OBJ): ibscan.c $(GH) $(errors_h) \
495 $(alloc_h) $(dict_h) $(dstack_h) $(iutil_h) $(name_h) $(ostack_h) $(save_h) $(store_h) $(stream_h) $(bseq_h) $(btoken_h) $(bnum_h)
496
497zbseq.$(OBJ): zbseq.c $(OP) $(save_h) $(store_h) $(stream_h) $(file_h) $(name_h) $(bnum_h) $(btoken_h) $(bseq_h)
498
499zdps1.$(OBJ): zdps1.c $(OP) $(gsmatrix_h) $(gspath_h) $(gsstate_h) \
500 $(state_h) $(store_h) $(stream_h) $(bnum_h)
501
502zupath.$(OBJ): zupath.c $(OP) \
503 $(dict_h) $(dstack_h) $(iutil_h) $(state_h) $(store_h) $(stream_h) $(bnum_h) \
504 $(gscoord_h) $(gsmatrix_h) $(gspaint_h) $(gspath_h) $(gsstate_h) \
505 $(gxfixed_h) $(gxdevice_h) $(gxpath_h)
506
507### Display PostScript
508
509# We should include zcontext, but it isn't in good enough shape yet.
510dps_=
511dps.dev: dpsand2.dev $(dps_)
512 $(SHP)gssetmod dps $(dps_)
513 $(SHP)gsaddmod dps -include dpsand2
514
515zcontext.$(OBJ): zcontext.c $(OP) \
516 $(alloc_h) $(dict_h) $(estack_h) $(state_h) $(store_h)
517
518### Level 2 additions -- currently just things common to DPS and Level 2.
519# Should also include
520# $(SHP)gsaddmod level2 -ps gs_lev2
521
522level2_=
523level2.dev: dpsand2.dev $(level2_)
524 $(SHP)gssetmod level2 $(level2_)
525 $(SHP)gsaddmod level2 -include dpsand2
526
527### Composite font support
528
529gschar0.$(OBJ): gschar0.c $(GXERR) \
530 $(gxfixed_h) $(gxmatrix_h) $(gzdevice_h) $(gxdevmem_h) $(gxfont_h) $(gxchar_h) $(gzstate_h)
531
532zfont0.$(OBJ): zfont0.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gxfont_h) \
533 $(alloc_h) $(font_h) $(dict_h) $(name_h) $(state_h) $(store_h)
534
535compfont_=zfont0.$(OBJ) gschar0.$(OBJ)
536compfont.dev: $(compfont_)
537 $(SHP)gssetmod compfont $(compfont_)
538 $(SHP)gsaddmod compfont -oper zfont0
539
540### Filters other than eexec and ASCIIHex
541
542sfilter2.$(OBJ): sfilter2.c $(AK) $(std_h) $(scanchar_h) $(stream_h)
543
544zfilter2.$(OBJ): zfilter2.c $(OP) $(alloc_h) $(stream_h)
545
546filter_=zfilter2.$(OBJ) sfilter2.$(OBJ)
547filter.dev: $(filter_)
548 $(SHP)gssetmod filter $(filter_)
549 $(SHP)gsaddmod filter -oper zfilter2
550
551### LZW encoding/decoding
552### Not included, because Unisys has been awarded a legal monopoly
553### (patent) on the right to implement the freely published algorithms.
554
555lzw_=zlzwd.$(OBJ) zlzwe.$(OBJ) slzwd.$(OBJ) slzwe.$(OBJ)
556lzw.dev: $(lzw_)
557 $(SHP)gssetmod lzw $(lzw_)
558 $(SHP)gsaddmod lzw -oper zlzwd zlzwe
559
560slzwd.$(OBJ): slzwd.c $(AK) std.h stream.h
561
562slzwe.$(OBJ): slzwe.c $(AK) std.h stream.h
563
564zlzwd.$(OBJ): zlzwd.c $(OP) $(alloc_h) $(stream_h)
565
566zlzwe.$(OBJ): zlzwe.c $(OP) $(alloc_h) $(stream_h)
567
568### Precompiled fonts. See fonts.doc for more information.
569
570CCFONT=$(OP) $(ccfont_h)
571
572ccfonts_=ugly.$(OBJ) cour.$(OBJ)
573ccfonts.dev: $(ccfonts_) iccfont.$(OBJ)
574 $(SHP)gssetmod ccfonts $(ccfonts_) iccfont.$(OBJ)
575 $(SHP)gsaddmod ccfonts -oper font_Ugly font_Courier
576
577ugly.$(OBJ): ugly.c $(CCFONT)
578
579cour.$(OBJ): cour.c $(CCFONT)
580
581psyr.$(OBJ): psyr.c $(CCFONT)
582
583pzdr.$(OBJ): pzdr.c $(CCFONT)
584
585# ----------------------------- Main program ------------------------------ #
586
587# Utilities shared between platforms
588
589gsmain.$(OBJ): gsmain.c $(GX) \
590 $(gp_h) $(gsmatrix_h) $(gxdevice_h)
591
592# Interpreter main program
593
594interp.$(OBJ): interp.c $(GH) \
595 $(errors_h) $(estack_h) $(name_h) $(dict_h) $(dstack_h) $(oper_h) $(ostack_h) $(packed_h) $(save_h) $(store_h) $(stream_h)
596 $(CCINT) interp.c
597
598gs.$(OBJ): gs.c $(GH) $(alloc_h) $(estack_h) $(ostack_h) $(store_h) $(stream_h)