Subversion Repositories planix.SVN

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#    Copyright (C) 1989, 1995, 1996, 1997, 1998, 1999, 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: os2.mak,v 1.47 2005/08/31 05:52:32 ray Exp $
17
# makefile for MS-DOS or OS/2 GCC/EMX platform.
18
# Uses Borland (MSDOS) MAKER or 
19
# Uses IBM NMAKE.EXE Version 2.000.000 Mar 27 1992
20
 
21
# ------------------------------- Options ------------------------------- #
22
 
23
###### This section is the only part of the file you should need to edit.
24
 
25
# ------ Generic options ------ #
26
 
27
# Define the directory for the final executable, and the
28
# source, generated intermediate file, and object directories
29
# for the graphics library (GL) and the PostScript/PDF interpreter (PS).
30
 
31
# This makefile has never been tested with any other values than these,
32
# and almost certainly won't work with other values.
33
BINDIR=bin
34
GLSRCDIR=src
35
GLGENDIR=obj
36
GLOBJDIR=obj
37
PSSRCDIR=src
38
PSLIBDIR=lib
39
PSGENDIR=obj
40
PSOBJDIR=obj
41
 
42
# Define the root directory for Ghostscript installation.
43
 
44
AROOTDIR=c:/gs
45
GSROOTDIR=$(AROOTDIR)/gs$(GS_DOT_VERSION)
46
 
47
# Define the directory that will hold documentation at runtime.
48
 
49
GS_DOCDIR=$(GSROOTDIR)/doc
50
 
51
# Define the default directory/ies for the runtime
52
# initialization, resource and font files.  Separate multiple directories with ;.
53
# Use / to indicate directories, not a single \.
54
 
55
GS_LIB_DEFAULT=$(GSROOTDIR)/lib;$(GSROOTDIR)/Resource;$(AROOTDIR)/fonts
56
 
57
# Define whether or not searching for initialization files should always
58
# look in the current directory first.  This leads to well-known security
59
# and confusion problems, but users insist on it.
60
# NOTE: this also affects searching for files named on the command line:
61
# see the "File searching" section of Use.htm for full details.
62
# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
63
 
64
SEARCH_HERE_FIRST=1
65
 
66
# Define the name of the interpreter initialization file.
67
# (There is no reason to change this.)
68
 
69
GS_INIT=gs_init.ps
70
 
71
# Choose generic configuration options.
72
 
73
# Setting DEBUG=1 includes debugging features (-Z switch) in the code.
74
# Code runs substantially slower even if no debugging switches are set,
75
# and also takes about another 25K of memory.
76
 
77
DEBUG=0
78
 
79
# Setting GDEBUG=1 includes symbol table information for GDB.
80
# Produces larger .OBJ and .EXE files.
81
 
82
GDEBUG=0
83
 
84
# Setting NOPRIVATE=1 makes private (static) procedures and variables public,
85
# so they are visible to the debugger and profiler.
86
# No execution time or space penalty, just larger .OBJ and .EXE files.
87
 
88
NOPRIVATE=0
89
 
90
# Setting MAKEDLL=1 makes the target a DLL instead of an EXE
91
MAKEDLL=1
92
 
93
# Setting EMX=1 uses GCC/EMX
94
# Setting IBMCPP=1 uses IBM C++
95
EMX=1
96
IBMCPP=0
97
 
98
# Setting BUILD_X11=1 builds X11 client using Xfree86
99
BUILD_X11=0
100
!if $(BUILD_X11)
101
X11INCLUDE=-I$(X11ROOT)\XFree86\include
102
X11LIBS=$(X11ROOT)\XFree86\lib\Xt.lib $(X11ROOT)\XFree86\lib\X11.lib 
103
MT_OPT=-Zmtd
104
!endif
105
 
106
# Define the name of the executable file.
107
 
108
GS=gsos2
109
GSDLL=gsdll2
110
 
111
# Define the name of a pre-built executable that can be invoked at build
112
# time.  Currently, this is only needed for compiled fonts.  The usual
113
# alternatives are:
114
#   - the standard name of Ghostscript on your system (typically `gs'):
115
BUILD_TIME_GS=gsos2
116
#   - the name of the executable you are building now.  If you choose this
117
# option, then you must build the executable first without compiled fonts,
118
# and then again with compiled fonts.
119
#BUILD_TIME_GS=$(BINDIR)\$(GS) -I$(PSLIBDIR)
120
 
121
# Define the directory where the IJG JPEG library sources are stored,
122
# and the major version of the library that is stored there.
123
# You may need to change this if the IJG library version changes.
124
# See jpeg.mak for more information.
125
 
126
JSRCDIR=jpeg
127
JVERSION=6
128
 
129
# Define the directory where the PNG library sources are stored,
130
# and the version of the library that is stored there.
131
# You may need to change this if the libpng version changes.
132
# See libpng.mak for more information.
133
 
134
PSRCDIR=libpng
135
PVERSION=10208
136
 
