This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.000 patch.0f: [enable metaconfig (PL48) users to regenerate Configure]
[perl5.git] / config.H
CommitLineData
a0d0e21e
LW
1/* This file (config.H) is a sample config.h file. If you are unable
2 to successfully run Configure, copy this file to config.h and
3 edit it to suit your system.
85e6fe83
LW
4*/
5/*
6 * This file was produced by running the config_h.SH script, which
8d063cd8
LW
7 * gets its values from config.sh, which is generally produced by
8 * running Configure.
9 *
10 * Feel free to modify any of this as the need arises. Note, however,
11 * that running config.h.SH again will wipe out any changes you've made.
12 * For a more permanent change edit config.sh and rerun config.h.SH.
85e6fe83
LW
13 *
14 * $Id: Config_h.U,v 3.0.1.2 1993/08/24 12:13:20 ram Exp $
8d063cd8 15 */
a687059c 16
a0d0e21e
LW
17/* Configuration time: Thu Oct 6 18:27:36 EDT 1994
18 * Configured by: andy
19 * Target system: crystal crystal 3.2 2 i386
68decaef 20 */
68decaef 21
85e6fe83
LW
22#ifndef _config_h_
23#define _config_h_
fe14fcc3 24
a0d0e21e
LW
25/* MEM_ALIGNBYTES:
26 * This symbol contains the number of bytes required to align a
27 * double. Usual values are 2, 4 and 8.
28 */
29#define MEM_ALIGNBYTES 4 /**/
30
85e6fe83
LW
31/* BIN:
32 * This symbol holds the path of the bin directory where the package will
33 * be installed. Program must be prepared to deal with ~name substitution.
a687059c 34 */
85e6fe83 35#define BIN "/usr/local/bin" /**/
a687059c 36
85e6fe83
LW
37/* BYTEORDER:
38 * This symbol hold the hexadecimal constant defined in byteorder,
39 * i.e. 0x1234 or 0x4321, etc...
a687059c 40 */
a0d0e21e 41#define BYTEORDER 0x1234 /* large digits for MSB */
a687059c 42
85e6fe83 43/* CPPSTDIN:
a687059c
LW
44 * This symbol contains the first part of the string which will invoke
45 * the C preprocessor on the standard input and produce to standard
85e6fe83
LW
46 * output. Typical value of "cc -E" or "/lib/cpp", but it can also
47 * call a wrapper. See CPPRUN.
a687059c 48 */
85e6fe83 49/* CPPMINUS:
a687059c
LW
50 * This symbol contains the second part of the string which will invoke
51 * the C preprocessor on the standard input and produce to standard
52 * output. This symbol will have the value "-" if CPPSTDIN needs a minus
53 * to specify standard input, otherwise the value is "".
54 */
a0d0e21e
LW
55#define CPPSTDIN "gcc -E"
56#define CPPMINUS "-"
57
58/* HAS_ALARM:
59 * This symbol, if defined, indicates that the alarm routine is
60 * available.
61 */
62#define HAS_ALARM /**/
a687059c 63
85e6fe83
LW
64/* HAS_BCMP:
65 * This symbol is defined if the bcmp() routine is available to
66 * compare blocks of memory.
a687059c 67 */
85e6fe83 68#define HAS_BCMP /**/
a687059c 69
85e6fe83
LW
70/* HAS_BCOPY:
71 * This symbol is defined if the bcopy() routine is available to
72 * copy blocks of memory.
a687059c 73 */
85e6fe83 74#define HAS_BCOPY /**/
fe14fcc3 75
85e6fe83
LW
76/* HAS_BZERO:
77 * This symbol is defined if the bzero() routine is available to
78 * set a memory block to 0.
fe14fcc3 79 */
85e6fe83 80#define HAS_BZERO /**/
8d063cd8 81
a0d0e21e
LW
82/* CASTI32:
83 * This symbol is defined if the C compiler can cast negative
84 * or large floating point numbers to 32-bit ints.
85 */
86/*#define CASTI32 /**/
87
85e6fe83
LW
88/* CASTNEGFLOAT:
89 * This symbol is defined if the C compiler can cast negative
90 * numbers to unsigned longs, ints and shorts.
fe14fcc3 91 */
85e6fe83 92/* CASTFLAGS:
fe14fcc3
LW
93 * This symbol contains flags that say what difficulties the compiler
94 * has casting odd floating values to unsigned long:
85e6fe83 95 * 0 = ok
fe14fcc3
LW
96 * 1 = couldn't cast < 0
97 * 2 = couldn't cast >= 0x80000000
98 */
85e6fe83
LW
99#define CASTNEGFLOAT /**/
100#define CASTFLAGS 0 /**/
fe14fcc3 101
85e6fe83 102/* CHARSPRINTF:
8d063cd8
LW
103 * This symbol is defined if this system declares "char *sprintf()" in
104 * stdio.h. The trend seems to be to declare it as "int sprintf()". It
105 * is up to the package author to declare sprintf correctly based on the
106 * symbol.
107 */
a0d0e21e
LW
108/*#define CHARSPRINTF /**/
109
110/* HAS_CHOWN:
111 * This symbol, if defined, indicates that the chown routine is
112 * available.
113 */
114#define HAS_CHOWN /**/
115
116/* HAS_CHROOT:
117 * This symbol, if defined, indicates that the chroot routine is
118 * available.
119 */
120#define HAS_CHROOT /**/
8d063cd8 121
85e6fe83 122/* HAS_CHSIZE:
fe14fcc3
LW
123 * This symbol, if defined, indicates that the chsize routine is available
124 * to truncate files. You might need a -lx to get this routine.
125 */
a0d0e21e 126#define HAS_CHSIZE /**/
85e6fe83
LW
127
128/* HASCONST:
129 * This symbol, if defined, indicates that this C compiler knows about
130 * the const type. There is no need to actually test for that symbol
131 * within your programs. The mere use of the "const" keyword will
132 * trigger the necessary tests.
133 */
a0d0e21e 134#define HASCONST /**/
85e6fe83
LW
135#ifndef HASCONST
136#define const
137#endif
fe14fcc3 138
85e6fe83 139/* HAS_CRYPT:
a687059c
LW
140 * This symbol, if defined, indicates that the crypt routine is available
141 * to encrypt passwords and the like.
142 */
85e6fe83 143#define HAS_CRYPT /**/
fe14fcc3 144
85e6fe83 145/* CSH:
fe14fcc3
LW
146 * This symbol, if defined, indicates that the C-shell exists.
147 * If defined, contains the full pathname of csh.
148 */
a0d0e21e 149#define CSH "/bin/csh" /**/
a687059c 150
a0d0e21e
LW
151/* HAS_CUSERID:
152 * This symbol, if defined, indicates that the cuserid routine is
153 * available to get character login names.
a687059c 154 */
a0d0e21e
LW
155#define HAS_CUSERID /**/
156
157/* HAS_DBL_DIG:
158 * This symbol, if defined, indicates that this system's <float.h>
159 * or <limits.h> defines the symbol DBL_DIG, which is the number
160 * of significant digits in a double precision number. If this
161 * symbol is not defined, a guess of 15 is usually pretty good.
162 */
163#define HAS_DBL_DIG /* */
164
165/* HAS_DIFFTIME:
166 * This symbol, if defined, indicates that the difftime routine is
167 * available.
168 */
169#define HAS_DIFFTIME /**/
a687059c 170
85e6fe83
LW
171/* HAS_DUP2:
172 * This symbol, if defined, indicates that the dup2 routine is
173 * available to duplicate file descriptors.
a687059c 174 */
85e6fe83 175#define HAS_DUP2 /**/
a687059c 176
85e6fe83 177/* HAS_FCHMOD:
a687059c
LW
178 * This symbol, if defined, indicates that the fchmod routine is available
179 * to change mode of opened files. If unavailable, use chmod().
180 */
a0d0e21e 181/*#define HAS_FCHMOD /**/
a687059c 182
85e6fe83 183/* HAS_FCHOWN:
a687059c
LW
184 * This symbol, if defined, indicates that the fchown routine is available
185 * to change ownership of opened files. If unavailable, use chown().
186 */
a0d0e21e 187/*#define HAS_FCHOWN /**/
a687059c 188
85e6fe83 189/* HAS_FCNTL:
fe14fcc3
LW
190 * This symbol, if defined, indicates to the C program that
191 * the fcntl() function exists.
a687059c 192 */
85e6fe83 193#define HAS_FCNTL /**/
a687059c 194
a0d0e21e
LW
195/* HAS_FGETPOS:
196 * This symbol, if defined, indicates that the fgetpos routine is
197 * available to get the file position indicator, similar to ftell().
198 */
199/*#define HAS_FGETPOS /**/
200
85e6fe83 201/* FLEXFILENAMES:
fe14fcc3
LW
202 * This symbol, if defined, indicates that the system supports filenames
203 * longer than 14 characters.
204 */
a0d0e21e 205/*#define FLEXFILENAMES /**/
fe14fcc3 206
85e6fe83
LW
207/* HAS_FLOCK:
208 * This symbol, if defined, indicates that the flock routine is
a687059c
LW
209 * available to do file locking.
210 */
a0d0e21e
LW
211/*#define HAS_FLOCK /**/
212
213/* HAS_FORK:
214 * This symbol, if defined, indicates that the fork routine is
215 * available.
216 */
217#define HAS_FORK /**/
218
219/* HAS_FSETPOS:
220 * This symbol, if defined, indicates that the fsetpos routine is
221 * available to set the file position indicator, similar to fseek().
222 */
223/*#define HAS_FSETPOS /**/
a687059c 224
85e6fe83 225/* HAS_GETGROUPS:
a687059c
LW
226 * This symbol, if defined, indicates that the getgroups() routine is
227 * available to get the list of process groups. If unavailable, multiple
228 * groups are probably not supported.
229 */
85e6fe83 230#define HAS_GETGROUPS /**/
a687059c 231
85e6fe83
LW
232/* HAS_GETHOSTENT:
233 * This symbol, if defined, indicates that the gethostent routine is
a687059c
LW
234 * available to lookup host names in some data base or other.
235 */
a0d0e21e 236/*#define HAS_GETHOSTENT /**/
85e6fe83
LW
237
238/* HAS_UNAME:
239 * This symbol, if defined, indicates that the C program may use the
240 * uname() routine to derive the host name. See also HAS_GETHOSTNAME
241 * and PHOSTNAME.
242 */
243#define HAS_UNAME /**/
a687059c 244
a0d0e21e
LW
245/* HAS_GETLOGIN:
246 * This symbol, if defined, indicates that the getlogin routine is
247 * available to get the login name.
248 */
249#define HAS_GETLOGIN /**/
250
85e6fe83
LW
251/* HAS_GETPGRP:
252 * This symbol, if defined, indicates that the getpgrp routine is
a687059c
LW
253 * available to get the current process group.
254 */
85e6fe83 255#define HAS_GETPGRP /**/
fe14fcc3 256
85e6fe83 257/* HAS_GETPGRP2:
fe14fcc3
LW
258 * This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
259 * routine is available to get the current process group.
260 */
85e6fe83 261/*#define HAS_GETPGRP2 /**/
a687059c 262
a0d0e21e
LW
263/* HAS_GETPPID:
264 * This symbol, if defined, indicates that the getppid routine is
265 * available to get the parent process ID.
266 */
267#define HAS_GETPPID /**/
268
85e6fe83
LW
269/* HAS_GETPRIORITY:
270 * This symbol, if defined, indicates that the getpriority routine is
a687059c
LW
271 * available to get a process's priority.
272 */
a0d0e21e
LW
273/*#define HAS_GETPRIORITY /**/
274
275/* HAS_GROUP:
276 * This symbol, if defined, indicates that the group routine is
277 * available.
278 */
279/*#define HAS_GROUP /**/
280
281/* HAS_HTONL:
282 * This symbol, if defined, indicates that the htonl() routine (and
283 * friends htons() ntohl() ntohs()) are available to do network
284 * order byte swapping.
285 */
286/* HAS_HTONS:
287 * This symbol, if defined, indicates that the htons() routine (and
288 * friends htonl() ntohl() ntohs()) are available to do network
289 * order byte swapping.
290 */
291/* HAS_NTOHL:
292 * This symbol, if defined, indicates that the ntohl() routine (and
293 * friends htonl() htons() ntohs()) are available to do network
294 * order byte swapping.
295 */
296/* HAS_NTOHS:
297 * This symbol, if defined, indicates that the ntohs() routine (and
298 * friends htonl() htons() ntohl()) are available to do network
299 * order byte swapping.
300 */
301#define HAS_HTONL /**/
302#define HAS_HTONS /**/
303#define HAS_NTOHL /**/
304#define HAS_NTOHS /**/
a687059c 305
85e6fe83 306/* HAS_KILLPG:
a687059c
LW
307 * This symbol, if defined, indicates that the killpg routine is available
308 * to kill process groups. If unavailable, you probably should use kill
309 * with a negative process number.
310 */
a0d0e21e 311/*#define HAS_KILLPG /**/
a687059c 312
85e6fe83
LW
313/* HAS_LINK:
314 * This symbol, if defined, indicates that the link routine is
315 * available to create hard links.
fe14fcc3 316 */
85e6fe83 317#define HAS_LINK /**/
fe14fcc3 318
a0d0e21e
LW
319/* HAS_LOCKF:
320 * This symbol, if defined, indicates that the lockf routine is
321 * available to do file locking.
322 */
323#define HAS_LOCKF /**/
324
85e6fe83
LW
325/* HAS_LSTAT:
326 * This symbol, if defined, indicates that the lstat routine is
327 * available to do file stats on symbolic links.
a687059c 328 */
85e6fe83 329#define HAS_LSTAT /**/
a687059c 330
a0d0e21e
LW
331/* HAS_MBLEN:
332 * This symbol, if defined, indicates that the mblen routine is available
333 * to find the number of bytes in a multibye character.
334 */
335/*#define HAS_MBLEN /**/
336
337/* HAS_MBSTOWCS:
338 * This symbol, if defined, indicates that the mbstowcs routine is
339 * available to covert a multibyte string into a wide character string.
340 */
341/*#define HAS_MBSTOWCS /**/
342
343/* HAS_MBTOWC:
344 * This symbol, if defined, indicates that the mbtowc routine is available
345 * to covert a multibyte to a wide character.
346 */
347/*#define HAS_MBTOWC /**/
348
85e6fe83
LW
349/* HAS_MEMCMP:
350 * This symbol, if defined, indicates that the memcmp routine is available
351 * to compare blocks of memory.
a687059c 352 */
85e6fe83
LW
353#define HAS_MEMCMP /**/
354
355/* HAS_MEMCPY:
68decaef 356 * This symbol, if defined, indicates that the memcpy routine is available
85e6fe83 357 * to copy blocks of memory.
68decaef 358 */
85e6fe83 359#define HAS_MEMCPY /**/
68decaef 360
85e6fe83 361/* HAS_MEMMOVE:
68decaef 362 * This symbol, if defined, indicates that the memmove routine is available
85e6fe83
LW
363 * to copy potentially overlapping blocks of memory. This should be used
364 * only when HAS_SAFE_BCOPY is not defined. If neither is there, roll your
365 * own version.
68decaef 366 */
85e6fe83 367/*#define HAS_MEMMOVE /**/
68decaef 368
85e6fe83 369/* HAS_MEMSET:
68decaef 370 * This symbol, if defined, indicates that the memset routine is available
85e6fe83 371 * to set blocks of memory.
68decaef 372 */
85e6fe83 373#define HAS_MEMSET /**/
a687059c 374
85e6fe83 375/* HAS_MKDIR:
a687059c
LW
376 * This symbol, if defined, indicates that the mkdir routine is available
377 * to create directories. Otherwise you should fork off a new process to
378 * exec /bin/mkdir.
379 */
85e6fe83 380#define HAS_MKDIR /**/
fe14fcc3 381
a0d0e21e
LW
382/* HAS_MKTIME:
383 * This symbol, if defined, indicates that the mktime routine is
384 * available.
385 */
386#define HAS_MKTIME /**/
387
85e6fe83 388/* HAS_MSG:
fe14fcc3 389 * This symbol, if defined, indicates that the entire msg*(2) library is
85e6fe83 390 * supported (IPC mechanism based on message queues).
fe14fcc3 391 */
85e6fe83 392#define HAS_MSG /**/
fe14fcc3 393
a0d0e21e
LW
394/* HAS_NICE:
395 * This symbol, if defined, indicates that the nice routine is
396 * available.
fe14fcc3 397 */
a0d0e21e 398#define HAS_NICE /**/
fe14fcc3 399
a0d0e21e
LW
400/* HAS_OPEN3:
401 * This manifest constant lets the C program know that the three
402 * argument form of open(2) is available.
fe14fcc3 403 */
a0d0e21e 404#define HAS_OPEN3 /**/
fe14fcc3 405
a0d0e21e
LW
406/* HAS_PASSWD:
407 * This symbol, if defined, indicates that the passwd routine is
408 * available.
fe14fcc3 409 */
a0d0e21e 410/*#define HAS_PASSWD /**/
a687059c 411
a0d0e21e
LW
412/* HAS_PAUSE:
413 * This symbol, if defined, indicates that the pause routine is
414 * available to suspend a process until a signal is received.
a687059c 415 */
a0d0e21e 416#define HAS_PAUSE /**/
fe14fcc3 417
a0d0e21e
LW
418/* HAS_PIPE:
419 * This symbol, if defined, indicates that the pipe routine is
420 * available to create an inter-process channel.
fe14fcc3 421 */
a0d0e21e
LW
422#define HAS_PIPE /**/
423
424/* HAS_READDIR:
425 * This symbol, if defined, indicates that the readdir routine is
426 * available to read directory entries. You may have to include
427 * <dirent.h>. See I_DIRENT.
428 */
429#define HAS_READDIR /**/
430
431/* HAS_SEEKDIR:
432 * This symbol, if defined, indicates that the seekdir routine is
433 * available. You may have to include <dirent.h>. See I_DIRENT.
434 */
435#define HAS_SEEKDIR /**/
436
437/* HAS_TELLDIR:
438 * This symbol, if defined, indicates that the telldir routine is
439 * available. You may have to include <dirent.h>. See I_DIRENT.
440 */
441#define HAS_TELLDIR /**/
442
443/* HAS_REWINDDIR:
444 * This symbol, if defined, indicates that the rewinddir routine is
445 * available. You may have to include <dirent.h>. See I_DIRENT.
446 */
447#define HAS_REWINDDIR /**/
448
449/* HAS_READLINK:
450 * This symbol, if defined, indicates that the readlink routine is
451 * available to read the value of a symbolic link.
452 */
453#define HAS_READLINK /**/
a687059c 454
85e6fe83 455/* HAS_RENAME:
a687059c
LW
456 * This symbol, if defined, indicates that the rename routine is available
457 * to rename files. Otherwise you should do the unlink(), link(), unlink()
458 * trick.
459 */
85e6fe83 460#define HAS_RENAME /**/
a687059c 461
85e6fe83
LW
462/* HAS_RMDIR:
463 * This symbol, if defined, indicates that the rmdir routine is
464 * available to remove directories. Otherwise you should fork off a
465 * new process to exec /bin/rmdir.
68decaef 466 */
85e6fe83 467#define HAS_RMDIR /**/
68decaef 468
85e6fe83
LW
469/* HAS_SELECT:
470 * This symbol, if defined, indicates that the select routine is
471 * available to select active file descriptors. If the timeout field
472 * is used, <sys/time.h> may need to be included.
68decaef 473 */
85e6fe83 474#define HAS_SELECT /**/
68decaef 475
85e6fe83 476/* HAS_SEM:
fe14fcc3
LW
477 * This symbol, if defined, indicates that the entire sem*(2) library is
478 * supported.
479 */
85e6fe83 480#define HAS_SEM /**/
fe14fcc3 481
85e6fe83 482/* HAS_SETEGID:
a687059c
LW
483 * This symbol, if defined, indicates that the setegid routine is available
484 * to change the effective gid of the current program.
485 */
85e6fe83 486#define HAS_SETEGID /**/
a687059c 487
85e6fe83 488/* HAS_SETEUID:
a687059c
LW
489 * This symbol, if defined, indicates that the seteuid routine is available
490 * to change the effective uid of the current program.
491 */
85e6fe83
LW
492#define HAS_SETEUID /**/
493
a0d0e21e
LW
494/* HAS_SETLINEBUF:
495 * This symbol, if defined, indicates that the setlinebuf routine is
496 * available to change stderr or stdout from block-buffered or unbuffered
497 * to a line-buffered mode.
498 */
499/*#define HAS_SETLINEBUF /**/
500
501/* HAS_SETLOCALE:
502 * This symbol, if defined, indicates that the setlocale routine is
503 * available to handle locale-specific ctype implementations.
504 */
505#define HAS_SETLOCALE /**/
506
85e6fe83
LW
507/* HAS_SETPGID:
508 * This symbol, if defined, indicates that the setpgid routine is
509 * available to set process group ID.
510 */
511#define HAS_SETPGID /**/
a687059c 512
85e6fe83
LW
513/* HAS_SETPGRP:
514 * This symbol, if defined, indicates that the setpgrp routine is
a687059c
LW
515 * available to set the current process group.
516 */
85e6fe83 517#define HAS_SETPGRP /**/
a687059c 518
85e6fe83 519/* HAS_SETPGRP2:
fe14fcc3
LW
520 * This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
521 * routine is available to set the current process group.
522 */
85e6fe83 523/*#define HAS_SETPGRP2 /**/
fe14fcc3 524
85e6fe83
LW
525/* HAS_SETPRIORITY:
526 * This symbol, if defined, indicates that the setpriority routine is
a687059c
LW
527 * available to set a process's priority.
528 */
a0d0e21e 529/*#define HAS_SETPRIORITY /**/
a687059c 530
85e6fe83 531/* HAS_SETREGID:
fe14fcc3 532 * This symbol, if defined, indicates that the setregid routine is
85e6fe83
LW
533 * available to change the real and effective gid of the current
534 * process.
a687059c 535 */
85e6fe83 536/* HAS_SETRESGID:
fe14fcc3
LW
537 * This symbol, if defined, indicates that the setresgid routine is
538 * available to change the real, effective and saved gid of the current
85e6fe83 539 * process.
fe14fcc3 540 */
85e6fe83
LW
541#define HAS_SETREGID /**/
542/*#define HAS_SETRESGID /**/
a687059c 543
85e6fe83 544/* HAS_SETREUID:
fe14fcc3 545 * This symbol, if defined, indicates that the setreuid routine is
85e6fe83
LW
546 * available to change the real and effective uid of the current
547 * process.
fe14fcc3 548 */
85e6fe83 549/* HAS_SETRESUID:
fe14fcc3
LW
550 * This symbol, if defined, indicates that the setresuid routine is
551 * available to change the real, effective and saved uid of the current
85e6fe83 552 * process.
a687059c 553 */
85e6fe83
LW
554#define HAS_SETREUID /**/
555/*#define HAS_SETRESUID /**/
a687059c 556
85e6fe83 557/* HAS_SETRGID:
a687059c
LW
558 * This symbol, if defined, indicates that the setrgid routine is available
559 * to change the real gid of the current program.
560 */
a0d0e21e 561/*#define HAS_SETRGID /**/
a687059c 562
85e6fe83 563/* HAS_SETRUID:
a687059c
LW
564 * This symbol, if defined, indicates that the setruid routine is available
565 * to change the real uid of the current program.
566 */
a0d0e21e 567/*#define HAS_SETRUID /**/
fe14fcc3 568
85e6fe83
LW
569/* HAS_SETSID:
570 * This symbol, if defined, indicates that the setsid routine is
571 * available to set the process group ID.
fe14fcc3 572 */
85e6fe83 573#define HAS_SETSID /**/
fe14fcc3 574
85e6fe83
LW
575/* HAS_SHM:
576 * This symbol, if defined, indicates that the entire shm*(2) library is
577 * supported.
2b317908 578 */
85e6fe83 579#define HAS_SHM /**/
fe14fcc3 580
a0d0e21e
LW
581/* Shmat_t:
582 * This symbol holds the return type of the shmat() system call.
583 * Usually set to 'void *' or 'char *'.
fe14fcc3 584 */
a0d0e21e
LW
585/* HAS_SHMAT_PROTOTYPE:
586 * This symbol, if defined, indicates that the sys/shm.h includes
587 * a prototype for shmat(). Otherwise, it is up to the program to
588 * guess one. Shmat_t shmat _((int, Shmat_t, int)) is a good guess,
589 * but not always right so it should be emitted by the program only
590 * when HAS_SHMAT_PROTOTYPE is not defined to avoid conflicting defs.
fe14fcc3 591 */
a0d0e21e
LW
592#define Shmat_t char * /**/
593/*#define HAS_SHMAT_PROTOTYPE /**/
a687059c 594
85e6fe83 595/* HAS_SOCKET:
a687059c
LW
596 * This symbol, if defined, indicates that the BSD socket interface is
597 * supported.
598 */
85e6fe83
LW
599/* HAS_SOCKETPAIR:
600 * This symbol, if defined, indicates that the BSD socketpair() call is
a687059c
LW
601 * supported.
602 */
85e6fe83 603#define HAS_SOCKET /**/
a0d0e21e 604/*#define HAS_SOCKETPAIR /**/
a687059c 605
85e6fe83 606/* USE_STAT_BLOCKS:
a687059c
LW
607 * This symbol is defined if this system has a stat structure declaring
608 * st_blksize and st_blocks.
609 */
a0d0e21e 610/*#define USE_STAT_BLOCKS /**/
a687059c 611
85e6fe83 612/* USE_STD_STDIO:
a687059c
LW
613 * This symbol is defined if this system has a FILE structure declaring
614 * _ptr and _cnt in stdio.h.
615 */
85e6fe83 616#define USE_STD_STDIO /**/
8d063cd8 617
a0d0e21e
LW
618/* HAS_STRCHR:
619 * This symbol is defined to indicate that the strchr()/strrchr()
620 * functions are available for string searching. If not, try the
621 * index()/rindex() pair.
622 */
623/* HAS_INDEX:
624 * This symbol is defined to indicate that the index()/rindex()
625 * functions are available for string searching.
626 */
627#define HAS_STRCHR /**/
628/*#define HAS_INDEX /**/
629
630/* HAS_STRCOLL:
631 * This symbol, if defined, indicates that the strcoll routine is
632 * available to compare strings using collating information.
633 */
634#define HAS_STRCOLL /**/
635
85e6fe83 636/* USE_STRUCT_COPY:
8d063cd8
LW
637 * This symbol, if defined, indicates that this C compiler knows how
638 * to copy structures. If undefined, you'll need to use a block copy
639 * routine of some sort instead.
640 */
85e6fe83 641#define USE_STRUCT_COPY /**/
fe14fcc3 642
a0d0e21e
LW
643/* HAS_STRERROR:
644 * This symbol, if defined, indicates that the strerror routine is
645 * available to translate error numbers to strings. See the writeup
646 * of Strerror() in this file before you try to define your own.
647 */
648/* HAS_SYS_ERRLIST:
649 * This symbol, if defined, indicates that the sys_errlist array is
650 * available to translate error numbers to strings. The extern int
651 * sys_nerr gives the size of that table.
652 */
653/* Strerror:
654 * This preprocessor symbol is defined as a macro if strerror() is
655 * not available to translate error numbers to strings but sys_errlist[]
656 * array is there.
657 */
658#define HAS_STRERROR /**/
659#define HAS_SYS_ERRLIST /**/
660#define Strerror(e) strerror(e)
661
662/* HAS_STRXFRM:
663 * This symbol, if defined, indicates that the strxfrm() routine is
664 * available to transform strings.
665 */
666#define HAS_STRXFRM /**/
667
85e6fe83 668/* HAS_SYMLINK:
a687059c
LW
669 * This symbol, if defined, indicates that the symlink routine is available
670 * to create symbolic links.
671 */
85e6fe83 672#define HAS_SYMLINK /**/
a687059c 673
85e6fe83
LW
674/* HAS_SYSCALL:
675 * This symbol, if defined, indicates that the syscall routine is
676 * available to call arbitrary system calls. If undefined, that's tough.
a687059c 677 */
85e6fe83 678#define HAS_SYSCALL /**/
a687059c 679
85e6fe83
LW
680/* HAS_SYSTEM:
681 * This symbol, if defined, indicates that the system routine is
682 * available to issue a shell command.
68decaef 683 */
85e6fe83 684#define HAS_SYSTEM /**/
68decaef 685
a0d0e21e
LW
686/* HAS_TCGETPGRP:
687 * This symbol, if defined, indicates that the tcgetpgrp routine is
688 * available to get foreground process group ID.
689 */
690#define HAS_TCGETPGRP /**/
691
692/* HAS_TCSETPGRP:
693 * This symbol, if defined, indicates that the tcsetpgrp routine is
694 * available to set foreground process group ID.
85e6fe83 695 */
a0d0e21e 696#define HAS_TCSETPGRP /**/
85e6fe83
LW
697
698/* HAS_TIMES:
699 * This symbol, if defined, indicates that the times() routine exists.
700 * Note that this became obsolete on some systems (SUNOS), which now
701 * use getrusage(). It may be necessary to include <sys/times.h>.
702 */
703#define HAS_TIMES /**/
704
705/* HAS_TRUNCATE:
fe14fcc3
LW
706 * This symbol, if defined, indicates that the truncate routine is
707 * available to truncate files.
a687059c 708 */
a0d0e21e
LW
709/*#define HAS_TRUNCATE /**/
710
711/* HAS_TZNAME:
712 * This symbol, if defined, indicates that the tzname[] array is
713 * available to access timezone names.
714 */
715#define HAS_TZNAME /**/
716
717/* HAS_UMASK:
718 * This symbol, if defined, indicates that the umask routine is
719 * available to set and get the value of the file creation mask.
720 */
721#define HAS_UMASK /**/
a687059c 722
a0d0e21e
LW
723/* HAS_VFORK:
724 * This symbol, if defined, indicates that vfork() exists.
8d063cd8 725 */
a0d0e21e 726/*#define HAS_VFORK /**/
a687059c 727
85e6fe83
LW
728/* VOIDSIG:
729 * This symbol is defined if this system declares "void (*signal(...))()" in
730 * signal.h. The old way was to declare it as "int (*signal(...))()". It
a687059c
LW
731 * is up to the package author to declare things correctly based on the
732 * symbol.
733 */
85e6fe83 734#define VOIDSIG /**/
a687059c 735
85e6fe83 736/* HASVOLATILE:
fe14fcc3
LW
737 * This symbol, if defined, indicates that this C compiler knows about
738 * the volatile declaration.
739 */
a0d0e21e 740#define HASVOLATILE /**/
85e6fe83
LW
741#ifndef HASVOLATILE
742#define volatile
743#endif
fe14fcc3 744
85e6fe83 745/* HAS_VPRINTF:
a687059c
LW
746 * This symbol, if defined, indicates that the vprintf routine is available
747 * to printf with a pointer to an argument list. If unavailable, you
748 * may need to write your own, probably in terms of _doprnt().
749 */
85e6fe83 750/* USE_CHAR_VSPRINTF:
a687059c
LW
751 * This symbol is defined if this system has vsprintf() returning type
752 * (char*). The trend seems to be to declare it as "int vsprintf()". It
753 * is up to the package author to declare vsprintf correctly based on the
754 * symbol.
755 */
85e6fe83 756#define HAS_VPRINTF /**/
a0d0e21e 757/*#define USE_CHAR_VSPRINTF /**/
a687059c 758
85e6fe83 759/* HAS_WAIT4:
fe14fcc3
LW
760 * This symbol, if defined, indicates that wait4() exists.
761 */
a0d0e21e 762/*#define HAS_WAIT4 /**/
fe14fcc3 763
85e6fe83
LW
764/* HAS_WAITPID:
765 * This symbol, if defined, indicates that the waitpid routine is
766 * available to wait for child process.
fe14fcc3 767 */
85e6fe83 768#define HAS_WAITPID /**/
fe14fcc3 769
a0d0e21e
LW
770/* HAS_WCSTOMBS:
771 * This symbol, if defined, indicates that the wcstombs routine is
772 * available to convert wide character strings to multibyte strings.
773 */
774/*#define HAS_WCSTOMBS /**/
775
776/* HAS_WCTOMB:
777 * This symbol, if defined, indicates that the wctomb routine is available
778 * to covert a wide character to a multibyte.
779 */
780/*#define HAS_WCTOMB /**/
781
782/* Fpos_t:
783 * This symbol holds the type used to declare file positions in libc.
784 * It can be fpos_t, long, uint, etc... It may be necessary to include
785 * <sys/types.h> to get any typedef'ed information.
786 */
787#define Fpos_t fpos_t /* File position type */
788
789/* Gid_t:
790 * This symbol holds the return type of getgid() and the type of
791 * argument to setrgid() and related functions. Typically,
792 * it is the type of group ids in the kernel. It can be int, ushort,
793 * uid_t, etc... It may be necessary to include <sys/types.h> to get
794 * any typedef'ed information.
a687059c 795 */
a0d0e21e 796#define Gid_t gid_t /* Type for getgid(), etc... */
2b317908 797
85e6fe83
LW
798/* I_DIRENT:
799 * This symbol, if defined, indicates to the C program that it should
800 * include <dirent.h>. Using this symbol also triggers the definition
801 * of the Direntry_t define which ends up being 'struct dirent' or
802 * 'struct direct' depending on the availability of <dirent.h>.
803 */
804/* DIRNAMLEN:
805 * This symbol, if defined, indicates to the C program that the length
806 * of directory entry names is provided by a d_namlen field. Otherwise
807 * you need to do strlen() on the d_name field.
2b317908 808 */
a0d0e21e
LW
809/* Direntry_t:
810 * This symbol is set to 'struct direct' or 'struct dirent' depending on
811 * whether dirent is available or not. You should use this pseudo type to
812 * portably declare your directory entries.
813 */
85e6fe83
LW
814#define I_DIRENT /**/
815/*#define DIRNAMLEN /**/
85e6fe83 816#define Direntry_t struct dirent
a0d0e21e
LW
817
818/* I_DLFCN:
819 * This symbol, if defined, indicates that <dlfcn.h> exists and should
820 * be included.
821 */
822/*#define I_DLFCN /**/
a687059c 823
85e6fe83 824/* I_FCNTL:
fe14fcc3 825 * This manifest constant tells the C program to include <fcntl.h>.
a687059c 826 */
a0d0e21e 827#define I_FCNTL /**/
a687059c 828
a0d0e21e
LW
829/* I_FLOAT:
830 * This symbol, if defined, indicates to the C program that it should
831 * include <float.h> to get definition of symbols like DBL_MAX or
832 * DBL_MIN, i.e. machine dependent floating point values.
a687059c 833 */
a0d0e21e 834#define I_FLOAT /**/
a687059c 835
85e6fe83 836/* I_GRP:
a687059c 837 * This symbol, if defined, indicates to the C program that it should
85e6fe83 838 * include <grp.h>.
a687059c 839 */
85e6fe83 840#define I_GRP /**/
a687059c 841
a0d0e21e
LW
842/* I_LIMITS:
843 * This symbol, if defined, indicates to the C program that it should
844 * include <limits.h> to get definition of symbols like WORD_BIT or
845 * LONG_MAX, i.e. machine dependant limitations.
846 */
847#define I_LIMITS /**/
848
849/* I_MATH:
850 * This symbol, if defined, indicates to the C program that it should
851 * include <math.h>.
852 */
853#define I_MATH /**/
854
855/* I_MEMORY:
856 * This symbol, if defined, indicates to the C program that it should
857 * include <memory.h>.
858 */
859/*#define I_MEMORY /**/
860
85e6fe83
LW
861/* I_NDBM:
862 * This symbol, if defined, indicates that ndbm.h exists and should
863 * be included.
fe14fcc3 864 */
85e6fe83 865#define I_NDBM /**/
fe14fcc3 866
85e6fe83 867/* I_NETINET_IN:
a687059c 868 * This symbol, if defined, indicates to the C program that it should
85e6fe83 869 * include <netinet/in.h>. Otherwise, you may try <sys/in.h>.
a687059c 870 */
85e6fe83 871#define I_NETINET_IN /**/
85e6fe83 872
a0d0e21e
LW
873/* I_PWD:
874 * This symbol, if defined, indicates to the C program that it should
875 * include <pwd.h>.
876 */
877/* PWQUOTA:
878 * This symbol, if defined, indicates to the C program that struct passwd
879 * contains pw_quota.
880 */
881/* PWAGE:
882 * This symbol, if defined, indicates to the C program that struct passwd
883 * contains pw_age.
884 */
885/* PWCHANGE:
886 * This symbol, if defined, indicates to the C program that struct passwd
887 * contains pw_change.
fe14fcc3 888 */
a0d0e21e
LW
889/* PWCLASS:
890 * This symbol, if defined, indicates to the C program that struct passwd
891 * contains pw_class.
892 */
893/* PWEXPIRE:
894 * This symbol, if defined, indicates to the C program that struct passwd
895 * contains pw_expire.
896 */
897/* PWCOMMENT:
898 * This symbol, if defined, indicates to the C program that struct passwd
899 * contains pw_comment.
900 */
901#define I_PWD /**/
902/*#define PWQUOTA /**/
903#define PWAGE /**/
904/*#define PWCHANGE /**/
905/*#define PWCLASS /**/
906/*#define PWEXPIRE /**/
907#define PWCOMMENT /**/
85e6fe83
LW
908
909/* I_STDDEF:
910 * This symbol, if defined, indicates that <stddef.h> exists and should
911 * be included.
fe14fcc3 912 */
85e6fe83
LW
913#define I_STDDEF /**/
914
a0d0e21e
LW
915/* I_STDLIB:
916 * This symbol, if defined, indicates that <stdlib.h> exists and should
917 * be included.
918 */
919#define I_STDLIB /**/
920
85e6fe83
LW
921/* I_STRING:
922 * This symbol, if defined, indicates to the C program that it should
923 * include <string.h> (USG systems) instead of <strings.h> (BSD systems).
fe14fcc3 924 */
85e6fe83
LW
925#define I_STRING /**/
926
927/* I_SYS_DIR:
928 * This symbol, if defined, indicates to the C program that it should
929 * include <sys/dir.h>.
fe14fcc3 930 */
85e6fe83 931#define I_SYS_DIR /**/
a687059c 932
85e6fe83
LW
933/* I_SYS_FILE:
934 * This symbol, if defined, indicates to the C program that it should
935 * include <sys/file.h> to get definition of R_OK and friends.
a687059c 936 */
a0d0e21e 937/*#define I_SYS_FILE /**/
a687059c 938
85e6fe83
LW
939/* I_SYS_IOCTL:
940 * This symbol, if defined, indicates that <sys/ioctl.h> exists and should
941 * be included. Otherwise, include <sgtty.h> or <termio.h>.
a687059c 942 */
85e6fe83 943#define I_SYS_IOCTL /**/
a687059c 944
85e6fe83
LW
945/* I_SYS_NDIR:
946 * This symbol, if defined, indicates to the C program that it should
947 * include <sys/ndir.h>.
fe14fcc3 948 */
85e6fe83
LW
949/*#define I_SYS_NDIR /**/
950
a0d0e21e
LW
951/* I_SYS_PARAM:
952 * This symbol, if defined, indicates to the C program that it should
953 * include <sys/param.h>.
954 */
955#define I_SYS_PARAM /**/
956
85e6fe83
LW
957/* I_SYS_SELECT:
958 * This symbol, if defined, indicates to the C program that it should
959 * include <sys/select.h> in order to get definition of struct timeval.
fe14fcc3 960 */
85e6fe83
LW
961/*#define I_SYS_SELECT /**/
962
a0d0e21e 963/* I_SYS_TIMES:
85e6fe83 964 * This symbol, if defined, indicates to the C program that it should
a0d0e21e 965 * include <sys/times.h>.
fe14fcc3 966 */
a0d0e21e
LW
967#define I_SYS_TIMES /**/
968
969/* I_TERMIO:
970 * This symbol, if defined, indicates that the program should include
971 * <termio.h> rather than <sgtty.h>. There are also differences in
972 * the ioctl() calls that depend on the value of this symbol.
973 */
974/* I_TERMIOS:
975 * This symbol, if defined, indicates that the program should include
976 * the POSIX termios.h rather than sgtty.h or termio.h.
977 * There are also differences in the ioctl() calls that depend on the
978 * value of this symbol.
979 */
980/* I_SGTTY:
981 * This symbol, if defined, indicates that the program should include
982 * <sgtty.h> rather than <termio.h>. There are also differences in
983 * the ioctl() calls that depend on the value of this symbol.
984 */
985/*#define I_TERMIO /**/
986#define I_TERMIOS /**/
987/*#define I_SGTTY /**/
988
989/* I_TIME:
990 * This symbol, if defined, indicates to the C program that it should
991 * include <time.h>.
992 */
993/* I_SYS_TIME:
994 * This symbol, if defined, indicates to the C program that it should
995 * include <sys/time.h>.
996 */
997/* I_SYS_TIME_KERNEL:
fe14fcc3 998 * This symbol, if defined, indicates to the C program that it should
85e6fe83 999 * include <sys/time.h> with KERNEL defined.
fe14fcc3 1000 */
85e6fe83
LW
1001/*#define I_TIME /**/
1002#define I_SYS_TIME /**/
1003/*#define I_SYS_TIME_KERNEL /**/
fe14fcc3 1004
a0d0e21e
LW
1005/* I_UNISTD:
1006 * This symbol, if defined, indicates to the C program that it should
1007 * include <unistd.h>.
1008 */
1009#define I_UNISTD /**/
1010
85e6fe83 1011/* I_UTIME:
a687059c 1012 * This symbol, if defined, indicates to the C program that it should
85e6fe83 1013 * include <utime.h>.
a687059c 1014 */
85e6fe83 1015#define I_UTIME /**/
a687059c 1016
a0d0e21e
LW
1017/* I_STDARG:
1018 * This symbol, if defined, indicates that <stdarg.h> exists and should
1019 * be included.
1020 */
85e6fe83 1021/* I_VARARGS:
fe14fcc3 1022 * This symbol, if defined, indicates to the C program that it should
85e6fe83 1023 * include <varargs.h>.
fe14fcc3 1024 */
a0d0e21e
LW
1025#define I_STDARG /**/
1026/*#define I_VARARGS /**/
1027
1028/* I_VFORK:
1029 * This symbol, if defined, indicates to the C program that it should
1030 * include vfork.h.
1031 */
1032/*#define I_VFORK /**/
fe14fcc3 1033
85e6fe83 1034/* INTSIZE:
a687059c
LW
1035 * This symbol contains the size of an int, so that the C preprocessor
1036 * can make decisions based on it.
1037 */
1038#define INTSIZE 4 /**/
1039
85e6fe83
LW
1040/* Off_t:
1041 * This symbol holds the type used to declare offsets in the kernel.
1042 * It can be int, long, off_t, etc... It may be necessary to include
1043 * <sys/types.h> to get any typedef'ed information.
fe14fcc3 1044 */
85e6fe83
LW
1045#define Off_t off_t /* <offset> type */
1046
1047/* PRIVLIB:
1048 * This symbol contains the name of the private library for this package.
1049 * The library is private in the sense that it needn't be in anyone's
1050 * execution path, but it should be accessible by the world. The program
1051 * should be prepared to do ~ expansion.
fe14fcc3 1052 */
a0d0e21e
LW
1053#define PRIVLIB "/usr/local/lib/perl5" /**/
1054
1055/* CAN_PROTOTYPE:
1056 * If defined, this macro indicates that the C compiler can handle
1057 * function prototypes.
1058 */
1059/* _:
1060 * This macro is used to declare function parameters for folks who want
1061 * to make declarations with prototypes using a different style than
1062 * the above macros. Use double parentheses. For example:
1063 *
1064 * int main _((int argc, char *argv[]));
1065 */
1066#define CAN_PROTOTYPE /**/
1067#ifdef CAN_PROTOTYPE
1068#define _(args) args
1069#else
1070#define _(args) ()
1071#endif
85e6fe83
LW
1072
1073/* RANDBITS:
1074 * This symbol contains the number of bits of random number the rand()
1075 * function produces. Usual values are 15, 16, and 31.
fe14fcc3 1076 */
a0d0e21e 1077#define RANDBITS 15 /**/
85e6fe83
LW
1078
1079/* SCRIPTDIR:
1080 * This symbol holds the name of the directory in which the user wants
1081 * to put publicly executable scripts for the package in question. It
1082 * is often a directory that is mounted across diverse architectures.
1083 * Programs must be prepared to deal with ~name expansion.
fe14fcc3 1084 */
85e6fe83
LW
1085#define SCRIPTDIR "/usr/local/bin" /**/
1086
a0d0e21e
LW
1087/* Select_fd_set_t:
1088 * This symbol holds the type used for the 2nd, 3rd, and 4th
1089 * arguments to select. Usually, this is 'fd_set *', if HAS_FD_SET
1090 * is defined, and 'int *' otherwise. This is only useful if you
1091 * have select(), of course.
1092 */
1093#define Select_fd_set_t fd_set * /**/
1094
1095/* SIG_NAME:
1096 * This symbol contains a list of signal names in order. This is intended
1097 * to be used as a static array initialization, like this:
1098 * char *sig_name[] = { SIG_NAME };
1099 * The signals in the list are separated with commas, and each signal
1100 * is surrounded by double quotes. There is no leading SIG in the signal
1101 * name, i.e. SIGQUIT is known as "QUIT".
1102 */
1103#define SIG_NAME "ZERO","HUP","INT","QUIT","ILL","TRAP","ABRT","EMT","FPE","KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM","USR1","USR2","CLD","PWR","WINCH","21","POLL","CONT","STOP","TSTP","TTIN","TTOU" /**/
1104
1105/* Size_t:
1106 * This symbol holds the type used to declare length parameters
1107 * for string functions. It is usually size_t, but may be
1108 * unsigned long, int, etc. It may be necessary to include
1109 * <sys/types.h> to get any typedef'ed information.
1110 */
1111#define Size_t size_t /* length paramater for string functions */
1112
85e6fe83
LW
1113/* STDCHAR:
1114 * This symbol is defined to be the type of char used in stdio.h.
1115 * It has the values "unsigned char" or "char".
fe14fcc3 1116 */
85e6fe83
LW
1117#define STDCHAR unsigned char /**/
1118
1119/* Uid_t:
1120 * This symbol holds the type used to declare user ids in the kernel.
1121 * It can be int, ushort, uid_t, etc... It may be necessary to include
1122 * <sys/types.h> to get any typedef'ed information.
fe14fcc3 1123 */
85e6fe83 1124#define Uid_t uid_t /* UID type */
fe14fcc3 1125
a0d0e21e
LW
1126/* VOIDFLAGS:
1127 * This symbol indicates how much support of the void type is given by this
1128 * compiler. What various bits mean:
1129 *
1130 * 1 = supports declaration of void
1131 * 2 = supports arrays of pointers to functions returning void
1132 * 4 = supports comparisons between pointers to void functions and
1133 * addresses of void functions
1134 * 8 = suports declaration of generic void pointers
1135 *
1136 * The package designer should define VOIDUSED to indicate the requirements
1137 * of the package. This can be done either by #defining VOIDUSED before
1138 * including config.h, or by defining defvoidused in Myinit.U. If the
1139 * latter approach is taken, only those flags will be tested. If the
1140 * level of void support necessary is not present, defines void to int.
1141 */
1142#ifndef VOIDUSED
1143#define VOIDUSED 15
1144#endif
1145#define VOIDFLAGS 15
1146#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
1147#define void int /* is void to be avoided? */
1148#define M_VOID /* Xenix strikes again */
1149#endif
1150
85e6fe83
LW
1151/* EUNICE:
1152 * This symbol, if defined, indicates that the program is being compiled
1153 * under the EUNICE package under VMS. The program will need to handle
1154 * things like files that don't go away the first time you unlink them,
1155 * due to version numbering. It will also need to compensate for lack
1156 * of a respectable link() command.
68decaef 1157 */
85e6fe83
LW
1158/* VMS:
1159 * This symbol, if defined, indicates that the program is running under
1160 * VMS. It is currently only set in conjunction with the EUNICE symbol.
2b317908 1161 */
85e6fe83
LW
1162/*#define EUNICE /**/
1163/*#define VMS /**/
68decaef 1164
a0d0e21e
LW
1165/* LOC_SED:
1166 * This symbol holds the complete pathname to the sed program.
85e6fe83 1167 */
a0d0e21e
LW
1168#define LOC_SED "/bin/sed" /**/
1169
1170/* ARCHLIB:
1171 * This variable, if defined, holds the name of the directory in
1172 * which the user wants to put architecture-dependent public
1173 * library files for perl5. It is most often a local directory
1174 * such as /usr/local/lib. Programs using this variable must be
1175 * prepared to deal with filename expansion. If ARCHLIB is the
1176 * same as PRIVLIB, it is not defined, since presumably the
1177 * program already searches PRIVLIB.
1178 */
1179#define ARCHLIB "/usr/local/lib/perl5/isc" /**/
1180
1181/* CAT2:
1182 * This macro catenates 2 tokens together.
1183 */
1184#if 42 == 1
1185#define CAT2(a,b)a/**/b
1186#define CAT3(a,b,c)a/**/b/**/c
1187#define CAT4(a,b,c,d)a/**/b/**/c/**/d
1188#define CAT5(a,b,c,d,e)a/**/b/**/c/**/d/**/e
1189#define STRINGIFY(a)"a"
1190 /* If you can get stringification with catify, tell me how! */
1191#endif
1192#if 42 == 42
1193#define CAT2(a,b)a ## b
1194#define CAT3(a,b,c)a ## b ## c
1195#define CAT4(a,b,c,d)a ## b ## c ## d
1196#define CAT5(a,b,c,d,e)a ## b ## c ## d ## e
1197#define StGiFy(a)# a
1198#define STRINGIFY(a)StGiFy(a)
1199#define SCAT2(a,b)StGiFy(a) StGiFy(b)
1200#define SCAT3(a,b,c)StGiFy(a) StGiFy(b) StGiFy(c)
1201#define SCAT4(a,b,c,d)StGiFy(a) StGiFy(b) StGiFy(c) StGiFy(d)
1202#define SCAT5(a,b,c,d,e)StGiFy(a) StGiFy(b) StGiFy(c) StGiFy(d) StGiFy(e)
1203#endif
1204#ifndef CAT2
1205#include "Bletch: How does this C preprocessor catenate tokens?"
1206#endif
2b317908 1207
a0d0e21e
LW
1208/* GNUC_ATTRIBUTE_CHECK:
1209 * This symbol indicates the C compiler can check for function attributes,
1210 * such as printf formats.
85e6fe83 1211 */
a0d0e21e 1212#define GNUC_ATTRIBUTE_CHECK /* */
fe14fcc3 1213
a0d0e21e
LW
1214/* VOID_CLOSEDIR:
1215 * This symbol, if defined, indicates that the closedir() routine
1216 * does not return a value.
a687059c 1217 */
a0d0e21e
LW
1218/*#define VOID_CLOSEDIR /**/
1219
1220/* HAS_DLERROR:
1221 * This symbol, if defined, indicates that the dlerror routine is
1222 * available.
85e6fe83 1223 */
a0d0e21e
LW
1224/*#define HAS_DLERROR /**/
1225
1226/* DLSYM_NEEDS_UNDERSCORE:
1227 * This symbol, if defined, indicates that we need to prepend an
1228 * underscore to the symbol name before calling dlsym(). This only
1229 * makes sense if you *have* dlsym, which we will presume is the
1230 * case if you're using dl_dlopen.xs.
85e6fe83 1231 */
a0d0e21e
LW
1232/*#define DLSYM_NEEDS_UNDERSCORE /* */
1233
1234/* SETUID_SCRIPTS_ARE_SECURE_NOW:
1235 * This symbol, if defined, indicates that the bug that prevents
1236 * setuid scripts from being secure is not present in this kernel.
85e6fe83 1237 */
a0d0e21e
LW
1238/* DOSUID:
1239 * This symbol, if defined, indicates that the C program should
1240 * check the script that it is executing for setuid/setgid bits, and
1241 * attempt to emulate setuid/setgid on systems that have disabled
1242 * setuid #! scripts because the kernel can't do it securely.
1243 * It is up to the package designer to make sure that this emulation
1244 * is done securely. Among other things, it should do an fstat on
1245 * the script it just opened to make sure it really is a setuid/setgid
1246 * script, it should make sure the arguments passed correspond exactly
1247 * to the argument on the #! line, and it should not trust any
1248 * subprocesses to which it must pass the filename rather than the
1249 * file descriptor of the script to be executed.
1250 */
1251/*#define SETUID_SCRIPTS_ARE_SECURE_NOW /**/
1252
1253/*#define DOSUID /**/
1254
1255/* HAS_DREM:
1256 * This symbol, if defined, indicates that the drem routine is
1257 * available. This is a Pyramid routine that is the same as
1258 * fmod.
1259 */
1260/*#define HAS_DREM /**/
1261
1262/* HAS_FMOD:
1263 * This symbol, if defined, indicates that the fmod routine is
1264 * available.
1265 */
1266#define HAS_FMOD /**/
1267
1268/* Gconvert:
1269 * This preprocessor macro is defined to convert a floating point
1270 * number to a string without a trailing decimal point. This
1271 * emulates the behavior of sprintf("%g"), but is sometimes much more
1272 * efficient. If gconvert() is not available, but gcvt() drops the
1273 * trailing decimal point, then gcvt() is used. If all else fails,
1274 * a macro using sprintf("%g") is used.
1275 */
1276#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
a687059c 1277
85e6fe83 1278/* HAS_ISASCII:
a0d0e21e
LW
1279 * This manifest constant lets the C program know that isascii
1280 * is available.
fe14fcc3 1281 */
85e6fe83 1282#define HAS_ISASCII /**/
fe14fcc3 1283
a0d0e21e
LW
1284/* USE_LINUX_STDIO:
1285 * This symbol is defined if this system has a FILE structure declaring
1286 * _IO_read_base, _IO_read_ptr, and _IO_read_end in stdio.h.
a687059c 1287 */
a0d0e21e 1288/*#define USE_LINUX_STDIO /**/
a687059c 1289
a0d0e21e
LW
1290/* HAS_LOCALECONV:
1291 * This symbol, if defined, indicates that the localeconv routine is
1292 * available for numeric and monetary formatting conventions.
a687059c 1293 */
a0d0e21e 1294#define HAS_LOCALECONV /**/
85e6fe83 1295
a0d0e21e
LW
1296/* HAS_MKFIFO:
1297 * This symbol, if defined, indicates that the mkfifo routine is
1298 * available.
85e6fe83 1299 */
a0d0e21e 1300#define HAS_MKFIFO /**/
85e6fe83 1301
a0d0e21e
LW
1302/* HAS_PATHCONF:
1303 * This symbol, if defined, indicates that pathconf() is available
1304 * to determine file-system related limits and options associated
1305 * with a given filename.
85e6fe83 1306 */
a0d0e21e
LW
1307/* HAS_FPATHCONF:
1308 * This symbol, if defined, indicates that pathconf() is available
1309 * to determine file-system related limits and options associated
1310 * with a given open file descriptor.
1311 */
1312#define HAS_PATHCONF /**/
1313#define HAS_FPATHCONF /**/
85e6fe83
LW
1314
1315/* HAS_SAFE_BCOPY:
1316 * This symbol, if defined, indicates that the bcopy routine is available
1317 * to copy potentially overlapping memory blocks. Otherwise you should
1318 * probably use memmove() or memcpy(). If neither is defined, roll your
1319 * own version.
1320 */
1321#define HAS_SAFE_BCOPY /**/
1322
1323/* HAS_SAFE_MEMCPY:
1324 * This symbol, if defined, indicates that the memcpy routine is available
1325 * to copy potentially overlapping memory blocks. Otherwise you should
1326 * probably use memmove() or memcpy(). If neither is defined, roll your
1327 * own version.
1328 */
a0d0e21e 1329#define HAS_SAFE_MEMCPY /**/
85e6fe83 1330
a0d0e21e
LW
1331/* HAS_SYSCONF:
1332 * This symbol, if defined, indicates that sysconf() is available
1333 * to determine system related limits and options.
85e6fe83 1334 */
a0d0e21e 1335#define HAS_SYSCONF /**/
85e6fe83 1336
a0d0e21e
LW
1337/* Time_t:
1338 * This symbol holds the type returned by time(). It can be long,
1339 * or time_t on BSD sites (in which case <sys/types.h> should be
1340 * included).
85e6fe83 1341 */
a0d0e21e 1342#define Time_t time_t /* Time type */
85e6fe83
LW
1343
1344/* USE_DYNAMIC_LOADING:
1345 * This symbol, if defined, indicates that dynamic loading of
1346 * some sort is available.
1347 */
a0d0e21e 1348/*#define USE_DYNAMIC_LOADING /**/
85e6fe83 1349
a0d0e21e 1350/* Groups_t:
85e6fe83
LW
1351 * This symbol holds the type used for the second argument to
1352 * getgroups(). Usually, this is the same of gidtype, but
1353 * sometimes it isn't. It can be int, ushort, uid_t, etc...
1354 * It may be necessary to include <sys/types.h> to get any
1355 * typedef'ed information. This is only required if you have
1356 * getgroups().
1357 */
1358#ifdef HAS_GETGROUPS
a0d0e21e 1359#define Groups_t gid_t /* Type for 2nd arg to getgroups() */
85e6fe83
LW
1360#endif
1361
85e6fe83
LW
1362/* I_NET_ERRNO:
1363 * This symbol, if defined, indicates that <net/errno.h> exists and
1364 * should be included.
1365 */
a0d0e21e 1366#define I_NET_ERRNO /**/
85e6fe83
LW
1367
1368/* Malloc_t:
1369 * This symbol is the type of pointer returned by malloc and realloc.
1370 */
a0d0e21e 1371#define Malloc_t void * /**/
85e6fe83
LW
1372
1373/* MYMALLOC:
1374 * This symbol, if defined, indicates that we're using our own malloc.
1375 */
1376#define MYMALLOC /**/
1377
a0d0e21e
LW
1378/* Mode_t:
1379 * This symbol holds the type used to declare file modes
1380 * for systems calls. It is usually mode_t, but may be
1381 * int or unsigned short. It may be necessary to include <sys/types.h>
1382 * to get any typedef'ed information.
85e6fe83 1383 */
a0d0e21e 1384#define Mode_t mode_t /* file mode parameter for system calls*/
8d063cd8 1385
a0d0e21e
LW
1386/* SSize_t:
1387 * This symbol holds the type used by functions that return
1388 * a count of bytes or an error condition. It must be a signed type.
1389 * It is usually ssize_t, but may be long or int, etc.
1390 * It may be necessary to include <sys/types.h> or <unistd.h>
1391 * to get any typedef'ed information.
1392 * We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
a687059c 1393 */
a0d0e21e 1394#define SSize_t int /* signed count of bytes */
a687059c 1395
fe14fcc3 1396#endif