1#    Copyright (C) 1989-2002 artofcode LLC. All rights reserved.
2#
3# This program is free software; you can redistribute it and/or modify it
4# under the terms of the GNU General Public License as published by the
5# Free Software Foundation; either version 2 of the License, or (at your
6# option) any later version.
7#
8# This program is distributed in the hope that it will be useful, but
9# WITHOUT ANY WARRANTY; without even the implied warranty of
10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
11# Public License for more details.
12#
13# You should have received a copy of the GNU General Public License along
14# with this program; if not, write to the Free Software Foundation, Inc.,
15# 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
16
17
18# $Id: devs.mak,v 1.47.2.7.2.2 2003/03/11 11:59:10 ghostgum Exp $
19# makefile for Aladdin's device drivers.
20
21# Define the name of this makefile.
22DEVS_MAK=$(GLSRC)devs.mak
23
24# All device drivers depend on the following:
25GDEVH=$(gserrors_h) $(gx_h) $(gxdevice_h)
26GDEV=$(AK) $(ECHOGS_XE) $(GDEVH)
27
28###### --------------------------- Overview -------------------------- ######
29
30# It is possible to build Ghostscript with an arbitrary collection of device
31# drivers, although some drivers are supported only on a subset of the
32# target platforms.
33
34# The catalog in this file, devs.mak, lists all the drivers that were
35# written by Aladdin, or by people working closely with Aladdin, and for
36# which Aladdin is willing to take problem reports (although since
37# Ghostscript is provided with NO WARRANTY and NO SUPPORT, we can't promise
38# that we'll solve your problem).  Another file, contrib.mak, lists all the
39# drivers contributed by other people that are distributed by Aladdin with
40# Ghostscript.  Note in particular that all drivers for color inkjets and
41# other non-PostScript-capable color printers are in contrib.mak.
42
43# If you haven't configured Ghostscript before, or if you want to add a
44# driver that that isn't included in the catalogs (for which you have the
45# source code), we suggest you skip to the "End of catalog" below and read
46# the documentation there before continuing.
47
48###### --------------------------- Catalog -------------------------- ######
49
50# MS-DOS displays (note: not usable with Desqview/X):
51#   MS-DOS EGA and VGA:
52#	ega	EGA (640x350, 16-color)
53#	vga	VGA (640x480, 16-color)
54#   MS-DOS SuperVGA:
55# *	ali	SuperVGA using Avance Logic Inc. chipset, 256-color modes
56# *	atiw	ATI Wonder SuperVGA, 256-color modes
57# *	cirr	SuperVGA using Cirrus Logic CL-GD54XX chips, 256-color modes
58# *	s3vga	SuperVGA using S3 86C911 chip (e.g., Diamond Stealth board)
59#	svga16	Generic SuperVGA in 800x600, 16-color mode
60# *	tseng	SuperVGA using Tseng Labs ET3000/4000 chips, 256-color modes
61# *	tvga	SuperVGA using Trident chipset, 256-color modes
62#   ****** NOTE: The vesa device does not work with the Watcom (32-bit MS-DOS)
63#   ****** compiler or executable.
64#	vesa	SuperVGA with VESA standard API driver
65# Other displays:
66#	display   For use on any platform that supports DLLs
67#   MS Windows:
68#	mswindll  Microsoft Windows 3.1 DLL  [MS Windows only]
69#	mswinprn  Microsoft Windows 3.0, 3.1 DDB printer  [MS Windows only]
70#	mswinpr2  Microsoft Windows 3.0, 3.1 DIB printer  [MS Windows only]
71#   OS/2:
72# *	os2pm	OS/2 Presentation Manager   [OS/2 only]
73# *	os2dll	OS/2 DLL bitmap             [OS/2 only]
74# *	os2prn	OS/2 printer                [OS/2 only]
75#   Unix and VMS:
76#   ****** NOTE: For direct frame buffer addressing under SCO Unix or Xenix,
77#   ****** edit the definition of EGAVGA below.
78# *	lvga256  Linux vgalib, 256-color VGA modes  [Linux only]
79# +	vgalib	Linux vgalib, 16-color VGA modes   [Linux only]
80#	x11	X Windows version 11, release >=4   [Unix and VMS only]
81#	x11alpha  X Windows masquerading as a device with alpha capability
82#	x11cmyk  X Windows masquerading as a 1-bit-per-plane CMYK device
83#	x11cmyk2  X Windows as a 2-bit-per-plane CMYK device
84#	x11cmyk4  X Windows as a 4-bit-per-plane CMYK device
85#	x11cmyk8  X Windows as an 8-bit-per-plane CMYK device
86#	x11gray2  X Windows as a 2-bit gray-scale device
87#	x11gray4  X Windows as a 4-bit gray-scale device
88#	x11mono  X Windows masquerading as a black-and-white device
89#	x11rg16x  X Windows with G5/B5/R6 pixel layout for testing.
90#	x11rg32x  X Windows with G11/B10/R11 pixel layout for testing.
91# Printers:
92# +	atx23	Practical Automation ATX-23 label printer
93# +	atx24	Practical Automation ATX-24 label printer
94# +	atx38	Practical Automation ATX-38 label printer
95# +	deskjet  H-P DeskJet and DeskJet Plus
96#	djet500  H-P DeskJet 500; use -r600 for DJ 600 series
97# +	fs600	Kyocera FS-600 (600 dpi)
98# +	laserjet  H-P LaserJet
99# +	ljet2p	H-P LaserJet IId/IIp/III* with TIFF compression
100# +	ljet3	H-P LaserJet III* with Delta Row compression
101# +	ljet3d	H-P LaserJet IIID with duplex capability
102# +	ljet4	H-P LaserJet 4 (defaults to 600 dpi)
103# +	ljet4d	H-P LaserJet 4 (defaults to 600 dpi) with duplex
104# +	ljetplus  H-P LaserJet Plus
105#	lj5mono  H-P LaserJet 5 & 6 family (PCL XL), bitmap:
106#		see below for restrictions & advice
107#	lj5gray  H-P LaserJet 5 & 6 family, gray-scale bitmap;
108#		see below for restrictions & advice
109# *	lp2563	H-P 2563B line printer
110# *	oce9050  OCE 9050 printer
111#	(pxlmono) H-P black-and-white PCL XL printers (LaserJet 5 and 6 family)
112#	(pxlcolor) H-P color PCL XL printers (e.g. Color LaserJet 4500)
113# Fax file format:
114#   ****** NOTE: all of these drivers normally adjust the page size to match
115#   ****** one of the three CCITT standard sizes (U.S. letter with A4 width,
116#   ****** A4, or B4).  To suppress this, use -dAdjustWidth=0.
117#	faxg3	Group 3 fax, with EOLs but no header or EOD
118#	faxg32d  Group 3 2-D fax, with EOLs but no header or EOD
119#	faxg4	Group 4 fax, with EOLs but no header or EOD
120#	tiffcrle  TIFF "CCITT RLE 1-dim" (= Group 3 fax with no EOLs)
121#	tiffg3	TIFF Group 3 fax (with EOLs)
122#	tiffg32d  TIFF Group 3 2-D fax
123#	tiffg4	TIFF Group 4 fax
124# High-level file formats:
125#	epswrite  EPS output (like PostScript Distillery)
126#	pdfwrite  PDF output (like Adobe Acrobat Distiller)
127#	pswrite  PostScript output (like PostScript Distillery)
128#	pxlmono  Black-and-white PCL XL
129#	pxlcolor  Color PCL XL
130# Other raster file formats and devices:
131#	bit	Plain bits, monochrome
132#	bitrgb	Plain bits, RGB
133#	bitcmyk  Plain bits, CMYK
134#	bmpmono	Monochrome MS Windows .BMP file format
135#	bmpgray	8-bit gray .BMP file format
136#	bmpsep1	Separated 1-bit CMYK .BMP file format, primarily for testing
137#	bmpsep8	Separated 8-bit CMYK .BMP file format, primarily for testing
138#	bmp16	4-bit (EGA/VGA) .BMP file format
139#	bmp256	8-bit (256-color) .BMP file format
140#	bmp16m	24-bit .BMP file format
141#	bmp32b  32-bit pseudo-.BMP file format
142#	cgmmono  Monochrome (black-and-white) CGM -- LOW LEVEL OUTPUT ONLY
143#	cgm8	8-bit (256-color) CGM -- DITTO
144#	cgm24	24-bit color CGM -- DITTO
145#	jpeg	JPEG format, RGB output
146#	jpeggray  JPEG format, gray output
147#	miff24	ImageMagick MIFF format, 24-bit direct color, RLE compressed
148#	pam	Portable Arbitrary Map file format
149#	pcxmono	PCX file format, monochrome (1-bit black and white)
150#	pcxgray	PCX file format, 8-bit gray scale
151#	pcx16	PCX file format, 4-bit planar (EGA/VGA) color
152#	pcx256	PCX file format, 8-bit chunky color
153#	pcx24b	PCX file format, 24-bit color (3 8-bit planes)
154#	pcxcmyk PCX file format, 4-bit chunky CMYK color
155#	pbm	Portable Bitmap (plain format)
156#	pbmraw	Portable Bitmap (raw format)
157#	pgm	Portable Graymap (plain format)
158#	pgmraw	Portable Graymap (raw format)
159#	pgnm	Portable Graymap (plain format), optimizing to PBM if possible
160#	pgnmraw	Portable Graymap (raw format), optimizing to PBM if possible
161#	pnm	Portable Pixmap (plain format) (RGB), optimizing to PGM or PBM
162#		 if possible
163#	pnmraw	Portable Pixmap (raw format) (RGB), optimizing to PGM or PBM
164#		 if possible
165#	ppm	Portable Pixmap (plain format) (RGB)
166#	ppmraw	Portable Pixmap (raw format) (RGB)
167#	pkm	Portable inKmap (plain format) (4-bit CMYK => RGB)
168#	pkmraw	Portable inKmap (raw format) (4-bit CMYK => RGB)
169#	pksm	Portable Separated map (plain format) (4-bit CMYK => 4 pages)
170#	pksmraw	Portable Separated map (raw format) (4-bit CMYK => 4 pages)
171# *	plan9bm  Plan 9 bitmap format
172#	pngmono	Monochrome Portable Network Graphics (PNG)
173#	pnggray	8-bit gray Portable Network Graphics (PNG)
174#	png16	4-bit color Portable Network Graphics (PNG)
175#	png256	8-bit color Portable Network Graphics (PNG)
176#	png16m	24-bit color Portable Network Graphics (PNG)
177#	pngalpha 32-bit RGBA color Portable Network Graphics (PNG)
178#	psmono	PostScript (Level 1) monochrome image
179#	psgray	PostScript (Level 1) 8-bit gray image
180#	psrgb	PostScript (Level 2) 24-bit color image
181#	tiff12nc  TIFF 12-bit RGB, no compression
182#	tiff24nc  TIFF 24-bit RGB, no compression (NeXT standard format)
183#	tifflzw  TIFF LZW (tag = 5) (monochrome)
184#	tiffpack  TIFF PackBits (tag = 32773) (monochrome)
185
186# Note that MS Windows-specific drivers are defined in pcwin.mak, not here,
187# because they have special compilation requirements that require defining
188# parameter macros not relevant to other platforms; the OS/2-specific
189# drivers are there too, because they share some definitions.
190
191# User-contributed drivers marked with * require hardware or software
192# that is not available to Aladdin Enterprises.  Please contact the
193# original contributors, not Aladdin Enterprises, if you have questions.
194# Contact information appears in the driver entry below.
195#
196# Drivers marked with a + are maintained by Aladdin Enterprises with
197# the assistance of users, since Aladdin Enterprises doesn't have access to
198# the hardware for these either.
199
200# If you add drivers, it would be nice if you kept each list
201# in alphabetical order.
202
203###### ----------------------- End of catalog ----------------------- ######
204
205# As noted in gs.mak, DEVICE_DEVS and DEVICE_DEVS1..15 select the devices
206# that should be included in a given configuration.  By convention, these
207# are used as follows.  Each of these must be limited to about 6 devices
208# so as not to overflow the 120 character limit on MS-DOS command lines.
209#	DEVICE_DEVS - the default device, and any display devices.
210#	DEVICE_DEVS1 - additional display devices if needed.
211#	DEVICE_DEVS2 - dot matrix printers.
212#	DEVICE_DEVS3 - H-P monochrome printers.
213#	DEVICE_DEVS4 - H-P color printers.
214#	DEVICE_DEVS5 - additional inkjet printers if needed.
215#	DEVICE_DEVS6 - other ink-jet and laser printers.
216#	DEVICE_DEVS7 - fax file formats.
217#	DEVICE_DEVS8 - PCX file formats.
218#	DEVICE_DEVS9 - PBM/PGM/PPM file formats.
219#	DEVICE_DEVS10 - black-and-white TIFF file formats.
220#	DEVICE_DEVS11 - BMP and color TIFF file formats.
221#	DEVICE_DEVS12 - PostScript image and 'bit' file formats.
222#	DEVICE_DEVS13 - PNG file formats.
223#	DEVICE_DEVS14 - CGM, JPEG, and MIFF file formats.
224#	DEVICE_DEVS15 - high-level (PostScript and PDF) file formats.
225#	DEVICE_DEVS16 - additional high-level and utility drivers
226#	DEVICE_DEVS17 - (overflow for PC platforms)
227#	DEVICE_DEVS18 - (ditto)
228#	DEVICE_DEVS19 - (ditto)
229#	DEVICE_DEVS20 - (ditto)
230# Feel free to disregard this convention if it gets in your way.
231
232# If you want to add a new device driver, the examples below should be
233# enough of a guide to the correct form for the makefile rules.
234# Note that all drivers other than displays must include page.dev in their
235# dependencies and use $(SETPDEV) rather than $(SETDEV) in their rule bodies.
236
237# "Printer" drivers depend on the following:
238PDEVH=$(AK) $(gdevprn_h)
239
240# Define the header files for device drivers.  Every header file used by
241# more than one device driver family must be listed here.
242gdev8bcm_h=$(GLSRC)gdev8bcm.h
243gdevcbjc_h=$(GLSRC)gdevcbjc.h $(stream_h)
244gdevdcrd_h=$(GLSRC)gdevdcrd.h
245gdevpccm_h=$(GLSRC)gdevpccm.h
246gdevpcfb_h=$(GLSRC)gdevpcfb.h $(dos__h)
247gdevpcl_h=$(GLSRC)gdevpcl.h
248gdevpsu_h=$(GLSRC)gdevpsu.h
249gdevsvga_h=$(GLSRC)gdevsvga.h
250# Out of order
251gdevdljm_h=$(GLSRC)gdevdljm.h $(gdevpcl_h)
252
253###### ----------------------- Device support ----------------------- ######
254
255# Implement dynamic color management for 8-bit mapped color displays.
256$(GLOBJ)gdev8bcm.$(OBJ) : $(GLSRC)gdev8bcm.c $(AK)\
257 $(gx_h) $(gxdevice_h) $(gdev8bcm_h)
258	$(GLCC) $(GLO_)gdev8bcm.$(OBJ) $(C_) $(GLSRC)gdev8bcm.c
259
260# PC display color mapping
261$(GLOBJ)gdevpccm.$(OBJ) : $(GLSRC)gdevpccm.c $(AK)\
262 $(gx_h) $(gsmatrix_h) $(gxdevice_h) $(gdevpccm_h)
263	$(GLCC) $(GLO_)gdevpccm.$(OBJ) $(C_) $(GLSRC)gdevpccm.c
264
265# Generate Canon BJC command sequences.
266$(GLOBJ)gdevcbjc.$(OBJ) : $(GLSRC)gdevcbjc.c $(AK)\
267 $(std_h) $(stream_h) $(gdevcbjc_h)
268	$(GLCC) $(GLO_)gdevcbjc.$(OBJ) $(C_) $(GLSRC)gdevcbjc.c
269
270# Provide a sample device CRD.
271$(GLOBJ)gdevdcrd.$(OBJ) : $(GLSRC)gdevdcrd.c $(AK)\
272 $(math__h) $(memory__h) $(string__h)\
273 $(gscrd_h) $(gscrdp_h) $(gserrors_h) $(gsparam_h) $(gscspace_h)\
274 $(gx_h) $(gxdevcli_h) $(gdevdcrd_h)
275	$(GLCC) $(GLO_)gdevdcrd.$(OBJ) $(C_) $(GLSRC)gdevdcrd.c
276
277# Support for writing PostScript (high- or low-level).
278$(GLOBJ)gdevpsu.$(OBJ) : $(GLSRC)gdevpsu.c $(GX) $(math__h) $(time__h)\
279 $(gdevpsu_h) $(gscdefs_h) $(gxdevice_h)\
280 $(spprint_h) $(stream_h)
281	$(GLCC) $(GLO_)gdevpsu.$(OBJ) $(C_) $(GLSRC)gdevpsu.c
282
283###### ------------------- MS-DOS display devices ------------------- ######
284
285# There are really only three drivers: an EGA/VGA driver (4 bit-planes,
286# plane-addressed), a SuperVGA driver (8 bit-planes, byte addressed),
287# and a special driver for the S3 chip.
288
289### ----------------------- EGA and VGA displays ----------------------- ###
290
291# The shared MS-DOS makefile defines PCFBASM as either gdevegaa.$(OBJ)
292# or an empty string.
293
294$(GLOBJ)gdevegaa.$(OBJ) : $(GLSRC)gdevegaa.asm
295	$(GLCC) $(GLO_)gdevegaa.$(OBJ) $(C_) $(GLSRC)gdevegaa.c
296
297EGAVGA_DOS=$(GLOBJ)gdevevga.$(OBJ) $(GLOBJ)gdevpcfb.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ) $(PCFBASM)
298EGAVGA_SCO=$(GLOBJ)gdevsco.$(OBJ) $(GLOBJ)gdevpcfb.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ) $(PCFBASM)
299# NOTE: for direct frame buffer addressing under SCO Unix or Xenix,
300# change DOS to SCO in the following line.  Also, since SCO's /bin/as
301# does not support the "out" instructions, you must build the GNU
302# assembler and have it on your path as "as".
303EGAVGA=$(EGAVGA_DOS)
304
305#**************** $(CCD) gdevevga.c
306$(GLOBJ)gdevevga.$(OBJ) : $(GLSRC)gdevevga.c $(GDEV) $(memory__h) $(gdevpcfb_h)
307	$(GLCC) $(GLO_)gdevevga.$(OBJ) $(C_) $(GLSRC)gdevevga.c
308
309$(GLOBJ)gdevsco.$(OBJ) : $(GLSRC)gdevsco.c $(GDEV) $(memory__h) $(gdevpcfb_h)
310	$(GLCC) $(GLO_)gdevsco.$(OBJ) $(C_) $(GLSRC)gdevsco.c
311
312# Common code for MS-DOS and SCO.
313#**************** $(CCD) gdevpcfb.c
314$(GLOBJ)gdevpcfb.$(OBJ) : $(GLSRC)gdevpcfb.c $(GDEV) $(memory__h) $(gconfigv_h)\
315 $(gdevpccm_h) $(gdevpcfb_h) $(gsparam_h)
316	$(GLCC) $(GLO_)gdevpcfb.$(OBJ) $(C_) $(GLSRC)gdevpcfb.c
317
318# The EGA/VGA family includes EGA and VGA.  Many SuperVGAs in 800x600,
319# 16-color mode can share the same code; see the next section below.
320$(DD)ega.dev : $(DEVS_MAK) $(EGAVGA)
321	$(SETDEV) $(DD)ega $(EGAVGA)
322
323$(DD)vga.dev : $(DEVS_MAK) $(EGAVGA)
324	$(SETDEV) $(DD)vga $(EGAVGA)
325
326### ------------------------- SuperVGA displays ------------------------ ###
327
328# SuperVGA displays in 16-color, 800x600 mode are really just slightly
329# glorified VGA's, so we can handle them all with a single driver.
330# The way to select them on the command line is with
331#	-sDEVICE=svga16 -dDisplayMode=NNN
332# where NNN is the display mode in decimal.  See Use.htm for the modes
333# for some popular display chipsets.
334
335$(DD)svga16.dev : $(DEVS_MAK) $(EGAVGA)
336	$(SETDEV) $(DD)svga16 $(EGAVGA)
337
338# More capable SuperVGAs have a wide variety of slightly differing
339# interfaces, so we need a separate driver for each one.
340
341SVGA=$(GLOBJ)gdevsvga.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ) $(PCFBASM)
342
343#**************** $(CCD) gdevsvga.c
344$(GLOBJ)gdevsvga.$(OBJ) : $(GLSRC)gdevsvga.c $(GDEV) $(memory__h) $(gconfigv_h)\
345 $(gsparam_h) $(gxarith_h) $(gdevpccm_h) $(gdevpcfb_h) $(gdevsvga_h)
346	$(GLCC) $(GLO_)gdevsvga.$(OBJ) $(C_) $(GLSRC)gdevsvga.c
347
348# The SuperVGA family includes: Avance Logic Inc., ATI Wonder, S3,
349# Trident, Tseng ET3000/4000, and VESA.
350
351$(DD)ali.dev : $(DEVS_MAK) $(SVGA)
352	$(SETDEV) $(DD)ali $(SVGA)
353
354$(DD)atiw.dev : $(DEVS_MAK) $(SVGA)
355	$(SETDEV) $(DD)atiw $(SVGA)
356
357$(DD)cirr.dev : $(DEVS_MAK) $(SVGA)
358	$(SETDEV) $(DD)cirr $(SVGA)
359
360$(DD)tseng.dev : $(DEVS_MAK) $(SVGA)
361	$(SETDEV) $(DD)tseng $(SVGA)
362
363$(DD)tvga.dev : $(DEVS_MAK) $(SVGA)
364	$(SETDEV) $(DD)tvga $(SVGA)
365
366$(DD)vesa.dev : $(DEVS_MAK) $(SVGA)
367	$(SETDEV) $(DD)vesa $(SVGA)
368
369# The S3 driver doesn't share much code with the others.
370
371s3vga_=$(GLOBJ)gdevs3ga.$(OBJ) $(GLOBJ)gdevsvga.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ)
372$(DD)s3vga.dev : $(DEVS_MAK) $(SVGA) $(s3vga_)
373	$(SETDEV) $(DD)s3vga $(SVGA)
374	$(ADDMOD) $(DD)s3vga -obj $(s3vga_)
375
376#**************** $(CCD) gdevs3ga.c
377$(GLOBJ)gdevs3ga.$(OBJ) : $(GLSRC)gdevs3ga.c $(GDEV) $(gdevpcfb_h) $(gdevsvga_h)
378	$(GLCC) $(GLO_)gdevs3ga.$(OBJ) $(C_) $(GLSRC)gdevs3ga.c
379
380###### ----------------------- Other displays ------------------------ ######
381
382### ------------------ Display device for DLL platforms ----------------- ###
383
384display_=$(GLOBJ)gdevdsp.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ)
385$(DD)display.dev : $(display_)
386	$(SETDEV) $(DD)display $(display_)
387
388$(GLOBJ)gdevdsp.$(OBJ) : $(GLSRC)gdevdsp.c $(string__h)\
389 $(gp_h) $(gpcheck_h) $(gdevpccm_h) $(gsexit_h) $(gsparam_h)\
390 $(GDEVH) $(gxdevmem_h) $(gdevdsp_h) $(gdevdsp2_h)
391	$(GLCC) $(GLO_)gdevdsp.$(OBJ) $(C_) $(GLSRC)gdevdsp.c
392
393
394### ---------------------- Linux PC with vgalib ------------------------- ###
395### Note: these drivers were contributed by users.                        ###
396### For questions about the lvga256 driver, please contact                ###
397###       Ludger Kunz (ludger.kunz@fernuni-hagen.de).                     ###
398### For questions about the vgalib driver, please contact                 ###
399###       Erik Talvola (talvola@gnu.ai.mit.edu).                          ###
400### Note that the vgalib device supports only 16-color VGA modes.         ###
401
402lvga256_=$(GLOBJ)gdevl256.$(OBJ)
403$(DD)lvga256.dev : $(DEVS_MAK) $(lvga256_)
404	$(SETDEV) $(DD)lvga256 $(lvga256_)
405	$(ADDMOD) $(DD)lvga256 -lib vga vgagl
406
407$(GLOBJ)gdevl256.$(OBJ) : $(GLSRC)gdevl256.c $(GDEV) $(memory__h)
408	$(GLCCSHARED) $(GLO_)gdevl256.$(OBJ) $(C_) $(GLSRC)gdevl256.c
409
410vgalib_=$(GLOBJ)gdevvglb.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ)
411$(DD)vgalib.dev : $(DEVS_MAK) $(vgalib_)
412	$(SETDEV2) $(DD)vgalib $(vgalib_)
413	$(ADDMOD) $(DD)vgalib -lib vga
414
415$(GLOBJ)gdevvglb.$(OBJ) : $(GLSRC)gdevvglb.c $(GDEV) $(gdevpccm_h) $(gsparam_h)
416	$(GLCCSHARED) $(GLO_)gdevvglb.$(OBJ) $(C_) $(GLSRC)gdevvglb.c
417
418### -------------------------- The X11 device -------------------------- ###
419
420# Please note that Aladdin Enterprises does not support Ghostview.
421# For more information about Ghostview, please contact Tim Theisen
422# (ghostview@cs.wisc.edu).
423
424x__h=$(GLSRC)x_.h
425gdevxcmp_h=$(GLSRC)gdevxcmp.h
426gdevx_h=$(GLSRC)gdevx.h $(gdevbbox_h) $(gdevxcmp_h)
427
428# See the main makefile for the definition of XLIBDIRS and XLIBS.
429x11_=$(GLOBJ)gdevx.$(OBJ) $(GLOBJ)gdevxcmp.$(OBJ) $(GLOBJ)gdevxini.$(OBJ)\
430 $(GLOBJ)gdevxres.$(OBJ) $(GLOBJ)gdevxxf.$(OBJ)\
431 $(GLOBJ)gdevemap.$(OBJ) $(GLOBJ)gsparamx.$(OBJ)
432$(DD)x11_.dev : $(DEVS_MAK) $(x11_) $(GLD)bboxutil.dev
433	$(SETMOD) $(DD)x11_ $(x11_)
434	$(ADDMOD) $(DD)x11_ -link $(XLIBDIRS)
435	$(ADDMOD) $(DD)x11_ -lib $(XLIBS)
436	$(ADDMOD) $(DD)x11_ -include $(GLD)bboxutil
437
438$(DD)x11.dev : $(DEVS_MAK) $(DD)x11_.dev
439	$(SETDEV2) $(DD)x11 -include $(DD)x11_
440
441# See the main makefile for the definition of XINCLUDE.
442GDEVX=$(GDEV) $(x__h) $(gdevx_h) $(TOP_MAKEFILES)
443$(GLOBJ)gdevx.$(OBJ) : $(GLSRC)gdevx.c $(GDEVX) $(math__h) $(memory__h)\
444 $(gscoord_h) $(gsdevice_h) $(gsiparm2_h) $(gsmatrix_h) $(gsparam_h)\
445 $(gxdevmem_h) $(gxgetbit_h) $(gxiparam_h) $(gxpath_h)
446	$(GLCCSHARED) $(XINCLUDE) $(GLO_)gdevx.$(OBJ) $(C_) $(GLSRC)gdevx.c
447
448$(GLOBJ)gdevxcmp.$(OBJ) : $(GLSRC)gdevxcmp.c $(GDEVX) $(math__h)
449	$(GLCCSHARED) $(XINCLUDE) $(GLO_)gdevxcmp.$(OBJ) $(C_) $(GLSRC)gdevxcmp.c
450
451$(GLOBJ)gdevxini.$(OBJ) : $(GLSRC)gdevxini.c $(GDEVX) $(memory__h)\
452 $(gserrors_h) $(gsparamx_h) $(gxdevmem_h) $(gdevbbox_h)
453	$(GLCCSHARED) $(XINCLUDE) $(GLO_)gdevxini.$(OBJ) $(C_) $(GLSRC)gdevxini.c
454
455# We have to compile gdevxres without warnings, because there is a
456# const/non-const cast required by the X headers that we can't work around.
457$(GLOBJ)gdevxres.$(OBJ) : $(GLSRC)gdevxres.c $(std_h) $(x__h)\
458 $(gsmemory_h) $(gstypes_h) $(gxdevice_h) $(gdevx_h)
459	$(GLCCSHARED) $(XINCLUDE) $(GLO_)gdevxres.$(OBJ) $(C_) $(GLSRC)gdevxres.c
460
461$(GLOBJ)gdevxxf.$(OBJ) : $(GLSRC)gdevxxf.c $(GDEVX) $(math__h) $(memory__h)\
462 $(gsstruct_h) $(gsutil_h) $(gxxfont_h)
463	$(GLCCSHARED) $(XINCLUDE) $(GLO_)gdevxxf.$(OBJ) $(C_) $(GLSRC)gdevxxf.c
464
465# Alternate X11-based devices to help debug other drivers.
466# x11alpha pretends to have 4 bits of alpha channel.
467# x11cmyk pretends to be a CMYK device with 1 bit each of C,M,Y,K.
468# x11cmyk2 pretends to be a CMYK device with 2 bits each of C,M,Y,K.
469# x11cmyk4 pretends to be a CMYK device with 4 bits each of C,M,Y,K.
470# x11cmyk8 pretends to be a CMYK device with 8 bits each of C,M,Y,K.
471# x11gray2 pretends to be a 2-bit gray-scale device.
472# x11gray4 pretends to be a 4-bit gray-scale device.
473# x11mono pretends to be a black-and-white device.
474# x11rg16x pretends to be a G5/B5/R6 color device.
475# x11rg16x pretends to be a G11/B10/R11 color device.
476x11alt_=$(GLOBJ)gdevxalt.$(OBJ)
477$(DD)x11alt_.dev : $(DEVS_MAK) $(x11alt_) $(DD)x11_.dev
478	$(SETMOD) $(DD)x11alt_ $(x11alt_)
479	$(ADDMOD) $(DD)x11alt_ -include $(DD)x11_
480
481$(DD)x11alpha.dev : $(DEVS_MAK) $(DD)x11alt_.dev
482	$(SETDEV2) $(DD)x11alpha -include $(DD)x11alt_
483
484$(DD)x11cmyk.dev : $(DEVS_MAK) $(DD)x11alt_.dev
485	$(SETDEV2) $(DD)x11cmyk -include $(DD)x11alt_
486
487$(DD)x11cmyk2.dev : $(DEVS_MAK) $(DD)x11alt_.dev
488	$(SETDEV2) $(DD)x11cmyk2 -include $(DD)x11alt_
489
490$(DD)x11cmyk4.dev : $(DEVS_MAK) $(DD)x11alt_.dev
491	$(SETDEV2) $(DD)x11cmyk4 -include $(DD)x11alt_
492
493$(DD)x11cmyk8.dev : $(DEVS_MAK) $(DD)x11alt_.dev
494	$(SETDEV2) $(DD)x11cmyk8 -include $(DD)x11alt_
495
496$(DD)x11gray2.dev : $(DEVS_MAK) $(DD)x11alt_.dev
497	$(SETDEV2) $(DD)x11gray2 -include $(DD)x11alt_
498
499$(DD)x11gray4.dev : $(DEVS_MAK) $(DD)x11alt_.dev
500	$(SETDEV2) $(DD)x11gray4 -include $(DD)x11alt_
501
502$(DD)x11mono.dev : $(DEVS_MAK) $(DD)x11alt_.dev
503	$(SETDEV2) $(DD)x11mono -include $(DD)x11alt_
504
505$(DD)x11rg16x.dev : $(DEVS_MAK) $(DD)x11alt_.dev
506	$(SETDEV2) $(DD)x11rg16x -include $(DD)x11alt_
507
508$(DD)x11rg32x.dev : $(DEVS_MAK) $(DD)x11alt_.dev
509	$(SETDEV2) $(DD)x11rg32x -include $(DD)x11alt_
510
511$(GLOBJ)gdevxalt.$(OBJ) : $(GLSRC)gdevxalt.c $(GDEVX) $(math__h) $(memory__h)\
512 $(gsdevice_h) $(gsparam_h) $(gsstruct_h)
513	$(GLCCSHARED) $(XINCLUDE) $(GLO_)gdevxalt.$(OBJ) $(C_) $(GLSRC)gdevxalt.c
514
515### Shared library object supporting X11.
516### NON PORTABLE, ONLY UNIX WITH GCC SUPPORT
517
518$(GLOBJ)X11.so : $(x11alt_) $(x11_)
519	$(CCLD) $(LDFLAGS) -shared -o $(GLOBJ)X11.so $(x11alt_) $(x11_) -L${LOCALBASE}/lib -lXt -lSM -lICE -lXext -lX11 $(XLIBDIRS)
520
521###### --------------- Memory-buffered printer devices --------------- ######
522
523### ---------------- Practical Automation label printers ---------------- ###
524
525atx_=$(GLOBJ)gdevatx.$(OBJ)
526
527$(DD)atx23.dev : $(DEVS_MAK) $(atx_) $(GLD)page.dev
528	$(SETPDEV2) $(DD)atx23 $(atx_)
529
530$(DD)atx24.dev : $(DEVS_MAK) $(atx_) $(GLD)page.dev
531	$(SETPDEV2) $(DD)atx24 $(atx_)
532
533$(DD)atx38.dev : $(DEVS_MAK) $(atx_) $(GLD)page.dev
534	$(SETPDEV2) $(DD)atx38 $(atx_)
535
536$(GLOBJ)gdevatx.$(OBJ) : $(GLSRC)gdevatx.c $(PDEVH) $(math__h)
537	$(GLCC) $(GLO_)gdevatx.$(OBJ) $(C_) $(GLSRC)gdevatx.c
538
539### ----------- The H-P DeskJet and LaserJet printer devices ----------- ###
540
541### These are essentially the same device.
542### NOTE: printing at full resolution (300 DPI) requires a printer
543###   with at least 1.5 Mb of memory.  150 DPI only requires .5 Mb.
544### Note that the lj4dith driver is included with the H-P color printer
545###   drivers below.
546### For questions about the fs600 device, please contact                  ###
547### Peter Schildmann (peter.schildmann@etechnik.uni-rostock.de).          ###
548
549HPPCL=$(GLOBJ)gdevpcl.$(OBJ)
550HPDLJM=$(GLOBJ)gdevdljm.$(OBJ) $(HPPCL)
551HPMONO=$(GLOBJ)gdevdjet.$(OBJ) $(HPDLJM)
552
553$(GLOBJ)gdevpcl.$(OBJ) : $(GLSRC)gdevpcl.c $(PDEVH) $(gdevpcl_h)
554	$(GLCC) $(GLO_)gdevpcl.$(OBJ) $(C_) $(GLSRC)gdevpcl.c
555
556$(GLOBJ)gdevdljm.$(OBJ) : $(GLSRC)gdevdljm.c $(PDEVH) $(gdevdljm_h)
557	$(GLCC) $(GLO_)gdevdljm.$(OBJ) $(C_) $(GLSRC)gdevdljm.c
558
559$(GLOBJ)gdevdjet.$(OBJ) : $(GLSRC)gdevdjet.c $(PDEVH) $(gdevdljm_h)
560	$(GLCC) $(GLO_)gdevdjet.$(OBJ) $(C_) $(GLSRC)gdevdjet.c
561
562$(DD)deskjet.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev
563	$(SETPDEV2) $(DD)deskjet $(HPMONO)
564
565$(DD)djet500.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev
566	$(SETPDEV2) $(DD)djet500 $(HPMONO)
567
568$(DD)fs600.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev
569	$(SETPDEV2) $(DD)fs600 $(HPMONO)
570
571$(DD)laserjet.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev
572	$(SETPDEV2) $(DD)laserjet $(HPMONO)
573
574$(DD)ljetplus.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev
575	$(SETPDEV2) $(DD)ljetplus $(HPMONO)
576
577### Selecting ljet2p provides TIFF (mode 2) compression on LaserJet III,
578### IIIp, IIId, IIIsi, IId, and IIp.
579
580$(DD)ljet2p.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev
581	$(SETPDEV2) $(DD)ljet2p $(HPMONO)
582
583### Selecting ljet3 provides Delta Row (mode 3) compression on LaserJet III,
584### IIIp, IIId, IIIsi.
585
586$(DD)ljet3.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev
587	$(SETPDEV2) $(DD)ljet3 $(HPMONO)
588
589### Selecting ljet3d also provides duplex printing capability.
590
591$(DD)ljet3d.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev
592	$(SETPDEV2) $(DD)ljet3d $(HPMONO)
593
594### Selecting ljet4 or ljet4d also provides Delta Row compression on
595### LaserJet IV series.
596
597$(DD)ljet4.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev
598	$(SETPDEV2) $(DD)ljet4 $(HPMONO)
599
600$(DD)ljet4d.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev
601	$(SETPDEV2) $(DD)ljet4d $(HPMONO)
602
603$(DD)lp2563.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev
604	$(SETPDEV2) $(DD)lp2563 $(HPMONO)
605
606$(DD)oce9050.dev : $(DEVS_MAK) $(HPMONO) $(GLD)page.dev
607	$(SETPDEV2) $(DD)oce9050 $(HPMONO)
608
609### ------------------ The H-P LaserJet 5 and 6 devices ----------------- ###
610
611### These drivers use H-P's new PCL XL printer language, like H-P's
612### LaserJet 5 Enhanced driver for MS Windows.  We don't recommend using
613### them:
614###	- If you have a LJ 5L or 5P, which isn't a "real" LaserJet 5,
615###	use the ljet4 driver instead.  (The lj5 drivers won't work.)
616###	- If you have any other model of LJ 5 or 6, use the pxlmono
617###	driver, which often produces much more compact output.
618
619gdevpxat_h=$(GLSRC)gdevpxat.h
620gdevpxen_h=$(GLSRC)gdevpxen.h
621gdevpxop_h=$(GLSRC)gdevpxop.h
622gdevpxut_h=$(GLSRC)gdevpxut.h
623
624
625$(GLOBJ)gdevpxut.$(OBJ) : $(GLSRC)gdevpxut.c $(math__h) $(string__h)\
626 $(gx_h) $(gxdevcli_h) $(stream_h)\
627 $(gdevpxat_h) $(gdevpxen_h) $(gdevpxop_h) $(gdevpxut_h)
628	$(GLCC) $(GLO_)gdevpxut.$(OBJ) $(C_) $(GLSRC)gdevpxut.c
629
630ljet5_=$(GLOBJ)gdevlj56.$(OBJ) $(GLOBJ)gdevpxut.$(OBJ) $(HPPCL)
631$(DD)lj5mono.dev : $(DEVS_MAK) $(ljet5_) $(GLD)page.dev
632	$(SETPDEV) $(DD)lj5mono $(ljet5_)
633
634$(DD)lj5gray.dev : $(DEVS_MAK) $(ljet5_) $(GLD)page.dev
635	$(SETPDEV) $(DD)lj5gray $(ljet5_)
636
637$(GLOBJ)gdevlj56.$(OBJ) : $(GLSRC)gdevlj56.c $(PDEVH) $(gdevpcl_h)\
638 $(gdevpxat_h) $(gdevpxen_h) $(gdevpxop_h) $(gdevpxut_h) $(stream_h)
639	$(GLCC) $(GLO_)gdevlj56.$(OBJ) $(C_) $(GLSRC)gdevlj56.c
640
641### -------------------- The ijs client ----------------- ###
642
643ijs_=$(GLOBJ)gdevijs.$(OBJ) $(IJSOBJ)ijs.$(OBJ) $(IJSOBJ)ijs_client.$(OBJ) \
644 $(IJSOBJ)ijs_exec_$(IJSEXECTYPE).$(OBJ)
645
646$(DD)ijs.dev : $(ijs_) $(GLD)page.dev $(DD)ijslib.dev
647	$(SETPDEV) $(DD)ijs $(ijs_)
648
649$(GLOBJ)gdevijs.$(OBJ) : $(GLSRC)gdevijs.c $(PDEVH) \
650 $(ijs_h) $(ijs_client_h) $(gp_h) $(unistd__h)
651	$(CC_) $(I_)$(GLI_) $(II)$(IJSI_)$(_I) $(GLF_) $(GLO_)gdevijs.$(OBJ) $(C_) $(GLSRC)gdevijs.c
652
653# Please see ijs.mak for the Makefile fragment which builds the IJS
654# library.
655
656
657###### ------------------- High-level file formats ------------------- ######
658
659# Support for PostScript and PDF
660
661gdevpsdf_h=$(GLSRC)gdevpsdf.h $(gdevvec_h) $(gsparam_h)\
662 $(sa85x_h) $(scfx_h) $(spsdf_h) $(strimpl_h)
663gdevpsds_h=$(GLSRC)gdevpsds.h $(strimpl_h)
664
665psdf_1=$(GLOBJ)gdevpsdi.$(OBJ) $(GLOBJ)gdevpsdp.$(OBJ)
666psdf_2=$(GLOBJ)gdevpsds.$(OBJ) $(GLOBJ)gdevpsdu.$(OBJ)
667psdf_3=$(GLOBJ)scfparam.$(OBJ) $(GLOBJ)sdcparam.$(OBJ) $(GLOBJ)sdeparam.$(OBJ)
668psdf_4=$(GLOBJ)spprint.$(OBJ) $(GLOBJ)spsdf.$(OBJ) $(GLOBJ)sstring.$(OBJ)
669psdf_5=$(GLOBJ)gsparamx.$(OBJ)
670psdf_=$(psdf_1) $(psdf_2) $(psdf_3) $(psdf_4) $(psdf_5)
671psdf_inc1=$(GLD)vector.dev $(GLD)pngp.dev $(GLD)seexec.dev
672psdf_inc2=$(GLD)sdcte.dev $(GLD)slzwe.dev $(GLD)szlibe.dev
673psdf_inc=$(psdf_inc1) $(psdf_inc2)
674$(DD)psdf.dev : $(DEVS_MAK) $(ECHOGS_XE) $(psdf_) $(psdf_inc)
675	$(SETMOD) $(DD)psdf $(psdf_1)
676	$(ADDMOD) $(DD)psdf -obj $(psdf_2)
677	$(ADDMOD) $(DD)psdf -obj $(psdf_3)
678	$(ADDMOD) $(DD)psdf -obj $(psdf_4)
679	$(ADDMOD) $(DD)psdf -obj $(psdf_5)
680	$(ADDMOD) $(DD)psdf -include $(psdf_inc1)
681	$(ADDMOD) $(DD)psdf -include $(psdf_inc2)
682
683$(GLOBJ)gdevpsdi.$(OBJ) : $(GLSRC)gdevpsdi.c $(GXERR)\
684 $(jpeglib__h) $(math__h) $(stdio__h)\
685 $(gscspace_h)\
686 $(scfx_h) $(sdct_h) $(sjpeg_h) $(slzwx_h) $(srlx_h) $(spngpx_h)\
687 $(strimpl_h) $(szlibx_h)\
688 $(gdevpsdf_h) $(gdevpsds_h)
689	$(GLJCC) $(GLO_)gdevpsdi.$(OBJ) $(C_) $(GLSRC)gdevpsdi.c
690
691$(GLOBJ)gdevpsdp.$(OBJ) : $(GLSRC)gdevpsdp.c $(GDEVH)\
692 $(string__h) $(jpeglib__h)\
693 $(scfx_h) $(sdct_h) $(slzwx_h) $(srlx_h) $(strimpl_h) $(szlibx_h)\
694 $(gsparamx_h) $(gsutil_h) $(gdevpsdf_h) $(spprint_h)
695	$(GLJCC) $(GLO_)gdevpsdp.$(OBJ) $(C_) $(GLSRC)gdevpsdp.c
696
697$(GLOBJ)gdevpsds.$(OBJ) : $(GLSRC)gdevpsds.c $(GX) $(memory__h)\
698 $(gdevpsds_h) $(gserrors_h) $(gxdcconv_h)
699	$(GLCC) $(GLO_)gdevpsds.$(OBJ) $(C_) $(GLSRC)gdevpsds.c
700
701$(GLOBJ)gdevpsdu.$(OBJ) : $(GLSRC)gdevpsdu.c $(GXERR)\
702 $(jpeglib__h) $(memory__h) $(stdio__h)\
703 $(gxfont_h)\
704 $(sa85x_h) $(scanchar_h) $(scfx_h) $(sdct_h) $(sjpeg_h) $(sstring_h) $(strimpl_h)\
705 $(gdevpsdf_h) $(spprint_h)
706	$(GLJCC) $(GLO_)gdevpsdu.$(OBJ) $(C_) $(GLSRC)gdevpsdu.c
707
708# PostScript and EPS writers
709
710pswrite_=$(GLOBJ)gdevps.$(OBJ) $(GLOBJ)gdevpsu.$(OBJ) $(GLOBJ)scantab.$(OBJ) $(GLOBJ)sfilter2.$(OBJ)
711$(DD)epswrite.dev : $(DEVS_MAK) $(ECHOGS_XE) $(pswrite_) $(GLD)psdf.dev
712	$(SETDEV2) $(DD)epswrite $(pswrite_)
713	$(ADDMOD) $(DD)epswrite -include $(GLD)psdf
714
715$(DD)pswrite.dev : $(DEVS_MAK) $(ECHOGS_XE) $(pswrite_) $(GLD)psdf.dev
716	$(SETDEV2) $(DD)pswrite $(pswrite_)
717	$(ADDMOD) $(DD)pswrite -include $(GLD)psdf
718
719$(GLOBJ)gdevps.$(OBJ) : $(GLSRC)gdevps.c $(GDEV)\
720 $(math__h) $(memory__h) $(time__h)\
721 $(gscdefs_h) $(gscspace_h) $(gsline_h) $(gsparam_h) $(gsiparam_h) $(gsmatrix_h)\
722 $(gxdcolor_h) $(gxpath_h)\
723 $(sa85x_h) $(sstring_h) $(strimpl_h)\
724 $(gdevpsdf_h) $(gdevpsu_h) $(spprint_h)
725	$(GLCC) $(GLO_)gdevps.$(OBJ) $(C_) $(GLSRC)gdevps.c
726
727# PDF writer
728# Note that gs_pdfwr.ps will only actually be loaded if the configuration
729# includes a PostScript interpreter.
730
731# We reserve slots here for gdevpdfa...z, just in case we need them.
732pdfwrite1_=$(GLOBJ)gdevpdf.$(OBJ) $(GLOBJ)gdevpdfb.$(OBJ)
733pdfwrite2_=$(GLOBJ)gdevpdfc.$(OBJ) $(GLOBJ)gdevpdfd.$(OBJ) $(GLOBJ)gdevpdfe.$(OBJ)
734pdfwrite3_=$(GLOBJ)gdevpdff.$(OBJ) $(GLOBJ)gdevpdfg.$(OBJ)
735pdfwrite4_=$(GLOBJ)gdevpdfi.$(OBJ) $(GLOBJ)gdevpdfj.$(OBJ)
736pdfwrite5_=$(GLOBJ)gdevpdfm.$(OBJ)
737pdfwrite6_=$(GLOBJ)gdevpdfo.$(OBJ) $(GLOBJ)gdevpdfp.$(OBJ)
738pdfwrite7_=$(GLOBJ)gdevpdfr.$(OBJ) $(GLOBJ)gdevpdfs.$(OBJ) $(GLOBJ)gdevpdft.$(OBJ)
739pdfwrite8_=$(GLOBJ)gdevpdfu.$(OBJ) $(GLOBJ)gdevpdfv.$(OBJ) $(GLOBJ)gdevpdfw.$(OBJ)
740pdfwrite9_=
741pdfwrite10_=$(GLOBJ)gsflip.$(OBJ)
742pdfwrite11_=$(GLOBJ)scantab.$(OBJ) $(GLOBJ)sfilter2.$(OBJ)
743pdfwrite_=$(pdfwrite1_) $(pdfwrite2_) $(pdfwrite3_) $(pdfwrite4_)\
744 $(pdfwrite5_) $(pdfwrite6_) $(pdfwrite7_) $(pdfwrite8_) $(pdfwrite9_)\
745 $(pdfwrite10_) $(pdfwrite11_)
746# Including the DSC parser here is clearly wrong: it requires a PostScript
747# interpreter.  We aren't sure what to do about this yet.
748# Including macglyph is also wrong: loading the Mac glyph table also
749# requires a PostScript interpreter.
750$(DD)pdfwrite.dev : $(DEVS_MAK) $(ECHOGS_XE) $(pdfwrite_)\
751 $(GLD)cmyklib.dev $(GLD)cfe.dev $(GLD)lzwe.dev\
752 $(GLD)rle.dev $(GLD)sdcte.dev $(GLD)sdeparam.dev $(GLD)smd5.dev\
753 $(GLD)szlibe.dev $(GLD)psdf.dev $(GLD)psf.dev\
754 $(PSD)dscparse.dev $(PSD)macglyph.dev
755	$(SETDEV2) $(DD)pdfwrite $(pdfwrite1_)
756	$(ADDMOD) $(DD)pdfwrite $(pdfwrite2_)
757	$(ADDMOD) $(DD)pdfwrite $(pdfwrite3_)
758	$(ADDMOD) $(DD)pdfwrite $(pdfwrite4_)
759	$(ADDMOD) $(DD)pdfwrite $(pdfwrite5_)
760	$(ADDMOD) $(DD)pdfwrite $(pdfwrite6_)
761	$(ADDMOD) $(DD)pdfwrite $(pdfwrite7_)
762	$(ADDMOD) $(DD)pdfwrite $(pdfwrite8_)
763	$(ADDMOD) $(DD)pdfwrite $(pdfwrite9_)
764	$(ADDMOD) $(DD)pdfwrite $(pdfwrite10_)
765	$(ADDMOD) $(DD)pdfwrite $(pdfwrite11_)
766	$(ADDMOD) $(DD)pdfwrite -ps gs_pdfwr
767	$(ADDMOD) $(DD)pdfwrite -ps gs_css_e gs_lgo_e gs_lgx_e gs_mex_e
768	$(ADDMOD) $(DD)pdfwrite -ps gs_wan_e
769	$(ADDMOD) $(DD)pdfwrite -include $(GLD)cmyklib $(GLD)cfe $(GLD)lzwe
770	$(ADDMOD) $(DD)pdfwrite -include $(GLD)rle $(GLD)sdcte $(GLD)sdeparam
771	$(ADDMOD) $(DD)pdfwrite -include $(GLD)smd5 $(GLD)szlibe
772	$(ADDMOD) $(DD)pdfwrite -include $(GLD)psdf $(GLD)psf
773	$(ADDMOD) $(DD)pdfwrite -include $(PSD)dscparse $(PSD)macglyph
774
775gdevpdff_h=$(GLSRC)gdevpdff.h
776gdevpdfg_h=$(GLSRC)gdevpdfg.h $(gscspace_h)
777gdevpdfo_h=$(GLSRC)gdevpdfo.h $(gsparam_h)
778gdevpdfx_h=$(GLSRC)gdevpdfx.h\
779 $(gsparam_h) $(gsuid_h) $(gxdevice_h) $(gxfont_h) $(gxline_h)\
780 $(spprint_h) $(stream_h) $(gdevpsdf_h)
781
782$(GLOBJ)gdevpdf.$(OBJ) : $(GLSRC)gdevpdf.c $(GDEVH)\
783 $(memory__h) $(string__h) $(gp_h)\
784 $(gdevpdff_h) $(gdevpdfg_h) $(gdevpdfo_h) $(gdevpdfx_h)
785	$(GLCC) $(GLO_)gdevpdf.$(OBJ) $(C_) $(GLSRC)gdevpdf.c
786
787$(GLOBJ)gdevpdfb.$(OBJ) : $(GLSRC)gdevpdfb.c\
788 $(string__h) $(gx_h)\
789 $(gdevpdff_h) $(gdevpdfg_h) $(gdevpdfo_h) $(gdevpdfx_h)\
790 $(gserrors_h) $(gxcspace_h)
791	$(GLCC) $(GLO_)gdevpdfb.$(OBJ) $(C_) $(GLSRC)gdevpdfb.c
792
793$(GLOBJ)gdevpdfc.$(OBJ) : $(GLSRC)gdevpdfc.c $(GXERR) $(math__h) $(memory__h)\
794 $(gdevpdfg_h) $(gdevpdfo_h) $(gdevpdfx_h)\
795 $(gscie_h) $(gscindex_h) $(gscspace_h) $(gscdevn_h) $(gscsepr_h) $(gsicc_h)\
796 $(sstring_h) $(stream_h) $(strimpl_h)
797	$(GLCC) $(GLO_)gdevpdfc.$(OBJ) $(C_) $(GLSRC)gdevpdfc.c
798
799$(GLOBJ)gdevpdfd.$(OBJ) : $(GLSRC)gdevpdfd.c $(math__h)\
800 $(gdevpdfg_h) $(gdevpdfx_h)\
801 $(gx_h) $(gxdevice_h) $(gxfixed_h) $(gxistate_h) $(gxpaint_h)\
802 $(gzcpath_h) $(gzpath_h)
803	$(GLCC) $(GLO_)gdevpdfd.$(OBJ) $(C_) $(GLSRC)gdevpdfd.c
804
805$(GLOBJ)gdevpdfe.$(OBJ) : $(GLSRC)gdevpdfe.c\
806 $(memory__h) $(string__h) $(gx_h)\
807 $(gdevpdff_h) $(gdevpdfx_h) $(gdevpsf_h)\
808 $(gserrors_h) $(gsmatrix_h)\
809 $(gxfcid_h) $(gxfont_h) $(gxfont0_h)\
810 $(scommon_h)
811	$(GLCC) $(GLO_)gdevpdfe.$(OBJ) $(C_) $(GLSRC)gdevpdfe.c
812
813$(GLOBJ)gdevpdff.$(OBJ) : $(GLSRC)gdevpdff.c\
814 $(ctype__h) $(math__h) $(memory__h) $(string__h) $(gx_h)\
815 $(gdevpdff_h) $(gdevpdfo_h) $(gdevpdfx_h) $(gdevpsf_h)\
816 $(gserrors_h) $(gsmalloc_h) $(gsmatrix_h) $(gspath_h) $(gsutil_h)\
817 $(gxfcache_h) $(gxfcid_h) $(gxfixed_h) $(gxfont_h) $(gxfont1_h) $(gxfont42_h)\
818 $(gxpath_h)\
819 $(scommon_h)
820	$(GLCC) $(GLO_)gdevpdff.$(OBJ) $(C_) $(GLSRC)gdevpdff.c
821
822$(GLOBJ)gdevpdfg.$(OBJ) : $(GLSRC)gdevpdfg.c $(GXERR) $(math__h) $(string__h)\
823 $(gdevpdfg_h) $(gdevpdfo_h) $(gdevpdfx_h)\
824 $(gsfunc0_h) $(gsstate_h)\
825 $(gxbitmap_h) $(gxdht_h) $(gxfarith_h) $(gxfmap_h) $(gxht_h) $(gxistate_h)\
826 $(gzht_h)\
827 $(szlibx_h)
828	$(GLCC) $(GLO_)gdevpdfg.$(OBJ) $(C_) $(GLSRC)gdevpdfg.c
829
830$(GLOBJ)gdevpdfi.$(OBJ) : $(GLSRC)gdevpdfi.c\
831 $(gx_h)\
832 $(gdevpdfg_h) $(gdevpdfo_h) $(gdevpdfx_h)\
833 $(gsdevice_h) $(gserrors_h) $(gsflip_h) $(gsiparm4_h)\
834 $(gxcspace_h) $(gximage3_h) $(gximag3x_h)
835	$(GLCC) $(GLO_)gdevpdfi.$(OBJ) $(C_) $(GLSRC)gdevpdfi.c
836
837$(GLOBJ)gdevpdfj.$(OBJ) : $(GLSRC)gdevpdfj.c\
838 $(memory__h) $(string__h) $(gx_h)\
839 $(gdevpdfg_h) $(gdevpdfo_h) $(gdevpdfx_h)\
840 $(gserrors_h) $(gsiparm4_h) $(gxcspace_h)
841	$(GLJCC) $(GLO_)gdevpdfj.$(OBJ) $(C_) $(GLSRC)gdevpdfj.c
842
843$(GLOBJ)gdevpdfm.$(OBJ) : $(GLSRC)gdevpdfm.c\
844 $(math__h) $(memory__h) $(string__h) $(gx_h)\
845 $(gdevpdfo_h) $(gdevpdfx_h) $(gserrors_h) $(gsutil_h) $(scanchar_h)
846	$(GLCC) $(GLO_)gdevpdfm.$(OBJ) $(C_) $(GLSRC)gdevpdfm.c
847
848$(GLOBJ)gdevpdfo.$(OBJ) : $(GLSRC)gdevpdfo.c $(memory__h) $(string__h)\
849 $(gx_h)\
850 $(gdevpdfo_h) $(gdevpdfx_h) $(gserrors_h) $(gsparam_h) $(gsutil_h)\
851 $(sa85x_h) $(slzwx_h) $(sstring_h) $(strimpl_h) $(szlibx_h)
852	$(GLCC) $(GLO_)gdevpdfo.$(OBJ) $(C_) $(GLSRC)gdevpdfo.c
853
854$(GLOBJ)gdevpdfp.$(OBJ) : $(GLSRC)gdevpdfp.c $(memory__h) $(string__h) $(gx_h)\
855 $(gdevpdfo_h) $(gdevpdfx_h) $(gserrors_h) $(gsparamx_h)
856	$(GLCC) $(GLO_)gdevpdfp.$(OBJ) $(C_) $(GLSRC)gdevpdfp.c
857
858$(GLOBJ)gdevpdfr.$(OBJ) : $(GLSRC)gdevpdfr.c $(memory__h) $(string__h)\
859 $(gx_h)\
860 $(gdevpdfo_h) $(gdevpdfx_h) $(gserrors_h) $(gsutil_h)\
861 $(scanchar_h) $(sstring_h) $(strimpl_h)
862	$(GLCC) $(GLO_)gdevpdfr.$(OBJ) $(C_) $(GLSRC)gdevpdfr.c
863
864$(GLOBJ)gdevpdfs.$(OBJ) : $(GLSRC)gdevpdfs.c\
865 $(math__h) $(memory__h) $(string__h) $(gx_h)\
866 $(gdevpdff_h) $(gdevpdfg_h) $(gdevpdfo_h) $(gdevpdfx_h) $(gdevpsf_h)\
867 $(gserrors_h) $(gsmatrix_h) $(gsutil_h)\
868 $(gxfcache_h) $(gxfcid_h) $(gxfcmap_h) $(gxfixed_h) $(gxfont_h)\
869 $(gxfont0_h) $(gxfont1_h) $(gxfont42_h) $(gxpath_h)\
870 $(scommon_h)
871	$(GLCC) $(GLO_)gdevpdfs.$(OBJ) $(C_) $(GLSRC)gdevpdfs.c
872
873$(GLOBJ)gdevpdft.$(OBJ) : $(GLSRC)gdevpdft.c\
874 $(math__h) $(memory__h) $(string__h) $(gx_h)\
875 $(gdevpdff_h) $(gdevpdfg_h) $(gdevpdfx_h)\
876 $(gserrors_h) $(gxpath_h)\
877 $(scommon_h)
878	$(GLCC) $(GLO_)gdevpdft.$(OBJ) $(C_) $(GLSRC)gdevpdft.c
879
880$(GLOBJ)gdevpdfu.$(OBJ) : $(GLSRC)gdevpdfu.c $(GXERR)\
881 $(jpeglib__h) $(memory__h) $(string__h)\
882 $(gdevpdfo_h) $(gdevpdfx_h) $(gscdefs_h)\
883 $(gsdsrc_h) $(gsfunc_h)\
884 $(sa85x_h) $(scanchar_h) $(scfx_h) $(sdct_h) $(slzwx_h) $(spngpx_h)\
885 $(srlx_h) $(sstring_h) $(strimpl_h) $(szlibx_h)
886	$(GLCC) $(GLO_)gdevpdfu.$(OBJ) $(C_) $(GLSRC)gdevpdfu.c
887
888$(GLOBJ)gdevpdfv.$(OBJ) : $(GLSRC)gdevpdfv.c $(GXERR) $(math__h) $(string__h)\
889 $(gdevpdfg_h) $(gdevpdfo_h) $(gdevpdfx_h)\
890 $(gscindex_h) $(gscoord_h) $(gsiparm3_h) $(gsmatrix_h) $(gsptype2_h)\
891 $(gxcolor2_h) $(gxdcolor_h) $(gxpcolor_h) $(gxshade_h)\
892 $(szlibx_h)
893	$(GLCC) $(GLO_)gdevpdfv.$(OBJ) $(C_) $(GLSRC)gdevpdfv.c
894
895$(GLOBJ)gdevpdfw.$(OBJ) : $(GLSRC)gdevpdfw.c\
896 $(memory__h) $(string__h) $(gx_h)\
897 $(gdevpdff_h) $(gdevpdfx_h) $(gdevpsf_h)\
898 $(gsalloc_h) $(gsbittab_h) $(gserrors_h) $(gsmatrix_h) $(gsutil_h)\
899 $(gxfcid_h) $(gxfcmap_h) $(gxfont_h) $(gxfont0_h)\
900 $(scommon_h)
901	$(GLCC) $(GLO_)gdevpdfw.$(OBJ) $(C_) $(GLSRC)gdevpdfw.c
902
903# High-level PCL XL writer
904
905pxl_=$(GLOBJ)gdevpx.$(OBJ) $(GLOBJ)gdevpxut.$(OBJ)
906$(DD)pxlmono.dev : $(DEVS_MAK) $(pxl_) $(GDEV) $(GLD)vector.dev
907	$(SETDEV2) $(DD)pxlmono $(pxl_)
908	$(ADDMOD) $(DD)pxlmono -include $(GLD)vector
909
910$(DD)pxlcolor.dev : $(DEVS_MAK) $(pxl_) $(GDEV) $(GLD)vector.dev
911	$(SETDEV2) $(DD)pxlcolor $(pxl_)
912	$(ADDMOD) $(DD)pxlcolor -include $(GLD)vector
913
914$(GLOBJ)gdevpx.$(OBJ) : $(GLSRC)gdevpx.c\
915 $(math__h) $(memory__h) $(string__h)\
916 $(gx_h) $(gsccolor_h) $(gsdcolor_h) $(gserrors_h)\
917 $(gxcspace_h) $(gxdevice_h) $(gxpath_h)\
918 $(gdevpxat_h) $(gdevpxen_h) $(gdevpxop_h) $(gdevpxut_h) $(gdevvec_h)\
919 $(srlx_h) $(strimpl_h)
920	$(GLCC) $(GLO_)gdevpx.$(OBJ) $(C_) $(GLSRC)gdevpx.c
921
922###### --------------------- Raster file formats --------------------- ######
923
924### --------------------- The "plain bits" devices ---------------------- ###
925
926# This device also exercises the driver CRD facilities, which is why it
927# needs some additional files.
928
929bit_=$(GLOBJ)gdevbit.$(OBJ) $(GLOBJ)gdevdcrd.$(OBJ)
930
931$(DD)bit.dev : $(DEVS_MAK) $(bit_) $(GLD)page.dev $(GLD)cielib.dev
932	$(SETPDEV2) $(DD)bit $(bit_)
933	$(ADDMOD) $(DD)bit -include $(GLD)cielib
934
935$(DD)bitrgb.dev : $(DEVS_MAK) $(bit_) $(GLD)page.dev $(GLD)cielib.dev
936	$(SETPDEV2) $(DD)bitrgb $(bit_)
937	$(ADDMOD) $(DD)bitrgb -include $(GLD)cielib
938
939$(DD)bitcmyk.dev : $(DEVS_MAK) $(bit_) $(GLD)page.dev $(GLD)cielib.dev
940	$(SETPDEV2) $(DD)bitcmyk $(bit_)
941	$(ADDMOD) $(DD)bitcmyk -include $(GLD)cielib
942
943$(GLOBJ)gdevbit.$(OBJ) : $(GLSRC)gdevbit.c $(PDEVH) $(math__h)\
944 $(gdevdcrd_h) $(gscrd_h) $(gscrdp_h) $(gsparam_h) $(gxlum_h)
945	$(GLCC) $(GLO_)gdevbit.$(OBJ) $(C_) $(GLSRC)gdevbit.c
946
947### ------------------------- .BMP file formats ------------------------- ###
948
949gdevbmp_h=$(GLSRC)gdevbmp.h
950
951bmp_=$(GLOBJ)gdevbmp.$(OBJ) $(GLOBJ)gdevbmpc.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ)
952
953$(GLOBJ)gdevbmp.$(OBJ) : $(GLSRC)gdevbmp.c $(PDEVH) $(gdevbmp_h) $(gdevpccm_h)
954	$(GLCC) $(GLO_)gdevbmp.$(OBJ) $(C_) $(GLSRC)gdevbmp.c
955
956$(GLOBJ)gdevbmpc.$(OBJ) : $(GLSRC)gdevbmpc.c $(PDEVH) $(gdevbmp_h)
957	$(GLCC) $(GLO_)gdevbmpc.$(OBJ) $(C_) $(GLSRC)gdevbmpc.c
958
959$(DD)bmpmono.dev : $(DEVS_MAK) $(bmp_) $(GLD)page.dev
960	$(SETPDEV2) $(DD)bmpmono $(bmp_)
961
962$(DD)bmpgray.dev : $(DEVS_MAK) $(bmp_) $(GLD)page.dev
963	$(SETPDEV2) $(DD)bmpgray $(bmp_)
964
965$(DD)bmpsep1.dev : $(DEVS_MAK) $(bmp_) $(GLD)page.dev
966	$(SETPDEV2) $(DD)bmpsep1 $(bmp_)
967
968$(DD)bmpsep8.dev : $(DEVS_MAK) $(bmp_) $(GLD)page.dev
969	$(SETPDEV2) $(DD)bmpsep8 $(bmp_)
970
971$(DD)bmp16.dev : $(DEVS_MAK) $(bmp_) $(GLD)page.dev
972	$(SETPDEV2) $(DD)bmp16 $(bmp_)
973
974$(DD)bmp256.dev : $(DEVS_MAK) $(bmp_) $(GLD)page.dev
975	$(SETPDEV2) $(DD)bmp256 $(bmp_)
976
977$(DD)bmp16m.dev : $(DEVS_MAK) $(bmp_) $(GLD)page.dev
978	$(SETPDEV2) $(DD)bmp16m $(bmp_)
979
980$(DD)bmp32b.dev : $(DEVS_MAK) $(bmp_) $(GLD)page.dev
981	$(SETPDEV2) $(DD)bmp32b $(bmp_)
982
983### ------------- BMP driver that serves as demo of async rendering ---- ###
984
985bmpa_=$(GLOBJ)gdevbmpa.$(OBJ) $(GLOBJ)gdevbmpc.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ) $(GLOBJ)gdevppla.$(OBJ)
986
987$(GLOBJ)gdevbmpa.$(OBJ) : $(GLSRC)gdevbmpa.c $(AK) $(stdio__h)\
988 $(gdevbmp_h) $(gdevprna_h) $(gdevpccm_h) $(gdevppla_h)\
989 $(gserrors_h) $(gpsync_h)
990	$(GLCC) $(GLO_)gdevbmpa.$(OBJ) $(C_) $(GLSRC)gdevbmpa.c
991
992$(DD)bmpamono.dev : $(DEVS_MAK) $(bmpa_) $(GLD)page.dev $(GLD)async.dev
993	$(SETPDEV2) $(DD)bmpamono $(bmpa_)
994	$(ADDMOD) $(DD)bmpamono -include $(GLD)async
995
996$(DD)bmpasep1.dev : $(DEVS_MAK) $(bmpa_) $(GLD)page.dev $(GLD)async.dev
997	$(SETPDEV2) $(DD)bmpasep1 $(bmpa_)
998	$(ADDMOD) $(DD)bmpasep1 -include $(GLD)async
999
1000$(DD)bmpasep8.dev : $(DEVS_MAK) $(bmpa_) $(GLD)page.dev $(GLD)async.dev
1001	$(SETPDEV2) $(DD)bmpasep8 $(bmpa_)
1002	$(ADDMOD) $(DD)bmpasep8 -include $(GLD)async
1003
1004$(DD)bmpa16.dev : $(DEVS_MAK) $(bmpa_) $(GLD)page.dev $(GLD)async.dev
1005	$(SETPDEV2) $(DD)bmpa16 $(bmpa_)
1006	$(ADDMOD) $(DD)bmpa16 -include $(GLD)async
1007
1008$(DD)bmpa256.dev : $(DEVS_MAK) $(bmpa_) $(GLD)page.dev $(GLD)async.dev
1009	$(SETPDEV2) $(DD)bmpa256 $(bmpa_)
1010	$(ADDMOD) $(DD)bmpa256 -include $(GLD)async
1011
1012$(DD)bmpa16m.dev : $(DEVS_MAK) $(bmpa_) $(GLD)page.dev $(GLD)async.dev
1013	$(SETPDEV2) $(DD)bmpa16m $(bmpa_)
1014	$(ADDMOD) $(DD)bmpa16m -include $(GLD)async
1015
1016$(DD)bmpa32b.dev : $(DEVS_MAK) $(bmpa_) $(GLD)page.dev $(GLD)async.dev
1017	$(SETPDEV2) $(DD)bmpa32b $(bmpa_)
1018	$(ADDMOD) $(DD)bmpa32b -include $(GLD)async
1019
1020### -------------------------- CGM file format ------------------------- ###
1021### This driver is under development.  Use at your own risk.             ###
1022### The output is very low-level, consisting only of rectangles and      ###
1023### cell arrays.                                                         ###
1024
1025cgm_=$(GLOBJ)gdevcgm.$(OBJ) $(GLOBJ)gdevcgml.$(OBJ)
1026
1027gdevcgml_h=$(GLSRC)gdevcgml.h
1028gdevcgmx_h=$(GLSRC)gdevcgmx.h $(gdevcgml_h)
1029
1030$(GLOBJ)gdevcgm.$(OBJ) : $(GLSRC)gdevcgm.c $(GDEV) $(memory__h)\
1031 $(gsparam_h) $(gdevpccm_h) $(gdevcgml_h)
1032	$(GLCC) $(GLO_)gdevcgm.$(OBJ) $(C_) $(GLSRC)gdevcgm.c
1033
1034$(GLOBJ)gdevcgml.$(OBJ) : $(GLSRC)gdevcgml.c $(memory__h) $(stdio__h)\
1035 $(gdevcgmx_h)
1036	$(GLCC) $(GLO_)gdevcgml.$(OBJ) $(C_) $(GLSRC)gdevcgml.c
1037
1038$(DD)cgmmono.dev : $(DEVS_MAK) $(cgm_)
1039	$(SETDEV) $(DD)cgmmono $(cgm_)
1040
1041$(DD)cgm8.dev : $(DEVS_MAK) $(cgm_)
1042	$(SETDEV) $(DD)cgm8 $(cgm_)
1043
1044$(DD)cgm24.dev : $(DEVS_MAK) $(cgm_)
1045	$(SETDEV) $(DD)cgm24 $(cgm_)
1046
1047### ------------------------- JPEG file format ------------------------- ###
1048
1049jpeg_=$(GLOBJ)gdevjpeg.$(OBJ)
1050
1051# RGB output
1052$(DD)jpeg.dev : $(DEVS_MAK) $(jpeg_) $(GLD)sdcte.dev $(GLD)page.dev
1053	$(SETPDEV2) $(DD)jpeg $(jpeg_)
1054	$(ADDMOD) $(DD)jpeg -include $(GLD)sdcte
1055
1056# Gray output
1057$(DD)jpeggray.dev : $(DEVS_MAK) $(jpeg_) $(GLD)sdcte.dev $(GLD)page.dev
1058	$(SETPDEV2) $(DD)jpeggray $(jpeg_)
1059	$(ADDMOD) $(DD)jpeggray -include $(GLD)sdcte
1060
1061$(GLOBJ)gdevjpeg.$(OBJ) : $(GLSRC)gdevjpeg.c $(PDEVH)\
1062 $(stdio__h) $(jpeglib__h)\
1063 $(sdct_h) $(sjpeg_h) $(stream_h) $(strimpl_h)
1064	$(GLCC) $(GLO_)gdevjpeg.$(OBJ) $(C_) $(GLSRC)gdevjpeg.c
1065
1066### ------------------------- MIFF file format ------------------------- ###
1067### Right now we support only 24-bit direct color, but we might add more ###
1068### formats in the future.                                               ###
1069
1070miff_=$(GLOBJ)gdevmiff.$(OBJ)
1071
1072$(DD)miff24.dev : $(DEVS_MAK) $(miff_) $(GLD)page.dev
1073	$(SETPDEV) $(DD)miff24 $(miff_)
1074
1075$(GLOBJ)gdevmiff.$(OBJ) : $(GLSRC)gdevmiff.c $(PDEVH)
1076	$(GLCC) $(GLO_)gdevmiff.$(OBJ) $(C_) $(GLSRC)gdevmiff.c
1077
1078### ------------------------- PCX file formats ------------------------- ###
1079
1080pcx_=$(GLOBJ)gdevpcx.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ)
1081
1082$(GLOBJ)gdevpcx.$(OBJ) : $(GLSRC)gdevpcx.c $(PDEVH) $(gdevpccm_h) $(gxlum_h)
1083	$(GLCC) $(GLO_)gdevpcx.$(OBJ) $(C_) $(GLSRC)gdevpcx.c
1084
1085$(DD)pcxmono.dev : $(DEVS_MAK) $(pcx_) $(GLD)page.dev
1086	$(SETPDEV2) $(DD)pcxmono $(pcx_)
1087
1088$(DD)pcxgray.dev : $(DEVS_MAK) $(pcx_) $(GLD)page.dev
1089	$(SETPDEV2) $(DD)pcxgray $(pcx_)
1090
1091$(DD)pcx16.dev : $(DEVS_MAK) $(pcx_) $(GLD)page.dev
1092	$(SETPDEV2) $(DD)pcx16 $(pcx_)
1093
1094$(DD)pcx256.dev : $(DEVS_MAK) $(pcx_) $(GLD)page.dev
1095	$(SETPDEV2) $(DD)pcx256 $(pcx_)
1096
1097$(DD)pcx24b.dev : $(DEVS_MAK) $(pcx_) $(GLD)page.dev
1098	$(SETPDEV2) $(DD)pcx24b $(pcx_)
1099
1100$(DD)pcxcmyk.dev : $(DEVS_MAK) $(pcx_) $(GLD)page.dev
1101	$(SETPDEV2) $(DD)pcxcmyk $(pcx_)
1102
1103# The 2-up PCX device is here only as an example, and for testing.
1104
1105$(DD)pcx2up.dev : $(DEVS_MAK) $(LIB_MAK) $(ECHOGS_XE) $(GLOBJ)gdevp2up.$(OBJ) $(GLD)page.dev $(DD)pcx256.dev
1106	$(SETPDEV) $(DD)pcx2up $(GLOBJ)gdevp2up.$(OBJ)
1107	$(ADDMOD) $(DD)pcx2up -include $(DD)pcx256
1108
1109$(GLOBJ)gdevp2up.$(OBJ) : $(GLSRC)gdevp2up.c $(AK)\
1110 $(gdevpccm_h) $(gdevprn_h) $(gxclpage_h)
1111	$(GLCC) $(GLO_)gdevp2up.$(OBJ) $(C_) $(GLSRC)gdevp2up.c
1112
1113### ------------------- Portable Bitmap file formats ------------------- ###
1114### For more information, see the pam(5), pbm(5), pgm(5), and ppm(5)     ###
1115### man pages.                                                           ###
1116
1117pxm_=$(GLOBJ)gdevpbm.$(OBJ) $(GLOBJ)gdevppla.$(OBJ) $(GLOBJ)gdevmpla.$(OBJ)
1118
1119$(GLOBJ)gdevpbm.$(OBJ) : $(GLSRC)gdevpbm.c $(PDEVH)\
1120 $(gdevmpla_h) $(gdevplnx_h) $(gdevppla_h)\
1121 $(gscdefs_h) $(gscspace_h) $(gxgetbit_h) $(gxiparam_h) $(gxlum_h)
1122	$(GLCC) $(GLO_)gdevpbm.$(OBJ) $(C_) $(GLSRC)gdevpbm.c
1123
1124### Portable Bitmap (PBM, plain or raw format, magic numbers "P1" or "P4")
1125
1126$(DD)pbm.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev
1127	$(SETPDEV2) $(DD)pbm $(pxm_)
1128
1129$(DD)pbmraw.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev
1130	$(SETPDEV2) $(DD)pbmraw $(pxm_)
1131
1132### Portable Graymap (PGM, plain or raw format, magic numbers "P2" or "P5")
1133
1134$(DD)pgm.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev
1135	$(SETPDEV2) $(DD)pgm $(pxm_)
1136
1137$(DD)pgmraw.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev
1138	$(SETPDEV2) $(DD)pgmraw $(pxm_)
1139
1140# PGM with automatic optimization to PBM if this is possible.
1141
1142$(DD)pgnm.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev
1143	$(SETPDEV2) $(DD)pgnm $(pxm_)
1144
1145$(DD)pgnmraw.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev
1146	$(SETPDEV2) $(DD)pgnmraw $(pxm_)
1147
1148### Portable Pixmap (PPM, plain or raw format, magic numbers "P3" or "P6")
1149
1150$(DD)ppm.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev
1151	$(SETPDEV2) $(DD)ppm $(pxm_)
1152
1153$(DD)ppmraw.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev
1154	$(SETPDEV2) $(DD)ppmraw $(pxm_)
1155
1156# PPM with automatic optimization to PGM or PBM if possible.
1157
1158$(DD)pnm.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev
1159	$(SETPDEV2) $(DD)pnm $(pxm_)
1160
1161$(DD)pnmraw.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev
1162	$(SETPDEV2) $(DD)pnmraw $(pxm_)
1163
1164### Portable inKmap (CMYK internally, converted to PPM=RGB at output time)
1165
1166$(DD)pkm.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev
1167	$(SETPDEV2) $(DD)pkm $(pxm_)
1168
1169$(DD)pkmraw.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev
1170	$(SETPDEV2) $(DD)pkmraw $(pxm_)
1171
1172### Portable Separated map (CMYK internally, produces 4 monobit pages)
1173
1174$(DD)pksm.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev
1175	$(SETPDEV2) $(DD)pksm $(pxm_)
1176
1177$(DD)pksmraw.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev
1178	$(SETPDEV2) $(DD)pksmraw $(pxm_)
1179
1180### Plan 9 bitmap format
1181
1182$(DD)plan9bm.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev
1183	$(SETPDEV2) $(DD)plan9bm $(pxm_)
1184
1185### Portable Arbitrary Map (PAM, magic number "P7", CMYK)
1186
1187$(DD)pam.dev : $(DEVS_MAK) $(pxm_) $(GLD)page.dev
1188	$(SETPDEV2) $(DD)pam $(pxm_)
1189
1190### --------------- Portable Network Graphics file format --------------- ###
1191### Requires libpng 0.81 and zlib 0.95 (or more recent versions).         ###
1192### See libpng.mak and zlib.mak for more details.                         ###
1193
1194png__h=$(GLSRC)png_.h $(MAKEFILE)
1195
1196png_=$(GLOBJ)gdevpng.$(OBJ) $(GLOBJ)gdevpccm.$(OBJ)
1197libpng_dev=$(PNGGENDIR)$(D)libpng.dev
1198png_i_=-include $(PNGGENDIR)$(D)libpng
1199
1200$(GLOBJ)gdevpng.$(OBJ) : $(GLSRC)gdevpng.c\
1201 $(gdevprn_h) $(gdevpccm_h) $(gscdefs_h) $(png__h)
1202	$(CC_) $(I_)$(GLI_) $(II)$(PI_)$(_I) $(PCF_) $(GLF_) $(GLO_)gdevpng.$(OBJ) $(C_) $(GLSRC)gdevpng.c
1203
1204$(DD)pngmono.dev : $(DEVS_MAK) $(libpng_dev) $(png_) $(GLD)page.dev
1205	$(SETPDEV2) $(DD)pngmono $(png_)
1206	$(ADDMOD) $(DD)pngmono $(png_i_)
1207
1208$(DD)pnggray.dev : $(DEVS_MAK) $(libpng_dev) $(png_) $(GLD)page.dev
1209	$(SETPDEV2) $(DD)pnggray $(png_)
1210	$(ADDMOD) $(DD)pnggray $(png_i_)
1211
1212$(DD)png16.dev : $(DEVS_MAK) $(libpng_dev) $(png_) $(GLD)page.dev
1213	$(SETPDEV2) $(DD)png16 $(png_)
1214	$(ADDMOD) $(DD)png16 $(png_i_)
1215
1216$(DD)png256.dev : $(DEVS_MAK) $(libpng_dev) $(png_) $(GLD)page.dev
1217	$(SETPDEV2) $(DD)png256 $(png_)
1218	$(ADDMOD) $(DD)png256 $(png_i_)
1219
1220$(DD)png16m.dev : $(DEVS_MAK) $(libpng_dev) $(png_) $(GLD)page.dev
1221	$(SETPDEV2) $(DD)png16m $(png_)
1222	$(ADDMOD) $(DD)png16m $(png_i_)
1223
1224$(DD)pngalpha.dev : $(DEVS_MAK) $(libpng_dev) $(png_) $(GLD)page.dev
1225	$(SETPDEV2) $(DD)pngalpha $(png_)
1226	$(ADDMOD) $(DD)pngalpha $(png_i_)
1227
1228### -------------------- PNG with transparency -------------------- ###
1229
1230pnga_=$(GLOBJ)gdevpnga.$(OBJ)
1231$(DD)pnga.dev :	$(pnga_)
1232	$(SETDEV) $(DD)pnga $(pnga_)
1233
1234$(GLOBJ)gdevpnga.$(OBJ) : $(GLSRC)gdevpnga.c\
1235 $(gdevprn_h) $(gdevpccm_h) $(gscdefs_h) $(png__h)
1236	$(CC_) $(I_)$(GLI_) $(II)$(PI_)$(_I) $(PCF_) $(GLF_) $(GLO_)gdevpnga.$(OBJ) $(C_) $(GLSRC)gdevpnga.c
1237
1238### ---------------------- PostScript image format ---------------------- ###
1239### These devices make it possible to print monochrome Level 2 files on a ###
1240###   Level 1 printer, by converting them to a bitmap in PostScript       ###
1241###   format.  They also can convert big, complex color PostScript files  ###
1242###   to (often) smaller and more easily printed bitmaps.                 ###
1243
1244psim_=$(GLOBJ)gdevpsim.$(OBJ)
1245
1246$(GLOBJ)gdevpsim.$(OBJ) : $(GLSRC)gdevpsim.c $(PDEVH)\
1247 $(gdevpsu_h)\
1248 $(sa85x_h) $(srlx_h) $(stream_h) $(strimpl_h)
1249	$(GLCC) $(GLO_)gdevpsim.$(OBJ) $(C_) $(GLSRC)gdevpsim.c
1250
1251# Monochrome, Level 1 output
1252
1253$(DD)psmono.dev : $(DEVS_MAK) $(psim_) $(GLD)page.dev
1254	$(SETPDEV2) $(DD)psmono $(psim_)
1255
1256$(DD)psgray.dev : $(DEVS_MAK) $(psim_) $(GLD)page.dev
1257	$(SETPDEV2) $(DD)psgray $(psim_)
1258
1259# RGB, Level 2 output
1260
1261$(DD)psrgb.dev : $(DEVS_MAK) $(psim_) $(GLD)page.dev
1262	$(SETPDEV2) $(DD)psrgb $(psim_)
1263
1264### ---------------- Fax encoding ---------------- ###
1265
1266# By default, these drivers recognize 3 page sizes -- (U.S.) letter, A4, and
1267# B4 -- and adjust the page width to the nearest legal value for real fax
1268# systems (1728 or 2048 pixels).  To suppress this, set the device parameter
1269# AdjustWidth to 0 (e.g., -dAdjustWidth=0 on the command line).
1270
1271gdevfax_h=$(GLSRC)gdevfax.h
1272
1273fax_=$(GLOBJ)gdevfax.$(OBJ)
1274$(DD)fax.dev : $(DEVS_MAK) $(fax_) $(GLD)cfe.dev
1275	$(SETMOD) $(DD)fax $(fax_)
1276	$(ADDMOD) $(DD)fax -include $(GLD)cfe
1277
1278$(GLOBJ)gdevfax.$(OBJ) : $(GLSRC)gdevfax.c $(PDEVH)\
1279 $(gdevfax_h) $(scfx_h) $(strimpl_h)
1280	$(GLCC) $(GLO_)gdevfax.$(OBJ) $(C_) $(GLSRC)gdevfax.c
1281
1282$(DD)faxg3.dev : $(DEVS_MAK) $(DD)fax.dev
1283	$(SETDEV2) $(DD)faxg3 -include $(DD)fax
1284
1285$(DD)faxg32d.dev : $(DEVS_MAK) $(DD)fax.dev
1286	$(SETDEV2) $(DD)faxg32d -include $(DD)fax
1287
1288$(DD)faxg4.dev : $(DEVS_MAK) $(DD)fax.dev
1289	$(SETDEV2) $(DD)faxg4 -include $(DD)fax
1290
1291### -------------------- Plain or TIFF fax encoding --------------------- ###
1292###    Use -sDEVICE=tiffg3 or tiffg4 and				  ###
1293###	  -r204x98 for low resolution output, or			  ###
1294###	  -r204x196 for high resolution output				  ###
1295
1296gdevtifs_h=$(GLSRC)gdevtifs.h
1297gdevtfax_h=$(GLSRC)gdevtfax.h
1298
1299tfax_=$(GLOBJ)gdevtfax.$(OBJ)
1300$(DD)tfax.dev : $(DEVS_MAK) $(tfax_) $(GLD)cfe.dev $(GLD)lzwe.dev $(GLD)rle.dev $(DD)fax.dev $(DD)tiffs.dev
1301	$(SETMOD) $(DD)tfax $(tfax_)
1302	$(ADDMOD) $(DD)tfax -include $(GLD)cfe $(GLD)lzwe $(GLD)rle
1303	$(ADDMOD) $(DD)tfax -include $(DD)fax $(DD)tiffs
1304
1305$(GLOBJ)gdevtfax.$(OBJ) : $(GLSRC)gdevtfax.c $(PDEVH)\
1306 $(gdevfax_h) $(gdevtfax_h) $(gdevtifs_h)\
1307 $(scfx_h) $(slzwx_h) $(srlx_h) $(strimpl_h)
1308	$(GLCC) $(GLO_)gdevtfax.$(OBJ) $(C_) $(GLSRC)gdevtfax.c
1309
1310### ---------------------------- TIFF formats --------------------------- ###
1311
1312tiffs_=$(GLOBJ)gdevtifs.$(OBJ)
1313$(DD)tiffs.dev : $(DEVS_MAK) $(tiffs_) $(GLD)page.dev
1314	$(SETMOD) $(DD)tiffs $(tiffs_)
1315	$(ADDMOD) $(DD)tiffs -include $(GLD)page
1316
1317$(GLOBJ)gdevtifs.$(OBJ) : $(GLSRC)gdevtifs.c $(PDEVH) $(stdio__h) $(time__h)\
1318 $(gdevtifs_h) $(gscdefs_h) $(gstypes_h)
1319	$(GLCC) $(GLO_)gdevtifs.$(OBJ) $(C_) $(GLSRC)gdevtifs.c
1320
1321# Black & white, G3/G4 fax
1322# NOTE: see under faxg* above regarding page width adjustment.
1323
1324$(DD)tiffcrle.dev : $(DEVS_MAK) $(DD)tfax.dev
1325	$(SETDEV2) $(DD)tiffcrle -include $(DD)tfax
1326
1327$(DD)tiffg3.dev : $(DEVS_MAK) $(DD)tfax.dev
1328	$(SETDEV2) $(DD)tiffg3 -include $(DD)tfax
1329
1330$(DD)tiffg32d.dev : $(DEVS_MAK) $(DD)tfax.dev
1331	$(SETDEV2) $(DD)tiffg32d -include $(DD)tfax
1332
1333$(DD)tiffg4.dev : $(DEVS_MAK) $(DD)tfax.dev
1334	$(SETDEV2) $(DD)tiffg4 -include $(DD)tfax
1335
1336# Black & white, LZW compression
1337
1338$(DD)tifflzw.dev : $(DEVS_MAK) $(DD)tfax.dev
1339	$(SETDEV2) $(DD)tifflzw -include $(DD)tfax
1340
1341# Black & white, PackBits compression
1342
1343$(DD)tiffpack.dev : $(DEVS_MAK) $(DD)tfax.dev
1344	$(SETDEV2) $(DD)tiffpack -include $(DD)tfax
1345
1346# RGB, no compression
1347
1348tiffrgb_=$(GLOBJ)gdevtfnx.$(OBJ)
1349
1350$(DD)tiff12nc.dev : $(DEVS_MAK) $(tiffrgb_) $(DD)tiffs.dev
1351	$(SETPDEV2) $(DD)tiff12nc $(tiffrgb_)
1352	$(ADDMOD) $(DD)tiff12nc -include $(DD)tiffs
1353
1354$(DD)tiff24nc.dev : $(DEVS_MAK) $(tiffrgb_) $(DD)tiffs.dev
1355	$(SETPDEV2) $(DD)tiff24nc $(tiffrgb_)
1356	$(ADDMOD) $(DD)tiff24nc -include $(DD)tiffs
1357
1358$(GLOBJ)gdevtfnx.$(OBJ) : $(GLSRC)gdevtfnx.c $(PDEVH) $(gdevtifs_h)
1359	$(GLCC) $(GLO_)gdevtfnx.$(OBJ) $(C_) $(GLSRC)gdevtfnx.c
1360