137
# Define the directory where the zlib sources are stored.
138
# See zlib.mak for more information.
139
 
140
ZSRCDIR=zlib
141
 
142
# Define the jbig2dec library source location.
143
# See jbig2.mak for more information.
144
 
145
JBIG2SRCDIR=jbig2dec
146
 
147
# Define the directory where the icclib source are stored.
148
# See icclib.mak for more information
149
 
150
ICCSRCDIR=icclib
151
 
152
# IJS has not been ported to OS/2. If you do the port,
153
# you'll need to set these values. You'll also need to
154
# include the ijs.mak makefile (right after icclib.mak).
155
#
156
# Define the directory where the ijs source is stored,
157
# and the process forking method to use for the server.
158
# See ijs.mak for more information.
159
 
160
#IJSSRCDIR=ijs
161
#IJSEXECTYPE=win
162
 
163
# 1 --> Use 64 bits for gx_color_index.  This is required only for
164
# non standard devices or DeviceN process color model devices.
165
USE_LARGE_COLOR_INDEX=1
166
 
167
!if $(USE_LARGE_COLOR_INDEX) == 1
168
# Definitions to force gx_color_index to 64 bits
169
LARGEST_UINTEGER_TYPE=unsigned long long
170
GX_COLOR_INDEX_TYPE=$(LARGEST_UINTEGER_TYPE)
171
GCIFLAGS=-DGX_COLOR_INDEX_TYPE="$(GX_COLOR_INDEX_TYPE)"
172
!else
173
GCIFLAGS=
174
!endif
175
 
176
 
177
# The following is a hack to get around the special treatment of \ at
178
# the end of a line.
179
NUL=
180
DD=$(GLGENDIR)\$(NUL)
181
GLD=$(GLGENDIR)\$(NUL)
182
PSD=$(PSGENDIR)\$(NUL)
183
 
184
 
185
# ------ Platform-specific options ------ #
186
 
187
# If you don't have an assembler, set USE_ASM=0.  Otherwise, set USE_ASM=1,
188
# and set ASM to the name of the assembler you are using.  This can be
189
# a full path name if you want.  Normally it will be masm or tasm.
190
 
191
USE_ASM=0
192
ASM= 
193
 
194
# Define the drive, directory, and compiler name for the EMX files.
195
# COMP is the compiler name (gcc)
196
# COMPDIR contains the compiler and linker (normally \emx\bin).
197
# EMXPATH contains the path to the EMX directory (normally /emx)
198
# INCDIR contains the include files (normally /emx/include).
199
# LIBDIR contains the library files (normally /emx/lib).
200
# Note that these prefixes are always followed by a \,
201
#   so if you want to use the current directory, use an explicit '.'.
202
 
203
!if $(EMX)
204
COMP=gcc $(X11INCLUDE)
205
COMPBASE=\emx
206
EMXPATH=/emx
207
COMPDIR=$(COMPBASE)\bin
208
INCDIR=$(EMXPATH)/include
209
LIBDIR=$(EMXPATH)/lib
210
!if $(PVERSION) >= 10009
211
CPNG=-DPNGAPI=
212
!endif
213
!endif
214
 
215
!if $(IBMCPP)
216
COMP=icc /Q
217
COMPBASE=\ibmcpp
218
TOOLPATH=\toolkit
219
COMPDIR=$(COMPBASE)\bin
220
INCDIR=$(TOOLPATH)\h;$(COMPBASE)\include
221
LIBDIR=$(TOOLPATH)\lib;$(COMPBASE)\lib
222
!endif
223
 
224
# Choose platform-specific options.
225
 
226
# Define the processor (CPU) type.  Options are 86 (8086 or 8088),
227
# 186, 286, 386, 485 (486SX or Cyrix 486SLC), 486 (486DX), or 586 (Pentium).
228
# Higher numbers produce code that may be significantly smaller and faster,
229
# but the executable will bail out with an error message on any processor
230
# less capable than the designated one.
231
 
232
# EMX requires 386 or higher
233
CPU_TYPE=386
234
 
235
# Define the math coprocessor (FPU) type.
236
# Options are -1 (optimize for no FPU), 0 (optimize for FPU present,
237
# but do not require a FPU), 87, 287, or 387.
238
# If CPU_TYPE is 486 or above, FPU_TYPE is implicitly set to 387,
239
# since 486DX and later processors include the equivalent of an 80387 on-chip.
240
# An xx87 option means that the executable will run only if a FPU
241
# of that type (or higher) is available: this is NOT currently checked
242
# at runtime.
243
 
244
FPU_TYPE=387
245
 
246
# Define the .dev module that implements thread and synchronization
247
# primitives for this platform.  Don't change this unless you really know
248
# what you're doing.
249
 
250
SYNC=winsync
251
 
252
# ---------------------------- End of options ---------------------------- #
253
 
254
# Note that built-in libpng and zlib aren't available.
255
 
