xref: /plan9/sys/src/cmd/gs/src/openvms.mak (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
1#    Copyright (C) 1997-2002 artofcode LLC. 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: openvms.mak,v 1.41 2005/08/31 05:52:32 ray Exp $
17# makefile for OpenVMS VAX and Alpha
18#
19# Please contact Jim Dunham (dunham@omtool.com) if you have questions.
20# Support for VAX C on OpenVMS was removed in release 6.01 by Aladdin:
21# DEC C is now used on both VAX and Alpha platforms.
22#
23# ------------------------------- Options ------------------------------- #
24
25###### This section is the only part of the file you should need to edit.
26
27# on the make command line specify:
28#	make -fopenvms.mak "OPENVMS={VAX,ALPHA}" "DECWINDOWS={1.2,<blank>}"
29
30# Define the directory for the final executable, and the
31# source, generated intermediate file, and object directories
32# for the graphics library (GL) and the PostScript/PDF interpreter (PS).
33# NOTE: If you use GNU make, GLGENDIR and PSGENDIR must not be the
34# current directory ([]).
35
36BINDIR=[.bin]
37GLSRCDIR=[.src]
38GLGENDIR=[.obj]
39GLOBJDIR=[.obj]
40PSSRCDIR=[.src]
41PSLIBDIR=[.lib]
42PSGENDIR=[.obj]
43PSOBJDIR=[.obj]
44# Because of OpenVMS syntactic problems, the following redundant definitions
45# are necessary.  If you are using more than one GENDIR and/or OBJDIR,
46# you will have to edit the code below that creates these directories.
47BIN_DIR=BIN.DIR
48OBJ_DIR=OBJ.DIR
49
50# Do not edit the next group of lines.
51
52#include $(COMMONDIR)/vmscdefs.mak
53#include $(COMMONDIR)/vmsdefs.mak
54#include $(COMMONDIR)/generic.mak
55include $(GLSRCDIR)version.mak
56DD=$(GLGENDIR)
57GLD=$(GLGENDIR)
58PSD=$(PSGENDIR)
59
60# ------ Generic options ------ #
61
62# Define the directory that will hold documentation at runtime.
63
64GS_DOCDIR=GS_DOC
65#GS_DOCDIR=SYS$COMMON:[GS]
66
67# Define the default directory/ies for the runtime
68# initialization and font files.  Separate multiple directories with ,.
69
70GS_LIB_DEFAULT=GS_ROOT:[LIB],GS_ROOT:[RESOURCE],GS_ROOT:[FONT]
71
72# Define whether or not searching for initialization files should always
73# look in the current directory first.  This leads to well-known security
74# and confusion problems, but users insist on it.
75# NOTE: this also affects searching for files named on the command line:
76# see the "File searching" section of Use.htm for full details.
77# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
78
79SEARCH_HERE_FIRST=1
80
81# Define the name of the interpreter initialization file.
82# (There is no reason to change this.)
83
84GS_INIT=GS_INIT.PS
85
86# Choose generic configuration options.
87
88# Setting DEBUG=1 includes debugging features in the code
89
90DEBUG=
91
92# Setting TDEBUG=1 includes symbol table information for the debugger,
93# and also enables stack tracing on failure.
94
95TDEBUG=
96
97# Setting CDEBUG=1 enables 'C' compiler debugging and turns off optimization
98# Code is substantially slower and larger.
99
100CDEBUG=
101
102# Define the name of the executable file.
103
104GS=GS
105
106# Define the name of a pre-built executable that can be invoked at build
107# time.  Currently, this is only needed for compiled fonts.  The usual
108# alternatives are:
109#   - the standard name of Ghostscript on your system (typically `gs'):
110BUILD_TIME_GS=GS
111#   - the name of the executable you are building now.  If you choose this
112# option, then you must build the executable first without compiled fonts,
113# and then again with compiled fonts.
114#BUILD_TIME_GS=$(BINDIR)$(GS) -I$(PSLIBDIR)
115
116# Define the directory where the IJG JPEG library sources are stored,
117# and the major version of the library that is stored there.
118# You may need to change this if the IJG library version changes.
119# See jpeg.mak for more information.
120
121JSRCDIR=[.jpeg-6b]
122JVERSION=6
123
124# Define the directory where the PNG library sources are stored,
125# and the version of the library that is stored there.
126# You may need to change this if the libpng version changes.
127# See libpng.mak for more information.
128
129PSRCDIR=[.libpng-1_2_8]
130PVERSION=10208
131
132# Define the directory where the zlib sources are stored.
133# See zlib.mak for more information.
134
135ZSRCDIR=[.zlib-1_2_1]
136
137# Define the jbig2dec library source location.
138# See jbig2.mak for more information.
139
140JBIG2SRCDIR=[.jbig2dec-0_7]
141
142# Define the directory where the icclib source are stored.
143# See icclib.mak for more information
144
145ICCSRCDIR=[.icclib]
146
147# IJS has not been ported to OpenVMS. If you do the port,
148# you'll need to set these values. You'll also need to
149# include the ijs.mak makefile (right after icclib.mak).
150#
151# Define the directory where the ijs source is stored,
152# and the process forking method to use for the server.
153# See ijs.mak for more information.
154
155#IJSSRCDIR=[.ijs]
156#IJSEXECTYPE=unix
157
158# Note that built-in third-party libraries aren't available.
159
160SHARE_JPEG=0
161SHARE_LIBPNG=0
162SHARE_ZLIB=0
163SHARE_JBIG2=0
164
165# Define the path to X11 include files
166
167X_INCLUDE=DECW$$INCLUDE
168
169# ------ Platform-specific options ------ #
170
171# Define the drive, directory, and compiler name for the 'C' compiler.
172# COMP is the full compiler path name.
173
174COMP=CC
175
176ifdef DEBUG
177COMP:=$(COMP)/DEBUG/NOOPTIMIZE
178else
179# This should include /OPTIMIZE, but some OpenVMS compilers have an
180# optimizer bug that causes them to generate incorrect code for gdevpsfx.c,
181# so we must disable optimization.  (Eventually we will check for the bug
182# in genarch and enable optimization if it is safe.)
183#COMP:=$(COMP)/NODEBUG/OPTIMIZE
184COMP:=$(COMP)/NODEBUG/NOOPTIMIZE
185endif
186
187COMP:=$(COMP)/DECC/PREFIX=ALL/NESTED_INCLUDE=PRIMARY/NAMES=SHORTENED
188
189# Define any other compilation flags.
190# Including defines for A4 paper size
191
192ifdef A4_PAPER
193COMP:=$(COMP)/DEFINE=("A4")
194endif
195
196# LINK is the full linker path name
197
198ifdef TDEBUG
199LINKER=LINK/DEBUG/TRACEBACK
200else
201LINKER=LINK/NODEBUG/NOTRACEBACK
202endif
203
204# INCDIR contains the include files
205INCDIR=
206
207# LIBDIR contains the library files
208LIBDIR=
209
210# Define the .dev module that implements thread and synchronization
211# primitives for this platform.  Don't change this unless you really know
212# what you're doing.
213
214SYNC=posync
215
216# ------ Devices and features ------ #
217
218# Choose the device(s) to include.  See devs.mak for details,
219# devs.mak and contrib.mak for the list of available devices.
220
221DEVICE_DEVS=$(DD)x11.dev $(DD)x11alpha.dev $(DD)x11cmyk.dev $(DD)x11gray2.dev $(DD)x11gray4.dev $(DD)x11mono.dev
222DEVICE_DEVS1=
223DEVICE_DEVS2=
224DEVICE_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
225DEVICE_DEVS4=$(DD)cdeskjet.dev $(DD)cdjcolor.dev $(DD)cdjmono.dev $(DD)cdj550.dev $(DD)pj.dev $(DD)pjxl.dev $(DD)pjxl300.dev
226DEVICE_DEVS5=$(DD)uniprint.dev
227DEVICE_DEVS6=$(DD)bj10e.dev $(DD)bj200.dev $(DD)bjc600.dev $(DD)bjc800.dev
228DEVICE_DEVS7=$(DD)faxg3.dev $(DD)faxg32d.dev $(DD)faxg4.dev
229DEVICE_DEVS8=$(DD)pcxmono.dev $(DD)pcxgray.dev $(DD)pcx16.dev $(DD)pcx256.dev $(DD)pcx24b.dev $(DD)pcxcmyk.dev
230DEVICE_DEVS9=$(DD)pbm.dev $(DD)pbmraw.dev $(DD)pgm.dev $(DD)pgmraw.dev $(DD)pgnm.dev $(DD)pgnmraw.dev
231DEVICE_DEVS10=$(DD)tiffcrle.dev $(DD)tiffg3.dev $(DD)tiffg32d.dev $(DD)tiffg4.dev $(DD)tifflzw.dev $(DD)tiffpack.dev
232DEVICE_DEVS11=$(DD)tiff12nc.dev $(DD)tiff24nc.dev $(DD)tiffgray.dev $(DD)tiff32nc.dev $(DD)tiffsep.dev
233DEVICE_DEVS12=$(DD)psmono.dev $(DD)psgray.dev $(DD)psrgb.dev $(DD)bit.dev $(DD)bitrgb.dev $(DD)bitcmyk.dev
234DEVICE_DEVS13=$(DD)pngmono.dev $(DD)pnggray.dev $(DD)png16.dev $(DD)png256.dev $(DD)png16m.dev $(DD)pngalpha.dev
235DEVICE_DEVS14=$(DD)jpeg.dev $(DD)jpeggray.dev $(DD)jpegcmyk.dev
236DEVICE_DEVS15=$(DD)pdfwrite.dev $(DD)pswrite.dev $(DD)ps2write.dev $(DD)epswrite.dev $(DD)pxlmono.dev $(DD)pxlcolor.dev
237DEVICE_DEVS16=$(DD)bbox.dev
238# Overflow from DEVS9
239DEVICE_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
240DEVICE_DEVS18=
241DEVICE_DEVS19=
242DEVICE_DEVS20=
243DEVICE_DEVS21=
244
245# Choose the language feature(s) to include.  See gs.mak for details.
246
247FEATURE_DEVS=$(PSD)psl3.dev $(PSD)pdf.dev $(PSD)dpsnext.dev $(PSD)ttfont.dev $(PSD)epsf.dev $(PSD)fapi.dev
248
249# Choose whether to compile the .ps initialization files into the executable.
250# See gs.mak for details.
251
252COMPILE_INITS=0
253
254# Choose whether to store band lists on files or in memory.
255# The choices are 'file' or 'memory'.
256
257BAND_LIST_STORAGE=file
258
259# Choose which compression method to use when storing band lists in memory.
260# The choices are 'lzw' or 'zlib'.
261
262BAND_LIST_COMPRESSOR=zlib
263
264# Choose the implementation of file I/O: 'stdio', 'fd', or 'both'.
265# See gs.mak and sfxfd.c for more details.
266
267FILE_IMPLEMENTATION=stdio
268
269# Choose the implementation of stdio: '' for file I/O and 'c' for callouts
270# See gs.mak and ziodevs.c/ziodevsc.c for more details.
271
272STDIO_IMPLEMENTATION=c
273
274# Define the name table capacity size of 2^(16+n).
275
276EXTEND_NAMES=0
277
278# Define whether the system constants are writable.
279
280SYSTEM_CONSTANTS_ARE_WRITABLE=0
281
282# Define the platform name.
283
284PLATFORM=openvms_
285
286# Define the name of the makefile -- used in dependencies.
287
288MAKEFILE=$(GLSRCDIR)openvms.mak
289TOP_MAKEFILES=$(MAKEFILE)
290
291# Define the platform options
292
293PLATOPT=
294
295# Patch a couple of PC-specific things that aren't relevant to OpenVMS builds,
296# but that cause `make' to produce warnings.
297
298PCFBASM=
299
300# It is very unlikely that anyone would want to edit the remaining
301#   symbols, but we describe them here for completeness:
302
303# Define the suffix for command files (e.g., null or .bat).
304
305CMD=
306
307# Define the directory separator character (\ for MS-DOS, / for Unix,
308# nothing for OpenVMS).
309
310D=
311
312# Define the brackets for passing preprocessor definitions to the C compiler.
313
314NULL=
315
316D_=/DEFINE="
317_D_=$(NULL)=
318_D="
319
320# Define the syntax of search paths for the C compiler.
321# The OpenVMS compilers uses /INCLUDE=(dir1, dir2, ...dirn),
322# and only a single /INCLUDE switch is allowed in the command line.
323
324I_=/INCLUDE=(
325II=,
326_I=)
327
328# Define the string for specifying the output file from the C compiler.
329
330O_=/OBJECT=
331
332# Define the quoting string for mixed-case arguments.
333# (OpenVMS is the only platform where this isn't an empty string.)
334
335Q="
336
337# Define the extension for executable files (e.g., null or .exe).
338
339XE=.exe
340
341# Define the extension for executable files for the auxiliary programs
342# (e.g., null or .exe).
343
344XEAUX=.exe
345
346# Define the list of files that `make clean' removes.
347
348BEGINFILES=$(GLGENDIR)OPENVMS.OPT $(GLGENDIR)OPENVMS.COM
349
350# Define the C invocation for auxiliary programs (echogs, genarch).
351
352CCAUX=CC/DECC
353
354# Define the C invocation for normal compilation.
355
356CC=$(COMP)
357
358# Define the Link invocation.
359
360LINK=$(LINKER)/EXE=$@ $^,$(GLGENDIR)OPENVMS.OPT/OPTION
361
362# Define the auxiliary program dependency. We don't need this.
363
364AK=
365
366# Define the syntax for command, object, and executable files.
367
368OBJ=obj
369
370# Define the prefix for image invocations.
371
372EXP=MCR $(NULL)
373
374# Define the prefix for shell invocations.
375
376SH=
377
378# Define generic commands.
379
380CP_=$$ @$(GLSRCDIR)COPY_ONE
381
382# Define the command for deleting (a) file(s) (including wild cards)
383
384RM_=$$ @$(GLSRCDIR)RM_ONE
385
386# Define the command for deleting multiple files / patterns.
387
388RMN_=$$ @$(GLSRCDIR)RM_ALL
389
390# Define the arguments for genconf.
391
392CONFILES=-p %s
393CONFLDTR=-o
394
395# Define the generic compilation rules.
396
397..suffixes: .c .obj .exe
398
399..obj.exe:
400	$(LINK)
401
402# ---------------------------- End of options ---------------------------- #
403
404# Define the default build rule, so the object directories get created
405# automatically.
406
407# I wasn't able to find a "do nothing" command in the DCL manual!
408std: STDDIRS default
409	WRITE SYS$$OUTPUT "Done."
410
411STDDIRS:
412	$$ If F$$Search("$(BIN_DIR)") .EQS. "" Then Create/Directory/Log $(BINDIR)
413	$$ If F$$Search("$(OBJ_DIR)") .EQS. "" Then Create/Directory/Log $(GLOBJDIR)
414
415# ------------------- Include the generic makefiles ---------------------- #
416
417#include $(COMMONDIR)/ansidefs.mak
418#include $(COMMONDIR)/vmsdefs.mak
419#include $(COMMONDIR)/generic.mak
420include $(GLSRCDIR)gs.mak
421include $(GLSRCDIR)lib.mak
422include $(PSSRCDIR)int.mak
423include $(PSSRCDIR)cfonts.mak
424include $(GLSRCDIR)jpeg.mak
425# zlib.mak must precede libpng.mak
426include $(GLSRCDIR)zlib.mak
427include $(GLSRCDIR)libpng.mak
428include $(GLSRCDIR)jbig2.mak
429include $(GLSRCDIR)icclib.mak
430include $(GLSRCDIR)devs.mak
431include $(GLSRCDIR)contrib.mak
432
433# Define various incantations of the 'c' compiler.
434
435CC_=$(COMP)
436CC_INT=$(CC_)
437CC_NO_WARN=$(CC_)
438
439# ----------------------------- Main program ------------------------------ #
440
441$(GS_XE) : openvms $(GLOBJDIR)gs.$(OBJ) $(INT_ALL) $(LIB_ALL)
442	$(LINKER)/EXE=$@ $(GLOBJ)gs.$(OBJ),$(ld_tr)/OPTIONS,$(GLGENDIR)OPENVMS.OPT/OPTION
443
444# OpenVMS.dev
445
446openvms__=$(GLOBJ)gp_getnv.$(OBJ) $(GLOBJ)gp_vms.$(OBJ) $(GLOBJ)gp_stdia.$(OBJ)
447$(GLGEN)openvms_.dev : $(openvms__) $(GLGEN)nosync.dev
448	$(SETMOD) $(GLGEN)openvms_ $(openvms__) -include $(GLGEN)nosync
449
450$(GLOBJ)gp_vms.$(OBJ) : $(GLSRC)gp_vms.c $(string__h) $(memory__h) $(gx_h) $(gp_h) $(gpmisc_h) $(gsstruct_h)
451	$(CC_)/include=($(GLGENDIR),$(GLSRCDIR))/obj=$(GLOBJ)gp_vms.$(OBJ) $(GLSRC)gp_vms.c
452
453$(GLOBJ)gp_stdia.$(OBJ): $(GLSRC)gp_stdia.c $(AK) $(stdio__h) $(time__h) $(unistd__h) $(gx_h) $(gp_h)
454	$(CC_)/obj=$(GLOBJ)gp_stdia.$(OBJ) $(GLSRC)gp_stdia.c
455
456# Interpreter AUX programs
457
458$(ECHOGS_XE) :  $(GLOBJ)echogs.$(OBJ)
459	LINK/EXE=$@ $(GLOBJ)echogs.$(OBJ)
460
461$(GLOBJ)echogs.$(OBJ) :  $(GLSRC)echogs.c
462	$(CCAUX)/obj=$(GLOBJ)echogs.$(OBJ)  $(GLSRC)echogs.c
463
464$(GENARCH_XE) : $(GLOBJ)genarch.$(OBJ)
465	LINK/EXE=$@ $(GLOBJ)genarch.$(OBJ)
466
467$(GLOBJ)genarch.$(OBJ) :  $(GLSRC)genarch.c $(GENARCH_DEPS)
468	$(CCAUX)/obj=$(GLOBJ)genarch.$(OBJ)  $(GLSRC)genarch.c
469
470$(GENCONF_XE) : $(GLOBJDIR)genconf.$(OBJ)
471	LINK/EXE=$@ $(GLOBJ)genconf.$(OBJ)
472
473$(GLOBJ)genconf.$(OBJ) :  $(GLSRC)genconf.c $(GENCONF_DEPS)
474	$(CCAUX)/obj=$(GLOBJ)genconf.$(OBJ)  $(GLSRC)genconf.c
475
476$(GENDEV_XE) : $(GLOBJDIR)gendev.$(OBJ)
477	LINK/EXE=$@ $(GLOBJ)gendev.$(OBJ)
478
479$(GLOBJ)gendev.$(OBJ) :  $(GLSRC)gendev.c $(GENDEV_DEPS)
480	$(CCAUX)/obj=$(GLOBJ)gendev.$(OBJ)  $(GLSRC)gendev.c
481
482$(GENHT_XE) : $(GLOBJDIR)genht.$(OBJ)
483	LINK/EXE=$@ $(GLOBJ)genht.$(OBJ)
484
485$(GLOBJ)genht.$(OBJ) :  $(GLSRC)genht.c $(GENHT_DEPS)
486	$(CCAUX)/obj=$(GLOBJ)genht.$(OBJ) $(GENHT_CFLAGS) $(GLSRC)genht.c
487
488$(GENINIT_XE) : $(GLOBJDIR)geninit.$(OBJ)
489	LINK/EXE=$@ $(GLOBJ)geninit.$(OBJ)
490
491$(GLOBJ)geninit.$(OBJ) :  $(GLSRC)geninit.c $(GENINIT_DEPS)
492	$(CCAUX)/obj=$(GLOBJ)geninit.$(OBJ)  $(GLSRC)geninit.c
493
494# Preliminary definitions
495
496openvms : $(GLGENDIR)openvms.com $(GLGENDIR)openvms.opt
497	$$ @$(GLGENDIR)OPENVMS
498
499$(GLGENDIR)openvms.com : $(GLSRCDIR)append_l.com
500	$$ @$(GLSRCDIR)APPEND_L $@ "$$ DEFINE/JOB X11 $(X_INCLUDE)"
501	$$ @$(GLSRCDIR)APPEND_L $@ "$$ DEFINE/JOB GS_LIB ''F$$ENVIRONMENT(""DEFAULT"")'"
502	$$ @$(GLSRCDIR)APPEND_L $@ "$$ DEFINE/JOB GS_DOC ''F$$ENVIRONMENT(""DEFAULT"")'"
503	$$ @$(GLSRCDIR)APPEND_L $@ "$$ DEFINE/JOB DECC$$USER_INCLUDE ''F$$ENVIRONMENT(""DEFAULT"")', DECW$$INCLUDE, DECC$$LIBRARY_INCLUDE, SYS$$LIBRARY"
504	$$ @$(GLSRCDIR)APPEND_L $@ "$$ DEFINE/JOB DECC$$SYSTEM_INCLUDE ''F$$ENVIRONMENT(""DEFAULT"")', DECW$$INCLUDE, DECC$$LIBRARY_INCLUDE, SYS$$LIBRARY"
505	$$ @$(GLSRCDIR)APPEND_L $@ "$$ DEFINE/JOB SYS "DECC$$LIBRARY_INCLUDE,SYS$$LIBRARY"
506
507$(GLGENDIR)openvms.opt:
508ifeq "$(DECWINDOWS)" "1.2"
509	$$ @$(GLSRCDIR)APPEND_L $@ "SYS$$SHARE:DECW$$XMLIBSHR12.EXE/SHARE"
510	$$ @$(GLSRCDIR)APPEND_L $@ "SYS$$SHARE:DECW$$XTLIBSHRR5.EXE/SHARE"
511	$$ @$(GLSRCDIR)APPEND_L $@ "SYS$$SHARE:DECW$$XLIBSHR.EXE/SHARE"
512else
513	$$ @$(GLSRCDIR)APPEND_L $@ "SYS$$SHARE:DECW$$XMLIBSHR.EXE/SHARE"
514	$$ @$(GLSRCDIR)APPEND_L $@ "SYS$$SHARE:DECW$$XTSHR.EXE/SHARE"
515	$$ @$(GLSRCDIR)APPEND_L $@ "SYS$$SHARE:DECW$$XLIBSHR.EXE/SHARE"
516endif
517	$$ @$(GLSRCDIR)APPEND_L $@ ""Ident="""""GS $(GS_DOT_VERSION)"""""
518
519# The platform-specific makefiles must also include rules for creating
520# certain dynamically generated files:
521#	gconfig_.h - this indicates the presence or absence of
522#	    certain system header files that are located in different
523#	    places on different systems.  (It could be generated by
524#	    the GNU `configure' program.)
525#	gconfigv.h - this indicates the status of certain machine-
526#	    and configuration-specific features derived from definitions
527#	    in the platform-specific makefile.
528
529$(gconfig__h) : $(TOP_MAKEFILES) $(ECHOGS_XE)
530	$(EXP)$(ECHOGS_XE) -w $(gconfig__h) -x 23 define "HAVE_SYS_TIME_H"
531
532$(gconfigv_h) : $(TOP_MAKEFILES) $(ECHOGS_XE)
533	$(EXP)$(ECHOGS_XE) -w $(gconfigv_h) -x 23 define "USE_ASM" 0
534	$(EXP)$(ECHOGS_XE) -a $(gconfigv_h) -x 23 define "USE_FPU" 1
535	$(EXP)$(ECHOGS_XE) -a $(gconfigv_h) -x 23 define "EXTEND_NAMES" 0$(EXTEND_NAMES)
536	$(EXP)$(ECHOGS_XE) -a $(gconfigv_h) -x 23 define "SYSTEM_CONSTANTS_ARE_WRITABLE" 0$(SYSTEM_CONSTANTS_ARE_WRITABLE)
537