Update to reflect new Perl version
[p5sagit/p5-mst-13.2.git] / vms / config.vms
CommitLineData
2304df62 1/*
a0d0e21e 2 * This file was produced by hand because the configure utilities which
3 * are in the perl distribution are all shell scripts. Someday, I hope
4 * we'll get a perl configure utility, but until then . . .
5 *
6 * Feel free to add or change things to suit your needs, but be careful
7 * about moving the comments which say "config-skip" - they're used by
8 * GenConfig.pl when producing Config.pm.
79072805 9 *
a0d0e21e 10 * config.h for VMS
b94f085b 11 * Version: 5.002_01
a0d0e21e 12 */
2304df62 13
b94f085b 14/* Configuration time: 22-Mar-1996 14:45
a0d0e21e 15 * Configured by: Charles Bailey bailey@genetics.upenn.edu
16 * Target system: VMS
79072805 17 */
79072805 18
2304df62 19#ifndef _config_h_
20#define _config_h_
79072805 21
e518068a 22/* CAT2:
23 * This macro catenates 2 tokens together.
24 */
25/* STRINGIFY:
26 * This macro surrounds its token with double quotes.
27 */
28#ifdef __STDC__
29#define CAT2(a,b)a ## b
30#define CAT3(a,b,c)a ## b ## c
31#define CAT4(a,b,c,d)a ## b ## c ##d
32#define CAT5(a,b,c,d,e)a ## b ## c ## d ## e
33#define StGiFy(a) # a
34#define STRINGIFY(A)StGiFy(a)
35#define SCAT2(a,b)StGiFy(a) StGiFy(b)
36#define SCAT3(a,b,c)StGiFy(a) StGiFy(b) StGiFy(c)
37#define SCAT4(a,b,c,d)StGiFy(a) StGiFy(b) StGiFy(c) StGiFy(d)
38#define SCAT5(a,b,c,d,e)StGiFy(a) StGiFy(b) StGiFy(c) StGiFy(d) StGiFy(e)
39#else
40#define CAT2(a,b)a/**/b
41#define CAT3(a,b,c)a/**/b/**/c
42#define CAT4(a,b,c,d)a/**/b/**/c/**/d
43#define CAT5(a,b,c,d,e)a/**/b/**/c/**/d/**/e
44#define STRINGIFY(a)"a"
45#endif
46
b94f085b 47/* Default value for version token in ARCHLIB_EXP;
48 * updated during build by FndVers.Com -- do not edit
49 */
50#ifndef _PVERS
51# define _PVERS "5_00201" /**/
52#endif
53
e518068a 54/* config-start */
55
a0d0e21e 56/* MEM_ALIGNBYTES:
57 * This symbol contains the number of bytes required to align a
58 * double. Usual values are 2, 4 and 8.
79072805 59 */
a0d0e21e 60#define MEM_ALIGNBYTES 8 /**/
79072805 61
b94f085b 62/* OSNAME:
63 * This symbol contains the name of the operating system, as determined
64 * by Configure.
65 */
66#define OSNAME "VMS" /**/
67
fed7345c 68/* ARCHLIB_EXP:
a0d0e21e 69 * This variable, if defined, holds the name of the directory in
70 * which the user wants to put architecture-dependent public
71 * library files for $package. It is most often a local directory
72 * such as /usr/local/lib. Programs using this variable must be
fed7345c 73 * prepared to deal with filename expansion. If ARCHLIB_EXP is the
74 * same as PRIVLIB_EXP, it is not defined, since presumably the
75 * program already searches PRIVLIB_EXP.
a0d0e21e 76 */
4633a7c4 77#ifdef __ALPHA
b94f085b 78#define ARCHLIB_EXP CAT2("/perl_root/lib/VMS_AXP/",_PVERS) /* config-skip */
748a9306 79#else
b94f085b 80#define ARCHLIB_EXP CAT2("/perl_root/lib/VMS_VAX/",_PVERS) /* config-skip */
748a9306 81#endif
a0d0e21e 82
2304df62 83/* CPPSTDIN:
79072805 84 * This symbol contains the first part of the string which will invoke
85 * the C preprocessor on the standard input and produce to standard
2304df62 86 * output. Typical value of "cc -E" or "/lib/cpp", but it can also
87 * call a wrapper. See CPPRUN.
79072805 88 */
2304df62 89/* CPPMINUS:
79072805 90 * This symbol contains the second part of the string which will invoke
91 * the C preprocessor on the standard input and produce to standard
92 * output. This symbol will have the value "-" if CPPSTDIN needs a minus
93 * to specify standard input, otherwise the value is "".
94 */
a0d0e21e 95#define CPPSTDIN "cc/noobj/preprocess=sys$output sys$input"
79072805 96#define CPPMINUS ""
97
2304df62 98/* HAS_BCMP:
99 * This symbol is defined if the bcmp() routine is available to
100 * compare blocks of memory.
79072805 101 */
a0d0e21e 102#undef HAS_BCMP /**/
79072805 103
2304df62 104/* HAS_BCOPY:
105 * This symbol is defined if the bcopy() routine is available to
106 * copy blocks of memory.
79072805 107 */
a0d0e21e 108#undef HAS_BCOPY /**/
79072805 109
2304df62 110/* HAS_BZERO:
111 * This symbol is defined if the bzero() routine is available to
112 * set a memory block to 0.
79072805 113 */
a0d0e21e 114#undef HAS_BZERO /**/
79072805 115
2304df62 116/* CASTNEGFLOAT:
117 * This symbol is defined if the C compiler can cast negative
118 * numbers to unsigned longs, ints and shorts.
79072805 119 */
2304df62 120/* CASTFLAGS:
79072805 121 * This symbol contains flags that say what difficulties the compiler
122 * has casting odd floating values to unsigned long:
2304df62 123 * 0 = ok
79072805 124 * 1 = couldn't cast < 0
125 * 2 = couldn't cast >= 0x80000000
126 */
2304df62 127#define CASTNEGFLOAT /**/
128#define CASTFLAGS 0 /**/
79072805 129
2304df62 130/* HAS_CHSIZE:
79072805 131 * This symbol, if defined, indicates that the chsize routine is available
132 * to truncate files. You might need a -lx to get this routine.
133 */
a0d0e21e 134#undef HAS_CHSIZE /**/
79072805 135
2304df62 136/* HASCONST:
137 * This symbol, if defined, indicates that this C compiler knows about
138 * the const type. There is no need to actually test for that symbol
139 * within your programs. The mere use of the "const" keyword will
140 * trigger the necessary tests.
141 */
a0d0e21e 142#define HASCONST /**/
2304df62 143#ifndef HASCONST
144#define const
145#endif
146
147/* HAS_CRYPT:
79072805 148 * This symbol, if defined, indicates that the crypt routine is available
149 * to encrypt passwords and the like.
150 */
c07a80fd 151#define HAS_CRYPT /**/
79072805 152
e518068a 153/* BYTEORDER:
154 * This symbol hold the hexadecimal constant defined in byteorder,
155 * i.e. 0x1234 or 0x4321, etc...
156 */
157#define BYTEORDER 0x1234 /* large digits for MSB */
158
2304df62 159/* CSH:
79072805 160 * This symbol, if defined, indicates that the C-shell exists.
161 * If defined, contains the full pathname of csh.
162 */
a0d0e21e 163#undef CSH /**/
79072805 164
2304df62 165/* HAS_DUP2:
166 * This symbol, if defined, indicates that the dup2 routine is
167 * available to duplicate file descriptors.
79072805 168 */
2304df62 169#define HAS_DUP2 /**/
79072805 170
2304df62 171/* HAS_FCHMOD:
79072805 172 * This symbol, if defined, indicates that the fchmod routine is available
173 * to change mode of opened files. If unavailable, use chmod().
174 */
a0d0e21e 175#undef HAS_FCHMOD /**/
79072805 176
2304df62 177/* HAS_FCHOWN:
79072805 178 * This symbol, if defined, indicates that the fchown routine is available
179 * to change ownership of opened files. If unavailable, use chown().
180 */
a0d0e21e 181#undef HAS_FCHOWN /**/
79072805 182
2304df62 183/* HAS_FCNTL:
79072805 184 * This symbol, if defined, indicates to the C program that
185 * the fcntl() function exists.
186 */
a0d0e21e 187#undef HAS_FCNTL /**/
188
189/* HAS_FGETPOS:
190 * This symbol, if defined, indicates that the fgetpos routine is
191 * available to get the file position indicator, similar to ftell().
192 */
193#define HAS_FGETPOS /**/
79072805 194
2304df62 195/* FLEXFILENAMES:
79072805 196 * This symbol, if defined, indicates that the system supports filenames
197 * longer than 14 characters.
198 */
199#define FLEXFILENAMES /**/
200
2304df62 201/* HAS_FLOCK:
202 * This symbol, if defined, indicates that the flock routine is
79072805 203 * available to do file locking.
204 */
a0d0e21e 205#undef HAS_FLOCK /**/
206
207/* HAS_FSETPOS:
208 * This symbol, if defined, indicates that the fsetpos routine is
209 * available to set the file position indicator, similar to fseek().
210 */
211#define HAS_FSETPOS /**/
79072805 212
2304df62 213/* HAS_GETGROUPS:
79072805 214 * This symbol, if defined, indicates that the getgroups() routine is
215 * available to get the list of process groups. If unavailable, multiple
216 * groups are probably not supported.
217 */
a0d0e21e 218#undef HAS_GETGROUPS /**/
2304df62 219
220/* HAS_UNAME:
221 * This symbol, if defined, indicates that the C program may use the
222 * uname() routine to derive the host name. See also HAS_GETHOSTNAME
223 * and PHOSTNAME.
224 */
a0d0e21e 225#undef HAS_UNAME /**/
79072805 226
2304df62 227/* HAS_GETPGRP:
228 * This symbol, if defined, indicates that the getpgrp routine is
79072805 229 * available to get the current process group.
230 */
a0d0e21e 231#undef HAS_GETPGRP /**/
79072805 232
2304df62 233/* HAS_GETPGRP2:
79072805 234 * This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
235 * routine is available to get the current process group.
236 */
a0d0e21e 237#undef HAS_GETPGRP2 /**/
79072805 238
2304df62 239/* HAS_GETPRIORITY:
240 * This symbol, if defined, indicates that the getpriority routine is
79072805 241 * available to get a process's priority.
242 */
a0d0e21e 243#undef HAS_GETPRIORITY /**/
79072805 244
2304df62 245/* HAS_KILLPG:
79072805 246 * This symbol, if defined, indicates that the killpg routine is available
247 * to kill process groups. If unavailable, you probably should use kill
248 * with a negative process number.
249 */
a0d0e21e 250#undef HAS_KILLPG /**/
79072805 251
2304df62 252/* HAS_LINK:
253 * This symbol, if defined, indicates that the link routine is
254 * available to create hard links.
79072805 255 */
a0d0e21e 256#undef HAS_LINK /**/
79072805 257
2304df62 258/* HAS_LSTAT:
259 * This symbol, if defined, indicates that the lstat routine is
260 * available to do file stats on symbolic links.
79072805 261 */
a0d0e21e 262#undef HAS_LSTAT /**/
263
264/* HAS_LOCKF:
265 * This symbol, if defined, indicates that the lockf routine is
266 * available to do file locking.
267 */
268#undef HAS_LOCKF /**/
269
270/* HAS_MBSTOWCS:
271 * This symbol, if defined, indicates that the mbstowcs routine is
272 * available to covert a multibyte string into a wide character string.
273 */
274#undef HAS_MBSTOWCS /**/
275
276/* HAS_MBTOWC:
277 * This symbol, if defined, indicates that the mbtowc routine is available
278 * to covert a multibyte to a wide character.
279 */
280#undef HAS_MBTOWC /**/
79072805 281
2304df62 282/* HAS_MEMCMP:
283 * This symbol, if defined, indicates that the memcmp routine is available
284 * to compare blocks of memory.
79072805 285 */
2304df62 286#define HAS_MEMCMP /**/
287
288/* HAS_MEMCPY:
79072805 289 * This symbol, if defined, indicates that the memcpy routine is available
2304df62 290 * to copy blocks of memory.
79072805 291 */
2304df62 292#define HAS_MEMCPY /**/
79072805 293
2304df62 294/* HAS_MEMMOVE:
79072805 295 * This symbol, if defined, indicates that the memmove routine is available
2304df62 296 * to copy potentially overlapping blocks of memory. This should be used
297 * only when HAS_SAFE_BCOPY is not defined. If neither is there, roll your
298 * own version.
79072805 299 */
a0d0e21e 300#define HAS_MEMMOVE /**/
79072805 301
2304df62 302/* HAS_MEMSET:
79072805 303 * This symbol, if defined, indicates that the memset routine is available
2304df62 304 * to set blocks of memory.
79072805 305 */
2304df62 306#define HAS_MEMSET /**/
79072805 307
2304df62 308/* HAS_MKDIR:
79072805 309 * This symbol, if defined, indicates that the mkdir routine is available
310 * to create directories. Otherwise you should fork off a new process to
311 * exec /bin/mkdir.
312 */
2304df62 313#define HAS_MKDIR /**/
79072805 314
2304df62 315/* HAS_MSG:
79072805 316 * This symbol, if defined, indicates that the entire msg*(2) library is
2304df62 317 * supported (IPC mechanism based on message queues).
79072805 318 */
a0d0e21e 319#undef HAS_MSG /**/
79072805 320
a0d0e21e 321/* HAS_OPEN3:
322 * This manifest constant lets the C program know that the three
323 * argument form of open(2) is available.
79072805 324 */
a0d0e21e 325#define HAS_OPEN3 /**/
79072805 326
e518068a 327/* HAS_POLL:
328 * This symbol, if defined, indicates that the poll routine is
329 * available to poll active file descriptors.
330 */
331#undef HAS_POLL /**/
332
a0d0e21e 333/* HAS_READDIR:
334 * This symbol, if defined, indicates that the readdir routine is
335 * available to read directory entries. You may have to include
336 * <dirent.h>. See I_DIRENT.
79072805 337 */
a0d0e21e 338#define HAS_READDIR /**/
79072805 339
a0d0e21e 340/* HAS_SEEKDIR:
341 * This symbol, if defined, indicates that the seekdir routine is
342 * available. You may have to include <dirent.h>. See I_DIRENT.
79072805 343 */
a0d0e21e 344#define HAS_SEEKDIR /**/
79072805 345
a0d0e21e 346/* HAS_TELLDIR:
347 * This symbol, if defined, indicates that the telldir routine is
348 * available. You may have to include <dirent.h>. See I_DIRENT.
79072805 349 */
a0d0e21e 350#define HAS_TELLDIR /**/
79072805 351
a0d0e21e 352/* HAS_REWINDDIR:
353 * This symbol, if defined, indicates that the rewinddir routine is
354 * available. You may have to include <dirent.h>. See I_DIRENT.
79072805 355 */
a0d0e21e 356#define HAS_REWINDDIR /**/
79072805 357
2304df62 358/* HAS_RENAME:
79072805 359 * This symbol, if defined, indicates that the rename routine is available
360 * to rename files. Otherwise you should do the unlink(), link(), unlink()
361 * trick.
362 */
2304df62 363#define HAS_RENAME /**/
79072805 364
2304df62 365/* HAS_RMDIR:
366 * This symbol, if defined, indicates that the rmdir routine is
367 * available to remove directories. Otherwise you should fork off a
368 * new process to exec /bin/rmdir.
79072805 369 */
2304df62 370#define HAS_RMDIR /**/
79072805 371
2304df62 372/* HAS_SEM:
79072805 373 * This symbol, if defined, indicates that the entire sem*(2) library is
374 * supported.
375 */
a0d0e21e 376#undef HAS_SEM /**/
79072805 377
2304df62 378/* HAS_SETEGID:
79072805 379 * This symbol, if defined, indicates that the setegid routine is available
380 * to change the effective gid of the current program.
381 */
a0d0e21e 382#undef HAS_SETEGID /**/
79072805 383
2304df62 384/* HAS_SETEUID:
79072805 385 * This symbol, if defined, indicates that the seteuid routine is available
386 * to change the effective uid of the current program.
387 */
a0d0e21e 388#undef HAS_SETEUID /**/
389
390/* HAS_SETLOCALE:
391 * This symbol, if defined, indicates that the setlocale routine is
392 * available to handle locale-specific ctype implementations.
393 */
394#undef HAS_SETLOCALE /**/
79072805 395
2304df62 396/* HAS_SETPGID:
397 * This symbol, if defined, indicates that the setpgid routine is
398 * available to set process group ID.
399 */
a0d0e21e 400#undef HAS_SETPGID /**/
79072805 401
2304df62 402/* HAS_SETPGRP2:
79072805 403 * This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
404 * routine is available to set the current process group.
405 */
a0d0e21e 406#undef HAS_SETPGRP2 /**/
79072805 407
2304df62 408/* HAS_SETPRIORITY:
409 * This symbol, if defined, indicates that the setpriority routine is
79072805 410 * available to set a process's priority.
411 */
a0d0e21e 412#undef HAS_SETPRIORITY /**/
79072805 413
2304df62 414/* HAS_SETREGID:
79072805 415 * This symbol, if defined, indicates that the setregid routine is
2304df62 416 * available to change the real and effective gid of the current
417 * process.
79072805 418 */
2304df62 419/* HAS_SETRESGID:
79072805 420 * This symbol, if defined, indicates that the setresgid routine is
421 * available to change the real, effective and saved gid of the current
2304df62 422 * process.
79072805 423 */
a0d0e21e 424#undef HAS_SETREGID /**/
425#undef HAS_SETRESGID /**/
79072805 426
2304df62 427/* HAS_SETREUID:
79072805 428 * This symbol, if defined, indicates that the setreuid routine is
2304df62 429 * available to change the real and effective uid of the current
430 * process.
79072805 431 */
2304df62 432/* HAS_SETRESUID:
79072805 433 * This symbol, if defined, indicates that the setresuid routine is
434 * available to change the real, effective and saved uid of the current
2304df62 435 * process.
79072805 436 */
a0d0e21e 437#undef HAS_SETREUID /**/
438#undef HAS_SETRESUID /**/
79072805 439
2304df62 440/* HAS_SETRGID:
79072805 441 * This symbol, if defined, indicates that the setrgid routine is available
442 * to change the real gid of the current program.
443 */
a0d0e21e 444#undef HAS_SETRGID /**/
79072805 445
2304df62 446/* HAS_SETRUID:
79072805 447 * This symbol, if defined, indicates that the setruid routine is available
448 * to change the real uid of the current program.
449 */
a0d0e21e 450#undef HAS_SETRUID /**/
79072805 451
2304df62 452/* HAS_SETSID:
453 * This symbol, if defined, indicates that the setsid routine is
454 * available to set the process group ID.
455 */
a0d0e21e 456#undef HAS_SETSID /**/
2304df62 457
458/* HAS_SHM:
79072805 459 * This symbol, if defined, indicates that the entire shm*(2) library is
460 * supported.
461 */
a0d0e21e 462#undef HAS_SHM /**/
79072805 463
a0d0e21e 464/* Shmat_t:
465 * This symbol holds the return type of the shmat() system call.
466 * Usually set to 'void *' or 'char *'.
79072805 467 */
a0d0e21e 468/* HAS_SHMAT_PROTOTYPE:
469 * This symbol, if defined, indicates that the sys/shm.h includes
470 * a prototype for shmat(). Otherwise, it is up to the program to
471 * guess one. Shmat_t shmat _((int, Shmat_t, int)) is a good guess,
472 * but not always right so it should be emitted by the program only
473 * when HAS_SHMAT_PROTOTYPE is not defined to avoid conflicting defs.
79072805 474 */
16d20bd9 475#undef Shmat_t /**/ /* config-skip */
a0d0e21e 476#undef HAS_SHMAT_PROTOTYPE /**/
79072805 477
c07a80fd 478/* HAS_SIGACTION:
479 * This symbol, if defined, indicates that Vr4's sigaction() routine
480 * is available.
481 */
482#undef HAS_SIGACTION /**/
483
2304df62 484/* USE_STAT_BLOCKS:
79072805 485 * This symbol is defined if this system has a stat structure declaring
486 * st_blksize and st_blocks.
487 */
a0d0e21e 488#undef USE_STAT_BLOCKS /**/
79072805 489
16d20bd9 490/* USE_STDIO_PTR:
491 * This symbol is defined if the _ptr and _cnt fields (or similar)
492 * of the stdio FILE structure can be used to access the stdio buffer
493 * for a file handle. If this is defined, then the FILE_ptr(fp)
494 * and FILE_cnt(fp) macros will also be defined and should be used
495 * to access these fields.
496 */
497/* USE_STDIO_BASE:
498 * This symbol is defined if the _base field (or similar) of the
499 * stdio FILE structure can be used to access the stdio buffer for
500 * a file handle. If this is defined, then the FILE_base(fp) macro
501 * will also be defined and should be used to access this field.
502 * Also, the FILE_bufsiz(fp) macro will be defined and should be used
503 * to determine the number of bytes in the buffer. USE_STDIO_BASE
504 * will never be defined unless USE_STDIO_PTR is.
505 */
4633a7c4 506/* VMS:
507 * Regular FILE * are pretty close to meeting these criteria, but socket
508 * I/O uses a summy FILE *, and Perl doesn't distinguish between socket
e518068a 509 * and non-socket filehandles.
510 */
16d20bd9 511#undef USE_STDIO_PTR /**/
512#undef USE_STDIO_BASE /**/
513
514/* FILE_ptr:
515 * This macro is used to access the _ptr field (or equivalent) of the
516 * FILE structure pointed to by its argument. This macro will always be
517 * defined if USE_STDIO_PTR is defined.
518 */
4633a7c4 519/* STDIO_PTR_LVALUE:
520 * This symbol is defined if the FILE_ptr macro can be used as an
521 * lvalue.
522 */
16d20bd9 523/* FILE_cnt:
524 * This macro is used to access the _cnt field (or equivalent) of the
525 * FILE structure pointed to by its argument. This macro will always be
526 * defined if USE_STDIO_PTR is defined.
527 */
4633a7c4 528/* STDIO_CNT_LVALUE:
529 * This symbol is defined if the FILE_cnt macro can be used as an
530 * lvalue.
531 */
532#undef FILE_ptr
533#undef STDIO_PTR_LVALUE
534#undef FILE_cnt
535#undef STDIO_CNT_LVALUE
16d20bd9 536
537/* FILE_base:
538 * This macro is used to access the _base field (or equivalent) of the
539 * FILE structure pointed to by its argument. This macro will always be
540 * defined if USE_STDIO_BASE is defined.
79072805 541 */
16d20bd9 542/* FILE_bufsiz:
543 * This macro is used to determine the number of bytes in the I/O
544 * buffer pointed to by _base field (or equivalent) of the FILE
545 * structure pointed to its argument. This macro will always be defined
546 * if USE_STDIO_BASE is defined.
547 */
4633a7c4 548#undef FILE_base
549#undef FILE_bufsiz
79072805 550
2304df62 551/* USE_STRUCT_COPY:
79072805 552 * This symbol, if defined, indicates that this C compiler knows how
553 * to copy structures. If undefined, you'll need to use a block copy
554 * routine of some sort instead.
555 */
2304df62 556#define USE_STRUCT_COPY /**/
79072805 557
a0d0e21e 558/* HAS_STRERROR:
559 * This symbol, if defined, indicates that the strerror routine is
560 * available to translate error numbers to strings. See the writeup
561 * of Strerror() in this file before you try to define your own.
562 */
563/* HAS_SYS_ERRLIST:
564 * This symbol, if defined, indicates that the sys_errlist array is
565 * available to translate error numbers to strings. The extern int
566 * sys_nerr gives the size of that table.
567 */
568/* Strerror:
569 * This preprocessor symbol is defined as a macro if strerror() is
570 * not available to translate error numbers to strings but sys_errlist[]
571 * array is there.
572 */
573#define HAS_STRERROR /**/
574#undef HAS_SYS_ERRLIST /**/
575#ifdef HAS_STRERROR
576# define Strerror(e) strerror((e),vaxc$errno)
577#else
578#define Strerror(e) ((e)<0||(e)>=sys_nerr?"unknown":sys_errlist[e]) /**/ /* config-skip */
579#endif
580
2304df62 581/* HAS_SYMLINK:
79072805 582 * This symbol, if defined, indicates that the symlink routine is available
583 * to create symbolic links.
584 */
a0d0e21e 585#undef HAS_SYMLINK /**/
2304df62 586
587/* HAS_SYSCALL:
588 * This symbol, if defined, indicates that the syscall routine is
589 * available to call arbitrary system calls. If undefined, that's tough.
590 */
a0d0e21e 591#undef HAS_SYSCALL /**/
79072805 592
2304df62 593/* HAS_SYSTEM:
594 * This symbol, if defined, indicates that the system routine is
595 * available to issue a shell command.
79072805 596 */
2304df62 597#define HAS_SYSTEM /**/
79072805 598
85e6fe83 599/* Time_t:
600 * This symbol holds the type returned by time(). It can be long,
601 * or time_t on BSD sites (in which case <sys/types.h> should be
602 * included).
603 */
a0d0e21e 604#define Time_t time_t /* Time type */
79072805 605
2304df62 606/* HAS_TRUNCATE:
79072805 607 * This symbol, if defined, indicates that the truncate routine is
608 * available to truncate files.
609 */
a0d0e21e 610#undef HAS_TRUNCATE /**/
79072805 611
2304df62 612
a0d0e21e 613/* HAS_VFORK:
614 * This symbol, if defined, indicates that vfork() exists.
79072805 615 */
a0d0e21e 616#define HAS_VFORK /**/
79072805 617
748a9306 618/* Signal_t:
619 * This symbol's value is either "void" or "int", corresponding to the
620 * appropriate return type of a signal handler. Thus, you can declare
621 * a signal handler using "Signal_t (*handler)()", and define the
622 * handler using "Signal_t handler(sig)".
623 */
624#define Signal_t void /* Signal handler's return type */
625
2304df62 626/* HASVOLATILE:
79072805 627 * This symbol, if defined, indicates that this C compiler knows about
628 * the volatile declaration.
629 */
a0d0e21e 630#define HASVOLATILE /**/
2304df62 631#ifndef HASVOLATILE
a0d0e21e 632#define volatile /* config-skip */
2304df62 633#endif
79072805 634
2304df62 635/* HAS_VPRINTF:
79072805 636 * This symbol, if defined, indicates that the vprintf routine is available
637 * to printf with a pointer to an argument list. If unavailable, you
638 * may need to write your own, probably in terms of _doprnt().
639 */
2304df62 640/* USE_CHAR_VSPRINTF:
79072805 641 * This symbol is defined if this system has vsprintf() returning type
642 * (char*). The trend seems to be to declare it as "int vsprintf()". It
643 * is up to the package author to declare vsprintf correctly based on the
644 * symbol.
645 */
2304df62 646#define HAS_VPRINTF /**/
a0d0e21e 647#undef USE_CHAR_VSPRINTF /**/
79072805 648
2304df62 649/* HAS_WAIT4:
79072805 650 * This symbol, if defined, indicates that wait4() exists.
651 */
a0d0e21e 652#undef HAS_WAIT4 /**/
79072805 653
2304df62 654/* HAS_WAITPID:
655 * This symbol, if defined, indicates that the waitpid routine is
656 * available to wait for child process.
79072805 657 */
748a9306 658#define HAS_WAITPID /**/
79072805 659
a0d0e21e 660/* HAS_WCSTOMBS:
661 * This symbol, if defined, indicates that the wcstombs routine is
662 * available to convert wide character strings to multibyte strings.
79072805 663 */
a0d0e21e 664#undef HAS_WCSTOMBS /**/
79072805 665
2304df62 666/* I_DIRENT:
667 * This symbol, if defined, indicates to the C program that it should
668 * include <dirent.h>. Using this symbol also triggers the definition
669 * of the Direntry_t define which ends up being 'struct dirent' or
670 * 'struct direct' depending on the availability of <dirent.h>.
79072805 671 */
2304df62 672/* DIRNAMLEN:
673 * This symbol, if defined, indicates to the C program that the length
674 * of directory entry names is provided by a d_namlen field. Otherwise
675 * you need to do strlen() on the d_name field.
676 */
a0d0e21e 677#undef I_DIRENT /**/
678#define DIRNAMLEN /**/
2304df62 679#define Direntry_t struct dirent
79072805 680
2304df62 681/* I_FCNTL:
79072805 682 * This manifest constant tells the C program to include <fcntl.h>.
683 */
a0d0e21e 684#undef I_FCNTL /**/
79072805 685
2304df62 686/* I_GRP:
79072805 687 * This symbol, if defined, indicates to the C program that it should
2304df62 688 * include <grp.h>.
79072805 689 */
a0d0e21e 690#undef I_GRP /**/
79072805 691
a0d0e21e 692/* I_LIMITS:
693 * This symbol, if defined, indicates to the C program that it should
694 * include <limits.h> to get definition of symbols like WORD_BIT or
695 * LONG_MAX, i.e. machine dependant limitations.
2304df62 696 */
a0d0e21e 697#undef I_LIMITS /**/
2304df62 698
a0d0e21e 699/* I_MEMORY:
79072805 700 * This symbol, if defined, indicates to the C program that it should
a0d0e21e 701 * include <memory.h>.
79072805 702 */
a0d0e21e 703#undef I_MEMORY /**/
704
705/* I_NDBM:
706 * This symbol, if defined, indicates that ndbm.h exists and should
707 * be included.
79072805 708 */
a0d0e21e 709#undef I_NDBM /**/
79072805 710
2304df62 711/* I_STDARG:
712 * This symbol, if defined, indicates that <stdarg.h> exists and should
713 * be included.
79072805 714 */
a0d0e21e 715#define I_STDARG /**/
716
717/* I_PWD:
718 * This symbol, if defined, indicates to the C program that it should
719 * include <pwd.h>.
720 */
721/* PWQUOTA:
722 * This symbol, if defined, indicates to the C program that struct passwd
723 * contains pw_quota.
724 */
725/* PWAGE:
726 * This symbol, if defined, indicates to the C program that struct passwd
727 * contains pw_age.
728 */
729/* PWCHANGE:
730 * This symbol, if defined, indicates to the C program that struct passwd
731 * contains pw_change.
732 */
733/* PWCLASS:
734 * This symbol, if defined, indicates to the C program that struct passwd
735 * contains pw_class.
736 */
737/* PWEXPIRE:
738 * This symbol, if defined, indicates to the C program that struct passwd
739 * contains pw_expire.
740 */
741/* PWCOMMENT:
742 * This symbol, if defined, indicates to the C program that struct passwd
743 * contains pw_comment.
744 */
745#undef I_PWD /**/
746#undef PWQUOTA /**/
747#undef PWAGE /**/
748#undef PWCHANGE /**/
749#undef PWCLASS /**/
750#undef PWEXPIRE /**/
748a9306 751#define PWCOMMENT /**/
79072805 752
2304df62 753/* I_STDDEF:
754 * This symbol, if defined, indicates that <stddef.h> exists and should
79072805 755 * be included.
756 */
2304df62 757#define I_STDDEF /**/
758
a0d0e21e 759/* I_STDLIB:
760* This symbol, if defined, indicates that <stdlib.h> exists and should
761* be included.
762*/
763#define I_STDLIB /**/
764
85e6fe83 765/* I_STRING:
766 * This symbol, if defined, indicates to the C program that it should
767 * include <string.h> (USG systems) instead of <strings.h> (BSD systems).
768 */
769#define I_STRING /**/
770
2304df62 771/* I_SYS_DIR:
772 * This symbol, if defined, indicates to the C program that it should
773 * include <sys/dir.h>.
774 */
a0d0e21e 775#undef I_SYS_DIR /**/
2304df62 776
777/* I_SYS_FILE:
778 * This symbol, if defined, indicates to the C program that it should
779 * include <sys/file.h> to get definition of R_OK and friends.
780 */
a0d0e21e 781#undef I_SYS_FILE /**/
79072805 782
2304df62 783/* I_SYS_IOCTL:
784 * This symbol, if defined, indicates that <sys/ioctl.h> exists and should
785 * be included. Otherwise, include <sgtty.h> or <termio.h>.
79072805 786 */
a0d0e21e 787#undef I_SYS_IOCTL /**/
788
2304df62 789/* I_SYS_NDIR:
790 * This symbol, if defined, indicates to the C program that it should
791 * include <sys/ndir.h>.
79072805 792 */
a0d0e21e 793#undef I_SYS_NDIR /**/
2304df62 794
795/* I_SYS_SELECT:
796 * This symbol, if defined, indicates to the C program that it should
797 * include <sys/select.h> in order to get definition of struct timeval.
798 */
a0d0e21e 799#undef I_SYS_SELECT /**/
800
e518068a 801/* I_DBM:
802 * This symbol, if defined, indicates that <dbm.h> exists and should
803 * be included.
804 */
805/* I_RPCSVC_DBM:
806 * This symbol, if defined, indicates that <rpcsvc/dbm.h> exists and
807 * should be included.
808 */
809#undef I_DBM /**/
810#undef I_RPCSVC_DBM /**/
811
40000a8c 812/* I_SYS_STAT:
813 * This symbol, if defined, indicates to the C program that it should
814 * include <sys/stat.h>.
815 */
816#define I_SYS_STAT /**/
a0d0e21e 817
818/* I_SYS_TIMES:
819 * This symbol, if defined, indicates to the C program that it should
820 * include <sys/times.h>.
821 */
822#undef I_SYS_TIMES /**/
823
40000a8c 824/* I_SYS_TYPES:
825 * This symbol, if defined, indicates to the C program that it should
826 * include <sys/types.h>.
827 */
828#define I_SYS_TYPES /**/
829
e518068a 830/* I_SYS_UN:
831 * This symbol, if defined, indicates to the C program that it should
832 * include <sys/un.h> to get UNIX domain socket definitions.
833 */
834#undef I_SYS_UN /**/
835
a0d0e21e 836/* I_TERMIO:
837 * This symbol, if defined, indicates that the program should include
838 * <termio.h> rather than <sgtty.h>. There are also differences in
839 * the ioctl() calls that depend on the value of this symbol.
840 */
841/* I_TERMIOS:
842 * This symbol, if defined, indicates that the program should include
843 * the POSIX termios.h rather than sgtty.h or termio.h.
844 * There are also differences in the ioctl() calls that depend on the
845 * value of this symbol.
846 */
847/* I_SGTTY:
848 * This symbol, if defined, indicates that the program should include
849 * <sgtty.h> rather than <termio.h>. There are also differences in
850 * the ioctl() calls that depend on the value of this symbol.
851 */
852#undef I_TERMIO /**/
853#undef I_SGTTY /**/
854#undef I_TERMIOS /**/
2304df62 855
856/* I_TIME:
857 * This symbol, if defined, indicates to the C program that it should
858 * include <time.h>.
79072805 859 */
2304df62 860/* I_SYS_TIME:
861 * This symbol, if defined, indicates to the C program that it should
862 * include <sys/time.h>.
79072805 863 */
85e6fe83 864/* I_SYS_TIME_KERNEL:
865 * This symbol, if defined, indicates to the C program that it should
866 * include <sys/time.h> with KERNEL defined.
867 */
a0d0e21e 868#define I_TIME /**/
869#undef I_SYS_TIME /**/
870#undef I_SYS_TIME_KERNEL /**/
85e6fe83 871
872/* I_UNISTD:
873 * This symbol, if defined, indicates to the C program that it should
874 * include <unistd.h>.
875 */
a0d0e21e 876#undef I_UNISTD /**/
79072805 877
2304df62 878/* I_UTIME:
79072805 879 * This symbol, if defined, indicates to the C program that it should
2304df62 880 * include <utime.h>.
79072805 881 */
a0d0e21e 882#undef I_UTIME /**/
883
2304df62 884/* I_VARARGS:
79072805 885 * This symbol, if defined, indicates to the C program that it should
2304df62 886 * include <varargs.h>.
79072805 887 */
a0d0e21e 888#undef I_VARARGS /**/
889
890
891/* I_VFORK:
892 * This symbol, if defined, indicates to the C program that it should
893 * include vfork.h.
894 */
895#undef I_VFORK /**/
79072805 896
a0d0e21e 897/* CAN_PROTOTYPE:
898 * If defined, this macro indicates that the C compiler can handle
899 * function prototypes.
79072805 900 */
a0d0e21e 901/* _:
902 * This macro is used to declare function parameters for folks who want
903 * to make declarations with prototypes using a different style than
904 * the above macros. Use double parentheses. For example:
905 *
906 * int main _((int argc, char *argv[]));
85e6fe83 907 */
a0d0e21e 908#define CAN_PROTOTYPE /**/
909#ifdef CAN_PROTOTYPE
910#define _(args) args /* config-skip */
911#else
912#define _(args) () /* config-skip */
913#endif
85e6fe83 914
2304df62 915/* RANDBITS:
916 * This symbol contains the number of bits of random number the rand()
917 * function produces. Usual values are 15, 16, and 31.
79072805 918 */
2304df62 919#define RANDBITS 31 /**/
920
a0d0e21e 921
922/* Select_fd_set_t:
923 * This symbol holds the type used for the 2nd, 3rd, and 4th
924 * arguments to select. Usually, this is 'fd_set *', if HAS_FD_SET
925 * is defined, and 'int *' otherwise. This is only useful if you
926 * have select(), of course.
79072805 927 */
e518068a 928#define Select_fd_set_t int * /**/
2304df62 929
2304df62 930/* STDCHAR:
931 * This symbol is defined to be the type of char used in stdio.h.
932 * It has the values "unsigned char" or "char".
79072805 933 */
a0d0e21e 934#define STDCHAR char /**/
79072805 935
16d20bd9 936/* UNLINK_ALL_VERSIONS:
937 * This symbol, if defined, indicates that the program should arrange
938 * to remove all versions of a file if unlink() is called.
85e6fe83 939 */
16d20bd9 940#undef UNLINK_ALL_VERSIONS /**/
941
a0d0e21e 942/* LOC_SED:
943 * This symbol holds the complete pathname to the sed program.
85e6fe83 944 */
a0d0e21e 945#define LOC_SED "_NLA0:" /**/
946
947/* BIN:
948 * This symbol holds the path of the bin directory where the package will
949 * be installed. Program must be prepared to deal with ~name substitution.
950 */
951#define BIN "/perl_root/000000" /**/
952
953/* HAS_ALARM:
954 * This symbol, if defined, indicates that the alarm routine is
955 * available.
956 */
957#define HAS_ALARM /**/
85e6fe83 958
e518068a 959/* HASATTRIBUTE:
960 * This symbol indicates the C compiler can check for function attributes,
961 * such as printf formats. This is normally only supported by GNU cc.
962 */
963#ifdef __GNUC__
964# define HASATTRIBUTE /*config-skip*/
965#else
966# undef HASATTRIBUTE /*config-skip*/
967#endif
968#ifndef HASATTRIBUTE
969#define __attribute__(_arg_)
970#endif
971
2304df62 972/* CASTI32:
973 * This symbol is defined if the C compiler can cast negative
974 * or large floating point numbers to 32-bit ints.
79072805 975 */
2304df62 976#define CASTI32 /**/
977
a0d0e21e 978/* HAS_CHOWN:
979 * This symbol, if defined, indicates that the chown routine is
980 * available.
981 */
982#define HAS_CHOWN /**/
983
984/* HAS_CHROOT:
985 * This symbol, if defined, indicates that the chroot routine is
986 * available.
987 */
988#undef HAS_CHROOT /**/
989
990/* HAS_CUSERID:
991 * This symbol, if defined, indicates that the cuserid routine is
992 * available to get character login names.
993 */
994#define HAS_CUSERID /**/
995
996/* HAS_DBL_DIG:
997 * This symbol, if defined, indicates that this system's <float.h>
998 * or <limits.h> defines the symbol DBL_DIG, which is the number
999 * of significant digits in a double precision number. If this
1000 * symbol is not defined, a guess of 15 is usually pretty good.
1001 */
1002#define HAS_DBL_DIG /* */
1003
1004/* HAS_DIFFTIME:
1005 * This symbol, if defined, indicates that the difftime routine is
1006 * available.
1007 */
1008#define HAS_DIFFTIME /**/
1009
1010/* HAS_FORK:
1011 * This symbol, if defined, indicates that the fork routine is
1012 * available.
1013 */
1014/* VMS: In vmsish.h, fork is #defined to vfork. This kludge gets around
1015 * some obsolete code in pp.c, which should be fixed in its own right
1016 * sometime. - C. Bailey 26-Aug-1994
1017 */
1018#define HAS_FORK /**/
1019
1020/* HAS_GETLOGIN:
1021 * This symbol, if defined, indicates that the getlogin routine is
1022 * available.
1023 */
c07a80fd 1024#define HAS_GETLOGIN /**/
a0d0e21e 1025
1026/* HAS_GETPPID:
1027 * This symbol, if defined, indicates that the getppid routine is
1028 * available.
1029 */
1030#undef HAS_GETPPID /**/
1031
85e6fe83 1032/* HAS_HTONL:
1033 * This symbol, if defined, indicates that the htonl() routine (and
1034 * friends htons() ntohl() ntohs()) are available to do network
1035 * order byte swapping.
1036 */
1037/* HAS_HTONS:
1038 * This symbol, if defined, indicates that the htons() routine (and
1039 * friends htonl() ntohl() ntohs()) are available to do network
1040 * order byte swapping.
1041 */
1042/* HAS_NTOHL:
1043 * This symbol, if defined, indicates that the ntohl() routine (and
1044 * friends htonl() htons() ntohs()) are available to do network
1045 * order byte swapping.
1046 */
1047/* HAS_NTOHS:
1048 * This symbol, if defined, indicates that the ntohs() routine (and
1049 * friends htonl() htons() ntohl()) are available to do network
1050 * order byte swapping.
1051 */
a0d0e21e 1052#define HAS_HTONL /**/
1053#define HAS_HTONS /**/
1054#define HAS_NTOHL /**/
1055#define HAS_NTOHS /**/
1056
1057/* HAS_MBLEN:
1058 * This symbol, if defined, indicates that the mblen routine is available
1059 * to find the number of bytes in a multibye character.
1060 */
1061#undef HAS_MBLEN /**/
85e6fe83 1062
a0d0e21e 1063/* HAS_MKTIME:
1064 * This symbol, if defined, indicates that the mktime routine is
1065 * available.
79072805 1066 */
a0d0e21e 1067#undef HAS_MKTIME /**/
79072805 1068
a0d0e21e 1069/* HAS_NICE:
1070 * This symbol, if defined, indicates that the nice routine is
1071 * available.
85e6fe83 1072 */
a0d0e21e 1073#define HAS_NICE /**/
85e6fe83 1074
a0d0e21e 1075/* HAS_PAUSE:
1076 * This symbol, if defined, indicates that the pause routine is
1077 * available.
85e6fe83 1078 */
a0d0e21e 1079#define HAS_PAUSE /**/
85e6fe83 1080
a0d0e21e 1081/* HAS_PIPE:
1082 * This symbol, if defined, indicates that the pipe routine is
1083 * available.
85e6fe83 1084 */
a0d0e21e 1085#define HAS_PIPE /**/
85e6fe83 1086
a0d0e21e 1087/* HAS_READLINK:
1088 * This symbol, if defined, indicates that the readlink routine is
1089 * available.
85e6fe83 1090 */
a0d0e21e 1091#undef HAS_READLINK /**/
85e6fe83 1092
a0d0e21e 1093/* HAS_SETLINEBUF:
1094 * This symbol, if defined, indicates that the setlinebuf routine is
1095 * available to change stderr or stdout from block-buffered or unbuffered
1096 * to a line-buffered mode.
85e6fe83 1097 */
a0d0e21e 1098#undef HAS_SETLINEBUF /**/
85e6fe83 1099
a0d0e21e 1100/* HAS_STRCHR:
1101 * This symbol is defined to indicate that the strchr()/strrchr()
1102 * functions are available for string searching. If not, try the
1103 * index()/rindex() pair.
2304df62 1104 */
a0d0e21e 1105/* HAS_INDEX:
1106 * This symbol is defined to indicate that the index()/rindex()
1107 * functions are available for string searching.
1108 */
1109#define HAS_STRCHR /**/
1110#undef HAS_INDEX /**/
79072805 1111
a0d0e21e 1112/* HAS_STRCOLL:
1113 * This symbol, if defined, indicates that the strcoll routine is
1114 * available to compare strings using collating information.
85e6fe83 1115 */
a0d0e21e 1116#undef HAS_STRCOLL /**/
85e6fe83 1117
a0d0e21e 1118/* HAS_STRXFRM:
1119 * This symbol, if defined, indicates that the strxfrm() routine is
1120 * available to compare strings using collating information.
85e6fe83 1121 */
a0d0e21e 1122#undef HAS_STRXFRM /**/
85e6fe83 1123
a0d0e21e 1124/* HAS_TCGETPGRP:
1125 * This symbol, if defined, indicates that the tcgetpgrp routine is
1126 * available to get foreground process group ID.
2304df62 1127 */
a0d0e21e 1128#undef HAS_TCGETPGRP /**/
1129
1130/* HAS_TCSETPGRP:
1131 * This symbol, if defined, indicates that the tcsetpgrp routine is
1132 * available to set foreground process group ID.
2304df62 1133 */
a0d0e21e 1134#undef HAS_TCSETPGRP /**/
1135
1136/* HAS_TIMES:
1137 * This symbol, if defined, indicates that the times() routine exists.
1138 * Note that this became obsolete on some systems (SUNOS), which now
1139 * use getrusage(). It may be necessary to include <sys/times.h>.
2304df62 1140 */
a0d0e21e 1141#define HAS_TIMES /**/
79072805 1142
a0d0e21e 1143/* HAS_TZNAME:
1144 * This symbol, if defined, indicates that the tzname[] array is
1145 * available to access timezone names.
85e6fe83 1146 */
a0d0e21e 1147#undef HAS_TZNAME /**/
85e6fe83 1148
a0d0e21e 1149/* HAS_UMASK:
1150 * This symbol, if defined, indicates that the umask routine is
1151 * available to get the file creation mask.
79072805 1152 */
a0d0e21e 1153#define HAS_UMASK /**/
1154
a0d0e21e 1155/* HAS_WCTOMB:
1156 * This symbol, if defined, indicates that the wctomb routine is available
1157 * to covert a wide character to a multibyte.
1158 */
1159#undef HAS_WCTOMB /**/
1160
1161/* Fpos_t:
1162 * This symbol holds the type used to declare file positions in libc.
1163 * It can be fpos_t, long, uint, etc... It may be necessary to include
1164 * <sys/types.h> to get any typedef'ed information.
1165 */
1166#define Fpos_t fpos_t /* File position type */
79072805 1167
2304df62 1168/* Gid_t:
1169 * This symbol holds the return type of getgid() and the type of
1170 * argument to setrgid() and related functions. Typically,
1171 * it is the type of group ids in the kernel.
1172 * It can be int, ushort, uid_t, etc... It may be necessary to include
1173 * <sys/types.h> to get any typedef'ed information.
79072805 1174 */
e518068a 1175#if defined(__DECC) && defined(__DECC_VER) && (__DECC_VER >= 500000)
1176# define Gid_t gid_t /* config-skip */
1177#else
1178# define Gid_t unsigned int /* config-skip */
1179#endif
79072805 1180
85e6fe83 1181/* I_DLFCN:
1182 * This symbol, if defined, indicates that <dlfcn.h> exists and should
1183 * be included.
1184 */
a0d0e21e 1185#undef I_DLFCN /**/
85e6fe83 1186
a0d0e21e 1187/* I_FLOAT:
85e6fe83 1188 * This symbol, if defined, indicates to the C program that it should
a0d0e21e 1189 * include <float.h> to get definition of symbols like DBL_MAX or
1190 * DBL_MIN, i.e. machine dependent floating point values.
85e6fe83 1191 */
a0d0e21e 1192#define I_FLOAT /**/
85e6fe83 1193
a0d0e21e 1194/* I_MATH:
1195 * This symbol, if defined, indicates to the C program that it should
1196 * include <math.h>.
85e6fe83 1197 */
a0d0e21e 1198#define I_MATH /**/
85e6fe83 1199
e518068a 1200/* I_LOCALE:
1201 * This symbol, if defined, indicates to the C program that it should
1202 * include <locale.h>.
1203 */
1204#undef I_LOCALE /**/
1205
748a9306 1206/* I_SYS_STAT:
1207 * This symbol, if defined, indicates to the C program that it should
1208 * include <sys/stat.h>.
1209 */
1210#define I_SYS_STAT /**/
1211
e518068a 1212/* INTSIZE:
1213 * This symbol contains the size of an int, so that the C preprocessor
1214 * can make decisions based on it.
1215 */
1216#define INTSIZE 4 /**/
748a9306 1217
a0d0e21e 1218/* Off_t:
1219 * This symbol holds the type used to declare offsets in the kernel.
1220 * It can be int, long, off_t, etc... It may be necessary to include
1221 * <sys/types.h> to get any typedef'ed information.
85e6fe83 1222 */
a0d0e21e 1223#define Off_t int /* <offset> type */
e518068a 1224
1225/* Free_t:
1226 * This variable contains the return type of free(). It is usually
1227 * void, but occasionally int.
1228 */
a0d0e21e 1229/* Malloc_t:
1230 * This symbol is the type of pointer returned by malloc and realloc.
85e6fe83 1231 */
a0d0e21e 1232#define Malloc_t void * /**/
e518068a 1233#define Free_t void /**/
a0d0e21e 1234
1235/* MYMALLOC:
1236 * This symbol, if defined, indicates that we're using our own malloc.
85e6fe83 1237 */
a0d0e21e 1238#undef MYMALLOC /**/
1239
e518068a 1240/* SIG_NAME:
1241 * This symbol contains a list of signal names in order. This is intended
1242 * to be used as a static array initialization, like this:
1243 * char *sig_name[] = { SIG_NAME };
1244 * The signals in the list are separated with commas, and each signal
1245 * is surrounded by double quotes. There is no leading SIG in the signal
1246 * name, i.e. SIGQUIT is known as "QUIT". Duplicates are allowed.
1247 * The signal number for sig_name[i] is stored in sig_num[i].
1248 * The last element is 0 to terminate the list with a NULL. This
1249 * corresponds to the 0 at the end of the sig_num list.
1250 * See SIG_NUM and SIG_MAX.
1251 */
1252#define SIG_NAME "ZERO","HUP","INT","QUIT","ILL","TRAP","IOT","EMT","FPE",\
1253 "KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM",\
1254 "ABRT","USR1","USR2",0
1255
1256/* SIG_NUM:
1257 * This symbol contains a list of signal number, in the same order as the
1258 * SIG_NAME list. It is suitable for static array initialization, as in:
1259 * int sig_num[] = { SIG_NUM };
1260 * The signals in the list are separated with commas, and the indices
1261 * within that list and the SIG_NAME list match, so it's easy to compute
1262 * the signal name from a number or vice versa at the price of a small
1263 * dynamic linear lookup. Duplicates are allowed, so you can't assume
1264 * sig_num[i] == i. Instead, the signal number corresponding to
1265 * sig_name[i] is sig_number[i].
1266 * The last element is 0, corresponding to the 0 at the end of
1267 * the sig_name list.
1268 */
1269#define SIG_NUM 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,0 /**/
1270
a0d0e21e 1271/* Mode_t:
1272 * This symbol holds the type used to declare file modes
1273 * for systems calls. It is usually mode_t, but may be
1274 * int or unsigned short. It may be necessary to include <sys/types.h>
1275 * to get any typedef'ed information.
85e6fe83 1276 */
a0d0e21e 1277#define Mode_t unsigned int /* file mode parameter for system calls*/
1278
1279/* SSize_t:
1280 * This symbol holds the type used by functions that return
1281 * a count of bytes or an error condition. It must be a signed type.
1282 * It is usually ssize_t, but may be long or int, etc.
1283 * It may be necessary to include <sys/types.h> or <unistd.h>
1284 * to get any typedef'ed information.
1285 * We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
85e6fe83 1286 */
a0d0e21e 1287#define SSize_t int /* signed count of bytes */
1288
e518068a 1289/* VAL_O_NONBLOCK:
1290 * This symbol is to be used during open() or fcntl(F_SETFL) to turn on
1291 * non-blocking I/O for the file descriptor. Note that there is no way
1292 * back, i.e. you cannot turn it blocking again this way. If you wish to
1293 * alternatively switch between blocking and non-blocking, use the
1294 * ioctl(FIOSNBIO) call instead, but that is not supported by all devices.
1295 */
1296/* VAL_EAGAIN:
1297 * This symbol holds the errno error code set by read() when no data was
1298 * present on the non-blocking file descriptor.
1299 */
1300/* RD_NODATA:
1301 * This symbol holds the return code from read() when no data is present
1302 * on the non-blocking file descriptor. Be careful! If EOF_NONBLOCK is
1303 * not defined, then you can't distinguish between no data and EOF by
1304 * issuing a read(). You'll have to find another way to tell for sure!
1305 */
1306/* EOF_NONBLOCK:
1307 * This symbol, if defined, indicates to the C program that a read() on
1308 * a non-blocking file descriptor will return 0 on EOF, and not the value
1309 * held in RD_NODATA (-1 usually, in that case!).
1310 */
1311#define VAL_O_NONBLOCK
1312#define VAL_EAGAIN
1313#define RD_NODATA
1314#undef EOF_NONBLOCK
1315
1316/* OLDARCHLIB_EXP:
1317 * This symbol contains the ~name expanded version of OLDARCHLIB, to be
1318 * used in programs that are not prepared to deal with ~ expansion at
1319 * run-time.
1320 */
482b294c 1321#ifdef __ALPHA
1322#define OLDARCHLIB_EXP "/perl_root/lib/VMS_AXP" /* config-skip */
1323#else
1324#define OLDARCHLIB_EXP "/perl_root/lib/VMS_VAX" /* config-skip */
1325#endif
a0d0e21e 1326
fed7345c 1327/* PRIVLIB_EXP:
a0d0e21e 1328 * This symbol contains the name of the private library for this package.
1329 * The library is private in the sense that it needn't be in anyone's
1330 * execution path, but it should be accessible by the world. The program
1331 * should be prepared to do ~ expansion.
85e6fe83 1332 */
fed7345c 1333#define PRIVLIB_EXP "/perl_root/lib" /**/
a0d0e21e 1334
e518068a 1335/* SITELIB_EXP:
1336 * This symbol contains the ~name expanded version of SITELIB, to be used
1337 * in programs that are not prepared to deal with ~ expansion at run-time.
1338 */
482b294c 1339#define SITELIB_EXP "/perl_root/lib/site_perl" /**/
e518068a 1340
1341/* SITEARCH_EXP:
1342 * This symbol contains the ~name expanded version of SITEARCH, to be used
1343 * in programs that are not prepared to deal with ~ expansion at run-time.
1344 */
482b294c 1345#ifdef __ALPHA
1346#define SITEARCH_EXP "/perl_root/lib/site_perl/VMS_AXP" /* config-skip */
1347#else
1348#define SITEARCH_EXP "/perl_root/lib/site_perl/VMS_VAX" /* config-skip */
1349#endif
e518068a 1350
a0d0e21e 1351/* SCRIPTDIR:
1352 * This symbol holds the name of the directory in which the user wants
1353 * to put publicly executable scripts for the package in question. It
1354 * is often a directory that is mounted across diverse architectures.
1355 * Programs must be prepared to deal with ~name expansion.
85e6fe83 1356 */
a0d0e21e 1357#define SCRIPTDIR "/perl_root/script" /**/
85e6fe83 1358
a0d0e21e 1359/* Size_t:
1360 * This symbol holds the type used to declare length parameters
1361 * for string functions. It is usually size_t, but may be
1362 * unsigned long, int, etc. It may be necessary to include
1363 * <sys/types.h> to get any typedef'ed information.
85e6fe83 1364 */
a0d0e21e 1365#define Size_t size_t /* length paramater for string functions */
1366
1367/* Uid_t:
1368 * This symbol holds the type used to declare user ids in the kernel.
1369 * It can be int, ushort, uid_t, etc... It may be necessary to include
1370 * <sys/types.h> to get any typedef'ed information.
85e6fe83 1371 */
b94f085b 1372#if defined(__DECC) && defined(__DECC_VER) && (__DECC_VER >= 500000)
1373# define Uid_t uid_t /* config-skip */
1374#else
1375# define Uid_t unsigned int /* config-skip */
1376#endif
85e6fe83 1377
a0d0e21e 1378/* I_SYS_PARAM:
85e6fe83 1379 * This symbol, if defined, indicates to the C program that it should
a0d0e21e 1380 * include <sys/param.h>.
85e6fe83 1381 */
a0d0e21e 1382#undef I_SYS_PARAM
85e6fe83 1383
a0d0e21e 1384/* GNUC_ATTRIBUTE_CHECK:
1385 * This symbol indicates the C compiler can check for function attributes,
1386 * such as printf formats.
85e6fe83 1387 */
a0d0e21e 1388/* VMS: true for gcc, undef for VAXC/DECC. This is handled in Descrip.MMS
1389 * C. Bailey 26-Aug-1994
1390 */
c07a80fd 1391/*#define GNUC_ATTRIBUTE_CHECK /**/
85e6fe83 1392
a0d0e21e 1393/* VOID_CLOSEDIR:
1394 * This symbol, if defined, indicates that the closedir() routine
1395 * does not return a value.
79072805 1396 */
a0d0e21e 1397#define VOID_CLOSEDIR /**/
79072805 1398
a0d0e21e 1399/* HAS_DLERROR:
1400 * This symbol, if defined, indicates that the dlerror routine is
1401 * available.
1402*/
1403#undef HAS_DLERROR /**/
1404
1405/* DLSYM_NEEDS_UNDERSCORE:
1406 * This symbol, if defined, indicates that we need to prepend an
1407 * underscore to the symbol name before calling dlsym(). This only
1408 * makes sense if you *have* dlsym, which we will presume is the
1409 * case if you're using dl_dlopen.xs.
85e6fe83 1410 */
a0d0e21e 1411#undef DLSYM_NEEDS_UNDERSCORE /* */
85e6fe83 1412
a0d0e21e 1413/* SETUID_SCRIPTS_ARE_SECURE_NOW:
1414 * This symbol, if defined, indicates that setuid scripts are secure.
79072805 1415 */
a0d0e21e 1416/* DOSUID:
1417 * This symbol, if defined, indicates that the C program should
1418 * check the script that it is executing for setuid/setgid bits, and
1419 * attempt to emulate setuid/setgid on systems that have disabled
1420 * setuid #! scripts because the kernel can't do it securely.
1421 * It is up to the package designer to make sure that this emulation
1422 * is done securely. Among other things, it should do an fstat on
1423 * the script it just opened to make sure it really is a setuid/setgid
1424 * script, it should make sure the arguments passed correspond exactly
1425 * to the argument on the #! line, and it should not trust any
1426 * subprocesses to which it must pass the filename rather than the
1427 * file descriptor of the script to be executed.
1428 */
1429#undef SETUID_SCRIPTS_ARE_SECURE_NOW /**/
1430#undef DOSUID /**/
79072805 1431
a0d0e21e 1432/* HAS_ISASCII:
1433 * This manifest constant lets the C program know that the
1434 * isascii is available.
1435 */
1436#define HAS_ISASCII /**/
85e6fe83 1437
a0d0e21e 1438/* HAS_LOCALECONV:
1439 * This symbol, if defined, indicates that the localeconv routine is
1440 * available for numeric and monetary formatting conventions.
1441 */
1442#undef HAS_LOCALECONV /**/
2304df62 1443
a0d0e21e 1444/* HAS_MKFIFO:
1445 * This symbol, if defined, indicates that the mkfifo routine is
1446 * available.
1447 */
1448#undef HAS_MKFIFO /**/
2304df62 1449
a0d0e21e 1450/* HAS_PATHCONF:
1451 * This symbol, if defined, indicates that pathconf() is available
1452 * to determine file-system related limits and options associated
1453 * with a given filename.
1454 */
1455/* HAS_FPATHCONF:
1456 * This symbol, if defined, indicates that pathconf() is available
1457 * to determine file-system related limits and options associated
1458 * with a given open file descriptor.
1459 */
1460#undef HAS_PATHCONF /**/
1461#undef HAS_FPATHCONF /**/
85e6fe83 1462
a0d0e21e 1463/* HAS_SAFE_BCOPY:
1464 * This symbol, if defined, indicates that the bcopy routine is available
1465 * to copy potentially overlapping memory blocks. Otherwise you should
1466 * probably use memmove() or memcpy(). If neither is defined, roll your
1467 * own version.
1468 */
1469#undef HAS_SAFE_BCOPY /**/
85e6fe83 1470
a0d0e21e 1471/* HAS_SAFE_MEMCPY:
1472 * This symbol, if defined, indicates that the memcpy routine is available
1473 * to copy potentially overlapping memory blocks. Otherwise you should
1474 * probably use memmove() or memcpy(). If neither is defined, roll your
1475 * own version.
1476 */
1477#define HAS_SAFE_MEMCPY /**/
85e6fe83 1478
a0d0e21e 1479/* HAS_SETPGRP:
1480 * This symbol, if defined, indicates that the setpgrp routine is
1481 * available to set the current process group.
1482 */
1483/* USE_BSDPGRP:
1484 * This symbol, if defined, indicates that the BSD notion of process
1485 * group is to be used. For instance, you have to say setpgrp(pid, pgrp)
1486 * instead of the USG setpgrp().
1487 */
1488#undef HAS_SETPGRP /**/
1489#undef USE_BSDPGRP /**/
85e6fe83 1490
a0d0e21e 1491/* HAS_SYSCONF:
1492 * This symbol, if defined, indicates that sysconf() is available
1493 * to determine system related limits and options.
1494 */
1495#undef HAS_SYSCONF /**/
85e6fe83 1496
e518068a 1497/* Gconvert:
1498 * This preprocessor macro is defined to convert a floating point
1499 * number to a string without a trailing decimal point. This
1500 * emulates the behavior of sprintf("%g"), but is sometimes much more
1501 * efficient. If gconvert() is not available, but gcvt() drops the
1502 * trailing decimal point, then gcvt() is used. If all else fails,
1503 * a macro using sprintf("%g") is used. Arguments for the Gconvert
1504 * macro are: value, number of digits, whether trailing zeros should
1505 * be retained, and the output buffer.
1506 * Possible values are:
1507 * d_Gconvert='gconvert((x),(n),(t),(b))'
1508 * d_Gconvert='gcvt((x),(n),(b))'
1509 * d_Gconvert='sprintf((b),"%.*g",(n),(x))'
1510 * The last two assume trailing zeros should not be kept.
1511 */
1512#define Gconvert(x,n,t,b) my_gconvert(x,n,t,b)
1513
b94f085b 1514/* Sigjmp_buf:
1515 * This is the buffer type to be used with Sigsetjmp and Siglongjmp.
1516 */
1517/* Sigsetjmp:
1518 * This macro is used in the same way as sigsetjmp(), but will invoke
1519 * traditional setjmp() if sigsetjmp isn't available.
1520 */
1521/* Siglongjmp:
1522 * This macro is used in the same way as siglongjmp(), but will invoke
1523 * traditional longjmp() if siglongjmp isn't available.
1524 */
1525#undef HAS_SIGSETJMP /**/
1526#ifdef HAS_SIGSETJMP
1527#define Sigjmp_buf sigjmp_buf /* config-skip */
1528#define Sigsetjmp(buf,save_mask) sigsetjmp(buf,save_mask) /* config-skip */
1529#define Siglongjmp(buf,retval) siglongjmp(buf,retval) /* config-skip */
1530#else
1531#define Sigjmp_buf jmp_buf /* config-skip */
1532#define Sigsetjmp(buf,save_mask) setjmp(buf) /* config-skip */
1533#define Siglongjmp(buf,retval) longjmp(buf,retval) /* config-skip */
1534#endif
1535
a0d0e21e 1536/* USE_DYNAMIC_LOADING:
1537 * This symbol, if defined, indicates that dynamic loading of
1538 * some sort is available.
1539 */
1540#define USE_DYNAMIC_LOADING /**/
2304df62 1541
c07a80fd 1542/* STARTPERL:
1543 * This variable contains the string to put in front of a perl
1544 * script to make sure (one hopes) that it runs with perl and not
1545 * some shell.
1546 */
1547#define STARTPERL "" /**/
1548
e518068a 1549/* VOIDFLAGS:
1550 * This symbol indicates how much support of the void type is given by this
1551 * compiler. What various bits mean:
1552 *
1553 * 1 = supports declaration of void
1554 * 2 = supports arrays of pointers to functions returning void
1555 * 4 = supports comparisons between pointers to void functions and
1556 * addresses of void functions
1557 * 8 = suports declaration of generic void pointers
1558 *
1559 * The package designer should define VOIDUSED to indicate the requirements
1560 * of the package. This can be done either by #defining VOIDUSED before
1561 * including config.h, or by defining defvoidused in Myinit.U. If the
1562 * latter approach is taken, only those flags will be tested. If the
1563 * level of void support necessary is not present, defines void to int.
1564 */
1565#ifndef VOIDUSED
1566#define VOIDUSED 15
1567#endif
1568#define VOIDFLAGS 15
1569#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
1570#define void int /* is void to be avoided? */ /* config-skip */
1571#define M_VOID /* Xenix strikes again */ /* config-skip */
1572#endif
1573
a0d0e21e 1574#ifdef VMS_DO_SOCKETS
1575/* HAS_SOCKET:
1576 * This symbol, if defined, indicates that the BSD socket interface is
1577 * supported.
1578 */
1579/* HAS_SOCKETPAIR:
1580 * This symbol, if defined, indicates that the BSD socketpair() call is
1581 * supported.
1582 */
1583#define HAS_SOCKET /**/ /* config-skip */
1584#undef HAS_SOCKETPAIR /**/ /* config-skip */
85e6fe83 1585
a0d0e21e 1586/* HAS_GETHOSTENT:
1587 * This symbol, if defined, indicates that the gethostent routine is
1588 * available to lookup host names in some data base or other.
1589 */
1590#define HAS_GETHOSTENT /**/ /* config-skip */
2304df62 1591
a0d0e21e 1592/* VMS: In general, TCP/IP header files should be included from
1593 * sockadapt.h, instead of here, in order to keep the TCP/IP code
1594 * together as much as possible.
1595 */
1596/* I_NETINET_IN:
1597 * This symbol, if defined, indicates to the C program that it should
1598 * include <netinet/in.h>. Otherwise, you may try <sys/in.h>.
1599 */
1600#undef I_NETINET_IN /**/ /* config-skip */
2304df62 1601
a0d0e21e 1602/* Groups_t:
1603 * This symbol holds the type used for the second argument to
1604 * getgroups(). Usually, this is the same of gidtype, but
1605 * sometimes it isn't. It can be int, ushort, uid_t, etc...
1606 * It may be necessary to include <sys/types.h> to get any
1607 * typedef'ed information. This is only required if you have
1608 * getgroups().
1609 */
1610#ifdef HAS_GETGROUPS
1611#define Groups_t unsigned int /* Type for 2nd arg to getgroups() */ /* config-skip */
85e6fe83 1612#endif
1613
e518068a 1614/* DB_Prefix_t:
1615 * This symbol contains the type of the prefix structure element
1616 * in the <db.h> header file. In older versions of DB, it was
1617 * int, while in newer ones it is u_int32_t.
1618 */
1619/* DB_Hash_t:
1620 * This symbol contains the type of the prefix structure element
1621 * in the <db.h> header file. In older versions of DB, it was
1622 * int, while in newer ones it is size_t.
1623 */
1624#undef DB_Hash_t /**/
1625#undef DB_Prefix_t /**/
1626
a0d0e21e 1627/* I_NET_ERRNO:
1628 * This symbol, if defined, indicates that <net/errno.h> exists and
1629 * should be included.
1630*/
1631#undef I_NET_ERRNO /**/ /* config-skip */
85e6fe83 1632
e518068a 1633/* HAS_SELECT:
1634 * This symbol, if defined, indicates that the select routine is
1635 * available to select active file descriptors. If the timeout field
1636 * is used, <sys/time.h> may need to be included.
1637 */
1638#define HAS_SELECT /**/ /* config-skip */
1639
a0d0e21e 1640#else /* VMS_DO_SOCKETS */
1641
1642#undef HAS_SOCKET /**/ /* config-skip */
1643#undef HAS_SOCKETPAIR /**/ /* config-skip */
1644#undef HAS_GETHOSTENT /**/ /* config-skip */
1645#undef I_NETINET_IN /**/ /* config-skip */
1646#undef I_NET_ERRNO /**/ /* config-skip */
e518068a 1647#undef HAS_SELECT /**/ /* config-skip */
a0d0e21e 1648
1649#endif /* !VMS_DO_SOCKETS */
79072805 1650
1651#endif