256
SHARE_JPEG=0
257
SHARE_LIBPNG=0
258
SHARE_ZLIB=0
259
SHARE_JBIG2=0
260
 
261
# Swapping `make' out of memory makes linking much faster.
262
# only used by Borland MAKER.EXE
263
 
264
#.swap
265
 
266
# Define the platform name.
267
 
268
PLATFORM=os2_
269
 
270
# Define the name of the makefile -- used in dependencies.
271
 
272
MAKEFILE=$(PSSRCDIR)\os2.mak
273
TOP_MAKEFILES=$(MAKEFILE)
274
 
275
# Define the files to be deleted by 'make clean'.
276
 
277
BEGINFILES=$(BINDIR)\gspmdrv.exe $(GLOBJDIR)\gspmdrv.o $(GLOBJDIR)\gs*.res $(GLOBJDIR)\gs*.ico $(BINDIR)\$(GSDLL).dll
278
 
279
# Define the auxiliary program dependency. We don't use this.
280
 
281
AK=
282
 
283
#Compiler Optimiser option
284
!if $(EMX)
285
CO=-O
286
!endif
287
!if $(IBMCPP)
288
#CO=/O+
289
CO=/O-
290
!endif
291
 
292
# Make sure we get the right default target for make.
293
 
294
dosdefault: default $(BINDIR)\gspmdrv.exe
295
 
296
# Define a rule for invoking just the preprocessor.
297
 
298
.c.i:
299
	$(COMPDIR)\cpp $(CCFLAGS) $<
300
 
301
# Define the extensions for command, object, and executable files.
302
 
303
# Work around the fact that some `make' programs drop trailing spaces
304
# or interpret == as a special definition operator.
305
NULL=
306
 
307
CMD=.cmd
308
C_=-c
309
D_=-D
310
_D_=$(NULL)=
311
_D=
312
I_=-I
313
II=-I
314
_I=
315
O_=-o $(NULL)
316
!if $(MAKEDLL)
317
OBJ=obj
318
!else
319
OBJ=o
320
!endif
321
Q=
322
XE=.exe
323
XEAUX=.exe
324
 
325
# Define the current directory prefix and shell name.
326
 
327
D=\#
328
 
329
EXP=
330
SH=
331
 
332
# Define generic commands.
333
 
334
# We use cp.cmd rather than copy /B so that we update the write date.
335
CP_=$(GLSRCDIR)\cp.cmd
336
# We use rm.cmd rather than erase because rm.cmd never generates
337
# a non-zero return code.
338
RM_=$(GLSRCDIR)\rm.cmd
339
# OS/2 erase, unlike MS-DOS erase, accepts multiple files or patterns.
340
RMN_=$(GLSRCDIR)\rm.cmd
341
 
342
# Define the arguments for genconf.
343
 
344
!if $(MAKEDLL)
345
CONFILES=-p %%s+
346
!else
347
CONFILES=
348
!endif
349
CONFLDTR=-ol
350
 
351
# Define the generic compilation flags.
352
 
353
!if $(CPU_TYPE) >= 486
354
ASMCPU=/DFOR80386 /DFOR80486
355
PLATOPT=-DFOR80386 -DFOR80486
356
!else
357
!if $(CPU_TYPE) >= 386
358
ASMCPU=/DFOR80386
359
PLATOPT=-DFOR80386
360
!endif
361
!endif
362
 
363
!if $(FPU_TYPE) > 0
364
ASMFPU=/DFORFPU
365
!else
366
ASMFPU=
367
!endif
368
 
369
!if $(USE_ASM)
370
INTASM=iutilasm.$(OBJ)
371
PCFBASM=gdevegaa.$(OBJ)
372
!else
373
INTASM=
374
PCFBASM=
375
!endif
376
 
377
# Define the generic compilation rules.
378
 
379
ASMFLAGS=$(ASMCPU) $(ASMFPU) $(ASMDEBUG)
380
 
381
.asm.o:
382
	$(ASM) $(ASMFLAGS) $<;
383
 
384
# ---------------------- MS-DOS I/O debugging option ---------------------- #
385
 
386
dosio_=$(PSOBJ)zdosio.$(OBJ)
387
dosio.dev: $(PSGEN)dosio.dev
388
	$(NO_OP)
389
 
390
$(PSGEN)dosio.dev: $(dosio_)
391
	$(SETMOD) $(PSGEN)dosio $(dosio_)
392
	$(ADDMOD) $(PSGEN)dosio -oper zdosio
393
 
394
$(PSOBJ)zdosio.$(OBJ): $(PSSRC)zdosio.c $(OP) $(store_h)
395
	$(PSCC) $(PSO_)zdosio.$(OBJ) $(C_) $(PSSRC)zdosio.c
396
 
397
# ----------------------------- Assembly code ----------------------------- #
398
 
399
$(PSOBJ)iutilasm.$(OBJ): $(PSSRC)iutilasm.asm
400
 
401
#################  END
402
 
403
# Define the compilation flags.
404
 
