Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#    Copyright (C) 1997, 2000 Aladdin Enterprises.  All rights reserved.
2
# 
3
# This software is provided AS-IS with no warranty, either express or
4
# implied.
5
# 
6
# This software is distributed under license and may not be copied,
7
# modified or distributed except as expressly authorized under the terms
8
# of the license contained in the file LICENSE in this distribution.
9
# 
10
# For more information about licensing, please refer to
11
# http://www.ghostscript.com/licensing/. For information on
12
# commercial licensing, go to http://www.artifex.com/licensing/ or
13
# contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
# San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
 
16
# $Id: unix-gcc.mak,v 1.50 2005/08/31 05:52:32 ray Exp $
17
# makefile for Unix/gcc/X11 configuration.
18
 
19
# ------------------------------- Options ------------------------------- #
20
 
21
####### The following are the only parts of the file you should need to edit.
22
 
23
# Define the directory for the final executable, and the
24
# source, generated intermediate file, and object directories
25
# for the graphics library (GL) and the PostScript/PDF interpreter (PS).
26
 
27
BINDIR=./bin
28
GLSRCDIR=./src
29
GLGENDIR=./obj
30
GLOBJDIR=./obj
31
PSSRCDIR=./src
32
PSLIBDIR=./lib
33
PSGENDIR=./obj
34
PSOBJDIR=./obj
35
 
36
# Do not edit the next group of lines.
37
 
38
#include $(COMMONDIR)/gccdefs.mak
39
#include $(COMMONDIR)/unixdefs.mak
40
#include $(COMMONDIR)/generic.mak
41
include $(GLSRCDIR)/version.mak
42
DD=$(GLGENDIR)/
43
GLD=$(GLGENDIR)/
44
PSD=$(PSGENDIR)/
45
 
46
# ------ Generic options ------ #
47
 
48
# Define the installation commands and target directories for
49
# executables and files.  The commands are only relevant to `make install';
50
# the directories also define the default search path for the
51
# initialization files (gs_*.ps) and the fonts.
52
 
53
INSTALL = $(GLSRCDIR)/instcopy -c
54
INSTALL_PROGRAM = $(INSTALL) -m 755
55
INSTALL_DATA = $(INSTALL) -m 644
56
 
57
prefix = /usr/local
58
exec_prefix = $(prefix)
59
bindir = $(exec_prefix)/bin
60
scriptdir = $(bindir)
61
libdir = $(exec_prefix)/lib
62
mandir = $(prefix)/man
63
man1ext = 1
64
datadir = $(prefix)/share
65
gsdir = $(datadir)/ghostscript
66
gsdatadir = $(gsdir)/$(GS_DOT_VERSION)
67
 
68
docdir=$(gsdatadir)/doc
69
exdir=$(gsdatadir)/examples
70
GS_DOCDIR=$(docdir)
71
 
72
# Define the default directory/ies for the runtime
73
# initialization, resource and font files.  Separate multiple directories with a :.
74
 
75
GS_LIB_DEFAULT=$(gsdatadir)/lib:$(gsdatadir)/Resource:$(gsdir)/fonts
76
 
77
# Define whether or not searching for initialization files should always
78
# look in the current directory first.  This leads to well-known security
79
# and confusion problems, but users insist on it.
80
# NOTE: this also affects searching for files named on the command line:
81
# see the "File searching" section of Use.htm for full details.
82
# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
83
 
84
SEARCH_HERE_FIRST=1
85
 
86
# Define the name of the interpreter initialization file.
87
# (There is no reason to change this.)
88
 
89
GS_INIT=gs_init.ps
90
 
91
# Choose generic configuration options.
92
 
93
# -DDEBUG
94
#	includes debugging features (-Z switch) in the code.
95
#	  Code runs substantially slower even if no debugging switches
96
#	  are set.
97
# -DNOPRIVATE
98
#	makes private (static) procedures and variables public,
99
#	  so they are visible to the debugger and profiler.
100
#	  No execution time or space penalty.
101
 
