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