405
!if $(NOPRIVATE)
406
CP=-DNOPRIVATE
407
!else
408
CP=
409
!endif
410
 
411
!if $(DEBUG)
412
CD=-DDEBUG
413
!else
414
CD=
415
!endif
416
 
417
!if $(GDEBUG)
418
!if $(EMX)
419
CGDB=-g
420
!endif
421
!if $(IBMCPP)
422
CGDB=/Ti+
423
!endif
424
!else
425
CGDB=
426
!endif
427
 
428
!if $(MAKEDLL)
429
!if $(EMX)
430
CDLL=-Zdll -Zso -Zsys -Zomf $(MT_OPT) -D__DLL__
431
!endif
432
!if $(IBMCPP)
433
CDLL=/Gd- /Ge- /Gm+ /Gs+ /D__DLL__
434
!endif
435
!else
436
CDLL=
437
!endif
438
 
439
!if $(EMX)
440
CEXE=-Zomf
441
!endif
442
 
443
GENOPT=$(CP) $(CD) $(CGDB) $(CDLL) $(CO) $(CPNG)
444
 
445
CCFLAGS0=$(GENOPT) $(PLATOPT) -D__OS2__ $(GCIFLAGS)
446
CCFLAGS=$(CCFLAGS0) 
447
CC=$(COMPDIR)\$(COMP) $(CCFLAGS0)
448
CC_=$(CC)
449
CC_D=$(CC) $(CO)
450
CC_INT=$(CC)
451
CC_NO_WARN=$(CC_)
452
 
453
# ------ Devices and features ------ #
454
 
455
# Choose the language feature(s) to include.  See gs.mak for details.
456
# Since we have a large address space, we include some optional features.
457
 
458
FEATURE_DEVS=$(PSD)psl3.dev $(PSD)pdf.dev $(PSD)dpsnext.dev $(PSD)ttfont.dev $(PSD)epsf.dev $(PSD)os2print.dev
459
 
460
# Choose whether to compile the .ps initialization files into the executable.
461
# See gs.mak for details.
462
 
463
COMPILE_INITS=0
464
 
465
# Choose whether to store band lists on files or in memory.
466
# The choices are 'file' or 'memory'.
467
 
468
BAND_LIST_STORAGE=file
469
 
470
# Choose which compression method to use when storing band lists in memory.
471
# The choices are 'lzw' or 'zlib'.
472
 
473
BAND_LIST_COMPRESSOR=zlib
474
 
475
# Choose the implementation of file I/O: 'stdio', 'fd', or 'both'.
476
# See gs.mak and sfxfd.c for more details.
477
 
478
FILE_IMPLEMENTATION=stdio
479
 
480
# Choose the implementation of stdio: '' for file I/O and 'c' for callouts
481
# See gs.mak and ziodevs.c/ziodevsc.c for more details.
482
 
483
STDIO_IMPLEMENTATION=c
484
 
485
# Choose the device(s) to include.  See devs.mak for details,
486
# devs.mak, pcwin.mak, and contrib.mak for the list of available devices.
487
 