102
GENOPT=
103
 
104
# Choose capability options.
105
 
106
# -DHAVE_MKSTEMP
107
#	uses mkstemp instead of mktemp
108
#		This gets rid of several security warnings that look
109
#		ominous.  Enable this if you wish to get rid of them.
110
 
111
CAPOPT= -DHAVE_MKSTEMP
112
 
113
# Define the name of the executable file.
114
 
115
GS=gs
116
 
117
# Define the name of a pre-built executable that can be invoked at build
118
# time.  Currently, this is only needed for compiled fonts.  The usual
119
# alternatives are:
120
#   - the standard name of Ghostscript on your system (typically `gs'):
121
BUILD_TIME_GS=gs
122
#   - the name of the executable you are building now.  If you choose this
123
# option, then you must build the executable first without compiled fonts,
124
# and then again with compiled fonts.
125
#BUILD_TIME_GS=$(BINDIR)/$(GS) -I$(PSLIBDIR)
126
 
127
# Define the directories for debugging and profiling binaries, relative to
128
# the standard binaries.
129
 
130
DEBUGRELDIR=../debugobj
131
PGRELDIR=../pgobj
132
 
133
# Define the directory where the IJG JPEG library sources are stored,
134
# and the major version of the library that is stored there.
135
# You may need to change this if the IJG library version changes.
136
# See jpeg.mak for more information.
137
 
138
JSRCDIR=jpeg
139
JVERSION=6
140
 
141
# Note: if a shared library is used, it may not contain the
142
# D_MAX_BLOCKS_IN_MCU patch, and thus may not be able to read
143
# some older JPEG streams that violate the standard. If the JPEG
144
# library built from local sources, the patch will be applied.
145
 
146
SHARE_JPEG=0
147
JPEG_NAME=jpeg
148
 
149
# Define the directory where the PNG library sources are stored,
150
# and the version of the library that is stored there.
151
# You may need to change this if the libpng version changes.
152
# See libpng.mak for more information.
153
 
154
PSRCDIR=libpng
155
PVERSION=10208
156
 
157
# Choose whether to use a shared version of the PNG library, and if so,
158
# what its name is.
159
# See gs.mak and Make.htm for more information.
160
 
161
SHARE_LIBPNG=0
162
LIBPNG_NAME=png
163
 
164
# Define the directory where the zlib sources are stored.
165
# See zlib.mak for more information.
166
 
167
ZSRCDIR=zlib
168
 
169
# Choose whether to use a shared version of the zlib library, and if so,
170
# what its name is (usually libz, but sometimes libgz).
171
# See gs.mak and Make.htm for more information.
172
 
173
SHARE_ZLIB=0
174
#ZLIB_NAME=gz
175
ZLIB_NAME=z
176
 
177
# Choose shared or compiled in libjbig2dec and source location
178
SHARE_JBIG2=0
179
JBIG2SRCDIR=jbig2dec
180
 
181
# Define the directory where the icclib source are stored.
182
# See icclib.mak for more information
183
 
184
ICCSRCDIR=icclib
185
 
186
# Define the directory where the ijs source is stored,
187
# and the process forking method to use for the server.
188
# See ijs.mak for more information.
189
 
190
IJSSRCDIR=ijs
191
IJSEXECTYPE=unix
192
 
193
# Define how to build the library archives.  (These are not used in any
194
# standard configuration.)
195
 
196
AR=ar
197
ARFLAGS=qc
198
RANLIB=ranlib
199
 
200
# ------ Platform-specific options ------ #
201
 
202
# Define the name of the C compiler.
203
 
204
CC=gcc
205
 
206
# Define the name of the linker for the final link step.
207
# Normally this is the same as the C compiler.
208
 
209
CCLD=$(CC)
210
 
