diff options
Diffstat (limited to 'gs/src/unix-cc.mak')
-rwxr-xr-x | gs/src/unix-cc.mak | 5775 |
1 files changed, 5775 insertions, 0 deletions
diff --git a/gs/src/unix-cc.mak b/gs/src/unix-cc.mak new file mode 100755 index 000000000..272f28de5 --- /dev/null +++ b/gs/src/unix-cc.mak @@ -0,0 +1,5775 @@ +# Copyright (C) 1997, 1998 Aladdin Enterprises. All rights reserved. +# +# This file is part of Aladdin Ghostscript. +# +# Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND. No author +# or distributor accepts any responsibility for the consequences of using it, +# or for whether it serves any particular purpose or works at all, unless he +# or she says so in writing. Refer to the Aladdin Ghostscript Free Public +# License (the "License") for full details. +# +# Every copy of Aladdin Ghostscript must include a copy of the License, +# normally in a plain ASCII text file named PUBLIC. The License grants you +# the right to copy, modify and redistribute Aladdin Ghostscript, but only +# under certain conditions described in the License. Among other things, the +# License requires that the copyright notice and this notice be preserved on +# all copies. + +# Makefile fragment containing the current revision identification. + +# Define the name of this makefile. +VERSION_MAK=version.mak + +# Major and minor version numbers. +# MINOR0 is different from MINOR only if MINOR is a single digit. +GS_VERSION_MAJOR=5 +GS_VERSION_MINOR=13 +GS_VERSION_MINOR0=13 +# Revision date: year x 10000 + month x 100 + day. +GS_REVISIONDATE=19980427 + +# Derived values +GS_VERSION=$(GS_VERSION_MAJOR)$(GS_VERSION_MINOR0) +GS_DOT_VERSION=$(GS_VERSION_MAJOR).$(GS_VERSION_MINOR) +GS_REVISION=$(GS_VERSION) +# Copyright (C) 1989, 1995, 1996, 1997 Aladdin Enterprises. All rights reserved. +# +# This file is part of Aladdin Ghostscript. +# +# Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND. No author +# or distributor accepts any responsibility for the consequences of using it, +# or for whether it serves any particular purpose or works at all, unless he +# or she says so in writing. Refer to the Aladdin Ghostscript Free Public +# License (the "License") for full details. +# +# Every copy of Aladdin Ghostscript must include a copy of the License, +# normally in a plain ASCII text file named PUBLIC. The License grants you +# the right to copy, modify and redistribute Aladdin Ghostscript, but only +# under certain conditions described in the License. Among other things, the +# License requires that the copyright notice and this notice be preserved on +# all copies. + +# makefile for Unix/cc/X11 configuration. + +#****************************************************************# +# If you want to change options, DO NOT edit unix-cc.mak # +# or makefile. Edit cc-head.mak and run the tar_cat script. # +#****************************************************************# + +# ------------------------------- Options ------------------------------- # + +####### The following are the only parts of the file you should need to edit. + +# ------ Generic options ------ # + +# Define the installation commands and target directories for +# executables and files. The commands are only relevant to `make install'; +# the directories also define the default search path for the +# initialization files (gs_*.ps) and the fonts. + +# If your system has installbsd, change install to installbsd in the next line. +INSTALL = install -c +INSTALL_PROGRAM = $(INSTALL) -m 755 +INSTALL_DATA = $(INSTALL) -m 644 + +prefix = /usr/local +exec_prefix = $(prefix) +bindir = $(exec_prefix)/bin +scriptdir = $(bindir) +mandir = $(prefix)/man +man1ext = 1 +man1dir = $(mandir)/man$(man1ext) +datadir = $(prefix)/share +gsdir = $(datadir)/ghostscript +gsdatadir = $(gsdir)/$(GS_DOT_VERSION) + +docdir=$(gsdatadir)/doc +exdir=$(gsdatadir)/examples +GS_DOCDIR=$(docdir) + +# Define the default directory/ies for the runtime +# initialization and font files. Separate multiple directories with a :. + +GS_LIB_DEFAULT=$(gsdatadir):$(gsdir)/fonts + +# Define whether or not searching for initialization files should always +# look in the current directory first. This leads to well-known security +# and confusion problems, but users insist on it. +# NOTE: this also affects searching for files named on the command line: +# see the "File searching" section of use.txt for full details. +# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended. + +SEARCH_HERE_FIRST=1 + +# Define the name of the interpreter initialization file. +# (There is no reason to change this.) + +GS_INIT=gs_init.ps + +# Choose generic configuration options. + +# -DDEBUG +# includes debugging features (-Z switch) in the code. +# Code runs substantially slower even if no debugging switches +# are set. +# -DNOPRIVATE +# makes private (static) procedures and variables public, +# so they are visible to the debugger and profiler. +# No execution time or space penalty. + +#GENOPT=-DDEBUG +GENOPT= + +# Define the name of the executable file. + +GS=gs + +# Define the directory where the IJG JPEG library sources are stored, +# and the major version of the library that is stored there. +# You may need to change this if the IJG library version changes. +# See jpeg.mak for more information. + +JSRCDIR=jpeg-6a +JVERSION=6 + +# Define the directory where the PNG library sources are stored, +# and the version of the library that is stored there. +# You may need to change this if the libpng version changes. +# See libpng.mak for more information. + +PSRCDIR=libpng +PVERSION=96 + +# Choose whether to use a shared version of the PNG library, and if so, +# what its name is. +# See gs.mak and make.txt for more information. + +SHARE_LIBPNG=0 +LIBPNG_NAME=png + +# Define the directory where the zlib sources are stored. +# See zlib.mak for more information. + +ZSRCDIR=zlib + +# Choose whether to use a shared version of the zlib library, and if so, +# what its name is (usually libz, but sometimes libgz). +# See gs.mak and make.txt for more information. + +SHARE_ZLIB=0 +#ZLIB_NAME=gz +ZLIB_NAME=z + +# Define how to build the library archives. (These are not used in any +# standard configuration.) + +AR=ar +ARFLAGS=qc +RANLIB=ranlib + +# Define the configuration ID. Read gs.mak carefully before changing this. + +CONFIG= + +# ------ Platform-specific options ------ # + +# Define the name of the linker for the final link step. +# Normally this is the same as the C compiler. + +CCLD=$(CC) + +# Define the other compilation flags. Add at most one of the following: +# -DBSD4_2 for 4.2bsd systems. +# -DSYSV for System V or DG/UX. +# -DSYSV -D__SVR3 for SCO ODT, ISC Unix 2.2 or before, +# or any System III Unix, or System V release 3-or-older Unix. +# Also add -Xa if your compiler accepts it. +# -DSVR4 -DSVR4_0 (not -DSYSV) for System V release 4.0. +# -DSVR4 (not -DSYSV) for System V release 4.2 (or later) and Solaris 2. +# XCFLAGS can be set from the command line. +XCFLAGS= + +CFLAGS=-O $(XCFLAGS) + +# Define platform flags for ld. +# SunOS and some others want -X; Ultrix wants -x. +# SunOS 4.n may need -Bstatic. +# XLDFLAGS can be set from the command line. +XLDFLAGS= + +LDFLAGS=$(XLDFLAGS) + +# Define any extra libraries to link into the executable. +# ISC Unix 2.2 wants -linet. +# SCO Unix needs -lsocket if you aren't including the X11 driver. +# SVR4 may need -lnsl. +# (Libraries required by individual drivers are handled automatically.) + +EXTRALIBS= + +# Define the include switch(es) for the X11 header files. +# This can be null if handled in some other way (e.g., the files are +# in /usr/include, or the directory is supplied by an environment variable); +# in particular, SCO Xenix, Unix, and ODT just want +#XINCLUDE= +# Note that x_.h expects to find the header files in $(XINCLUDE)/X11, +# not in $(XINCLUDE). + +XINCLUDE=-I/usr/local/X/include + +# Define the directory/ies and library names for the X11 library files. +# XLIBDIRS is for ld and should include -L; XLIBDIR is for LD_RUN_PATH +# (dynamic libraries on SVR4) and should not include -L. +# Both can be null if these files are in the default linker search path; +# in particular, SCO Xenix, Unix, and ODT just want +#XLIBDIRS= +# Solaris and other SVR4 systems with dynamic linking probably want +#XLIBDIRS=-L/usr/openwin/lib +#XLIBDIR=/usr/openwin/lib +# X11R6 (on any platform) may need +#XLIBS=Xt SM ICE Xext X11 + +XLIBDIRS=-L/usr/local/X/lib +XLIBDIR= +XLIBS=Xt Xext X11 + +# Define whether this platform has floating point hardware: +# FPU_TYPE=2 means floating point is faster than fixed point. +# (This is the case on some RISCs with multiple instruction dispatch.) +# FPU_TYPE=1 means floating point is at worst only slightly slower +# than fixed point. +# FPU_TYPE=0 means that floating point may be considerably slower. +# FPU_TYPE=-1 means that floating point is always much slower than +# fixed point. + +FPU_TYPE=1 + +# ------ Devices and features ------ # + +# Choose the language feature(s) to include. See gs.mak for details. + +FEATURE_DEVS=level2.dev pdf.dev pipe.dev + +# Choose whether to compile the .ps initialization files into the executable. +# See gs.mak for details. + +COMPILE_INITS=0 + +# Choose whether to store band lists on files or in memory. +# The choices are 'file' or 'memory'. + +BAND_LIST_STORAGE=file + +# Choose which compression method to use when storing band lists in memory. +# The choices are 'lzw' or 'zlib'. lzw is not recommended, because the +# LZW-compatible code in Ghostscript doesn't actually compress its input. + +BAND_LIST_COMPRESSOR=zlib + +# Choose the implementation of file I/O: 'stdio', 'fd', or 'both'. +# See gs.mak and sfxfd.c for more details. + +FILE_IMPLEMENTATION=stdio + +# Choose the device(s) to include. See devs.mak for details. + +DEVICE_DEVS=x11.dev x11alpha.dev x11cmyk.dev x11mono.dev +DEVICE_DEVS1= +DEVICE_DEVS2= +DEVICE_DEVS3=deskjet.dev djet500.dev laserjet.dev ljetplus.dev ljet2p.dev ljet3.dev ljet4.dev +# Sun's cc can't compile gdevcdj.c. +#DEVICE_DEVS4=cdeskjet.dev cdjcolor.dev cdjmono.dev cdj550.dev pj.dev pjxl.dev pjxl300.dev +DEVICE_DEVS4= +DEVICE_DEVS5=uniprint.dev +DEVICE_DEVS6=bj10e.dev bj200.dev bjc600.dev bjc800.dev +DEVICE_DEVS6= +DEVICE_DEVS7=faxg3.dev faxg32d.dev faxg4.dev +DEVICE_DEVS8=jpeg.dev jpeggray.dev pcxmono.dev pcxgray.dev pcx16.dev pcx256.dev pcx24b.dev +DEVICE_DEVS9=pbm.dev pbmraw.dev pgm.dev pgmraw.dev pgnm.dev pgnmraw.dev pnm.dev pnmraw.dev ppm.dev ppmraw.dev +DEVICE_DEVS10=tiffcrle.dev tiffg3.dev tiffg32d.dev tiffg4.dev tifflzw.dev tiffpack.dev +DEVICE_DEVS11=tiff12nc.dev tiff24nc.dev +DEVICE_DEVS12=psmono.dev psgray.dev bit.dev bitrgb.dev bitcmyk.dev +DEVICE_DEVS13=pngmono.dev pnggray.dev png16.dev png256.dev png16m.dev +DEVICE_DEVS14= +DEVICE_DEVS15=pdfwrite.dev pswrite.dev epswrite.dev pxlmono.dev pxlcolor.dev + +# ---------------------------- End of options --------------------------- # + +# Define the name of the partial makefile that specifies options -- +# used in dependencies. + +MAKEFILE=cc-head.mak + +# Define the ANSI-to-K&R dependency. + +# This should be ansi2knr$(XEAUX), or $(ANSI2KNR_XE), but these macros +# haven't been defined yet, and some buggy 'make' programs expand macros in +# definitions at the time of definition rather than at the time of use. +AK=ansi2knr + +# Define the compilation rules and flags. + +CCC=$(SHP)ccgs "$(CC) $(CCFLAGS) -c" +# We compile ansi2knr, and only ansi2knr, unmodified. +CCA2K=$(CC) +CCAUX=$(SHP)ccgs "$(CC)" +CCLEAF=$(CCC) + +# --------------------------- Generic makefile ---------------------------- # + +# The remainder of the makefile (unixhead.mak, gs.mak, devs.mak, unixtail.mak) +# is generic. tar_cat concatenates all these together. +# Copyright (C) 1990, 1993, 1996 Aladdin Enterprises. All rights reserved. +# +# This file is part of Aladdin Ghostscript. +# +# Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND. No author +# or distributor accepts any responsibility for the consequences of using it, +# or for whether it serves any particular purpose or works at all, unless he +# or she says so in writing. Refer to the Aladdin Ghostscript Free Public +# License (the "License") for full details. +# +# Every copy of Aladdin Ghostscript must include a copy of the License, +# normally in a plain ASCII text file named PUBLIC. The License grants you +# the right to copy, modify and redistribute Aladdin Ghostscript, but only +# under certain conditions described in the License. Among other things, the +# License requires that the copyright notice and this notice be preserved on +# all copies. + +# Partial makefile common to all Unix configurations. + +# This part of the makefile gets inserted after the compiler-specific part +# (xxx-head.mak) and before gs.mak and devs.mak. + +# ----------------------------- Generic stuff ----------------------------- # + +# Define the platform name. For a "stock" System V platform, +# use sysv_ instead of unix_. + +PLATFORM=unix_ + +# Define the syntax for command, object, and executable files. + +CMD= +O=-o ./ +OBJ=o +XE= +XEAUX= + +# Define the current directory prefix and command invocations. + +CAT=cat +D=/ +EXPP= +EXP=./ +SHELL=/bin/sh +SH=$(SHELL) +SHP=$(SH) $(EXP) + +# Define generic commands. + +CP_=cp +RM_=rm -f +RMN_=rm -f + +# Define the arguments for genconf. + +CONFILES=-p "%s&s&&" -pl "&-l%s&s&&" -pL "&-L%s&s&&" -ol $(ld_tr) + +# Define the compilation rules and flags. + +CCFLAGS=$(GENOPT) $(CFLAGS) + +.c.o: $(AK) + $(CCC) $*.c + +CCCF=$(CCC) +CCD=$(CCC) +CCINT=$(CCC) + +BEGINFILES= +CCBEGIN=$(CCC) *.c + +# Patch a couple of PC-specific things that aren't relevant to Unix builds, +# but that cause `make' to produce warnings. + +BGIDIR=***UNUSED*** +PCFBASM= +# Copyright (C) 1989, 1996, 1997 Aladdin Enterprises. All rights reserved. +# +# This file is part of Aladdin Ghostscript. +# +# Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND. No author +# or distributor accepts any responsibility for the consequences of using it, +# or for whether it serves any particular purpose or works at all, unless he +# or she says so in writing. Refer to the Aladdin Ghostscript Free Public +# License (the "License") for full details. +# +# Every copy of Aladdin Ghostscript must include a copy of the License, +# normally in a plain ASCII text file named PUBLIC. The License grants you +# the right to copy, modify and redistribute Aladdin Ghostscript, but only +# under certain conditions described in the License. Among other things, the +# License requires that the copyright notice and this notice be preserved on +# all copies. + +# Generic makefile, common to all platforms. +# The platform-specific makefiles `include' this file. +# They define the following symbols: +# GS - the name of the executable (without the extension, if any). +# GS_LIB_DEFAULT - the default directory/ies for searching for the +# initialization and font files at run time. +# SEARCH_HERE_FIRST - the default setting of -P (whether or not to +# look for files in the current directory first). +# GS_DOCDIR - the directory where documentation will be available +# at run time. +# JSRCDIR - the directory where the IJG JPEG library source code +# is stored (at compilation time). +# JVERSION - the major version number of the IJG JPEG library. +# PSRCDIR, PVERSION - the same for libpng. +# ZSRCDIR - the same for zlib. +# SHARE_LIBPNG - normally 0; if set to 1, asks the linker to use +# an existing compiled libpng (-lpng) instead of compiling and +# linking libpng explicitly. +# LIBPNG_NAME, the name of the shared libpng, currently always +# png (libpng, -lpng). +# SHARE_ZLIB - normally 0; if set to 1, asks the linker to use +# an existing compiled zlib (-lgz or -lz) instead of compiling +# and linking libgz/libz explicitly. +# ZLIB_NAME - the name of the shared zlib, either gz (for libgz, -lgz) +# or z (for libz, -lz). +# CONFIG - a configuration ID, added at the request of a customer, +# that is supposed to help in maintaining multiple variants in +# a single directory. Normally this is an empty string; +# it may be any string that is legal as part of a file name. +# DEVICE_DEVS - the devices to include in the executable. +# See devs.mak for details. +# DEVICE_DEVS1...DEVICE_DEVS15 - additional devices, if the definition +# of DEVICE_DEVS doesn't fit on one line. See devs.mak for details. +# FEATURE_DEVS - what features to include in the executable. +# Normally this is one of: +# level1 - a standard PostScript Level 1 language +# interpreter. +# level2 - a standard PostScript Level 2 language +# interpreter. +# pdf - a PDF-capable interpreter. +# You may include both level1 and pdf, or both level2 and pdf. +# The following feature may be added to either of the standard +# configurations: +# ccfonts - precompile fonts into C, and link them +# with the executable. See fonts.txt for details. +# The remaining features are of interest primarily to developers +# who want to "mix and match" features to create custom +# configurations: +# dps - (partial) support for Display PostScript extensions: +# see language.txt for details. +# btoken - support for binary token encodings. +# Included automatically in the dps and level2 features. +# cidfont - (currently partial) support for CID-keyed fonts. +# color - support for the Level 1 CMYK color extensions. +# Included automatically in the dps and level2 features. +# compfont - support for composite (type 0) fonts. +# Included automatically in the level2 feature. +# dct - support for DCTEncode/Decode filters. +# Included automatically in the level2 feature. +# epsf - support for recognizing and skipping the binary +# header of MS-DOS EPSF files. +# filter - support for Level 2 filters (other than eexec, +# ASCIIHexEncode/Decode, NullEncode, PFBDecode, +# RunLengthEncode/Decode, and SubFileDecode, which are +# always included, and DCTEncode/Decode, +# which are separate). +# Included automatically in the level2 feature. +# fzlib - support for zlibEncode/Decode filters. +# ttfont - support for TrueType fonts. +# type1 - support for Type 1 fonts and eexec; +# normally included automatically in all configurations. +# type42 - support for Type 42 (embedded TrueType) fonts. +# Included automatically in the level2 feature. +# There are quite a number of other sub-features that can be +# selectively included in or excluded from a configuration, +# but the above are the ones that are most likely to be of +# interest. +# COMPILE_INITS - normally 0; if set to 1, compiles the PostScript +# language initialization files (gs_init.ps et al) into the +# executable, eliminating the need for these files to be present +# at run time. +# BAND_LIST_STORAGE - normally file; if set to memory, stores band +# lists in memory (with compression if needed). +# BAND_LIST_COMPRESSOR - normally zlib: selects the compression method +# to use for band lists in memory. +# FILE_IMPLEMENTATION - normally stdio; if set to fd, uses file +# descriptors instead of buffered stdio for file I/O; if set to +# both, provides both implementations with different procedure +# names for the fd-based implementation (see sfxfd.c for +# more information). +# EXTEND_NAMES - a value N between 0 and 6, indicating that the name +# table should have a capacity of 2^(16+N) names. This normally +# should be set to 0 (or left undefined), since non-zero values +# result in a larger fixed space overhead and slightly slower code. +# EXTEND_NAMES is ignored in 16-bit environments. +# +# It is very unlikely that anyone would want to edit the remaining +# symbols, but we describe them here for completeness: +# GS_INIT - the name of the initialization file for the interpreter, +# normally gs_init.ps. +# PLATFORM - a "device" name for the platform, so that platforms can +# add various kinds of resources like devices and features. +# CMD - the suffix for shell command files (e.g., null or .bat). +# (This is only needed in a few places.) +# D - the directory separator character (\ for MS-DOS, / for Unix). +# O - the string for specifying the output file from the C compiler +# (-o for MS-DOS, -o ./ for Unix). +# OBJ - the extension for relocatable object files (e.g., o or obj). +# XE - the extension for executable files (e.g., null or .exe). +# XEAUX - the extension for the executable files (e.g., null or .exe) +# for the utility programs (ansi2knr and those compiled with +# CCAUX). +# BEGINFILES - the list of files that `make begin' and `make clean' +# should delete. +# CCA2K - the C invocation for the ansi2knr program, which is the only +# one that doesn't use ANSI C syntax. (It is only needed if +# the main C compiler also isn't an ANSI compiler.) +# CCAUX - the C invocation for auxiliary programs (echogs, genarch, +# genconf, geninit). +# CCBEGIN - the compilation command for `make begin', normally +# $(CCC) *.c. +# CCC - the C invocation for normal compilation. +# CCD - the C invocation for files that store into frame buffers or +# device registers. Needed because some optimizing compilers +# will eliminate necessary stores. +# CCCF - the C invocation for compiled fonts and other large, +# self-contained data modules. Needed because MS-DOS +# requires using the 'huge' memory model for these. +# CCINT - the C invocation for compiling the main interpreter module, +# normally the same as CCC: this is needed because the +# Borland compiler generates *worse* code for this module +# (but only this module) when optimization (-O) is turned on. +# CCLEAF - the C invocation for compiling modules that contain only +# leaf procedures, which don't need to build stack frames. +# This is needed only because many compilers aren't able to +# recognize leaf procedures on their own. +# AK - if source files must be converted from ANSI to K&R syntax, +# this is $(ANSI2KNR_XE); if not, it is null. +# If a particular platform requires other utility programs +# to be built, AK must include them too. +# SHP - the prefix for invoking a shell script in the current directory +# (null for MS-DOS, $(SH) ./ for Unix). +# EXPP, EXP - the prefix for invoking an executable program in the +# current directory (null for MS-DOS, ./ for Unix). +# SH - the shell for scripts (null on MS-DOS, sh on Unix). +# CONFILES - the arguments for genconf to generate the appropriate +# linker control files (various). +# CP_ - the command for copying one file to another. Because of +# limitations in the MS-DOS/MS Windows environment, the +# second argument must either be '.' (in which case the +# write date may be either preserved or set to the current +# date) or a file name (in which case the write date is +# always updated). +# RM_ - the command for deleting (a) file(s) (including wild cards, +# but limited to a single file or pattern). +# RMN_ = the command for deleting multiple files / patterns. +# +# The platform-specific makefiles must also include rules for creating +# certain dynamically generated files: +# gconfig_.h - this indicates the presence or absence of +# certain system header files that are located in different +# places on different systems. (It could be generated by +# the GNU `configure' program.) +# gconfigv.h - this indicates the status of certain machine- +# and configuration-specific features derived from definitions +# in the platform-specific makefile. + +# Define the name of this makefile. +GS_MAK=gs.mak + +# Define the names of the executables. +GS_XE=$(GS)$(XE) +ANSI2KNR_XE=ansi2knr$(XEAUX) +ECHOGS_XE=echogs$(XEAUX) +GENARCH_XE=genarch$(XEAUX) +GENCONF_XE=genconf$(XEAUX) +GENINIT_XE=geninit$(XEAUX) + +# Define the names of the CONFIG-dependent header files. +# gconfig*.h and gconfx*.h are generated dynamically. +gconfig_h=gconfxx$(CONFIG).h +gconfigf_h=gconfxc$(CONFIG).h + +# Watcom make insists that rules have a non-empty body! +all default: $(GS_XE) + $(RM_) _temp_* + +distclean maintainer-clean realclean: clean + $(RM_) makefile + +clean: mostlyclean + $(RM_) arch.h + $(RM_) $(GS_XE) + +mostlyclean: + $(RMN_) *.$(OBJ) *.a core gmon.out + $(RMN_) *.dev *.d_* devs*.tr gconfig*.h gconfx*.h j*.h o*.tr l*.tr + $(RMN_) deflate.h zutil.h + $(RMN_) gconfig*.c gscdefs*.c iconfig*.c + $(RMN_) _temp_* _temp_*.* *.map *.sym + $(RMN_) $(ANSI2KNR_XE) $(ECHOGS_XE) $(GENARCH_XE) $(GENCONF_XE) $(GENINIT_XE) + $(RMN_) gs_init.c $(BEGINFILES) + +# Remove only configuration-dependent information. +config-clean: + $(RMN_) *.dev devs*.tr gconfig*.h gconfx*.h o*.tr l*.tr + +# A rule to do a quick and dirty compilation attempt when first installing +# the interpreter. Many of the compilations will fail: +# follow this with 'make'. + +begin: + $(RMN_) arch.h gconfig*.h gconfx*.h $(GENARCH_XE) $(GS_XE) + $(RMN_) gconfig*.c gscdefs*.c iconfig*.c + $(RMN_) gs_init.c $(BEGINFILES) + make arch.h gconfigv.h + - $(CCBEGIN) + $(RMN_) gconfig.$(OBJ) gdev*.$(OBJ) gp_*.$(OBJ) gscdefs.$(OBJ) gsmisc.$(OBJ) + $(RMN_) icfontab.$(OBJ) iconfig.$(OBJ) iinit.$(OBJ) interp.$(OBJ) + +# Auxiliary programs + +arch.h: $(GENARCH_XE) + $(EXPP) $(EXP)genarch arch.h + +# Macros for constructing the *.dev files that describe features and +# devices. +SETDEV=$(EXP)echogs -e .dev -w- -l-dev -F -s -l-obj +SETPDEV=$(EXP)echogs -e .dev -w- -l-dev -F -s -l-include -lpage -l-obj +SETMOD=$(EXP)echogs -e .dev -w- -l-obj +ADDMOD=$(EXP)echogs -e .dev -a- + +# Define the compilation commands for the third-party libraries. +CCCP=$(CCC) -I$(PSRCDIR) -I$(ZSRCDIR) -DPNG_USE_CONST +CCCJ=$(CCC) -I. -I$(JSRCDIR) +CCCZ=$(CCC) -I. -I$(ZSRCDIR) + +######################## How to define new 'features' ####################### +# +# One defines new 'features' exactly like devices (see devs.mak for details). +# For example, one would define a feature abc by adding the following to +# gs.mak: +# +# abc_=abc1.$(OBJ) ... +# abc.dev: $(GS_MAK) $(ECHOGS_XE) $(abc_) +# $(SETMOD) abc $(abc_) +# $(ADDMOD) abc -obj ... [if needed] +# $(ADDMOD) abc -oper ... [if appropriate] +# $(ADDMOD) abc -ps ... [if appropriate] +# +# If the abc feature requires the presence of some other features jkl and +# pqr, then the rules must look like this: +# +# abc_=abc1.$(OBJ) ... +# abc.dev: $(GS_MAK) $(ECHOGS_XE) $(abc_) jkl.dev pqr.dev +# $(SETMOD) abc $(abc_) +# ... +# $(ADDMOD) abc -include jkl pqr + +# --------------------- Configuration-dependent files --------------------- # + +# gconfig.h shouldn't have to depend on DEVS_ALL, but that would +# involve rewriting gsconfig to only save the device name, not the +# contents of the <device>.dev files. +# FEATURE_DEVS must precede DEVICE_DEVS so that devices can override +# features in obscure cases. + +DEVS_ALL=$(PLATFORM).dev $(FEATURE_DEVS) \ + $(DEVICE_DEVS) $(DEVICE_DEVS1) \ + $(DEVICE_DEVS2) $(DEVICE_DEVS3) $(DEVICE_DEVS4) $(DEVICE_DEVS5) \ + $(DEVICE_DEVS6) $(DEVICE_DEVS7) $(DEVICE_DEVS8) $(DEVICE_DEVS9) \ + $(DEVICE_DEVS10) $(DEVICE_DEVS11) $(DEVICE_DEVS12) $(DEVICE_DEVS13) \ + $(DEVICE_DEVS14) $(DEVICE_DEVS15) + +devs_tr=devs.tr$(CONFIG) +$(devs_tr): $(GS_MAK) $(MAKEFILE) $(ECHOGS_XE) + $(EXP)echogs -w $(devs_tr) - -include $(PLATFORM).dev + $(EXP)echogs -a $(devs_tr) - $(FEATURE_DEVS) + $(EXP)echogs -a $(devs_tr) - $(DEVICE_DEVS) + $(EXP)echogs -a $(devs_tr) - $(DEVICE_DEVS1) + $(EXP)echogs -a $(devs_tr) - $(DEVICE_DEVS2) + $(EXP)echogs -a $(devs_tr) - $(DEVICE_DEVS3) + $(EXP)echogs -a $(devs_tr) - $(DEVICE_DEVS4) + $(EXP)echogs -a $(devs_tr) - $(DEVICE_DEVS5) + $(EXP)echogs -a $(devs_tr) - $(DEVICE_DEVS6) + $(EXP)echogs -a $(devs_tr) - $(DEVICE_DEVS7) + $(EXP)echogs -a $(devs_tr) - $(DEVICE_DEVS8) + $(EXP)echogs -a $(devs_tr) - $(DEVICE_DEVS9) + $(EXP)echogs -a $(devs_tr) - $(DEVICE_DEVS10) + $(EXP)echogs -a $(devs_tr) - $(DEVICE_DEVS11) + $(EXP)echogs -a $(devs_tr) - $(DEVICE_DEVS12) + $(EXP)echogs -a $(devs_tr) - $(DEVICE_DEVS13) + $(EXP)echogs -a $(devs_tr) - $(DEVICE_DEVS14) + $(EXP)echogs -a $(devs_tr) - $(DEVICE_DEVS15) + +# GCONFIG_EXTRAS can be set on the command line. +# Note that it consists of arguments for echogs, i.e., +# it isn't just literal text. +GCONFIG_EXTRAS= + +ld_tr=ld$(CONFIG).tr +$(gconfig_h) $(ld_tr) lib.tr: \ + $(GS_MAK) $(MAKEFILE) version.mak $(GENCONF_XE) $(ECHOGS_XE) $(devs_tr) $(DEVS_ALL) libcore.dev + $(EXP)genconf $(devs_tr) libcore.dev -h $(gconfig_h) $(CONFILES) + $(EXP)echogs -a $(gconfig_h) -x 23 define -s -u GS_LIB_DEFAULT -x 2022 $(GS_LIB_DEFAULT) -x 22 + $(EXP)echogs -a $(gconfig_h) -x 23 define -s -u SEARCH_HERE_FIRST -s $(SEARCH_HERE_FIRST) + $(EXP)echogs -a $(gconfig_h) -x 23 define -s -u GS_DOCDIR -x 2022 $(GS_DOCDIR) -x 22 + $(EXP)echogs -a $(gconfig_h) -x 23 define -s -u GS_INIT -x 2022 $(GS_INIT) -x 22 + $(EXP)echogs -a $(gconfig_h) -x 23 define -s -u GS_REVISION -s $(GS_REVISION) + $(EXP)echogs -a $(gconfig_h) -x 23 define -s -u GS_REVISIONDATE -s $(GS_REVISIONDATE) + $(EXP)echogs -a $(gconfig_h) $(GCONFIG_EXTRAS) + +################################################################ +# The other platform-independent makefiles are concatenated +# (or included) after this one: +# lib.mak +# int.mak +# jpeg.mak +# libpng.mak +# zlib.mak +# devs.mak +################################################################ +# Copyright (C) 1995, 1996, 1997, 1998 Aladdin Enterprises. All rights reserved. +# +# This file is part of Aladdin Ghostscript. +# +# Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND. No author +# or distributor accepts any responsibility for the consequences of using it, +# or for whether it serves any particular purpose or works at all, unless he +# or she says so in writing. Refer to the Aladdin Ghostscript Free Public +# License (the "License") for full details. +# +# Every copy of Aladdin Ghostscript must include a copy of the License, +# normally in a plain ASCII text file named PUBLIC. The License grants you +# the right to copy, modify and redistribute Aladdin Ghostscript, but only +# under certain conditions described in the License. Among other things, the +# License requires that the copyright notice and this notice be preserved on +# all copies. + +# (Platform-independent) makefile for graphics library and other support code. +# See the end of gs.mak for where this fits into the build process. + +# Define the name of this makefile. +LIB_MAK=lib.mak + +# Define the inter-dependencies of the .h files. +# Since not all versions of `make' defer expansion of macros, +# we must list these in bottom-to-top order. + +# Generic files + +arch_h=arch.h +stdpre_h=stdpre.h +std_h=std.h $(arch_h) $(stdpre_h) + +# Platform interfaces + +gp_h=gp.h +gpcheck_h=gpcheck.h +gpsync_h=gpsync.h + +# Configuration definitions + +# gconfig*.h are generated dynamically. +gconfig__h=gconfig_.h +gconfigv_h=gconfigv.h +gscdefs_h=gscdefs.h + +# C library interfaces + +# Because of variations in the "standard" header files between systems, and +# because we must include std.h before any file that includes sys/types.h, +# we define local include files named *_.h to substitute for <*.h>. + +vmsmath_h=vmsmath.h + +dos__h=dos_.h +ctype__h=ctype_.h $(std_h) +dirent__h=dirent_.h $(std_h) $(gconfig__h) +errno__h=errno_.h $(std_h) +malloc__h=malloc_.h $(std_h) +math__h=math_.h $(std_h) $(vmsmath_h) +memory__h=memory_.h $(std_h) +stat__h=stat_.h $(std_h) +stdio__h=stdio_.h $(std_h) +string__h=string_.h $(std_h) +time__h=time_.h $(std_h) $(gconfig__h) +windows__h=windows_.h + +# Miscellaneous + +gdebug_h=gdebug.h +gsalloc_h=gsalloc.h +gsargs_h=gsargs.h +gserror_h=gserror.h +gserrors_h=gserrors.h +gsexit_h=gsexit.h +gsgc_h=gsgc.h +gsio_h=gsio.h +gsmdebug_h=gsmdebug.h +gsmemraw_h=gsmemraw.h +gsmemory_h=gsmemory.h $(gsmemraw_h) +gsrefct_h=gsrefct.h +gsstruct_h=gsstruct.h +gstypes_h=gstypes.h +gx_h=gx.h $(stdio__h) $(gdebug_h) $(gserror_h) $(gsio_h) $(gsmemory_h) $(gstypes_h) + +GX=$(AK) $(gx_h) +GXERR=$(GX) $(gserrors_h) + +###### Support + +### Include files + +gsbitmap_h=gsbitmap.h $(gsstruct_h) +gsbitops_h=gsbitops.h +gsbittab_h=gsbittab.h +gsflip_h=gsflip.h +gsuid_h=gsuid.h +gsutil_h=gsutil.h +gxarith_h=gxarith.h +gxbitmap_h=gxbitmap.h $(gsbitmap_h) $(gstypes_h) +gxfarith_h=gxfarith.h $(gconfigv_h) $(gxarith_h) +gxfixed_h=gxfixed.h +gxobj_h=gxobj.h $(gxbitmap_h) +# Out of order +gxalloc_h=gxalloc.h $(gsalloc_h) $(gxobj_h) + +### Executable code + +gsalloc.$(OBJ): gsalloc.c $(GX) $(memory__h) $(string__h) \ + $(gsmdebug_h) $(gsstruct_h) $(gxalloc_h) + +gsargs.$(OBJ): gsargs.c $(ctype__h) $(stdio__h) $(string__h)\ + $(gsargs_h) $(gsexit_h) $(gsmemory_h) + +gsbitops.$(OBJ): gsbitops.c $(AK) $(memory__h) $(stdio__h)\ + $(gdebug_h) $(gsbitops_h) $(gstypes_h) + +gsbittab.$(OBJ): gsbittab.c $(AK) $(stdpre_h) $(gsbittab_h) + +# gsfemu is only used in FPU-less configurations, and currently only with gcc. +# We thought using CCLEAF would produce smaller code, but it actually +# produces larger code! +gsfemu.$(OBJ): gsfemu.c $(AK) $(std_h) + +# gsflip is not part of the standard configuration: it's rather large, +# and no standard facility requires it. +gsflip.$(OBJ): gsflip.c $(GX) $(gsbittab_h) $(gsflip_h) + $(CCLEAF) gsflip.c + +gsmemory.$(OBJ): gsmemory.c $(GX) $(malloc__h) $(memory__h) \ + $(gsmdebug_h) $(gsrefct_h) $(gsstruct_h) $(gsmemraw_h) + +gsmisc.$(OBJ): gsmisc.c $(GXERR) $(gconfigv_h) \ + $(malloc__h) $(math__h) $(memory__h) $(gpcheck_h) $(gxfarith_h) $(gxfixed_h) + +# gsnogc currently is only used in library-only configurations. +gsnogc.$(OBJ): gsnogc.c $(GX)\ + $(gsgc_h) $(gsmdebug_h) $(gsstruct_h) $(gxalloc_h) + +gsutil.$(OBJ): gsutil.c $(AK) $(memory__h) $(string__h) $(gconfigv_h)\ + $(gstypes_h) $(gsuid_h) $(gsutil_h) + +###### Low-level facilities and utilities + +### Include files + +gdevbbox_h=gdevbbox.h +gdevmem_h=gdevmem.h $(gsbitops_h) +gdevmrop_h=gdevmrop.h + +gsccode_h=gsccode.h +gsccolor_h=gsccolor.h $(gsstruct_h) +gscsel_h=gscsel.h +gscolor1_h=gscolor1.h +gscoord_h=gscoord.h +gscpm_h=gscpm.h +gsdevice_h=gsdevice.h +gsfcmap_h=gsfcmap.h $(gsccode_h) +gsfont_h=gsfont.h +gshsb_h=gshsb.h +gsht_h=gsht.h +gsht1_h=gsht1.h $(gsht_h) +gsiparam_h=gsiparam.h +gsjconf_h=gsjconf.h $(std_h) +gslib_h=gslib.h +gslparam_h=gslparam.h +gsmatrix_h=gsmatrix.h +gspaint_h=gspaint.h +gsparam_h=gsparam.h +gsparams_h=gsparams.h $(gsparam_h) +gspath2_h=gspath2.h +gspenum_h=gspenum.h +gsropt_h=gsropt.h +gsxfont_h=gsxfont.h +# Out of order +gschar_h=gschar.h $(gsccode_h) $(gscpm_h) +gscolor2_h=gscolor2.h $(gsccolor_h) $(gsuid_h) $(gxbitmap_h) +gsimage_h=gsimage.h $(gsiparam_h) +gsline_h=gsline.h $(gslparam_h) +gspath_h=gspath.h $(gspenum_h) +gsrop_h=gsrop.h $(gsropt_h) + +gxbcache_h=gxbcache.h $(gxbitmap_h) +gxchar_h=gxchar.h $(gschar_h) +gxcindex_h=gxcindex.h +gxcvalue_h=gxcvalue.h +gxclio_h=gxclio.h +gxclip2_h=gxclip2.h +gxcolor2_h=gxcolor2.h $(gscolor2_h) $(gsrefct_h) $(gxbitmap_h) +gxcoord_h=gxcoord.h $(gscoord_h) +gxcpath_h=gxcpath.h +gxdda_h=gxdda.h +gxdevrop_h=gxdevrop.h +gxdevmem_h=gxdevmem.h +gxdither_h=gxdither.h +gxfcmap_h=gxfcmap.h $(gsfcmap_h) $(gsuid_h) +gxfont0_h=gxfont0.h +gxfrac_h=gxfrac.h +gxftype_h=gxftype.h +gxhttile_h=gxhttile.h +gxhttype_h=gxhttype.h +gxiodev_h=gxiodev.h $(stat__h) +gxline_h=gxline.h $(gslparam_h) +gxlum_h=gxlum.h +gxmatrix_h=gxmatrix.h $(gsmatrix_h) +gxpaint_h=gxpaint.h +gxpath_h=gxpath.h $(gscpm_h) $(gslparam_h) $(gspenum_h) +gxpcache_h=gxpcache.h +gxpcolor_h=gxpcolor.h $(gxpcache_h) +gxsample_h=gxsample.h +gxstate_h=gxstate.h +gxtmap_h=gxtmap.h +gxxfont_h=gxxfont.h $(gsccode_h) $(gsmatrix_h) $(gsuid_h) $(gsxfont_h) +# The following are out of order because they include other files. +gsdcolor_h=gsdcolor.h $(gsccolor_h) $(gxarith_h) $(gxbitmap_h) $(gxcindex_h) $(gxhttile_h) +gxdcolor_h=gxdcolor.h $(gscsel_h) $(gsdcolor_h) $(gsropt_h) $(gsstruct_h) +gxdevice_h=gxdevice.h $(stdio__h) $(gsdcolor_h) $(gsiparam_h) $(gsmatrix_h) \ + $(gsropt_h) $(gsstruct_h) $(gsxfont_h) \ + $(gxbitmap_h) $(gxcindex_h) $(gxcvalue_h) $(gxfixed_h) +gxdht_h=gxdht.h $(gsrefct_h) $(gxarith_h) $(gxhttype_h) +gxctable_h=gxctable.h $(gxfixed_h) $(gxfrac_h) +gxfcache_h=gxfcache.h $(gsuid_h) $(gsxfont_h) $(gxbcache_h) $(gxftype_h) +gxfont_h=gxfont.h $(gsfont_h) $(gsuid_h) $(gsstruct_h) $(gxftype_h) +gscie_h=gscie.h $(gsrefct_h) $(gxctable_h) +gscsepr_h=gscsepr.h +gscspace_h=gscspace.h +gxdcconv_h=gxdcconv.h $(gxfrac_h) +gxfmap_h=gxfmap.h $(gsrefct_h) $(gxfrac_h) $(gxtmap_h) +gxistate_h=gxistate.h $(gscsel_h) $(gsropt_h) $(gxcvalue_h) $(gxfixed_h) $(gxline_h) $(gxmatrix_h) $(gxtmap_h) +gxband_h=gxband.h $(gxclio_h) +gxclist_h=gxclist.h $(gscspace_h) $(gxbcache_h) $(gxclio_h) $(gxistate_h) $(gxband_h) +gxcmap_h=gxcmap.h $(gscsel_h) $(gxcvalue_h) $(gxfmap_h) +gxcspace_h=gxcspace.h $(gscspace_h) $(gsccolor_h) $(gscsel_h) $(gsstruct_h) $(gxfrac_h) +gxht_h=gxht.h $(gsht1_h) $(gsrefct_h) $(gxhttype_h) $(gxtmap_h) +gscolor_h=gscolor.h $(gxtmap_h) +gsstate_h=gsstate.h $(gscolor_h) $(gscsel_h) $(gsdevice_h) $(gsht_h) $(gsline_h) + +gzacpath_h=gzacpath.h +gzcpath_h=gzcpath.h $(gxcpath_h) +gzht_h=gzht.h $(gscsel_h) $(gxdht_h) $(gxfmap_h) $(gxht_h) $(gxhttile_h) +gzline_h=gzline.h $(gxline_h) +gzpath_h=gzpath.h $(gsstruct_h) $(gxpath_h) +gzstate_h=gzstate.h $(gscpm_h) $(gsrefct_h) $(gsstate_h)\ + $(gxdcolor_h) $(gxistate_h) $(gxstate_h) + +gdevprn_h=gdevprn.h $(memory__h) $(string__h) $(gx_h) \ + $(gserrors_h) $(gsmatrix_h) $(gsparam_h) $(gsutil_h) \ + $(gxdevice_h) $(gxdevmem_h) $(gxclist_h) + +sa85x_h=sa85x.h +sbtx_h=sbtx.h +scanchar_h=scanchar.h +scommon_h=scommon.h $(gsmemory_h) $(gstypes_h) $(gsstruct_h) +sdct_h=sdct.h +shc_h=shc.h $(gsbittab_h) +siscale_h=siscale.h $(gconfigv_h) +sjpeg_h=sjpeg.h +slzwx_h=slzwx.h +spcxx_h=spcxx.h +spdiffx_h=spdiffx.h +spngpx_h=spngpx.h +srlx_h=srlx.h +sstring_h=sstring.h +strimpl_h=strimpl.h $(scommon_h) $(gstypes_h) $(gsstruct_h) +szlibx_h=szlibx.h +# Out of order +scf_h=scf.h $(shc_h) +scfx_h=scfx.h $(shc_h) +gximage_h=gximage.h $(gsiparam_h) $(gxcspace_h) $(gxdda_h) $(gxsample_h)\ + $(siscale_h) $(strimpl_h) + +### Executable code + +# gconfig and gscdefs are handled specially. Currently they go in psbase +# rather than in libcore, which is clearly wrong. +gconfig=gconfig$(CONFIG) +$(gconfig).$(OBJ): gconf.c $(GX) \ + $(gscdefs_h) $(gconfig_h) $(gxdevice_h) $(gxiodev_h) $(MAKEFILE) + $(RM_) gconfig.h + $(RM_) $(gconfig).c + $(CP_) $(gconfig_h) gconfig.h + $(CP_) gconf.c $(gconfig).c + $(CCC) $(gconfig).c + $(RM_) gconfig.h + $(RM_) $(gconfig).c + +gscdefs=gscdefs$(CONFIG) +$(gscdefs).$(OBJ): gscdef.c $(stdpre_h) $(gscdefs_h) $(gconfig_h) $(MAKEFILE) + $(RM_) gconfig.h + $(RM_) $(gscdefs).c + $(CP_) $(gconfig_h) gconfig.h + $(CP_) gscdef.c $(gscdefs).c + $(CCC) $(gscdefs).c + $(RM_) gconfig.h + $(RM_) $(gscdefs).c + +gxacpath.$(OBJ): gxacpath.c $(GXERR) \ + $(gsdcolor_h) $(gsrop_h) $(gsstruct_h) $(gsutil_h) \ + $(gxdevice_h) $(gxfixed_h) $(gxpaint_h) \ + $(gzacpath_h) $(gzcpath_h) $(gzpath_h) + +gxbcache.$(OBJ): gxbcache.c $(GX) $(memory__h) \ + $(gsmdebug_h) $(gxbcache_h) + +gxccache.$(OBJ): gxccache.c $(GXERR) $(gpcheck_h) \ + $(gscspace_h) $(gsimage_h) $(gsstruct_h) \ + $(gxchar_h) $(gxdevice_h) $(gxdevmem_h) $(gxfcache_h) \ + $(gxfixed_h) $(gxfont_h) $(gxhttile_h) $(gxmatrix_h) $(gxxfont_h) \ + $(gzstate_h) $(gzpath_h) $(gzcpath_h) + +gxccman.$(OBJ): gxccman.c $(GXERR) $(memory__h) $(gpcheck_h)\ + $(gsbitops_h) $(gsstruct_h) $(gsutil_h) $(gxfixed_h) $(gxmatrix_h)\ + $(gxdevice_h) $(gxdevmem_h) $(gxfont_h) $(gxfcache_h) $(gxchar_h)\ + $(gxxfont_h) $(gzstate_h) $(gzpath_h) + +gxcht.$(OBJ): gxcht.c $(GXERR) $(memory__h)\ + $(gsutil_h)\ + $(gxcmap_h) $(gxdcolor_h) $(gxdevice_h) $(gxfixed_h) $(gxistate_h)\ + $(gxmatrix_h) $(gzht_h) + +gxcmap.$(OBJ): gxcmap.c $(GXERR) \ + $(gsccolor_h) \ + $(gxcmap_h) $(gxcspace_h) $(gxdcconv_h) $(gxdevice_h) $(gxdither_h) \ + $(gxfarith_h) $(gxfrac_h) $(gxlum_h) $(gzstate_h) + +gxcpath.$(OBJ): gxcpath.c $(GXERR)\ + $(gscoord_h) $(gsstruct_h) $(gsutil_h)\ + $(gxdevice_h) $(gxfixed_h) $(gzpath_h) $(gzcpath_h) + +gxdcconv.$(OBJ): gxdcconv.c $(GX) \ + $(gsdcolor_h) $(gxcmap_h) $(gxdcconv_h) $(gxdevice_h) \ + $(gxfarith_h) $(gxistate_h) $(gxlum_h) + +gxdcolor.$(OBJ): gxdcolor.c $(GX) \ + $(gsbittab_h) $(gxdcolor_h) $(gxdevice_h) + +gxdither.$(OBJ): gxdither.c $(GX) \ + $(gsstruct_h) $(gsdcolor_h) \ + $(gxcmap_h) $(gxdevice_h) $(gxdither_h) $(gxlum_h) $(gzht_h) + +gxfill.$(OBJ): gxfill.c $(GXERR) $(math__h) \ + $(gsstruct_h) \ + $(gxdcolor_h) $(gxdevice_h) $(gxfixed_h) $(gxhttile_h) \ + $(gxistate_h) $(gxpaint_h) \ + $(gzcpath_h) $(gzpath_h) + +gxht.$(OBJ): gxht.c $(GXERR) $(memory__h)\ + $(gsbitops_h) $(gsstruct_h) $(gsutil_h)\ + $(gxdcolor_h) $(gxdevice_h) $(gxfixed_h) $(gxistate_h) $(gzht_h) + +gximage.$(OBJ): gximage.c $(GXERR) $(math__h) $(memory__h) $(gpcheck_h)\ + $(gsccolor_h) $(gspaint_h) $(gsstruct_h)\ + $(gxfixed_h) $(gxfrac_h) $(gxarith_h) $(gxmatrix_h)\ + $(gxdevice_h) $(gzpath_h) $(gzstate_h)\ + $(gzcpath_h) $(gxdevmem_h) $(gximage_h) $(gdevmrop_h) + +gximage0.$(OBJ): gximage0.c $(GXERR) $(memory__h)\ + $(gxcpath_h) $(gxdevice_h) $(gximage_h) + +gximage1.$(OBJ): gximage1.c $(GXERR) $(memory__h) $(gpcheck_h)\ + $(gdevmem_h) $(gsbittab_h) $(gsccolor_h) $(gspaint_h) $(gsutil_h)\ + $(gxarith_h) $(gxcmap_h) $(gxcpath_h) $(gxdcolor_h) $(gxdevice_h)\ + $(gxdevmem_h) $(gxfixed_h) $(gximage_h) $(gxistate_h) $(gxmatrix_h)\ + $(gzht_h) $(gzpath_h) + +gximage2.$(OBJ): gximage2.c $(GXERR) $(memory__h) $(gpcheck_h)\ + $(gdevmem_h) $(gsccolor_h) $(gspaint_h) $(gsutil_h)\ + $(gxarith_h) $(gxcmap_h) $(gxcpath_h) $(gxdcolor_h) $(gxdevice_h)\ + $(gxdevmem_h) $(gxfixed_h) $(gximage_h) $(gxistate_h) $(gxmatrix_h)\ + $(gzht_h) $(gzpath_h) + +gxpaint.$(OBJ): gxpaint.c $(GX) \ + $(gxdevice_h) $(gxhttile_h) $(gxpaint_h) $(gxpath_h) $(gzstate_h) + +gxpath.$(OBJ): gxpath.c $(GXERR) \ + $(gsstruct_h) $(gxfixed_h) $(gzpath_h) + +gxpath2.$(OBJ): gxpath2.c $(GXERR) $(math__h) \ + $(gxfixed_h) $(gxarith_h) $(gzpath_h) + +gxpcopy.$(OBJ): gxpcopy.c $(GXERR) $(math__h) $(gconfigv_h) \ + $(gxfarith_h) $(gxfixed_h) $(gzpath_h) + +gxpdash.$(OBJ): gxpdash.c $(GX) $(math__h) \ + $(gscoord_h) $(gsline_h) $(gsmatrix_h) \ + $(gxfixed_h) $(gzline_h) $(gzpath_h) + +gxpflat.$(OBJ): gxpflat.c $(GX)\ + $(gxarith_h) $(gxfixed_h) $(gzpath_h) + +gxsample.$(OBJ): gxsample.c $(GX)\ + $(gxsample_h) + +gxstroke.$(OBJ): gxstroke.c $(GXERR) $(math__h) $(gpcheck_h) \ + $(gscoord_h) $(gsdcolor_h) $(gsdevice_h) \ + $(gxdevice_h) $(gxfarith_h) $(gxfixed_h) \ + $(gxhttile_h) $(gxistate_h) $(gxmatrix_h) $(gxpaint_h) \ + $(gzcpath_h) $(gzline_h) $(gzpath_h) + +###### Higher-level facilities + +gschar.$(OBJ): gschar.c $(GXERR) $(memory__h) $(string__h)\ + $(gspath_h) $(gsstruct_h) \ + $(gxfixed_h) $(gxarith_h) $(gxmatrix_h) $(gxcoord_h) $(gxdevice_h) $(gxdevmem_h) \ + $(gxfont_h) $(gxfont0_h) $(gxchar_h) $(gxfcache_h) $(gzpath_h) $(gzstate_h) + +gscolor.$(OBJ): gscolor.c $(GXERR) \ + $(gsccolor_h) $(gsstruct_h) $(gsutil_h) \ + $(gxcmap_h) $(gxcspace_h) $(gxdcconv_h) $(gxdevice_h) $(gzstate_h) + +gscoord.$(OBJ): gscoord.c $(GXERR) $(math__h) \ + $(gsccode_h) $(gxcoord_h) $(gxdevice_h) $(gxfarith_h) $(gxfixed_h) $(gxfont_h) \ + $(gxmatrix_h) $(gxpath_h) $(gzstate_h) + +gsdevice.$(OBJ): gsdevice.c $(GXERR) $(ctype__h) $(memory__h) $(string__h) $(gp_h)\ + $(gscdefs_h) $(gscoord_h) $(gsmatrix_h) $(gspaint_h) $(gspath_h) $(gsstruct_h)\ + $(gxcmap_h) $(gxdevice_h) $(gxdevmem_h) $(gzstate_h) + +gsdevmem.$(OBJ): gsdevmem.c $(GXERR) $(math__h) $(memory__h) \ + $(gxarith_h) $(gxdevice_h) $(gxdevmem_h) + +gsdparam.$(OBJ): gsdparam.c $(GXERR) $(memory__h) $(string__h) \ + $(gsparam_h) $(gxdevice_h) $(gxfixed_h) + +gsfont.$(OBJ): gsfont.c $(GXERR) $(memory__h)\ + $(gschar_h) $(gsstruct_h) \ + $(gxdevice_h) $(gxfixed_h) $(gxmatrix_h) $(gxfont_h) $(gxfcache_h)\ + $(gzstate_h) + +gsht.$(OBJ): gsht.c $(GXERR) $(memory__h)\ + $(gsstruct_h) $(gsutil_h) $(gxarith_h) $(gxdevice_h) $(gzht_h) $(gzstate_h) + +gshtscr.$(OBJ): gshtscr.c $(GXERR) $(math__h) \ + $(gsstruct_h) $(gxarith_h) $(gxdevice_h) $(gzht_h) $(gzstate_h) + +gsimage.$(OBJ): gsimage.c $(GXERR) $(memory__h)\ + $(gscspace_h) $(gsimage_h) $(gsmatrix_h) $(gsstruct_h) \ + $(gxarith_h) $(gxdevice_h) $(gzstate_h) + +gsimpath.$(OBJ): gsimpath.c $(GXERR) \ + $(gsmatrix_h) $(gsstate_h) $(gspath_h) + +gsinit.$(OBJ): gsinit.c $(memory__h) $(stdio__h) \ + $(gdebug_h) $(gp_h) $(gscdefs_h) $(gslib_h) $(gsmemory_h) + +gsiodev.$(OBJ): gsiodev.c $(GXERR) $(errno__h) $(string__h) \ + $(gp_h) $(gsparam_h) $(gxiodev_h) + +gsline.$(OBJ): gsline.c $(GXERR) $(math__h) $(memory__h)\ + $(gsline_h) $(gxfixed_h) $(gxmatrix_h) $(gzstate_h) $(gzline_h) + +gsmatrix.$(OBJ): gsmatrix.c $(GXERR) $(math__h) \ + $(gxfarith_h) $(gxfixed_h) $(gxmatrix_h) + +gspaint.$(OBJ): gspaint.c $(GXERR) $(math__h) $(gpcheck_h)\ + $(gspaint_h) $(gspath_h) $(gsropt_h)\ + $(gxcpath_h) $(gxdevmem_h) $(gxdevice_h) $(gxfixed_h) $(gxmatrix_h) $(gxpaint_h)\ + $(gzpath_h) $(gzstate_h) + +gsparam.$(OBJ): gsparam.c $(GXERR) $(memory__h) $(string__h)\ + $(gsparam_h) $(gsstruct_h) + +gsparams.$(OBJ): gsparams.c $(gx_h) $(memory__h) $(gserrors_h) $(gsparam_h) + +gspath.$(OBJ): gspath.c $(GXERR) \ + $(gscoord_h) $(gxdevice_h) $(gxfixed_h) $(gxmatrix_h) \ + $(gzcpath_h) $(gzpath_h) $(gzstate_h) + +gsstate.$(OBJ): gsstate.c $(GXERR) $(memory__h)\ + $(gscie_h) $(gscolor2_h) $(gscoord_h) $(gspath_h) $(gsstruct_h) $(gsutil_h) \ + $(gxcmap_h) $(gxcspace_h) $(gxdevice_h) $(gxpcache_h) \ + $(gzstate_h) $(gzht_h) $(gzline_h) $(gzpath_h) $(gzcpath_h) + +###### The internal devices + +### The built-in device implementations: + +# The bounding box device is not normally a free-standing device. +# To configure it as one for testing, change SETMOD to SETDEV, and also +# define TEST in gdevbbox.c. +bbox.dev: $(LIB_MAK) $(ECHOGS_XE) gdevbbox.$(OBJ) + $(SETMOD) bbox gdevbbox.$(OBJ) + +gdevbbox.$(OBJ): gdevbbox.c $(GXERR) $(math__h) $(memory__h) \ + $(gdevbbox_h) $(gsdevice_h) $(gsparam_h) \ + $(gxcpath_h) $(gxdevice_h) $(gxistate_h) $(gxpaint_h) $(gxpath_h) + +gdevddrw.$(OBJ): gdevddrw.c $(GXERR) $(math__h) $(gpcheck_h) \ + $(gxdcolor_h) $(gxdevice_h) $(gxfixed_h) $(gxmatrix_h) + +gdevdflt.$(OBJ): gdevdflt.c $(GXERR) $(gpcheck_h)\ + $(gsbittab_h) $(gsropt_h)\ + $(gxcpath_h) $(gxdcolor_h) $(gxdevice_h) $(gxdevmem_h) + +gdevnfwd.$(OBJ): gdevnfwd.c $(GX) \ + $(gxdevice_h) + +# The render/RGB device is only here as an example, but we can configure +# it as a real device for testing. +rrgb.dev: $(LIB_MAK) $(ECHOGS_XE) gdevrrgb.$(OBJ) page.dev + $(SETPDEV) rrgb gdevrrgb.$(OBJ) + +gdevrrgb.$(OBJ): gdevrrgb.c $(AK)\ + $(gdevprn_h) + +### The memory devices: + +gdevabuf.$(OBJ): gdevabuf.c $(GXERR) $(memory__h)\ + $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h) + +gdevmem.$(OBJ): gdevmem.c $(GXERR) $(memory__h)\ + $(gsstruct_h) $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h) + +gdevm1.$(OBJ): gdevm1.c $(GX) $(memory__h) $(gsrop_h)\ + $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h) + +gdevm2.$(OBJ): gdevm2.c $(GX) $(memory__h)\ + $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h) + +gdevm4.$(OBJ): gdevm4.c $(GX) $(memory__h)\ + $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h) + +gdevm8.$(OBJ): gdevm8.c $(GX) $(memory__h)\ + $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h) + +gdevm16.$(OBJ): gdevm16.c $(GX) $(memory__h)\ + $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h) + +gdevm24.$(OBJ): gdevm24.c $(GX) $(memory__h)\ + $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h) + +gdevm32.$(OBJ): gdevm32.c $(GX) $(memory__h)\ + $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h) + +gdevmpla.$(OBJ): gdevmpla.c $(GX) $(memory__h)\ + $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h) + +# Create a pseudo-"feature" for the entire graphics library. + +LIB1s=gsalloc.$(OBJ) gsbitops.$(OBJ) gsbittab.$(OBJ) +LIB2s=gschar.$(OBJ) gscolor.$(OBJ) gscoord.$(OBJ) gsdevice.$(OBJ) gsdevmem.$(OBJ) +LIB3s=gsdparam.$(OBJ) gsfont.$(OBJ) gsht.$(OBJ) gshtscr.$(OBJ) +LIB4s=gsimage.$(OBJ) gsimpath.$(OBJ) gsinit.$(OBJ) gsiodev.$(OBJ) +LIB5s=gsline.$(OBJ) gsmatrix.$(OBJ) gsmemory.$(OBJ) gsmisc.$(OBJ) +LIB6s=gspaint.$(OBJ) gsparam.$(OBJ) gsparams.$(OBJ) gspath.$(OBJ) gsstate.$(OBJ) gsutil.$(OBJ) +LIB1x=gxacpath.$(OBJ) gxbcache.$(OBJ) +LIB2x=gxccache.$(OBJ) gxccman.$(OBJ) gxcht.$(OBJ) gxcmap.$(OBJ) gxcpath.$(OBJ) +LIB3x=gxdcconv.$(OBJ) gxdcolor.$(OBJ) gxdither.$(OBJ) gxfill.$(OBJ) gxht.$(OBJ) +LIB4x=gximage.$(OBJ) gximage0.$(OBJ) gximage1.$(OBJ) gximage2.$(OBJ) +LIB5x=gxpaint.$(OBJ) gxpath.$(OBJ) gxpath2.$(OBJ) gxpcopy.$(OBJ) +LIB6x=gxpdash.$(OBJ) gxpflat.$(OBJ) gxsample.$(OBJ) gxstroke.$(OBJ) +LIB1d=gdevabuf.$(OBJ) gdevddrw.$(OBJ) gdevdflt.$(OBJ) gdevnfwd.$(OBJ) +LIB2d=gdevmem.$(OBJ) gdevm1.$(OBJ) gdevm2.$(OBJ) gdevm4.$(OBJ) gdevm8.$(OBJ) +LIB3d=gdevm16.$(OBJ) gdevm24.$(OBJ) gdevm32.$(OBJ) gdevmpla.$(OBJ) +LIBs=$(LIB1s) $(LIB2s) $(LIB3s) $(LIB4s) $(LIB5s) $(LIB6s) +LIBx=$(LIB1x) $(LIB2x) $(LIB3x) $(LIB4x) $(LIB5x) $(LIB6x) +LIBd=$(LIB1d) $(LIB2d) $(LIB3d) +LIB_ALL=$(LIBs) $(LIBx) $(LIBd) +libs.dev: $(LIB_MAK) $(ECHOGS_XE) $(LIBs) + $(EXP)echogs -w libs.dev $(LIB1s) + $(EXP)echogs -a libs.dev $(LIB2s) + $(EXP)echogs -a libs.dev $(LIB3s) + $(EXP)echogs -a libs.dev $(LIB4s) + $(EXP)echogs -a libs.dev $(LIB5s) + $(EXP)echogs -a libs.dev $(LIB6s) + $(ADDMOD) libs -init gscolor + +libx.dev: $(LIB_MAK) $(ECHOGS_XE) $(LIBx) + $(EXP)echogs -w libx.dev $(LIB1x) + $(EXP)echogs -a libx.dev $(LIB2x) + $(EXP)echogs -a libx.dev $(LIB3x) + $(EXP)echogs -a libx.dev $(LIB4x) + $(EXP)echogs -a libx.dev $(LIB5x) + $(EXP)echogs -a libx.dev $(LIB6x) + $(ADDMOD) libx -init gximage1 gximage2 + +libd.dev: $(LIB_MAK) $(ECHOGS_XE) $(LIBd) + $(EXP)echogs -w libd.dev $(LIB1d) + $(EXP)echogs -a libd.dev $(LIB2d) + $(EXP)echogs -a libd.dev $(LIB3d) + +# roplib shouldn't be required.... +libcore.dev: $(LIB_MAK) $(ECHOGS_XE)\ + libs.dev libx.dev libd.dev iscale.dev roplib.dev + $(SETMOD) libcore + $(ADDMOD) libcore -dev nullpage + $(ADDMOD) libcore -include libs libx libd iscale roplib + +# ---------------- Stream support ---------------- # +# Currently the only things in the library that use this are clists +# and file streams. + +stream_h=stream.h $(scommon_h) + +stream.$(OBJ): stream.c $(AK) $(stdio__h) $(memory__h) \ + $(gdebug_h) $(gpcheck_h) $(stream_h) $(strimpl_h) + +# ---------------- File streams ---------------- # +# Currently only the high-level drivers use these, but more drivers will +# probably use them eventually. + +sfile_=sfx$(FILE_IMPLEMENTATION).$(OBJ) stream.$(OBJ) +sfile.dev: $(LIB_MAK) $(ECHOGS_XE) $(sfile_) + $(SETMOD) sfile $(sfile_) + +sfxstdio.$(OBJ): sfxstdio.c $(AK) $(stdio__h) $(memory__h) \ + $(gdebug_h) $(gpcheck_h) $(stream_h) $(strimpl_h) + +sfxfd.$(OBJ): sfxfd.c $(AK) $(stdio__h) $(errno__h) $(memory__h) \ + $(gdebug_h) $(gpcheck_h) $(stream_h) $(strimpl_h) + +sfxboth.$(OBJ): sfxboth.c sfxstdio.c sfxfd.c + +# ---------------- CCITTFax filters ---------------- # +# These are used by clists, some drivers, and Level 2 in general. + +cfe_=scfe.$(OBJ) scfetab.$(OBJ) shc.$(OBJ) +cfe.dev: $(LIB_MAK) $(ECHOGS_XE) $(cfe_) + $(SETMOD) cfe $(cfe_) + +scfe.$(OBJ): scfe.c $(AK) $(memory__h) $(stdio__h) $(gdebug_h)\ + $(scf_h) $(strimpl_h) $(scfx_h) + +scfetab.$(OBJ): scfetab.c $(AK) $(std_h) $(scommon_h) $(scf_h) + +shc.$(OBJ): shc.c $(AK) $(std_h) $(scommon_h) $(shc_h) + +cfd_=scfd.$(OBJ) scfdtab.$(OBJ) +cfd.dev: $(LIB_MAK) $(ECHOGS_XE) $(cfd_) + $(SETMOD) cfd $(cfd_) + +scfd.$(OBJ): scfd.c $(AK) $(memory__h) $(stdio__h) $(gdebug_h)\ + $(scf_h) $(strimpl_h) $(scfx_h) + +scfdtab.$(OBJ): scfdtab.c $(AK) $(std_h) $(scommon_h) $(scf_h) + +# ---------------- DCT (JPEG) filters ---------------- # +# These are used by Level 2, and by the JPEG-writing driver. + +# Common code + +sdctc_=sdctc.$(OBJ) sjpegc.$(OBJ) + +sdctc.$(OBJ): sdctc.c $(AK) $(stdio__h)\ + $(sdct_h) $(strimpl_h)\ + jpeglib.h + +sjpegc.$(OBJ): sjpegc.c $(AK) $(stdio__h) $(string__h) $(gx_h)\ + $(gserrors_h) $(sjpeg_h) $(sdct_h) $(strimpl_h) \ + jerror.h jpeglib.h + +# Encoding (compression) + +sdcte_=$(sdctc_) sdcte.$(OBJ) sjpege.$(OBJ) +sdcte.dev: $(LIB_MAK) $(ECHOGS_XE) $(sdcte_) jpege.dev + $(SETMOD) sdcte $(sdcte_) + $(ADDMOD) sdcte -include jpege + +sdcte.$(OBJ): sdcte.c $(AK) $(memory__h) $(stdio__h) $(gdebug_h)\ + $(sdct_h) $(sjpeg_h) $(strimpl_h) \ + jerror.h jpeglib.h + +sjpege.$(OBJ): sjpege.c $(AK) $(stdio__h) $(string__h) $(gx_h)\ + $(gserrors_h) $(sjpeg_h) $(sdct_h) $(strimpl_h) \ + jerror.h jpeglib.h + +# Decoding (decompression) + +sdctd_=$(sdctc_) sdctd.$(OBJ) sjpegd.$(OBJ) +sdctd.dev: $(LIB_MAK) $(ECHOGS_XE) $(sdctd_) jpegd.dev + $(SETMOD) sdctd $(sdctd_) + $(ADDMOD) sdctd -include jpegd + +sdctd.$(OBJ): sdctd.c $(AK) $(memory__h) $(stdio__h) $(gdebug_h)\ + $(sdct_h) $(sjpeg_h) $(strimpl_h) \ + jerror.h jpeglib.h + +sjpegd.$(OBJ): sjpegd.c $(AK) $(stdio__h) $(string__h) $(gx_h)\ + $(gserrors_h) $(sjpeg_h) $(sdct_h) $(strimpl_h)\ + jerror.h jpeglib.h + +# ---------------- LZW filters ---------------- # +# These are used by Level 2 in general. + +slzwe_=slzwce +#slzwe_=slzwe +lzwe_=$(slzwe_).$(OBJ) slzwc.$(OBJ) +lzwe.dev: $(LIB_MAK) $(ECHOGS_XE) $(lzwe_) + $(SETMOD) lzwe $(lzwe_) + +# We need slzwe.dev as a synonym for lzwe.dev for BAND_LIST_STORAGE = memory. +slzwe.dev: lzwe.dev + $(CP_) lzwe.dev slzwe.dev + +slzwce.$(OBJ): slzwce.c $(AK) $(stdio__h) $(gdebug_h)\ + $(slzwx_h) $(strimpl_h) + +slzwe.$(OBJ): slzwe.c $(AK) $(stdio__h) $(gdebug_h)\ + $(slzwx_h) $(strimpl_h) + +slzwc.$(OBJ): slzwc.c $(AK) $(std_h)\ + $(slzwx_h) $(strimpl_h) + +lzwd_=slzwd.$(OBJ) slzwc.$(OBJ) +lzwd.dev: $(LIB_MAK) $(ECHOGS_XE) $(lzwd_) + $(SETMOD) lzwd $(lzwd_) + +# We need slzwd.dev as a synonym for lzwd.dev for BAND_LIST_STORAGE = memory. +slzwd.dev: lzwd.dev + $(CP_) lzwd.dev slzwd.dev + +slzwd.$(OBJ): slzwd.c $(AK) $(stdio__h) $(gdebug_h)\ + $(slzwx_h) $(strimpl_h) + +# ---------------- PCX decoding filter ---------------- # +# This is an adhoc filter not used by anything in the standard configuration. + +pcxd_=spcxd.$(OBJ) +pcxd.dev: $(LIB_MAK) $(ECHOGS_XE) $(pcxd_) + $(SETMOD) pcxd $(pcxd_) + +spcxd.$(OBJ): spcxd.c $(AK) $(stdio__h) $(memory__h) \ + $(spcxx_h) $(strimpl_h) + +# ---------------- Pixel-difference filters ---------------- # +# The Predictor facility of the LZW and Flate filters uses these. + +pdiff_=spdiff.$(OBJ) +pdiff.dev: $(LIB_MAK) $(ECHOGS_XE) $(pdiff_) + $(SETMOD) pdiff $(pdiff_) + +spdiff.$(OBJ): spdiff.c $(AK) $(stdio__h)\ + $(spdiffx_h) $(strimpl_h) + +# ---------------- PNG pixel prediction filters ---------------- # +# The Predictor facility of the LZW and Flate filters uses these. + +pngp_=spngp.$(OBJ) +pngp.dev: $(LIB_MAK) $(ECHOGS_XE) $(pngp_) + $(SETMOD) pngp $(pngp_) + +spngp.$(OBJ): spngp.c $(AK) $(memory__h)\ + $(spngpx_h) $(strimpl_h) + +# ---------------- RunLength filters ---------------- # +# These are used by clists and also by Level 2 in general. + +rle_=srle.$(OBJ) +rle.dev: $(LIB_MAK) $(ECHOGS_XE) $(rle_) + $(SETMOD) rle $(rle_) + +srle.$(OBJ): srle.c $(AK) $(stdio__h) $(memory__h) \ + $(srlx_h) $(strimpl_h) + +rld_=srld.$(OBJ) +rld.dev: $(LIB_MAK) $(ECHOGS_XE) $(rld_) + $(SETMOD) rld $(rld_) + +srld.$(OBJ): srld.c $(AK) $(stdio__h) $(memory__h) \ + $(srlx_h) $(strimpl_h) + +# ---------------- String encoding/decoding filters ---------------- # +# These are used by the PostScript and PDF writers, and also by the +# PostScript interpreter. + +scantab.$(OBJ): scantab.c $(AK) $(stdpre_h)\ + $(scanchar_h) $(scommon_h) + +sfilter2.$(OBJ): sfilter2.c $(AK) $(memory__h) $(stdio__h)\ + $(sa85x_h) $(scanchar_h) $(sbtx_h) $(strimpl_h) + +sstring.$(OBJ): sstring.c $(AK) $(stdio__h) $(memory__h) $(string__h)\ + $(scanchar_h) $(sstring_h) $(strimpl_h) + +# ---------------- zlib filters ---------------- # +# These are used by clists and are also available as filters. + +szlibc_=szlibc.$(OBJ) + +szlibc.$(OBJ): szlibc.c $(AK) $(std_h) \ + $(gsmemory_h) $(gsstruct_h) $(gstypes_h) $(strimpl_h) $(szlibx_h) + $(CCCZ) szlibc.c + +szlibe_=$(szlibc_) szlibe.$(OBJ) +szlibe.dev: $(LIB_MAK) $(ECHOGS_XE) zlibe.dev $(szlibe_) + $(SETMOD) szlibe $(szlibe_) + $(ADDMOD) szlibe -include zlibe + +szlibe.$(OBJ): szlibe.c $(AK) $(std_h) \ + $(gsmemory_h) $(strimpl_h) $(szlibx_h) + $(CCCZ) szlibe.c + +szlibd_=$(szlibc_) szlibd.$(OBJ) +szlibd.dev: $(LIB_MAK) $(ECHOGS_XE) zlibd.dev $(szlibd_) + $(SETMOD) szlibd $(szlibd_) + $(ADDMOD) szlibd -include zlibd + +szlibd.$(OBJ): szlibd.c $(AK) $(std_h) \ + $(gsmemory_h) $(strimpl_h) $(szlibx_h) + $(CCCZ) szlibd.c + +# ---------------- Command lists ---------------- # + +gxcldev_h=gxcldev.h $(gxclist_h) $(gsropt_h) $(gxht_h) $(gxtmap_h) $(gxdht_h)\ + $(strimpl_h) $(scfx_h) $(srlx_h) +gxclpage_h=gxclpage.h $(gxclio_h) +gxclpath_h=gxclpath.h $(gxfixed_h) + +# Command list package. Currently the higher-level facilities are required, +# but eventually they will be optional. +clist.dev: $(LIB_MAK) $(ECHOGS_XE) clbase.dev clpath.dev + $(SETMOD) clist -include clbase clpath + +# Base command list facility. +clbase1_=gxclist.$(OBJ) gxclbits.$(OBJ) gxclpage.$(OBJ) +clbase2_=gxclread.$(OBJ) gxclrect.$(OBJ) stream.$(OBJ) +clbase_=$(clbase1_) $(clbase2_) +clbase.dev: $(LIB_MAK) $(ECHOGS_XE) $(clbase_) cl$(BAND_LIST_STORAGE).dev \ + cfe.dev cfd.dev rle.dev rld.dev + $(SETMOD) clbase $(clbase1_) + $(ADDMOD) clbase -obj $(clbase2_) + $(ADDMOD) clbase -include cl$(BAND_LIST_STORAGE) cfe cfd rle rld + +gdevht_h=gdevht.h $(gzht_h) + +gdevht.$(OBJ): gdevht.c $(GXERR) \ + $(gdevht_h) $(gxdcconv_h) $(gxdcolor_h) $(gxdevice_h) $(gxdither_h) + +gxclist.$(OBJ): gxclist.c $(GXERR) $(memory__h) $(string__h)\ + $(gp_h) $(gpcheck_h)\ + $(gxcldev_h) $(gxclpath_h) $(gxdevice_h) $(gxdevmem_h) $(gsparams_h) + +gxclbits.$(OBJ): gxclbits.c $(GXERR) $(memory__h) $(gpcheck_h)\ + $(gsbitops_h) $(gxcldev_h) $(gxdevice_h) $(gxdevmem_h) $(gxfmap_h) + +gxclpage.$(OBJ): gxclpage.c $(AK)\ + $(gdevprn_h) $(gxcldev_h) $(gxclpage_h) + +# (gxclread shouldn't need gxclpath.h) +gxclread.$(OBJ): gxclread.c $(GXERR) $(memory__h) $(gp_h) $(gpcheck_h)\ + $(gdevht_h)\ + $(gsbitops_h) $(gscoord_h) $(gsdevice_h) $(gsstate_h)\ + $(gxcldev_h) $(gxclpath_h) $(gxcmap_h) $(gxcspace_h) $(gxdcolor_h)\ + $(gxdevice_h) $(gxdevmem_h) $(gsparams_h)\ + $(gxhttile_h) $(gxpaint_h) $(gzacpath_h) $(gzcpath_h) $(gzpath_h)\ + $(stream_h) $(strimpl_h) + +gxclrect.$(OBJ): gxclrect.c $(GXERR)\ + $(gsutil_h) $(gxcldev_h) $(gxdevice_h) $(gxdevmem_h) + +# Higher-level command list facilities. +clpath_=gxclimag.$(OBJ) gxclpath.$(OBJ) +clpath.dev: $(LIB_MAK) $(ECHOGS_XE) $(clpath_) psl2cs.dev + $(SETMOD) clpath $(clpath_) + $(ADDMOD) clpath -include psl2cs + $(ADDMOD) clpath -init climag clpath + +gxclimag.$(OBJ): gxclimag.c $(GXERR) $(math__h) $(memory__h)\ + $(gscspace_h)\ + $(gxarith_h) $(gxcldev_h) $(gxclpath_h) $(gxdevice_h) $(gxdevmem_h)\ + $(gxpath_h) $(gxfmap_h)\ + $(siscale_h) $(strimpl_h) + +gxclpath.$(OBJ): gxclpath.c $(GXERR) $(math__h) $(memory__h) $(gpcheck_h)\ + $(gxcldev_h) $(gxclpath_h) $(gxcolor2_h) $(gxdevice_h) $(gxdevmem_h)\ + $(gxpaint_h) \ + $(gzcpath_h) $(gzpath_h) + +# Implement band lists on files. + +clfile_=gxclfile.$(OBJ) +clfile.dev: $(LIB_MAK) $(ECHOGS_XE) $(clfile_) + $(SETMOD) clfile $(clfile_) + +gxclfile.$(OBJ): gxclfile.c $(stdio__h) $(string__h) \ + $(gp_h) $(gsmemory_h) $(gserror_h) $(gserrors_h) $(gxclio_h) + +# Implement band lists in memory (RAM). + +clmemory_=gxclmem.$(OBJ) gxcl$(BAND_LIST_COMPRESSOR).$(OBJ) +clmemory.dev: $(LIB_MAK) $(ECHOGS_XE) $(clmemory_) s$(BAND_LIST_COMPRESSOR)e.dev s$(BAND_LIST_COMPRESSOR)d.dev + $(SETMOD) clmemory $(clmemory_) + $(ADDMOD) clmemory -include s$(BAND_LIST_COMPRESSOR)e s$(BAND_LIST_COMPRESSOR)d + $(ADDMOD) clmemory -init cl_$(BAND_LIST_COMPRESSOR) + +gxclmem_h=gxclmem.h $(gxclio_h) $(strimpl_h) + +gxclmem.$(OBJ): gxclmem.c $(GXERR) $(LIB_MAK) $(memory__h) \ + $(gxclmem_h) + +# Implement the compression method for RAM-based band lists. + +gxcllzw.$(OBJ): gxcllzw.c $(std_h)\ + $(gsmemory_h) $(gstypes_h) $(gxclmem_h) $(slzwx_h) + +gxclzlib.$(OBJ): gxclzlib.c $(std_h)\ + $(gsmemory_h) $(gstypes_h) $(gxclmem_h) $(szlibx_h) + $(CCCZ) gxclzlib.c + +# ---------------- Page devices ---------------- # +# We include this here, rather than in devs.mak, because it is more like +# a feature than a simple device. + +page_=gdevprn.$(OBJ) +page.dev: $(LIB_MAK) $(ECHOGS_XE) $(page_) clist.dev + $(SETMOD) page $(page_) + $(ADDMOD) page -include clist + +gdevprn.$(OBJ): gdevprn.c $(ctype__h) \ + $(gdevprn_h) $(gp_h) $(gsparam_h) $(gxclio_h) + +# ---------------- Vector devices ---------------- # +# We include this here for the same reasons as page.dev. + +gdevvec_h=gdevvec.h $(gdevbbox_h) $(gsropt_h) $(gxdevice_h) $(gxistate_h) $(stream_h) + +vector_=gdevvec.$(OBJ) +vector.dev: $(LIB_MAK) $(ECHOGS_XE) $(vector_) bbox.dev sfile.dev + $(SETMOD) vector $(vector_) + $(ADDMOD) vector -include bbox sfile + +gdevvec.$(OBJ): gdevvec.c $(GXERR) $(math__h) $(memory__h) $(string__h)\ + $(gdevvec_h) $(gp_h) $(gscspace_h) $(gsparam_h) $(gsutil_h)\ + $(gxdcolor_h) $(gxfixed_h) $(gxpaint_h)\ + $(gzcpath_h) $(gzpath_h) + +# ---------------- Image scaling filter ---------------- # + +iscale_=siscale.$(OBJ) +iscale.dev: $(LIB_MAK) $(ECHOGS_XE) $(iscale_) + $(SETMOD) iscale $(iscale_) + +siscale.$(OBJ): siscale.c $(AK) $(math__h) $(memory__h) $(stdio__h) \ + $(siscale_h) $(strimpl_h) + +# ---------------- RasterOp et al ---------------- # +# Currently this module is required, but it should be optional. + +roplib_=gdevmrop.$(OBJ) gsrop.$(OBJ) gsroptab.$(OBJ) +roplib.dev: $(LIB_MAK) $(ECHOGS_XE) $(roplib_) + $(SETMOD) roplib $(roplib_) + $(ADDMOD) roplib -init roplib + +gdevrun.$(OBJ): gdevrun.c $(GXERR) $(memory__h) \ + $(gxdevice_h) $(gxdevmem_h) + +gdevmrop.$(OBJ): gdevmrop.c $(GXERR) $(memory__h) \ + $(gsbittab_h) $(gsropt_h) \ + $(gxdcolor_h) $(gxdevice_h) $(gxdevmem_h) $(gxdevrop_h) \ + $(gdevmrop_h) + +gsrop.$(OBJ): gsrop.c $(GXERR) \ + $(gsrop_h) $(gzstate_h) + +gsroptab.$(OBJ): gsroptab.c $(stdpre_h) $(gsropt_h) + $(CCLEAF) gsroptab.c + +# ---------------- Async rendering ---------------- # + +gsmemfix_h=gsmemfix.h $(gsmemraw_h) +gxsync_h=gxsync.h $(gpsync_h) $(gsmemory_h) +gxpageq_h=gxpageq.h $(gsmemory_h) $(gxband_h) $(gxsync_h) +gsmemlok_h=gsmemlok.h $(gsmemory_h) $(gxsync_h) +gdevprna_h=gdevprna.h $(gdevprn_h) $(gxsync_h) + +async_=gdevprna.$(OBJ) gxsync.$(OBJ) gxpageq.$(OBJ) gsmemlok.$(OBJ)\ + gsmemfix.$(OBJ) +async.dev: $(INT_MAK) $(ECHOGS_XE) $(async_) clist.dev + $(SETMOD) async $(async_) + +gdevprna.$(OBJ): gdevprna.c $(AK) $(ctype__h) $(gdevprna_h) $(gsparam_h)\ + $(gsdevice_h) $(gxcldev_h) $(gxclpath_h) $(gxpageq_h) $(gsmemory_h)\ + $(gsmemlok_h) $(gsmemfix_h) + +gsmemfix.$(OBJ): gsmemfix.c $(AK) $(memory__h) $(gsmemraw_h) $(gsmemfix_h) + +gxsync.$(OBJ): gxsync.c $(AK) $(gxsync_h) $(memory__h) $(gx_h) $(gserrors_h)\ + $(gsmemory_h) + +gxpageq.$(OBJ): gxpageq.c $(GXERR) $(gxdevice_h) $(gxclist_h)\ + $(gxpageq_h) $(gserrors_h) + +gsmemlok.$(OBJ): gsmemlok.c $(GXERR) $(gsmemlok_h) $(gserrors_h) + +# -------- Composite (PostScript Type 0) font support -------- # + +cmaplib_=gsfcmap.$(OBJ) +cmaplib.dev: $(LIB_MAK) $(ECHOGS_XE) $(cmaplib_) + $(SETMOD) cmaplib $(cmaplib_) + +gsfcmap.$(OBJ): gsfcmap.c $(GXERR)\ + $(gsstruct_h) $(gxfcmap_h) + +psf0lib_=gschar0.$(OBJ) gsfont0.$(OBJ) +psf0lib.dev: $(LIB_MAK) $(ECHOGS_XE) cmaplib.dev $(psf0lib_) + $(SETMOD) psf0lib $(psf0lib_) + $(ADDMOD) psf0lib -include cmaplib + +gschar0.$(OBJ): gschar0.c $(GXERR) $(memory__h)\ + $(gsstruct_h) $(gxfixed_h) $(gxdevice_h) $(gxdevmem_h)\ + $(gsfcmap_h) $(gxfont_h) $(gxfont0_h) $(gxchar_h) + +gsfont0.$(OBJ): gsfont0.c $(GXERR) $(memory__h)\ + $(gsmatrix_h) $(gsstruct_h) $(gxfixed_h) $(gxdevmem_h) $(gxfcache_h)\ + $(gxfont_h) $(gxfont0_h) $(gxchar_h) $(gxdevice_h) + +# ---------------- Pattern color ---------------- # + +patlib_=gspcolor.$(OBJ) gxclip2.$(OBJ) gxpcmap.$(OBJ) +patlib.dev: $(LIB_MAK) $(ECHOGS_XE) cmyklib.dev psl2cs.dev $(patlib_) + $(SETMOD) patlib -include cmyklib psl2cs + $(ADDMOD) patlib -obj $(patlib_) + +gspcolor.$(OBJ): gspcolor.c $(GXERR) $(math__h) \ + $(gsimage_h) $(gspath_h) $(gsrop_h) $(gsstruct_h) $(gsutil_h) \ + $(gxarith_h) $(gxcolor2_h) $(gxcoord_h) $(gxclip2_h) $(gxcspace_h) \ + $(gxdcolor_h) $(gxdevice_h) $(gxdevmem_h) \ + $(gxfixed_h) $(gxmatrix_h) $(gxpath_h) $(gxpcolor_h) $(gzstate_h) + +gxclip2.$(OBJ): gxclip2.c $(GXERR) $(memory__h) \ + $(gsstruct_h) $(gxclip2_h) $(gxdevice_h) $(gxdevmem_h) + +gxpcmap.$(OBJ): gxpcmap.c $(GXERR) $(math__h) $(memory__h)\ + $(gsstruct_h) $(gsutil_h)\ + $(gxcolor2_h) $(gxcspace_h) $(gxdcolor_h) $(gxdevice_h) $(gxdevmem_h)\ + $(gxfixed_h) $(gxmatrix_h) $(gxpcolor_h)\ + $(gzcpath_h) $(gzpath_h) $(gzstate_h) + +# ---------------- PostScript Type 1 (and Type 4) fonts ---------------- # + +type1lib_=gxtype1.$(OBJ) gxhint1.$(OBJ) gxhint2.$(OBJ) gxhint3.$(OBJ) + +gscrypt1_h=gscrypt1.h +gstype1_h=gstype1.h +gxfont1_h=gxfont1.h +gxop1_h=gxop1.h +gxtype1_h=gxtype1.h $(gscrypt1_h) $(gstype1_h) $(gxop1_h) + +gxtype1.$(OBJ): gxtype1.c $(GXERR) $(math__h)\ + $(gsccode_h) $(gsline_h) $(gsstruct_h)\ + $(gxarith_h) $(gxcoord_h) $(gxfixed_h) $(gxmatrix_h)\ + $(gxfont_h) $(gxfont1_h) $(gxistate_h) $(gxtype1_h)\ + $(gzpath_h) + +gxhint1.$(OBJ): gxhint1.c $(GXERR)\ + $(gxarith_h) $(gxfixed_h) $(gxmatrix_h) $(gxchar_h)\ + $(gxfont_h) $(gxfont1_h) $(gxtype1_h) + +gxhint2.$(OBJ): gxhint2.c $(GXERR) $(memory__h)\ + $(gxarith_h) $(gxfixed_h) $(gxmatrix_h) $(gxchar_h)\ + $(gxfont_h) $(gxfont1_h) $(gxtype1_h) + +gxhint3.$(OBJ): gxhint3.c $(GXERR) $(math__h)\ + $(gxarith_h) $(gxfixed_h) $(gxmatrix_h) $(gxchar_h)\ + $(gxfont_h) $(gxfont1_h) $(gxtype1_h)\ + $(gzpath_h) + +# Type 1 charstrings + +psf1lib_=gstype1.$(OBJ) +psf1lib.dev: $(LIB_MAK) $(ECHOGS_XE) $(psf1lib_) $(type1lib_) + $(SETMOD) psf1lib $(psf1lib_) + $(ADDMOD) psf1lib $(type1lib_) + $(ADDMOD) psf1lib -init gstype1 + +gstype1.$(OBJ): gstype1.c $(GXERR) $(math__h) $(memory__h)\ + $(gsstruct_h)\ + $(gxarith_h) $(gxcoord_h) $(gxfixed_h) $(gxmatrix_h) $(gxchar_h)\ + $(gxfont_h) $(gxfont1_h) $(gxistate_h) $(gxtype1_h)\ + $(gzpath_h) + +# Type 2 charstrings + +psf2lib_=gstype2.$(OBJ) +psf2lib.dev: $(LIB_MAK) $(ECHOGS_XE) $(psf2lib_) $(type1lib_) + $(SETMOD) psf2lib $(psf2lib_) + $(ADDMOD) psf2lib $(type1lib_) + $(ADDMOD) psf2lib -init gstype2 + +gstype2.$(OBJ): gstype2.c $(GXERR) $(math__h) $(memory__h)\ + $(gsstruct_h)\ + $(gxarith_h) $(gxcoord_h) $(gxfixed_h) $(gxmatrix_h) $(gxchar_h)\ + $(gxfont_h) $(gxfont1_h) $(gxistate_h) $(gxtype1_h)\ + $(gzpath_h) + +# ---------------- TrueType and PostScript Type 42 fonts ---------------- # + +ttflib_=gstype42.$(OBJ) +ttflib.dev: $(LIB_MAK) $(ECHOGS_XE) $(ttflib_) + $(SETMOD) ttflib $(ttflib_) + +gxfont42_h=gxfont42.h + +gstype42.$(OBJ): gstype42.c $(GXERR) $(memory__h) \ + $(gsccode_h) $(gsmatrix_h) $(gsstruct_h) \ + $(gxfixed_h) $(gxfont_h) $(gxfont42_h) $(gxistate_h) $(gxpath_h) + +# -------- Level 1 color extensions (CMYK color and colorimage) -------- # + +cmyklib_=gscolor1.$(OBJ) gsht1.$(OBJ) +cmyklib.dev: $(LIB_MAK) $(ECHOGS_XE) $(cmyklib_) + $(SETMOD) cmyklib $(cmyklib_) + $(ADDMOD) cmyklib -init gscolor1 + +gscolor1.$(OBJ): gscolor1.c $(GXERR) \ + $(gsccolor_h) $(gscolor1_h) $(gsstruct_h) $(gsutil_h) \ + $(gxcmap_h) $(gxcspace_h) $(gxdcconv_h) $(gxdevice_h) \ + $(gzstate_h) + +gsht1.$(OBJ): gsht1.c $(GXERR) $(memory__h)\ + $(gsstruct_h) $(gsutil_h) $(gxdevice_h) $(gzht_h) $(gzstate_h) + +colimlib_=gximage3.$(OBJ) +colimlib.dev: $(LIB_MAK) $(ECHOGS_XE) $(colimlib_) + $(SETMOD) colimlib $(colimlib_) + $(ADDMOD) colimlib -init gximage3 + +gximage3.$(OBJ): gximage3.c $(GXERR) $(memory__h) $(gpcheck_h)\ + $(gsccolor_h) $(gspaint_h)\ + $(gxarith_h) $(gxcmap_h) $(gxcpath_h) $(gxdcconv_h) $(gxdcolor_h)\ + $(gxdevice_h) $(gxdevmem_h) $(gxfixed_h) $(gxfrac_h)\ + $(gximage_h) $(gxistate_h) $(gxmatrix_h)\ + $(gzpath_h) $(gzstate_h) + +# ---------------- HSB color ---------------- # + +hsblib_=gshsb.$(OBJ) +hsblib.dev: $(LIB_MAK) $(ECHOGS_XE) $(hsblib_) + $(SETMOD) hsblib $(hsblib_) + +gshsb.$(OBJ): gshsb.c $(GX) \ + $(gscolor_h) $(gshsb_h) $(gxfrac_h) + +# ---- Level 1 path miscellany (arcs, pathbbox, path enumeration) ---- # + +path1lib_=gspath1.$(OBJ) +path1lib.dev: $(LIB_MAK) $(ECHOGS_XE) $(path1lib_) + $(SETMOD) path1lib $(path1lib_) + +gspath1.$(OBJ): gspath1.c $(GXERR) $(math__h) \ + $(gscoord_h) $(gspath_h) $(gsstruct_h) \ + $(gxfarith_h) $(gxfixed_h) $(gxmatrix_h) \ + $(gzstate_h) $(gzpath_h) + +# --------------- Level 2 color space and color image support --------------- # + +psl2cs_=gscolor2.$(OBJ) +psl2cs.dev: $(LIB_MAK) $(ECHOGS_XE) $(psl2cs_) + $(SETMOD) psl2cs $(psl2cs_) + +gscolor2.$(OBJ): gscolor2.c $(GXERR) \ + $(gxarith_h) $(gxcolor2_h) $(gxcspace_h) $(gxfixed_h) $(gxmatrix_h) \ + $(gzstate_h) + +psl2lib_=gximage4.$(OBJ) gximage5.$(OBJ) +psl2lib.dev: $(LIB_MAK) $(ECHOGS_XE) $(psl2lib_) colimlib.dev psl2cs.dev + $(SETMOD) psl2lib $(psl2lib_) + $(ADDMOD) psl2lib -init gximage4 gximage5 + $(ADDMOD) psl2lib -include colimlib psl2cs + +gximage4.$(OBJ): gximage4.c $(GXERR) $(memory__h) $(gpcheck_h)\ + $(gsccolor_h) $(gspaint_h)\ + $(gxarith_h) $(gxcmap_h) $(gxcpath_h) $(gxdcolor_h) $(gxdevice_h)\ + $(gxdevmem_h) $(gxfixed_h) $(gxfrac_h) $(gximage_h) $(gxistate_h)\ + $(gxmatrix_h)\ + $(gzpath_h) + +gximage5.$(OBJ): gximage5.c $(GXERR) $(math__h) $(memory__h) $(gpcheck_h)\ + $(gsccolor_h) $(gspaint_h)\ + $(gxarith_h) $(gxcmap_h) $(gxcpath_h) $(gxdcolor_h) $(gxdevice_h)\ + $(gxdevmem_h) $(gxfixed_h) $(gxfrac_h) $(gximage_h) $(gxistate_h)\ + $(gxmatrix_h)\ + $(gzpath_h) + +# ---------------- Display Postscript / Level 2 support ---------------- # + +dps2lib_=gsdps1.$(OBJ) +dps2lib.dev: $(LIB_MAK) $(ECHOGS_XE) $(dps2lib_) + $(SETMOD) dps2lib $(dps2lib_) + +gsdps1.$(OBJ): gsdps1.c $(GXERR) $(math__h)\ + $(gscoord_h) $(gsmatrix_h) $(gspaint_h) $(gspath_h) $(gspath2_h)\ + $(gxdevice_h) $(gxfixed_h) $(gxmatrix_h) $(gzcpath_h) $(gzpath_h) $(gzstate_h) + +# ---------------- Display Postscript extensions ---------------- # + +gsdps_h=gsdps.h + +dpslib_=gsdps.$(OBJ) +dpslib.dev: $(LIB_MAK) $(ECHOGS_XE) $(dpslib_) + $(SETMOD) dpslib $(dpslib_) + +gsdps.$(OBJ): gsdps.c $(GX) $(gsdps_h)\ + $(gsdps_h) $(gspath_h) $(gxdevice_h) $(gzcpath_h) $(gzpath_h) $(gzstate_h) + +# ---------------- CIE color ---------------- # + +cielib_=gscie.$(OBJ) gxctable.$(OBJ) +cielib.dev: $(LIB_MAK) $(ECHOGS_XE) $(cielib_) + $(SETMOD) cielib $(cielib_) + +gscie.$(OBJ): gscie.c $(GXERR) $(math__h) \ + $(gscie_h) $(gscolor2_h) $(gsmatrix_h) $(gsstruct_h) \ + $(gxarith_h) $(gxcmap_h) $(gxcspace_h) $(gxdevice_h) $(gzstate_h) + +gxctable.$(OBJ): gxctable.c $(GX) \ + $(gxfixed_h) $(gxfrac_h) $(gxctable_h) + +# ---------------- Separation colors ---------------- # + +seprlib_=gscsepr.$(OBJ) +seprlib.dev: $(LIB_MAK) $(ECHOGS_XE) $(seprlib_) + $(SETMOD) seprlib $(seprlib_) + +gscsepr.$(OBJ): gscsepr.c $(GXERR)\ + $(gscsepr_h) $(gsmatrix_h) $(gsrefct_h)\ + $(gxcolor2_h) $(gxcspace_h) $(gxfixed_h) $(gzstate_h) + +# ---------------- Functions ---------------- # + +gsdsrc_h=gsdsrc.h $(gsstruct_h) +gsfunc_h=gsfunc.h +gsfunc0_h=gsfunc0.h $(gsdsrc_h) $(gsfunc_h) +gxfunc_h=gxfunc.h $(gsfunc_h) $(gsstruct_h) + +# Generic support, and FunctionType 0. +funclib_=gsdsrc.$(OBJ) gsfunc.$(OBJ) gsfunc0.$(OBJ) +funclib.dev: $(LIB_MAK) $(ECHOGS_XE) $(funclib_) + $(SETMOD) funclib $(funclib_) + +gsdsrc.$(OBJ): gsdsrc.c $(GX) $(memory__h)\ + $(gsdsrc_h) $(gserrors_h) $(stream_h) + +gsfunc.$(OBJ): gsfunc.c $(GX)\ + $(gserrors_h) $(gxfunc_h) + +gsfunc0.$(OBJ): gsfunc0.c $(GX) $(math__h)\ + $(gserrors_h) $(gsfunc0_h) $(gxfunc_h) + +# ----------------------- Platform-specific modules ----------------------- # +# Platform-specific code doesn't really belong here: this is code that is +# shared among multiple platforms. + +# Frame buffer implementations. + +gp_nofb.$(OBJ): gp_nofb.c $(GX) \ + $(gp_h) $(gxdevice_h) + +gp_dosfb.$(OBJ): gp_dosfb.c $(AK) $(malloc__h) $(memory__h)\ + $(gx_h) $(gp_h) $(gserrors_h) $(gxdevice_h) + +# MS-DOS file system, also used by Desqview/X. +gp_dosfs.$(OBJ): gp_dosfs.c $(AK) $(dos__h) $(gp_h) $(gx_h) + +# MS-DOS file enumeration, *not* used by Desqview/X. +gp_dosfe.$(OBJ): gp_dosfe.c $(AK) $(stdio__h) $(memory__h) $(string__h) \ + $(dos__h) $(gstypes_h) $(gsmemory_h) $(gsstruct_h) $(gp_h) $(gsutil_h) + +# Other MS-DOS facilities. +gp_msdos.$(OBJ): gp_msdos.c $(AK) $(dos__h) $(stdio__h) $(string__h)\ + $(gsmemory_h) $(gstypes_h) $(gp_h) + +# Unix(-like) file system, also used by Desqview/X. +gp_unifs.$(OBJ): gp_unifs.c $(AK) $(memory__h) $(string__h) $(gx_h) $(gp_h) \ + $(gsstruct_h) $(gsutil_h) $(stat__h) $(dirent__h) + +# Unix(-like) file name syntax, *not* used by Desqview/X. +gp_unifn.$(OBJ): gp_unifn.c $(AK) $(gx_h) $(gp_h) + +# ----------------------------- Main program ------------------------------ # + +# Main program for library testing + +gslib.$(OBJ): gslib.c $(AK) $(math__h) \ + $(gx_h) $(gp_h) $(gserrors_h) $(gsmatrix_h) $(gsstate_h) $(gscspace_h) \ + $(gscdefs_h) $(gscolor2_h) $(gscoord_h) $(gslib_h) $(gsparam_h) \ + $(gspaint_h) $(gspath_h) $(gsstruct_h) $(gsutil_h) \ + $(gxalloc_h) $(gxdevice_h) +# Copyright (C) 1995, 1996, 1997 Aladdin Enterprises. All rights reserved. +# +# This file is part of Aladdin Ghostscript. +# +# Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND. No author +# or distributor accepts any responsibility for the consequences of using it, +# or for whether it serves any particular purpose or works at all, unless he +# or she says so in writing. Refer to the Aladdin Ghostscript Free Public +# License (the "License") for full details. +# +# Every copy of Aladdin Ghostscript must include a copy of the License, +# normally in a plain ASCII text file named PUBLIC. The License grants you +# the right to copy, modify and redistribute Aladdin Ghostscript, but only +# under certain conditions described in the License. Among other things, the +# License requires that the copyright notice and this notice be preserved on +# all copies. + +# (Platform-independent) makefile for language interpreters. +# See the end of gs.mak for where this fits into the build process. + +# Define the name of this makefile. +INT_MAK=int.mak + +# ======================== Interpreter support ======================== # + +# This is support code for all interpreters, not just PostScript and PDF. +# It knows about the PostScript data types, but isn't supposed to +# depend on anything outside itself. + +errors_h=errors.h +idebug_h=idebug.h +idict_h=idict.h +igc_h=igc.h +igcstr_h=igcstr.h +iname_h=iname.h +inamedef_h=inamedef.h $(gconfigv_h) $(iname_h) +ipacked_h=ipacked.h +iref_h=iref.h +isave_h=isave.h +isstate_h=isstate.h +istruct_h=istruct.h $(gsstruct_h) +iutil_h=iutil.h +ivmspace_h=ivmspace.h $(gsgc_h) +opdef_h=opdef.h +# Nested include files +ghost_h=ghost.h $(gx_h) $(iref_h) +imemory_h=imemory.h $(gsalloc_h) $(ivmspace_h) +ialloc_h=ialloc.h $(imemory_h) +iastruct_h=iastruct.h $(gxobj_h) $(ialloc_h) +iastate_h=iastate.h $(gxalloc_h) $(ialloc_h) $(istruct_h) +store_h=store.h $(ialloc_h) + +GH=$(AK) $(ghost_h) + +isupport1_=ialloc.$(OBJ) igc.$(OBJ) igcref.$(OBJ) igcstr.$(OBJ) +isupport2_=ilocate.$(OBJ) iname.$(OBJ) isave.$(OBJ) +isupport_=$(isupport1_) $(isupport2_) +isupport.dev: $(INT_MAK) $(ECHOGS_XE) $(isupport_) + $(SETMOD) isupport $(isupport1_) + $(ADDMOD) isupport -obj $(isupport2_) + $(ADDMOD) isupport -init igcref + +ialloc.$(OBJ): ialloc.c $(AK) $(memory__h) $(gx_h)\ + $(errors_h) $(gsstruct_h) $(gxarith_h)\ + $(iastate_h) $(iref_h) $(ivmspace_h) $(store_h) + +# igc.c, igcref.c, and igcstr.c should really be in the dpsand2 list, +# but since all the GC enumeration and relocation routines refer to them, +# it's too hard to separate them out from the Level 1 base. +igc.$(OBJ): igc.c $(GH) $(memory__h)\ + $(errors_h) $(gsexit_h) $(gsmdebug_h) $(gsstruct_h) $(gsutil_h) \ + $(iastate_h) $(idict_h) $(igc_h) $(igcstr_h) $(inamedef_h) \ + $(ipacked_h) $(isave_h) $(isstate_h) $(istruct_h) $(opdef_h) + +igcref.$(OBJ): igcref.c $(GH) $(memory__h)\ + $(gsexit_h) $(gsstruct_h)\ + $(iastate_h) $(idebug_h) $(igc_h) $(iname_h) $(ipacked_h) $(store_h) + +igcstr.$(OBJ): igcstr.c $(GH) $(memory__h)\ + $(gsmdebug_h) $(gsstruct_h) $(iastate_h) $(igcstr_h) + +ilocate.$(OBJ): ilocate.c $(GH) $(memory__h)\ + $(errors_h) $(gsexit_h) $(gsstruct_h)\ + $(iastate_h) $(idict_h) $(igc_h) $(igcstr_h) $(iname_h)\ + $(ipacked_h) $(isstate_h) $(iutil_h) $(ivmspace_h)\ + $(store_h) + +iname.$(OBJ): iname.c $(GH) $(memory__h) $(string__h)\ + $(gsstruct_h) $(gxobj_h)\ + $(errors_h) $(imemory_h) $(inamedef_h) $(isave_h) $(store_h) + +isave.$(OBJ): isave.c $(GH) $(memory__h)\ + $(errors_h) $(gsexit_h) $(gsstruct_h) $(gsutil_h)\ + $(iastate_h) $(inamedef_h) $(isave_h) $(isstate_h) $(ivmspace_h)\ + $(ipacked_h) $(store_h) + +### Include files + +idparam_h=idparam.h +ilevel_h=ilevel.h +iparam_h=iparam.h $(gsparam_h) +istack_h=istack.h +iutil2_h=iutil2.h +opcheck_h=opcheck.h +opextern_h=opextern.h +# Nested include files +dstack_h=dstack.h $(istack_h) +estack_h=estack.h $(istack_h) +ostack_h=ostack.h $(istack_h) +oper_h=oper.h $(iutil_h) $(opcheck_h) $(opdef_h) $(opextern_h) $(ostack_h) + +idebug.$(OBJ): idebug.c $(GH) $(string__h)\ + $(ialloc_h) $(idebug_h) $(idict_h) $(iname_h) $(istack_h) $(iutil_h) $(ivmspace_h)\ + $(ostack_h) $(opdef_h) $(ipacked_h) $(store_h) + +idict.$(OBJ): idict.c $(GH) $(string__h) $(errors_h)\ + $(ialloc_h) $(idebug_h) $(ivmspace_h) $(inamedef_h) $(ipacked_h)\ + $(isave_h) $(store_h) $(iutil_h) $(idict_h) $(dstack_h) + +idparam.$(OBJ): idparam.c $(GH) $(memory__h) $(string__h) $(errors_h)\ + $(gsmatrix_h) $(gsuid_h)\ + $(idict_h) $(idparam_h) $(ilevel_h) $(imemory_h) $(iname_h) $(iutil_h)\ + $(oper_h) $(store_h) + +iparam.$(OBJ): iparam.c $(GH) $(memory__h) $(string__h) $(errors_h)\ + $(ialloc_h) $(idict_h) $(iname_h) $(imemory_h) $(iparam_h) $(istack_h) $(iutil_h) $(ivmspace_h)\ + $(opcheck_h) $(store_h) + +istack.$(OBJ): istack.c $(GH) $(memory__h) \ + $(errors_h) $(gsstruct_h) $(gsutil_h) \ + $(ialloc_h) $(istack_h) $(istruct_h) $(iutil_h) $(ivmspace_h) $(store_h) + +iutil.$(OBJ): iutil.c $(GH) $(math__h) $(memory__h) $(string__h)\ + $(gsccode_h) $(gsmatrix_h) $(gsutil_h) $(gxfont_h)\ + $(errors_h) $(idict_h) $(imemory_h) $(iutil_h) $(ivmspace_h)\ + $(iname_h) $(ipacked_h) $(oper_h) $(store_h) + +# ======================== PostScript Level 1 ======================== # + +###### Include files + +files_h=files.h +fname_h=fname.h +ichar_h=ichar.h +icharout_h=icharout.h +icolor_h=icolor.h +icontext_h=icontext.h $(imemory_h) $(istack_h) +icsmap_h=icsmap.h +ifont_h=ifont.h $(gsccode_h) $(gsstruct_h) +iht_h=iht.h +iimage_h=iimage.h +imain_h=imain.h $(gsexit_h) +imainarg_h=imainarg.h +iminst_h=iminst.h $(imain_h) +interp_h=interp.h +iparray_h=iparray.h +iscannum_h=iscannum.h +istream_h=istream.h +main_h=main.h $(iminst_h) +overlay_h=overlay.h +sbwbs_h=sbwbs.h +sfilter_h=sfilter.h $(gstypes_h) +shcgen_h=shcgen.h +smtf_h=smtf.h +# Nested include files +bfont_h=bfont.h $(ifont_h) +ifilter_h=ifilter.h $(istream_h) $(ivmspace_h) +igstate_h=igstate.h $(gsstate_h) $(gxstate_h) $(istruct_h) +iscan_h=iscan.h $(sa85x_h) $(sstring_h) +sbhc_h=sbhc.h $(shc_h) +# Include files for optional features +ibnum_h=ibnum.h + +### Initialization and scanning + +iconfig=iconfig$(CONFIG) +$(iconfig).$(OBJ): iconf.c $(stdio__h) \ + $(gconfig_h) $(gscdefs_h) $(gsmemory_h) \ + $(files_h) $(iminst_h) $(iref_h) $(ivmspace_h) $(opdef_h) $(stream_h) + $(RM_) gconfig.h + $(RM_) $(iconfig).c + $(CP_) $(gconfig_h) gconfig.h + $(CP_) iconf.c $(iconfig).c + $(CCC) $(iconfig).c + $(RM_) gconfig.h + $(RM_) $(iconfig).c + +iinit.$(OBJ): iinit.c $(GH) $(string__h)\ + $(gscdefs_h) $(gsexit_h) $(gsstruct_h)\ + $(ialloc_h) $(idict_h) $(dstack_h) $(errors_h)\ + $(ilevel_h) $(iname_h) $(interp_h) $(opdef_h)\ + $(ipacked_h) $(iparray_h) $(iutil_h) $(ivmspace_h) $(store_h) + +iscan.$(OBJ): iscan.c $(GH) $(memory__h)\ + $(ialloc_h) $(idict_h) $(dstack_h) $(errors_h) $(files_h)\ + $(ilevel_h) $(iutil_h) $(iscan_h) $(iscannum_h) $(istruct_h) $(ivmspace_h)\ + $(iname_h) $(ipacked_h) $(iparray_h) $(istream_h) $(ostack_h) $(store_h)\ + $(stream_h) $(strimpl_h) $(sfilter_h) $(scanchar_h) + +iscannum.$(OBJ): iscannum.c $(GH) $(math__h)\ + $(errors_h) $(iscannum_h) $(scanchar_h) $(scommon_h) $(store_h) + +### Streams + +sfilter1.$(OBJ): sfilter1.c $(AK) $(stdio__h) $(memory__h) \ + $(sfilter_h) $(strimpl_h) + +###### Operators + +OP=$(GH) $(errors_h) $(oper_h) + +### Non-graphics operators + +zarith.$(OBJ): zarith.c $(OP) $(math__h) $(store_h) + +zarray.$(OBJ): zarray.c $(OP) $(memory__h) $(ialloc_h) $(ipacked_h) $(store_h) + +zcontrol.$(OBJ): zcontrol.c $(OP) $(string__h)\ + $(estack_h) $(files_h) $(ipacked_h) $(iutil_h) $(store_h) $(stream_h) + +zdict.$(OBJ): zdict.c $(OP) \ + $(dstack_h) $(idict_h) $(ilevel_h) $(iname_h) $(ipacked_h) $(ivmspace_h) \ + $(store_h) + +zfile.$(OBJ): zfile.c $(OP) $(memory__h) $(string__h) $(gp_h)\ + $(gsstruct_h) $(gxiodev_h) \ + $(ialloc_h) $(estack_h) $(files_h) $(fname_h) $(ilevel_h) $(interp_h) $(iutil_h)\ + $(isave_h) $(main_h) $(sfilter_h) $(stream_h) $(strimpl_h) $(store_h) + +zfileio.$(OBJ): zfileio.c $(OP) $(gp_h) \ + $(files_h) $(ifilter_h) $(store_h) $(stream_h) $(strimpl_h) \ + $(gsmatrix_h) $(gxdevice_h) $(gxdevmem_h) + +zfilter.$(OBJ): zfilter.c $(OP) $(memory__h)\ + $(gsstruct_h) $(files_h) $(ialloc_h) $(idict_h) $(idparam_h) $(ifilter_h) \ + $(sfilter_h) $(srlx_h) $(sstring_h) $(store_h) $(stream_h) $(strimpl_h) + +zfname.$(OBJ): zfname.c $(OP) $(memory__h)\ + $(fname_h) $(gxiodev_h) $(ialloc_h) $(stream_h) + +zfproc.$(OBJ): zfproc.c $(GH) $(memory__h)\ + $(errors_h) $(oper_h)\ + $(estack_h) $(files_h) $(gsstruct_h) $(ialloc_h) $(ifilter_h) $(istruct_h)\ + $(store_h) $(stream_h) $(strimpl_h) + +zgeneric.$(OBJ): zgeneric.c $(OP) $(memory__h)\ + $(idict_h) $(estack_h) $(ivmspace_h) $(iname_h) $(ipacked_h) $(store_h) + +ziodev.$(OBJ): ziodev.c $(OP) $(memory__h) $(stdio__h) $(string__h)\ + $(gp_h) $(gpcheck_h)\ + $(gsstruct_h) $(gxiodev_h)\ + $(files_h) $(ialloc_h) $(ivmspace_h) $(store_h) $(stream_h) + +zmath.$(OBJ): zmath.c $(OP) $(math__h) $(gxfarith_h) $(store_h) + +zmisc.$(OBJ): zmisc.c $(OP) $(gscdefs_h) $(gp_h) \ + $(errno__h) $(memory__h) $(string__h) \ + $(ialloc_h) $(idict_h) $(dstack_h) $(iname_h) $(ivmspace_h) $(ipacked_h) $(store_h) + +zpacked.$(OBJ): zpacked.c $(OP) \ + $(ialloc_h) $(idict_h) $(ivmspace_h) $(iname_h) $(ipacked_h) $(iparray_h) \ + $(istack_h) $(store_h) + +zrelbit.$(OBJ): zrelbit.c $(OP) $(gsutil_h) $(store_h) $(idict_h) + +zstack.$(OBJ): zstack.c $(OP) $(memory__h)\ + $(ialloc_h) $(istack_h) $(store_h) + +zstring.$(OBJ): zstring.c $(OP) $(memory__h)\ + $(gsutil_h)\ + $(ialloc_h) $(iname_h) $(ivmspace_h) $(store_h) + +zsysvm.$(OBJ): zsysvm.c $(GH)\ + $(ialloc_h) $(ivmspace_h) $(oper_h) $(store_h) + +ztoken.$(OBJ): ztoken.c $(OP) \ + $(estack_h) $(files_h) $(gsstruct_h) $(iscan_h) \ + $(sfilter_h) $(store_h) $(stream_h) $(strimpl_h) + +ztype.$(OBJ): ztype.c $(OP) $(math__h) $(memory__h) $(string__h)\ + $(dstack_h) $(idict_h) $(imemory_h) $(iname_h)\ + $(iscan_h) $(iutil_h) $(sfilter_h) $(store_h) $(stream_h) $(strimpl_h) + +zvmem.$(OBJ): zvmem.c $(OP)\ + $(dstack_h) $(estack_h) $(files_h)\ + $(ialloc_h) $(idict_h) $(igstate_h) $(isave_h) $(store_h) $(stream_h)\ + $(gsmatrix_h) $(gsstate_h) $(gsstruct_h) + +### Graphics operators + +zchar.$(OBJ): zchar.c $(OP)\ + $(gsstruct_h) $(gxarith_h) $(gxfixed_h) $(gxmatrix_h)\ + $(gxchar_h) $(gxdevice_h) $(gxfont_h) $(gzpath_h) $(gzstate_h)\ + $(dstack_h) $(estack_h) $(ialloc_h) $(ichar_h) $(idict_h) $(ifont_h)\ + $(ilevel_h) $(iname_h) $(igstate_h) $(ipacked_h) $(store_h) + +# zcharout is used for Type 1 and Type 42 fonts only. +zcharout.$(OBJ): zcharout.c $(OP)\ + $(gschar_h) $(gxdevice_h) $(gxfont_h)\ + $(dstack_h) $(estack_h) $(ichar_h) $(icharout_h)\ + $(idict_h) $(ifont_h) $(igstate_h) $(store_h) + +zcolor.$(OBJ): zcolor.c $(OP) \ + $(gxfixed_h) $(gxmatrix_h) $(gzstate_h) $(gxdevice_h) $(gxcmap_h) \ + $(ialloc_h) $(icolor_h) $(estack_h) $(iutil_h) $(igstate_h) $(store_h) + +zdevice.$(OBJ): zdevice.c $(OP) $(string__h)\ + $(ialloc_h) $(idict_h) $(igstate_h) $(iname_h) $(interp_h) $(iparam_h) $(ivmspace_h)\ + $(gsmatrix_h) $(gsstate_h) $(gxdevice_h) $(store_h) + +zfont.$(OBJ): zfont.c $(OP)\ + $(gschar_h) $(gsstruct_h) $(gxdevice_h) $(gxfont_h) $(gxfcache_h)\ + $(gzstate_h)\ + $(ialloc_h) $(idict_h) $(igstate_h) $(iname_h) $(isave_h) $(ivmspace_h)\ + $(bfont_h) $(store_h) + +zfont2.$(OBJ): zfont2.c $(OP) $(memory__h) $(string__h)\ + $(gsmatrix_h) $(gxdevice_h) $(gschar_h) $(gxfixed_h) $(gxfont_h)\ + $(ialloc_h) $(bfont_h) $(idict_h) $(idparam_h) $(ilevel_h) $(iname_h) $(istruct_h)\ + $(ipacked_h) $(store_h) + +zgstate.$(OBJ): zgstate.c $(OP) $(math__h)\ + $(gsmatrix_h) $(ialloc_h) $(idict_h) $(igstate_h) $(istruct_h) $(store_h) + +zht.$(OBJ): zht.c $(OP) $(memory__h)\ + $(gsmatrix_h) $(gsstate_h) $(gsstruct_h) $(gxdevice_h) $(gzht_h) \ + $(ialloc_h) $(estack_h) $(igstate_h) $(iht_h) $(store_h) + +zimage.$(OBJ): zimage.c $(OP) \ + $(estack_h) $(ialloc_h) $(ifilter_h) $(igstate_h) $(iimage_h) $(ilevel_h) \ + $(gscspace_h) $(gsimage_h) $(gsmatrix_h) $(gsstruct_h) \ + $(store_h) $(stream_h) + +zmatrix.$(OBJ): zmatrix.c $(OP)\ + $(gsmatrix_h) $(igstate_h) $(gscoord_h) $(store_h) + +zpaint.$(OBJ): zpaint.c $(OP)\ + $(gspaint_h) $(igstate_h) + +zpath.$(OBJ): zpath.c $(OP) $(math__h) \ + $(gsmatrix_h) $(gspath_h) $(igstate_h) $(store_h) + +# Define the base PostScript language interpreter. +# This is the subset of PostScript Level 1 required by our PDF reader. + +INT1=idebug.$(OBJ) idict.$(OBJ) idparam.$(OBJ) +INT2=iinit.$(OBJ) interp.$(OBJ) iparam.$(OBJ) ireclaim.$(OBJ) +INT3=iscan.$(OBJ) iscannum.$(OBJ) istack.$(OBJ) iutil.$(OBJ) +INT4=scantab.$(OBJ) sfilter1.$(OBJ) sstring.$(OBJ) stream.$(OBJ) +Z1=zarith.$(OBJ) zarray.$(OBJ) zcontrol.$(OBJ) zdict.$(OBJ) +Z1OPS=zarith zarray zcontrol zdict +Z2=zfile.$(OBJ) zfileio.$(OBJ) zfilter.$(OBJ) zfname.$(OBJ) zfproc.$(OBJ) +Z2OPS=zfile zfileio zfilter zfproc +Z3=zgeneric.$(OBJ) ziodev.$(OBJ) zmath.$(OBJ) zmisc.$(OBJ) zpacked.$(OBJ) +Z3OPS=zgeneric ziodev zmath zmisc zpacked +Z4=zrelbit.$(OBJ) zstack.$(OBJ) zstring.$(OBJ) zsysvm.$(OBJ) +Z4OPS=zrelbit zstack zstring zsysvm +Z5=ztoken.$(OBJ) ztype.$(OBJ) zvmem.$(OBJ) +Z5OPS=ztoken ztype zvmem +Z6=zchar.$(OBJ) zcolor.$(OBJ) zdevice.$(OBJ) zfont.$(OBJ) zfont2.$(OBJ) +Z6OPS=zchar zcolor zdevice zfont zfont2 +Z7=zgstate.$(OBJ) zht.$(OBJ) zimage.$(OBJ) zmatrix.$(OBJ) zpaint.$(OBJ) zpath.$(OBJ) +Z7OPS=zgstate zht zimage zmatrix zpaint zpath +# We have to be a little underhanded with *config.$(OBJ) so as to avoid +# circular definitions. +INT_OBJS=imainarg.$(OBJ) gsargs.$(OBJ) imain.$(OBJ) \ + $(INT1) $(INT2) $(INT3) $(INT4) \ + $(Z1) $(Z2) $(Z3) $(Z4) $(Z5) $(Z6) $(Z7) +INT_CONFIG=$(gconfig).$(OBJ) $(gscdefs).$(OBJ) $(iconfig).$(OBJ) \ + iccinit$(COMPILE_INITS).$(OBJ) +INT_ALL=$(INT_OBJS) $(INT_CONFIG) +# We omit libcore.dev, which should be included here, because problems +# with the Unix linker require libcore to appear last in the link list +# when libcore is really a library. +# We omit $(INT_CONFIG) from the dependency list because they have special +# dependency requirements and are added to the link list at the very end. +# zfilter.c shouldn't include the RLE and RLD filters, but we don't want to +# change this now. +psbase.dev: $(INT_MAK) $(ECHOGS_XE) $(INT_OBJS)\ + isupport.dev rld.dev rle.dev sfile.dev + $(SETMOD) psbase imainarg.$(OBJ) gsargs.$(OBJ) imain.$(OBJ) + $(ADDMOD) psbase -obj $(INT_CONFIG) + $(ADDMOD) psbase -obj $(INT1) + $(ADDMOD) psbase -obj $(INT2) + $(ADDMOD) psbase -obj $(INT3) + $(ADDMOD) psbase -obj $(INT4) + $(ADDMOD) psbase -obj $(Z1) + $(ADDMOD) psbase -oper $(Z1OPS) + $(ADDMOD) psbase -obj $(Z2) + $(ADDMOD) psbase -oper $(Z2OPS) + $(ADDMOD) psbase -obj $(Z3) + $(ADDMOD) psbase -oper $(Z3OPS) + $(ADDMOD) psbase -obj $(Z4) + $(ADDMOD) psbase -oper $(Z4OPS) + $(ADDMOD) psbase -obj $(Z5) + $(ADDMOD) psbase -oper $(Z5OPS) + $(ADDMOD) psbase -obj $(Z6) + $(ADDMOD) psbase -oper $(Z6OPS) + $(ADDMOD) psbase -obj $(Z7) + $(ADDMOD) psbase -oper $(Z7OPS) + $(ADDMOD) psbase -iodev stdin stdout stderr lineedit statementedit + $(ADDMOD) psbase -include isupport rld rle sfile + +# -------------------------- Feature definitions -------------------------- # + +# ---------------- Full Level 1 interpreter ---------------- # + +level1.dev: $(INT_MAK) $(ECHOGS_XE) psbase.dev bcp.dev hsb.dev path1.dev type1.dev + $(SETMOD) level1 -include psbase bcp hsb path1 type1 + $(ADDMOD) level1 -emulator PostScript PostScriptLevel1 + +# -------- Level 1 color extensions (CMYK color and colorimage) -------- # + +color.dev: $(INT_MAK) $(ECHOGS_XE) cmyklib.dev colimlib.dev cmykread.dev + $(SETMOD) color -include cmyklib colimlib cmykread + +cmykread_=zcolor1.$(OBJ) zht1.$(OBJ) +cmykread.dev: $(INT_MAK) $(ECHOGS_XE) $(cmykread_) + $(SETMOD) cmykread $(cmykread_) + $(ADDMOD) cmykread -oper zcolor1 zht1 + +zcolor1.$(OBJ): zcolor1.c $(OP) \ + $(gscolor1_h) \ + $(gxcmap_h) $(gxcspace_h) $(gxdevice_h) $(gxfixed_h) $(gxmatrix_h) \ + $(gzstate_h) \ + $(ialloc_h) $(icolor_h) $(iimage_h) $(estack_h) $(iutil_h) $(igstate_h) $(store_h) + +zht1.$(OBJ): zht1.c $(OP) $(memory__h)\ + $(gsmatrix_h) $(gsstate_h) $(gsstruct_h) $(gxdevice_h) $(gzht_h)\ + $(ialloc_h) $(estack_h) $(igstate_h) $(iht_h) $(store_h) + +# ---------------- HSB color ---------------- # + +hsb_=zhsb.$(OBJ) +hsb.dev: $(INT_MAK) $(ECHOGS_XE) $(hsb_) hsblib.dev + $(SETMOD) hsb $(hsb_) + $(ADDMOD) hsb -include hsblib + $(ADDMOD) hsb -oper zhsb + +zhsb.$(OBJ): zhsb.c $(OP) \ + $(gshsb_h) $(igstate_h) $(store_h) + +# ---- Level 1 path miscellany (arcs, pathbbox, path enumeration) ---- # + +path1_=zpath1.$(OBJ) +path1.dev: $(INT_MAK) $(ECHOGS_XE) $(path1_) path1lib.dev + $(SETMOD) path1 $(path1_) + $(ADDMOD) path1 -include path1lib + $(ADDMOD) path1 -oper zpath1 + +zpath1.$(OBJ): zpath1.c $(OP) $(memory__h)\ + $(ialloc_h) $(estack_h) $(gspath_h) $(gsstruct_h) $(igstate_h) $(store_h) + +# ================ Level-independent PostScript options ================ # + +# ---------------- BCP filters ---------------- # + +bcp_=sbcp.$(OBJ) zfbcp.$(OBJ) +bcp.dev: $(INT_MAK) $(ECHOGS_XE) $(bcp_) + $(SETMOD) bcp $(bcp_) + $(ADDMOD) bcp -oper zfbcp + +sbcp.$(OBJ): sbcp.c $(AK) $(stdio__h) \ + $(sfilter_h) $(strimpl_h) + +zfbcp.$(OBJ): zfbcp.c $(OP) $(memory__h)\ + $(gsstruct_h) $(ialloc_h) $(ifilter_h)\ + $(sfilter_h) $(stream_h) $(strimpl_h) + +# ---------------- Incremental font loading ---------------- # +# (This only works for Type 1 fonts without eexec encryption.) + +diskfont.dev: $(INT_MAK) $(ECHOGS_XE) + $(SETMOD) diskfont -ps gs_diskf + +# ---------------- Double-precision floats ---------------- # + +double_=zdouble.$(OBJ) +double.dev: $(INT_MAK) $(ECHOGS_XE) $(double_) + $(SETMOD) double $(double_) + $(ADDMOD) double -oper zdouble + +zdouble.$(OBJ): zdouble.c $(OP) $(ctype__h) $(math__h) $(memory__h) $(string__h) \ + $(gxfarith_h) $(store_h) + +# ---------------- EPSF files with binary headers ---------------- # + +epsf.dev: $(INT_MAK) $(ECHOGS_XE) + $(SETMOD) epsf -ps gs_epsf + +# ---------------- RasterOp ---------------- # +# This should be a separable feature in the core also.... + +rasterop.dev: $(INT_MAK) $(ECHOGS_XE) roplib.dev ropread.dev + $(SETMOD) rasterop -include roplib ropread + +ropread_=zrop.$(OBJ) +ropread.dev: $(INT_MAK) $(ECHOGS_XE) $(ropread_) + $(SETMOD) ropread $(ropread_) + $(ADDMOD) ropread -oper zrop + +zrop.$(OBJ): zrop.c $(OP) $(memory__h)\ + $(gsrop_h) $(gsutil_h) $(gxdevice_h)\ + $(idict_h) $(idparam_h) $(igstate_h) $(store_h) + +# ---------------- PostScript Type 1 (and Type 4) fonts ---------------- # + +type1.dev: $(INT_MAK) $(ECHOGS_XE) psf1lib.dev psf1read.dev + $(SETMOD) type1 -include psf1lib psf1read + +psf1read_=seexec.$(OBJ) zchar1.$(OBJ) zcharout.$(OBJ) zfont1.$(OBJ) zmisc1.$(OBJ) +psf1read.dev: $(INT_MAK) $(ECHOGS_XE) $(psf1read_) + $(SETMOD) psf1read $(psf1read_) + $(ADDMOD) psf1read -oper zchar1 zfont1 zmisc1 + $(ADDMOD) psf1read -ps gs_type1 + +seexec.$(OBJ): seexec.c $(AK) $(stdio__h) \ + $(gscrypt1_h) $(scanchar_h) $(sfilter_h) $(strimpl_h) + +zchar1.$(OBJ): zchar1.c $(OP) \ + $(gspaint_h) $(gspath_h) $(gsstruct_h) \ + $(gxchar_h) $(gxdevice_h) $(gxfixed_h) $(gxmatrix_h) \ + $(gxfont_h) $(gxfont1_h) $(gxtype1_h) $(gzstate_h) \ + $(estack_h) $(ialloc_h) $(ichar_h) $(icharout_h) \ + $(idict_h) $(ifont_h) $(igstate_h) $(store_h) + +zfont1.$(OBJ): zfont1.c $(OP) \ + $(gsmatrix_h) $(gxdevice_h) $(gschar_h) \ + $(gxfixed_h) $(gxfont_h) $(gxfont1_h) \ + $(bfont_h) $(ialloc_h) $(idict_h) $(idparam_h) $(store_h) + +zmisc1.$(OBJ): zmisc1.c $(OP) $(memory__h)\ + $(gscrypt1_h)\ + $(idict_h) $(idparam_h) $(ifilter_h)\ + $(sfilter_h) $(stream_h) $(strimpl_h) + +# -------------- Compact Font Format and Type 2 charstrings ------------- # + +cff.dev: $(INT_MAK) $(ECHOGS_XE) gs_cff.ps psl2int.dev + $(SETMOD) cff -ps gs_cff + +type2.dev: $(INT_MAK) $(ECHOGS_XE) type1.dev psf2lib.dev + $(SETMOD) type2 -include psf2lib + +# ---------------- TrueType and PostScript Type 42 fonts ---------------- # + +# Native TrueType support +ttfont.dev: $(INT_MAK) $(ECHOGS_XE) type42.dev + $(SETMOD) ttfont -include type42 + $(ADDMOD) ttfont -ps gs_mro_e gs_wan_e gs_ttf + +# Type 42 (embedded TrueType) support +type42read_=zchar42.$(OBJ) zcharout.$(OBJ) zfont42.$(OBJ) +type42.dev: $(INT_MAK) $(ECHOGS_XE) $(type42read_) ttflib.dev + $(SETMOD) type42 $(type42read_) + $(ADDMOD) type42 -include ttflib + $(ADDMOD) type42 -oper zchar42 zfont42 + $(ADDMOD) type42 -ps gs_typ42 + +zchar42.$(OBJ): zchar42.c $(OP) \ + $(gsmatrix_h) $(gspaint_h) $(gspath_h) \ + $(gxfixed_h) $(gxchar_h) $(gxfont_h) $(gxfont42_h) \ + $(gxistate_h) $(gxpath_h) $(gzstate_h) \ + $(dstack_h) $(estack_h) $(ichar_h) $(icharout_h) \ + $(ifont_h) $(igstate_h) $(store_h) + +zfont42.$(OBJ): zfont42.c $(OP) \ + $(gsccode_h) $(gsmatrix_h) $(gxfont_h) $(gxfont42_h) \ + $(bfont_h) $(idict_h) $(idparam_h) $(store_h) + +# ======================== Precompilation options ======================== # + +# ---------------- Precompiled fonts ---------------- # +# See fonts.txt for more information. + +ccfont_h=ccfont.h $(std_h) $(gsmemory_h) $(iref_h) $(ivmspace_h) $(store_h) + +CCFONT=$(OP) $(ccfont_h) + +# List the fonts we are going to compile. +# Because of intrinsic limitations in `make', we have to list +# the object file names and the font names separately. +# Because of limitations in the DOS shell, we have to break the fonts up +# into lists that will fit on a single line (120 characters). +# The rules for constructing the .c files from the fonts themselves, +# and for compiling the .c files, are in cfonts.mak, not here. +# For example, to compile the Courier fonts, you should invoke +# make -f cfonts.mak Courier_o +# By convention, the names of the 35 standard compiled fonts use '0' for +# the foundry name. This allows users to substitute different foundries +# without having to change this makefile. +ccfonts_ps=gs_ccfnt +ccfonts1_=0agk.$(OBJ) 0agko.$(OBJ) 0agd.$(OBJ) 0agdo.$(OBJ) +ccfonts1=agk agko agd agdo +ccfonts2_=0bkl.$(OBJ) 0bkli.$(OBJ) 0bkd.$(OBJ) 0bkdi.$(OBJ) +ccfonts2=bkl bkli bkd bkdi +ccfonts3_=0crr.$(OBJ) 0cri.$(OBJ) 0crb.$(OBJ) 0crbi.$(OBJ) +ccfonts3=crr cri crb crbi +ccfonts4_=0hvr.$(OBJ) 0hvro.$(OBJ) 0hvb.$(OBJ) 0hvbo.$(OBJ) +ccfonts4=hvr hvro hvb hvbo +ccfonts5_=0hvrrn.$(OBJ) 0hvrorn.$(OBJ) 0hvbrn.$(OBJ) 0hvborn.$(OBJ) +ccfonts5=hvrrn hvrorn hvbrn hvborn +ccfonts6_=0ncr.$(OBJ) 0ncri.$(OBJ) 0ncb.$(OBJ) 0ncbi.$(OBJ) +ccfonts6=ncr ncri ncb ncbi +ccfonts7_=0plr.$(OBJ) 0plri.$(OBJ) 0plb.$(OBJ) 0plbi.$(OBJ) +ccfonts7=plr plri plb plbi +ccfonts8_=0tmr.$(OBJ) 0tmri.$(OBJ) 0tmb.$(OBJ) 0tmbi.$(OBJ) +ccfonts8=tmr tmri tmb tmbi +ccfonts9_=0syr.$(OBJ) 0zcmi.$(OBJ) 0zdr.$(OBJ) +ccfonts9=syr zcmi zdr +# The free distribution includes Bitstream Charter, Utopia, and +# freeware Cyrillic and Kana fonts. We only provide for compiling +# Charter and Utopia. +ccfonts10free_=bchr.$(OBJ) bchri.$(OBJ) bchb.$(OBJ) bchbi.$(OBJ) +ccfonts10free=chr chri chb chbi +ccfonts11free_=putr.$(OBJ) putri.$(OBJ) putb.$(OBJ) putbi.$(OBJ) +ccfonts11free=utr utri utb utbi +# Uncomment the alternatives in the next 4 lines if you want +# Charter and Utopia compiled in. +#ccfonts10_=$(ccfonts10free_) +ccfonts10_= +#ccfonts10=$(ccfonts10free) +ccfonts10= +#ccfonts11_=$(ccfonts11free_) +ccfonts11_= +#ccfonts11=$(ccfonts11free) +ccfonts11= +# Add your own fonts here if desired. +ccfonts12_= +ccfonts12= +ccfonts13_= +ccfonts13= +ccfonts14_= +ccfonts14= +ccfonts15_= +ccfonts15= + +# It's OK for ccfonts_.dev not to be CONFIG-dependent, because it only +# exists during the execution of the following rule. +# font2c has the prefix "gs" built into it, so we need to instruct +# genconf to use the same one. +$(gconfigf_h): $(MAKEFILE) $(INT_MAK) $(GENCONF_XE) + $(SETMOD) ccfonts_ -font $(ccfonts1) + $(ADDMOD) ccfonts_ -font $(ccfonts2) + $(ADDMOD) ccfonts_ -font $(ccfonts3) + $(ADDMOD) ccfonts_ -font $(ccfonts4) + $(ADDMOD) ccfonts_ -font $(ccfonts5) + $(ADDMOD) ccfonts_ -font $(ccfonts6) + $(ADDMOD) ccfonts_ -font $(ccfonts7) + $(ADDMOD) ccfonts_ -font $(ccfonts8) + $(ADDMOD) ccfonts_ -font $(ccfonts9) + $(ADDMOD) ccfonts_ -font $(ccfonts10) + $(ADDMOD) ccfonts_ -font $(ccfonts11) + $(ADDMOD) ccfonts_ -font $(ccfonts12) + $(ADDMOD) ccfonts_ -font $(ccfonts13) + $(ADDMOD) ccfonts_ -font $(ccfonts14) + $(ADDMOD) ccfonts_ -font $(ccfonts15) + $(EXP)genconf ccfonts_.dev -n gs -f $(gconfigf_h) + +# We separate icfontab.dev from ccfonts.dev so that a customer can put +# compiled fonts into a separate shared library. + +icfontab=icfontab$(CONFIG) + +# Define ccfont_table separately, so it can be set from the command line +# to select an alternate compiled font table. +ccfont_table=$(icfontab) + +$(icfontab).dev: $(MAKEFILE) $(INT_MAK) $(ECHOGS_XE) $(icfontab).$(OBJ) \ + $(ccfonts1_) $(ccfonts2_) $(ccfonts3_) $(ccfonts4_) $(ccfonts5_) \ + $(ccfonts6_) $(ccfonts7_) $(ccfonts8_) $(ccfonts9_) $(ccfonts10_) \ + $(ccfonts11_) $(ccfonts12_) $(ccfonts13_) $(ccfonts14_) $(ccfonts15_) + $(SETMOD) $(icfontab) -obj $(icfontab).$(OBJ) + $(ADDMOD) $(icfontab) -obj $(ccfonts1_) + $(ADDMOD) $(icfontab) -obj $(ccfonts2_) + $(ADDMOD) $(icfontab) -obj $(ccfonts3_) + $(ADDMOD) $(icfontab) -obj $(ccfonts4_) + $(ADDMOD) $(icfontab) -obj $(ccfonts5_) + $(ADDMOD) $(icfontab) -obj $(ccfonts6_) + $(ADDMOD) $(icfontab) -obj $(ccfonts7_) + $(ADDMOD) $(icfontab) -obj $(ccfonts8_) + $(ADDMOD) $(icfontab) -obj $(ccfonts9_) + $(ADDMOD) $(icfontab) -obj $(ccfonts10_) + $(ADDMOD) $(icfontab) -obj $(ccfonts11_) + $(ADDMOD) $(icfontab) -obj $(ccfonts12_) + $(ADDMOD) $(icfontab) -obj $(ccfonts13_) + $(ADDMOD) $(icfontab) -obj $(ccfonts14_) + $(ADDMOD) $(icfontab) -obj $(ccfonts15_) + +$(icfontab).$(OBJ): icfontab.c $(AK) $(ccfont_h) $(gconfigf_h) + $(CP_) $(gconfigf_h) gconfigf.h + $(CCCF) icfontab.c + +# Strictly speaking, ccfonts shouldn't need to include type1, +# since one could choose to precompile only Type 0 fonts, +# but getting this exactly right would be too much work. +ccfonts=ccfonts$(CONFIG) +$(ccfonts).dev: $(MAKEFILE) $(INT_MAK) type1.dev iccfont.$(OBJ) \ + $(ccfont_table).dev + $(SETMOD) $(ccfonts) -include type1 + $(ADDMOD) $(ccfonts) -include $(ccfont_table) + $(ADDMOD) $(ccfonts) -obj iccfont.$(OBJ) + $(ADDMOD) $(ccfonts) -oper ccfonts + $(ADDMOD) $(ccfonts) -ps $(ccfonts_ps) + +iccfont.$(OBJ): iccfont.c $(GH) $(string__h)\ + $(gsstruct_h) $(ccfont_h) $(errors_h)\ + $(ialloc_h) $(idict_h) $(ifont_h) $(iname_h) $(isave_h) $(iutil_h)\ + $(oper_h) $(ostack_h) $(store_h) $(stream_h) $(strimpl_h) $(sfilter_h) $(iscan_h) + $(CCCF) iccfont.c + +# ---------------- Compiled initialization code ---------------- # + +# We select either iccinit0 or iccinit1 depending on COMPILE_INITS. + +iccinit0.$(OBJ): iccinit0.c $(stdpre_h) + $(CCCF) iccinit0.c + +iccinit1.$(OBJ): gs_init.$(OBJ) + $(CP_) gs_init.$(OBJ) iccinit1.$(OBJ) + +# All the gs_*.ps files should be prerequisites of gs_init.c, +# but we don't have any convenient list of them. +gs_init.c: $(GS_INIT) $(GENINIT_XE) $(gconfig_h) + $(EXP)geninit $(GS_INIT) $(gconfig_h) -c gs_init.c + +gs_init.$(OBJ): gs_init.c $(stdpre_h) + $(CCCF) gs_init.c + +# ======================== PostScript Level 2 ======================== # + +level2.dev: $(INT_MAK) $(ECHOGS_XE) \ + cidfont.dev cie.dev cmapread.dev compfont.dev dct.dev devctrl.dev dpsand2.dev\ + filter.dev level1.dev pattern.dev psl2lib.dev psl2read.dev sepr.dev\ + type42.dev xfilter.dev + $(SETMOD) level2 -include cidfont cie cmapread compfont + $(ADDMOD) level2 -include dct devctrl dpsand2 filter + $(ADDMOD) level2 -include level1 pattern psl2lib psl2read + $(ADDMOD) level2 -include sepr type42 xfilter + $(ADDMOD) level2 -emulator PostScript PostScriptLevel2 + +# Define basic Level 2 language support. +# This is the minimum required for CMap and CIDFont support. + +psl2int_=iutil2.$(OBJ) zmisc2.$(OBJ) zusparam.$(OBJ) +psl2int.dev: $(INT_MAK) $(ECHOGS_XE) $(psl2int_) dps2int.dev + $(SETMOD) psl2int $(psl2int_) + $(ADDMOD) psl2int -include dps2int + $(ADDMOD) psl2int -oper zmisc2 zusparam + $(ADDMOD) psl2int -ps gs_lev2 gs_res + +iutil2.$(OBJ): iutil2.c $(GH) $(memory__h) $(string__h)\ + $(gsparam_h) $(gsutil_h)\ + $(errors_h) $(opcheck_h) $(imemory_h) $(iutil_h) $(iutil2_h) + +zmisc2.$(OBJ): zmisc2.c $(OP) $(memory__h) $(string__h)\ + $(idict_h) $(idparam_h) $(iparam_h) $(dstack_h) $(estack_h)\ + $(ilevel_h) $(iname_h) $(iutil2_h) $(ivmspace_h) $(store_h) + +# Note that zusparam includes both Level 1 and Level 2 operators. +zusparam.$(OBJ): zusparam.c $(OP) $(memory__h) $(string__h)\ + $(gscdefs_h) $(gsfont_h) $(gsstruct_h) $(gsutil_h) $(gxht_h)\ + $(ialloc_h) $(idict_h) $(idparam_h) $(iparam_h) $(dstack_h) $(estack_h)\ + $(iname_h) $(iutil2_h) $(store_h) + +# Define full Level 2 support. + +psl2read_=zcolor2.$(OBJ) zcsindex.$(OBJ) zht2.$(OBJ) zimage2.$(OBJ) +# Note that zmisc2 includes both Level 1 and Level 2 operators. +psl2read.dev: $(INT_MAK) $(ECHOGS_XE) $(psl2read_) psl2int.dev dps2read.dev + $(SETMOD) psl2read $(psl2read_) + $(ADDMOD) psl2read -include psl2int dps2read + $(ADDMOD) psl2read -oper zcolor2_l2 zcsindex_l2 + $(ADDMOD) psl2read -oper zht2_l2 zimage2_l2 + +zcolor2.$(OBJ): zcolor2.c $(OP)\ + $(gscolor_h) $(gsmatrix_h) $(gsstruct_h)\ + $(gxcolor2_h) $(gxcspace_h) $(gxdcolor_h) $(gxdevice_h) $(gxdevmem_h) $(gxfixed_h) $(gxpcolor_h)\ + $(estack_h) $(ialloc_h) $(idict_h) $(idparam_h) $(igstate_h) $(istruct_h)\ + $(store_h) + +zcsindex.$(OBJ): zcsindex.c $(OP) $(memory__h) \ + $(gscolor_h) $(gsstruct_h) $(gxfixed_h) $(gxcolor2_h) $(gxcspace_h) $(gsmatrix_h) \ + $(ialloc_h) $(icsmap_h) $(estack_h) $(igstate_h) $(ivmspace_h) $(store_h) + +zht2.$(OBJ): zht2.c $(OP) \ + $(gsstruct_h) $(gxdevice_h) $(gzht_h) \ + $(estack_h) $(ialloc_h) $(icolor_h) $(idict_h) $(idparam_h) $(igstate_h) \ + $(iht_h) $(store_h) + +zimage2.$(OBJ): zimage2.c $(OP) $(math__h) $(memory__h)\ + $(gscolor_h) $(gscolor2_h) $(gscspace_h) $(gsimage_h) $(gsmatrix_h)\ + $(idict_h) $(idparam_h) $(iimage_h) $(ilevel_h) $(igstate_h) + +# ---------------- Device control ---------------- # +# This is a catch-all for setpagedevice and IODevices. + +devctrl_=zdevice2.$(OBJ) ziodev2.$(OBJ) zmedia2.$(OBJ) zdevcal.$(OBJ) +devctrl.dev: $(INT_MAK) $(ECHOGS_XE) $(devctrl_) + $(SETMOD) devctrl $(devctrl_) + $(ADDMOD) devctrl -oper zdevice2_l2 ziodev2_l2 zmedia2_l2 + $(ADDMOD) devctrl -iodev null ram calendar + $(ADDMOD) devctrl -ps gs_setpd + +zdevice2.$(OBJ): zdevice2.c $(OP) $(math__h) $(memory__h)\ + $(dstack_h) $(estack_h) $(idict_h) $(idparam_h) $(igstate_h) $(iname_h) $(store_h)\ + $(gxdevice_h) $(gsstate_h) + +ziodev2.$(OBJ): ziodev2.c $(OP) $(string__h) $(gp_h)\ + $(gxiodev_h) $(stream_h) $(files_h) $(iparam_h) $(iutil2_h) $(store_h) + +zmedia2.$(OBJ): zmedia2.c $(OP) $(math__h) $(memory__h) \ + $(gsmatrix_h) $(idict_h) $(idparam_h) $(iname_h) $(store_h) + +zdevcal.$(OBJ): zdevcal.c $(GH) $(time__h) \ + $(gxiodev_h) $(iparam_h) $(istack_h) + +# ---------------- Filters other than the ones in sfilter.c ---------------- # + +# Standard Level 2 decoding filters only. The PDF configuration uses this. +fdecode_=scantab.$(OBJ) sfilter2.$(OBJ) zfdecode.$(OBJ) +fdecode.dev: $(INT_MAK) $(ECHOGS_XE) $(fdecode_) cfd.dev lzwd.dev pdiff.dev pngp.dev rld.dev + $(SETMOD) fdecode $(fdecode_) + $(ADDMOD) fdecode -include cfd lzwd pdiff pngp rld + $(ADDMOD) fdecode -oper zfdecode + +zfdecode.$(OBJ): zfdecode.c $(OP) $(memory__h)\ + $(gsstruct_h) $(ialloc_h) $(idict_h) $(idparam_h) $(ifilter_h) \ + $(sa85x_h) $(scf_h) $(scfx_h) $(sfilter_h) $(slzwx_h) $(spdiffx_h) $(spngpx_h) \ + $(store_h) $(stream_h) $(strimpl_h) + +# Complete Level 2 filter capability. +filter_=zfilter2.$(OBJ) +filter.dev: $(INT_MAK) $(ECHOGS_XE) fdecode.dev $(filter_) cfe.dev lzwe.dev rle.dev + $(SETMOD) filter -include fdecode + $(ADDMOD) filter -obj $(filter_) + $(ADDMOD) filter -include cfe lzwe rle + $(ADDMOD) filter -oper zfilter2 + +zfilter2.$(OBJ): zfilter2.c $(OP) $(memory__h)\ + $(gsstruct_h) $(ialloc_h) $(idict_h) $(idparam_h) $(ifilter_h) $(store_h) \ + $(sfilter_h) $(scfx_h) $(slzwx_h) $(spdiffx_h) $(spngpx_h) $(strimpl_h) + +# Extensions beyond Level 2 standard. +xfilter_=sbhc.$(OBJ) sbwbs.$(OBJ) shcgen.$(OBJ) smtf.$(OBJ) \ + zfilterx.$(OBJ) +xfilter.dev: $(INT_MAK) $(ECHOGS_XE) $(xfilter_) pcxd.dev pngp.dev + $(SETMOD) xfilter $(xfilter_) + $(ADDMOD) xfilter -include pcxd + $(ADDMOD) xfilter -oper zfilterx + +sbhc.$(OBJ): sbhc.c $(AK) $(memory__h) $(stdio__h)\ + $(gdebug_h) $(sbhc_h) $(shcgen_h) $(strimpl_h) + +sbwbs.$(OBJ): sbwbs.c $(AK) $(stdio__h) $(memory__h) \ + $(gdebug_h) $(sbwbs_h) $(sfilter_h) $(strimpl_h) + +shcgen.$(OBJ): shcgen.c $(AK) $(memory__h) $(stdio__h)\ + $(gdebug_h) $(gserror_h) $(gserrors_h) $(gsmemory_h)\ + $(scommon_h) $(shc_h) $(shcgen_h) + +smtf.$(OBJ): smtf.c $(AK) $(stdio__h) \ + $(smtf_h) $(strimpl_h) + +zfilterx.$(OBJ): zfilterx.c $(OP) $(memory__h)\ + $(gsstruct_h) $(ialloc_h) $(idict_h) $(idparam_h) $(ifilter_h)\ + $(store_h) $(sfilter_h) $(sbhc_h) $(sbtx_h) $(sbwbs_h) $(shcgen_h)\ + $(smtf_h) $(spcxx_h) $(strimpl_h) + +# ---------------- Binary tokens ---------------- # + +btoken_=iscanbin.$(OBJ) zbseq.$(OBJ) +btoken.dev: $(INT_MAK) $(ECHOGS_XE) $(btoken_) + $(SETMOD) btoken $(btoken_) + $(ADDMOD) btoken -oper zbseq_l2 + $(ADDMOD) btoken -ps gs_btokn + +bseq_h=bseq.h +btoken_h=btoken.h + +iscanbin.$(OBJ): iscanbin.c $(GH) $(math__h) $(memory__h) $(errors_h)\ + $(gsutil_h) $(ialloc_h) $(ibnum_h) $(idict_h) $(iname_h)\ + $(iscan_h) $(iutil_h) $(ivmspace_h)\ + $(bseq_h) $(btoken_h) $(dstack_h) $(ostack_h)\ + $(sfilter_h) $(store_h) $(stream_h) $(strimpl_h) + +zbseq.$(OBJ): zbseq.c $(OP) $(memory__h)\ + $(ialloc_h) $(idict_h) $(isave_h)\ + $(sfilter_h) $(store_h) $(stream_h) $(strimpl_h)\ + $(iname_h) $(ibnum_h) $(btoken_h) $(bseq_h) + +# ---------------- User paths & insideness testing ---------------- # + +upath_=zupath.$(OBJ) ibnum.$(OBJ) +upath.dev: $(INT_MAK) $(ECHOGS_XE) $(upath_) + $(SETMOD) upath $(upath_) + $(ADDMOD) upath -oper zupath_l2 + +zupath.$(OBJ): zupath.c $(OP) \ + $(idict_h) $(dstack_h) $(iutil_h) $(igstate_h) $(store_h) $(stream_h) $(ibnum_h) \ + $(gscoord_h) $(gsmatrix_h) $(gspaint_h) $(gspath_h) $(gsstate_h) \ + $(gxfixed_h) $(gxdevice_h) $(gzpath_h) $(gzstate_h) + +# -------- Additions common to Display PostScript and Level 2 -------- # + +dpsand2.dev: $(INT_MAK) $(ECHOGS_XE) btoken.dev color.dev upath.dev dps2lib.dev dps2read.dev + $(SETMOD) dpsand2 -include btoken color upath dps2lib dps2read + +dps2int_=zvmem2.$(OBJ) zdps1.$(OBJ) +# Note that zvmem2 includes both Level 1 and Level 2 operators. +dps2int.dev: $(INT_MAK) $(ECHOGS_XE) $(dps2int_) + $(SETMOD) dps2int $(dps2int_) + $(ADDMOD) dps2int -oper zvmem2 zdps1_l2 + $(ADDMOD) dps2int -ps gs_dps1 + +dps2read_=ibnum.$(OBJ) zchar2.$(OBJ) +dps2read.dev: $(INT_MAK) $(ECHOGS_XE) $(dps2read_) dps2int.dev + $(SETMOD) dps2read $(dps2read_) + $(ADDMOD) dps2read -include dps2int + $(ADDMOD) dps2read -oper ireclaim_l2 zchar2_l2 + $(ADDMOD) dps2read -ps gs_dps2 + +ibnum.$(OBJ): ibnum.c $(GH) $(math__h) $(memory__h)\ + $(errors_h) $(stream_h) $(ibnum_h) $(imemory_h) $(iutil_h) + +zchar2.$(OBJ): zchar2.c $(OP)\ + $(gschar_h) $(gsmatrix_h) $(gspath_h) $(gsstruct_h)\ + $(gxchar_h) $(gxfixed_h) $(gxfont_h)\ + $(ialloc_h) $(ichar_h) $(estack_h) $(ifont_h) $(iname_h) $(igstate_h)\ + $(store_h) $(stream_h) $(ibnum_h) + +zdps1.$(OBJ): zdps1.c $(OP) \ + $(gsmatrix_h) $(gspath_h) $(gspath2_h) $(gsstate_h) \ + $(ialloc_h) $(ivmspace_h) $(igstate_h) $(store_h) $(stream_h) $(ibnum_h) + +zvmem2.$(OBJ): zvmem2.c $(OP) \ + $(estack_h) $(ialloc_h) $(ivmspace_h) $(store_h) + +# ---------------- Display PostScript ---------------- # + +dps_=zdps.$(OBJ) icontext.$(OBJ) zcontext.$(OBJ) +dps.dev: $(INT_MAK) $(ECHOGS_XE) dpslib.dev level2.dev $(dps_) + $(SETMOD) dps -include dpslib level2 + $(ADDMOD) dps -obj $(dps_) + $(ADDMOD) dps -oper zcontext zdps + $(ADDMOD) dps -ps gs_dps + +icontext.$(OBJ): icontext.c $(GH)\ + $(gsstruct_h) $(gxalloc_h)\ + $(dstack_h) $(errors_h) $(estack_h) $(ostack_h)\ + $(icontext_h) $(igstate_h) $(interp_h) $(store_h) + +zdps.$(OBJ): zdps.c $(OP)\ + $(gsdps_h) $(gsstate_h) $(igstate_h) $(iname_h) $(store_h) + +zcontext.$(OBJ): zcontext.c $(OP) $(gp_h) $(memory__h)\ + $(gsexit_h) $(gsstruct_h) $(gsutil_h) $(gxalloc_h)\ + $(icontext_h) $(idict_h) $(igstate_h) $(istruct_h)\ + $(dstack_h) $(estack_h) $(ostack_h) $(store_h) + +# The following #ifdef ... #endif are just a comment to mark a DPNEXT area. +#ifdef DPNEXT + +# ---------------- NeXT Display PostScript ---------------- # +#**************** NOT READY FOR USE YET ****************# + +# There should be a gsdpnext.c, but there isn't yet. +#dpsnext_=zdpnext.$(OBJ) gsdpnext.$(OBJ) +dpsnext_=zdpnext.$(OBJ) +dpsnext.dev: $(INT_MAK) $(ECHOGS_XE) dps.dev $(dpsnext_) gs_dpnxt.ps + $(SETMOD) dpsnext -include dps + $(ADDMOD) dpsnext -obj $(dpsnext_) + $(ADDMOD) dpsnext -oper zdpnext + $(ADDMOD) dpsnext -ps gs_dpnxt + +zdpnext.$(OBJ): zdpnext.c $(OP)\ + $(gscspace_h) $(gsiparam_h) $(gsmatrix_h) $(gxcvalue_h) $(gxsample_h)\ + $(ialloc_h) $(igstate_h) $(iimage_h) + +# See above re the following. +#endif /* DPNEXT */ + +# -------- Composite (PostScript Type 0) font support -------- # + +compfont.dev: $(INT_MAK) $(ECHOGS_XE) psf0lib.dev psf0read.dev + $(SETMOD) compfont -include psf0lib psf0read + +# We always include zfcmap.$(OBJ) because zfont0.c refers to it, +# and it's not worth the trouble to exclude. +psf0read_=zchar2.$(OBJ) zfcmap.$(OBJ) zfont0.$(OBJ) +psf0read.dev: $(INT_MAK) $(ECHOGS_XE) $(psf0read_) + $(SETMOD) psf0read $(psf0read_) + $(ADDMOD) psf0read -oper zfont0 zchar2 zfcmap + +zfcmap.$(OBJ): zfcmap.c $(OP)\ + $(gsmatrix_h) $(gsstruct_h) $(gsutil_h)\ + $(gxfcmap_h) $(gxfont_h)\ + $(ialloc_h) $(idict_h) $(idparam_h) $(ifont_h) $(iname_h) $(store_h) + +zfont0.$(OBJ): zfont0.c $(OP)\ + $(gschar_h) $(gsstruct_h)\ + $(gxdevice_h) $(gxfcmap_h) $(gxfixed_h) $(gxfont_h) $(gxfont0_h) $(gxmatrix_h)\ + $(gzstate_h)\ + $(bfont_h) $(ialloc_h) $(idict_h) $(idparam_h) $(igstate_h) $(iname_h)\ + $(store_h) + +# ---------------- CMap support ---------------- # +# Note that this requires at least minimal Level 2 support, +# because it requires findresource. + +cmapread_=zfcmap.$(OBJ) +cmapread.dev: $(INT_MAK) $(ECHOGS_XE) $(cmapread_) cmaplib.dev psl2int.dev + $(SETMOD) cmapread $(cmapread_) + $(ADDMOD) cmapread -include cmaplib psl2int + $(ADDMOD) cmapread -oper zfcmap + $(ADDMOD) cmapread -ps gs_cmap + +# ---------------- CIDFont support ---------------- # +# Note that this requires at least minimal Level 2 support, +# because it requires findresource. + +cidread_=zcid.$(OBJ) +cidfont.dev: $(INT_MAK) $(ECHOGS_XE) psf1read.dev psl2int.dev type42.dev\ + $(cidread_) + $(SETMOD) cidfont $(cidread_) + $(ADDMOD) cidfont -include psf1read psl2int type42 + $(ADDMOD) cidfont -ps gs_cidfn + $(ADDMOD) cidfont -oper zcid + +zcid.$(OBJ): zcid.c $(OP)\ + $(gsccode_h) $(gsmatrix_h) $(gxfont_h)\ + $(bfont_h) $(iname_h) $(store_h) + +# ---------------- CIE color ---------------- # + +cieread_=zcie.$(OBJ) zcrd.$(OBJ) +cie.dev: $(INT_MAK) $(ECHOGS_XE) $(cieread_) cielib.dev + $(SETMOD) cie $(cieread_) + $(ADDMOD) cie -oper zcie_l2 zcrd_l2 + $(ADDMOD) cie -include cielib + +icie_h=icie.h + +zcie.$(OBJ): zcie.c $(OP) $(math__h) $(memory__h) \ + $(gscolor2_h) $(gscie_h) $(gsstruct_h) $(gxcspace_h) \ + $(ialloc_h) $(icie_h) $(idict_h) $(idparam_h) $(estack_h) \ + $(isave_h) $(igstate_h) $(ivmspace_h) $(store_h) + +zcrd.$(OBJ): zcrd.c $(OP) $(math__h) \ + $(gscspace_h) $(gscolor2_h) $(gscie_h) $(gsstruct_h) \ + $(ialloc_h) $(icie_h) $(idict_h) $(idparam_h) $(estack_h) \ + $(isave_h) $(igstate_h) $(ivmspace_h) $(store_h) + +# ---------------- Pattern color ---------------- # + +pattern.dev: $(INT_MAK) $(ECHOGS_XE) patlib.dev patread.dev + $(SETMOD) pattern -include patlib patread + +patread_=zpcolor.$(OBJ) +patread.dev: $(INT_MAK) $(ECHOGS_XE) $(patread_) + $(SETMOD) patread $(patread_) + $(ADDMOD) patread -oper zpcolor_l2 + +zpcolor.$(OBJ): zpcolor.c $(OP)\ + $(gscolor_h) $(gsmatrix_h) $(gsstruct_h)\ + $(gxcolor2_h) $(gxcspace_h) $(gxdcolor_h) $(gxdevice_h) $(gxdevmem_h)\ + $(gxfixed_h) $(gxpcolor_h)\ + $(estack_h) $(ialloc_h) $(idict_h) $(idparam_h) $(igstate_h) $(istruct_h)\ + $(store_h) + +# ---------------- Separation color ---------------- # + +seprread_=zcssepr.$(OBJ) +sepr.dev: $(INT_MAK) $(ECHOGS_XE) $(seprread_) seprlib.dev + $(SETMOD) sepr $(seprread_) + $(ADDMOD) sepr -oper zcssepr_l2 + $(ADDMOD) sepr -include seprlib + +zcssepr.$(OBJ): zcssepr.c $(OP) \ + $(gscolor_h) $(gscsepr_h) $(gsmatrix_h) $(gsstruct_h) \ + $(gxcolor2_h) $(gxcspace_h) $(gxfixed_h) \ + $(ialloc_h) $(icsmap_h) $(estack_h) $(igstate_h) $(ivmspace_h) $(store_h) + +# ---------------- Functions ---------------- # + +ifunc_h=ifunc.h + +# Generic support, and FunctionType 0. +funcread_=zfunc.$(OBJ) zfunc0.$(OBJ) +func.dev: $(INT_MAK) $(ECHOGS_XE) $(funcread_) funclib.dev + $(SETMOD) func $(funcread_) + $(ADDMOD) func -oper zfunc zfunc0 + $(ADDMOD) func -include funclib + +zfunc.$(OBJ): zfunc.c $(OP) $(memory__h)\ + $(gsfunc_h) $(gsstruct_h)\ + $(ialloc_h) $(idict_h) $(idparam_h) $(ifunc_h) $(store_h) + +zfunc0.$(OBJ): zfunc0.c $(OP) $(memory__h)\ + $(gsdsrc_h) $(gsfunc_h) $(gsfunc0_h)\ + $(stream_h)\ + $(files_h) $(ialloc_h) $(idict_h) $(idparam_h) $(ifunc_h) + +# ---------------- DCT filters ---------------- # +# The definitions for jpeg*.dev are in jpeg.mak. + +dct.dev: $(INT_MAK) $(ECHOGS_XE) dcte.dev dctd.dev + $(SETMOD) dct -include dcte dctd + +# Common code + +dctc_=zfdctc.$(OBJ) + +zfdctc.$(OBJ): zfdctc.c $(GH) $(memory__h) $(stdio__h)\ + $(errors_h) $(opcheck_h)\ + $(idict_h) $(idparam_h) $(imemory_h) $(ipacked_h) $(iutil_h)\ + $(sdct_h) $(sjpeg_h) $(strimpl_h)\ + jpeglib.h + +# Encoding (compression) + +dcte_=$(dctc_) zfdcte.$(OBJ) +dcte.dev: $(INT_MAK) $(ECHOGS_XE) sdcte.dev $(dcte_) + $(SETMOD) dcte -include sdcte + $(ADDMOD) dcte -obj $(dcte_) + $(ADDMOD) dcte -oper zfdcte + +zfdcte.$(OBJ): zfdcte.c $(OP) $(memory__h) $(stdio__h)\ + $(idict_h) $(idparam_h) $(ifilter_h) $(sdct_h) $(sjpeg_h) $(strimpl_h) \ + jpeglib.h + +# Decoding (decompression) + +dctd_=$(dctc_) zfdctd.$(OBJ) +dctd.dev: $(INT_MAK) $(ECHOGS_XE) sdctd.dev $(dctd_) + $(SETMOD) dctd -include sdctd + $(ADDMOD) dctd -obj $(dctd_) + $(ADDMOD) dctd -oper zfdctd + +zfdctd.$(OBJ): zfdctd.c $(OP) $(memory__h) $(stdio__h)\ + $(ifilter_h) $(sdct_h) $(sjpeg_h) $(strimpl_h) \ + jpeglib.h + +# ---------------- zlib/Flate filters ---------------- # + +fzlib.dev: $(INT_MAK) $(ECHOGS_XE) zfzlib.$(OBJ) szlibe.dev szlibd.dev + $(SETMOD) fzlib -include szlibe szlibd + $(ADDMOD) fzlib -obj zfzlib.$(OBJ) + $(ADDMOD) fzlib -oper zfzlib + +zfzlib.$(OBJ): zfzlib.c $(OP) \ + $(errors_h) $(idict_h) $(ifilter_h) \ + $(spdiffx_h) $(spngpx_h) $(strimpl_h) $(szlibx_h) + $(CCCZ) zfzlib.c + +# ================================ PDF ================================ # + +# We need most of the Level 2 interpreter to do PDF, but not all of it. +# In fact, we don't even need all of a Level 1 interpreter. + +# Because of the way the PDF encodings are defined, they must get loaded +# before we install the Level 2 resource machinery. +# On the other hand, the PDF .ps files must get loaded after +# level2dict is defined. +pdfmin.dev: $(INT_MAK) $(ECHOGS_XE)\ + psbase.dev color.dev dps2lib.dev dps2read.dev\ + fdecode.dev type1.dev pdffonts.dev psl2lib.dev psl2read.dev pdfread.dev + $(SETMOD) pdfmin -include psbase color dps2lib dps2read + $(ADDMOD) pdfmin -include fdecode type1 + $(ADDMOD) pdfmin -include pdffonts psl2lib psl2read pdfread + $(ADDMOD) pdfmin -emulator PDF + +pdf.dev: $(INT_MAK) $(ECHOGS_XE)\ + pdfmin.dev cff.dev cidfont.dev cie.dev compfont.dev cmapread.dev dctd.dev\ + func.dev ttfont.dev type2.dev + $(SETMOD) pdf -include pdfmin cff cidfont cie cmapread compfont dctd + $(ADDMOD) pdf -include func ttfont type2 + +# Reader only + +pdffonts.dev: $(INT_MAK) $(ECHOGS_XE) \ + gs_mex_e.ps gs_mro_e.ps gs_pdf_e.ps gs_wan_e.ps + $(SETMOD) pdffonts -ps gs_mex_e gs_mro_e gs_pdf_e gs_wan_e + +# pdf_2ps must be the last .ps file loaded. +pdfread.dev: $(INT_MAK) $(ECHOGS_XE) fzlib.dev + $(SETMOD) pdfread -include fzlib + $(ADDMOD) pdfread -ps gs_pdf gs_l2img + $(ADDMOD) pdfread -ps pdf_base pdf_draw pdf_font pdf_main pdf_sec + $(ADDMOD) pdfread -ps pdf_2ps + +# ============================= Main program ============================== # + +gs.$(OBJ): gs.c $(GH) \ + $(imain_h) $(imainarg_h) $(iminst_h) + +imainarg.$(OBJ): imainarg.c $(GH) $(ctype__h) $(memory__h) $(string__h) \ + $(gp_h) \ + $(gsargs_h) $(gscdefs_h) $(gsdevice_h) $(gsmdebug_h) $(gxdevice_h) $(gxdevmem_h) \ + $(errors_h) $(estack_h) $(files_h) \ + $(ialloc_h) $(imain_h) $(imainarg_h) $(iminst_h) \ + $(iname_h) $(interp_h) $(iscan_h) $(iutil_h) $(ivmspace_h) \ + $(ostack_h) $(sfilter_h) $(store_h) $(stream_h) $(strimpl_h) + +imain.$(OBJ): imain.c $(GH) $(memory__h) $(string__h)\ + $(gp_h) $(gslib_h) $(gsmatrix_h) $(gsutil_h) $(gxdevice_h)\ + $(dstack_h) $(errors_h) $(estack_h) $(files_h)\ + $(ialloc_h) $(idebug_h) $(idict_h) $(iname_h) $(interp_h)\ + $(isave_h) $(iscan_h) $(ivmspace_h)\ + $(main_h) $(oper_h) $(ostack_h)\ + $(sfilter_h) $(store_h) $(stream_h) $(strimpl_h) + +interp.$(OBJ): interp.c $(GH) $(memory__h) $(string__h)\ + $(gsstruct_h)\ + $(dstack_h) $(errors_h) $(estack_h) $(files_h)\ + $(ialloc_h) $(iastruct_h) $(inamedef_h) $(idict_h) $(interp_h) $(ipacked_h)\ + $(iscan_h) $(isave_h) $(istack_h) $(iutil_h) $(ivmspace_h)\ + $(oper_h) $(ostack_h) $(sfilter_h) $(store_h) $(stream_h) $(strimpl_h) + $(CCINT) interp.c + +ireclaim.$(OBJ): ireclaim.c $(GH) \ + $(errors_h) $(gsstruct_h) $(iastate_h) $(opdef_h) $(store_h) \ + $(dstack_h) $(estack_h) $(ostack_h) +# Copyright (C) 1994, 1996, 1997 Aladdin Enterprises. All rights reserved. +# +# This file is part of Aladdin Ghostscript. +# +# Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND. No author +# or distributor accepts any responsibility for the consequences of using it, +# or for whether it serves any particular purpose or works at all, unless he +# or she says so in writing. Refer to the Aladdin Ghostscript Free Public +# License (the "License") for full details. +# +# Every copy of Aladdin Ghostscript must include a copy of the License, +# normally in a plain ASCII text file named PUBLIC. The License grants you +# the right to copy, modify and redistribute Aladdin Ghostscript, but only +# under certain conditions described in the License. Among other things, the +# License requires that the copyright notice and this notice be preserved on +# all copies. + +# makefile for Independent JPEG Group library code. + +# NOTE: This makefile is only known to work with the following versions +# of the IJG library: 6, 6a. +# As of May 11, 1996, version 6a is the current version. +# +# You can get the IJG library by Internet anonymous FTP from the following +# places: +# Standard distribution (tar + gzip format, Unix end-of-line): +# ftp.uu.net:/graphics/jpeg/jpegsrc.v*.tar.gz +# ftp.cs.wisc.edu:/ghost/jpegsrc.v*.tar.gz +# MS-DOS archive (PKZIP a.k.a. zip format, MS-DOS end-of-line): +# ftp.simtel.net:/pub/simtelnet/msdos/graphics/jpegsr*.zip +# ftp.cs.wisc.edu:/ghost/jpeg-*.zip +# The first site named above (ftp.uu.net and ftp.simtel.net) is supposed +# to be the master distribution site, so it may have a more up-to-date +# version; the ftp.cs.wisc.edu site is the master distribution site for +# Ghostscript, so it will always have IJG library versions known to be +# compatible with Ghostscript. +# +# If the version number, and hence the subdirectory name, changes, you +# will probably want to change the definitions of JSRCDIR and possibly +# JVERSION (in the platform-specific makefile, not here) to reflect this, +# since that way you can use the IJG archive without change. +# +# NOTE: For some obscure reason (probably a bug in djtarx), if you are +# compiling on a DesqView/X system, you should use the zip version of the +# IJG library, not the tar.gz version. + +# Define the name of this makefile. +JPEG_MAK=jpeg.mak + +# JSRCDIR is defined in the platform-specific makefile, not here, +# as the directory where the IJG library sources are stored. +#JSRCDIR=jpeg-6a +# JVERSION is defined in the platform-specific makefile, not here, +# as the IJG library major version number (currently "5" or "6"). +#JVERSION=6 + +JSRC=$(JSRCDIR)$(D) +# CCCJ is defined in gs.mak. +#CCCJ=$(CCC) -I. -I$(JSRCDIR) + +# We keep all of the IJG code in a separate directory so as not to +# inadvertently mix it up with Aladdin Enterprises' own code. +# However, we need our own version of jconfig.h, and our own "wrapper" for +# jmorecfg.h. We also need a substitute for jerror.c, in order to +# keep the error strings out of the automatic data segment in +# 16-bit environments. For v5*, we also need our own version of jpeglib.h +# in order to change MAX_BLOCKS_IN_MCU for Adobe compatibility. +# (This need will go away when IJG v6 is released.) + +# Because this file is included after lib.mak, we can't use _h macros +# to express indirect dependencies; instead, we build the dependencies +# into the rules for copying the files. +jconfig_h=jconfig.h +jerror_h=jerror.h +jmorecfg_h=jmorecfg.h +jpeglib_h=jpeglib.h + +jconfig.h: gsjconf.h $(std_h) + $(CP_) gsjconf.h jconfig.h + +jmorecfg.h: gsjmorec.h jmcorig.h + $(CP_) gsjmorec.h jmorecfg.h + +jmcorig.h: $(JSRC)jmorecfg.h + $(CP_) $(JSRC)jmorecfg.h jmcorig.h + +jpeglib.h: jlib$(JVERSION).h jconfig.h jmorecfg.h + $(CP_) jlib$(JVERSION).h jpeglib.h + +jlib5.h: gsjpglib.h + $(CP_) gsjpglib.h jlib5.h + +jlib6.h: $(JSRC)jpeglib.h + $(CP_) $(JSRC)jpeglib.h jlib6.h + +# To ensure that the compiler finds our versions of jconfig.h and jmorecfg.h, +# regardless of the compiler's search rule, we must copy up all .c files, +# and all .h files that include either of these files, directly or +# indirectly. The only such .h files currently are jinclude.h and jpeglib.h. +# (Currently, we supply our own version of jpeglib.h -- see above.) +# Also, to avoid including the JSRCDIR directory name in our source files, +# we must also copy up any other .h files that our own code references. +# Currently, the only such .h files are jerror.h and jversion.h. + +JHCOPY=jinclude.h jpeglib.h jerror.h jversion.h + +jinclude.h: $(JSRC)jinclude.h + $(CP_) $(JSRC)jinclude.h jinclude.h + +#jpeglib.h: $(JSRC)jpeglib.h +# $(CP_) $(JSRC)jpeglib.h jpeglib.h + +jerror.h: $(JSRC)jerror.h + $(CP_) $(JSRC)jerror.h jerror.h + +jversion.h: $(JSRC)jversion.h + $(CP_) $(JSRC)jversion.h jversion.h + +# In order to avoid having to keep the dependency lists for the IJG code +# accurate, we simply make all of them depend on the only files that +# we are ever going to change, and on all the .h files that must be copied up. +# This is too conservative, but only hurts us if we are changing our own +# j*.h files, which happens only rarely during development. + +JDEP=$(AK) $(jconfig_h) $(jerror_h) $(jmorecfg_h) $(JHCOPY) + +# Code common to compression and decompression. + +jpegc_=jcomapi.$(OBJ) jutils.$(OBJ) sjpegerr.$(OBJ) jmemmgr.$(OBJ) +jpegc.dev: $(JPEG_MAK) $(ECHOGS_XE) $(jpegc_) + $(SETMOD) jpegc $(jpegc_) + +jcomapi.$(OBJ): $(JSRC)jcomapi.c $(JDEP) + $(CP_) $(JSRC)jcomapi.c . + $(CCCJ) jcomapi.c + $(RM_) jcomapi.c + +jutils.$(OBJ): $(JSRC)jutils.c $(JDEP) + $(CP_) $(JSRC)jutils.c . + $(CCCJ) jutils.c + $(RM_) jutils.c + +# Note that sjpegerr replaces jerror. +sjpegerr.$(OBJ): sjpegerr.c $(JDEP) + $(CCCF) sjpegerr.c + +jmemmgr.$(OBJ): $(JSRC)jmemmgr.c $(JDEP) + $(CP_) $(JSRC)jmemmgr.c . + $(CCCJ) jmemmgr.c + $(RM_) jmemmgr.c + +# Encoding (compression) code. + +jpege.dev: jpege$(JVERSION).dev + $(CP_) jpege$(JVERSION).dev jpege.dev + +jpege5=jcapi.$(OBJ) +jpege6=jcapimin.$(OBJ) jcapistd.$(OBJ) jcinit.$(OBJ) + +jpege_1=jccoefct.$(OBJ) jccolor.$(OBJ) jcdctmgr.$(OBJ) +jpege_2=jchuff.$(OBJ) jcmainct.$(OBJ) jcmarker.$(OBJ) jcmaster.$(OBJ) +jpege_3=jcparam.$(OBJ) jcprepct.$(OBJ) jcsample.$(OBJ) jfdctint.$(OBJ) + +jpege5.dev: $(JPEG_MAK) $(ECHOGS_XE) jpegc.dev $(jpege5) $(jpege_1) $(jpege_2) $(jpege_3) + $(SETMOD) jpege5 $(jpege5) + $(ADDMOD) jpege5 -include jpegc + $(ADDMOD) jpege5 -obj $(jpege_1) + $(ADDMOD) jpege5 -obj $(jpege_2) + $(ADDMOD) jpege5 -obj $(jpege_3) + +jpege6.dev: $(JPEG_MAK) $(ECHOGS_XE) jpegc.dev $(jpege6) $(jpege_1) $(jpege_2) $(jpege_3) + $(SETMOD) jpege6 $(jpege6) + $(ADDMOD) jpege6 -include jpegc + $(ADDMOD) jpege6 -obj $(jpege_1) + $(ADDMOD) jpege6 -obj $(jpege_2) + $(ADDMOD) jpege6 -obj $(jpege_3) + +# jcapi.c is v5* only +jcapi.$(OBJ): $(JSRC)jcapi.c $(JDEP) + $(CP_) $(JSRC)jcapi.c . + $(CCCJ) jcapi.c + $(RM_) jcapi.c + +# jcapimin.c is new in v6 +jcapimin.$(OBJ): $(JSRC)jcapimin.c $(JDEP) + $(CP_) $(JSRC)jcapimin.c . + $(CCCJ) jcapimin.c + $(RM_) jcapimin.c + +# jcapistd.c is new in v6 +jcapistd.$(OBJ): $(JSRC)jcapistd.c $(JDEP) + $(CP_) $(JSRC)jcapistd.c . + $(CCCJ) jcapistd.c + $(RM_) jcapistd.c + +# jcinit.c is new in v6 +jcinit.$(OBJ): $(JSRC)jcinit.c $(JDEP) + $(CP_) $(JSRC)jcinit.c . + $(CCCJ) jcinit.c + $(RM_) jcinit.c + +jccoefct.$(OBJ): $(JSRC)jccoefct.c $(JDEP) + $(CP_) $(JSRC)jccoefct.c . + $(CCCJ) jccoefct.c + $(RM_) jccoefct.c + +jccolor.$(OBJ): $(JSRC)jccolor.c $(JDEP) + $(CP_) $(JSRC)jccolor.c . + $(CCCJ) jccolor.c + $(RM_) jccolor.c + +jcdctmgr.$(OBJ): $(JSRC)jcdctmgr.c $(JDEP) + $(CP_) $(JSRC)jcdctmgr.c . + $(CCCJ) jcdctmgr.c + $(RM_) jcdctmgr.c + +jchuff.$(OBJ): $(JSRC)jchuff.c $(JDEP) + $(CP_) $(JSRC)jchuff.c . + $(CCCJ) jchuff.c + $(RM_) jchuff.c + +jcmainct.$(OBJ): $(JSRC)jcmainct.c $(JDEP) + $(CP_) $(JSRC)jcmainct.c . + $(CCCJ) jcmainct.c + $(RM_) jcmainct.c + +jcmarker.$(OBJ): $(JSRC)jcmarker.c $(JDEP) + $(CP_) $(JSRC)jcmarker.c . + $(CCCJ) jcmarker.c + $(RM_) jcmarker.c + +jcmaster.$(OBJ): $(JSRC)jcmaster.c $(JDEP) + $(CP_) $(JSRC)jcmaster.c . + $(CCCJ) jcmaster.c + $(RM_) jcmaster.c + +jcparam.$(OBJ): $(JSRC)jcparam.c $(JDEP) + $(CP_) $(JSRC)jcparam.c . + $(CCCJ) jcparam.c + $(RM_) jcparam.c + +jcprepct.$(OBJ): $(JSRC)jcprepct.c $(JDEP) + $(CP_) $(JSRC)jcprepct.c . + $(CCCJ) jcprepct.c + $(RM_) jcprepct.c + +jcsample.$(OBJ): $(JSRC)jcsample.c $(JDEP) + $(CP_) $(JSRC)jcsample.c . + $(CCCJ) jcsample.c + $(RM_) jcsample.c + +jfdctint.$(OBJ): $(JSRC)jfdctint.c $(JDEP) + $(CP_) $(JSRC)jfdctint.c . + $(CCCJ) jfdctint.c + $(RM_) jfdctint.c + +# Decompression code + +jpegd.dev: jpegd$(JVERSION).dev + $(CP_) jpegd$(JVERSION).dev jpegd.dev + +jpegd5=jdapi.$(OBJ) +jpegd6=jdapimin.$(OBJ) jdapistd.$(OBJ) jdinput.$(OBJ) jdphuff.$(OBJ) + +jpegd_1=jdcoefct.$(OBJ) jdcolor.$(OBJ) +jpegd_2=jddctmgr.$(OBJ) jdhuff.$(OBJ) jdmainct.$(OBJ) jdmarker.$(OBJ) +jpegd_3=jdmaster.$(OBJ) jdpostct.$(OBJ) jdsample.$(OBJ) jidctint.$(OBJ) + +jpegd5.dev: $(JPEG_MAK) $(ECHOGS_XE) jpegc.dev $(jpegd5) $(jpegd_1) $(jpegd_2) $(jpegd_3) + $(SETMOD) jpegd5 $(jpegd5) + $(ADDMOD) jpegd5 -include jpegc + $(ADDMOD) jpegd5 -obj $(jpegd_1) + $(ADDMOD) jpegd5 -obj $(jpegd_2) + $(ADDMOD) jpegd5 -obj $(jpegd_3) + +jpegd6.dev: $(JPEG_MAK) $(ECHOGS_XE) jpegc.dev $(jpegd6) $(jpegd_1) $(jpegd_2) $(jpegd_3) + $(SETMOD) jpegd6 $(jpegd6) + $(ADDMOD) jpegd6 -include jpegc + $(ADDMOD) jpegd6 -obj $(jpegd_1) + $(ADDMOD) jpegd6 -obj $(jpegd_2) + $(ADDMOD) jpegd6 -obj $(jpegd_3) + +# jdapi.c is v5* only +jdapi.$(OBJ): $(JSRC)jdapi.c $(JDEP) + $(CP_) $(JSRC)jdapi.c . + $(CCCJ) jdapi.c + $(RM_) jdapi.c + +# jdapimin.c is new in v6 +jdapimin.$(OBJ): $(JSRC)jdapimin.c $(JDEP) + $(CP_) $(JSRC)jdapimin.c . + $(CCCJ) jdapimin.c + $(RM_) jdapimin.c + +# jdapistd.c is new in v6 +jdapistd.$(OBJ): $(JSRC)jdapistd.c $(JDEP) + $(CP_) $(JSRC)jdapistd.c . + $(CCCJ) jdapistd.c + $(RM_) jdapistd.c + +jdcoefct.$(OBJ): $(JSRC)jdcoefct.c $(JDEP) + $(CP_) $(JSRC)jdcoefct.c . + $(CCCJ) jdcoefct.c + $(RM_) jdcoefct.c + +jdcolor.$(OBJ): $(JSRC)jdcolor.c $(JDEP) + $(CP_) $(JSRC)jdcolor.c . + $(CCCJ) jdcolor.c + $(RM_) jdcolor.c + +jddctmgr.$(OBJ): $(JSRC)jddctmgr.c $(JDEP) + $(CP_) $(JSRC)jddctmgr.c . + $(CCCJ) jddctmgr.c + $(RM_) jddctmgr.c + +jdhuff.$(OBJ): $(JSRC)jdhuff.c $(JDEP) + $(CP_) $(JSRC)jdhuff.c . + $(CCCJ) jdhuff.c + $(RM_) jdhuff.c + +# jdinput.c is new in v6 +jdinput.$(OBJ): $(JSRC)jdinput.c $(JDEP) + $(CP_) $(JSRC)jdinput.c . + $(CCCJ) jdinput.c + $(RM_) jdinput.c + +jdmainct.$(OBJ): $(JSRC)jdmainct.c $(JDEP) + $(CP_) $(JSRC)jdmainct.c . + $(CCCJ) jdmainct.c + $(RM_) jdmainct.c + +jdmarker.$(OBJ): $(JSRC)jdmarker.c $(JDEP) + $(CP_) $(JSRC)jdmarker.c . + $(CCCJ) jdmarker.c + $(RM_) jdmarker.c + +jdmaster.$(OBJ): $(JSRC)jdmaster.c $(JDEP) + $(CP_) $(JSRC)jdmaster.c . + $(CCCJ) jdmaster.c + $(RM_) jdmaster.c + +# jdphuff.c is new in v6 +jdphuff.$(OBJ): $(JSRC)jdphuff.c $(JDEP) + $(CP_) $(JSRC)jdphuff.c . + $(CCCJ) jdphuff.c + $(RM_) jdphuff.c + +jdpostct.$(OBJ): $(JSRC)jdpostct.c $(JDEP) + $(CP_) $(JSRC)jdpostct.c . + $(CCCJ) jdpostct.c + $(RM_) jdpostct.c + +jdsample.$(OBJ): $(JSRC)jdsample.c $(JDEP) + $(CP_) $(JSRC)jdsample.c . + $(CCCJ) jdsample.c + $(RM_) jdsample.c + +jidctint.$(OBJ): $(JSRC)jidctint.c $(JDEP) + $(CP_) $(JSRC)jidctint.c . + $(CCCJ) jidctint.c + $(RM_) jidctint.c +# Copyright (C) 1995, 1996, 1997 Aladdin Enterprises. All rights reserved. +# +# This file is part of Aladdin Ghostscript. +# +# Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND. No author +# or distributor accepts any responsibility for the consequences of using it, +# or for whether it serves any particular purpose or works at all, unless he +# or she says so in writing. Refer to the Aladdin Ghostscript Free Public +# License (the "License") for full details. +# +# Every copy of Aladdin Ghostscript must include a copy of the License, +# normally in a plain ASCII text file named PUBLIC. The License grants you +# the right to copy, modify and redistribute Aladdin Ghostscript, but only +# under certain conditions described in the License. Among other things, the +# License requires that the copyright notice and this notice be preserved on +# all copies. + +# makefile for PNG (Portable Network Graphics) code. + +# This partial makefile compiles the png library for use in the Ghostscript +# PNG drivers. You can get the source code for this library from: +# ftp://swrinde.nde.swri.edu/pub/png/src/ +# The makefile is known to work with the following library versions: +# 0.89, 0.90, 0.95, and 0.96. NOTE: the archive for libpng 0.95 may +# be inconsistent: if you have compilation problems, use an older version. +# Please see Ghostscript's `make.txt' file for instructions about how to +# unpack these archives. +# +# The specification for the PNG file format is available from: +# http://www.group42.com/png.htm +# http://www.w3.org/pub/WWW/TR/WD-png + +# Define the name of this makefile. +LIBPNG_MAK=libpng.mak + +# PSRCDIR is defined in the platform-specific makefile, not here, +# as the directory where the PNG library sources are stored. +#PSRCDIR=libpng +# PVERSION is defined in the platform-specific makefile, not here, +# as the libpng version number ("89", "90", "95", or "96"). +#PVERSION=96 + +PSRC=$(PSRCDIR)$(D) +# CCCP is defined in gs.mak. +#CCCP=$(CCC) -I$(PSRCDIR) -I$(ZSRCDIR) + +# We keep all of the PNG code in a separate directory so as not to +# inadvertently mix it up with Aladdin Enterprises' own code. +PDEP=$(AK) + +png_1=png.$(OBJ) pngmem.$(OBJ) pngerror.$(OBJ) +png_2=pngtrans.$(OBJ) pngwrite.$(OBJ) pngwtran.$(OBJ) pngwutil.$(OBJ) + +# libpng modules + +png.$(OBJ): $(PSRC)png.c $(PDEP) + $(CCCP) $(PSRC)png.c + +# version 0.89 uses pngwio.c +pngwio.$(OBJ): $(PSRC)pngwio.c $(PDEP) + $(CCCP) $(PSRC)pngwio.c + +pngmem.$(OBJ): $(PSRC)pngmem.c $(PDEP) + $(CCCP) $(PSRC)pngmem.c + +pngerror.$(OBJ): $(PSRC)pngerror.c $(PDEP) + $(CCCP) $(PSRC)pngerror.c + +pngtrans.$(OBJ): $(PSRC)pngtrans.c $(PDEP) + $(CCCP) $(PSRC)pngtrans.c + +pngwrite.$(OBJ): $(PSRC)pngwrite.c $(PDEP) + $(CCCP) $(PSRC)pngwrite.c + +pngwtran.$(OBJ): $(PSRC)pngwtran.c $(PDEP) + $(CCCP) $(PSRC)pngwtran.c + +pngwutil.$(OBJ): $(PSRC)pngwutil.c $(PDEP) + $(CCCP) $(PSRC)pngwutil.c + +# Define the version of libpng.dev that we are actually using. +libpng.dev: $(MAKEFILE) libpng_$(SHARE_LIBPNG).dev + $(CP_) libpng_$(SHARE_LIBPNG).dev libpng.dev + +# Define the shared version of libpng. +# Note that it requires libz, which must be searched *after* libpng. +libpng_1.dev: $(MAKEFILE) $(LIBPNG_MAK) $(ECHOGS_XE) zlibe.dev + $(SETMOD) libpng_1 -lib $(LIBPNG_NAME) + $(ADDMOD) libpng_1 -include zlibe + +# Define the non-shared version of libpng. +libpng_0.dev: $(LIBPNG_MAK) $(ECHOGS_XE) $(png_1) $(png_2)\ + zlibe.dev libpng$(PVERSION).dev + $(SETMOD) libpng_0 $(png_1) + $(ADDMOD) libpng_0 $(png_2) + $(ADDMOD) libpng_0 -include zlibe libpng$(PVERSION) + +libpng89.dev: $(LIBPNG_MAK) $(ECHOGS_XE) pngwio.$(OBJ) + $(SETMOD) libpng89 pngwio.$(OBJ) + +libpng90.dev: $(LIBPNG_MAK) $(ECHOGS_XE) pngwio.$(OBJ) crc32.dev + $(SETMOD) libpng90 pngwio.$(OBJ) -include crc32 + +libpng95.dev: $(LIBPNG_MAK) $(ECHOGS_XE) pngwio.$(OBJ) crc32.dev + $(SETMOD) libpng95 pngwio.$(OBJ) -include crc32 + +libpng96.dev: $(LIBPNG_MAK) $(ECHOGS_XE) pngwio.$(OBJ) crc32.dev + $(SETMOD) libpng96 pngwio.$(OBJ) -include crc32 +# Copyright (C) 1995, 1996, 1997 Aladdin Enterprises. All rights reserved. +# +# This file is part of Aladdin Ghostscript. +# +# Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND. No author +# or distributor accepts any responsibility for the consequences of using it, +# or for whether it serves any particular purpose or works at all, unless he +# or she says so in writing. Refer to the Aladdin Ghostscript Free Public +# License (the "License") for full details. +# +# Every copy of Aladdin Ghostscript must include a copy of the License, +# normally in a plain ASCII text file named PUBLIC. The License grants you +# the right to copy, modify and redistribute Aladdin Ghostscript, but only +# under certain conditions described in the License. Among other things, the +# License requires that the copyright notice and this notice be preserved on +# all copies. + +# makefile for zlib library code. + +# This partial makefile compiles the zlib library for use in Ghostscript. +# You can get the source code for this library from: +# ftp://ftp.uu.net/pub/archiving/zip/zlib/zlib104.zip (zlib 1.0.4) +# or zlib-1.0.4.tar.gz +# Please see Ghostscript's `make.txt' file for instructions about how to +# unpack these archives. + +# Define the name of this makefile. +ZLIB_MAK=zlib.mak + +# ZSRCDIR is defined in the platform-specific makefile, not here, +# as the directory where the zlib sources are stored. +#ZSRCDIR=zlib +ZSRC=$(ZSRCDIR)$(D) +# We would like to define +#CCCZ=$(CCC) -I$(ZSRCDIR) -Dverbose=-1 +# but the Watcom C compiler has strange undocumented restrictions on what can +# follow a -D=, and it doesn't allow negative numbers. Instead, we define +# (in gs.mak): +#CCCZ=$(CCC) -I. -I$(ZSRCDIR) +# and handle the definition of verbose in a different, more awkward way. + +# We keep all of the zlib code in a separate directory so as not to +# inadvertently mix it up with Aladdin Enterprises' own code. +ZDEP=$(AK) + +# Contrary to what some portability bigots assert as fact, C compilers are +# not consistent about where they start searching for #included files: +# some always start by looking in the same directory as the .c file being +# compiled, before using the search path specified with -I on the command +# line, while others do not do this. For this reason, we must explicitly +# copy and then delete all the .c files, because they need to obtain our +# modified version of zutil.h. We must also copy all header files that +# reference zutil.h directly or indirectly. + +# Code common to compression and decompression. + +zlibc_=zutil.$(OBJ) +zlibc.dev: $(ZLIB_MAK) $(ECHOGS_XE) $(zlibc_) + $(SETMOD) zlibc $(zlibc_) + +zutil.h: $(ZSRC)zutil.h $(ECHOGS_XE) + $(EXP)echogs -w zutil.h -x 23 define verbose -s - -1 + $(EXP)echogs -a zutil.h -+R $(ZSRC)zutil.h + +zutil.$(OBJ): $(ZSRC)zutil.c $(ZDEP) zutil.h + $(CP_) $(ZSRC)zutil.c . + $(CCCZ) zutil.c + $(RM_) zutil.c + +# Encoding (compression) code. + +deflate.h: $(ZSRC)deflate.h zutil.h + $(CP_) $(ZSRC)deflate.h . + +zlibe.dev: $(MAKEFILE) zlibe_$(SHARE_ZLIB).dev + $(CP_) zlibe_$(SHARE_ZLIB).dev zlibe.dev + +zlibe_1.dev: $(MAKEFILE) $(ZLIB_MAK) $(ECHOGS_XE) + $(SETMOD) zlibe_1 -lib $(ZLIB_NAME) + +zlibe_=adler32.$(OBJ) deflate.$(OBJ) trees.$(OBJ) +zlibe_0.dev: $(ZLIB_MAK) $(ECHOGS_XE) zlibc.dev $(zlibe_) + $(SETMOD) zlibe_0 $(zlibe_) + $(ADDMOD) zlibe_0 -include zlibc + +adler32.$(OBJ): $(ZSRC)adler32.c $(ZDEP) + $(CP_) $(ZSRC)adler32.c . + $(CCCZ) adler32.c + $(RM_) adler32.c + +deflate.$(OBJ): $(ZSRC)deflate.c $(ZDEP) deflate.h + $(CP_) $(ZSRC)deflate.c . + $(CCCZ) deflate.c + $(RM_) deflate.c + +trees.$(OBJ): $(ZSRC)trees.c $(ZDEP) deflate.h + $(CP_) $(ZSRC)trees.c . + $(CCCZ) trees.c + $(RM_) trees.c + +# The zlib filters per se don't need crc32, but libpng versions starting +# with 0.90 do. + +crc32.dev: $(MAKEFILE) crc32_$(SHARE_ZLIB).dev + $(CP_) crc32_$(SHARE_ZLIB).dev crc32.dev + +crc32_1.dev: $(MAKEFILE) $(ZLIB_MAK) $(ECHOGS_XE) + $(SETMOD) crc32_1 -lib $(ZLIB_NAME) + +crc32_0.dev: $(ZLIB_MAK) $(ECHOGS_XE) crc32.$(OBJ) + $(SETMOD) crc32_0 crc32.$(OBJ) + +crc32.$(OBJ): $(ZSRC)crc32.c $(ZDEP) deflate.h + $(CP_) $(ZSRC)crc32.c . + $(CCCZ) crc32.c + $(RM_) crc32.c + +# Decoding (decompression) code. + +zlibd.dev: $(MAKEFILE) zlibd_$(SHARE_ZLIB).dev + $(CP_) zlibd_$(SHARE_ZLIB).dev zlibd.dev + +zlibd_1.dev: $(MAKEFILE) $(ZLIB_MAK) $(ECHOGS_XE) + $(SETMOD) zlibd_1 -lib $(ZLIB_NAME) + +zlibd1_=infblock.$(OBJ) infcodes.$(OBJ) inffast.$(OBJ) +zlibd2_=inflate.$(OBJ) inftrees.$(OBJ) infutil.$(OBJ) +zlibd_ = $(zlibd1_) $(zlibd2_) +zlibd_0.dev: $(ZLIB_MAK) $(ECHOGS_XE) zlibc.dev $(zlibd_) + $(SETMOD) zlibd_0 $(zlibd1_) + $(ADDMOD) zlibd_0 -obj $(zlibd2_) + $(ADDMOD) zlibd_0 -include zlibc + +infblock.$(OBJ): $(ZSRC)infblock.c $(ZDEP) zutil.h + $(CP_) $(ZSRC)infblock.c . + $(CCCZ) infblock.c + $(RM_) infblock.c + +infcodes.$(OBJ): $(ZSRC)infcodes.c $(ZDEP) zutil.h + $(CP_) $(ZSRC)infcodes.c . + $(CCCZ) infcodes.c + $(RM_) infcodes.c + +inffast.$(OBJ): $(ZSRC)inffast.c $(ZDEP) zutil.h + $(CP_) $(ZSRC)inffast.c . + $(CCCZ) inffast.c + $(RM_) inffast.c + +inflate.$(OBJ): $(ZSRC)inflate.c $(ZDEP) zutil.h + $(CP_) $(ZSRC)inflate.c . + $(CCCZ) inflate.c + $(RM_) inflate.c + +inftrees.$(OBJ): $(ZSRC)inftrees.c $(ZDEP) zutil.h + $(CP_) $(ZSRC)inftrees.c . + $(CCCZ) inftrees.c + $(RM_) inftrees.c + +infutil.$(OBJ): $(ZSRC)infutil.c $(ZDEP) zutil.h + $(CP_) $(ZSRC)infutil.c . + $(CCCZ) infutil.c + $(RM_) infutil.c +# Copyright (C) 1989, 1996, 1997 Aladdin Enterprises. All rights reserved. +# +# This file is part of Aladdin Ghostscript. +# +# Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND. No author +# or distributor accepts any responsibility for the consequences of using it, +# or for whether it serves any particular purpose or works at all, unless he +# or she says so in writing. Refer to the Aladdin Ghostscript Free Public +# License (the "License") for full details. +# +# Every copy of Aladdin Ghostscript must include a copy of the License, +# normally in a plain ASCII text file named PUBLIC. The License grants you +# the right to copy, modify and redistribute Aladdin Ghostscript, but only +# under certain conditions described in the License. Among other things, the +# License requires that the copyright notice and this notice be preserved on +# all copies. + +# makefile for device drivers. + +# Define the name of this makefile. +DEVS_MAK=devs.mak + +###### --------------------------- Catalog -------------------------- ###### + +# It is possible to build configurations with an arbitrary collection of +# device drivers, although some drivers are supported only on a subset +# of the target platforms. The currently available drivers are: + +# MS-DOS displays (note: not usable with Desqview/X): +# MS-DOS EGA and VGA: +# ega EGA (640x350, 16-color) +# vga VGA (640x480, 16-color) +# MS-DOS SuperVGA: +# * ali SuperVGA using Avance Logic Inc. chipset, 256-color modes +# * atiw ATI Wonder SuperVGA, 256-color modes +# * s3vga SuperVGA using S3 86C911 chip (e.g., Diamond Stealth board) +# svga16 Generic SuperVGA in 800x600, 16-color mode +# * tseng SuperVGA using Tseng Labs ET3000/4000 chips, 256-color modes +# * tvga SuperVGA using Trident chipset, 256-color modes +# ****** NOTE: The vesa device does not work with the Watcom (32-bit MS-DOS) +# ****** compiler or executable. +# vesa SuperVGA with VESA standard API driver +# MS-DOS other: +# bgi Borland Graphics Interface (CGA) [MS-DOS only] +# * herc Hercules Graphics display [MS-DOS only] +# * pe Private Eye display +# Other displays: +# MS Windows: +# mswindll Microsoft Windows 3.1 DLL [MS Windows only] +# mswinprn Microsoft Windows 3.0, 3.1 DDB printer [MS Windows only] +# mswinpr2 Microsoft Windows 3.0, 3.1 DIB printer [MS Windows only] +# OS/2: +# * os2pm OS/2 Presentation Manager [OS/2 only] +# * os2dll OS/2 DLL bitmap [OS/2 only] +# * os2prn OS/2 printer [OS/2 only] +# Unix and VMS: +# ****** NOTE: For direct frame buffer addressing under SCO Unix or Xenix, +# ****** edit the definition of EGAVGA below. +# * att3b1 AT&T 3b1/Unixpc monochrome display [3b1 only] +# * lvga256 Linux vgalib, 256-color VGA modes [Linux only] +# * sonyfb Sony Microsystems monochrome display [Sony only] +# * sunview SunView window system [SunOS only] +# + vgalib Linux PC with VGALIB [Linux only] +# x11 X Windows version 11, release >=4 [Unix and VMS only] +# x11alpha X Windows masquerading as a device with alpha capability +# x11cmyk X Windows masquerading as a 1-bit-per-plane CMYK device +# x11gray2 X Windows as a 2-bit gray-scale device +# x11mono X Windows masquerading as a black-and-white device +# Platform-independent: +# * sxlcrt CRT sixels, e.g. for VT240-like terminals +# Printers: +# * ap3250 Epson AP3250 printer +# * appledmp Apple Dot Matrix Printer (should also work with Imagewriter) +# bj10e Canon BubbleJet BJ10e +# * bj200 Canon BubbleJet BJ200 +# * bjc600 Canon Color BubbleJet BJC-600, BJC-4000 and BJC-70 +# also good for Apple printers like the StyleWriter 2x00 +# * bjc800 Canon Color BubbleJet BJC-800 +# * ccr CalComp Raster format +# * cdeskjet H-P DeskJet 500C with 1 bit/pixel color +# * cdjcolor H-P DeskJet 500C with 24 bit/pixel color and +# high-quality color (Floyd-Steinberg) dithering; +# also good for DeskJet 540C and Citizen Projet IIc (-r200x300) +# * cdjmono H-P DeskJet 500C printing black only; +# also good for DeskJet 510, 520, and 540C (black only) +# * cdj500 H-P DeskJet 500C (same as cdjcolor) +# * cdj550 H-P DeskJet 550C/560C/660C/660Cse +# * cp50 Mitsubishi CP50 color printer +# * declj250 alternate DEC LJ250 driver +# + deskjet H-P DeskJet and DeskJet Plus +# djet500 H-P DeskJet 500; use -r600 for DJ 600 series +# * djet500c H-P DeskJet 500C alternate driver +# (does not work on 550C or 560C) +# * dnj650c H-P DesignJet 650C +# epson Epson-compatible dot matrix printers (9- or 24-pin) +# * eps9mid Epson-compatible 9-pin, interleaved lines +# (intermediate resolution) +# * eps9high Epson-compatible 9-pin, interleaved lines +# (triple resolution) +# * epsonc Epson LQ-2550 and Fujitsu 3400/2400/1200 color printers +# * ibmpro IBM 9-pin Proprinter +# * imagen Imagen ImPress printers +# * iwhi Apple Imagewriter in high-resolution mode +# * iwlo Apple Imagewriter in low-resolution mode +# * iwlq Apple Imagewriter LQ in 320 x 216 dpi mode +# * jetp3852 IBM Jetprinter ink-jet color printer (Model #3852) +# + laserjet H-P LaserJet +# * la50 DEC LA50 printer +# * la70 DEC LA70 printer +# * la70t DEC LA70 printer with low-resolution text enhancement +# * la75 DEC LA75 printer +# * la75plus DEC LA75plus printer +# * lbp8 Canon LBP-8II laser printer +# * lips3 Canon LIPS III laser printer in English (CaPSL) mode +# * ln03 DEC LN03 printer +# * lj250 DEC LJ250 Companion color printer +# + ljet2p H-P LaserJet IId/IIp/III* with TIFF compression +# + ljet3 H-P LaserJet III* with Delta Row compression +# + ljet3d H-P LaserJet IIID with duplex capability +# + ljet4 H-P LaserJet 4 (defaults to 600 dpi) +# + lj4dith H-P LaserJet 4 with Floyd-Steinberg dithering +# + ljetplus H-P LaserJet Plus +# lj5mono H-P LaserJet 5 & 6 family (PCL XL), bitmap: +# see below for restrictions & advice +# lj5gray H-P LaserJet 5 & 6 family, gray-scale bitmap; +# see below for restrictions & advice +# * lp2563 H-P 2563B line printer +# * lp8000 Epson LP-8000 laser printer +# * lq850 Epson LQ850 printer at 360 x 360 DPI resolution; +# also good for Canon BJ300 with LQ850 emulation +# * m8510 C.Itoh M8510 printer +# * necp6 NEC P6/P6+/P60 printers at 360 x 360 DPI resolution +# * nwp533 Sony Microsystems NWP533 laser printer [Sony only] +# * oce9050 OCE 9050 printer +# * oki182 Okidata MicroLine 182 +# * okiibm Okidata MicroLine IBM-compatible printers +# * paintjet alternate H-P PaintJet color printer +# * pj H-P PaintJet XL driver +# * pjetxl alternate H-P PaintJet XL driver +# * pjxl H-P PaintJet XL color printer +# * pjxl300 H-P PaintJet XL300 color printer; +# also good for PaintJet 1200C +# (pxlmono) H-P black-and-white PCL XL printers (LaserJet 5 and 6 family) +# (pxlcolor) H-P color PCL XL printers (none available yet) +# * r4081 Ricoh 4081 laser printer +# * sj48 StarJet 48 inkjet printer +# * sparc SPARCprinter +# * st800 Epson Stylus 800 printer +# * stcolor Epson Stylus Color +# * t4693d2 Tektronix 4693d color printer, 2 bits per R/G/B component +# * t4693d4 Tektronix 4693d color printer, 4 bits per R/G/B component +# * t4693d8 Tektronix 4693d color printer, 8 bits per R/G/B component +# * tek4696 Tektronix 4695/4696 inkjet plotter +# * uniprint Unified printer driver -- Configurable Color ESC/P-, +# ESC/P2-, HP-RTL/PCL mono/color driver +# * xes Xerox XES printers (2700, 3700, 4045, etc.) +# Fax systems: +# * dfaxhigh DigiBoard, Inc.'s DigiFAX software format (high resolution) +# * dfaxlow DigiFAX low (normal) resolution +# Fax file format: +# ****** NOTE: all of these drivers adjust the page size to match +# ****** one of the three CCITT standard sizes (U.S. letter with A4 width, +# ****** A4, or B4). +# faxg3 Group 3 fax, with EOLs but no header or EOD +# faxg32d Group 3 2-D fax, with EOLs but no header or EOD +# faxg4 Group 4 fax, with EOLs but no header or EOD +# tiffcrle TIFF "CCITT RLE 1-dim" (= Group 3 fax with no EOLs) +# tiffg3 TIFF Group 3 fax (with EOLs) +# tiffg32d TIFF Group 3 2-D fax +# tiffg4 TIFF Group 4 fax +# High-level file formats: +# epswrite EPS output (like PostScript Distillery) +# pdfwrite PDF output (like Adobe Acrobat Distiller) +# pswrite PostScript output (like PostScript Distillery) +# pxlmono Black-and-white PCL XL +# pxlcolor Color PCL XL +# Other raster file formats and devices: +# bit Plain bits, monochrome +# bitrgb Plain bits, RGB +# bitcmyk Plain bits, CMYK +# bmpmono Monochrome MS Windows .BMP file format +# bmp16 4-bit (EGA/VGA) .BMP file format +# bmp256 8-bit (256-color) .BMP file format +# bmp16m 24-bit .BMP file format +# cgmmono Monochrome (black-and-white) CGM -- LOW LEVEL OUTPUT ONLY +# cgm8 8-bit (256-color) CGM -- DITTO +# cgm24 24-bit color CGM -- DITTO +# * cif CIF file format for VLSI +# jpeg JPEG format, RGB output +# jpeggray JPEG format, gray output +# miff24 ImageMagick MIFF format, 24-bit direct color, RLE compressed +# * mgrmono 1-bit monochrome MGR devices +# * mgrgray2 2-bit gray scale MGR devices +# * mgrgray4 4-bit gray scale MGR devices +# * mgrgray8 8-bit gray scale MGR devices +# * mgr4 4-bit (VGA) color MGR devices +# * mgr8 8-bit color MGR devices +# pcxmono PCX file format, monochrome (1-bit black and white) +# pcxgray PCX file format, 8-bit gray scale +# pcx16 PCX file format, 4-bit planar (EGA/VGA) color +# pcx256 PCX file format, 8-bit chunky color +# pcx24b PCX file format, 24-bit color (3 8-bit planes) +# pcxcmyk PCX file format, 4-bit chunky CMYK color +# pbm Portable Bitmap (plain format) +# pbmraw Portable Bitmap (raw format) +# pgm Portable Graymap (plain format) +# pgmraw Portable Graymap (raw format) +# pgnm Portable Graymap (plain format), optimizing to PBM if possible +# pgnmraw Portable Graymap (raw format), optimizing to PBM if possible +# pnm Portable Pixmap (plain format) (RGB), optimizing to PGM or PBM +# if possible +# pnmraw Portable Pixmap (raw format) (RGB), optimizing to PGM or PBM +# if possible +# ppm Portable Pixmap (plain format) (RGB) +# ppmraw Portable Pixmap (raw format) (RGB) +# pkm Portable inKmap (plain format) (4-bit CMYK => RGB) +# pkmraw Portable inKmap (raw format) (4-bit CMYK => RGB) +# pngmono Monochrome Portable Network Graphics (PNG) +# pnggray 8-bit gray Portable Network Graphics (PNG) +# png16 4-bit color Portable Network Graphics (PNG) +# png256 8-bit color Portable Network Graphics (PNG) +# png16m 24-bit color Portable Network Graphics (PNG) +# psmono PostScript (Level 1) monochrome image +# psgray PostScript (Level 1) 8-bit gray image +# sgirgb SGI RGB pixmap format +# tiff12nc TIFF 12-bit RGB, no compression +# tiff24nc TIFF 24-bit RGB, no compression (NeXT standard format) +# tifflzw TIFF LZW (tag = 5) (monochrome) +# tiffpack TIFF PackBits (tag = 32773) (monochrome) + +# User-contributed drivers marked with * require hardware or software +# that is not available to Aladdin Enterprises. Please contact the +# original contributors, not Aladdin Enterprises, if you have questions. +# Contact information appears in the driver entry below. +# +# Drivers marked with a + are maintained by Aladdin Enterprises with +# the assistance of users, since Aladdin Enterprises doesn't have access to +# the hardware for these either. + +# If you add drivers, it would be nice if you kept each list +# in alphabetical order. + +###### ----------------------- End of catalog ----------------------- ###### + +# As noted in gs.mak, DEVICE_DEVS and DEVICE_DEVS1..15 select the devices +# that should be included in a given configuration. By convention, these +# are used as follows. Each of these must be limited to about 10 devices +# so as not to overflow the 120 character limit on MS-DOS command lines. +# DEVICE_DEVS - the default device, and any display devices. +# DEVICE_DEVS1 - additional display devices if needed. +# DEVICE_DEVS2 - dot matrix printers. +# DEVICE_DEVS3 - H-P monochrome printers. +# DEVICE_DEVS4 - H-P color printers. +# DEVICE_DEVS5 - additional H-P printers if needed. +# DEVICE_DEVS6 - other ink-jet and laser printers. +# DEVICE_DEVS7 - fax file formats. +# DEVICE_DEVS8 - PCX file formats. +# DEVICE_DEVS9 - PBM/PGM/PPM file formats. +# DEVICE_DEVS10 - black-and-white TIFF file formats. +# DEVICE_DEVS11 - BMP and color TIFF file formats. +# DEVICE_DEVS12 - PostScript image and 'bit' file formats. +# DEVICE_DEVS13 - PNG file formats. +# DEVICE_DEVS14 - CGM, JPEG, and MIFF file formats. +# DEVICE_DEVS15 - high-level (PostScript and PDF) file formats. +# Feel free to disregard this convention if it gets in your way. + +# If you want to add a new device driver, the examples below should be +# enough of a guide to the correct form for the makefile rules. +# Note that all drivers other than displays must include page.dev in their +# dependencies and use $(SETPDEV) rather than $(SETDEV) in their rule bodies. + +# All device drivers depend on the following: +GDEV=$(AK) $(ECHOGS_XE) $(gserrors_h) $(gx_h) $(gxdevice_h) + +# "Printer" drivers depend on the following: +PDEVH=$(AK) $(gdevprn_h) + +# Define the header files for device drivers. Every header file used by +# more than one device driver family must be listed here. +gdev8bcm_h=gdev8bcm.h +gdevpccm_h=gdevpccm.h +gdevpcfb_h=gdevpcfb.h $(dos__h) +gdevpcl_h=gdevpcl.h +gdevsvga_h=gdevsvga.h +gdevx_h=gdevx.h + +###### ----------------------- Device support ----------------------- ###### + +# Provide a mapping between StandardEncoding and ISOLatin1Encoding. +gdevemap.$(OBJ): gdevemap.c $(AK) $(std_h) + +# Implement dynamic color management for 8-bit mapped color displays. +gdev8bcm.$(OBJ): gdev8bcm.c $(AK) \ + $(gx_h) $(gxdevice_h) $(gdev8bcm_h) + +###### ------------------- MS-DOS display devices ------------------- ###### + +# There are really only three drivers: an EGA/VGA driver (4 bit-planes, +# plane-addressed), a SuperVGA driver (8 bit-planes, byte addressed), +# and a special driver for the S3 chip. + +# PC display color mapping +gdevpccm.$(OBJ): gdevpccm.c $(AK) \ + $(gx_h) $(gsmatrix_h) $(gxdevice_h) $(gdevpccm_h) + +### ----------------------- EGA and VGA displays ----------------------- ### + +# The shared MS-DOS makefile defines PCFBASM as either gdevegaa.$(OBJ) +# or an empty string. + +gdevegaa.$(OBJ): gdevegaa.asm + +# NOTE: for direct frame buffer addressing under SCO Unix or Xenix, +# change gdevevga to gdevsco in the following line. Also, since +# SCO's /bin/as does not support the "out" instructions, you must build +# the gnu assembler and have it on your path as "as". +EGAVGA=gdevevga.$(OBJ) gdevpcfb.$(OBJ) gdevpccm.$(OBJ) $(PCFBASM) +#EGAVGA=gdevsco.$(OBJ) gdevpcfb.$(OBJ) gdevpccm.$(OBJ) $(PCFBASM) + +gdevevga.$(OBJ): gdevevga.c $(GDEV) $(memory__h) $(gdevpcfb_h) + $(CCD) gdevevga.c + +gdevsco.$(OBJ): gdevsco.c $(GDEV) $(memory__h) $(gdevpcfb_h) + +# Common code for MS-DOS and SCO. +gdevpcfb.$(OBJ): gdevpcfb.c $(GDEV) $(memory__h) $(gconfigv_h)\ + $(gdevpccm_h) $(gdevpcfb_h) $(gsparam_h) + $(CCD) gdevpcfb.c + +# The EGA/VGA family includes EGA and VGA. Many SuperVGAs in 800x600, +# 16-color mode can share the same code; see the next section below. + +ega.dev: $(EGAVGA) + $(SETDEV) ega $(EGAVGA) + +vga.dev: $(EGAVGA) + $(SETDEV) vga $(EGAVGA) + +### ------------------------- SuperVGA displays ------------------------ ### + +# SuperVGA displays in 16-color, 800x600 mode are really just slightly +# glorified VGA's, so we can handle them all with a single driver. +# The way to select them on the command line is with +# -sDEVICE=svga16 -dDisplayMode=NNN +# where NNN is the display mode in decimal. See use.txt for the modes +# for some popular display chipsets. + +svga16.dev: $(EGAVGA) + $(SETDEV) svga16 $(EGAVGA) + +# More capable SuperVGAs have a wide variety of slightly differing +# interfaces, so we need a separate driver for each one. + +SVGA=gdevsvga.$(OBJ) gdevpccm.$(OBJ) $(PCFBASM) + +gdevsvga.$(OBJ): gdevsvga.c $(GDEV) $(memory__h) $(gconfigv_h)\ + $(gsparam_h) $(gxarith_h) $(gdevpccm_h) $(gdevpcfb_h) $(gdevsvga_h) + $(CCD) gdevsvga.c + +# The SuperVGA family includes: Avance Logic Inc., ATI Wonder, S3, +# Trident, Tseng ET3000/4000, and VESA. + +ali.dev: $(SVGA) + $(SETDEV) ali $(SVGA) + +atiw.dev: $(SVGA) + $(SETDEV) atiw $(SVGA) + +tseng.dev: $(SVGA) + $(SETDEV) tseng $(SVGA) + +tvga.dev: $(SVGA) + $(SETDEV) tvga $(SVGA) + +vesa.dev: $(SVGA) + $(SETDEV) vesa $(SVGA) + +# The S3 driver doesn't share much code with the others. + +s3vga_=gdevs3ga.$(OBJ) gdevsvga.$(OBJ) gdevpccm.$(OBJ) +s3vga.dev: $(SVGA) $(s3vga_) + $(SETDEV) s3vga $(SVGA) + $(ADDMOD) s3vga -obj $(s3vga_) + +gdevs3ga.$(OBJ): gdevs3ga.c $(GDEV) $(gdevpcfb_h) $(gdevsvga_h) + $(CCD) gdevs3ga.c + +### ------------ The BGI (Borland Graphics Interface) device ----------- ### + +cgaf.$(OBJ): $(BGIDIR)\cga.bgi + $(BGIDIR)\bgiobj /F $(BGIDIR)\cga + +egavgaf.$(OBJ): $(BGIDIR)\egavga.bgi + $(BGIDIR)\bgiobj /F $(BGIDIR)\egavga + +# Include egavgaf.$(OBJ) for debugging only. +bgi_=gdevbgi.$(OBJ) cgaf.$(OBJ) +bgi.dev: $(bgi_) + $(SETDEV) bgi $(bgi_) + $(ADDMOD) bgi -lib $(LIBDIR)\graphics + +gdevbgi.$(OBJ): gdevbgi.c $(GDEV) $(MAKEFILE) $(gxxfont_h) + $(CCC) -DBGI_LIB="$(BGIDIRSTR)" gdevbgi.c + +### ------------------- The Hercules Graphics display ------------------- ### + +herc_=gdevherc.$(OBJ) +herc.dev: $(herc_) + $(SETDEV) herc $(herc_) + +gdevherc.$(OBJ): gdevherc.c $(GDEV) $(dos__h) $(gsmatrix_h) $(gxbitmap_h) + $(CCC) gdevherc.c + +### ---------------------- The Private Eye display ---------------------- ### +### Note: this driver was contributed by a user: ### +### please contact narf@media-lab.media.mit.edu if you have questions. ### + +pe_=gdevpe.$(OBJ) +pe.dev: $(pe_) + $(SETDEV) pe $(pe_) + +gdevpe.$(OBJ): gdevpe.c $(GDEV) $(memory__h) + +###### ----------------------- Other displays ------------------------ ###### + +### -------------------- The MS-Windows 3.n DLL ------------------------- ### + +gsdll_h=gsdll.h + +gdevmswn_h=gdevmswn.h $(GDEV)\ + $(dos__h) $(memory__h) $(string__h) $(windows__h)\ + gp_mswin.h + +gdevmswn.$(OBJ): gdevmswn.c $(gdevmswn_h) $(gp_h) $(gpcheck_h) \ + $(gsdll_h) $(gsparam_h) $(gdevpccm_h) + $(CCCWIN) gdevmswn.c + +gdevmsxf.$(OBJ): gdevmsxf.c $(ctype__h) $(math__h) $(memory__h) $(string__h)\ + $(gdevmswn_h) $(gsstruct_h) $(gsutil_h) $(gxxfont_h) + $(CCCWIN) gdevmsxf.c + +# An implementation using a DIB filled by an image device. +gdevwdib.$(OBJ): gdevwdib.c $(gdevmswn_h) $(gsdll_h) $(gxdevmem_h) + $(CCCWIN) gdevwdib.c + +mswindll_=gdevmswn.$(OBJ) gdevmsxf.$(OBJ) gdevwdib.$(OBJ) \ + gdevemap.$(OBJ) gdevpccm.$(OBJ) +mswindll.dev: $(mswindll_) + $(SETDEV) mswindll $(mswindll_) + +### -------------------- The MS-Windows DDB 3.n printer ----------------- ### + +mswinprn_=gdevwprn.$(OBJ) gdevmsxf.$(OBJ) +mswinprn.dev: $(mswinprn_) + $(SETDEV) mswinprn $(mswinprn_) + +gdevwprn.$(OBJ): gdevwprn.c $(gdevmswn_h) $(gp_h) + $(CCCWIN) gdevwprn.c + +### -------------------- The MS-Windows DIB 3.n printer ----------------- ### + +mswinpr2_=gdevwpr2.$(OBJ) +mswinpr2.dev: $(mswinpr2_) page.dev + $(SETPDEV) mswinpr2 $(mswinpr2_) + +gdevwpr2.$(OBJ): gdevwpr2.c $(PDEVH) $(windows__h)\ + $(gdevpccm_h) $(gp_h) gp_mswin.h + $(CCCWIN) gdevwpr2.c + +### ------------------ OS/2 Presentation Manager device ----------------- ### + +os2pm_=gdevpm.$(OBJ) gdevpccm.$(OBJ) +os2pm.dev: $(os2pm_) + $(SETDEV) os2pm $(os2pm_) + +os2dll_=gdevpm.$(OBJ) gdevpccm.$(OBJ) +os2dll.dev: $(os2dll_) + $(SETDEV) os2dll $(os2dll_) + +gdevpm.$(OBJ): gdevpm.c $(string__h)\ + $(gp_h) $(gpcheck_h)\ + $(gsdll_h) $(gserrors_h) $(gsexit_h) $(gsparam_h)\ + $(gx_h) $(gxdevice_h) $(gxdevmem_h)\ + $(gdevpccm_h) gdevpm.h + +### --------------------------- The OS/2 printer ------------------------ ### + +os2prn_=gdevos2p.$(OBJ) +os2prn.dev: $(os2prn_) page.dev + $(SETPDEV) os2prn $(os2prn_) + +os2prn.$(OBJ): os2prn.c $(gp_h) + +### -------------- The AT&T 3b1 Unixpc monochrome display --------------- ### +### Note: this driver was contributed by a user: please contact ### +### Andy Fyfe (andy@cs.caltech.edu) if you have questions. ### + +att3b1_=gdev3b1.$(OBJ) +att3b1.dev: $(att3b1_) + $(SETDEV) att3b1 $(att3b1_) + +gdev3b1.$(OBJ): gdev3b1.c $(GDEV) + +### ---------------------- Linux PC with vgalib ------------------------- ### +### Note: these drivers were contributed by users. ### +### For questions about the lvga256 driver, please contact ### +### Ludger Kunz (ludger.kunz@fernuni-hagen.de). ### +### For questions about the vgalib driver, please contact ### +### Erik Talvola (talvola@gnu.ai.mit.edu). ### + +lvga256_=gdevl256.$(OBJ) +lvga256.dev: $(lvga256_) + $(SETDEV) lvga256 $(lvga256_) + $(ADDMOD) lvga256 -lib vga vgagl + +gdevl256.$(OBJ): gdevl256.c $(GDEV) + +vgalib_=gdevvglb.$(OBJ) gdevpccm.$(OBJ) +vgalib.dev: $(vgalib_) + $(SETDEV) vgalib $(vgalib_) + $(ADDMOD) vgalib -lib vga + +gdevvglb.$(OBJ): gdevvglb.c $(GDEV) $(gdevpccm_h) $(gsparam_h) + +### ------------------- Sony NeWS frame buffer device ------------------ ### +### Note: this driver was contributed by a user: please contact ### +### Mike Smolenski (mike@intertech.com) if you have questions. ### + +# This is implemented as a 'printer' device. +sonyfb_=gdevsnfb.$(OBJ) +sonyfb.dev: $(sonyfb_) page.dev + $(SETPDEV) sonyfb $(sonyfb_) + +gdevsnfb.$(OBJ): gdevsnfb.c $(PDEVH) + +### ------------------------ The SunView device ------------------------ ### +### Note: this driver is maintained by a user: if you have questions, ### +### please contact Andreas Stolcke (stolcke@icsi.berkeley.edu). ### + +sunview_=gdevsun.$(OBJ) +sunview.dev: $(sunview_) + $(SETDEV) sunview $(sunview_) + $(ADDMOD) sunview -lib suntool sunwindow pixrect + +gdevsun.$(OBJ): gdevsun.c $(GDEV) $(malloc__h)\ + $(gscdefs_h) $(gserrors_h) $(gsmatrix_h) + +### -------------------------- The X11 device -------------------------- ### + +# Aladdin Enterprises does not support Ghostview. For more information +# about Ghostview, please contact Tim Theisen (ghostview@cs.wisc.edu). + +# See the main makefile for the definition of XLIBS. +x11_=gdevx.$(OBJ) gdevxini.$(OBJ) gdevxxf.$(OBJ) gdevemap.$(OBJ) +x11.dev: $(x11_) + $(SETDEV) x11 $(x11_) + $(ADDMOD) x11 -lib $(XLIBS) + +# See the main makefile for the definition of XINCLUDE. +GDEVX=$(GDEV) x_.h gdevx.h $(MAKEFILE) +gdevx.$(OBJ): gdevx.c $(GDEVX) $(math__h) $(memory__h) $(gsparam_h) + $(CCC) $(XINCLUDE) gdevx.c + +gdevxini.$(OBJ): gdevxini.c $(GDEVX) $(math__h) $(memory__h) $(gserrors_h) + $(CCC) $(XINCLUDE) gdevxini.c + +gdevxxf.$(OBJ): gdevxxf.c $(GDEVX) $(math__h) $(memory__h)\ + $(gsstruct_h) $(gsutil_h) $(gxxfont_h) + $(CCC) $(XINCLUDE) gdevxxf.c + +# Alternate X11-based devices to help debug other drivers. +# x11alpha pretends to have 4 bits of alpha channel. +# x11cmyk pretends to be a CMYK device with 1 bit each of C,M,Y,K. +# x11gray2 pretends to be a 2-bit gray-scale device. +# x11mono pretends to be a black-and-white device. +x11alt_=$(x11_) gdevxalt.$(OBJ) +x11alpha.dev: $(x11alt_) + $(SETDEV) x11alpha $(x11alt_) + $(ADDMOD) x11alpha -lib $(XLIBS) + +x11cmyk.dev: $(x11alt_) + $(SETDEV) x11cmyk $(x11alt_) + $(ADDMOD) x11cmyk -lib $(XLIBS) + +x11gray2.dev: $(x11alt_) + $(SETDEV) x11gray2 $(x11alt_) + $(ADDMOD) x11gray2 -lib $(XLIBS) + +x11mono.dev: $(x11alt_) + $(SETDEV) x11mono $(x11alt_) + $(ADDMOD) x11mono -lib $(XLIBS) + +gdevxalt.$(OBJ): gdevxalt.c $(GDEVX) $(math__h) $(memory__h) $(gsparam_h) + $(CCC) $(XINCLUDE) gdevxalt.c + +### ------------------------- DEC sixel displays ------------------------ ### +### Note: this driver was contributed by a user: please contact ### +### Phil Keegstra (keegstra@tonga.gsfc.nasa.gov) if you have questions. ### + +# This is a "printer" device, but it probably shouldn't be. +# I don't know why the implementor chose to do it this way. +sxlcrt_=gdevln03.$(OBJ) +sxlcrt.dev: $(sxlcrt_) page.dev + $(SETPDEV) sxlcrt $(sxlcrt_) + +###### --------------- Memory-buffered printer devices --------------- ###### + +### --------------------- The Apple printer devices --------------------- ### +### Note: these drivers were contributed by users. ### +### If you have questions about the DMP driver, please contact ### +### Mark Wedel (master@cats.ucsc.edu). ### +### If you have questions about the Imagewriter drivers, please contact ### +### Jonathan Luckey (luckey@rtfm.mlb.fl.us). ### +### If you have questions about the Imagewriter LQ driver, please ### +### contact Scott Barker (barkers@cuug.ab.ca). ### + +appledmp_=gdevadmp.$(OBJ) + +gdevadmp.$(OBJ): gdevadmp.c $(PDEVH) + +appledmp.dev: $(appledmp_) page.dev + $(SETPDEV) appledmp $(appledmp_) + +iwhi.dev: $(appledmp_) page.dev + $(SETPDEV) iwhi $(appledmp_) + +iwlo.dev: $(appledmp_) page.dev + $(SETPDEV) iwlo $(appledmp_) + +iwlq.dev: $(appledmp_) page.dev + $(SETPDEV) iwlq $(appledmp_) + +### ------------ The Canon BubbleJet BJ10e and BJ200 devices ------------ ### + +bj10e_=gdevbj10.$(OBJ) + +bj10e.dev: $(bj10e_) page.dev + $(SETPDEV) bj10e $(bj10e_) + +bj200.dev: $(bj10e_) page.dev + $(SETPDEV) bj200 $(bj10e_) + +gdevbj10.$(OBJ): gdevbj10.c $(PDEVH) + +### ------------- The CalComp Raster Format ----------------------------- ### +### Note: this driver was contributed by a user: please contact ### +### Ernst Muellner (ernst.muellner@oenzl.siemens.de) if you have ### +### questions. ### + +ccr_=gdevccr.$(OBJ) +ccr.dev: $(ccr_) page.dev + $(SETPDEV) ccr $(ccr_) + +gdevccr.$(OBJ): gdevccr.c $(PDEVH) + +### ----------- The H-P DeskJet and LaserJet printer devices ----------- ### + +### These are essentially the same device. +### NOTE: printing at full resolution (300 DPI) requires a printer +### with at least 1.5 Mb of memory. 150 DPI only requires .5 Mb. +### Note that the lj4dith driver is included with the H-P color printer +### drivers below. + +HPPCL=gdevpcl.$(OBJ) +HPMONO=gdevdjet.$(OBJ) $(HPPCL) + +gdevpcl.$(OBJ): gdevpcl.c $(PDEVH) $(gdevpcl_h) + +gdevdjet.$(OBJ): gdevdjet.c $(PDEVH) $(gdevpcl_h) + +deskjet.dev: $(HPMONO) page.dev + $(SETPDEV) deskjet $(HPMONO) + +djet500.dev: $(HPMONO) page.dev + $(SETPDEV) djet500 $(HPMONO) + +laserjet.dev: $(HPMONO) page.dev + $(SETPDEV) laserjet $(HPMONO) + +ljetplus.dev: $(HPMONO) page.dev + $(SETPDEV) ljetplus $(HPMONO) + +### Selecting ljet2p provides TIFF (mode 2) compression on LaserJet III, +### IIIp, IIId, IIIsi, IId, and IIp. + +ljet2p.dev: $(HPMONO) page.dev + $(SETPDEV) ljet2p $(HPMONO) + +### Selecting ljet3 provides Delta Row (mode 3) compression on LaserJet III, +### IIIp, IIId, IIIsi. + +ljet3.dev: $(HPMONO) page.dev + $(SETPDEV) ljet3 $(HPMONO) + +### Selecting ljet3d also provides duplex printing capability. + +ljet3d.dev: $(HPMONO) page.dev + $(SETPDEV) ljet3d $(HPMONO) + +### Selecting ljet4 also provides Delta Row compression on LaserJet IV series. + +ljet4.dev: $(HPMONO) page.dev + $(SETPDEV) ljet4 $(HPMONO) + +lp2563.dev: $(HPMONO) page.dev + $(SETPDEV) lp2563 $(HPMONO) + +oce9050.dev: $(HPMONO) page.dev + $(SETPDEV) oce9050 $(HPMONO) + +### ------------------ The H-P LaserJet 5 and 6 devices ----------------- ### + +### These drivers use H-P's new PCL XL printer language, like H-P's +### LaserJet 5 Enhanced driver for MS Windows. We don't recommend using +### them: +### - If you have a LJ 5L or 5P, which isn't a "real" LaserJet 5, +### use the ljet4 driver instead. (The lj5 drivers won't work.) +### - If you have any other model of LJ 5 or 6, use the pxlmono +### driver, which often produces much more compact output. + +gdevpxat_h=gdevpxat.h +gdevpxen_h=gdevpxen.h +gdevpxop_h=gdevpxop.h + +ljet5_=gdevlj56.$(OBJ) $(HPPCL) +lj5mono.dev: $(ljet5_) page.dev + $(SETPDEV) lj5mono $(ljet5_) + +lj5gray.dev: $(ljet5_) page.dev + $(SETPDEV) lj5gray $(ljet5_) + +gdevlj56.$(OBJ): gdevlj56.c $(PDEVH) $(gdevpcl_h)\ + $(gdevpxat_h) $(gdevpxen_h) $(gdevpxop_h) + +### The H-P DeskJet, PaintJet, and DesignJet family color printer devices.### +### Note: there are two different 500C drivers, both contributed by users.### +### If you have questions about the djet500c driver, ### +### please contact AKayser@et.tudelft.nl. ### +### If you have questions about the cdj* drivers, ### +### please contact g.cameron@biomed.abdn.ac.uk. ### +### If you have questions about the dnj560c driver, ### +### please contact koert@zen.cais.com. ### +### If you have questions about the lj4dith driver, ### +### please contact Eckhard.Rueggeberg@ts.go.dlr.de. ### +### If you have questions about the BJC600/BJC4000, BJC800, or ESCP ### +### drivers, please contact Yves.Arrouye@imag.fr. ### + +cdeskjet_=gdevcdj.$(OBJ) $(HPPCL) + +cdeskjet.dev: $(cdeskjet_) page.dev + $(SETPDEV) cdeskjet $(cdeskjet_) + +cdjcolor.dev: $(cdeskjet_) page.dev + $(SETPDEV) cdjcolor $(cdeskjet_) + +cdjmono.dev: $(cdeskjet_) page.dev + $(SETPDEV) cdjmono $(cdeskjet_) + +cdj500.dev: $(cdeskjet_) page.dev + $(SETPDEV) cdj500 $(cdeskjet_) + +cdj550.dev: $(cdeskjet_) page.dev + $(SETPDEV) cdj550 $(cdeskjet_) + +declj250.dev: $(cdeskjet_) page.dev + $(SETPDEV) declj250 $(cdeskjet_) + +dnj650c.dev: $(cdeskjet_) page.dev + $(SETPDEV) dnj650c $(cdeskjet_) + +lj4dith.dev: $(cdeskjet_) page.dev + $(SETPDEV) lj4dith $(cdeskjet_) + +pj.dev: $(cdeskjet_) page.dev + $(SETPDEV) pj $(cdeskjet_) + +pjxl.dev: $(cdeskjet_) page.dev + $(SETPDEV) pjxl $(cdeskjet_) + +pjxl300.dev: $(cdeskjet_) page.dev + $(SETPDEV) pjxl300 $(cdeskjet_) + +# Note: the BJC600 driver also works for the BJC4000. +bjc600.dev: $(cdeskjet_) page.dev + $(SETPDEV) bjc600 $(cdeskjet_) + +bjc800.dev: $(cdeskjet_) page.dev + $(SETPDEV) bjc800 $(cdeskjet_) + +escp.dev: $(cdeskjet_) page.dev + $(SETPDEV) escp $(cdeskjet_) + +# NB: you can also customise the build if required, using +# -DBitsPerPixel=<number> if you wish the default to be other than 24 +# for the generic drivers (cdj500, cdj550, pjxl300, pjtest, pjxltest). +gdevcdj.$(OBJ): gdevcdj.c $(std_h) $(PDEVH) gdevbjc.h\ + $(gsparam_h) $(gsstate_h) $(gxlum_h)\ + $(gdevpcl_h) + +djet500c_=gdevdjtc.$(OBJ) $(HPPCL) +djet500c.dev: $(djet500c_) page.dev + $(SETPDEV) djet500c $(djet500c_) + +gdevdjtc.$(OBJ): gdevdjtc.c $(PDEVH) $(malloc__h) $(gdevpcl_h) + +### -------------------- The Mitsubishi CP50 printer -------------------- ### +### Note: this driver was contributed by a user: please contact ### +### Michael Hu (michael@ximage.com) if you have questions. ### + +cp50_=gdevcp50.$(OBJ) +cp50.dev: $(cp50_) page.dev + $(SETPDEV) cp50 $(cp50_) + +gdevcp50.$(OBJ): gdevcp50.c $(PDEVH) + +### ----------------- The generic Epson printer device ----------------- ### +### Note: most of this code was contributed by users. Please contact ### +### the following people if you have questions: ### +### eps9mid - Guenther Thomsen (thomsen@cs.tu-berlin.de) ### +### eps9high - David Wexelblat (dwex@mtgzfs3.att.com) ### +### ibmpro - James W. Birdsall (jwbirdsa@picarefy.picarefy.com) ### + +epson_=gdevepsn.$(OBJ) + +epson.dev: $(epson_) page.dev + $(SETPDEV) epson $(epson_) + +eps9mid.dev: $(epson_) page.dev + $(SETPDEV) eps9mid $(epson_) + +eps9high.dev: $(epson_) page.dev + $(SETPDEV) eps9high $(epson_) + +gdevepsn.$(OBJ): gdevepsn.c $(PDEVH) + +### ----------------- The IBM Proprinter printer device ---------------- ### + +ibmpro.dev: $(epson_) page.dev + $(SETPDEV) ibmpro $(epson_) + +### -------------- The Epson LQ-2550 color printer device -------------- ### +### Note: this driver was contributed by users: please contact ### +### Dave St. Clair (dave@exlog.com) if you have questions. ### + +epsonc_=gdevepsc.$(OBJ) +epsonc.dev: $(epsonc_) page.dev + $(SETPDEV) epsonc $(epsonc_) + +gdevepsc.$(OBJ): gdevepsc.c $(PDEVH) + +### ------------- The Epson ESC/P 2 language printer devices ------------- ### +### Note: these drivers were contributed by users. ### +### For questions about the Stylus 800 and AP3250 drivers, please contact ### +### Richard Brown (rab@tauon.ph.unimelb.edu.au). ### +### For questions about the Stylus Color drivers, please contact ### +### Gunther Hess (gunther@elmos.de). ### + +ESCP2=gdevescp.$(OBJ) + +gdevescp.$(OBJ): gdevescp.c $(PDEVH) + +ap3250.dev: $(ESCP2) page.dev + $(SETPDEV) ap3250 $(ESCP2) + +st800.dev: $(ESCP2) page.dev + $(SETPDEV) st800 $(ESCP2) + +stcolor1_=gdevstc.$(OBJ) gdevstc1.$(OBJ) gdevstc2.$(OBJ) +stcolor2_=gdevstc3.$(OBJ) gdevstc4.$(OBJ) +stcolor.dev: $(stcolor1_) $(stcolor2_) page.dev + $(SETPDEV) stcolor $(stcolor1_) + $(ADDMOD) stcolor -obj $(stcolor2_) + +gdevstc.$(OBJ): gdevstc.c gdevstc.h $(PDEVH) + +gdevstc1.$(OBJ): gdevstc1.c gdevstc.h $(PDEVH) + +gdevstc2.$(OBJ): gdevstc2.c gdevstc.h $(PDEVH) + +gdevstc3.$(OBJ): gdevstc3.c gdevstc.h $(PDEVH) + +gdevstc4.$(OBJ): gdevstc4.c gdevstc.h $(PDEVH) + +### --------------- Ugly/Update -> Unified Printer Driver ---------------- ### +### For questions about this driver, please contact: ### +### Gunther Hess (gunther@elmos.de) ### + +uniprint_=gdevupd.$(OBJ) +uniprint.dev: $(uniprint_) page.dev + $(SETPDEV) uniprint $(uniprint_) + +gdevupd.$(OBJ): gdevupd.c $(PDEVH) $(gsparam_h) + +### -------------- cdj850 - HP 850c Driver under development ------------- ### +### Since this driver is in the development-phase it is not distributed ### +### with ghostscript, but it is available via anonymous ftp from: ### +### ftp://bonk.ethz.ch ### +### For questions about this driver, please contact: ### +### Uli Wortmann (E-Mail address inside the driver-package) ### + +cdeskjet8_=gdevcd8.$(OBJ) $(HPPCL) + +cdj850.dev: $(cdeskjet8_) page.dev + $(SETPDEV) cdj850 $(cdeskjet8_) + +### ------------ The H-P PaintJet color printer device ----------------- ### +### Note: this driver also supports the DEC LJ250 color printer, which ### +### has a PaintJet-compatible mode, and the PaintJet XL. ### +### If you have questions about the XL, please contact Rob Reiss ### +### (rob@moray.berkeley.edu). ### + +PJET=gdevpjet.$(OBJ) $(HPPCL) + +gdevpjet.$(OBJ): gdevpjet.c $(PDEVH) $(gdevpcl_h) + +lj250.dev: $(PJET) page.dev + $(SETPDEV) lj250 $(PJET) + +paintjet.dev: $(PJET) page.dev + $(SETPDEV) paintjet $(PJET) + +pjetxl.dev: $(PJET) page.dev + $(SETPDEV) pjetxl $(PJET) + +### -------------- Imagen ImPress Laser Printer device ----------------- ### +### Note: this driver was contributed by a user: please contact ### +### Alan Millar (AMillar@bolis.sf-bay.org) if you have questions. ### +### Set USE_BYTE_STREAM if using parallel interface; ### +### Don't set it if using 'ipr' spooler (default). ### +### You may also add -DA4 if needed for A4 paper. ### + +imagen_=gdevimgn.$(OBJ) +imagen.dev: $(imagen_) page.dev + $(SETPDEV) imagen $(imagen_) + +gdevimgn.$(OBJ): gdevimgn.c $(PDEVH) + $(CCC) gdevimgn.c # for ipr spooler +# $(CCC) -DUSE_BYTE_STREAM gdevimgn.c # for parallel + +### ------- The IBM 3852 JetPrinter color inkjet printer device -------- ### +### Note: this driver was contributed by users: please contact ### +### Kevin Gift (kgift@draper.com) if you have questions. ### +### Note that the paper size that can be addressed by the graphics mode ### +### used in this driver is fixed at 7-1/2 inches wide (the printable ### +### width of the jetprinter itself.) ### + +jetp3852_=gdev3852.$(OBJ) +jetp3852.dev: $(jetp3852_) page.dev + $(SETPDEV) jetp3852 $(jetp3852_) + +gdev3852.$(OBJ): gdev3852.c $(PDEVH) $(gdevpcl_h) + +### ---------- The Canon LBP-8II and LIPS III printer devices ---------- ### +### Note: these drivers were contributed by users. ### +### For questions about these drivers, please contact ### +### Lauri Paatero, lauri.paatero@paatero.pp.fi ### + +lbp8_=gdevlbp8.$(OBJ) +lbp8.dev: $(lbp8_) page.dev + $(SETPDEV) lbp8 $(lbp8_) + +lips3.dev: $(lbp8_) page.dev + $(SETPDEV) lips3 $(lbp8_) + +gdevlbp8.$(OBJ): gdevlbp8.c $(PDEVH) + +### ----------- The DEC LN03/LA50/LA70/LA75 printer devices ------------ ### +### Note: this driver was contributed by users: please contact ### +### Ulrich Mueller (ulm@vsnhd1.cern.ch) if you have questions. ### +### For questions about LA50 and LA75, please contact ### +### Ian MacPhedran (macphed@dvinci.USask.CA). ### +### For questions about the LA70, please contact ### +### Bruce Lowekamp (lowekamp@csugrad.cs.vt.edu). ### +### For questions about the LA75plus, please contact ### +### Andre' Beck (Andre_Beck@IRS.Inf.TU-Dresden.de). ### + +ln03_=gdevln03.$(OBJ) +ln03.dev: $(ln03_) page.dev + $(SETPDEV) ln03 $(ln03_) + +la50.dev: $(ln03_) page.dev + $(SETPDEV) la50 $(ln03_) + +la70.dev: $(ln03_) page.dev + $(SETPDEV) la70 $(ln03_) + +la75.dev: $(ln03_) page.dev + $(SETPDEV) la75 $(ln03_) + +la75plus.dev: $(ln03_) page.dev + $(SETPDEV) la75plus $(ln03_) + +gdevln03.$(OBJ): gdevln03.c $(PDEVH) + +# LA70 driver with low-resolution text enhancement. + +la70t_=gdevla7t.$(OBJ) +la70t.dev: $(la70t_) page.dev + $(SETPDEV) la70t $(la70t_) + +gdevla7t.$(OBJ): gdevla7t.c $(PDEVH) + +### -------------- The Epson LP-8000 laser printer device -------------- ### +### Note: this driver was contributed by a user: please contact Oleg ### +### Oleg Fat'yanov <faty1@rlem.titech.ac.jp> if you have questions.### + +lp8000_=gdevlp8k.$(OBJ) +lp8000.dev: $(lp8000_) page.dev + $(SETPDEV) lp8000 $(lp8000_) + +gdevlp8k.$(OBJ): gdevlp8k.c $(PDEVH) + +### -------------- The C.Itoh M8510 printer device --------------------- ### +### Note: this driver was contributed by a user: please contact Bob ### +### Smith <bob@snuffy.penfield.ny.us> if you have questions. ### + +m8510_=gdev8510.$(OBJ) +m8510.dev: $(m8510_) page.dev + $(SETPDEV) m8510 $(m8510_) + +gdev8510.$(OBJ): gdev8510.c $(PDEVH) + +### -------------- 24pin Dot-matrix printer with 360DPI ---------------- ### +### Note: this driver was contributed by users. Please contact: ### +### Andreas Schwab (schwab@ls5.informatik.uni-dortmund.de) for ### +### questions about the NEC P6; ### +### Christian Felsch (felsch@tu-harburg.d400.de) for ### +### questions about the Epson LQ850. ### + +dm24_=gdevdm24.$(OBJ) +gdevdm24.$(OBJ): gdevdm24.c $(PDEVH) + +necp6.dev: $(dm24_) page.dev + $(SETPDEV) necp6 $(dm24_) + +lq850.dev: $(dm24_) page.dev + $(SETPDEV) lq850 $(dm24_) + +### ----------------- The Okidata MicroLine 182 device ----------------- ### +### Note: this driver was contributed by a user: please contact ### +### Maarten Koning (smeg@bnr.ca) if you have questions. ### + +oki182_=gdevo182.$(OBJ) +oki182.dev: $(oki182_) page.dev + $(SETPDEV) oki182 $(oki182_) + +gdevo182.$(OBJ): gdevo182.c $(PDEVH) + +### ------------- The Okidata IBM compatible printer device ------------ ### +### Note: this driver was contributed by a user: please contact ### +### Charles Mack (chasm@netcom.com) if you have questions. ### + +okiibm_=gdevokii.$(OBJ) +okiibm.dev: $(okiibm_) page.dev + $(SETPDEV) okiibm $(okiibm_) + +gdevokii.$(OBJ): gdevokii.c $(PDEVH) + +### ------------- The Ricoh 4081 laser printer device ------------------ ### +### Note: this driver was contributed by users: ### +### please contact kdw@oasis.icl.co.uk if you have questions. ### + +r4081_=gdev4081.$(OBJ) +r4081.dev: $(r4081_) page.dev + $(SETPDEV) r4081 $(r4081_) + + +gdev4081.$(OBJ): gdev4081.c $(PDEVH) + +### -------------------- Sony NWP533 printer device -------------------- ### +### Note: this driver was contributed by a user: please contact Tero ### +### Kivinen (kivinen@joker.cs.hut.fi) if you have questions. ### + +nwp533_=gdevn533.$(OBJ) +nwp533.dev: $(nwp533_) page.dev + $(SETPDEV) nwp533 $(nwp533_) + +gdevn533.$(OBJ): gdevn533.c $(PDEVH) + +### ------------------------- The SPARCprinter ------------------------- ### +### Note: this driver was contributed by users: please contact Martin ### +### Schulte (schulte@thp.uni-koeln.de) if you have questions. ### +### He would also like to hear from anyone using the driver. ### +### Please consult the source code for additional documentation. ### + +sparc_=gdevsppr.$(OBJ) +sparc.dev: $(sparc_) page.dev + $(SETPDEV) sparc $(sparc_) + +gdevsppr.$(OBJ): gdevsppr.c $(PDEVH) + +### ----------------- The StarJet SJ48 device -------------------------- ### +### Note: this driver was contributed by a user: if you have questions, ### +### . ### +### please contact Mats Akerblom (f86ma@dd.chalmers.se). ### + +sj48_=gdevsj48.$(OBJ) +sj48.dev: $(sj48_) page.dev + $(SETPDEV) sj48 $(sj48_) + +gdevsj48.$(OBJ): gdevsj48.c $(PDEVH) + +### ----------------- Tektronix 4396d color printer -------------------- ### +### Note: this driver was contributed by a user: please contact ### +### Karl Hakimian (hakimian@haney.eecs.wsu.edu) ### +### if you have questions. ### + +t4693d_=gdev4693.$(OBJ) +t4693d2.dev: $(t4693d_) page.dev + $(SETPDEV) t4693d2 $(t4693d_) + +t4693d4.dev: $(t4693d_) page.dev + $(SETPDEV) t4693d4 $(t4693d_) + +t4693d8.dev: $(t4693d_) page.dev + $(SETPDEV) t4693d8 $(t4693d_) + +gdev4693.$(OBJ): gdev4693.c $(PDEVH) + +### -------------------- Tektronix ink-jet printers -------------------- ### +### Note: this driver was contributed by a user: please contact ### +### Karsten Spang (spang@nbivax.nbi.dk) if you have questions. ### + +tek4696_=gdevtknk.$(OBJ) +tek4696.dev: $(tek4696_) page.dev + $(SETPDEV) tek4696 $(tek4696_) + +gdevtknk.$(OBJ): gdevtknk.c $(PDEVH) $(malloc__h) + +### ----------------- The Xerox XES printer device --------------------- ### +### Note: this driver was contributed by users: please contact ### +### Peter Flass (flass@lbdrscs.bitnet) if you have questions. ### + +xes_=gdevxes.$(OBJ) +xes.dev: $(xes_) page.dev + $(SETPDEV) xes $(xes_) + +gdevxes.$(OBJ): gdevxes.c $(PDEVH) + +###### ------------------------- Fax devices ------------------------- ###### + +### --------------- Generic PostScript system compatible fax ------------ ### + +# This code doesn't work yet. Don't even think about using it. + +PSFAX=gdevpfax.$(OBJ) + +psfax_=$(PSFAX) +psfax.dev: $(psfax_) page.dev + $(SETPDEV) psfax $(psfax_) + $(ADDMOD) psfax -iodev Fax + +gdevpfax.$(OBJ): gdevpfax.c $(PDEVH) $(gsparam_h) $(gxiodev_h) + +### ------------------------- The DigiFAX device ------------------------ ### +### This driver outputs images in a format suitable for use with ### +### DigiBoard, Inc.'s DigiFAX software. Use -sDEVICE=dfaxhigh for ### +### high resolution output, -sDEVICE=dfaxlow for normal output. ### +### Note: this driver was contributed by a user: please contact ### +### Rick Richardson (rick@digibd.com) if you have questions. ### + +dfax_=gdevdfax.$(OBJ) gdevtfax.$(OBJ) + +dfaxlow.dev: $(dfax_) page.dev + $(SETPDEV) dfaxlow $(dfax_) + $(ADDMOD) dfaxlow -include cfe + +dfaxhigh.dev: $(dfax_) page.dev + $(SETPDEV) dfaxhigh $(dfax_) + $(ADDMOD) dfaxhigh -include cfe + +gdevdfax.$(OBJ): gdevdfax.c $(PDEVH) $(scfx_h) $(strimpl_h) + +### --------------See under TIFF below for fax-format TIFF -------------- ### + +###### ------------------- High-level file formats ------------------- ###### + +# Support for PostScript and PDF + +gdevpsdf_h=gdevpsdf.h $(gdevvec_h) $(strimpl_h) +gdevpstr_h=gdevpstr.h + +gdevpsdf.$(OBJ): gdevpsdf.c $(stdio__h) $(string__h)\ + $(gserror_h) $(gserrors_h) $(gsmemory_h) $(gsparam_h) $(gstypes_h)\ + $(gxdevice_h)\ + $(scfx_h) $(slzwx_h) $(srlx_h) $(strimpl_h)\ + $(gdevpsdf_h) $(gdevpstr_h) + +gdevpstr.$(OBJ): gdevpstr.c $(math__h) $(stdio__h) $(string__h)\ + $(gdevpstr_h) $(stream_h) + +# PostScript and EPS writers + +pswrite1_=gdevps.$(OBJ) gdevpsdf.$(OBJ) gdevpstr.$(OBJ) +pswrite2_=scantab.$(OBJ) sfilter2.$(OBJ) +pswrite_=$(pswrite1_) $(pswrite2_) +epswrite.dev: $(ECHOGS_XE) $(pswrite_) vector.dev + $(SETDEV) epswrite $(pswrite1_) + $(ADDMOD) epswrite $(pswrite2_) + $(ADDMOD) epswrite -include vector + +pswrite.dev: $(ECHOGS_XE) $(pswrite_) vector.dev + $(SETDEV) pswrite $(pswrite1_) + $(ADDMOD) pswrite $(pswrite2_) + $(ADDMOD) pswrite -include vector + +gdevps.$(OBJ): gdevps.c $(GDEV) $(math__h) $(time__h)\ + $(gscdefs_h) $(gscspace_h) $(gsparam_h) $(gsiparam_h) $(gsmatrix_h)\ + $(gxdcolor_h)\ + $(sa85x_h) $(strimpl_h)\ + $(gdevpsdf_h) $(gdevpstr_h) + +# PDF writer +# Note that gs_pdfwr.ps will only actually be loaded if the configuration +# includes a PostScript interpreter. + +pdfwrite1_=gdevpdf.$(OBJ) gdevpdfd.$(OBJ) gdevpdfi.$(OBJ) gdevpdfm.$(OBJ) +pdfwrite2_=gdevpdfp.$(OBJ) gdevpdft.$(OBJ) gdevpsdf.$(OBJ) gdevpstr.$(OBJ) +pdfwrite3_=gsflip.$(OBJ) scantab.$(OBJ) sfilter2.$(OBJ) sstring.$(OBJ) +pdfwrite_=$(pdfwrite1_) $(pdfwrite2_) $(pdfwrite3_) +pdfwrite.dev: $(ECHOGS_XE) $(pdfwrite_) \ + cmyklib.dev cfe.dev dcte.dev lzwe.dev rle.dev vector.dev + $(SETDEV) pdfwrite $(pdfwrite1_) + $(ADDMOD) pdfwrite $(pdfwrite2_) + $(ADDMOD) pdfwrite $(pdfwrite3_) + $(ADDMOD) pdfwrite -ps gs_pdfwr + $(ADDMOD) pdfwrite -include cmyklib cfe dcte lzwe rle vector + +gdevpdfx_h=gdevpdfx.h $(gsparam_h) $(gxdevice_h) $(gxline_h) $(stream_h)\ + $(gdevpsdf_h) $(gdevpstr_h) + +gdevpdf.$(OBJ): gdevpdf.c $(math__h) $(memory__h) $(string__h) $(time__h)\ + $(gp_h)\ + $(gdevpdfx_h) $(gscdefs_h) $(gserrors_h)\ + $(gx_h) $(gxdevice_h) $(gxfixed_h) $(gxistate_h) $(gxpaint_h)\ + $(gzcpath_h) $(gzpath_h)\ + $(scanchar_h) $(scfx_h) $(slzwx_h) $(sstring_h) $(strimpl_h) $(szlibx_h) + $(CCCZ) gdevpdf.c + +gdevpdfd.$(OBJ): gdevpdfd.c $(math__h)\ + $(gdevpdfx_h)\ + $(gx_h) $(gxdevice_h) $(gxfixed_h) $(gxistate_h) $(gxpaint_h)\ + $(gzcpath_h) $(gzpath_h) + +gdevpdfi.$(OBJ): gdevpdfi.c $(math__h) $(memory__h) $(gx_h) \ + $(gdevpdfx_h) $(gscie_h) $(gscolor2_h) $(gserrors_h) $(gsflip_h)\ + $(gxcspace_h) $(gxistate_h) \ + $(sa85x_h) $(scfx_h) $(srlx_h) $(strimpl_h) + +gdevpdfm.$(OBJ): gdevpdfm.c $(memory__h) $(string__h) $(gx_h) \ + $(gdevpdfx_h) $(gserrors_h) $(gsutil_h) $(scanchar_h) + +gdevpdfp.$(OBJ): gdevpdfp.c $(gx_h)\ + $(gdevpdfx_h) $(gserrors_h) + +gdevpdft.$(OBJ): gdevpdft.c $(math__h) $(memory__h) $(string__h) $(gx_h)\ + $(gdevpdfx_h) $(gserrors_h) $(gsutil_h)\ + $(scommon_h) + +# High-level PCL XL writer + +pxl_=gdevpx.$(OBJ) +pxlmono.dev: $(pxl_) $(GDEV) vector.dev + $(SETDEV) pxlmono $(pxl_) + $(ADDMOD) pxlmono -include vector + +pxlcolor.dev: $(pxl_) $(GDEV) vector.dev + $(SETDEV) pxlcolor $(pxl_) + $(ADDMOD) pxlcolor -include vector + +gdevpx.$(OBJ): gdevpx.c $(math__h) $(memory__h) $(string__h)\ + $(gx_h) $(gsccolor_h) $(gsdcolor_h) $(gserrors_h)\ + $(gxcspace_h) $(gxdevice_h) $(gxpath_h)\ + $(gdevpxat_h) $(gdevpxen_h) $(gdevpxop_h) $(gdevvec_h)\ + $(srlx_h) $(strimpl_h) + +###### --------------------- Raster file formats --------------------- ###### + +### --------------------- The "plain bits" devices ---------------------- ### + +bit_=gdevbit.$(OBJ) + +bit.dev: $(bit_) page.dev + $(SETPDEV) bit $(bit_) + +bitrgb.dev: $(bit_) page.dev + $(SETPDEV) bitrgb $(bit_) + +bitcmyk.dev: $(bit_) page.dev + $(SETPDEV) bitcmyk $(bit_) + +gdevbit.$(OBJ): gdevbit.c $(PDEVH) $(gsparam_h) $(gxlum_h) + +### ------------------------- .BMP file formats ------------------------- ### + +bmp_=gdevbmp.$(OBJ) gdevpccm.$(OBJ) + +gdevbmp.$(OBJ): gdevbmp.c $(PDEVH) $(gdevpccm_h) + +bmpmono.dev: $(bmp_) page.dev + $(SETPDEV) bmpmono $(bmp_) + +bmp16.dev: $(bmp_) page.dev + $(SETPDEV) bmp16 $(bmp_) + +bmp256.dev: $(bmp_) page.dev + $(SETPDEV) bmp256 $(bmp_) + +bmp16m.dev: $(bmp_) page.dev + $(SETPDEV) bmp16m $(bmp_) + +### ------------- BMP driver that serves as demo of async rendering ---- ### +devasync_=gdevasyn.$(OBJ) gdevpccm.$(OBJ) gxsync.$(OBJ) + +gdevasyn.$(OBJ): gdevasyn.c $(AK) $(stdio__h) $(gdevprna_h) $(gdevpccm_h)\ + $(gserrors_h) $(gpsync_h) + +asynmono.dev: $(devasync_) page.dev async.dev + $(SETPDEV) asynmono $(devasync_) + $(ADDMOD) asynmono -include async + + +### -------------------------- CGM file format ------------------------- ### +### This driver is under development. Use at your own risk. ### +### The output is very low-level, consisting only of rectangles and ### +### cell arrays. ### + +cgm_=gdevcgm.$(OBJ) gdevcgml.$(OBJ) + +gdevcgml_h=gdevcgml.h +gdevcgmx_h=gdevcgmx.h $(gdevcgml_h) + +gdevcgm.$(OBJ): gdevcgm.c $(GDEV) $(memory__h)\ + $(gsparam_h) $(gdevpccm_h) $(gdevcgml_h) + +gdevcgml.$(OBJ): gdevcgml.c $(memory__h) $(stdio__h)\ + $(gdevcgmx_h) + +cgmmono.dev: $(cgm_) + $(SETDEV) cgmmono $(cgm_) + +cgm8.dev: $(cgm_) + $(SETDEV) cgm8 $(cgm_) + +cgm24.dev: $(cgm_) + $(SETDEV) cgm24 $(cgm_) + +### -------------------- The CIF file format for VLSI ------------------ ### +### Note: this driver was contributed by a user: please contact ### +### Frederic Petrot (petrot@masi.ibp.fr) if you have questions. ### + +cif_=gdevcif.$(OBJ) +cif.dev: $(cif_) page.dev + $(SETPDEV) cif $(cif_) + +gdevcif.$(OBJ): gdevcif.c $(PDEVH) + +### ------------------------- JPEG file format ------------------------- ### + +jpeg_=gdevjpeg.$(OBJ) + +# RGB output +jpeg.dev: $(jpeg_) sdcte.dev page.dev + $(SETPDEV) jpeg $(jpeg_) + $(ADDMOD) jpeg -include sdcte + +# Gray output +jpeggray.dev: $(jpeg_) sdcte.dev page.dev + $(SETPDEV) jpeggray $(jpeg_) + $(ADDMOD) jpeggray -include sdcte + +gdevjpeg.$(OBJ): gdevjpeg.c $(stdio__h) $(PDEVH)\ + $(sdct_h) $(sjpeg_h) $(stream_h) $(strimpl_h) jpeglib.h + +### ------------------------- MIFF file format ------------------------- ### +### Right now we support only 24-bit direct color, but we might add more ### +### formats in the future. ### + +miff_=gdevmiff.$(OBJ) + +miff24.dev: $(miff_) page.dev + $(SETPDEV) miff24 $(miff_) + +gdevmiff.$(OBJ): gdevmiff.c $(PDEVH) + +### --------------------------- MGR devices ---------------------------- ### +### Note: these drivers were contributed by a user: please contact ### +### Carsten Emde (carsten@ce.pr.net.ch) if you have questions. ### + +MGR=gdevmgr.$(OBJ) gdevpccm.$(OBJ) + +gdevmgr.$(OBJ): gdevmgr.c $(PDEVH) $(gdevpccm_h) gdevmgr.h + +mgrmono.dev: $(MGR) page.dev + $(SETPDEV) mgrmono $(MGR) + +mgrgray2.dev: $(MGR) page.dev + $(SETPDEV) mgrgray2 $(MGR) + +mgrgray4.dev: $(MGR) page.dev + $(SETPDEV) mgrgray4 $(MGR) + +mgrgray8.dev: $(MGR) page.dev + $(SETPDEV) mgrgray8 $(MGR) + +mgr4.dev: $(MGR) page.dev + $(SETPDEV) mgr4 $(MGR) + +mgr8.dev: $(MGR) page.dev + $(SETPDEV) mgr8 $(MGR) + +### ------------------------- PCX file formats ------------------------- ### + +pcx_=gdevpcx.$(OBJ) gdevpccm.$(OBJ) + +gdevpcx.$(OBJ): gdevpcx.c $(PDEVH) $(gdevpccm_h) $(gxlum_h) + +pcxmono.dev: $(pcx_) page.dev + $(SETPDEV) pcxmono $(pcx_) + +pcxgray.dev: $(pcx_) page.dev + $(SETPDEV) pcxgray $(pcx_) + +pcx16.dev: $(pcx_) page.dev + $(SETPDEV) pcx16 $(pcx_) + +pcx256.dev: $(pcx_) page.dev + $(SETPDEV) pcx256 $(pcx_) + +pcx24b.dev: $(pcx_) page.dev + $(SETPDEV) pcx24b $(pcx_) + +pcxcmyk.dev: $(pcx_) page.dev + $(SETPDEV) pcxcmyk $(pcx_) + +# The 2-up PCX device is here only as an example, and for testing. +pcx2up.dev: $(LIB_MAK) $(ECHOGS_XE) gdevp2up.$(OBJ) page.dev pcx256.dev + $(SETPDEV) pcx2up gdevp2up.$(OBJ) + $(ADDMOD) pcx2up -include pcx256 + +gdevp2up.$(OBJ): gdevp2up.c $(AK)\ + $(gdevpccm_h) $(gdevprn_h) $(gxclpage_h) + +### ------------------- Portable Bitmap file formats ------------------- ### +### For more information, see the pbm(5), pgm(5), and ppm(5) man pages. ### + +pxm_=gdevpbm.$(OBJ) + +gdevpbm.$(OBJ): gdevpbm.c $(PDEVH) $(gscdefs_h) $(gxlum_h) + +### Portable Bitmap (PBM, plain or raw format, magic numbers "P1" or "P4") + +pbm.dev: $(pxm_) page.dev + $(SETPDEV) pbm $(pxm_) + +pbmraw.dev: $(pxm_) page.dev + $(SETPDEV) pbmraw $(pxm_) + +### Portable Graymap (PGM, plain or raw format, magic numbers "P2" or "P5") + +pgm.dev: $(pxm_) page.dev + $(SETPDEV) pgm $(pxm_) + +pgmraw.dev: $(pxm_) page.dev + $(SETPDEV) pgmraw $(pxm_) + +# PGM with automatic optimization to PBM if this is possible. + +pgnm.dev: $(pxm_) page.dev + $(SETPDEV) pgnm $(pxm_) + +pgnmraw.dev: $(pxm_) page.dev + $(SETPDEV) pgnmraw $(pxm_) + +### Portable Pixmap (PPM, plain or raw format, magic numbers "P3" or "P6") + +ppm.dev: $(pxm_) page.dev + $(SETPDEV) ppm $(pxm_) + +ppmraw.dev: $(pxm_) page.dev + $(SETPDEV) ppmraw $(pxm_) + +# PPM with automatic optimization to PGM or PBM if possible. + +pnm.dev: $(pxm_) page.dev + $(SETPDEV) pnm $(pxm_) + +pnmraw.dev: $(pxm_) page.dev + $(SETPDEV) pnmraw $(pxm_) + +### Portable inKmap (CMYK internally, converted to PPM=RGB at output time) + +pkm.dev: $(pxm_) page.dev + $(SETPDEV) pkm $(pxm_) + +pkmraw.dev: $(pxm_) page.dev + $(SETPDEV) pkmraw $(pxm_) + +### --------------- Portable Network Graphics file format --------------- ### +### Requires libpng 0.81 and zlib 0.95 (or more recent versions). ### +### See libpng.mak and zlib.mak for more details. ### + +png_=gdevpng.$(OBJ) gdevpccm.$(OBJ) + +gdevpng.$(OBJ): gdevpng.c $(gdevprn_h) $(gdevpccm_h) $(gscdefs_h) $(PSRC)png.h + $(CCCP) gdevpng.c + +pngmono.dev: libpng.dev $(png_) page.dev + $(SETPDEV) pngmono $(png_) + $(ADDMOD) pngmono -include libpng + +pnggray.dev: libpng.dev $(png_) page.dev + $(SETPDEV) pnggray $(png_) + $(ADDMOD) pnggray -include libpng + +png16.dev: libpng.dev $(png_) page.dev + $(SETPDEV) png16 $(png_) + $(ADDMOD) png16 -include libpng + +png256.dev: libpng.dev $(png_) page.dev + $(SETPDEV) png256 $(png_) + $(ADDMOD) png256 -include libpng + +png16m.dev: libpng.dev $(png_) page.dev + $(SETPDEV) png16m $(png_) + $(ADDMOD) png16m -include libpng + +### ---------------------- PostScript image format ---------------------- ### +### These devices make it possible to print Level 2 files on a Level 1 ### +### printer, by converting them to a bitmap in PostScript format. ### + +ps_=gdevpsim.$(OBJ) + +gdevpsim.$(OBJ): gdevpsim.c $(PDEVH) + +psmono.dev: $(ps_) page.dev + $(SETPDEV) psmono $(ps_) + +psgray.dev: $(ps_) page.dev + $(SETPDEV) psgray $(ps_) + +# Someday there will be RGB and CMYK variants.... + +### -------------------------- SGI RGB pixmaps -------------------------- ### + +sgirgb_=gdevsgi.$(OBJ) + +gdevsgi.$(OBJ): gdevsgi.c $(PDEVH) gdevsgi.h + +sgirgb.dev: $(sgirgb_) page.dev + $(SETPDEV) sgirgb $(sgirgb_) + +### -------------------- Plain or TIFF fax encoding --------------------- ### +### Use -sDEVICE=tiffg3 or tiffg4 and ### +### -r204x98 for low resolution output, or ### +### -r204x196 for high resolution output ### +### These drivers recognize 3 page sizes: letter, A4, and B4. ### + +gdevtifs_h=gdevtifs.h + +tfax_=gdevtfax.$(OBJ) +tfax.dev: $(tfax_) cfe.dev lzwe.dev rle.dev tiffs.dev + $(SETMOD) tfax $(tfax_) + $(ADDMOD) tfax -include cfe lzwe rle tiffs + +gdevtfax.$(OBJ): gdevtfax.c $(PDEVH)\ + $(gdevtifs_h) $(scfx_h) $(slzwx_h) $(srlx_h) $(strimpl_h) + +### Plain G3/G4 fax with no header + +faxg3.dev: tfax.dev + $(SETDEV) faxg3 -include tfax + +faxg32d.dev: tfax.dev + $(SETDEV) faxg32d -include tfax + +faxg4.dev: tfax.dev + $(SETDEV) faxg4 -include tfax + +### ---------------------------- TIFF formats --------------------------- ### + +tiffs_=gdevtifs.$(OBJ) +tiffs.dev: $(tiffs_) page.dev + $(SETMOD) tiffs $(tiffs_) + $(ADDMOD) tiffs -include page + +gdevtifs.$(OBJ): gdevtifs.c $(PDEVH) $(stdio__h) $(time__h) \ + $(gdevtifs_h) $(gscdefs_h) $(gstypes_h) + +# Black & white, G3/G4 fax + +tiffcrle.dev: tfax.dev + $(SETDEV) tiffcrle -include tfax + +tiffg3.dev: tfax.dev + $(SETDEV) tiffg3 -include tfax + +tiffg32d.dev: tfax.dev + $(SETDEV) tiffg32d -include tfax + +tiffg4.dev: tfax.dev + $(SETDEV) tiffg4 -include tfax + +# Black & white, LZW compression + +tifflzw.dev: tfax.dev + $(SETDEV) tifflzw -include tfax + +# Black & white, PackBits compression + +tiffpack.dev: tfax.dev + $(SETDEV) tiffpack -include tfax + +# RGB, no compression + +tiffrgb_=gdevtfnx.$(OBJ) + +tiff12nc.dev: $(tiffrgb_) tiffs.dev + $(SETPDEV) tiff12nc $(tiffrgb_) + $(ADDMOD) tiff12nc -include tiffs + +tiff24nc.dev: $(tiffrgb_) tiffs.dev + $(SETPDEV) tiff24nc $(tiffrgb_) + $(ADDMOD) tiff24nc -include tiffs + +gdevtfnx.$(OBJ): gdevtfnx.c $(PDEVH) $(gdevtifs_h) +# Copyright (C) 1990, 1995, 1996, 1997 Aladdin Enterprises. All rights reserved. +# +# This file is part of Aladdin Ghostscript. +# +# Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND. No author +# or distributor accepts any responsibility for the consequences of using it, +# or for whether it serves any particular purpose or works at all, unless he +# or she says so in writing. Refer to the Aladdin Ghostscript Free Public +# License (the "License") for full details. +# +# Every copy of Aladdin Ghostscript must include a copy of the License, +# normally in a plain ASCII text file named PUBLIC. The License grants you +# the right to copy, modify and redistribute Aladdin Ghostscript, but only +# under certain conditions described in the License. Among other things, the +# License requires that the copyright notice and this notice be preserved on +# all copies. + +# Partial makefile common to all Unix configurations. + +# This is the last part of the makefile for Unix configurations. +# Since Unix make doesn't have an 'include' facility, we concatenate +# the various parts of the makefile together by brute force (in tar_cat). + +# Define the name of this makefile. +UNIXTAIL_MAK=unixtail.mak + +# The following prevents GNU make from constructing argument lists that +# include all environment variables, which can easily be longer than +# brain-damaged system V allows. + +.NOEXPORT: + +# -------------------------------- Library -------------------------------- # + +## The Unix platforms + +# We have to include a test for the existence of sys/time.h, +# because some System V platforms don't have it. + +# Define pipes as a separable feature. + +pipe_=gdevpipe.$(OBJ) +pipe.dev: $(UNIXTAIL_MAK) $(ECHOGS_XE) $(pipe_) + $(SETMOD) pipe $(pipe_) + $(ADDMOD) pipe -iodev pipe + +gdevpipe.$(OBJ): gdevpipe.c $(AK) $(errno__h) $(stdio__h) $(string__h) \ + $(gserror_h) $(gsmemory_h) $(gstypes_h) $(gxiodev_h) $(stream_h) + +# Unix platforms other than System V, and also System V Release 4 +# (SVR4) platforms. +unix__=gp_nofb.$(OBJ) gp_unix.$(OBJ) gp_unifs.$(OBJ) gp_unifn.$(OBJ) +unix_.dev: $(unix__) + $(SETMOD) unix_ $(unix__) + +gp_unix.$(OBJ): gp_unix.c $(AK) $(string__h) $(gx_h) $(gsexit_h) $(gp_h) \ + $(time__h) + +# System V platforms other than SVR4, which lack some system calls, +# but have pipes. +sysv__=gp_nofb.$(OBJ) gp_unix.$(OBJ) gp_unifs.$(OBJ) gp_unifn.$(OBJ) gp_sysv.$(OBJ) +sysv_.dev: $(sysv__) + $(SETMOD) sysv_ $(sysv__) + +gp_sysv.$(OBJ): gp_sysv.c $(stdio__h) $(time__h) $(AK) + +# -------------------------- Auxiliary programs --------------------------- # + +$(ANSI2KNR_XE): ansi2knr.c + $(CCA2K) $(O)$(ANSI2KNR_XE) ansi2knr.c + +$(ECHOGS_XE): echogs.c $(AK) + $(CCAUX) $(O)$(ECHOGS_XE) echogs.c + +# On the RS/6000 (at least), compiling genarch.c with gcc with -O +# produces a buggy executable. +$(GENARCH_XE): genarch.c $(AK) $(stdpre_h) + $(CCAUX) $(O)$(GENARCH_XE) genarch.c + +$(GENCONF_XE): genconf.c $(AK) $(stdpre_h) + $(CCAUX) $(O)$(GENCONF_XE) genconf.c + +$(GENINIT_XE): geninit.c $(AK) $(stdio__h) $(string__h) + $(CCAUX) $(O)$(GENINIT_XE) geninit.c + +# Query the environment to construct gconfig_.h. +# The "else true; is required because Ultrix's implementation of sh -e +# terminates execution of a command if any error occurs, even if the command +# traps the error with ||. +INCLUDE=/usr/include +gconfig_.h: $(UNIXTAIL_MAK) $(ECHOGS_XE) + ./echogs -w gconfig_.h -x 2f2a -s This file was generated automatically. -s -x 2a2f + if ( test -f $(INCLUDE)/dirent.h ); then ./echogs -a gconfig_.h -x 23 define HAVE_DIRENT_H; else true; fi + if ( test -f $(INCLUDE)/ndir.h ); then ./echogs -a gconfig_.h -x 23 define HAVE_NDIR_H; else true; fi + if ( test -f $(INCLUDE)/sys/dir.h ); then ./echogs -a gconfig_.h -x 23 define HAVE_SYS_DIR_H; else true; fi + if ( test -f $(INCLUDE)/sys/ndir.h ); then ./echogs -a gconfig_.h -x 23 define HAVE_SYS_NDIR_H; else true; fi + if ( test -f $(INCLUDE)/sys/time.h ); then ./echogs -a gconfig_.h -x 23 define HAVE_SYS_TIME_H; else true; fi + if ( test -f $(INCLUDE)/sys/times.h ); then ./echogs -a gconfig_.h -x 23 define HAVE_SYS_TIMES_H; else true; fi + +# ----------------------------- Main program ------------------------------ # + +### Library files and archive + +LIB_ARCHIVE_ALL=$(LIB_ALL) $(DEVS_ALL)\ + gsnogc.$(OBJ) gconfig.$(OBJ) gscdefs.$(OBJ) + +# Build an archive for the library only. +# This is not used in a standard build. +GSLIB_A=$(GS)lib.a +$(GSLIB_A): $(LIB_ARCHIVE_ALL) + rm -f $(GSLIB_A) + $(AR) $(ARFLAGS) $(GSLIB_A) $(LIB_ARCHIVE_ALL) + $(RANLIB) $(GSLIB_A) + +### Interpreter main program + +INT_ARCHIVE_ALL=imainarg.$(OBJ) imain.$(OBJ) $(INT_ALL) $(DEVS_ALL)\ + gconfig.$(OBJ) gscdefs.$(OBJ) +XE_ALL=gs.$(OBJ) $(INT_ARCHIVE_ALL) + +# Build a library archive for the entire interpreter. +# This is not used in a standard build. +GS_A=$(GS).a +$(GS_A): $(INT_ARCHIVE_ALL) + rm -f $(GS_A) + $(AR) $(ARFLAGS) $(GS_A) $(INT_ARCHIVE_ALL) + $(RANLIB) $(GS_A) + +# Here is the final link step. The stuff with LD_RUN_PATH is for SVR4 +# systems with dynamic library loading; I believe it's harmless elsewhere. +# The resetting of the environment variables to empty strings is for SCO Unix, +# which has limited environment space. +$(GS_XE): ld.tr echogs $(XE_ALL) + ./echogs -w ldt.tr -n - $(CCLD) $(LDFLAGS) $(XLIBDIRS) -o $(GS_XE) + ./echogs -a ldt.tr -n -s gs.$(OBJ) -s + cat ld.tr >>ldt.tr + ./echogs -a ldt.tr -s - $(EXTRALIBS) -lm + LD_RUN_PATH=$(XLIBDIR); export LD_RUN_PATH; \ + XCFLAGS= XINCLUDE= XLDFLAGS= XLIBDIRS= XLIBS= \ + FEATURE_DEVS= DEVICE_DEVS= DEVICE_DEVS1= DEVICE_DEVS2= DEVICE_DEVS3= \ + DEVICE_DEVS4= DEVICE_DEVS5= DEVICE_DEVS6= DEVICE_DEVS7= DEVICE_DEVS8= \ + DEVICE_DEVS9= DEVICE_DEVS10= DEVICE_DEVS11= DEVICE_DEVS12= \ + DEVICE_DEVS13= DEVICE_DEVS14= DEVICE_DEVS15= \ + $(SH) <ldt.tr +# Copyright (C) 1994, 1995, 1996, 1997 Aladdin Enterprises. All rights reserved. +# +# This file is part of Aladdin Ghostscript. +# +# Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND. No author +# or distributor accepts any responsibility for the consequences of using it, +# or for whether it serves any particular purpose or works at all, unless he +# or she says so in writing. Refer to the Aladdin Ghostscript Free Public +# License (the "License") for full details. +# +# Every copy of Aladdin Ghostscript must include a copy of the License, +# normally in a plain ASCII text file named PUBLIC. The License grants you +# the right to copy, modify and redistribute Aladdin Ghostscript, but only +# under certain conditions described in the License. Among other things, the +# License requires that the copyright notice and this notice be preserved on +# all copies. + +# Partial makefile common to all Unix and Desqview/X configurations. + +# This is the very last part of the makefile for these configurations. +# Since Unix make doesn't have an 'include' facility, we concatenate +# the various parts of the makefile together by brute force (in tar_cat). + +# Define a rule for building profiling configurations. +pg: + make GENOPT='' CFLAGS='-pg -O $(GCFLAGS) $(XCFLAGS)' LDFLAGS='$(XLDFLAGS) -pg' XLIBS='Xt SM ICE Xext X11' CCLEAF='$(CCC)' + +# Define a rule for building debugging configurations. +debug: + make GENOPT='-DDEBUG' CFLAGS='-g -O $(GCFLAGS) $(XCFLAGS)' + +# The rule for gconfigv.h is here because it is shared between Unix and +# DV/X environments. +gconfigv.h: unix-end.mak $(MAKEFILE) $(ECHOGS_XE) + $(EXP)echogs -w gconfigv.h -x 23 define USE_ASM -x 2028 -q $(USE_ASM)-0 -x 29 + $(EXP)echogs -a gconfigv.h -x 23 define USE_FPU -x 2028 -q $(FPU_TYPE)-0 -x 29 + $(EXP)echogs -a gconfigv.h -x 23 define EXTEND_NAMES 0$(EXTEND_NAMES) + +# The following rules are equivalent to what tar_cat does. +# The rm -f is so that we don't overwrite a file that `make' +# may currently be reading from. +GENERIC_MAK_LIST=$(GS_MAK) $(LIB_MAK) $(INT_MAK) $(JPEG_MAK) $(LIBPNG_MAK) $(ZLIB_MAK) $(DEVS_MAK) +UNIX_MAK_LIST=dvx-gcc.mak unixansi.mak unix-cc.mak unix-gcc.mak + +unix.mak: $(UNIX_MAK_LIST) + +DVX_GCC_MAK=$(VERSION_MAK) dgc-head.mak dvx-head.mak $(GENERIC_MAK_LIST) dvx-tail.mak unix-end.mak +dvx-gcc.mak: $(DVX_GCC_MAK) + rm -f dvx-gcc.mak + $(CAT) $(DVX_GCC_MAK) >dvx-gcc.mak + +UNIXANSI_MAK=$(VERSION_MAK) ansihead.mak unixhead.mak $(GENERIC_MAK_LIST) unixtail.mak unix-end.mak +unixansi.mak: $(UNIXANSI_MAK) + rm -f unixansi.mak + $(CAT) $(UNIXANSI_MAK) >unixansi.mak + +UNIX_CC_MAK=$(VERSION_MAK) cc-head.mak unixhead.mak $(GENERIC_MAK_LIST) unixtail.mak unix-end.mak +unix-cc.mak: $(UNIX_CC_MAK) + rm -f unix-cc.mak + $(CAT) $(UNIX_CC_MAK) >unix-cc.mak + +UNIX_GCC_MAK=$(VERSION_MAK) gcc-head.mak unixhead.mak $(GENERIC_MAK_LIST) unixtail.mak unix-end.mak +unix-gcc.mak: $(UNIX_GCC_MAK) + rm -f unix-gcc.mak + $(CAT) $(UNIX_GCC_MAK) >unix-gcc.mak + +# Installation + +TAGS: + etags -t *.c *.h + +install: install-exec install-scripts install-data + +# The sh -c in the rules below is required because Ultrix's implementation +# of sh -e terminates execution of a command if any error occurs, even if +# the command traps the error with ||. + +install-exec: $(GS) + -mkdir $(bindir) + $(INSTALL_PROGRAM) $(GS) $(bindir)/$(GS) + +install-scripts: gsnd + -mkdir $(scriptdir) + sh -c 'for f in gsbj gsdj gsdj500 gslj gslp gsnd bdftops font2c \ +pdf2dsc pdf2ps printafm ps2ascii ps2epsi ps2pdf wftopfa ;\ + do if ( test -f $$f ); then $(INSTALL_PROGRAM) $$f $(scriptdir)/$$f; fi;\ + done' + +MAN1_PAGES=gs pdf2dsc pdf2ps ps2ascii ps2epsi ps2pdf +install-data: gs.1 + -mkdir $(mandir) + -mkdir $(man1dir) + sh -c 'for f in $(MAN1_PAGES) ;\ + do if ( test -f $$f.1 ); then $(INSTALL_DATA) $$f.1 $(man1dir)/$$f.$(man1ext); fi;\ + done' + -mkdir $(datadir) + -mkdir $(gsdir) + -mkdir $(gsdatadir) + sh -c 'for f in Fontmap \ +cbjc600.ppd cbjc800.ppd *.upp \ +gs_init.ps gs_btokn.ps gs_ccfnt.ps gs_cff.ps gs_cidfn.ps gs_cmap.ps \ +gs_diskf.ps gs_dpnxt.ps gs_dps.ps gs_dps1.ps gs_dps2.ps gs_epsf.ps \ +gs_fonts.ps gs_kanji.ps gs_lev2.ps \ +gs_pfile.ps gs_res.ps gs_setpd.ps gs_statd.ps \ +gs_ttf.ps gs_typ42.ps gs_type1.ps \ +gs_dbt_e.ps gs_iso_e.ps gs_ksb_e.ps gs_std_e.ps gs_sym_e.ps \ +acctest.ps align.ps bdftops.ps caption.ps decrypt.ps docie.ps \ +font2c.ps gslp.ps impath.ps landscap.ps level1.ps lines.ps \ +markhint.ps markpath.ps \ +packfile.ps pcharstr.ps pfbtogs.ps ppath.ps prfont.ps printafm.ps \ +ps2ai.ps ps2ascii.ps ps2epsi.ps ps2image.ps \ +quit.ps showchar.ps showpage.ps stcinfo.ps stcolor.ps \ +traceimg.ps traceop.ps type1enc.ps type1ops.ps uninfo.ps unprot.ps \ +viewcmyk.ps viewgif.ps viewjpeg.ps viewpcx.ps viewpbm.ps viewps2a.ps \ +winmaps.ps wftopfa.ps wrfont.ps zeroline.ps \ +gs_l2img.ps gs_pdf.ps \ +pdf2dsc.ps \ +pdf_base.ps pdf_draw.ps pdf_font.ps pdf_main.ps pdf_sec.ps pdf_2ps.ps \ +gs_mex_e.ps gs_mro_e.ps gs_pdf_e.ps gs_wan_e.ps \ +gs_pdfwr.ps ;\ + do if ( test -f $$f ); then $(INSTALL_DATA) $$f $(gsdatadir)/$$f; fi;\ + done' + -mkdir $(docdir) + sh -c 'for f in COPYING NEWS PUBLIC README \ +bug-form.txt c-style.txt current.txt devices.txt drivers.txt fonts.txt \ +helpers.txt hershey.txt history1.txt history2.txt history3.txt humor.txt \ +install.txt language.txt lib.txt make.txt new-user.txt \ +ps2epsi.txt ps2pdf.txt psfiles.txt public.txt \ +unix-lpr.txt use.txt xfonts.txt ;\ + do if ( test -f $$f ); then $(INSTALL_DATA) $$f $(docdir)/$$f; fi;\ + done' + -mkdir $(exdir) + for f in alphabet.ps chess.ps cheq.ps colorcir.ps escher.ps golfer.ps \ +grayalph.ps snowflak.ps tiger.ps waterfal.ps \ +ridt91.eps ;\ + do $(INSTALL_DATA) $$f $(exdir)/$$f ;\ + done |