488
!if $(MAKEDLL)
489
DEVICE_DEVS=$(DD)display.dev $(DD)os2pm.dev $(DD)os2dll.dev $(DD)os2prn.dev
490
!else
491
DEVICE_DEVS=$(DD)os2pm.dev
492
!endif
493
!if $(BUILD_X11)
494
DEVICE_DEVS1=$(DD)x11.dev $(DD)x11alpha.dev $(DD)x11cmyk.dev $(DD)x11gray2.dev $(DD)x11gray4.dev $(DD)x11mono.dev
495
!else
496
DEVICE_DEVS1=
497
!endif
498
DEVICE_DEVS2=$(DD)epson.dev $(DD)eps9high.dev $(DD)eps9mid.dev $(DD)epsonc.dev $(DD)ibmpro.dev
499
DEVICE_DEVS3=$(DD)deskjet.dev $(DD)djet500.dev $(DD)laserjet.dev $(DD)ljetplus.dev $(DD)ljet2p.dev
500
DEVICE_DEVS4=$(DD)cdeskjet.dev $(DD)cdjcolor.dev $(DD)cdjmono.dev $(DD)cdj550.dev
501
DEVICE_DEVS5=$(DD)uniprint.dev $(DD)djet500c.dev $(DD)declj250.dev $(DD)lj250.dev
502
DEVICE_DEVS6=$(DD)st800.dev $(DD)stcolor.dev $(DD)bj10e.dev $(DD)bj200.dev
503
DEVICE_DEVS7=$(DD)t4693d2.dev $(DD)t4693d4.dev $(DD)t4693d8.dev $(DD)tek4696.dev
504
DEVICE_DEVS8=$(DD)pcxmono.dev $(DD)pcxgray.dev $(DD)pcx16.dev $(DD)pcx256.dev $(DD)pcx24b.dev $(DD)pcxcmyk.dev
505
DEVICE_DEVS9=$(DD)pbm.dev $(DD)pbmraw.dev $(DD)pgm.dev $(DD)pgmraw.dev $(DD)pgnm.dev $(DD)pgnmraw.dev $(DD)pkmraw.dev
506
DEVICE_DEVS10=$(DD)tiffcrle.dev $(DD)tiffg3.dev $(DD)tiffg32d.dev $(DD)tiffg4.dev $(DD)tifflzw.dev $(DD)tiffpack.dev
507
DEVICE_DEVS11=$(DD)bmpmono.dev $(DD)bmpgray.dev $(DD)bmp16.dev $(DD)bmp256.dev $(DD)bmp16m.dev $(DD)tiff12nc.dev $(DD)tiff24nc.dev $(DD)tiffgray.dev $(DD)tiff32nc.dev $(DD)tiffsep.dev
508
DEVICE_DEVS12=$(DD)psmono.dev $(DD)bit.dev $(DD)bitrgb.dev $(DD)bitcmyk.dev
509
DEVICE_DEVS13=$(DD)pngmono.dev $(DD)pnggray.dev $(DD)png16.dev $(DD)png256.dev $(DD)png16m.dev $(DD)pngalpha.dev
510
DEVICE_DEVS14=$(DD)jpeg.dev $(DD)jpeggray.dev $(DD)jpegcmyk.dev
511
DEVICE_DEVS15=$(DD)pdfwrite.dev $(DD)pswrite.dev $(DD)ps2write.dev $(DD)epswrite.dev $(DD)pxlmono.dev $(DD)pxlcolor.dev
512
DEVICE_DEVS16=$(DD)bbox.dev
513
# Overflow for DEVS3,4,5,6,9
514
DEVICE_DEVS17=$(DD)ljet3.dev $(DD)ljet3d.dev $(DD)ljet4.dev $(DD)ljet4d.dev 
515
DEVICE_DEVS18=$(DD)pj.dev $(DD)pjxl.dev $(DD)pjxl300.dev $(DD)jetp3852.dev $(DD)r4081.dev
516
DEVICE_DEVS19=$(DD)lbp8.dev $(DD)m8510.dev $(DD)necp6.dev $(DD)bjc600.dev $(DD)bjc800.dev
517
DEVICE_DEVS20=$(DD)pnm.dev $(DD)pnmraw.dev $(DD)ppm.dev $(DD)ppmraw.dev
518
DEVICE_DEVS21= $(DD)spotcmyk.dev $(DD)devicen.dev $(DD)bmpsep1.dev $(DD)bmpsep8.dev $(DD)bmp16m.dev $(DD)bmp32b.dev $(DD)psdcmyk.dev $(DD)psdrgb.dev
519
 
520
# Include the generic makefiles.
521
!include "$(GLSRCDIR)\version.mak"
522
!include "$(GLSRCDIR)\gs.mak"
523
!include "$(GLSRCDIR)\lib.mak"
524
!include "$(GLSRCDIR)\jpeg.mak"
525
# zlib.mak must precede libpng.mak
526
!include "$(GLSRCDIR)\zlib.mak"
527
!include "$(GLSRCDIR)\libpng.mak"
528
!include "$(GLSRCDIR)\jbig2.mak"
529
!include "$(GLSRCDIR)\icclib.mak"
530
!include "$(GLSRCDIR)\devs.mak"
531
!include "$(GLSRCDIR)\pcwin.mak"
532
!include "$(GLSRCDIR)\contrib.mak"
533
!include "$(PSSRCDIR)\int.mak"
534
!include "$(PSSRCDIR)\cfonts.mak"
535
 
536
# -------------------------------- Library -------------------------------- #
537
 
538
# The GCC/EMX platform
539
 
540
os2__=$(GLOBJ)gp_getnv.$(OBJ) $(GLOBJ)gp_os2.$(OBJ) $(GLOBJ)gp_stdia.$(OBJ)
541
$(GLGEN)os2_.dev: $(os2__) $(GLD)nosync.dev
542
	$(SETMOD) $(GLGEN)os2_ $(os2__) -include $(GLD)nosync
543
 
544
$(GLOBJ)gp_os2.$(OBJ): $(GLSRC)gp_os2.c $(GLSRC)gp_os2.h\
545
 $(dos__h) $(pipe__h) $(string__h) $(time__h)\
546
 $(gsdll_h) $(gx_h) $(gsexit_h) $(gsutil_h) $(gp_h) $(gpmisc_h)
547
	$(GLCC) $(GLO_)gp_os2.$(OBJ) $(C_) $(GLSRC)gp_os2.c
548
 
549
$(GLOBJ)gp_stdia.$(OBJ): $(GLSRC)gp_stdia.c $(AK)\
550
  $(stdio__h) $(time__h) $(unistd__h) $(gx_h) $(gp_h)
551
	$(GLCC) $(GLO_)gp_stdia.$(OBJ) $(C_) $(GLSRC)gp_stdia.c