211
# Define the default gcc flags.
212
# Note that depending whether or not we are running a version of gcc with
213
# the 2.7.0-2.7.2 optimizer bug, either "-Dconst=" or
214
# "-Wcast-qual -Wwrite-strings" is automatically included.
215
 
216
GCFLAGS=-Wall -Wstrict-prototypes -Wmissing-declarations -Wmissing-prototypes -fno-builtin -fno-common
217
 
218
# Define the added flags for standard, debugging, profiling 
219
# and shared object builds.
220
 
221
CFLAGS_STANDARD=-O2
222
CFLAGS_DEBUG=-g -O0
223
CFLAGS_PROFILE=-pg -O2
224
CFLAGS_SO=-fPIC
225
 
226
# Define the other compilation flags.  Add at most one of the following:
227
#	-DBSD4_2 for 4.2bsd systems.
228
#	-DSYSV for System V or DG/UX.
229
# 	-DSYSV -D__SVR3 for SCO ODT, ISC Unix 2.2 or before,
230
#	   or any System III Unix, or System V release 3-or-older Unix.
231
#	-DSVR4 -DSVR4_0 (not -DSYSV) for System V release 4.0.
232
#	-DSVR4 (not -DSYSV) for System V release 4.2 (or later) and Solaris 2.
233
# XCFLAGS can be set from the command line.
234
# We don't include -ansi, because this gets in the way of the platform-
235
#   specific stuff that <math.h> typically needs; nevertheless, we expect
236
#   gcc to accept ANSI-style function prototypes and function definitions.
237
XCFLAGS=
238
 
239
CFLAGS=$(CFLAGS_STANDARD) $(GCFLAGS) $(XCFLAGS)
240
 
241
# Define platform flags for ld.
242
# SunOS 4.n may need -Bstatic.
243
# Solaris 2.6 (and possibly some other versions) with any of the SHARE_
244
# parameters set to 1 may need
245
#	-R /usr/local/xxx/lib:/usr/local/lib
246
# giving the full path names of the shared library directories.
247
# XLDFLAGS can be set from the command line.
248
XLDFLAGS=
249
 
250
LDFLAGS=$(XLDFLAGS)
251
 
252
# Define any extra libraries to link into the executable.
253
# ISC Unix 2.2 wants -linet.
254
# SCO Unix needs -lsocket if you aren't including the X11 driver.
255
# SVR4 may need -lnsl.
256
# Solaris may need -lnsl -lsocket -lposix4.
257
# (Libraries required by individual drivers are handled automatically.)
258
 
259
EXTRALIBS=
260
 
261
# Define the standard libraries to search at the end of linking.
262
# Most platforms require -lpthread for the POSIX threads library;
263
# on FreeBSD, change -lpthread to -lc_r; BSDI and perhaps some others
264
# include pthreads in libc and don't require any additional library.
265
# All reasonable platforms require -lm, but Rhapsody and perhaps one or
266
# two others fold libm into libc and don't require any additional library.
267
 
268
#STDLIBS=-lpthread -lm
269
 
270
# Since the default build is for nosync, don't include pthread lib
271
STDLIBS=-lm
272
 
273
# Define the include switch(es) for the X11 header files.
274
# This can be null if handled in some other way (e.g., the files are
275
# in /usr/include, or the directory is supplied by an environment variable);
276
# in particular, SCO Xenix, Unix, and ODT just want
277
#XINCLUDE=
278
# Note that x_.h expects to find the header files in $(XINCLUDE)/X11,
279
# not in $(XINCLUDE).
280
 
281
XINCLUDE=-I/usr/X11R6/include
282
 
283
# Define the directory/ies and library names for the X11 library files.
284
# XLIBDIRS is for ld and should include -L; XLIBDIR is for LD_RUN_PATH
285
# (dynamic libraries on SVR4) and should not include -L.
286
# Newer SVR4 systems can use -R in XLIBDIRS rather than setting XLIBDIR.
287
# Both can be null if these files are in the default linker search path;
288
# in particular, SCO Xenix, Unix, and ODT just want
289
#XLIBDIRS=
290
# Solaris and other SVR4 systems with dynamic linking probably want
291
#XLIBDIRS=-L/usr/openwin/lib -R/usr/openwin/lib
292
# X11R6 (on any platform) may need
293
#XLIBS=Xt SM ICE Xext X11
294
 
