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# makefile for Artifex's device drivers.
16
17# Define the name of this makefile.
18DEVS_MAK=$(GLSRC)devs.mak
19
20# All device drivers depend on the following:
21GDEVH=$(gserrors_h) $(gx_h) $(gxdevice_h)
22GDEV=$(AK) $(ECHOGS_XE) $(GDEVH)
23
24###### --------------------------- Overview -------------------------- ######
25
26# It is possible to build Ghostscript with an arbitrary collection of device
27# drivers, although some drivers are supported only on a subset of the
28# target platforms.
29
30# The catalog in this file, devs.mak, lists all the drivers that were
31# written by Artifex, or by people working closely with Artifex, and for
32# which Artifex is willing to take problem reports (although since
33# Ghostscript is provided with NO WARRANTY and NO SUPPORT, we can't promise
34# that we'll solve your problem).  Another file, contrib.mak, lists all the
35# drivers contributed by other people that are distributed by Artifex with
36# Ghostscript.  Note in particular that all drivers for color inkjets and
37# other non-PostScript-capable color printers are in contrib.mak.
38
39# If you haven't configured Ghostscript before, or if you want to add a
40# driver that that isn't included in the catalogs (for which you have the
41# source code), we suggest you skip to the "End of catalog" below and read
42# the documentation there before continuing.
43
44###### --------------------------- Catalog -------------------------- ######
45
46# MS-DOS displays (note: not usable with Desqview/X):
47#   MS-DOS EGA and VGA:
48#	ega		EGA (640x350, 16-color)
49#	vga		VGA (640x480, 16-color)
50#   MS-DOS SuperVGA:
51# *	ali		SuperVGA using Avance Logic Inc. chipset, 256-color modes
52# *	atiw		ATI Wonder SuperVGA, 256-color modes
53# *	cirr		SuperVGA using Cirrus Logic CL-GD54XX chips, 256-color modes
54# *	s3vga		SuperVGA using S3 86C911 chip (e.g., Diamond Stealth board)
55#	svga16		Generic SuperVGA in 800x600, 16-color mode
56# *	tseng		SuperVGA using Tseng Labs ET3000/4000 chips, 256-color modes
57# *	tvga		SuperVGA using Trident chipset, 256-color modes
58#   ****** NOTE: The vesa device does not work with the Watcom (32-bit MS-DOS)
59#   ****** compiler or executable.
60#	vesa		SuperVGA with VESA standard API driver
61# Other displays:
62#	display		For use on any platform that supports DLLs
63#   MS Windows:
64#	mswindll	Microsoft Windows 3.1 DLL  [MS Windows only]
65#	mswinprn	Microsoft Windows 3.0, 3.1 DDB printer  [MS Windows only]
66#	mswinpr2	Microsoft Windows 3.0, 3.1 DIB printer  [MS Windows only]
67#   OS/2:
68# *	os2prn		OS/2 printer                [OS/2 only]
69#   Unix and VMS:
70#   ****** NOTE: For direct frame buffer addressing under SCO Unix or Xenix,
71#   ****** edit the definition of EGAVGA below.
72# *	lvga256		Linux vgalib, 256-color VGA modes  [Linux only]
73# +	vgalib		Linux vgalib, 16-color VGA modes   [Linux only]
74#	x11		X Windows version 11, release >=4   [Unix and VMS only]
75#	x11alpha	X Windows masquerading as a device with alpha capability
76#	x11cmyk		X Windows masquerading as a 1-bit-per-plane CMYK device
77#	x11cmyk2 	X Windows as a 2-bit-per-plane CMYK device
78#	x11cmyk4	X Windows as a 4-bit-per-plane CMYK device
79#	x11cmyk8	X Windows as an 8-bit-per-plane CMYK device
80#	x11gray2	X Windows as a 2-bit gray-scale device
81#	x11gray4 	X Windows as a 4-bit gray-scale device
82#	x11mono		X Windows masquerading as a black-and-white device
83#	x11rg16x 	X Windows with G5/B5/R6 pixel layout for testing.
84#	x11rg32x	X Windows with G11/B10/R11 pixel layout for testing.
85# Printers:
86# +	atx23		Practical Automation ATX-23 label printer
87# +	atx24		Practical Automation ATX-24 label printer
88# +	atx38		Practical Automation ATX-38 label printer
89# +	deskjet		H-P DeskJet and DeskJet Plus
90#	djet500		H-P DeskJet 500; use -r600 for DJ 600 series
91# +	fs600		Kyocera FS-600 (600 dpi)
92# +	laserjet	H-P LaserJet
93# +	ljet2p		H-P LaserJet IId/IIp/III* with TIFF compression
94# +	ljet3		H-P LaserJet III* with Delta Row compression
95# +	ljet3d		H-P LaserJet IIID with duplex capability
96# +	ljet4		H-P LaserJet 4 (defaults to 600 dpi)
97# +	ljet4d		H-P LaserJet 4 (defaults to 600 dpi) with duplex
98# +	ljetplus	H-P LaserJet Plus
99#	lj5mono		H-P LaserJet 5 & 6 family (PCL XL), bitmap:
100#			see below for restrictions & advice
101#	lj5gray		H-P LaserJet 5 & 6 family, gray-scale bitmap;
102#			see below for restrictions & advice
103# *	lp2563		H-P 2563B line printer
104# *	oce9050		OCE 9050 printer
105#	(pxlmono)	H-P black-and-white PCL XL printers (LaserJet 5 and 6 family)
106#	(pxlcolor)	H-P color PCL XL printers (e.g. Color LaserJet 4500)
107# Fax file format:
108#   ****** NOTE: all of these drivers normally adjust the page size to match
109#   ****** one of the three CCITT standard sizes (U.S. letter with A4 width,
110#   ****** A4, or B4).  To suppress this, use -dAdjustWidth=0.
111#	faxg3		Group 3 fax, with EOLs but no header or EOD
112#	faxg32d		Group 3 2-D fax, with EOLs but no header or EOD
113#	faxg4		Group 4 fax, with EOLs but no header or EOD
114#	tiffcrle	TIFF "CCITT RLE 1-dim" (= Group 3 fax with no EOLs)
115#	tiffg3		TIFF Group 3 fax (with EOLs)
116#	tiffg32d	TIFF Group 3 2-D fax
117#	tiffg4		TIFF Group 4 fax
118# High-level file formats:
119#	epswrite	EPS output (like PostScript Distillery)
120#	pdfwrite	PDF output (like Adobe Acrobat Distiller)
121#	pswrite		PostScript output (like PostScript Distillery)
122#	txtwrite	ASCII or Unicode text output
123#	pxlmono 	Black-and-white PCL XL
124#	pxlcolor	Color PCL XL
125# Other raster file formats and devices:
126#	bit		Plain bits, monochrome
127#	bitrgb		Plain bits, RGB
128#	bitcmyk		Plain bits, CMYK
129#	bmpmono		Monochrome MS Windows .BMP file format
130#	bmpgray		8-bit gray .BMP file format
131#	bmpsep1		Separated 1-bit CMYK .BMP file format, primarily for testing
132#	bmpsep8		Separated 8-bit CMYK .BMP file format, primarily for testing
133#	bmp16		4-bit (EGA/VGA) .BMP file format
134#	bmp256		8-bit (256-color) .BMP file format
135#	bmp16m		24-bit .BMP file format
136#	bmp32b		32-bit pseudo-.BMP file format
137#	jpeg		JPEG format, RGB output
138#	jpeggray	JPEG format, gray output
139#	jpegcmyk	JPEG format, cmyk output
140#	miff24		ImageMagick MIFF format, 24-bit direct color, RLE compressed
141#	pamcmyk4 	Portable Arbitrary Map file format 4-bit CMYK
142#	pamcmyk32	Portable Arbitrary Map file format 32-bit CMYK
143#	pcxmono		PCX file format, monochrome (1-bit black and white)
144#	pcxgray		PCX file format, 8-bit gray scale
145#	pcx16		PCX file format, 4-bit planar (EGA/VGA) color
146#	pcx256		PCX file format, 8-bit chunky color
147#	pcx24b		PCX file format, 24-bit color (3 8-bit planes)
148#	pcxcmyk		PCX file format, 4-bit chunky CMYK color
149#	pbm		Portable Bitmap (plain format)
150#	pbmraw		Portable Bitmap (raw format)
151#	pgm		Portable Graymap (plain format)
152#	pgmraw		Portable Graymap (raw format)
153#	pgnm		Portable Graymap (plain format), optimizing to PBM if possible
154#	pgnmraw		Portable Graymap (raw format), optimizing to PBM if possible
155#	pnm		Portable Pixmap (plain format) (RGB), optimizing to PGM or PBM
156#			if possible
157#	pnmraw		Portable Pixmap (raw format) (RGB), optimizing to PGM or PBM
158#			if possible
159#	ppm		Portable Pixmap (plain format) (RGB)
160#	ppmraw		Portable Pixmap (raw format) (RGB)
161#	pkm		Portable inKmap (plain format) (4-bit CMYK => RGB)
162#	pkmraw		Portable inKmap (raw format) (4-bit CMYK => RGB)
163#	pksm		Portable Separated map (plain format) (4-bit CMYK => 4 pages)
164#	pksmraw		Portable Separated map (raw format) (4-bit CMYK => 4 pages)
165# *	plan9bm		Plan 9 bitmap format
166#	plan		PLANar device (24 bit RGB)
167#	planm		PLANar device (1 bit Mono)
168#	plang		PLANar device (8 bit Gray)
169#	planc		PLANar device (32 bit CMYK)
170#	plank		PLANar device (4 bit CMYK)
171#	plib		PLanar Interleaved Band buffer device (24 bit RGB)
172#	plibm		PLanar Interleaved Band buffer device (1 bit Mono)
173#	plibg		PLanar Interleaved Band buffer device (8 bit Gray)
174#	plibc		PLanar Interleaved Band buffer device (32 bit CMYK)
175#	plibk		PLanar Interleaved Band buffer device (4 bit CMYK)
176#	pngmono		Monochrome Portable Network Graphics (PNG)
177#	pngmonod	Monochrome (error diffused) Portable Network Graphics (PNG)
178#	pnggray		8-bit gray Portable Network Graphics (PNG)
179#	png16		4-bit color Portable Network Graphics (PNG)
180#	png256		8-bit color Portable Network Graphics (PNG)
181#	png16m		24-bit color Portable Network Graphics (PNG)
182#	pngalpha	32-bit RGBA color Portable Network Graphics (PNG)
183#	psmono		PostScript (Level 1) monochrome image
184#	psgray		PostScript (Level 1) 8-bit gray image
185#	psrgb		PostScript (Level 2) 24-bit color image
186#	tiffgray	TIFF 8-bit gray, no compression
187#	tiff12nc	TIFF 12-bit RGB, no compression
188#	tiff24nc 	TIFF 24-bit RGB, no compression (NeXT standard format)
189#	tiff48nc	TIFF 48-bit RGB, no compression
190#	tiff32nc	TIFF 32-bit CMYK
191#	tiff64nc 	TIFF 64-bit CMYK
192#	tiffsep		Creates tiffgray for each colorant plus a CMYK composite
193#	tiffsep1	Creates halftoned tiff 1-bit per pixel for each colorant
194#	tifflzw 	TIFF LZW (tag = 5) (monochrome)
195#	tiffpack	TIFF PackBits (tag = 32773) (monochrome)
196#	tiffscaled	TIFF (monochrome output, integer downsampled and dithered from grayscale rendering)
197#	tiffscaled8	TIFF (greyscale output, integer downsampled and dithered from grayscale rendering)
198#	tiffscaled24	TIFF (rgb output, integer downsampled and dithered from rgb rendering)
199
200# Note that MS Windows-specific drivers are defined in pcwin.mak, not here,
201# because they have special compilation requirements that require defining
202# parameter macros not relevant to other platforms; the OS/2-specific
203# drivers are there too, because they share some definitions.
204
205# User-contributed drivers marked with * require hardware or software
206# that is not available to Artifex Software Inc.  Please contact the
207# original contributors, not Artifex Software Inc, if you have questions.
208# Contact information appears in the driver entry below.
209#
210# Drivers marked with a + are maintained by Artifex Software Inc with
211# the assistance of users, since Artifex Software Inc doesn't have access to
212# the hardware for these either.
213
214# If you add drivers, it would be nice if you kept each list
215# in alphabetical order.
216
217###### ----------------------- End of catalog ----------------------- ######
218
219# As noted in gs.mak, DEVICE_DEVS and DEVICE_DEVS1..15 select the devices
220# that should be included in a given configuration.  By convention, these
221# are used as follows.  Each of these must be limited to about 6 devices
222# so as not to overflow the 120 character limit on MS-DOS command lines.
223#	DEVICE_DEVS - the default device, and any display devices.
224#	DEVICE_DEVS1 - additional display devices if needed.
225#	DEVICE_DEVS2 - dot matrix printers.
226#	DEVICE_DEVS3 - H-P monochrome printers.
227#	DEVICE_DEVS4 - H-P color printers.
228#	DEVICE_DEVS5 - additional inkjet printers if needed.
229#	DEVICE_DEVS6 - other ink-jet and laser printers.
230#	DEVICE_DEVS7 - fax file formats.
231#	DEVICE_DEVS8 - PCX file formats.
232#	DEVICE_DEVS9 - PBM/PGM/PPM file formats.
233#	DEVICE_DEVS10 - black-and-white TIFF file formats.
234#	DEVICE_DEVS11 - BMP and color TIFF file formats.
235#	DEVICE_DEVS12 - PostScript image and 'bit' file formats.
236#	DEVICE_DEVS13 - PNG file formats.
237#	DEVICE_DEVS14 - CGM, JPEG, and MIFF file formats.
238#	DEVICE_DEVS15 - high-level (PostScript and PDF) file formats.
239#	DEVICE_DEVS16 - additional high-level and utility drivers
240#	DEVICE_DEVS17 - (overflow for PC platforms)
241#	DEVICE_DEVS18 - (ditto)
242#	DEVICE_DEVS19 - (ditto)
243#	DEVICE_DEVS20 - (ditto)
244# Feel free to disregard this convention if it gets in your way.
245
246# If you want to add a new device driver, the examples below should be
247# enough of a guide to the correct form for the makefile rules.
248# Note that all drivers other than displays must include page.dev in their
249# dependencies and use $(SETPDEV) rather than $(SETDEV) in their rule bodies.
250
251# "Printer" drivers depend on the following:
252PDEVH=$(AK) $(gdevprn_h)
253
254# Define the header files for device drivers.  Every header file used by
255# more than one device driver family must be listed here.
256gdev8bcm_h=$(GLSRC)gdev8bcm.h
257gdevcbjc_h=$(GLSRC)gdevcbjc.h $(stream_h)
258gdevdcrd_h=$(GLSRC)gdevdcrd.h
259gsequivc_h=$(GLSRC)gsequivc.h
260gdevdevn_h=$(GLSRC)gdevdevn.h $(gsequivc_h)
261gdevpccm_h=$(GLSRC)gdevpccm.h
262gdevpcfb_h=$(GLSRC)gdevpcfb.h $(dos__h)
263gdevpcl_h=$(GLSRC)gdevpcl.h
264gdevpsu_h=$(GLSRC)gdevpsu.h
265gdevsvga_h=$(GLSRC)gdevsvga.h
266# Out of order
267gdevdljm_h=$(GLSRC)gdevdljm.h $(gdevpcl_h)
268ConvertUTF_h=$(GLSRC)ConvertUTF.h
269
270GDEVLDFJB2CC=$(CC_) $(I_)$(GLI_) $(II)$(LDF_JB2I_)$(_I) $(JB2CF_) $(GLF_)
271GDEVLWFJPXCC=$(CC_) $(I_)$(GLI_) $(II)$(LWF_JPXI_)$(_I) $(JPXCF_) $(GLF_)
272GDEVLWFJB2JPXCC=$(CC_) $(I_)$(GLI_)  $(II)$(LDF_JB2I_) $(II)$(LWF_JPXI_)$(_I) $(JB2CF_) $(JPXCF_) $(GLF_)
273
274###### ----------------------- Device support ----------------------- ######
275
276# Implement dynamic color management for 8-bit mapped color displays.
277$(GLOBJ)gdev8bcm.$(OBJ) : $(GLSRC)gdev8bcm.c $(AK)\
278 $(gx_h) $(gxdevice_h) $(gdev8bcm_h)
279	$(GLCC) $(GLO_)gdev8bcm.$(OBJ) $(C_) $(GLSRC)gdev8bcm.c
280
281# PC display color mapping
282$(GLOBJ)gdevpccm.$(OBJ) : $(GLSRC)gdevpccm.c $(AK)\
283 $(gx_h) $(gsmatrix_h) $(gxdevice_h) $(gdevpccm_h)
284	$(GLCC) $(GLO_)gdevpccm.$(OBJ) $(C_) $(GLSRC)gdevpccm.c
285
286# Generate Canon BJC command sequences.
287$(GLOBJ)gdevcbjc.$(OBJ) : $(GLSRC)gdevcbjc.c $(AK)\
288 $(std_h) $(stream_h) $(gdevcbjc_h)
289	$(GLCC) $(GLO_)gdevcbjc.$(OBJ) $(C_) $(GLSRC)gdevcbjc.c
290
291# Provide a sample device CRD.
292$(GLOBJ)gdevdcrd.$(OBJ) : $(GLSRC)gdevdcrd.c $(AK)\
293 $(math__h) $(memory__h) $(string__h)\
294 $(gscrd_h) $(gscrdp_h) $(gserrors_h) $(gsparam_h) $(gscspace_h)\
295 $(gx_h) $(gxdevcli_h) $(gdevdcrd_h)
296	$(GLCC) $(GLO_)gdevdcrd.$(OBJ) $(C_) $(GLSRC)gdevdcrd.c
297
298# Support for writing PostScript (high- or low-level).
299$(GLOBJ)gdevpsu.$(OBJ) : $(GLSRC)gdevpsu.c $(GX) $(GDEV) $(math__h) $(time__h)\
300 $(stat__h) $(unistd__h)\
301 $(gdevpsu_h) $(gscdefs_h) $(gxdevice_h)\
302 $(spprint_h) $(stream_h)
303	$(GLCC) $(GLO_)gdevpsu.$(OBJ) $(C_) $(GLSRC)gdevpsu.c
304
305###### ------------------- MS-DOS display devices ------------------- ######
306
307# There are really only three drivers: an EGA/VGA driver (4 bit-planes,
308# plane-addressed), a SuperVGA driver (8 bit-planes, byte addressed),
309# and a special driver for the S3 chip.
310
311### ----------------------- EGA and VGA displays ----------------------- ###
312
313EGAVGA_DOS=$(GLOBJ)gdevevga.$(OBJ) $(GLOBJ)gdevpcfb.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ)
314EGAVGA_SCO=$(GLOBJ)gdevsco.$(OBJ) $(GLOBJ)gdevpcfb.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ)
315# NOTE: for direct frame buffer addressing under SCO Unix or Xenix,
316# change DOS to SCO in the following line.
317EGAVGA=$(EGAVGA_DOS)
318
319#**************** $(CCD) gdevevga.c
320$(GLOBJ)gdevevga.$(OBJ) : $(GLSRC)gdevevga.c $(GDEV) $(memory__h) $(gdevpcfb_h)
321	$(GLCC) $(GLO_)gdevevga.$(OBJ) $(C_) $(GLSRC)gdevevga.c
322
323$(GLOBJ)gdevsco.$(OBJ) : $(GLSRC)gdevsco.c $(GDEV) $(memory__h) $(gdevpcfb_h)
324	$(GLCC) $(GLO_)gdevsco.$(OBJ) $(C_) $(GLSRC)gdevsco.c
325
326# Common code for MS-DOS and SCO.
327#**************** $(CCD) gdevpcfb.c
328$(GLOBJ)gdevpcfb.$(OBJ) : $(GLSRC)gdevpcfb.c $(GDEV) $(memory__h)\
329 $(gdevpccm_h) $(gdevpcfb_h) $(gsparam_h)
330	$(GLCC) $(GLO_)gdevpcfb.$(OBJ) $(C_) $(GLSRC)gdevpcfb.c
331
332# The EGA/VGA family includes EGA and VGA.  Many SuperVGAs in 800x600,
333# 16-color mode can share the same code; see the next section below.
334$(DD)ega.dev : $(DEVS_MAK) $(EGAVGA) $(GDEV)
335	$(SETDEV) $(DD)ega $(EGAVGA)
336
337$(DD)vga.dev : $(DEVS_MAK) $(EGAVGA) $(GDEV)
338	$(SETDEV) $(DD)vga $(EGAVGA)
339
340### ------------------------- SuperVGA displays ------------------------ ###
341
342# SuperVGA displays in 16-color, 800x600 mode are really just slightly
343# glorified VGA's, so we can handle them all with a single driver.
344# The way to select them on the command line is with
345#	-sDEVICE=svga16 -dDisplayMode=NNN
346# where NNN is the display mode in decimal.  See Use.htm for the modes
347# for some popular display chipsets.
348
349$(DD)svga16.dev : $(DEVS_MAK) $(EGAVGA) $(GDEV)
350	$(SETDEV) $(DD)svga16 $(EGAVGA)
351
352# More capable SuperVGAs have a wide variety of slightly differing
353# interfaces, so we need a separate driver for each one.
354
355SVGA=$(GLOBJ)gdevsvga.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ)
356
357#**************** $(CCD) gdevsvga.c
358$(GLOBJ)gdevsvga.$(OBJ) : $(GLSRC)gdevsvga.c $(GDEV) $(memory__h)\
359 $(gsparam_h) $(gxarith_h) $(gdevpccm_h) $(gdevpcfb_h) $(gdevsvga_h)
360	$(GLCC) $(GLO_)gdevsvga.$(OBJ) $(C_) $(GLSRC)gdevsvga.c
361
362# The SuperVGA family includes: Avance Logic Inc., ATI Wonder, S3,
363# Trident, Tseng ET3000/4000, and VESA.
364
365$(DD)ali.dev : $(DEVS_MAK) $(SVGA) $(GDEV)
366	$(SETDEV) $(DD)ali $(SVGA)
367
368$(DD)atiw.dev : $(DEVS_MAK) $(SVGA) $(GDEV)
369	$(SETDEV) $(DD)atiw $(SVGA)
370
371$(DD)cirr.dev : $(DEVS_MAK) $(SVGA) $(GDEV)
372	$(SETDEV) $(DD)cirr $(SVGA)
373
374$(DD)tseng.dev : $(DEVS_MAK) $(SVGA) $(GDEV)
375	$(SETDEV) $(DD)tseng $(SVGA)
376
377$(DD)tvga.dev : $(DEVS_MAK) $(SVGA) $(GDEV)
378	$(SETDEV) $(DD)tvga $(SVGA)
379
380$(DD)vesa.dev : $(DEVS_MAK) $(SVGA) $(GDEV)
381	$(SETDEV) $(DD)vesa $(SVGA)
382
383# The S3 driver doesn't share much code with the others.
384
385s3vga_=$(GLOBJ)gdevs3ga.$(OBJ) $(GLOBJ)gdevsvga.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ)
386$(DD)s3vga.dev : $(DEVS_MAK) $(SVGA) $(s3vga_) $(GDEV)
387	$(SETDEV) $(DD)s3vga $(SVGA)
388	$(ADDMOD) $(DD)s3vga -obj $(s3vga_)
389
390#**************** $(CCD) gdevs3ga.c
391$(GLOBJ)gdevs3ga.$(OBJ) : $(GLSRC)gdevs3ga.c $(GDEV) $(gdevpcfb_h) $(gdevsvga_h)
392	$(GLCC) $(GLO_)gdevs3ga.$(OBJ) $(C_) $(GLSRC)gdevs3ga.c
393
394###### ----------------------- Other displays ------------------------ ######
395
396### ------------------ Display device for DLL platforms ----------------- ###
397
398display_=$(GLOBJ)gdevdsp.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ) $(GLOBJ)gdevdevn.$(OBJ) \
399	 $(GLOBJ)gsequivc.$(OBJ) $(GLOBJ)gdevdcrd.$(OBJ)
400$(DD)display.dev : $(display_) $(GDEV)
401	$(SETDEV) $(DD)display $(display_)
402
403$(GLOBJ)gdevdsp.$(OBJ) : $(GLSRC)gdevdsp.c $(string__h)\
404 $(gp_h) $(gpcheck_h) $(gdevpccm_h) $(gsparam_h) $(gsdevice_h)\
405 $(GDEVH) $(gxdevmem_h) $(gdevdevn_h) $(gsequivc_h) $(gdevdsp_h) $(gdevdsp2_h)
406	$(GLCC) $(GLO_)gdevdsp.$(OBJ) $(C_) $(GLSRC)gdevdsp.c
407
408
409### ---------------------- Linux PC with vgalib ------------------------- ###
410### Note: these drivers were contributed by users.                        ###
411### For questions about the lvga256 driver, please contact                ###
412###       Ludger Kunz (ludger.kunz@fernuni-hagen.de).                     ###
413### For questions about the vgalib driver, please contact                 ###
414###       Erik Talvola (talvola@gnu.ai.mit.edu).                          ###
415### Note that the vgalib device supports only 16-color VGA modes.         ###
416
417lvga256_=$(GLOBJ)gdevl256.$(OBJ)
418$(DD)lvga256.dev : $(DEVS_MAK) $(lvga256_) $(GDEV)
419	$(SETDEV) $(DD)lvga256 $(lvga256_)
420	$(ADDMOD) $(DD)lvga256 -lib vga vgagl
421
422$(GLOBJ)gdevl256.$(OBJ) : $(GLSRC)gdevl256.c $(GDEV) $(memory__h)
423	$(GLCCSHARED) $(GLO_)gdevl256.$(OBJ) $(C_) $(GLSRC)gdevl256.c
424
425vgalib_=$(GLOBJ)gdevvglb.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ)
426$(DD)vgalib.dev : $(DEVS_MAK) $(vgalib_) $(GDEV)
427	$(SETDEV2) $(DD)vgalib $(vgalib_)
428	$(ADDMOD) $(DD)vgalib -lib vga
429
430$(GLOBJ)gdevvglb.$(OBJ) : $(GLSRC)gdevvglb.c $(GDEV) $(gdevpccm_h) $(gsparam_h)
431	$(GLCCSHARED) $(GLO_)gdevvglb.$(OBJ) $(C_) $(GLSRC)gdevvglb.c
432
433### Shared library object supporting vgalib.
434### NON PORTABLE, ONLY UNIX WITH GCC SUPPORT
435
436$(GLOBJ)lvga256.so : $(lvga256_)
437	$(CCLD) $(LDFLAGS) -shared -o $(GLOBJ)lvga256.so $(lvga256_) -lvga -lvgagl $(XLDFLAGS)
438
439$(GLOBJ)vgalib.so : $(vgalib_)
440	$(CCLD) $(LDFLAGS) -shared -o $(GLOBJ)vgalib.so $(vgalib_) -lvga -lvgagl $(XLDFLAGS)
441
442### -------------------------- The X11 device -------------------------- ###
443
444# Please note that Artifex Software Inc does not support Ghostview.
445# For more information about Ghostview, please contact Tim Theisen
446# (ghostview@cs.wisc.edu).
447
448x__h=$(GLSRC)x_.h
449gdevxcmp_h=$(GLSRC)gdevxcmp.h
450gdevx_h=$(GLSRC)gdevx.h $(gdevbbox_h) $(gdevxcmp_h)
451
452# See the main makefile for the definition of XLIBDIRS and XLIBS.
453x11_=$(GLOBJ)gdevx.$(OBJ) $(GLOBJ)gdevxcmp.$(OBJ) $(GLOBJ)gdevxini.$(OBJ)\
454 $(GLOBJ)gdevxres.$(OBJ) $(GLOBJ)gsparamx.$(OBJ)
455$(DD)x11_.dev : $(DEVS_MAK) $(x11_) $(GLD)bboxutil.dev $(GDEV)
456	$(SETMOD) $(DD)x11_ $(x11_)
457	$(ADDMOD) $(DD)x11_ -link $(XLIBDIRS)
458	$(ADDMOD) $(DD)x11_ -lib $(XLIBS)
459	$(ADDMOD) $(DD)x11_ -include $(GLD)bboxutil
460
461$(DD)x11.dev : $(DEVS_MAK) $(DD)x11_.dev $(GDEV)
462	$(SETDEV2) $(DD)x11 -include $(DD)x11_
463
464# See the main makefile for the definition of XINCLUDE.
465GDEVX=$(GDEV) $(x__h) $(gdevx_h) $(TOP_MAKEFILES)
466$(GLOBJ)gdevx.$(OBJ) : $(GLSRC)gdevx.c $(GDEVX) $(math__h) $(memory__h)\
467 $(gscoord_h) $(gsdevice_h) $(gsiparm2_h) $(gsmatrix_h) $(gsparam_h)\
468 $(gxdevmem_h) $(gxgetbit_h) $(gxiparam_h) $(gxpath_h)
469	$(GLCCSHARED) $(XINCLUDE) $(GLO_)gdevx.$(OBJ) $(C_) $(GLSRC)gdevx.c
470
471$(GLOBJ)gdevxcmp.$(OBJ) : $(GLSRC)gdevxcmp.c $(GDEVX) $(math__h)
472	$(GLCCSHARED) $(XINCLUDE) $(GLO_)gdevxcmp.$(OBJ) $(C_) $(GLSRC)gdevxcmp.c
473
474$(GLOBJ)gdevxini.$(OBJ) : $(GLSRC)gdevxini.c $(GDEVX) $(memory__h)\
475 $(gserrors_h) $(gsparamx_h) $(gxdevmem_h) $(gdevbbox_h)
476	$(GLCCSHARED) $(XINCLUDE) $(GLO_)gdevxini.$(OBJ) $(C_) $(GLSRC)gdevxini.c
477
478# We have to compile gdevxres without warnings, because there is a
479# const/non-const cast required by the X headers that we can't work around.
480$(GLOBJ)gdevxres.$(OBJ) : $(GLSRC)gdevxres.c $(std_h) $(x__h)\
481 $(gsmemory_h) $(gstypes_h) $(gxdevice_h) $(gdevx_h)
482	$(GLCCSHARED) $(XINCLUDE) $(GLO_)gdevxres.$(OBJ) $(C_) $(GLSRC)gdevxres.c
483
484# Alternate X11-based devices to help debug other drivers.
485# x11alpha pretends to have 4 bits of alpha channel.
486# x11cmyk pretends to be a CMYK device with 1 bit each of C,M,Y,K.
487# x11cmyk2 pretends to be a CMYK device with 2 bits each of C,M,Y,K.
488# x11cmyk4 pretends to be a CMYK device with 4 bits each of C,M,Y,K.
489# x11cmyk8 pretends to be a CMYK device with 8 bits each of C,M,Y,K.
490# x11gray2 pretends to be a 2-bit gray-scale device.
491# x11gray4 pretends to be a 4-bit gray-scale device.
492# x11mono pretends to be a black-and-white device.
493# x11rg16x pretends to be a G5/B5/R6 color device.
494# x11rg16x pretends to be a G11/B10/R11 color device.
495x11alt_=$(GLOBJ)gdevxalt.$(OBJ)
496$(DD)x11alt_.dev : $(DEVS_MAK) $(x11alt_) $(DD)x11_.dev $(GDEV)
497	$(SETMOD) $(DD)x11alt_ $(x11alt_)
498	$(ADDMOD) $(DD)x11alt_ -include $(DD)x11_
499
500$(DD)x11alpha.dev : $(DEVS_MAK) $(DD)x11alt_.dev $(GDEV)
501	$(SETDEV2) $(DD)x11alpha -include $(DD)x11alt_
502
503$(DD)x11cmyk.dev : $(DEVS_MAK) $(DD)x11alt_.dev $(GDEV)
504	$(SETDEV2) $(DD)x11cmyk -include $(DD)x11alt_
505
506$(DD)x11cmyk2.dev : $(DEVS_MAK) $(DD)x11alt_.dev $(GDEV)
507	$(SETDEV2) $(DD)x11cmyk2 -include $(DD)x11alt_
508
509$(DD)x11cmyk4.dev : $(DEVS_MAK) $(DD)x11alt_.dev $(GDEV)
510	$(SETDEV2) $(DD)x11cmyk4 -include $(DD)x11alt_
511
512$(DD)x11cmyk8.dev : $(DEVS_MAK) $(DD)x11alt_.dev $(GDEV)
513	$(SETDEV2) $(DD)x11cmyk8 -include $(DD)x11alt_
514
515$(DD)x11gray2.dev : $(DEVS_MAK) $(DD)x11alt_.dev $(GDEV)
516	$(SETDEV2) $(DD)x11gray2 -include $(DD)x11alt_
517
518$(DD)x11gray4.dev : $(DEVS_MAK) $(DD)x11alt_.dev $(GDEV)
519	$(SETDEV2) $(DD)x11gray4 -include $(DD)x11alt_
520
521$(DD)x11mono.dev : $(DEVS_MAK) $(DD)x11alt_.dev $(GDEV)
522	$(SETDEV2) $(DD)x11mono -include $(DD)x11alt_
523
524$(DD)x11rg16x.dev : $(DEVS_MAK) $(DD)x11alt_.dev $(GDEV)
525	$(SETDEV2) $(DD)x11rg16x -include $(DD)x11alt_
526
527$(DD)x11rg32x.dev : $(DEVS_MAK) $(DD)x11alt_.dev $(GDEV)
528	$(SETDEV2) $(DD)x11rg32x -include $(DD)x11alt_
529
530$(GLOBJ)gdevxalt.$(OBJ) : $(GLSRC)gdevxalt.c $(GDEVX) $(math__h) $(memory__h)\
531 $(gsdevice_h) $(gsparam_h) $(gsstruct_h) $(GDEV)
532	$(GLCCSHARED) $(XINCLUDE) $(GLO_)gdevxalt.$(OBJ) $(C_) $(GLSRC)gdevxalt.c
533
534### Shared library object supporting X11.
535### NON PORTABLE, ONLY UNIX WITH GCC SUPPORT
536
537$(GLOBJ)X11.so : $(x11alt_) $(x11_)
538	$(CCLD) $(LDFLAGS) -shared -o $(GLOBJ)X11.so $(x11alt_) $(x11_) -L$(LOCALBASE)/lib -lXt -lSM -lICE -lXext -lX11 $(XLIBDIRS)
539
540###### --------------- Memory-buffered printer devices --------------- ######
541
542### ---------------- Practical Automation label printers ---------------- ###
543
544atx_=$(GLOBJ)gdevatx.$(OBJ)
545
546$(DD)atx23.dev : $(DEVS_MAK) $(atx_) $(GLD)page.dev $(GDEV)
547	$(SETPDEV2) $(DD)atx23 $(atx_)
548
549$(DD)atx24.dev : $(DEVS_MAK) $(atx_) $(GLD)page.dev $(GDEV)
550	$(SETPDEV2) $(DD)atx24 $(atx_)
551
552$(DD)atx38.dev : $(DEVS_MAK) $(atx_) $(GLD)page.dev $(GDEV)
553	$(SETPDEV2) $(DD)atx38 $(atx_)
554
555$(GLOBJ)gdevatx.$(OBJ) : $(GLSRC)gdevatx.c $(PDEVH) $(math__h) $(GDEV)
556	$(GLCC) $(GLO_)gdevatx.$(OBJ) $(C_) $(GLSRC)gdevatx.c
557
558### ----------- The H-P DeskJet and LaserJet printer devices ----------- ###
559
560### These are essentially the same device.
561### NOTE: printing at full resolution (300 DPI) requires a printer
562###   with at least 1.5 Mb of memory.  150 DPI only requires .5 Mb.
563### Note that the lj4dith driver is included with the H-P color printer
564###   drivers below.
565### For questions about the fs600 device, please contact                  ###
566### Peter Schildmann (peter.schildmann@etechnik.uni-rostock.de).          ###
567
568HPPCL=$(GLOBJ)gdevpcl.$(OBJ)
569HPDLJM=$(GLOBJ)gdevdljm.$(OBJ) $(HPPCL)
570HPMONO=$(GLOBJ)gdevdjet.$(OBJ) $(HPDLJM)
571
572$(GLOBJ)gdevpcl.$(OBJ) : $(GLSRC)gdevpcl.c $(PDEVH) $(math__h) $(gdevpcl_h)\
573 $(GDEV)
574	$(GLCC) $(GLO_)gdevpcl.$(OBJ) $(C_) $(GLSRC)gdevpcl.c
575
576$(GLOBJ)gdevdljm.$(OBJ) : $(GLSRC)gdevdljm.c $(PDEVH) $(gdevdljm_h) $(GDEV)
577	$(GLCC) $(GLO_)gdevdljm.$(OBJ) $(C_) $(GLSRC)gdevdljm.c
578
579$(GLOBJ)gdevdjet.$(OBJ) : $(GLSRC)gdevdjet.c $(PDEVH) $(gdevdljm_h) $(GDEV)
580	$(GLCC) $(GLO_)gdevdjet.$(OBJ) $(C_) $(GLSRC)gdevdjet.c
581
582$(DD)deskjet.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev $(GDEV)
583	$(SETPDEV2) $(DD)deskjet $(HPMONO)
584
585$(DD)djet500.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev $(GDEV)
586	$(SETPDEV2) $(DD)djet500 $(HPMONO)
587
588$(DD)fs600.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev $(GDEV)
589	$(SETPDEV2) $(DD)fs600 $(HPMONO)
590
591$(DD)laserjet.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev $(GDEV)
592	$(SETPDEV2) $(DD)laserjet $(HPMONO)
593
594$(DD)ljetplus.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev $(GDEV)
595	$(SETPDEV2) $(DD)ljetplus $(HPMONO)
596
597### Selecting ljet2p provides TIFF (mode 2) compression on LaserJet III,
598### IIIp, IIId, IIIsi, IId, and IIp.
599
600$(DD)ljet2p.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev $(GDEV)
601	$(SETPDEV2) $(DD)ljet2p $(HPMONO)
602
603### Selecting ljet3 provides Delta Row (mode 3) compression on LaserJet III,
604### IIIp, IIId, IIIsi.
605
606$(DD)ljet3.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev $(GDEV)
607	$(SETPDEV2) $(DD)ljet3 $(HPMONO)
608
609### Selecting ljet3d also provides duplex printing capability.
610
611$(DD)ljet3d.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev $(GDEV)
612	$(SETPDEV2) $(DD)ljet3d $(HPMONO)
613
614### Selecting ljet4 or ljet4d also provides Delta Row compression on
615### LaserJet IV series.
616
617$(DD)ljet4.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev $(GDEV)
618	$(SETPDEV2) $(DD)ljet4 $(HPMONO)
619
620$(DD)ljet4d.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev $(GDEV)
621	$(SETPDEV2) $(DD)ljet4d $(HPMONO)
622
623$(DD)lp2563.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev $(GDEV)
624	$(SETPDEV2) $(DD)lp2563 $(HPMONO)
625
626$(DD)oce9050.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev $(GDEV)
627	$(SETPDEV2) $(DD)oce9050 $(HPMONO)
628
629### ------------------ The H-P LaserJet 5 and 6 devices ----------------- ###
630
631### These drivers use H-P's new PCL XL printer language, like H-P's
632### LaserJet 5 Enhanced driver for MS Windows.  We don't recommend using
633### them:
634###	- If you have a LJ 5L or 5P, which isn't a "real" LaserJet 5,
635###	use the ljet4 driver instead.  (The lj5 drivers won't work.)
636###	- If you have any other model of LJ 5 or 6, use the pxlmono
637###	driver, which often produces much more compact output.
638
639gdevpxat_h=$(GLSRC)gdevpxat.h
640gdevpxen_h=$(GLSRC)gdevpxen.h
641gdevpxop_h=$(GLSRC)gdevpxop.h
642gdevpxut_h=$(GLSRC)gdevpxut.h
643
644
645$(GLOBJ)gdevpxut.$(OBJ) : $(GLSRC)gdevpxut.c $(math__h) $(string__h)\
646 $(gx_h) $(gxdevcli_h) $(stream_h)\
647 $(gdevpxat_h) $(gdevpxen_h) $(gdevpxop_h) $(gdevpxut_h) $(GDEV)
648	$(GLCC) $(GLO_)gdevpxut.$(OBJ) $(C_) $(GLSRC)gdevpxut.c
649
650ljet5_=$(GLOBJ)gdevlj56.$(OBJ) $(GLOBJ)gdevpxut.$(OBJ) $(HPPCL)
651$(DD)lj5mono.dev : $(DEVS_MAK) $(ljet5_) $(GLD)page.dev $(GDEV)
652	$(SETPDEV) $(DD)lj5mono $(ljet5_)
653
654$(DD)lj5gray.dev : $(DEVS_MAK) $(ljet5_) $(GLD)page.dev $(GDEV)
655	$(SETPDEV) $(DD)lj5gray $(ljet5_)
656
657$(GLOBJ)gdevlj56.$(OBJ) : $(GLSRC)gdevlj56.c $(PDEVH) $(gdevpcl_h)\
658 $(gdevpxat_h) $(gdevpxen_h) $(gdevpxop_h) $(gdevpxut_h) $(stream_h)
659	$(GLCC) $(GLO_)gdevlj56.$(OBJ) $(C_) $(GLSRC)gdevlj56.c
660
661### -------------------- The ijs client ----------------- ###
662
663ijs_=$(GLOBJ)gdevijs.$(OBJ)
664
665#$(IJSOBJ)ijs.$(OBJ) $(IJSOBJ)ijs_client.$(OBJ) \
666# $(IJSOBJ)ijs_exec_$(IJSEXECTYPE).$(OBJ)
667
668$(DD)ijs.dev : $(ijs_) $(GLD)page.dev $(DD)ijslib.dev $(GDEV)
669	$(SETPDEV) $(DD)ijs $(ijs_)
670	$(ADDMOD) $(DD)ijs -include $(GLD)ijslib
671
672$(GLOBJ)gdevijs.$(OBJ) : $(GLSRC)gdevijs.c $(PDEVH) $(unistd__h) $(gp_h)\
673 $(GDEV)
674	$(CC_) $(I_)$(GLI_) $(II)$(IJSI_)$(_I) $(II)$(IJSI_)$(D)..$(_I) \
675            $(GLF_) $(GLO_)gdevijs.$(OBJ) $(C_) $(GLSRC)gdevijs.c
676
677# Please see ijs.mak for the Makefile fragment which builds the IJS
678# library.
679
680
681### -------------------------- The rinkj device ------------------------ ###
682
683RINKJ_SRCDIR=$(GLSRC)rinkj
684RINKJ_SRC=$(RINKJ_SRCDIR)$(D)
685RINKJ_OBJ=$(GLOBJ)
686RINKJ_O_=$(O_)$(RINKJ_OBJ)
687
688RINKJ_INCL=$(I_)$(RINKJ_SRCDIR)$(_I)
689RINKJ_CC=$(CC_) $(RINKJ_INCL)
690
691rinkj_core=$(RINKJ_OBJ)evenbetter-rll.$(OBJ) \
692 $(RINKJ_OBJ)rinkj-byte-stream.$(OBJ) $(RINKJ_OBJ)rinkj-device.$(OBJ) \
693 $(RINKJ_OBJ)rinkj-config.$(OBJ) $(RINKJ_OBJ)rinkj-dither.$(OBJ) \
694 $(RINKJ_OBJ)rinkj-epson870.$(OBJ) $(RINKJ_OBJ)rinkj-screen-eb.$(OBJ)
695
696$(RINKJ_OBJ)evenbetter-rll.$(OBJ) : $(RINKJ_SRC)evenbetter-rll.c
697	$(RINKJ_CC) $(RINKJ_O_)evenbetter-rll.$(OBJ) $(C_) $(RINKJ_SRC)evenbetter-rll.c
698
699$(RINKJ_OBJ)rinkj-byte-stream.$(OBJ) : $(RINKJ_SRC)rinkj-byte-stream.c
700	$(RINKJ_CC) $(RINKJ_O_)rinkj-byte-stream.$(OBJ) $(C_) $(RINKJ_SRC)rinkj-byte-stream.c
701
702$(RINKJ_OBJ)rinkj-device.$(OBJ) : $(RINKJ_SRC)rinkj-device.c
703	$(RINKJ_CC) $(RINKJ_O_)rinkj-device.$(OBJ) $(C_) $(RINKJ_SRC)rinkj-device.c
704
705$(RINKJ_OBJ)rinkj-config.$(OBJ) : $(RINKJ_SRC)rinkj-config.c
706	$(RINKJ_CC) $(RINKJ_O_)rinkj-config.$(OBJ) $(C_) $(RINKJ_SRC)rinkj-config.c
707
708$(RINKJ_OBJ)rinkj-dither.$(OBJ) : $(RINKJ_SRC)rinkj-dither.c
709	$(RINKJ_CC) $(RINKJ_O_)rinkj-dither.$(OBJ) $(C_) $(RINKJ_SRC)rinkj-dither.c
710
711$(RINKJ_OBJ)rinkj-epson870.$(OBJ) : $(RINKJ_SRC)rinkj-epson870.c
712	$(RINKJ_CC) $(RINKJ_O_)rinkj-epson870.$(OBJ) $(C_) $(RINKJ_SRC)rinkj-epson870.c
713
714$(RINKJ_OBJ)rinkj-screen-eb.$(OBJ) : $(RINKJ_SRC)rinkj-screen-eb.c
715	$(RINKJ_CC) $(RINKJ_O_)rinkj-screen-eb.$(OBJ) $(C_) $(RINKJ_SRC)rinkj-screen-eb.c
716
717rinkj_=$(GLOBJ)gdevrinkj.$(OBJ) $(rinkj_core)
718
719$(DD)rinkj.dev : $(DEVS_MAK) $(rinkj_) $(GLD)page.dev $(GDEV)
720	$(SETDEV) $(DD)rinkj $(rinkj_)
721
722$(GLOBJ)gdevrinkj.$(OBJ) : $(GLSRC)gdevrinkj.c $(PDEVH) $(math__h)\
723 $(gdevdcrd_h) $(gscrd_h) $(gscrdp_h) $(gsparam_h) $(gxlum_h)\
724 $(gxdcconv_h) $(gscms_h) $(gsicc_cache_h) $(gsicc_manage_h)
725	$(GLCC) $(GLO_)gdevrinkj.$(OBJ) $(C_) $(GLSRC)gdevrinkj.c
726
727
728###### ------------------- High-level file formats ------------------- ######
729
730# Support for PostScript and PDF
731
732gdevpsdf_h=$(GLSRC)gdevpsdf.h $(gdevvec_h) $(gsparam_h)\
733 $(sa85x_h) $(scfx_h) $(spsdf_h) $(strimpl_h)
734gdevpsds_h=$(GLSRC)gdevpsds.h $(strimpl_h) $(gsiparam_h)
735
736psdf_1=$(GLOBJ)gdevpsdi.$(OBJ) $(GLOBJ)gdevpsdp.$(OBJ)
737psdf_2=$(GLOBJ)gdevpsds.$(OBJ) $(GLOBJ)gdevpsdu.$(OBJ)
738psdf_3=$(GLOBJ)scfparam.$(OBJ) $(GLOBJ)sdcparam.$(OBJ) $(GLOBJ)sdeparam.$(OBJ)
739psdf_4=$(GLOBJ)spprint.$(OBJ) $(GLOBJ)spsdf.$(OBJ) $(GLOBJ)sstring.$(OBJ)
740psdf_5=$(GLOBJ)gsparamx.$(OBJ)
741psdf_=$(psdf_1) $(psdf_2) $(psdf_3) $(psdf_4) $(psdf_5)
742psdf_inc1=$(GLD)vector.dev $(GLD)pngp.dev $(GLD)seexec.dev
743psdf_inc2=$(GLD)sdcte.dev $(GLD)slzwe.dev $(GLD)szlibe.dev
744psdf_inc=$(psdf_inc1) $(psdf_inc2)
745$(DD)psdf.dev : $(DEVS_MAK) $(ECHOGS_XE) $(psdf_) $(psdf_inc) $(GDEV)
746	$(SETMOD) $(DD)psdf $(psdf_1)
747	$(ADDMOD) $(DD)psdf -obj $(psdf_2)
748	$(ADDMOD) $(DD)psdf -obj $(psdf_3)
749	$(ADDMOD) $(DD)psdf -obj $(psdf_4)
750	$(ADDMOD) $(DD)psdf -obj $(psdf_5)
751	$(ADDMOD) $(DD)psdf -include $(psdf_inc1)
752	$(ADDMOD) $(DD)psdf -include $(psdf_inc2)
753
754$(GLOBJ)gdevpsdi.$(OBJ) : $(GLSRC)gdevpsdi.c $(GXERR)\
755 $(jpeglib__h) $(math__h) $(stdio__h)\
756 $(gscspace_h)\
757 $(scfx_h) $(slzwx_h) $(spngpx_h)\
758 $(strimpl_h) $(szlibx_h)\
759 $(gdevpsdf_h) $(gdevpsds_h) $(gxdevmem_h) $(gxcspace_h) $(gxparamx_h)\
760 $(sjbig2_luratech_h) $(sjpx_luratech_h) $(gsicc_manage_h)
761	$(GDEVLWFJB2JPXCC) $(GLO_)gdevpsdi.$(OBJ) $(C_) $(GLSRC)gdevpsdi.c
762
763$(GLOBJ)gdevpsdp.$(OBJ) : $(GLSRC)gdevpsdp.c $(GDEVH)\
764 $(string__h) $(jpeglib__h)\
765 $(scfx_h) $(sdct_h) $(slzwx_h) $(srlx_h) $(strimpl_h) $(szlibx_h)\
766 $(gsparamx_h) $(gsutil_h) $(gdevpsdf_h)\
767 $(sjbig2_luratech_h) $(sjpx_luratech_h)
768	$(GDEVLWFJB2JPXCC) $(GLO_)gdevpsdp.$(OBJ) $(C_) $(GLSRC)gdevpsdp.c
769
770$(GLOBJ)gdevpsds.$(OBJ) : $(GLSRC)gdevpsds.c $(GX) $(memory__h)\
771 $(gserrors_h) $(gxdcconv_h) $(gdevpsds_h) $(gxbitmap_h)\
772 $(gxcspace_h) $(gsdcolor_h) $(gscspace_h) $(gxdevcli_h)
773	$(GLCC) $(GLO_)gdevpsds.$(OBJ) $(C_) $(GLSRC)gdevpsds.c
774
775$(GLOBJ)gdevpsdu.$(OBJ) : $(GLSRC)gdevpsdu.c $(GXERR)\
776 $(jpeglib__h) $(memory__h) $(stdio__h)\
777 $(sa85x_h) $(scfx_h) $(sdct_h) $(sjpeg_h) $(strimpl_h)\
778 $(gdevpsdf_h) $(spprint_h) $(gsovrc_h)
779	$(GLJCC) $(GLO_)gdevpsdu.$(OBJ) $(C_) $(GLSRC)gdevpsdu.c
780
781# PostScript and EPS writers
782
783pswrite_=$(GLOBJ)gdevps.$(OBJ) $(GLOBJ)gdevpsu.$(OBJ) $(GLOBJ)scantab.$(OBJ) $(GLOBJ)sfilter2.$(OBJ)
784$(DD)epswrite.dev : $(DEVS_MAK) $(ECHOGS_XE) $(pswrite_) $(GLD)psdf.dev $(GDEV)
785	$(SETDEV2) $(DD)epswrite $(pswrite_)
786	$(ADDMOD) $(DD)epswrite -include $(GLD)psdf
787
788$(DD)pswrite.dev : $(DEVS_MAK) $(ECHOGS_XE) $(pswrite_) $(GLD)psdf.dev $(GDEV)
789	$(SETDEV2) $(DD)pswrite $(pswrite_)
790	$(ADDMOD) $(DD)pswrite -include $(GLD)psdf
791
792$(GLOBJ)gdevps.$(OBJ) : $(GLSRC)gdevps.c $(GDEV)\
793 $(math__h) $(memory__h) $(string__h) $(time__h)\
794 $(gscdefs_h) $(gscspace_h) $(gsline_h) $(gsparam_h) $(gsiparam_h) $(gsmatrix_h)\
795 $(gxdcolor_h) $(gxpath_h)\
796 $(sa85x_h) $(sstring_h) $(strimpl_h)\
797 $(gdevpsdf_h) $(gdevpsu_h) $(spprint_h)
798	$(GLCC) $(GLO_)gdevps.$(OBJ) $(C_) $(GLSRC)gdevps.c
799
800# Plain text writer
801
802gdevagl_h=$(GLSRC)gdevagl.h
803
804txtwrite_=$(GLOBJ)gdevtxtw.$(OBJ) $(GLOBJ)gdevagl.$(OBJ)
805
806$(DD)txtwrite.dev : $(DEVS_MAK) $(ECHOGS_XE) $(txtwrite_) $(GDEV)\
807 $(gdevagl_h)
808	$(SETDEV2) $(DD)txtwrite $(txtwrite_)
809
810$(GLOBJ)gdevtxtw.$(OBJ) : $(GLSRC)gdevtxtw.c $(GDEV)\
811  $(memory__h) $(string__h) $(gp_h) $(gsparam_h) $(gsutil_h) \
812  $(gsdevice_h) $(gxfont_h) $(gxfont0_h) $(gstext_h) $(gxfcid_h)\
813  $(gxistate_h) $(gxpath_h) $(gdevagl_h)
814	$(GLCC) $(GLO_)gdevtxtw.$(OBJ) $(C_) $(GLSRC)gdevtxtw.c
815
816$(GLOBJ)gdevagl.$(OBJ) : $(GLSRC)gdevagl.c $(GDEV)\
817 $(gdevagl_h)
818	$(GLCC) $(GLO_)gdevagl.$(OBJ) $(C_) $(GLSRC)gdevagl.c
819
820
821################ BEGIN PDF WRITER ################
822
823# PDF writer
824# Note that gs_pdfwr.ps will only actually be loaded if the configuration
825# includes a PostScript interpreter.
826
827# We reserve slots here for gdevpdfa...z, just in case we need them.
828pdfwrite1_=$(GLOBJ)gdevpdf.$(OBJ) $(GLOBJ)gdevpdfb.$(OBJ)
829pdfwrite2_=$(GLOBJ)gdevpdfc.$(OBJ) $(GLOBJ)gdevpdfd.$(OBJ) $(GLOBJ)gdevpdfe.$(OBJ)
830pdfwrite3_=$(GLOBJ)gdevpdfg.$(OBJ)
831pdfwrite4_=$(GLOBJ)gdevpdfi.$(OBJ) $(GLOBJ)gdevpdfj.$(OBJ) $(GLOBJ)gdevpdfk.$(OBJ)
832pdfwrite5_=$(GLOBJ)gdevpdfm.$(OBJ)
833pdfwrite6_=$(GLOBJ)gdevpdfo.$(OBJ) $(GLOBJ)gdevpdfp.$(OBJ) $(GLOBJ)gdevpdft.$(OBJ)
834pdfwrite7_=$(GLOBJ)gdevpdfr.$(OBJ)
835pdfwrite8_=$(GLOBJ)gdevpdfu.$(OBJ) $(GLOBJ)gdevpdfv.$(OBJ) $(GLOBJ)gdevagl.$(OBJ)
836pdfwrite9_= $(GLOBJ)ConvertUTF.$(OBJ)
837pdfwrite10_=$(GLOBJ)gsflip.$(OBJ)
838pdfwrite11_=$(GLOBJ)scantab.$(OBJ) $(GLOBJ)sfilter2.$(OBJ)
839pdfwrite_=$(pdfwrite1_) $(pdfwrite2_) $(pdfwrite3_) $(pdfwrite4_)\
840 $(pdfwrite5_) $(pdfwrite6_) $(pdfwrite7_) $(pdfwrite8_) $(pdfwrite9_)\
841 $(pdfwrite10_) $(pdfwrite11_)
842
843# Since ps2write actually is a clone of pdfwrite,
844# we just depend on it.
845$(DD)ps2write.dev : $(DEVS_MAK) $(DD)pdfwrite.dev $(GDEV)
846	$(SETDEV2) $(DD)ps2write
847	$(ADDMOD) $(DD)ps2write -include $(DD)pdfwrite.dev
848
849# Note that for ps2pdf operation, we need to parse DSC comments to set
850# the Orientation (Page dict /Rotate value). This is not part of the
851# pdfwrite device, but part of the PS interpreter so that the pdfwrite
852# device can be used with other top level interpreters (such as PCL).
853$(DD)pdfwrite.dev : $(DEVS_MAK) $(ECHOGS_XE) $(pdfwrite_)\
854 $(GLD)cmyklib.dev $(GLD)cfe.dev $(GLD)lzwe.dev\
855 $(GLD)rle.dev $(GLD)sdcte.dev $(GLD)sdeparam.dev $(GLD)smd5.dev\
856 $(GLD)szlibe.dev $(GLD)psdf.dev $(GLD)sarc4.dev $(DD)pdtext.dev $(GDEV)
857	$(SETDEV2) $(DD)pdfwrite $(pdfwrite1_)
858	$(ADDMOD) $(DD)pdfwrite $(pdfwrite2_)
859	$(ADDMOD) $(DD)pdfwrite $(pdfwrite3_)
860	$(ADDMOD) $(DD)pdfwrite $(pdfwrite4_)
861	$(ADDMOD) $(DD)pdfwrite $(pdfwrite5_)
862	$(ADDMOD) $(DD)pdfwrite $(pdfwrite6_)
863	$(ADDMOD) $(DD)pdfwrite $(pdfwrite7_)
864	$(ADDMOD) $(DD)pdfwrite $(pdfwrite8_)
865	$(ADDMOD) $(DD)pdfwrite $(pdfwrite9_)
866	$(ADDMOD) $(DD)pdfwrite $(pdfwrite10_)
867	$(ADDMOD) $(DD)pdfwrite $(pdfwrite11_)
868	$(ADDMOD) $(DD)pdfwrite -ps gs_pdfwr
869	$(ADDMOD) $(DD)pdfwrite -include $(GLD)cmyklib $(GLD)cfe $(GLD)lzwe
870	$(ADDMOD) $(DD)pdfwrite -include $(GLD)rle $(GLD)sdcte $(GLD)sdeparam
871	$(ADDMOD) $(DD)pdfwrite -include $(GLD)smd5 $(GLD)szlibe $(GLD)sarc4.dev
872	$(ADDMOD) $(DD)pdfwrite -include $(GLD)psdf
873	$(ADDMOD) $(DD)pdfwrite -include $(DD)pdtext
874
875gdevpdfb_h=$(GLSRC)gdevpdfb.h
876gdevpdfc_h=$(GLSRC)gdevpdfc.h
877gdevpdfg_h=$(GLSRC)gdevpdfg.h $(gscspace_h)
878gdevpdfo_h=$(GLSRC)gdevpdfo.h $(gsparam_h)
879gdevpdfx_h=$(GLSRC)gdevpdfx.h\
880 $(gsparam_h) $(gsuid_h) $(gxdevice_h) $(gxfont_h) $(gxline_h)\
881 $(spprint_h) $(stream_h) $(gdevpsdf_h) $(gxdevmem_h) $(sarc4_h)
882
883opdfread_h=$(GLSRC)opdfread.h
884gs_mro_e_h=$(GLSRC)gs_mro_e.h
885gs_mgl_e_h=$(GLSRC)gs_mgl_e.h
886
887$(GLOBJ)gdevpdf.$(OBJ) : $(GLSRC)gdevpdf.c $(GDEVH)\
888 $(fcntl__h) $(memory__h) $(string__h) $(time__h) $(unistd__h) $(gp_h)\
889 $(gdevpdfg_h) $(gdevpdfo_h) $(gdevpdfx_h) $(smd5_h) $(sarc4_h)\
890 $(gdevpdfb_h) $(gscms_h)
891	$(GLCC) $(GLO_)gdevpdf.$(OBJ) $(C_) $(GLSRC)gdevpdf.c
892
893$(GLOBJ)gdevpdfb.$(OBJ) : $(GLSRC)gdevpdfb.c\
894 $(string__h) $(gx_h)\
895 $(gdevpdfg_h) $(gdevpdfo_h) $(gdevpdfx_h)\
896 $(gserrors_h) $(gxcspace_h) $(gxdcolor_h) $(gxpcolor_h) $(gxhldevc_h)\
897 $(gsptype1_h)
898	$(GLCC) $(GLO_)gdevpdfb.$(OBJ) $(C_) $(GLSRC)gdevpdfb.c
899
900$(GLOBJ)gdevpdfc.$(OBJ) : $(GLSRC)gdevpdfc.c $(GXERR) $(math__h) $(memory__h)\
901 $(gdevpdfc_h) $(gdevpdfg_h) $(gdevpdfo_h) $(gdevpdfx_h)\
902 $(gscie_h) $(gscindex_h) $(gscspace_h) $(gscdevn_h) $(gscsepr_h) $(gsicc_h)\
903 $(sstring_h) $(stream_h) $(strimpl_h) $(gxcspace_h) $(gxcdevn_h) $(gscspace_h)\
904 $(gsicc_manage_h)
905	$(GLCC) $(GLO_)gdevpdfc.$(OBJ) $(C_) $(GLSRC)gdevpdfc.c
906
907$(GLOBJ)gdevpdfd.$(OBJ) : $(GLSRC)gdevpdfd.c $(math__h) $(memory__h)\
908 $(gx_h) $(gxdevice_h) $(gxfixed_h) $(gxistate_h) $(gxpaint_h)\
909 $(gxcoord_h) $(gxdevmem_h) $(gxcolor2_h) $(gxhldevc_h)\
910 $(gsstate_h) $(gserrors_h) $(gsptype2_h) $(gsshade_h)\
911 $(gzpath_h) $(gzcpath_h) $(gdevpdfx_h) $(gdevpdfg_h) $(gdevpdfo_h) $(gsutil_h)
912	$(GLCC) $(GLO_)gdevpdfd.$(OBJ) $(C_) $(GLSRC)gdevpdfd.c
913
914$(GLOBJ)gdevpdfe.$(OBJ) : $(GLSRC)gdevpdfe.c\
915 $(gx_h) $(gserrors_h) $(string__h) $(time__h) $(stream_h) $(gp_h) $(smd5_h) $(gscdefs_h)\
916 $(gdevpdfx_h) $(gdevpdfg_h) $(gdevpdfo_h) $(gdevpdtf_h) $(ConvertUTF_h)
917	$(GLCC) $(GLO_)gdevpdfe.$(OBJ) $(C_) $(GLSRC)gdevpdfe.c
918
919$(GLOBJ)gdevpdfg.$(OBJ) : $(GLSRC)gdevpdfg.c $(GXERR) $(math__h) $(string__h)\
920 $(memory__h) $(gdevpdfg_h) $(gdevpdfo_h) $(gdevpdfx_h)\
921 $(gsfunc0_h) $(gsstate_h) $(gxdcolor_h) $(gxpcolor_h) $(gxcolor2_h) $(gsptype2_h)\
922 $(gxbitmap_h) $(gxdht_h) $(gxfarith_h) $(gxfmap_h) $(gxht_h) $(gxistate_h)\
923 $(gzht_h) $(gsicc_manage_h)
924	$(GLCC) $(GLO_)gdevpdfg.$(OBJ) $(C_) $(GLSRC)gdevpdfg.c
925
926$(GLOBJ)gdevpdfi.$(OBJ) : $(GLSRC)gdevpdfi.c $(memory__h) $(math__h)\
927 $(gx_h)\
928 $(gserrors_h) $(gsdevice_h) $(gsflip_h) $(gsiparm4_h) $(gsstate_h) $(gscolor2_h)\
929 $(gdevpdfx_h) $(gdevpdfg_h) $(gdevpdfo_h)\
930 $(gxcspace_h) $(gximage3_h) $(gximag3x_h) $(gxdcolor_h) $(gxpcolor_h)\
931 $(gxhldevc_h) $(gsicc_manage_h)
932	$(GLCC) $(GLO_)gdevpdfi.$(OBJ) $(C_) $(GLSRC)gdevpdfi.c
933
934$(GLOBJ)gdevpdfj.$(OBJ) : $(GLSRC)gdevpdfj.c\
935 $(memory__h) $(string__h) $(gx_h) $(gserrors_h)\
936 $(gdevpdfx_h) $(gdevpdfg_h) $(gdevpdfo_h) $(gxcspace_h)\
937 $(gsiparm4_h) $(gdevpsds_h) $(spngpx_h)
938	$(GLJCC) $(GLO_)gdevpdfj.$(OBJ) $(C_) $(GLSRC)gdevpdfj.c
939
940$(GLOBJ)gdevpdfk.$(OBJ) : $(GLSRC)gdevpdfk.c $(GXERR) $(math__h) $(memory__h)\
941 $(gdevpdfc_h) $(gdevpdfg_h) $(gdevpdfo_h) $(gdevpdfx_h)\
942 $(gsicc_h) $(gxcie_h) $(gxcspace_h)\
943 $(stream_h) $(strimpl_h)
944	$(GLCC) $(GLO_)gdevpdfk.$(OBJ) $(C_) $(GLSRC)gdevpdfk.c
945
946$(GLOBJ)gdevpdfm.$(OBJ) : $(GLSRC)gdevpdfm.c\
947 $(math__h) $(memory__h) $(string__h) $(gx_h)\
948 $(gdevpdfo_h) $(gdevpdfx_h) $(gserrors_h) $(gsutil_h)\
949 $(szlibx_h) $(slzwx_h)
950	$(GLCC) $(GLO_)gdevpdfm.$(OBJ) $(C_) $(GLSRC)gdevpdfm.c
951
952$(GLOBJ)gdevpdfo.$(OBJ) : $(GLSRC)gdevpdfo.c $(memory__h) $(string__h)\
953 $(gx_h)\
954 $(gdevpdfo_h) $(gdevpdfx_h) $(gserrors_h) $(gsparam_h) $(gsutil_h)\
955 $(sa85x_h) $(sarc4_h) $(strimpl_h)
956	$(GLCC) $(GLO_)gdevpdfo.$(OBJ) $(C_) $(GLSRC)gdevpdfo.c
957
958$(GLOBJ)gdevpdfp.$(OBJ) : $(GLSRC)gdevpdfp.c $(memory__h) $(string__h) $(gx_h)\
959 $(gdevpdfo_h) $(gdevpdfg_h) $(gdevpdfx_h) $(gserrors_h) $(gsparamx_h)
960	$(GLCC) $(GLO_)gdevpdfp.$(OBJ) $(C_) $(GLSRC)gdevpdfp.c
961
962$(GLOBJ)gdevpdfr.$(OBJ) : $(GLSRC)gdevpdfr.c $(memory__h) $(string__h)\
963 $(gx_h)\
964 $(gdevpdfo_h) $(gdevpdfx_h) $(gserrors_h) $(gsutil_h)\
965 $(scanchar_h) $(sstring_h) $(strimpl_h)
966	$(GLCC) $(GLO_)gdevpdfr.$(OBJ) $(C_) $(GLSRC)gdevpdfr.c
967
968$(GLOBJ)gdevpdft.$(OBJ) : $(GLSRC)gdevpdft.c $(string__h)\
969 $(gx_h) $(gserrors_h) $(gstrans_h) $(gscolor2_h) $(gzstate_h)\
970 $(gdevpdfx_h) $(gdevpdfg_h) $(gdevpdfo_h) $(gsccolor_h)
971	$(GLCC) $(GLO_)gdevpdft.$(OBJ) $(C_) $(GLSRC)gdevpdft.c
972
973$(GLOBJ)gdevpdfu.$(OBJ) : $(GLSRC)gdevpdfu.c $(GXERR)\
974 $(jpeglib__h) $(memory__h) $(string__h)\
975 $(gdevpdfo_h) $(gdevpdfx_h) $(gdevpdfg_h) $(gdevpdtd_h) $(gscdefs_h)\
976 $(gsdsrc_h) $(gsfunc_h) $(gsfunc3_h)\
977 $(sa85x_h) $(scfx_h) $(sdct_h) $(slzwx_h) $(spngpx_h)\
978 $(srlx_h) $(sarc4_h) $(smd5_h) $(sstring_h) $(strimpl_h) $(szlibx_h)\
979 $(strmio_h) $(sjbig2_luratech_h) $(sjpx_luratech_h)\
980 $(opdfread_h) $(gdevagl_h) $(gs_mro_e_h) $(gs_mgl_e_h)
981	$(GDEVLWFJB2JPXCC) $(GLO_)gdevpdfu.$(OBJ) $(C_) $(GLSRC)gdevpdfu.c
982
983$(GLOBJ)gdevpdfv.$(OBJ) : $(GLSRC)gdevpdfv.c $(GXERR) $(math__h) $(string__h)\
984 $(gdevpdfg_h) $(gdevpdfo_h) $(gdevpdfx_h)\
985 $(gscindex_h) $(gscoord_h) $(gsiparm3_h) $(gsmatrix_h) $(gsptype2_h)\
986 $(gxcolor2_h) $(gxdcolor_h) $(gxpcolor_h) $(gxshade_h)
987	$(GLCC) $(GLO_)gdevpdfv.$(OBJ) $(C_) $(GLSRC)gdevpdfv.c
988
989$(GLOBJ)ConvertUTF.$(OBJ) : $(GLSRC)ConvertUTF.c $(ConvertUTF_h)
990	$(GLCC) $(GLO_)ConvertUTF.$(OBJ) $(C_) $(GLSRC)ConvertUTF.c
991
992######## pdfwrite text
993
994# The text facilities for the PDF writer are so large and complex that
995# we give them their own module name and (for the new code) file name prefix.
996# However, logically they are part of pdfwrite and cannot be used separately.
997
998$(DD)pdtext.dev : $(DEVS_MAK) $(DD)pdxtext.dev $(GDEV)
999	$(SETMOD) $(DD)pdtext -include $(DD)pdxtext
1000
1001# For a code roadmap, see gdevpdtx.h.
1002
1003gdevpdt_h=$(GLSRC)gdevpdt.h
1004gdevpdtx_h=$(GLSRC)gdevpdtx.h $(gdevpdt_h)
1005gdevpdtb_h=$(GLSRC)gdevpdtb.h $(gdevpdtx_h)
1006gdevpdtd_h=$(GLSRC)gdevpdtd.h $(gdevpdtb_h) $(gdevpdtx_h)
1007gdevpdtf_h=$(GLSRC)gdevpdtf.h $(gdevpdtx_h)
1008gdevpdti_h=$(GLSRC)gdevpdti.h $(gdevpdt_h)
1009gdevpdts_h=$(GLSRC)gdevpdts.h $(gsmatrix_h)
1010gdevpdtt_h=$(GLSRC)gdevpdtt.h
1011gdevpdtv_h=$(GLSRC)gdevpdtv.h
1012gdevpdtw_h=$(GLSRC)gdevpdtw.h
1013whitelst_h=$(GLSRC)whitelst.h
1014
1015# We reserve space for all of a..z, just in case.
1016pdxtext_ab=$(GLOBJ)gdevpdt.$(OBJ) $(GLOBJ)gdevpdtb.$(OBJ)
1017pdxtext_cde=$(GLOBJ)gdevpdtc.$(OBJ) $(GLOBJ)gdevpdtd.$(OBJ) $(GLOBJ)gdevpdte.$(OBJ)
1018pdxtext_fgh=$(GLOBJ)gdevpdtf.$(OBJ)
1019pdxtext_ijk=$(GLOBJ)gdevpdti.$(OBJ)
1020pdxtext_lmn=
1021pdxtext_opq=
1022pdxtext_rst=$(GLOBJ)gdevpdts.$(OBJ) $(GLOBJ)gdevpdtt.$(OBJ)
1023pdxtext_uvw=$(GLOBJ)gdevpdtv.$(OBJ) $(GLOBJ)gdevpdtw.$(OBJ) $(GLOBJ)whitelst.$(OBJ)
1024pdxtext_xyz=
1025pdxtext_=$(pdxtext_ab) $(pdxtext_cde) $(pdxtext_fgh) $(pdxtext_ijk)\
1026 $(pdxtext_lmn) $(pdxtext_opq) $(pdxtext_rst) $(pdxtext_uvw) $(pdxtext_xyz)\
1027 $(GLOBJ)gsfont0c.$(OBJ)
1028$(DD)pdxtext.dev : $(DEVS_MAK) $(pdxtext_) $(GDEV)\
1029 $(GLD)fcopy.dev $(GLD)psf.dev
1030	$(SETMOD) $(DD)pdxtext $(pdxtext_ab)
1031	$(ADDMOD) $(DD)pdxtext $(pdxtext_cde)
1032	$(ADDMOD) $(DD)pdxtext $(pdxtext_fgh)
1033	$(ADDMOD) $(DD)pdxtext $(pdxtext_ijk)
1034	$(ADDMOD) $(DD)pdxtext $(pdxtext_lmn)
1035	$(ADDMOD) $(DD)pdxtext $(pdxtext_opq)
1036	$(ADDMOD) $(DD)pdxtext $(pdxtext_rst)
1037	$(ADDMOD) $(DD)pdxtext $(pdxtext_uvw)
1038	$(ADDMOD) $(DD)pdxtext $(pdxtext_xyz)
1039	$(ADDMOD) $(DD)pdxtext $(GLOBJ)gsfont0c.$(OBJ)
1040	$(ADDMOD) $(DD)pdxtext -include $(GLD)fcopy $(GLD)psf
1041
1042$(GLOBJ)gdevpdt.$(OBJ) : $(GLSRC)gdevpdt.c $(gx_h) $(gxpath_h) $(memory__h)\
1043 $(gdevpdfx_h) $(gdevpdfg_h) $(gdevpdtf_h) $(gdevpdti_h) $(gdevpdtx_h) $(gdevpdt_h)
1044	$(GLCC) $(GLO_)gdevpdt.$(OBJ) $(C_) $(GLSRC)gdevpdt.c
1045
1046$(GLOBJ)gdevpdtb.$(OBJ) : $(GLSRC)gdevpdtb.c $(memory__h) $(ctype__h) $(string__h)\
1047 $(memory__h) $(ctype__h) $(string__h) $(gx_h) $(gserrors_h) $(gsutil_h) $(gxfcid_h)\
1048 $(gxfcopy_h) $(gxfont_h) $(gxfont42_h) $(gdevpsf_h) $(gdevpdfx_h) $(gdevpdfo_h)\
1049 $(gdevpdtb_h) $(gdevpdfg_h) $(gdevpdtf_h) $(smd5_h)
1050	$(GLCC) $(GLO_)gdevpdtb.$(OBJ) $(C_) $(GLSRC)gdevpdtb.c
1051
1052$(GLOBJ)gdevpdtc.$(OBJ) : $(GLSRC)gdevpdtc.c $(gx_h) $(memory__h) $(string__h)\
1053 $(gserrors_h) $(gxfcmap_h) $(gxfont_h) $(gxfont0_h) $(gxfont0c_h)\
1054 $(gzpath_h) $(gxchar_h) $(gdevpsf_h) $(gdevpdfx_h) $(gdevpdtx_h)\
1055 $(gdevpdtd_h) $(gdevpdtf_h) $(gdevpdts_h) $(gdevpdtt_h)
1056	$(GLCC) $(GLO_)gdevpdtc.$(OBJ) $(C_) $(GLSRC)gdevpdtc.c
1057
1058$(GLOBJ)gdevpdte.$(OBJ) : $(GLSRC)gdevpdte.c $(gx_h) $(math__h) $(memory__h) $(string__h)\
1059 $(gserrors_h) $(gsutil_h) $(gxfcmap_h) $(gxfcopy_h) $(gxfont_h) \
1060 $(gxfont0_h) $(gxfont0c_h) $(gxpath_h) $(gdevpsf_h) $(gdevpdfx_h) \
1061 $(gdevpdfg_h)  $(gdevpdfo_h) $(gdevpdtx_h) $(gdevpdtd_h) $(gdevpdtf_h) $(gdevpdts_h) \
1062 $(gdevpdtt_h)
1063	$(GLCC) $(GLO_)gdevpdte.$(OBJ) $(C_) $(GLSRC)gdevpdte.c
1064
1065$(GLOBJ)gdevpdtd.$(OBJ) : $(GLSRC)gdevpdtd.c $(math__h) $(memory__h) $(gx_h)\
1066 $(gserrors_h) $(gsrect_h) $(gscencs_h)\
1067 $(gdevpdfo_h) $(gdevpdfx_h)\
1068 $(gdevpdtb_h) $(gdevpdtd_h) $(gdevpdtf_h)
1069	$(GLCC) $(GLO_)gdevpdtd.$(OBJ) $(C_) $(GLSRC)gdevpdtd.c
1070
1071$(GLOBJ)gdevpdtf.$(OBJ) : $(GLSRC)gdevpdtf.c $(gx_h) $(memory__h)\
1072 $(string__h) $(gserrors_h) $(gsutil_h)\
1073 $(gxfcache_h) $(gxfcid_h) $(gxfcmap_h) $(gxfcopy_h) $(gxfont_h) $(gxfont1_h)\
1074 $(gdevpsf_h) $(gdevpdfx_h) $(gdevpdtb_h) $(gdevpdtd_h) $(gdevpdtf_h) $(gdevpdtw_h)\
1075 $(gdevpdti_h)
1076	$(GLCC) $(GLO_)gdevpdtf.$(OBJ) $(C_) $(GLSRC)gdevpdtf.c
1077
1078$(GLOBJ)gdevpdti.$(OBJ) : $(GLSRC)gdevpdti.c $(memory__h) $(string__h) $(gx_h)\
1079 $(gserrors_h) $(gsutil_h)\
1080 $(gdevpdfx_h) $(gdevpdfg_h)\
1081 $(gdevpdtf_h) $(gdevpdti_h) $(gdevpdts_h) $(gdevpdtw_h) $(gdevpdtt_h) $(gdevpdfo_h)
1082	$(GLCC) $(GLO_)gdevpdti.$(OBJ) $(C_) $(GLSRC)gdevpdti.c
1083
1084$(GLOBJ)gdevpdts.$(OBJ) : $(GLSRC)gdevpdts.c $(gx_h) $(math__h) $(memory__h)\
1085 $(gserrors_h) $(gdevpdfx_h) $(gdevpdfg_h) $(gdevpdtx_h) $(gdevpdtf_h)\
1086 $(gdevpdts_h) $(gdevpdtt_h)
1087	$(GLCC) $(GLO_)gdevpdts.$(OBJ) $(C_) $(GLSRC)gdevpdts.c
1088
1089$(GLOBJ)gdevpdtt.$(OBJ) : $(GLSRC)gdevpdtt.c $(gx_h) $(math__h) $(string__h)\
1090 $(gserrors_h) $(gsencs_h) $(gscedata_h) $(gsmatrix_h) $(gzstate_h)\
1091 $(gxfcache_h) $(gxfont_h) $(gxfont0_h) $(gxfcid_h) $(gxfcopy_h)\
1092 $(gxfcmap_h) $(gxpath_h) $(gxchar_h) $(gxstate_h) $(gdevpdfx_h) $(gdevpdfg_h)\
1093 $(gdevpdfo_h) $(gdevpdtx_h) $(gdevpdtd_h) $(gdevpdtf_h) $(gdevpdts_h) $(gdevpdtt_h)\
1094 $(gdevpdti_h) $(gxhldevc_h)
1095	$(GLCC) $(GLO_)gdevpdtt.$(OBJ) $(C_) $(GLSRC)gdevpdtt.c
1096
1097$(GLOBJ)gdevpdtv.$(OBJ) : $(GLSRC)gdevpdtv.c $(gx_h) $(gdevpdtv_h)
1098	$(GLCC) $(GLO_)gdevpdtv.$(OBJ) $(C_) $(GLSRC)gdevpdtv.c
1099
1100$(GLOBJ)gdevpdtw.$(OBJ) : $(GLSRC)gdevpdtw.c $(gx_h) $(gserrors_h) $(memory__h)\
1101 $(gxfcmap_h) $(gxfont_h) $(gxfcopy_h) $(gscencs_h)\
1102 $(gdevpsf_h) $(gdevpdfx_h) $(gdevpdfo_h)\
1103 $(gdevpdtd_h) $(gdevpdtf_h) $(gdevpdti_h) $(gdevpdtw_h) $(gdevpdtv_h) $(sarc4_h)
1104	$(GLCC) $(GLO_)gdevpdtw.$(OBJ) $(C_) $(GLSRC)gdevpdtw.c
1105
1106$(GLOBJ)whitelst.$(OBJ) : $(GLSRC)whitelst.c $(whitelst_h)
1107	$(GLCC) $(GLO_)whitelst.$(OBJ) $(C_) $(GLSRC)whitelst.c
1108
1109################ END PDF WRITER ################
1110
1111# High-level PCL XL writer
1112
1113pxl_=$(GLOBJ)gdevpx.$(OBJ) $(GLOBJ)gdevpxut.$(OBJ) $(HPPCL)
1114$(DD)pxlmono.dev : $(DEVS_MAK) $(pxl_) $(GDEV) $(GLD)vector.dev
1115	$(SETDEV2) $(DD)pxlmono $(pxl_)
1116	$(ADDMOD) $(DD)pxlmono -include $(GLD)vector
1117
1118$(DD)pxlcolor.dev : $(DEVS_MAK) $(pxl_) $(GDEV) $(GLD)vector.dev
1119	$(SETDEV2) $(DD)pxlcolor $(pxl_)
1120	$(ADDMOD) $(DD)pxlcolor -include $(GLD)vector
1121
1122$(GLOBJ)gdevpx.$(OBJ) : $(GLSRC)gdevpx.c\
1123 $(math__h) $(memory__h) $(string__h)\
1124 $(gx_h) $(gsccolor_h) $(gsdcolor_h) $(gxiparam_h) $(gserrors_h)\
1125 $(gxcspace_h) $(gxdevice_h) $(gxpath_h)\
1126 $(gdevpxat_h) $(gdevpxen_h) $(gdevpxop_h) $(gdevpxut_h) $(gdevvec_h)\
1127 $(srlx_h) $(strimpl_h)
1128	$(GLCC) $(GLO_)gdevpx.$(OBJ) $(C_) $(GLSRC)gdevpx.c
1129
1130# Scalable Vector Graphics (SVG) output device
1131
1132svgwrite_=$(GLOBJ)gdevsvg.$(OBJ)
1133$(DD)svgwrite.dev : $(DEVS_MAK) $(svgwrite_) $(GDEV) $(GLD)vector.dev
1134	$(SETDEV2) $(DD)svgwrite $(svgwrite_)
1135	$(ADDMOD) $(DD)svgwrite -include $(GLD)vector
1136
1137$(GLOBJ)gdevsvg.$(OBJ) : $(GLSRC)gdevsvg.c $(gx_h) $(gdevvec_h)
1138	$(GLCC) $(GLO_)gdevsvg.$(OBJ) $(C_) $(GLSRC)gdevsvg.c
1139
1140###### --------------------- Raster file formats --------------------- ######
1141
1142### --------------------- The "plain bits" devices ---------------------- ###
1143
1144# This device also exercises the driver CRD facilities, which is why it
1145# needs some additional files.
1146
1147bit_=$(GLOBJ)gdevbit.$(OBJ) $(GLOBJ)gdevdcrd.$(OBJ)
1148
1149$(DD)bit.dev : $(DEVS_MAK) $(bit_) $(GLD)page.dev $(GLD)cielib.dev $(GDEV)
1150	$(SETPDEV2) $(DD)bit $(bit_)
1151	$(ADDMOD) $(DD)bit -include $(GLD)cielib
1152
1153$(DD)bitrgb.dev : $(DEVS_MAK) $(bit_) $(GLD)page.dev $(GLD)cielib.dev $(GDEV)
1154	$(SETPDEV2) $(DD)bitrgb $(bit_)
1155	$(ADDMOD) $(DD)bitrgb -include $(GLD)cielib
1156
1157$(DD)bitcmyk.dev : $(DEVS_MAK) $(bit_) $(GLD)page.dev $(GLD)cielib.dev $(GDEV)
1158	$(SETPDEV2) $(DD)bitcmyk $(bit_)
1159	$(ADDMOD) $(DD)bitcmyk -include $(GLD)cielib
1160
1161$(DD)bitrgbtags.dev : $(DEVS_MAK) $(bit_) $(GLD)page.dev $(GLD)cielib.dev\
1162 $(GDEV)
1163	$(SETPDEV2) $(DD)bitrgbtags $(bit_)
1164	$(ADDMOD) $(DD)bitrgbtags -include $(GLD)cielib
1165
1166$(GLOBJ)gdevbit.$(OBJ) : $(GLSRC)gdevbit.c $(PDEVH)\
1167 $(gsparam_h) $(gdevdcrd_h) $(gscrd_h) $(gscrdp_h) $(gxlum_h) $(gxdcconv_h)\
1168 $(gsutil_h)
1169	$(GLCC) $(GLO_)gdevbit.$(OBJ) $(C_) $(GLSRC)gdevbit.c
1170
1171### ------------------------- .BMP file formats ------------------------- ###
1172
1173gdevbmp_h=$(GLSRC)gdevbmp.h
1174
1175bmp_=$(GLOBJ)gdevbmp.$(OBJ) $(GLOBJ)gdevbmpc.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ)
1176
1177$(GLOBJ)gdevbmp.$(OBJ) : $(GLSRC)gdevbmp.c $(PDEVH) $(gdevbmp_h) $(gdevpccm_h)
1178	$(GLCC) $(GLO_)gdevbmp.$(OBJ) $(C_) $(GLSRC)gdevbmp.c
1179
1180$(GLOBJ)gdevbmpc.$(OBJ) : $(GLSRC)gdevbmpc.c $(PDEVH) $(gdevbmp_h)
1181	$(GLCC) $(GLO_)gdevbmpc.$(OBJ) $(C_) $(GLSRC)gdevbmpc.c
1182
1183$(DD)bmpmono.dev : $(DEVS_MAK) $(bmp_) $(GLD)page.dev $(GDEV)
1184	$(SETPDEV2) $(DD)bmpmono $(bmp_)
1185
1186$(DD)bmpgray.dev : $(DEVS_MAK) $(bmp_) $(GLD)page.dev $(GDEV)
1187	$(SETPDEV2) $(DD)bmpgray $(bmp_)
1188
1189$(DD)bmpsep1.dev : $(DEVS_MAK) $(bmp_) $(GLD)page.dev $(GDEV)
1190	$(SETPDEV2) $(DD)bmpsep1 $(bmp_)
1191
1192$(DD)bmpsep8.dev : $(DEVS_MAK) $(bmp_) $(GLD)page.dev $(GDEV)
1193	$(SETPDEV2) $(DD)bmpsep8 $(bmp_)
1194
1195$(DD)bmp16.dev : $(DEVS_MAK) $(bmp_) $(GLD)page.dev $(GDEV)
1196	$(SETPDEV2) $(DD)bmp16 $(bmp_)
1197
1198$(DD)bmp256.dev : $(DEVS_MAK) $(bmp_) $(GLD)page.dev $(GDEV)
1199	$(SETPDEV2) $(DD)bmp256 $(bmp_)
1200
1201$(DD)bmp16m.dev : $(DEVS_MAK) $(bmp_) $(GLD)page.dev $(GDEV)
1202	$(SETPDEV2) $(DD)bmp16m $(bmp_)
1203
1204$(DD)bmp32b.dev : $(DEVS_MAK) $(bmp_) $(GLD)page.dev $(GDEV)
1205	$(SETPDEV2) $(DD)bmp32b $(bmp_)
1206
1207### ------------- BMP driver that serves as demo of async rendering ---- ###
1208
1209bmpa_=$(GLOBJ)gdevbmpa.$(OBJ) $(GLOBJ)gdevbmpc.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ) $(GLOBJ)gdevppla.$(OBJ)
1210
1211$(GLOBJ)gdevbmpa.$(OBJ) : $(GLSRC)gdevbmpa.c $(AK) $(stdio__h)\
1212 $(gdevbmp_h) $(gdevprna_h) $(gdevpccm_h) $(gdevppla_h)\
1213 $(gserrors_h) $(gpsync_h)
1214	$(GLCC) $(GLO_)gdevbmpa.$(OBJ) $(C_) $(GLSRC)gdevbmpa.c
1215
1216$(DD)bmpamono.dev : $(DEVS_MAK) $(bmpa_) $(GLD)page.dev $(GLD)async.dev\
1217 $(GDEV)
1218	$(SETPDEV2) $(DD)bmpamono $(bmpa_)
1219	$(ADDMOD) $(DD)bmpamono -include $(GLD)async
1220
1221$(DD)bmpasep1.dev : $(DEVS_MAK) $(bmpa_) $(GLD)page.dev $(GLD)async.dev\
1222 $(GDEV)
1223	$(SETPDEV2) $(DD)bmpasep1 $(bmpa_)
1224	$(ADDMOD) $(DD)bmpasep1 -include $(GLD)async
1225
1226$(DD)bmpasep8.dev : $(DEVS_MAK) $(bmpa_) $(GLD)page.dev $(GLD)async.dev\
1227 $(GDEV)
1228	$(SETPDEV2) $(DD)bmpasep8 $(bmpa_)
1229	$(ADDMOD) $(DD)bmpasep8 -include $(GLD)async
1230
1231$(DD)bmpa16.dev : $(DEVS_MAK) $(bmpa_) $(GLD)page.dev $(GLD)async.dev\
1232 $(GDEV)
1233	$(SETPDEV2) $(DD)bmpa16 $(bmpa_)
1234	$(ADDMOD) $(DD)bmpa16 -include $(GLD)async
1235
1236$(DD)bmpa256.dev : $(DEVS_MAK) $(bmpa_) $(GLD)page.dev $(GLD)async.dev\
1237 $(GDEV)
1238	$(SETPDEV2) $(DD)bmpa256 $(bmpa_)
1239	$(ADDMOD) $(DD)bmpa256 -include $(GLD)async
1240
1241$(DD)bmpa16m.dev : $(DEVS_MAK) $(bmpa_) $(GLD)page.dev $(GLD)async.dev\
1242 $(GDEV)
1243	$(SETPDEV2) $(DD)bmpa16m $(bmpa_)
1244	$(ADDMOD) $(DD)bmpa16m -include $(GLD)async
1245
1246$(DD)bmpa32b.dev : $(DEVS_MAK) $(bmpa_) $(GLD)page.dev $(GLD)async.dev\
1247 $(GDEV)
1248	$(SETPDEV2) $(DD)bmpa32b $(bmpa_)
1249	$(ADDMOD) $(DD)bmpa32b -include $(GLD)async
1250
1251### ------------------------ The DeviceN device ------------------------ ###
1252
1253devn_=$(GLOBJ)gdevdevn.$(OBJ)
1254
1255$(DD)spotcmyk.dev : $(DEVS_MAK) $(devn_) $(GLD)page.dev $(GDEV)
1256	$(SETDEV) $(DD)spotcmyk $(devn_)
1257
1258$(DD)devicen.dev : $(DEVS_MAK) $(devn_) $(GLD)page.dev $(GDEV)
1259	$(SETDEV) $(DD)devicen $(devn_)
1260
1261$(GLOBJ)gdevdevn.$(OBJ) : $(GLSRC)gdevdevn.c $(PDEVH) $(math__h) $(string__h)\
1262 $(gdevprn_h) $(gsparam_h) $(gscrd_h) $(gscrdp_h) $(gxlum_h) $(gdevdcrd_h)\
1263 $(gstypes_h) $(gxdcconv_h) $(gdevdevn_h) $(gsequivc_h)
1264	$(GLCC) $(GLO_)gdevdevn.$(OBJ) $(C_) $(GLSRC)gdevdevn.c
1265
1266### --------------------------- The XCF device ------------------------- ###
1267
1268xcf_=$(GLOBJ)gdevxcf.$(OBJ)
1269
1270$(DD)xcf.dev : $(DEVS_MAK) $(xcf_) $(GLD)page.dev $(GDEV)
1271	$(SETDEV) $(DD)xcf $(xcf_)
1272
1273$(DD)xcfcmyk.dev : $(DEVS_MAK) $(xcf_) $(GLD)page.dev $(GDEV)
1274	$(SETDEV) $(DD)xcfcmyk $(xcf_)
1275
1276$(GLOBJ)gdevxcf.$(OBJ) : $(GLSRC)gdevxcf.c $(PDEVH) $(math__h)\
1277 $(gdevdcrd_h) $(gscrd_h) $(gscrdp_h) $(gsparam_h) $(gxlum_h)\
1278 $(gxdcconv_h) $(gscms_h) $(gsicc_cache_h) $(gsicc_manage_h)
1279	$(GLCC) $(GLO_)gdevxcf.$(OBJ) $(C_) $(GLSRC)gdevxcf.c
1280
1281### --------------------------- The PSD device ------------------------- ###
1282
1283psd_=$(GLOBJ)gdevpsd.$(OBJ) $(GLOBJ)gdevdevn.$(OBJ) $(GLOBJ)gsequivc.$(OBJ)
1284
1285$(DD)psdrgb.dev : $(DEVS_MAK) $(psd_) $(GLD)page.dev $(GDEV)
1286	$(SETDEV) $(DD)psdrgb $(psd_)
1287
1288$(DD)psdcmyk.dev : $(DEVS_MAK) $(psd_) $(GLD)page.dev $(GDEV)
1289	$(SETDEV) $(DD)psdcmyk $(psd_)
1290
1291$(GLOBJ)gdevpsd.$(OBJ) : $(GLSRC)gdevpsd.c $(PDEVH) $(math__h)\
1292 $(gdevdcrd_h) $(gscrd_h) $(gscrdp_h) $(gsparam_h) $(gxlum_h)\
1293 $(gstypes_h) $(gxdcconv_h) $(gdevdevn_h) $(gsequivc_h)\
1294 $(gscms_h) $(gsicc_cache_h) $(gsicc_manage_h) $(gxgetbit_h)\
1295 $(gdevppla_h)
1296	$(GLCC) $(GLO_)gdevpsd.$(OBJ) $(C_) $(GLSRC)gdevpsd.c
1297
1298$(GLOBJ)gsequivc.$(OBJ) : $(GLSRC)gsequivc.c $(math__h)\
1299 $(PDEVH) $(gsparam_h) $(gstypes_h) $(gxdconv_h) $(gdevdevn_h)\
1300 $(gsequivc_h) $(gzstate_h) $(gsstate_h) $(gscspace_h) $(gxcspace_h)\
1301 $(gsicc_manage_h) $(gxdevsop_h)
1302	$(GLCC) $(GLO_)gsequivc.$(OBJ) $(C_) $(GLSRC)gsequivc.c
1303
1304### ----------------------- The permutation device --------------------- ###
1305
1306perm_=$(GLOBJ)gdevperm.$(OBJ)
1307
1308$(DD)perm.dev : $(DEVS_MAK) $(perm_) $(GLD)page.dev $(GDEV)
1309	$(SETDEV) $(DD)perm $(perm_)
1310
1311$(GLOBJ)gdevperm.$(OBJ) : $(GLSRC)gdevperm.c $(PDEVH) $(math__h)\
1312 $(gdevdcrd_h) $(gscrd_h) $(gscrdp_h) $(gsparam_h) $(gxlum_h)
1313	$(GLCC) $(GLO_)gdevperm.$(OBJ) $(C_) $(GLSRC)gdevperm.c
1314
1315### ------------------------ JBIG2 testing device ---------------------- ###
1316
1317gdevjbig2_=$(GLOBJ)gdevjbig2.$(OBJ)
1318
1319$(DD)gdevjbig2.dev : $(DEVS_MAK) $(gdevjbig2_) $(GLD)page.dev $(GDEV)
1320	$(SETPDEV2) $(DD)gdevjbig2 $(gdevjbig2_)
1321
1322$(GLOBJ)gdevjbig2.$(OBJ) : $(GLSRC)gdevjbig2.c $(PDEVH)\
1323 $(stream_h) $(strimpl_h) $(sjbig2_luratech_h)
1324	$(GDEVLDFJB2CC) $(GLO_)gdevjbig2.$(OBJ) $(C_) $(GLSRC)gdevjbig2.c
1325
1326### ------------------------ JPX testing device ----------------------
1327###
1328
1329gdevjpx_=$(GLOBJ)gdevjpx.$(OBJ)
1330
1331$(DD)jpxrgb.dev : $(DEVS_MAK) $(gdevjpx_) $(GLD)page.dev $(GDEV)
1332	$(SETPDEV2) $(DD)jpxrgb $(gdevjpx_)
1333
1334$(DD)jpxgray.dev : $(DEVS_MAK) $(gdevjpx_) $(GLD)page.dev $(GDEV)
1335	$(SETPDEV2) $(DD)jpxgray $(gdevjpx_)
1336
1337$(DD)jpxcmyk.dev : $(DEVS_MAK) $(gdevjpx_) $(GLD)page.dev $(GDEV)
1338	$(SETPDEV2) $(DD)jpxcmyk $(gdevjpx_)
1339
1340$(GLOBJ)gdevjpx.$(OBJ) : $(GLSRC)gdevjpx.c $(PDEVH)\
1341 $(stream_h) $(strimpl_h) $(sjpx_luratech_h)
1342	$(GDEVLWFJPXCC) $(GLO_)gdevjpx.$(OBJ) $(C_) $(GLSRC)gdevjpx.c
1343
1344### ------------------------- JPEG file format ------------------------- ###
1345
1346jpeg_=$(GLOBJ)gdevjpeg.$(OBJ)
1347
1348# RGB output
1349$(DD)jpeg.dev : $(DEVS_MAK) $(jpeg_) $(GLD)sdcte.dev $(GLD)page.dev $(GDEV)
1350	$(SETPDEV2) $(DD)jpeg $(jpeg_)
1351	$(ADDMOD) $(DD)jpeg -include $(GLD)sdcte
1352
1353# Gray output
1354$(DD)jpeggray.dev : $(DEVS_MAK) $(jpeg_) $(GLD)sdcte.dev $(GLD)page.dev\
1355 $(GDEV)
1356	$(SETPDEV2) $(DD)jpeggray $(jpeg_)
1357	$(ADDMOD) $(DD)jpeggray -include $(GLD)sdcte
1358
1359# CMYK output
1360$(DD)jpegcmyk.dev : $(DEVS_MAK) $(jpeg_) $(GLD)sdcte.dev $(GLD)page.dev\
1361 $(GDEV)
1362	$(SETPDEV2) $(DD)jpegcmyk $(jpeg_)
1363	$(ADDMOD) $(DD)jpegcmyk -include $(GLD)sdcte
1364
1365$(GLOBJ)gdevjpeg.$(OBJ) : $(GLSRC)gdevjpeg.c $(PDEVH)\
1366 $(stdio__h) $(jpeglib__h)\
1367 $(sdct_h) $(sjpeg_h) $(stream_h) $(strimpl_h)
1368	$(GLCC) $(GLO_)gdevjpeg.$(OBJ) $(C_) $(GLSRC)gdevjpeg.c
1369
1370### ------------------------- MIFF file format ------------------------- ###
1371### Right now we support only 24-bit direct color, but we might add more ###
1372### formats in the future.                                               ###
1373
1374miff_=$(GLOBJ)gdevmiff.$(OBJ)
1375
1376$(DD)miff24.dev : $(DEVS_MAK) $(miff_) $(GLD)page.dev $(GDEV)
1377	$(SETPDEV) $(DD)miff24 $(miff_)
1378
1379$(GLOBJ)gdevmiff.$(OBJ) : $(GLSRC)gdevmiff.c $(PDEVH)
1380	$(GLCC) $(GLO_)gdevmiff.$(OBJ) $(C_) $(GLSRC)gdevmiff.c
1381
1382### ------------------------- PCX file formats ------------------------- ###
1383
1384pcx_=$(GLOBJ)gdevpcx.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ)
1385
1386$(GLOBJ)gdevpcx.$(OBJ) : $(GLSRC)gdevpcx.c $(PDEVH) $(gdevpccm_h) $(gxlum_h)
1387	$(GLCC) $(GLO_)gdevpcx.$(OBJ) $(C_) $(GLSRC)gdevpcx.c
1388
1389$(DD)pcxmono.dev : $(DEVS_MAK) $(pcx_) $(GLD)page.dev $(GDEV)
1390	$(SETPDEV2) $(DD)pcxmono $(pcx_)
1391
1392$(DD)pcxgray.dev : $(DEVS_MAK) $(pcx_) $(GLD)page.dev $(GDEV)
1393	$(SETPDEV2) $(DD)pcxgray $(pcx_)
1394
1395$(DD)pcx16.dev : $(DEVS_MAK) $(pcx_) $(GLD)page.dev $(GDEV)
1396	$(SETPDEV2) $(DD)pcx16 $(pcx_)
1397
1398$(DD)pcx256.dev : $(DEVS_MAK) $(pcx_) $(GLD)page.dev $(GDEV)
1399	$(SETPDEV2) $(DD)pcx256 $(pcx_)
1400
1401$(DD)pcx24b.dev : $(DEVS_MAK) $(pcx_) $(GLD)page.dev $(GDEV)
1402	$(SETPDEV2) $(DD)pcx24b $(pcx_)
1403
1404$(DD)pcxcmyk.dev : $(DEVS_MAK) $(pcx_) $(GLD)page.dev $(GDEV)
1405	$(SETPDEV2) $(DD)pcxcmyk $(pcx_)
1406
1407# The 2-up PCX device is here only as an example, and for testing.
1408
1409$(DD)pcx2up.dev : $(DEVS_MAK) $(LIB_MAK) $(GLOBJ)gdevp2up.$(OBJ)\
1410 $(GLD)page.dev $(DD)pcx256.dev $(GDEV)
1411	$(SETPDEV) $(DD)pcx2up $(GLOBJ)gdevp2up.$(OBJ)
1412	$(ADDMOD) $(DD)pcx2up -include $(DD)pcx256
1413
1414$(GLOBJ)gdevp2up.$(OBJ) : $(GLSRC)gdevp2up.c $(AK)\
1415 $(gdevpccm_h) $(gdevprn_h) $(gxclpage_h)
1416	$(GLCC) $(GLO_)gdevp2up.$(OBJ) $(C_) $(GLSRC)gdevp2up.c
1417
1418### ------------------- Portable Bitmap file formats ------------------- ###
1419### For more information, see the pam(5), pbm(5), pgm(5), and ppm(5)     ###
1420### man pages.                                                           ###
1421
1422pxm_=$(GLOBJ)gdevpbm.$(OBJ) $(GLOBJ)gdevppla.$(OBJ) $(GLOBJ)gdevmpla.$(OBJ)
1423
1424$(GLOBJ)gdevpbm.$(OBJ) : $(GLSRC)gdevpbm.c $(PDEVH)\
1425 $(gdevmpla_h) $(gdevplnx_h) $(gdevppla_h)\
1426 $(gscdefs_h) $(gscspace_h) $(gxgetbit_h) $(gxiparam_h) $(gxlum_h)
1427	$(GLCC) $(GLO_)gdevpbm.$(OBJ) $(C_) $(GLSRC)gdevpbm.c
1428
1429### Portable Bitmap (PBM, plain or raw format, magic numbers "P1" or "P4")
1430
1431$(DD)pbm.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev $(GDEV)
1432	$(SETPDEV2) $(DD)pbm $(pxm_)
1433
1434$(DD)pbmraw.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev $(GDEV)
1435	$(SETPDEV2) $(DD)pbmraw $(pxm_)
1436
1437### Portable Graymap (PGM, plain or raw format, magic numbers "P2" or "P5")
1438
1439$(DD)pgm.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev $(GDEV)
1440	$(SETPDEV2) $(DD)pgm $(pxm_)
1441
1442$(DD)pgmraw.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev $(GDEV)
1443	$(SETPDEV2) $(DD)pgmraw $(pxm_)
1444
1445# PGM with automatic optimization to PBM if this is possible.
1446
1447$(DD)pgnm.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev $(GDEV)
1448	$(SETPDEV2) $(DD)pgnm $(pxm_)
1449
1450$(DD)pgnmraw.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev $(GDEV)
1451	$(SETPDEV2) $(DD)pgnmraw $(pxm_)
1452
1453### Portable Pixmap (PPM, plain or raw format, magic numbers "P3" or "P6")
1454
1455$(DD)ppm.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev $(GDEV)
1456	$(SETPDEV2) $(DD)ppm $(pxm_)
1457
1458$(DD)ppmraw.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev $(GDEV)
1459	$(SETPDEV2) $(DD)ppmraw $(pxm_)
1460
1461# PPM with automatic optimization to PGM or PBM if possible.
1462
1463$(DD)pnm.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev $(GDEV)
1464	$(SETPDEV2) $(DD)pnm $(pxm_)
1465
1466$(DD)pnmraw.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev $(GDEV)
1467	$(SETPDEV2) $(DD)pnmraw $(pxm_)
1468
1469### Portable inKmap (CMYK internally, converted to PPM=RGB at output time)
1470
1471$(DD)pkm.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev $(GDEV)
1472	$(SETPDEV2) $(DD)pkm $(pxm_)
1473
1474$(DD)pkmraw.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev $(GDEV)
1475	$(SETPDEV2) $(DD)pkmraw $(pxm_)
1476
1477### Portable Separated map (CMYK internally, produces 4 monobit pages)
1478
1479$(DD)pksm.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev $(GDEV)
1480	$(SETPDEV2) $(DD)pksm $(pxm_)
1481
1482$(DD)pksmraw.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev $(GDEV)
1483	$(SETPDEV2) $(DD)pksmraw $(pxm_)
1484
1485### Plan 9 bitmap format
1486
1487$(DD)plan9bm.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev $(GDEV)
1488	$(SETPDEV2) $(DD)plan9bm $(pxm_)
1489
1490### Portable Arbitrary Map (PAM, magic number "P7", CMYK)
1491
1492$(DD)pamcmyk4.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev $(GDEV)
1493	$(SETPDEV2) $(DD)pamcmyk4 $(pxm_)
1494
1495$(DD)pamcmyk32.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev $(GDEV)
1496	$(SETPDEV2) $(DD)pamcmyk32 $(pxm_)
1497
1498# Keep the older (non-descriptive) name in case it is being used
1499$(DD)pam.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev $(GDEV)
1500	$(SETPDEV2) $(DD)pam $(pxm_)
1501
1502### --------------- Portable Network Graphics file format --------------- ###
1503### Requires libpng 0.81 and zlib 0.95 (or more recent versions).         ###
1504### See png.mak and zlib.mak for more details.                         ###
1505
1506png__h=$(GLSRC)png_.h $(MAKEFILE)
1507
1508png_=$(GLOBJ)gdevpng.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ)
1509libpng_dev=$(PNGGENDIR)$(D)libpng.dev
1510png_i_=-include $(PNGGENDIR)$(D)libpng
1511
1512$(GLOBJ)gdevpng.$(OBJ) : $(GLSRC)gdevpng.c\
1513 $(gdevprn_h) $(gdevpccm_h) $(gscdefs_h) $(png__h)
1514	$(CC_) $(I_)$(GLI_) $(II)$(PI_)$(_I) $(PCF_) $(GLF_) $(GLO_)gdevpng.$(OBJ) $(C_) $(GLSRC)gdevpng.c
1515
1516$(DD)pngmono.dev : $(DEVS_MAK) $(libpng_dev) $(png_) $(GLD)page.dev $(GDEV)
1517	$(SETPDEV2) $(DD)pngmono $(png_)
1518	$(ADDMOD) $(DD)pngmono $(png_i_)
1519
1520$(DD)pngmonod.dev : $(DEVS_MAK) $(libpng_dev) $(png_) $(GLD)page.dev $(GDEV)
1521	$(SETPDEV2) $(DD)pngmonod $(png_)
1522	$(ADDMOD) $(DD)pngmonod $(png_i_)
1523
1524$(DD)pnggray.dev : $(DEVS_MAK) $(libpng_dev) $(png_) $(GLD)page.dev $(GDEV)
1525	$(SETPDEV2) $(DD)pnggray $(png_)
1526	$(ADDMOD) $(DD)pnggray $(png_i_)
1527
1528$(DD)png16.dev : $(DEVS_MAK) $(libpng_dev) $(png_) $(GLD)page.dev $(GDEV)
1529	$(SETPDEV2) $(DD)png16 $(png_)
1530	$(ADDMOD) $(DD)png16 $(png_i_)
1531
1532$(DD)png256.dev : $(DEVS_MAK) $(libpng_dev) $(png_) $(GLD)page.dev $(GDEV)
1533	$(SETPDEV2) $(DD)png256 $(png_)
1534	$(ADDMOD) $(DD)png256 $(png_i_)
1535
1536$(DD)png16m.dev : $(DEVS_MAK) $(libpng_dev) $(png_) $(GLD)page.dev $(GDEV)
1537	$(SETPDEV2) $(DD)png16m $(png_)
1538	$(ADDMOD) $(DD)png16m $(png_i_)
1539
1540$(DD)png48.dev : $(DEVS_MAK) $(libpng_dev) $(png_) $(GLD)page.dev $(GDEV)
1541	$(SETPDEV2) $(DD)png48 $(png_)
1542	$(ADDMOD) $(DD)png48 $(png_i_)
1543
1544$(DD)pngalpha.dev : $(DEVS_MAK) $(libpng_dev) $(png_) $(GLD)page.dev $(GDEV)
1545	$(SETPDEV2) $(DD)pngalpha $(png_)
1546	$(ADDMOD) $(DD)pngalpha $(png_i_)
1547
1548### ---------------------- PostScript image format ---------------------- ###
1549### These devices make it possible to print monochrome Level 2 files on a ###
1550###   Level 1 printer, by converting them to a bitmap in PostScript       ###
1551###   format.  They also can convert big, complex color PostScript files  ###
1552###   to (often) smaller and more easily printed bitmaps.                 ###
1553
1554psim_=$(GLOBJ)gdevpsim.$(OBJ) $(GLOBJ)gdevpsu.$(OBJ)
1555
1556$(GLOBJ)gdevpsim.$(OBJ) : $(GLSRC)gdevpsim.c $(PDEVH)\
1557 $(gdevpsu_h)\
1558 $(sa85x_h) $(srlx_h) $(stream_h) $(strimpl_h)
1559	$(GLCC) $(GLO_)gdevpsim.$(OBJ) $(C_) $(GLSRC)gdevpsim.c
1560
1561# Monochrome, Level 1 output
1562
1563$(DD)psmono.dev : $(DEVS_MAK) $(psim_) $(GLD)page.dev $(GDEV)
1564	$(SETPDEV2) $(DD)psmono $(psim_)
1565
1566$(DD)psgray.dev : $(DEVS_MAK) $(psim_) $(GLD)page.dev $(GDEV)
1567	$(SETPDEV2) $(DD)psgray $(psim_)
1568
1569# RGB, Level 2 output
1570
1571$(DD)psrgb.dev : $(DEVS_MAK) $(psim_) $(GLD)page.dev $(GDEV)
1572	$(SETPDEV2) $(DD)psrgb $(psim_)
1573
1574### --- Minimum Feature Size support functions --- ###
1575
1576# Required by fax and 1bpp tiff functions. The grouping of functions
1577# within files means it is also pulled in for color/cmyk tiff functions
1578# too.
1579
1580minftrsz_h=$(GLSRC)minftrsz.h $(std_h)
1581minftrsz_=$(minftrsz_h) $(GLOBJ)minftrsz.$(OBJ)
1582
1583$(GLOBJ)minftrsz.$(OBJ) : $(GLSRC)minftrsz.c $(minftrsz_h)
1584	$(GLCC) $(GLO_)minftrsz.$(OBJ) $(C_) $(GLSRC)minftrsz.c
1585
1586
1587### ---------------- Fax encoding ---------------- ###
1588
1589# By default, these drivers recognize 3 page sizes -- (U.S.) letter, A4, and
1590# B4 -- and adjust the page width to the nearest legal value for real fax
1591# systems (1728 or 2048 pixels).  To suppress this, set the device parameter
1592# AdjustWidth to 0 (e.g., -dAdjustWidth=0 on the command line).
1593
1594gdevfax_h=$(GLSRC)gdevfax.h
1595libtiff_dev=$(TIFFGENDIR)$(D)libtiff.dev
1596tiff_i_=-include $(TIFFGENDIR)$(D)libtiff
1597
1598fax_=$(GLOBJ)gdevfax.$(OBJ) $(GLOBJ)minftrsz.$(OBJ)
1599$(DD)fax.dev : $(DEVS_MAK) $(libtiff_dev) $(fax_) $(GLD)cfe.dev $(minftrsz_h)\
1600 $(GDEV)
1601	$(SETMOD) $(DD)fax $(fax_)
1602	$(ADDMOD) $(DD)fax -include $(GLD)cfe $(tiff_i_)
1603
1604$(GLOBJ)gdevfax.$(OBJ) : $(GLSRC)gdevfax.c $(PDEVH)\
1605 $(gdevfax_h) $(scfx_h) $(strimpl_h)
1606	$(GLCC) $(GLO_)gdevfax.$(OBJ) $(C_) $(GLSRC)gdevfax.c
1607
1608$(DD)faxg3.dev : $(DEVS_MAK) $(libtiff_dev) $(DD)fax.dev $(GDEV)
1609	$(SETDEV2) $(DD)faxg3 -include $(DD)fax
1610	$(ADDMOD) $(DD)faxg3 $(tiff_i_)
1611
1612$(DD)faxg32d.dev : $(DEVS_MAK) $(libtiff_dev) $(DD)fax.dev $(GDEV)
1613	$(SETDEV2) $(DD)faxg32d -include $(DD)fax
1614	$(ADDMOD) $(DD)faxg32d $(tiff_i_)
1615
1616$(DD)faxg4.dev : $(DEVS_MAK) $(libtiff_dev) $(DD)fax.dev $(GDEV)
1617	$(SETDEV2) $(DD)faxg4 -include $(DD)fax
1618	$(ADDMOD) $(DD)faxg4 $(tiff_i_)
1619
1620### -------------------- Plain or TIFF fax encoding --------------------- ###
1621###    Use -sDEVICE=tiffg3 or tiffg4 and				  ###
1622###	  -r204x98 for low resolution output, or			  ###
1623###	  -r204x196 for high resolution output				  ###
1624
1625gdevtifs_h=$(GLSRC)gdevtifs.h
1626
1627tfax_=$(GLOBJ)gdevtfax.$(OBJ) $(GLOBJ)minftrsz.$(OBJ)
1628$(DD)tfax.dev : $(DEVS_MAK) $(libtiff_dev) $(tfax_) $(GLD)cfe.dev\
1629 $(GLD)lzwe.dev $(GLD)rle.dev $(DD)fax.dev $(DD)tiffs.dev $(minftrsz_h)\
1630 $(GDEV)
1631	$(SETMOD) $(DD)tfax $(tfax_)
1632	$(ADDMOD) $(DD)tfax -include $(GLD)cfe $(GLD)lzwe $(GLD)rle
1633	$(ADDMOD) $(DD)tfax -include $(DD)fax $(DD)tiffs $(tiff_i_)
1634
1635$(GLOBJ)gdevtfax.$(OBJ) : $(GLSRC)gdevtfax.c $(PDEVH)\
1636 $(stdint__h) $(gdevfax_h) $(gdevtifs_h)\
1637 $(scfx_h) $(slzwx_h) $(srlx_h) $(strimpl_h)
1638	$(GLCC) $(I_)$(TI_)$(_I) $(GLO_)gdevtfax.$(OBJ) $(C_) $(GLSRC)gdevtfax.c
1639
1640### ---------------------------- TIFF formats --------------------------- ###
1641
1642tiffs_=$(GLOBJ)gdevtifs.$(OBJ) $(GLOBJ)minftrsz.$(OBJ)
1643$(DD)tiffs.dev : $(DEVS_MAK) $(libtiff_dev) $(tiffs_) $(GLD)page.dev\
1644 $(minftrsz_) $(GDEV)
1645	$(SETMOD) $(DD)tiffs $(tiffs_)
1646	$(ADDMOD) $(DD)tiffs -include $(GLD)page $(tiff_i_)
1647
1648$(GLOBJ)gdevtifs.$(OBJ) : $(GLSRC)gdevtifs.c $(PDEVH) $(stdint__h) $(stdio__h) $(time__h)\
1649 $(gdevtifs_h) $(gscdefs_h) $(gstypes_h)
1650	$(GLCC) $(I_)$(GLI_) $(II)$(TI_)$(_I) $(GLO_)gdevtifs.$(OBJ) $(C_) $(GLSRC)gdevtifs.c
1651
1652# Black & white, G3/G4 fax
1653# NOTE: see under faxg* above regarding page width adjustment.
1654
1655$(DD)tiffcrle.dev : $(DEVS_MAK) $(libtiff_dev) $(DD)tfax.dev $(minftrsz_)\
1656 $(GDEV)
1657	$(SETDEV2) $(DD)tiffcrle -include $(DD)tfax
1658	$(ADDMOD) $(DD)tiffcrle $(tiff_i_)
1659
1660$(DD)tiffg3.dev : $(DEVS_MAK) $(libtiff_dev) $(DD)tfax.dev $(minftrsz_)\
1661 $(GDEV)
1662	$(SETDEV2) $(DD)tiffg3 -include $(DD)tfax
1663	$(ADDMOD) $(DD)tiffg3 $(tiff_i_)
1664
1665$(DD)tiffg32d.dev : $(DEVS_MAK) $(libtiff_dev) $(DD)tfax.dev $(minftrsz_)\
1666 $(GDEV)
1667	$(SETDEV2) $(DD)tiffg32d -include $(DD)tfax
1668	$(ADDMOD) $(DD)tiffg32d $(tiff_i_)
1669
1670$(DD)tiffg4.dev : $(DEVS_MAK) $(libtiff_dev) $(DD)tfax.dev $(minftrsz_)\
1671 $(GDEV)
1672	$(SETDEV2) $(DD)tiffg4 -include $(DD)tfax
1673	$(ADDMOD) $(DD)tiffg4 $(tiff_i_)
1674
1675# Black & white, LZW compression
1676
1677$(DD)tifflzw.dev : $(DEVS_MAK) $(libtiff_dev) $(DD)tfax.dev $(minftrsz_)\
1678 $(GDEV)
1679	$(SETDEV2) $(DD)tifflzw -include $(DD)tfax
1680	$(ADDMOD) $(DD)tifflzw $(tiff_i_)
1681
1682# Black & white, PackBits compression
1683
1684$(DD)tiffpack.dev : $(DEVS_MAK) $(libtiff_dev) $(DD)tfax.dev $(minftrsz_)\
1685 $(GDEV)
1686	$(SETDEV2) $(DD)tiffpack -include $(DD)tfax
1687	$(ADDMOD) $(DD)tiffpack $(tiff_i_)
1688
1689# TIFF Gray, no compression
1690
1691tiffgray_=$(GLOBJ)gdevtsep.$(OBJ) $(GLOBJ)gsequivc.$(OBJ) $(GLOBJ)minftrsz.$(OBJ)
1692
1693$(DD)tiffgray.dev : $(DEVS_MAK) $(libtiff_dev) $(tiffgray_) $(DD)tiffs.dev\
1694 $(minftrsz_h) $(GDEV)
1695	$(SETPDEV2) $(DD)tiffgray $(tiffgray_)
1696	$(ADDMOD) $(DD)tiffgray -include $(DD)tiffs $(tiff_i_)
1697
1698$(GLOBJ)gdevtsep.$(OBJ) : $(GLSRC)gdevtsep.c $(PDEVH) $(stdint__h)\
1699 $(gdevtifs_h) $(gdevdevn_h) $(gsequivc_h) $(stdio__h) $(ctype__h)\
1700 $(gxgetbit_h) $(gdevppla_h) $(GDEV)
1701	$(GLCC) $(I_)$(TI_)$(_I) $(GLO_)gdevtsep.$(OBJ) $(C_) $(GLSRC)gdevtsep.c
1702
1703# TIFF Scaled (downscaled gray -> mono), configurable compression
1704
1705tiffscaled_=$(tiffgray_) $(GLOBJ)gdevtsep.$(OBJ) $(GLOBJ)minftrsz.$(OBJ)
1706
1707$(DD)tiffscaled.dev : $(DEVS_MAK) $(libtiff_dev) $(tiffscaled_) $(DD)tiffs.dev\
1708 $(minftrsz_h) $(GDEV)
1709	$(SETPDEV2) $(DD)tiffscaled $(tiffscaled_)
1710	$(ADDMOD) $(DD)tiffscaled -include $(DD)tiffs $(tiff_i_)
1711
1712# TIFF Scaled 8 (downscaled gray -> gray), configurable compression
1713
1714tiffscaled8_=$(tiffgray_) $(GLOBJ)gdevtsep.$(OBJ) $(GLOBJ)minftrsz.$(OBJ)
1715
1716$(DD)tiffscaled8.dev : $(DEVS_MAK) $(libtiff_dev) $(tiffscaled8_)\
1717 $(DD)tiffs.dev $(minftrsz_h) $(GDEV)
1718	$(SETPDEV2) $(DD)tiffscaled8 $(tiffscaled8_)
1719	$(ADDMOD) $(DD)tiffscaled8 -include $(DD)tiffs $(tiff_i_)
1720
1721# TIFF Scaled 24 (downscaled rgb -> rgb), configurable compression
1722
1723tiffscaled24_=$(tiffgray_) $(GLOBJ)gdevtsep.$(OBJ) $(GLOBJ)minftrsz.$(OBJ)
1724
1725$(DD)tiffscaled24.dev : $(DEVS_MAK) $(libtiff_dev) $(tiffscaled24_)\
1726 $(DD)tiffs.dev $(minftrsz_h) $(GDEV)
1727	$(SETPDEV2) $(DD)tiffscaled24 $(tiffscaled8_)
1728	$(ADDMOD) $(DD)tiffscaled24 -include $(DD)tiffs $(tiff_i_)
1729
1730# TIFF RGB, no compression
1731
1732tiffrgb_=$(GLOBJ)gdevtfnx.$(OBJ) $(GLOBJ)minftrsz.$(OBJ)
1733
1734$(DD)tiff12nc.dev : $(DEVS_MAK) $(libtiff_dev) $(tiffrgb_) $(DD)tiffs.dev\
1735 $(minftrsz_h) $(GDEV)
1736	$(SETPDEV2) $(DD)tiff12nc $(tiffrgb_)
1737	$(ADDMOD) $(DD)tiff12nc -include $(DD)tiffs $(tiff_i_)
1738
1739$(DD)tiff24nc.dev : $(DEVS_MAK) $(libtiff_dev) $(tiffrgb_) $(DD)tiffs.dev\
1740 $(minftrsz_h) $(GDEV)
1741	$(SETPDEV2) $(DD)tiff24nc $(tiffrgb_)
1742	$(ADDMOD) $(DD)tiff24nc -include $(DD)tiffs $(tiff_i_)
1743
1744$(DD)tiff48nc.dev : $(DEVS_MAK) $(libtiff_dev) $(tiffrgb_) $(DD)tiffs.dev\
1745 $(minftrsz_h) $(GDEV)
1746	$(SETPDEV2) $(DD)tiff48nc $(tiffrgb_)
1747	$(ADDMOD) $(DD)tiff48nc -include $(DD)tiffs $(tiff_i_)
1748
1749$(GLOBJ)gdevtfnx.$(OBJ) : $(GLSRC)gdevtfnx.c $(PDEVH) $(stdint__h)\
1750 $(gdevtifs_h) $(gscms_h) $(GDEV)
1751	$(GLCC) $(I_)$(TI_)$(_I) $(GLO_)gdevtfnx.$(OBJ) $(C_) $(GLSRC)gdevtfnx.c
1752
1753# TIFF CMYK, no compression
1754
1755$(DD)tiff32nc.dev : $(DEVS_MAK) $(libtiff_dev) $(tiffgray_) $(DD)tiffs.dev\
1756 $(minftrsz_h) $(GDEV)
1757	$(SETPDEV2) $(DD)tiff32nc $(tiffgray_)
1758	$(ADDMOD) $(DD)tiff32nc -include $(DD)tiffs $(tiff_i_)
1759
1760$(DD)tiff64nc.dev : $(DEVS_MAK) $(libtiff_dev) $(tiffgray_) $(DD)tiffs.dev\
1761 $(minftrsz_h) $(GDEV)
1762	$(SETPDEV2) $(DD)tiff64nc $(tiffgray_)
1763	$(ADDMOD) $(DD)tiff64nc -include $(DD)tiffs $(tiff_i_)
1764
1765#
1766# Create separation files (tiffgray) plus CMYK composite (tiff32nc)
1767
1768tiffsep_=$(tiffgray_) $(GLOBJ)gdevdevn.$(OBJ) $(GLOBJ)gsequivc.$(OBJ)
1769
1770$(DD)tiffsep.dev : $(DEVS_MAK) $(libtiff_dev) $(tiffgray_) $(DD)tiffs.dev\
1771 $(minftrsz_h) $(GDEV)
1772	$(SETPDEV2) $(DD)tiffsep $(tiffsep_)
1773	$(ADDMOD) $(DD)tiffsep -include $(DD)tiffs $(tiff_i_)
1774
1775#
1776# Create separation files (tiff 1-bit)
1777
1778$(DD)tiffsep1.dev : $(DEVS_MAK) $(tiffgray_) $(DD)tiffs.dev $(minftrsz_h)\
1779 $(GDEV)
1780	$(SETPDEV2) $(DD)tiffsep1 $(tiffsep_)
1781	$(ADDMOD) $(DD)tiffsep1 -include $(DD)tiffs
1782
1783#
1784# PLANar device
1785
1786plan_=$(GLOBJ)gdevplan.$(OBJ) $(GLOBJ)gdevppla.$(OBJ) $(GLOBJ)gdevmpla.$(OBJ)
1787
1788$(GLOBJ)gdevplan.$(OBJ) : $(GLSRC)gdevplan.c $(PDEVH)\
1789 $(gdevmpla_h) $(gdevplnx_h) $(gdevppla_h)\
1790 $(gscdefs_h) $(gscspace_h) $(gxgetbit_h) $(gxiparam_h) $(gxlum_h)
1791	$(GLCC) $(GLO_)gdevplan.$(OBJ) $(C_) $(GLSRC)gdevplan.c
1792
1793$(DD)plan.dev : $(DEVS_MAK) $(plan_) $(GLD)page.dev $(GDEV)
1794	$(SETPDEV2) $(DD)plan $(plan_)
1795
1796$(DD)plang.dev : $(DEVS_MAK) $(plan_) $(GLD)page.dev $(GDEV)
1797	$(SETPDEV2) $(DD)plang $(plan_)
1798
1799$(DD)planm.dev : $(DEVS_MAK) $(plan_) $(GLD)page.dev $(GDEV)
1800	$(SETPDEV2) $(DD)planm $(plan_)
1801
1802$(DD)planc.dev : $(DEVS_MAK) $(plan_) $(GLD)page.dev $(GDEV)
1803	$(SETPDEV2) $(DD)planc $(plan_)
1804
1805$(DD)plank.dev : $(DEVS_MAK) $(plan_) $(GLD)page.dev $(GDEV)
1806	$(SETPDEV2) $(DD)plank $(plan_)
1807
1808#
1809# PLanar Interlaced Buffer device
1810
1811plib_=$(GLOBJ)gdevplib.$(OBJ) $(GLOBJ)gdevppla.$(OBJ) $(GLOBJ)gdevmpla.$(OBJ)
1812
1813$(GLOBJ)gdevplib.$(OBJ) : $(GLSRC)gdevplib.c $(PDEVH)\
1814 $(gdevmpla_h) $(gdevplnx_h) $(gdevppla_h)\
1815 $(gscdefs_h) $(gscspace_h) $(gxgetbit_h) $(gxiparam_h) $(gxlum_h)
1816	$(GLCC) $(GLO_)gdevplib.$(OBJ) $(C_) $(GLSRC)gdevplib.c
1817
1818$(DD)plib.dev : $(DEVS_MAK) $(plib_) $(GLD)page.dev $(GDEV)
1819	$(SETPDEV2) $(DD)plib $(plib_)
1820
1821$(DD)plibg.dev : $(DEVS_MAK) $(plib_) $(GLD)page.dev $(GDEV)
1822	$(SETPDEV2) $(DD)plibg $(plib_)
1823
1824$(DD)plibm.dev : $(DEVS_MAK) $(plib_) $(GLD)page.dev $(GDEV)
1825	$(SETPDEV2) $(DD)plibm $(plib_)
1826
1827$(DD)plibc.dev : $(DEVS_MAK) $(plib_) $(GLD)page.dev $(GDEV)
1828	$(SETPDEV2) $(DD)plibc $(plib_)
1829
1830$(DD)plibk.dev : $(DEVS_MAK) $(plib_) $(GLD)page.dev $(GDEV)
1831	$(SETPDEV2) $(DD)plibk $(plib_)
1832
1833### ------------------------------- CUPS ------------------------------- ###
1834lcups_dev=$(LCUPSGENDIR)$(D)lcups.dev
1835lcupsi_dev=$(LCUPSIGENDIR)$(D)lcupsi.dev
1836
1837cups_=$(GLOBJ)gdevcups.$(OBJ)
1838$(DD)cups.dev : $(DEVS_MAK) $(lcups_dev) $(lcupsi_dev) $(cups_) $(GDEV)
1839	$(SETPDEV2) $(DD)cups $(cups_)
1840	$(ADDMOD) $(DD)cups -include $(lcups_dev)
1841	$(ADDMOD) $(DD)cups -include $(lcupsi_dev)
1842
1843$(GLOBJ)gdevcups.$(OBJ) : cups$(D)gdevcups.c $(std_h)
1844	$(CUPS_CC) $(GLO_)gdevcups.$(OBJ) $(C_) $(CFLAGS) $(I_)$(GLSRC) $(I_)$(GLOBJ) $(I_)$(LCUPSSRCDIR)$(D)libs $(LCUPSSRCDIR)$(D)gdevcups.c
1845