552
 
553
# Define OS/2 printer (file system) as a separable feature.
554
 
555
os2print_=$(GLOBJ)gp_os2pr.$(OBJ)
556
$(GLD)os2print.dev: $(ECHOGS_XE) $(os2print_)
557
	$(SETMOD) $(GLD)os2print $(os2print_)
558
	$(ADDMOD) $(GLD)os2print -iodev printer
559
 
560
$(GLOBJ)gp_os2pr.$(OBJ): $(GLSRC)gp_os2pr.c $(GLSRC)gp_os2.h $(AK)\
561
 $(ctype__h) $(errno__h) $(stdio__h) $(string__h)\
562
 $(gserror_h) $(gsmemory_h) $(gstypes_h) $(gxiodev_h)
563
	$(GLCC) $(GLO_)gp_os2pr.$(OBJ) $(C_) $(GLSRC)gp_os2pr.c
564
 
565
 
566
# -------------------------- Auxiliary programs --------------------------- #
567
 
568
#CCAUX=$(COMPDIR)\$(COMP) $(CO)
569
# emx 0.9d (gcc 2.8.1) crashes when compiling genarch.c with optimizer
570
CCAUX=$(COMPDIR)\$(COMP)
571
 
572
$(ECHOGS_XE): $(GLSRCDIR)\echogs.c
573
!if $(EMX)
574
	$(CCAUX) -o $(AUXGEN)echogs $(GLSRCDIR)\echogs.c
575
	$(COMPDIR)\emxbind $(EMXPATH)/bin/emxl.exe $(AUXGEN)echogs $(ECHOGS_XE)
576
	del $(AUXGEN)echogs
577
!endif
578
!if $(IBMCPP)
579
	$(CCAUX) /Fe$(ECHOGS_XE) $(GLSRCDIR)\echogs.c
580
!endif
581
 
582
$(GENARCH_XE): $(GLSRCDIR)\genarch.c $(GENARCH_DEPS)
583
	-mkdir $(GLGENDIR)
584
	-mkdir $(BINDIR)
585
!if $(EMX)
586
	$(CCAUX) -DHAVE_LONG_LONG -o $(AUXGEN)genarch $(GLSRCDIR)\genarch.c
587
	$(COMPDIR)\emxbind $(EMXPATH)/bin/emxl.exe $(AUXGEN)genarch $(GENARCH_XE)
588
	del $(AUXGEN)genarch
589
!endif
590
!if $(IBMCPP)
591
	$(CCAUX) /Fe$(GENARCH_XE) $(GLSRCDIR)\genarch.c
592
!endif
593
 
594
$(GENCONF_XE): $(GLSRCDIR)\genconf.c $(GENCONF_DEPS)
595
!if $(EMX)
596
	$(CCAUX) -o $(AUXGEN)genconf $(GLSRCDIR)\genconf.c
597
	$(COMPDIR)\emxbind $(EMXPATH)/bin/emxl.exe $(AUXGEN)genconf $(GENCONF_XE)
598
	del $(AUXGEN)genconf
599
!endif
600
!if $(IBMCPP)
601
	$(CCAUX) /Fe$(GENCONF_XE) $(GLSRCDIR)\genconf.c
602
!endif
603
 
604
$(GENDEV_XE): $(GLSRCDIR)\gendev.c $(GENDEV_DEPS)
605
!if $(EMX)
606
	$(CCAUX) -o $(AUXGEN)gendev $(GLSRCDIR)\gendev.c
607
	$(COMPDIR)\emxbind $(EMXPATH)/bin/emxl.exe $(AUXGEN)gendev $(GENDEV_XE)
608
	del $(AUXGEN)gendev
609
!endif
610
!if $(IBMCPP)
611
	$(CCAUX) /Fe$(GENDEV_XE) $(GLSRCDIR)\gendev.c
612
!endif
613
 
614
$(GENHT_XE): $(PSSRC)genht.c $(GENHT_DEPS)
615
!if $(EMX)
616
	$(CCAUX) -o $(AUXGEN)genht $(GENHT_CFLAGS) $(PSSRC)genht.c
617
	$(COMPDIR)\emxbind $(EMXPATH)/bin/emxl.exe $(AUXGEN)genht $(GENHT_XE)
618
	del $(AUXGEN)genht
619
!endif
620
!if $(IBMCPP)
621
	$(CCAUX) /Fe$(GENHT_XE) genht.c
622
!endif
623
 
624
$(GENINIT_XE): $(PSSRC)geninit.c $(GENINIT_DEPS)
625
!if $(EMX)
626
	$(CCAUX) -o $(AUXGEN)geninit $(PSSRC)geninit.c
627
	$(COMPDIR)\emxbind $(EMXPATH)/bin/emxl.exe $(AUXGEN)geninit $(GENINIT_XE)
628
	del $(AUXGEN)geninit
629
!endif
630
!if $(IBMCPP)
631
	$(CCAUX) /Fe$(GENINIT_XE) geninit.c