295
#XLIBDIRS=-L/usr/local/X/lib
296
XLIBDIRS=-L/usr/X11R6/lib
297
XLIBDIR=
298
XLIBS=Xt Xext X11
299
 
300
# Define whether this platform has floating point hardware:
301
#	FPU_TYPE=2 means floating point is faster than fixed point.
302
# (This is the case on some RISCs with multiple instruction dispatch.)
303
#	FPU_TYPE=1 means floating point is at worst only slightly slower
304
# than fixed point.
305
#	FPU_TYPE=0 means that floating point may be considerably slower.
306
#	FPU_TYPE=-1 means that floating point is always much slower than
307
# fixed point.
308
 
309
FPU_TYPE=1
310
 
311
# Define the .dev module that implements thread and synchronization
312
# primitives for this platform.
313
 
314
# If POSIX sync primitives are used, also change the STDLIBS to include
315
# the pthread library.
316
#SYNC=posync
317
 
318
# Default is No sync primitives since some platforms don't have it (HP-UX)
319
SYNC=nosync
320
 
321
# ------ Devices and features ------ #
322
 
323
# Choose the language feature(s) to include.  See gs.mak for details.
324
 
325
FEATURE_DEVS=$(PSD)psl3.dev $(PSD)pdf.dev $(PSD)dpsnext.dev $(PSD)ttfont.dev $(PSD)epsf.dev $(GLD)pipe.dev $(PSD)fapi.dev
326
#FEATURE_DEVS=$(PSD)psl3.dev $(PSD)pdf.dev
327
#FEATURE_DEVS=$(PSD)psl3.dev $(PSD)pdf.dev $(PSD)dpsnext.dev $(PSD)ttfont.dev $(PSD)rasterop.dev $(GLD)pipe.dev
328
# The following is strictly for testing.
329
FEATURE_DEVS_ALL=$(PSD)psl3.dev $(PSD)pdf.dev $(PSD)dpsnext.dev $(PSD)ttfont.dev $(PSD)rasterop.dev $(PSD)double.dev $(PSD)trapping.dev $(PSD)stocht.dev $(GLD)pipe.dev
330
#FEATURE_DEVS=$(FEATURE_DEVS_ALL)
331
 
332
# Choose whether to compile the .ps initialization files into the executable.
333
# See gs.mak for details.
334
 
335
COMPILE_INITS=0
336
 
337
# Choose whether to store band lists on files or in memory.
338
# The choices are 'file' or 'memory'.
339
 
340
BAND_LIST_STORAGE=file
341
 
342
# Choose which compression method to use when storing band lists in memory.
343
# The choices are 'lzw' or 'zlib'.
344
 
345
BAND_LIST_COMPRESSOR=zlib
346
 
347
# Choose the implementation of file I/O: 'stdio', 'fd', or 'both'.
348
# See gs.mak and sfxfd.c for more details.
349
 
350
FILE_IMPLEMENTATION=stdio
351
 
352
# Choose the implementation of stdio: '' for file I/O and 'c' for callouts
353
# See gs.mak and ziodevs.c/ziodevsc.c for more details.
354
 
355
STDIO_IMPLEMENTATION=c
356
 
357
# Override the default device.  This is set to 'display' by 
358
# unix-dll.mak when building a shared object.
359
DISPLAY_DEV=
360
 
361
# Define the name table capacity size of 2^(16+n).
362
# Setting this to a non-zero value will slow down the interpreter.
363
 
364
EXTEND_NAMES=0
365
 
366
# Choose the device(s) to include.  See devs.mak for details,
367
# devs.mak and contrib.mak for the list of available devices.
368
 
