1
# Copyright (C) 2001-2007 Artifex Software, Inc.
4
# This software is provided AS-IS with no warranty, either express or
7
# This software is distributed under license and may not be copied, modified
8
# or distributed except as expressly authorized under the terms of that
9
# license. Refer to licensing information at http://www.artifex.com/
10
# or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
11
# San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
13
# $Id: unixansi.mak 8559 2008-02-29 08:13:08Z ray $
14
# makefile for Unix/ANSI C/X11 configuration.
16
# ------------------------------- Options ------------------------------- #
18
####### The following are the only parts of the file you should need to edit.
20
# Define the directory for the final executable, and the
21
# source, generated intermediate file, and object directories
22
# for the graphics library (GL) and the PostScript/PDF interpreter (PS).
34
# Do not edit the next group of lines.
36
#include $(COMMONDIR)/ansidefs.mak
37
#include $(COMMONDIR)/unixdefs.mak
38
#include $(COMMONDIR)/generic.mak
39
include $(GLSRCDIR)/version.mak
44
# ------ Generic options ------ #
46
# Define the installation commands and target directories for
47
# executables and files. The commands are only relevant to `make install';
48
# the directories also define the default search path for the
49
# initialization files (gs_*.ps) and the fonts.
51
INSTALL = $(GLSRCDIR)/instcopy -c
52
INSTALL_PROGRAM = $(INSTALL) -m 755
53
INSTALL_DATA = $(INSTALL) -m 644
56
exec_prefix = $(prefix)
57
bindir = $(exec_prefix)/bin
59
mandir = $(prefix)/man
61
datadir = $(prefix)/share
62
gsdir = $(datadir)/ghostscript
63
gsdatadir = $(gsdir)/$(GS_DOT_VERSION)
65
docdir=$(gsdatadir)/doc
66
exdir=$(gsdatadir)/examples
69
# Define the default directory/ies for the runtime initialization, resource and
70
# font files. Separate multiple directories with a :.
72
GS_LIB_DEFAULT=$(gsdatadir)/lib:$(gsdatadir)/Resource:$(gsdir)/fonts
74
# Define whether or not searching for initialization files should always
75
# look in the current directory first. This leads to well-known security
76
# and confusion problems, but users insist on it.
77
# NOTE: this also affects searching for files named on the command line:
78
# see the "File searching" section of Use.htm for full details.
79
# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
83
# Define the name of the interpreter initialization file.
84
# (There is no reason to change this.)
88
# Choose generic configuration options.
91
# includes debugging features (-Z switch) in the code.
92
# Code runs substantially slower even if no debugging switches
97
# Define the name of the executable file.
101
# Define the name of a pre-built executable that can be invoked at build
102
# time. Currently, this is only needed for compiled fonts. The usual
104
# - the standard name of Ghostscript on your system (typically `gs'):
106
# - the name of the executable you are building now. If you choose this
107
# option, then you must build the executable first without compiled fonts,
108
# and then again with compiled fonts.
109
#BUILD_TIME_GS=$(BINDIR)/$(GS) -I$(PSLIBDIR)
111
# Define the directories for debugging and profiling binaries, relative to
112
# the standard binaries.
114
DEBUGRELDIR=../debugobj
117
# Define the directory where the IJG JPEG library sources are stored,
118
# and the major version of the library that is stored there.
119
# You may need to change this if the IJG library version changes.
120
# See jpeg.mak for more information.
124
# Note: if a shared library is used, it may not contain the
125
# D_MAX_BLOCKS_IN_MCU patch, and thus may not be able to read
126
# some older JPEG streams that violate the standard. If the JPEG
127
# library built from local sources, the patch will be applied.
132
# Define the directory where the PNG library sources are stored,
133
# and the version of the library that is stored there.
134
# You may need to change this if the libpng version changes.
135
# See libpng.mak for more information.
139
# Choose whether to use a shared version of the PNG library, and if so,
141
# See gs.mak and Make.htm for more information.
146
# Define the directory where the zlib sources are stored.
147
# See zlib.mak for more information.
151
# Choose whether to use a shared version of the zlib library, and if so,
152
# what its name is (usually libz, but sometimes libgz).
153
# See gs.mak and Make.htm for more information.
159
# Choose shared or compiled in libjbig2dec and source location
164
# Define the directory where the icclib source are stored.
165
# See icclib.mak for more information
169
# Define the directory where the ijs source is stored,
170
# and the process forking method to use for the server.
171
# See ijs.mak for more information.
176
# Define the directory where the imdi library source is stored.
177
# See devs.mak for more information
181
# Define how to build the library archives. (These are not used in any
182
# standard configuration.)
188
# ------ Platform-specific options ------ #
190
# Define the name of the C compiler. If the standard compiler for your
191
# platform is ANSI-compatible, leave this line commented out; if not,
192
# uncomment the line and insert the proper definition.
196
# Define the name of the linker for the final link step.
197
# Normally this is the same as the C compiler.
201
# Define the added flags for standard, debugging, and profiling builds.
205
CFLAGS_PROFILE=-pg -O
207
# Define the other compilation flags. Add at most one of the following:
208
# -Aa -w -D_HPUX_SOURCE for the HP 400.
209
# -DBSD4_2 for 4.2bsd systems.
210
# -DSYSV for System V or DG/UX.
211
# -DSVR4 -DSVR4_0 (not -DSYSV) for System V release 4.0.
212
# -DSVR4 (not -DSYSV) for System V release 4.2 (or later) and Solaris 2.
213
# XCFLAGS can be set from the command line.
216
CFLAGS=$(CFLAGS_STANDARD) $(XCFLAGS)
218
# Define platform flags for ld.
219
# SunOS and some others want -X; Ultrix wants -x.
220
# SunOS 4.n may need -Bstatic.
221
# Solaris 2.6 (and possibly some other versions) with any of the SHARE_
222
# parameters set to 1 may need
223
# -R /usr/local/xxx/lib:/usr/local/lib
224
# giving the full path names of the shared library directories.
225
# Apollos running DomainOS don't support -X (and -x has no effect).
226
# XLDFLAGS can be set from the command line.
231
# Define any extra libraries to link into the executable.
232
# ISC Unix 2.2 wants -linet.
233
# SCO Unix needs -lsocket if you aren't including the X11 driver.
234
# SVR4 may need -lnsl.
235
# Solaris may need -lnsl -lsocket -lposix4.
236
# (Libraries required by individual drivers are handled automatically.)
240
# Define the standard libraries to search at the end of linking.
241
# Most platforms require -lpthread for the POSIX threads library;
242
# on FreeBSD, change -lpthread to -lc_r; BSDI and perhaps some others
243
# include pthreads in libc and don't require any additional library.
244
# All reasonable platforms require -lm, but Rhapsody and perhaps one or
245
# two others fold libm into libc and don't require any additional library.
247
#STDLIBS=-lpthread -lm
249
# Since the default build is for nosync, don't include pthread lib
252
# Define the include switch(es) for the X11 header files.
253
# This can be null if handled in some other way (e.g., the files are
254
# in /usr/include, or the directory is supplied by an environment variable);
255
# in particular, SCO Xenix, Unix, and ODT just want
257
# Note that x_.h expects to find the header files in $(XINCLUDE)/X11,
258
# not in $(XINCLUDE).
260
XINCLUDE=-I/usr/X11R6/include
262
# Define the directory/ies and library names for the X11 library files.
263
# XLIBDIRS is for ld and should include -L; XLIBDIR is for LD_RUN_PATH
264
# (dynamic libraries on SVR4) and should not include -L.
265
# Newer SVR4 systems can use -R in XLIBDIRS rather than setting XLIBDIR.
266
# Both can be null if these files are in the default linker search path;
267
# in particular, SCO Xenix, Unix, and ODT just want
269
# Solaris and other SVR4 systems with dynamic linking probably want
270
#XLIBDIRS=-L/usr/openwin/lib -R/usr/openwin/lib
271
# X11R6 (on any platform) may need
272
#XLIBS=Xt SM ICE Xext X11
274
XLIBDIRS=-L/usr/X11R6/lib
278
# Define the .dev module that implements thread and synchronization
279
# primitives for this platform. Don't change this unless you really know
282
# If POSIX sync primitives are used, also change the STDLIBS to include
283
# the pthread library.
286
# Default is No sync primitives since some platforms don't have it (HP-UX)
289
# ------ Devices and features ------ #
291
# Choose the language feature(s) to include. See gs.mak for details.
293
FEATURE_DEVS=$(PSD)psl3.dev $(PSD)pdf.dev $(PSD)dpsnext.dev $(PSD)ttfont.dev $(PSD)epsf.dev $(GLD)pipe.dev $(PSD)fapi.dev
295
# Choose whether to compile the .ps initialization files into the executable.
296
# See gs.mak for details.
300
# Choose whether to store band lists on files or in memory.
301
# The choices are 'file' or 'memory'.
303
BAND_LIST_STORAGE=file
305
# Choose which compression method to use when storing band lists in memory.
306
# The choices are 'lzw' or 'zlib'.
308
BAND_LIST_COMPRESSOR=zlib
310
# Choose the implementation of file I/O: 'stdio', 'fd', or 'both'.
311
# See gs.mak and sfxfd.c for more details.
313
FILE_IMPLEMENTATION=stdio
315
# Choose the implementation of stdio: '' for file I/O and 'c' for callouts
316
# See gs.mak and ziodevs.c/ziodevsc.c for more details.
318
STDIO_IMPLEMENTATION=c
320
# Choose the device(s) to include. See devs.mak for details,
321
# devs.mak and contrib.mak for the list of available devices.
323
DEVICE_DEVS=$(DD)x11.dev $(DD)x11alpha.dev $(DD)x11cmyk.dev $(DD)x11gray2.dev $(DD)x11gray4.dev $(DD)x11mono.dev
326
DEVICE_DEVS3=$(DD)deskjet.dev $(DD)djet500.dev $(DD)laserjet.dev $(DD)ljetplus.dev $(DD)ljet2p.dev $(DD)ljet3.dev $(DD)ljet3d.dev $(DD)ljet4.dev $(DD)ljet4d.dev
327
DEVICE_DEVS4=$(DD)cdeskjet.dev $(DD)cdjcolor.dev $(DD)cdjmono.dev $(DD)cdj550.dev $(DD)pj.dev $(DD)pjxl.dev $(DD)pjxl300.dev
328
DEVICE_DEVS5=$(DD)uniprint.dev
329
DEVICE_DEVS6=$(DD)bj10e.dev $(DD)bj200.dev $(DD)bjc600.dev $(DD)bjc800.dev
330
DEVICE_DEVS7=$(DD)faxg3.dev $(DD)faxg32d.dev $(DD)faxg4.dev
331
DEVICE_DEVS8=$(DD)pcxmono.dev $(DD)pcxgray.dev $(DD)pcx16.dev $(DD)pcx256.dev $(DD)pcx24b.dev $(DD)pcxcmyk.dev
332
DEVICE_DEVS9=$(DD)pbm.dev $(DD)pbmraw.dev $(DD)pgm.dev $(DD)pgmraw.dev $(DD)pgnm.dev $(DD)pgnmraw.dev
333
DEVICE_DEVS10=$(DD)tiffcrle.dev $(DD)tiffg3.dev $(DD)tiffg32d.dev $(DD)tiffg4.dev $(DD)tifflzw.dev $(DD)tiffpack.dev
334
DEVICE_DEVS11=$(DD)tiff12nc.dev $(DD)tiff24nc.dev $(DD)tiffgray.dev $(DD)tiff32nc.dev $(DD)tiffsep.dev
335
DEVICE_DEVS12=$(DD)psmono.dev $(DD)psgray.dev $(DD)psrgb.dev $(DD)bit.dev $(DD)bitrgb.dev $(DD)bitcmyk.dev
336
DEVICE_DEVS13=$(DD)pngmono.dev $(DD)pnggray.dev $(DD)png16.dev $(DD)png256.dev $(DD)png16m.dev $(DD)pngalpha.dev
337
DEVICE_DEVS14=$(DD)jpeg.dev $(DD)jpeggray.dev $(DD)jpegcmyk.dev
338
DEVICE_DEVS15=$(DD)pdfwrite.dev $(DD)pswrite.dev $(DD)ps2write.dev $(DD)epswrite.dev $(DD)txtwrite.dev $(DD)pxlmono.dev $(DD)pxlcolor.dev
339
DEVICE_DEVS16=$(DD)bbox.dev
340
# Overflow from DEVS9
341
DEVICE_DEVS17=$(DD)pnm.dev $(DD)pnmraw.dev $(DD)ppm.dev $(DD)ppmraw.dev $(DD)pkm.dev $(DD)pkmraw.dev $(DD)pksm.dev $(DD)pksmraw.dev $(DD)pamcmyk32.dev
346
# ---------------------------- End of options --------------------------- #
348
# Define the name of the partial makefile that specifies options --
349
# used in dependencies.
351
MAKEFILE=$(GLSRCDIR)/unixansi.mak
352
TOP_MAKEFILES=$(MAKEFILE) $(GLSRCDIR)/unixhead.mak
354
# Define the auxilary program dependency.
358
# Define the compilation rules and flags.
360
# If you system has a 64 bit type you should pass it through
361
# CCFLAGS to improve support for multiple colorants. e.g.:
362
# -DGX_COLOR_INDEX_TYPE='unsigned long long'
363
# or use the autoconf build, which sets this automatically.
364
# If you do not define a 64 bit type, there may be some warnings
365
# about oversize shifts. It's a bug if these are not harmless.
367
CCFLAGS=$(GENOPT) $(CFLAGS)
373
# ---------------- End of platform-specific section ---------------- #
375
include $(GLSRCDIR)/unixhead.mak
376
include $(GLSRCDIR)/gs.mak
377
# psromfs.mak must precede lib.mak
378
include $(GLSRCDIR)/psromfs.mak
379
include $(GLSRCDIR)/lib.mak
380
include $(PSSRCDIR)/int.mak
381
include $(PSSRCDIR)/cfonts.mak
382
include $(GLSRCDIR)/jpeg.mak
383
# zlib.mak must precede libpng.mak
384
include $(GLSRCDIR)/zlib.mak
385
include $(GLSRCDIR)/libpng.mak
386
include $(GLSRCDIR)/jbig2.mak
387
include $(GLSRCDIR)/icclib.mak
388
include $(GLSRCDIR)/ijs.mak
389
include $(GLSRCDIR)/devs.mak
390
include $(GLSRCDIR)/contrib.mak
391
include $(GLSRCDIR)/unix-aux.mak
392
include $(GLSRCDIR)/unixlink.mak
393
include $(GLSRCDIR)/unix-end.mak
394
include $(GLSRCDIR)/unixinst.mak
396
# platform-specific clean-up
397
# this makefile is intended to be hand edited so we don't distribute
398
# the (presumedly modified) version in the top level directory
399
distclean : clean config-clean
402
maintainer-clean : distclean
403
# nothing special to do