632
!endif
633
 
634
# No special gconfig_.h is needed.
635
$(gconfig__h): $(TOP_MAKEFILES) $(ECHOGS_XE)
636
	$(ECHOGS_XE) -w $(gconfig__h) /* This file deliberately left blank. */
637
 
638
$(gconfigv_h): $(PSSRCDIR)\os2.mak $(TOP_MAKEFILES) $(ECHOGS_XE)
639
	$(ECHOGS_XE) -w $(gconfigv_h) -x 23 define USE_ASM -x 2028 -q $(USE_ASM)-0 -x 29
640
	$(ECHOGS_XE) -a $(gconfigv_h) -x 23 define USE_FPU -x 2028 -q $(FPU_TYPE)-0 -x 29
641
	$(ECHOGS_XE) -a $(gconfigv_h) -x 23 define EXTEND_NAMES 0$(EXTEND_NAMES)
642
	$(ECHOGS_XE) -a $(gconfigv_h) -x 23 define SYSTEM_CONSTANTS_ARE_WRITABLE 0$(SYSTEM_CONSTANTS_ARE_WRITABLE)
643
 
644
# ----------------------------- Main program ------------------------------ #
645
 
646
gsdllos2_h=$(GLSRC)gsdllos2.h
647
 
648
# Interpreter main program
649
 
650
ICONS=$(PSOBJ)gsos2.ico $(GLOBJ)gspmdrv.ico
651
 
652
$(PSOBJ)dpmain.$(OBJ): $(PSSRC)dpmain.c $(AK)\
653
 $(gdevdsp_h) $(iapi_h) $(gscdefs_h) $(ierrors_h)
654
	$(CC) $(CEXE) -I$(PSSRCDIR) -I$(GLSRCDIR) -I$(GLGENDIR) $(PSO_)dpmain.$(OBJ) $(C_) $(PSSRC)dpmain.c
655
 
656
!if $(MAKEDLL)
657
#making a DLL
658
GS_ALL=$(PSOBJ)gsdll.$(OBJ) $(INT_ALL) $(INTASM)\
659
  $(LIB_ALL) $(LIBCTR) $(ld_tr) $(PSOBJ)$(GS).res $(ICONS)
660
 
661
$(GS_XE): $(BINDIR)\$(GSDLL).dll $(PSSRC)dpmain.c $(gsdll_h) $(gsdllos2_h) $(PSSRC)gsos2.rc $(GLOBJ)gscdefs.$(OBJ)
662
!if $(EMX)
663
	$(COMPDIR)\$(COMP) $(CGDB) $(CO) -Zomf $(MT_OPT) -I$(PSSRCDIR) -I$(GLSRCDIR) -I$(PSOBJDIR) -I$(GLOBJDIR) -o$(GS_XE) $(PSSRC)dpmain.c $(GLOBJ)gscdefs.$(OBJ) $(PSSRC)gsos2.def
664
!endif
665
!if $(IBMCPP)
666
	$(CCAUX) -I$(PSSRCDIR) -I$(GLSRCDIR) -I$(PSOBJDIR) -I$(GLOBJDIR) /Fe$(GX_XE) $(PSSRC)dpmain.c $(GLOBJ)gscdefs.$(OBJ)
667
!endif
668
	rc $(PSOBJ)$(GS).res $(GS_XE)
669
 
670
$(PSOBJ)gsdll.$(OBJ): $(PSSRC)gsdll.c $(gsdll_h) $(ghost_h) $(gscdefs_h)
671
	$(PSCC) $(PSO_)gsdll.$(OBJ) $(C_) $(PSSRC)gsdll.c
672
 
673
$(BINDIR)\$(GSDLL).dll: $(GS_ALL) $(ALL_DEVS) $(PSOBJ)gsdll.$(OBJ)
674
!if $(EMX)
675
	LINK386 /DEBUG $(COMPBASE)\lib\dll0.obj $(COMPBASE)\lib\end.lib @$(ld_tr) $(PSOBJ)gsdll.obj, $(BINDIR)\$(GSDLL).dll, ,$(X11LIBS) $(COMPBASE)\lib\gcc.lib $(COMPBASE)\lib\st\c.lib $(COMPBASE)\lib\st\c_dllso.lib $(COMPBASE)\lib\st\sys.lib $(COMPBASE)\lib\c_alias.lib $(COMPBASE)\lib\os2.lib, $(PSSRC)gsdll2.def
676
!endif
677
!if $(IBMCPP)
678
	LINK386 /NOE /DEBUG @$(ld_tr) $(PSOBJ)gsdll.obj, $(BINDIR)\$(GSDLL).dll, , , $(PSSRC)gsdll2.def
679
!endif
680
 
681
!else
682
#making an EXE
683
GS_ALL=$(PSOBJ)gs.$(OBJ) $(INT_ALL) $(INTASM)\
684
  $(LIB_ALL) $(LIBCTR) $(ld_tr) $(PSOBJ)$(GS).res $(ICONS)