369
DEVICE_DEVS=$(DISPLAY_DEV) $(DD)x11.dev $(DD)x11alpha.dev $(DD)x11cmyk.dev $(DD)x11gray2.dev $(DD)x11gray4.dev $(DD)x11mono.dev
370
 
371
#DEVICE_DEVS1=
372
#DEVICE_DEVS2=
373
#DEVICE_DEVS3=
374
#DEVICE_DEVS4=
375
#DEVICE_DEVS5=
376
#DEVICE_DEVS6=
377
#DEVICE_DEVS7=
378
#DEVICE_DEVS8=
379
#DEVICE_DEVS9=
380
#DEVICE_DEVS10=
381
#DEVICE_DEVS11=
382
#DEVICE_DEVS12=
383
#DEVICE_DEVS13=
384
#DEVICE_DEVS14=
385
#DEVICE_DEVS15=
386
#DEVICE_DEVS16=
387
#DEVICE_DEVS17=
388
#DEVICE_DEVS18=
389
#DEVICE_DEVS19=
390
#DEVICE_DEVS20=
391
 
392
DEVICE_DEVS1=$(DD)bmpmono.dev $(DD)bmpgray.dev $(DD)bmpsep1.dev $(DD)bmpsep8.dev $(DD)bmp16.dev $(DD)bmp256.dev $(DD)bmp16m.dev $(DD)bmp32b.dev $(DD)stcolor.dev
393
DEVICE_DEVS2=$(DD)epson.dev $(DD)eps9high.dev $(DD)eps9mid.dev $(DD)epsonc.dev $(DD)ibmpro.dev
394
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 $(DD)lj5mono.dev $(DD)lj5gray.dev
395
DEVICE_DEVS4=$(DD)cdeskjet.dev $(DD)cdjcolor.dev $(DD)cdjmono.dev $(DD)cdj550.dev $(DD)pj.dev $(DD)pjxl.dev $(DD)pjxl300.dev
396
DEVICE_DEVS5=$(DD)uniprint.dev $(DD)ijs.dev
397
DEVICE_DEVS6=$(DD)bj10e.dev $(DD)bj200.dev $(DD)bjc600.dev $(DD)bjc800.dev
398
DEVICE_DEVS7=$(DD)faxg3.dev $(DD)faxg32d.dev $(DD)faxg4.dev
399
DEVICE_DEVS8=$(DD)pcxmono.dev $(DD)pcxgray.dev $(DD)pcx16.dev $(DD)pcx256.dev $(DD)pcx24b.dev $(DD)pcxcmyk.dev
400
DEVICE_DEVS9=$(DD)pbm.dev $(DD)pbmraw.dev $(DD)pgm.dev $(DD)pgmraw.dev $(DD)pgnm.dev $(DD)pgnmraw.dev $(DD)pnm.dev $(DD)pnmraw.dev $(DD)ppm.dev $(DD)ppmraw.dev $(DD)pkm.dev $(DD)pkmraw.dev $(DD)pksm.dev $(DD)pksmraw.dev
401
DEVICE_DEVS10=$(DD)tiffcrle.dev $(DD)tiffg3.dev $(DD)tiffg32d.dev $(DD)tiffg4.dev $(DD)tifflzw.dev $(DD)tiffpack.dev
402
DEVICE_DEVS11=$(DD)tiff12nc.dev $(DD)tiff24nc.dev $(DD)tiffgray.dev $(DD)tiff32nc.dev $(DD)tiffsep.dev
403
DEVICE_DEVS12=$(DD)psmono.dev $(DD)psgray.dev $(DD)psrgb.dev $(DD)bit.dev $(DD)bitrgb.dev $(DD)bitcmyk.dev
404
DEVICE_DEVS13=$(DD)pngmono.dev $(DD)pnggray.dev $(DD)png16.dev $(DD)png256.dev $(DD)png16m.dev $(DD)pngalpha.dev
405
DEVICE_DEVS14=$(DD)jpeg.dev $(DD)jpeggray.dev $(DD)jpegcmyk.dev
406
DEVICE_DEVS15=$(DD)pdfwrite.dev $(DD)pswrite.dev $(DD)ps2write.dev $(DD)epswrite.dev $(DD)pxlmono.dev $(DD)pxlcolor.dev
407
DEVICE_DEVS16=$(DD)bbox.dev
408
 
