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