685
 
686
$(GS_XE): $(GS_ALL) $(ALL_DEVS)
687
	$(COMPDIR)\$(COMP) $(CGDB) I$(PSSRCDIR) -I$(GLSRCDIR) -o $(PSOBJ)$(GS) $(PSOBJ)gs.$(OBJ) @$(ld_tr) $(INTASM) -lm
688
	$(COMPDIR)\emxbind -r$(PSOBJ)$(GS).res $(COMPDIR)\emxl.exe $(PSOBJ)$(GS) $(GS_XE) -ac
689
	del $(PSOBJ)$(GS)
690
!endif
691
 
692
# Make the icons from their text form.
693
 
694
$(PSOBJ)gsos2.ico: $(PSSRC)gsos2.icx $(ECHOGS_XE)
695
	$(ECHOGS_XE) -wb $(PSOBJ)gsos2.ico -n -X -r $(PSSRC)gsos2.icx
696
 
697
$(GLOBJ)gspmdrv.ico: $(GLSRC)gspmdrv.icx $(ECHOGS_XE)
698
	$(ECHOGS_XE) -wb $(GLOBJ)gspmdrv.ico -n -X -r $(GLSRC)gspmdrv.icx
699
 
700
$(PSOBJ)$(GS).res: $(PSSRC)$(GS).rc $(PSOBJ)gsos2.ico
701
	rc -i $(COMPBASE)\include -i $(PSSRCDIR) -i $(PSOBJDIR) -r $(PSSRC)$(GS).rc $(PSOBJ)$(GS).res
702
 
703
 
704
# PM driver program
705
 
706
$(GLOBJ)gspmdrv.o: $(GLSRC)gspmdrv.c $(GLSRC)gspmdrv.h
707
	$(COMPDIR)\$(COMP) $(CGDB) $(CO) -I$(GLSRCDIR) -o $(GLOBJ)gspmdrv.o -c $(GLSRC)gspmdrv.c
708
 
709
$(GLOBJ)gspmdrv.res: $(GLSRC)gspmdrv.rc $(GLSRC)gspmdrv.h $(GLOBJ)gspmdrv.ico
710
	rc -i $(COMPBASE)\include -i $(GLSRCDIR) -i $(GLOBJDIR) -r $(GLSRC)gspmdrv.rc $(GLOBJ)gspmdrv.res
711
 
712
$(BINDIR)\gspmdrv.exe: $(GLOBJ)gspmdrv.o $(GLOBJ)gspmdrv.res $(GLSRC)gspmdrv.def
713
	$(COMPDIR)\$(COMP) $(CGDB) $(CO) -o $(GLOBJ)gspmdrv $(GLOBJ)gspmdrv.o 
714
	$(COMPDIR)\emxbind -p -r$(GLOBJ)gspmdrv.res -d$(GLSRC)gspmdrv.def $(COMPDIR)\emxl.exe $(GLOBJ)gspmdrv $(BINDIR)\gspmdrv.exe
715
	del $(GLOBJ)gspmdrv
716
 
717
# Create a ZIP archive
718
# This assumes that the current directory is named gs#.## relative to its
719
# parent, where #.## is the Ghostscript version.
720
 
721
ZIP_XE=zip
722
ZIPPROGFILE1=gs$(GS_DOT_VERSION)\bin\gsos2.exe
723
ZIPPROGFILE2=gs$(GS_DOT_VERSION)\bin\gsdll2.dll
724
ZIPPROGFILE3=gs$(GS_DOT_VERSION)\bin\gspmdrv.exe
725
ZIPPROGFILE4=gs$(GS_DOT_VERSION)\doc
726
ZIPPROGFILE5=gs$(GS_DOT_VERSION)\examples
727
ZIPPROGFILE6=gs$(GS_DOT_VERSION)\lib
728
ZIPFONTDIR=fonts
729
 
730
# Make the zip archive.
731
zip:
732
	cd ..
733
	-del gs$(GS_VERSION)os2.zip
734
	$(ZIP_XE) -9 -r gs$(GS_VERSION)os2.zip $(ZIPFONTDIR)
735
	$(ZIP_XE) -9 -r gs$(GS_VERSION)os2.zip $(ZIPPROGFILE1)
736
	$(ZIP_XE) -9 -r gs$(GS_VERSION)os2.zip $(ZIPPROGFILE2)
737
	$(ZIP_XE) -9 -r gs$(GS_VERSION)os2.zip $(ZIPPROGFILE3)
738
	$(ZIP_XE) -9 -r gs$(GS_VERSION)os2.zip $(ZIPPROGFILE4)
739
	$(ZIP_XE) -9 -r gs$(GS_VERSION)os2.zip $(ZIPPROGFILE5)
740
	$(ZIP_XE) -9 -r gs$(GS_VERSION)os2.zip $(ZIPPROGFILE6)
741
	cd gs$(GS_DOT_VERSION)