2
* config.h -- configuration definitions for gawk.
4
* For VMS (assumes V4.6 or later; tested on V5.3 and V5.4)
8
* Copyright (C) 1991, the Free Software Foundation, Inc.
10
* This file is part of GAWK, the GNU implementation of the
11
* AWK Progamming Language.
13
* GAWK is free software; you can redistribute it and/or modify
14
* it under the terms of the GNU General Public License as published by
15
* the Free Software Foundation; either version 1, or (at your option)
18
* GAWK is distributed in the hope that it will be useful,
19
* but WITHOUT ANY WARRANTY; without even the implied warranty of
20
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
* GNU General Public License for more details.
23
* You should have received a copy of the GNU General Public License
24
* along with GAWK; see the file COPYING. If not, write to
25
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
28
/**************************/
29
/* Miscellanious features */
30
/**************************/
34
* VMS: missing--not applicable
35
* Check your /usr/include/sys/stat.h file. If the stat structure
36
* does not have a member named st_blksize, define this. (This will
37
* most likely be the case on most System V systems prior to V.4.)
39
#define BLKSIZE_MISSING 1
43
* VMS: either should work; void is 'correct'
44
* The return type of the routines passed to the signal function.
45
* Modern systems use `void', older systems use `int'.
46
* If left undefined, it will default to void.
52
* VMS: <stddef.h> via <stdlib.h> (VAX C V2.3 & up); <sys/types.h> (GNU C)
53
* If your system has no typedef for size_t, define this to get a default
55
/* #define SIZE_T_MISSING 1 */
59
* VMS: well behaved, either signed or unsigned (signed by default)
60
* If your machine uses unsigned characters (IBM RT and RS/6000 and others)
61
* then define this for use in regex.c
63
/* #define CHAR_UNSIGNED 1 */
66
* HAVE_UNDERSCORE_SETJMP
68
* Check in your /usr/include/setjmp.h file. If there are routines
69
* there named _setjmp and _longjmp, then you should define this.
70
* Typically only systems derived from Berkeley Unix have this.
72
/* #define HAVE_UNDERSCORE_SETJMP 1 */
74
/***********************************************/
75
/* Missing library subroutines or system calls */
76
/***********************************************/
81
* Define this if your library does not have the getopt(3) library
82
* routine for parsing command line arguments.
84
#define GETOPT_MISSING 1
90
* VMS: <string.h> (introduced V4.6)
91
* These three routines are for manipulating blocks of memory. Most
92
* likely they will either all three be present or all three be missing,
93
* so they're grouped together.
95
/* #define MEMCMP_MISSING 1 */
96
/* #define MEMCPY_MISSING 1 */
97
/* #define MEMSET_MISSING 1 */
101
* VMS: missing (as of V5.4)
102
* Your system does not have the random(3) suite of random number
103
* generating routines. These are different than the old rand(3)
106
#define RANDOM_MISSING 1
111
* Your system does not have the strcasemp() and strncasecmp()
112
* routines that originated in Berkeley Unix.
114
#define STRCASE_MISSING 1
119
* Your system does not have the strchr() and strrchr() functions.
121
/* #define STRCHR_MISSING 1 */
125
* VMS: <stdlib.h> (introduced V4.6)
126
* Your system lacks the ANSI C strerror() routine for returning the
127
* strings associated with errno values.
129
/* #define STRERROR_MISSING 1 */
133
* VMS: missing (as of V5.4)
134
* Your system lacks the ANSI C strftime() routine for formatting
135
* broken down time values.
137
#define STRFTIME_MISSING 1
141
* VMS: <stdlib.h> (introduced V4.6)
142
* Your system does not have the strtod() routine for converting
143
* strings to double precision floating point values.
145
/* #define STRTOD_MISSING 1 */
149
* VMS: <stdlib.h> (introduced V4.6)
150
* Your system does not have the strtol() routine for converting
151
* strings to long integers.
153
/* #define STRTOL_MISSING 1 */
157
* VMS: missing, but can't use missing/tzset.c [no timezone support]
158
* If you have a 4.2 BSD vintage system, then the strftime() routine
159
* supplied in the missing directory won't be enough, because it relies on the
160
* tzset() routine from System V / Posix. Fortunately, there is an
161
* emulation for tzset() too that should do the trick. If you don't
162
* have tzset(), define this.
164
/* #define TZSET_MISSING 1 */
168
* VMS: close enough (as of V4.6, VAX C V2.3) [GCC, see below]
169
* If your system does have ANSI compliant header files that
170
* provide prototypes for library routines, then define this.
172
#define STDC_HEADERS 1
176
* VMS: compiler specific--see below
177
* If your compiler define's __STDC__ but does not support token
178
* pasting (tok##tok), then define this.
180
/* #define NO_TOKEN_PASTING 1 */
182
/*****************************************************************/
183
/* Stuff related to the Standard I/O Library. */
184
/*****************************************************************/
185
/* Much of this is (still, unfortunately) black magic in nature. */
186
/* You may have to use some or all of these together to get gawk */
187
/* to work correctly. */
188
/*****************************************************************/
193
* Look in your /usr/include/stdio.h file. If the return type of the
194
* sprintf() function is NOT `int', define this.
196
/* #define NON_STD_SPRINTF 1 */
200
* VMS: ok (introduced V4.6)
201
* Define this if your system lacks vprintf() and the other routines
204
/* #define VPRINTF_MISSING 1 */
209
* Define this if your standard i/o library is internally compatible
210
* with the one shipped with Berkeley Unix systems (4.n, n <= 3-reno).
211
* If you've defined VPRINTF_MISSING, you probably will need this too.
213
/* #define BSDSTDIO 1 */
217
* VMS: missing--doesn't matter
218
* Define this if your standard i/o library does not have the _doprnt()
219
* routine. This is used in an attempt to simulate the vfprintf()
222
/* #define DOPRNT_MISSING 1 */
225
* Casts from size_t to int and back. These will become unnecessary
226
* at some point in the future, but for now are required where the
227
* two types are a different representation.
234
* VMS: ok (introduced V4.6)
235
* Define this if your library does not provide a system function
236
* or you are not entirely happy with it and would rather use
237
* a provided replacement (atari only).
239
/* #define SYSTEM_MISSING 1 */
242
/*******************************/
243
/* Gawk configuration options. */
244
/*******************************/
248
* VMS: "/AWK_LIBRARY" => "AWK_LIBRARY:"
249
* The default search path for the -f option of gawk. It is used
250
* if the AWKPATH environment variable is undefined.
252
* Note: OK even if no AWK_LIBRARY logical name has been defined.
255
#define DEFPATH ".,/AWK_LIBRARY"
259
* Extended source file access.
261
#define DEFAULT_FILETYPE ".awk"
266
#define PIPES_SIMULATED 1
269
* %g format in VAXCRTL is broken (chooses %e format when should use %f).
271
#define GFMT_WORKAROUND 1
276
* As of V3.2, VAX C is not yet ANSI-compliant. But it's close enough
277
* for GAWK's purposes. Comment this out for VAX C V2.4 and earlier.
278
* Value of 0 should mean "not ANSI-C", but GAWK uses def/not-def tests.
279
* YYDEBUG definition is needed for combination of VAX C V2.x and Bison.
281
#if defined(VAXC) && !defined(__STDC__)
283
#define NO_TOKEN_PASTING
284
#define VAXC_BUILTINS
285
/* #define YYDEBUG 0 */
291
* Versions of GCC (actually GAS) earlier than 1.38 don't produce the
292
* right code for ``extern const'' constructs, and other usages of
293
* const might not be right either. The old set of include files from
294
* the gcc-vms distribution did not contain prototypes, and this could
295
* provoke some const-related compiler warnings. If you've got an old
296
* version of gcc for VMS, define 'const' out of existance, and by all
297
* means obtain the most recent version!
299
* Note: old versions of GCC should also avoid defining STDC_HEADERS,
300
* because most of the ANSI-C required header files are missing.
305
#define alloca __builtin_alloca
306
#define environ $$PsectAttributes_NOSHR$$environ /* awful GAS kludge */