409
DEVICE_DEVS17=
410
DEVICE_DEVS18=
411
DEVICE_DEVS19=
412
DEVICE_DEVS20=$(DD)cljet5.dev $(DD)cljet5c.dev
413
DEVICE_DEVS21=$(DD)spotcmyk.dev $(DD)devicen.dev $(DD)xcf.dev $(DD)bmpsep1.dev $(DD)bmpsep8.dev $(DD)bmp16m.dev $(DD)bmp32b.dev $(DD)psdcmyk.dev $(DD)psdrgb.dev
414
 
415
# ---------------------------- End of options --------------------------- #
416
 
417
# Define the name of the partial makefile that specifies options --
418
# used in dependencies.
419
 
420
MAKEFILE=$(GLSRCDIR)/unix-gcc.mak
421
TOP_MAKEFILES=$(MAKEFILE) $(GLSRCDIR)/unixhead.mak
422
 
423
# Define the auxiliary programs dependency. There aren't any, but we use
424
# this as a hook to detect whether we're running a version of gcc with
425
# the const optimization bug.
426
 
427
AK=$(GLGENDIR)/cc.tr
428
 
429
# Define the compilation rules and flags.
430
 
431
CCFLAGS=$(GENOPT) $(CAPOPT) $(CFLAGS) -DGX_COLOR_INDEX_TYPE='unsigned long long'
432
CC_=$(CC) `cat $(AK)` $(CCFLAGS)
433
CCAUX=$(CC) `cat $(AK)`
434
# These are the specific warnings we have to turn off to compile those
435
# specific few files that need this.  We may turn off others in the future.
436
CC_NO_WARN=$(CC_) -Wno-cast-qual -Wno-traditional
437
 
438
# ---------------- End of platform-specific section ---------------- #
439
 
440
include $(GLSRCDIR)/unixhead.mak
441
include $(GLSRCDIR)/gs.mak
442
include $(GLSRCDIR)/lib.mak
443
include $(PSSRCDIR)/int.mak
444
include $(PSSRCDIR)/cfonts.mak
445
include $(GLSRCDIR)/jpeg.mak
446
# zlib.mak must precede libpng.mak
447
include $(GLSRCDIR)/zlib.mak
448
include $(GLSRCDIR)/libpng.mak
449
include $(GLSRCDIR)/jbig2.mak
450
include $(GLSRCDIR)/icclib.mak
451
include $(GLSRCDIR)/ijs.mak
452
include $(GLSRCDIR)/devs.mak
453
include $(GLSRCDIR)/contrib.mak
454
include $(GLSRCDIR)/unix-aux.mak
455
include $(GLSRCDIR)/unixlink.mak
456
include $(GLSRCDIR)/unix-dll.mak
457
include $(GLSRCDIR)/unix-end.mak
458
include $(GLSRCDIR)/unixinst.mak
459
 
460
# This has to come last so it won't be taken as the default target.
461
$(AK):
462
	if ( $(CC) --version | egrep "^2\.7\.([01]|2(\.[^1-9]|$$))" >/dev/null ); then echo -Dconst= >$(AK); else echo -Wcast-qual -Wwrite-strings >$(AK); fi
463
 
464
# platform-specific clean-up
465
# this makefile is intended to be hand edited so we don't distribute
466
# the (presumedly modified) version in the top level directory
467
distclean : clean config-clean
468
	-$(RM) Makefile
469
 
470
maintainer-clean : distclean
471
	# nothing special to do
472
 
473