This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl 5.0 alpha 5
[perl5.git] / config_h.SH
1 : make config.h.SH
2 case $CONFIG in
3 '')
4     if test ! -f config.sh; then
5         ln ../config.sh . || \
6         ln ../../config.sh . || \
7         ln ../../../config.sh . || \
8         (echo "Can't find config.sh."; exit 1)
9         echo "Using config.sh from above..."
10     fi 2>/dev/null
11     . ./config.sh
12     ;;
13 esac
14 echo "Extracting config.h (with variable substitutions)"
15 sed <<!GROK!THIS! >config.h -e 's!^#undef!/\*#undef!'
16 #ifndef config_h
17 #define config_h
18 /* config.h
19  * This file was produced by running the config.h.SH script, which
20  * gets its values from config.sh, which is generally produced by
21  * running Configure.
22  *
23  * Feel free to modify any of this as the need arises.  Note, however,
24  * that running config.h.SH again will wipe out any changes you've made.
25  * For a more permanent change edit config.sh and rerun config.h.SH.
26  */
27  /*SUPPRESS 460*/
28
29
30 /* EUNICE
31  *      This symbol, if defined, indicates that the program is being compiled
32  *      under the EUNICE package under VMS.  The program will need to handle
33  *      things like files that don't go away the first time you unlink them,
34  *      due to version numbering.  It will also need to compensate for lack
35  *      of a respectable link() command.
36  */
37 /* VMS
38  *      This symbol, if defined, indicates that the program is running under
39  *      VMS.  It is currently only set in conjunction with the EUNICE symbol.
40  */
41 #$d_eunice      EUNICE          /**/
42 #$d_eunice      VMS             /**/
43
44 /* LOC_SED
45  *     This symbol holds the complete pathname to the sed program.
46  */
47 #define LOC_SED "$sed"             /**/
48
49 /* ALIGNBYTES
50  *      This symbol contains the number of bytes required to align a double.
51  *      Usual values are 2, 4, and 8.
52  */
53 #define ALIGNBYTES $alignbytes          /**/
54
55 /* BIN
56  *      This symbol holds the name of the directory in which the user wants
57  *      to keep publicly executable images for the package in question.  It
58  *      is most often a local directory such as /usr/local/bin.
59  */
60 #define BIN "$bin"             /**/
61
62 /* BYTEORDER
63  *      This symbol contains an encoding of the order of bytes in a long.
64  *      Usual values (in hex) are 0x1234, 0x4321, 0x2143, 0x3412...
65  */
66 #define BYTEORDER 0x$byteorder          /**/
67
68 /* CPPSTDIN
69  *      This symbol contains the first part of the string which will invoke
70  *      the C preprocessor on the standard input and produce to standard
71  *      output.  Typical value of "cc -E" or "/lib/cpp".
72  */
73 /* CPPMINUS
74  *      This symbol contains the second part of the string which will invoke
75  *      the C preprocessor on the standard input and produce to standard
76  *      output.  This symbol will have the value "-" if CPPSTDIN needs a minus
77  *      to specify standard input, otherwise the value is "".
78  */
79 #define CPPSTDIN "$cppstdin"
80 #define CPPMINUS "$cppminus"
81
82 /* HAS_BCMP
83  *      This symbol, if defined, indicates that the bcmp routine is available
84  *      to compare blocks of memory.  If undefined, use memcmp.  If that's
85  *      not available, roll your own.
86  */
87 #$d_bcmp        HAS_BCMP                /**/
88
89 /* HAS_BCOPY
90  *      This symbol, if defined, indicates that the bcopy routine is available
91  *      to copy blocks of memory.  Otherwise you should probably use memcpy().
92  *      If neither is defined, roll your own.
93  */
94 /* SAFE_BCOPY
95  *      This symbol, if defined, indicates that the bcopy routine is available
96  *      to copy potentially overlapping copy blocks of bcopy.  Otherwise you
97  *      should probably use memmove() or memcpy().  If neither is defined,
98  *      roll your own.
99  */
100 #$d_bcopy       HAS_BCOPY               /**/
101 #$d_safebcpy    SAFE_BCOPY              /**/
102
103 /* HAS_BZERO
104  *      This symbol, if defined, indicates that the bzero routine is available
105  *      to zero blocks of memory.  Otherwise you should probably use memset()
106  *      or roll your own.
107  */
108 #$d_bzero       HAS_BZERO               /**/
109
110 /* CASTNEGFLOAT
111  *      This symbol, if defined, indicates that this C compiler knows how to
112  *      cast negative or large floating point numbers to unsigned longs, ints
113  *      and shorts.
114  */
115 /* CASTFLAGS
116  *      This symbol contains flags that say what difficulties the compiler
117  *      has casting odd floating values to unsigned long:
118  *              1 = couldn't cast < 0
119  *              2 = couldn't cast >= 0x80000000
120  */
121 #$d_castneg     CASTNEGFLOAT    /**/
122 #define CASTFLAGS $castflags    /**/
123
124 /* CASTI32
125  *    This symbol, if defined, indicates that this C compiler knows how to
126  *    cast negative or large floating point numbers to 32-bit ints.
127  */
128 #define CASTI32
129
130 /* CHARSPRINTF
131  *      This symbol is defined if this system declares "char *sprintf()" in
132  *      stdio.h.  The trend seems to be to declare it as "int sprintf()".  It
133  *      is up to the package author to declare sprintf correctly based on the
134  *      symbol.
135  */
136 #$d_charsprf    CHARSPRINTF     /**/
137
138 /* HAS_CHSIZE
139  *      This symbol, if defined, indicates that the chsize routine is available
140  *      to truncate files.  You might need a -lx to get this routine.
141  */
142 #$d_chsize      HAS_CHSIZE              /**/
143
144 /* HAS_CRYPT
145  *      This symbol, if defined, indicates that the crypt routine is available
146  *      to encrypt passwords and the like.
147  */
148 #$d_crypt       HAS_CRYPT               /**/
149
150 /* CSH
151  *      This symbol, if defined, indicates that the C-shell exists.
152  *      If defined, contains the full pathname of csh.
153  */
154 #$d_csh CSH "$csh"              /**/
155
156 /* DOSUID
157  *      This symbol, if defined, indicates that the C program should
158  *      check the script that it is executing for setuid/setgid bits, and
159  *      attempt to emulate setuid/setgid on systems that have disabled
160  *      setuid #! scripts because the kernel can't do it securely.
161  *      It is up to the package designer to make sure that this emulation
162  *      is done securely.  Among other things, it should do an fstat on
163  *      the script it just opened to make sure it really is a setuid/setgid
164  *      script, it should make sure the arguments passed correspond exactly
165  *      to the argument on the #! line, and it should not trust any
166  *      subprocesses to which it must pass the filename rather than the
167  *      file descriptor of the script to be executed.
168  */
169 #$d_dosuid DOSUID               /**/
170
171 /* HAS_DUP2
172  *      This symbol, if defined, indicates that the dup2 routine is available
173  *      to dup file descriptors.  Otherwise you should use dup().
174  */
175 #$d_dup2        HAS_DUP2                /**/
176
177 /* HAS_FCHMOD
178  *      This symbol, if defined, indicates that the fchmod routine is available
179  *      to change mode of opened files.  If unavailable, use chmod().
180  */
181 #$d_fchmod      HAS_FCHMOD              /**/
182
183 /* HAS_FCHOWN
184  *      This symbol, if defined, indicates that the fchown routine is available
185  *      to change ownership of opened files.  If unavailable, use chown().
186  */
187 #$d_fchown      HAS_FCHOWN              /**/
188
189 /* HAS_FCNTL
190  *      This symbol, if defined, indicates to the C program that
191  *      the fcntl() function exists.
192  */
193 #$d_fcntl       HAS_FCNTL               /**/
194
195 /* FLEXFILENAMES
196  *      This symbol, if defined, indicates that the system supports filenames
197  *      longer than 14 characters.
198  */
199 #$d_flexfnam    FLEXFILENAMES           /**/
200
201 /* HAS_FLOCK
202  *      This symbol, if defined, indicates that the flock() routine is
203  *      available to do file locking.
204  */
205 #$d_flock       HAS_FLOCK               /**/
206
207 /* HAS_GETGROUPS
208  *      This symbol, if defined, indicates that the getgroups() routine is
209  *      available to get the list of process groups.  If unavailable, multiple
210  *      groups are probably not supported.
211  */
212 #$d_getgrps     HAS_GETGROUPS           /**/
213
214 /* HAS_GETHOSTENT
215  *      This symbol, if defined, indicates that the gethostent() routine is
216  *      available to lookup host names in some data base or other.
217  */
218 #$d_gethent     HAS_GETHOSTENT          /**/
219
220 /* HAS_GETPGRP
221  *      This symbol, if defined, indicates that the getpgrp() routine is
222  *      available to get the current process group.
223  */
224 #$d_getpgrp     HAS_GETPGRP             /**/
225
226 /* HAS_GETPGRP2
227  *      This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
228  *      routine is available to get the current process group.
229  */
230 #$d_getpgrp2    HAS_GETPGRP2            /**/
231
232 /* HAS_GETPRIORITY
233  *      This symbol, if defined, indicates that the getpriority() routine is
234  *      available to get a process's priority.
235  */
236 #$d_getprior    HAS_GETPRIORITY         /**/
237
238 /* HAS_HTONS
239  *      This symbol, if defined, indicates that the htons routine (and friends)
240  *      are available to do network order byte swapping.
241  */
242 /* HAS_HTONL
243  *      This symbol, if defined, indicates that the htonl routine (and friends)
244  *      are available to do network order byte swapping.
245  */
246 /* HAS_NTOHS
247  *      This symbol, if defined, indicates that the ntohs routine (and friends)
248  *      are available to do network order byte swapping.
249  */
250 /* HAS_NTOHL
251  *      This symbol, if defined, indicates that the ntohl routine (and friends)
252  *      are available to do network order byte swapping.
253  */
254 #$d_htonl       HAS_HTONS       /**/
255 #$d_htonl       HAS_HTONL       /**/
256 #$d_htonl       HAS_NTOHS       /**/
257 #$d_htonl       HAS_NTOHL       /**/
258
259 /* index
260  *      This preprocessor symbol is defined, along with rindex, if the system
261  *      uses the strchr and strrchr routines instead.
262  */
263 /* rindex
264  *      This preprocessor symbol is defined, along with index, if the system
265  *      uses the strchr and strrchr routines instead.
266  */
267 #$d_index       index strchr    /* cultural */
268 #$d_index       rindex strrchr  /*  differences? */
269
270 /* HAS_ISASCII
271  *      This symbol, if defined, indicates that the isascii routine is available
272  *      to test characters for asciiness.
273  */
274 #$d_isascii     HAS_ISASCII             /**/
275
276 /* HAS_KILLPG
277  *      This symbol, if defined, indicates that the killpg routine is available
278  *      to kill process groups.  If unavailable, you probably should use kill
279  *      with a negative process number.
280  */
281 #$d_killpg      HAS_KILLPG              /**/
282
283 /* HAS_LSTAT
284  *      This symbol, if defined, indicates that the lstat() routine is
285  *      available to stat symbolic links.
286  */
287 #$d_lstat       HAS_LSTAT               /**/
288
289 /* HAS_MEMCMP
290  *      This symbol, if defined, indicates that the memcmp routine is available
291  *      to compare blocks of memory.  If undefined, roll your own.
292  */
293 #$d_memcmp      HAS_MEMCMP              /**/
294
295 /* HAS_MEMCPY
296  *      This symbol, if defined, indicates that the memcpy routine is available
297  *      to copy blocks of memory.  Otherwise you should probably use bcopy().
298  *      If neither is defined, roll your own.
299  */
300 /* SAFE_MEMCPY
301  *      This symbol, if defined, indicates that the memcpy routine is available
302  *      to copy potentially overlapping copy blocks of memory.  Otherwise you
303  *      should probably use memmove() or bcopy().  If neither is defined,
304  *      roll your own.
305  */
306 #$d_memcpy      HAS_MEMCPY              /**/
307 #$d_safemcpy    SAFE_MEMCPY             /**/
308
309 /* HAS_MEMMOVE
310  *      This symbol, if defined, indicates that the memmove routine is available
311  *      to move potentially overlapping blocks of memory.  Otherwise you
312  *      should use bcopy() or roll your own.
313  */
314 #$d_memmove     HAS_MEMMOVE             /**/
315
316 /* HAS_MEMSET
317  *      This symbol, if defined, indicates that the memset routine is available
318  *      to set a block of memory to a character.  If undefined, roll your own.
319  */
320 #$d_memset      HAS_MEMSET              /**/
321
322 /* HAS_MKDIR
323  *      This symbol, if defined, indicates that the mkdir routine is available
324  *      to create directories.  Otherwise you should fork off a new process to
325  *      exec /bin/mkdir.
326  */
327 #$d_mkdir       HAS_MKDIR               /**/
328
329 /* HAS_MSG
330  *      This symbol, if defined, indicates that the entire msg*(2) library is
331  *      supported.
332  */
333 #$d_msg HAS_MSG         /**/
334
335 /* HAS_MSGCTL
336  *      This symbol, if defined, indicates that the msgctl() routine is
337  *      available to control message passing.
338  */
339 #$d_msgctl      HAS_MSGCTL              /**/
340
341 /* HAS_MSGGET
342  *      This symbol, if defined, indicates that the msgget() routine is
343  *      available to get messages.
344  */
345 #$d_msgget      HAS_MSGGET              /**/
346
347 /* HAS_MSGRCV
348  *      This symbol, if defined, indicates that the msgrcv() routine is
349  *      available to receive messages.
350  */
351 #$d_msgrcv      HAS_MSGRCV              /**/
352
353 /* HAS_MSGSND
354  *      This symbol, if defined, indicates that the msgsnd() routine is
355  *      available to send messages.
356  */
357 #$d_msgsnd      HAS_MSGSND              /**/
358
359 /* HAS_NDBM
360  *      This symbol, if defined, indicates that ndbm.h exists and should
361  *      be included.
362  */
363 #$d_ndbm        HAS_NDBM                /**/
364
365 /* HAS_ODBM
366  *      This symbol, if defined, indicates that dbm.h exists and should
367  *      be included.
368  */
369 #$d_odbm        HAS_ODBM                /**/
370
371 /* HAS_OPEN3
372  *      This manifest constant lets the C program know that the three
373  *      argument form of open(2) is available.
374  */
375 #$d_open3       HAS_OPEN3               /**/
376
377 /* HAS_READDIR
378  *      This symbol, if defined, indicates that the readdir routine is available
379  *      from the C library to read directories.
380  */
381 #$d_readdir     HAS_READDIR             /**/
382
383 /* HAS_RENAME
384  *      This symbol, if defined, indicates that the rename routine is available
385  *      to rename files.  Otherwise you should do the unlink(), link(), unlink()
386  *      trick.
387  */
388 #$d_rename      HAS_RENAME              /**/
389
390 /* HAS_REWINDDIR
391  *      This symbol, if defined, indicates that the rewindir routine is
392  *      available to rewind directories.
393  */
394 #$d_rewindir    HAS_REWINDDIR           /**/
395
396 /* HAS_RMDIR
397  *      This symbol, if defined, indicates that the rmdir routine is available
398  *      to remove directories.  Otherwise you should fork off a new process to
399  *      exec /bin/rmdir.
400  */
401 #$d_rmdir       HAS_RMDIR               /**/
402
403 /* HAS_SEEKDIR
404  *      This symbol, if defined, indicates that the seekdir routine is
405  *      available to seek into directories.
406  */
407 #$d_seekdir     HAS_SEEKDIR             /**/
408
409 /* HAS_SELECT
410  *      This symbol, if defined, indicates that the select() subroutine
411  *      exists.
412  */
413 #$d_select      HAS_SELECT      /**/
414
415 /* HAS_SEM
416  *      This symbol, if defined, indicates that the entire sem*(2) library is
417  *      supported.
418  */
419 #$d_sem HAS_SEM         /**/
420
421 /* HAS_SEMCTL
422  *      This symbol, if defined, indicates that the semctl() routine is
423  *      available to control semaphores.
424  */
425 #$d_semctl      HAS_SEMCTL              /**/
426
427 /* HAS_SEMGET
428  *      This symbol, if defined, indicates that the semget() routine is
429  *      available to get semaphores ids.
430  */
431 #$d_semget      HAS_SEMGET              /**/
432
433 /* HAS_SEMOP
434  *      This symbol, if defined, indicates that the semop() routine is
435  *      available to perform semaphore operations.
436  */
437 #$d_semop       HAS_SEMOP               /**/
438
439 /* HAS_SETEGID
440  *      This symbol, if defined, indicates that the setegid routine is available
441  *      to change the effective gid of the current program.
442  */
443 #$d_setegid     HAS_SETEGID             /**/
444
445 /* HAS_SETEUID
446  *      This symbol, if defined, indicates that the seteuid routine is available
447  *      to change the effective uid of the current program.
448  */
449 #$d_seteuid     HAS_SETEUID             /**/
450
451 /* HAS_SETPGRP
452  *      This symbol, if defined, indicates that the setpgrp() routine is
453  *      available to set the current process group.
454  */
455 #$d_setpgrp     HAS_SETPGRP             /**/
456
457 /* HAS_SETPGRP2
458  *      This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
459  *      routine is available to set the current process group.
460  */
461 #$d_setpgrp2    HAS_SETPGRP2            /**/
462
463 /* HAS_SETPRIORITY
464  *      This symbol, if defined, indicates that the setpriority() routine is
465  *      available to set a process's priority.
466  */
467 #$d_setprior    HAS_SETPRIORITY         /**/
468
469 /* HAS_SETREGID
470  *      This symbol, if defined, indicates that the setregid routine is
471  *      available to change the real and effective gid of the current program.
472  */
473 /* HAS_SETRESGID
474  *      This symbol, if defined, indicates that the setresgid routine is
475  *      available to change the real, effective and saved gid of the current
476  *      program.
477  */
478 #$d_setregid    HAS_SETREGID            /**/
479 #$d_setresgid   HAS_SETRESGID           /**/
480
481 /* HAS_SETREUID
482  *      This symbol, if defined, indicates that the setreuid routine is
483  *      available to change the real and effective uid of the current program.
484  */
485 /* HAS_SETRESUID
486  *      This symbol, if defined, indicates that the setresuid routine is
487  *      available to change the real, effective and saved uid of the current
488  *      program.
489  */
490 #$d_setreuid    HAS_SETREUID            /**/
491 #$d_setresuid   HAS_SETRESUID           /**/
492
493 /* HAS_SETRGID
494  *      This symbol, if defined, indicates that the setrgid routine is available
495  *      to change the real gid of the current program.
496  */
497 #$d_setrgid     HAS_SETRGID             /**/
498
499 /* HAS_SETRUID
500  *      This symbol, if defined, indicates that the setruid routine is available
501  *      to change the real uid of the current program.
502  */
503 #$d_setruid     HAS_SETRUID             /**/
504
505 /* HAS_SHM
506  *      This symbol, if defined, indicates that the entire shm*(2) library is
507  *      supported.
508  */
509 #$d_shm HAS_SHM         /**/
510
511 /* HAS_SHMAT
512  *      This symbol, if defined, indicates that the shmat() routine is
513  *      available to attach a shared memory segment.
514  */
515 /* VOID_SHMAT
516  *      This symbol, if defined, indicates that the shmat() routine
517  *      returns a pointer of type void*.
518  */
519 #$d_shmat       HAS_SHMAT               /**/
520
521 #$d_voidshmat   VOIDSHMAT               /**/
522
523 /* HAS_SHMCTL
524  *      This symbol, if defined, indicates that the shmctl() routine is
525  *      available to control a shared memory segment.
526  */
527 #$d_shmctl      HAS_SHMCTL              /**/
528
529 /* HAS_SHMDT
530  *      This symbol, if defined, indicates that the shmdt() routine is
531  *      available to detach a shared memory segment.
532  */
533 #$d_shmdt       HAS_SHMDT               /**/
534
535 /* HAS_SHMGET
536  *      This symbol, if defined, indicates that the shmget() routine is
537  *      available to get a shared memory segment id.
538  */
539 #$d_shmget      HAS_SHMGET              /**/
540
541 /* HAS_SOCKET
542  *      This symbol, if defined, indicates that the BSD socket interface is
543  *      supported.
544  */
545 /* HAS_SOCKETPAIR
546  *      This symbol, if defined, indicates that the BSD socketpair call is
547  *      supported.
548  */
549 /* OLDSOCKET
550  *      This symbol, if defined, indicates that the 4.1c BSD socket interface
551  *      is supported instead of the 4.2/4.3 BSD socket interface.
552  */
553 #$d_socket      HAS_SOCKET              /**/
554
555 #$d_sockpair    HAS_SOCKETPAIR  /**/
556
557 #$d_oldsock     OLDSOCKET       /**/
558
559 /* STATBLOCKS
560  *      This symbol is defined if this system has a stat structure declaring
561  *      st_blksize and st_blocks.
562  */
563 #$d_statblks    STATBLOCKS      /**/
564
565 /* STDSTDIO
566  *      This symbol is defined if this system has a FILE structure declaring
567  *      _ptr and _cnt in stdio.h.
568  */
569 #$d_stdstdio    STDSTDIO        /**/
570
571 /* STRUCTCOPY
572  *      This symbol, if defined, indicates that this C compiler knows how
573  *      to copy structures.  If undefined, you'll need to use a block copy
574  *      routine of some sort instead.
575  */
576 #$d_strctcpy    STRUCTCOPY      /**/
577
578 /* HAS_STRERROR
579  *      This symbol, if defined, indicates that the strerror() routine is
580  *      available to translate error numbers to strings.
581  */
582 #$d_strerror    HAS_STRERROR            /**/
583
584 /* HAS_SYMLINK
585  *      This symbol, if defined, indicates that the symlink routine is available
586  *      to create symbolic links.
587  */
588 #$d_symlink     HAS_SYMLINK             /**/
589
590 /* HAS_SYSCALL
591  *      This symbol, if defined, indicates that the syscall routine is available
592  *      to call arbitrary system calls.  If undefined, that's tough.
593  */
594 #$d_syscall     HAS_SYSCALL             /**/
595
596 /* HAS_TELLDIR
597  *      This symbol, if defined, indicates that the telldir routine is
598  *      available to tell your location in directories.
599  */
600 #$d_telldir     HAS_TELLDIR             /**/
601
602 /* HAS_TRUNCATE
603  *      This symbol, if defined, indicates that the truncate routine is
604  *      available to truncate files.
605  */
606 #$d_truncate    HAS_TRUNCATE            /**/
607
608 /* HAS_VFORK
609  *      This symbol, if defined, indicates that vfork() exists.
610  */
611 #$d_vfork       HAS_VFORK       /**/
612
613 /* VOIDSIG
614  *      This symbol is defined if this system declares "void (*signal())()" in
615  *      signal.h.  The old way was to declare it as "int (*signal())()".  It
616  *      is up to the package author to declare things correctly based on the
617  *      symbol.
618  */
619 /* TO_SIGNAL
620  *      This symbol's value is either "void" or "int", corresponding to the
621  *      appropriate return "type" of a signal handler.  Thus, one can declare
622  *      a signal handler using "TO_SIGNAL (*handler())()", and define the
623  *      handler using "TO_SIGNAL handler(sig)".
624  */
625 #$d_voidsig     VOIDSIG         /**/
626 #$define        TO_SIGNAL       $d_tosignal     /**/
627
628 /* HASVOLATILE
629  *      This symbol, if defined, indicates that this C compiler knows about
630  *      the volatile declaration.
631  */
632 #$d_volatile    HASVOLATILE     /**/
633
634 /* HAS_VPRINTF
635  *      This symbol, if defined, indicates that the vprintf routine is available
636  *      to printf with a pointer to an argument list.  If unavailable, you
637  *      may need to write your own, probably in terms of _doprnt().
638  */
639 /* CHARVSPRINTF
640  *      This symbol is defined if this system has vsprintf() returning type
641  *      (char*).  The trend seems to be to declare it as "int vsprintf()".  It
642  *      is up to the package author to declare vsprintf correctly based on the
643  *      symbol.
644  */
645 #$d_vprintf     HAS_VPRINTF     /**/
646 #$d_charvspr    CHARVSPRINTF    /**/
647
648 /* HAS_WAIT4
649  *      This symbol, if defined, indicates that wait4() exists.
650  */
651 #$d_wait4       HAS_WAIT4       /**/
652
653 /* HAS_WAITPID
654  *      This symbol, if defined, indicates that waitpid() exists.
655  */
656 #$d_waitpid     HAS_WAITPID     /**/
657
658 /* GIDTYPE
659  *      This symbol has a value like gid_t, int, ushort, or whatever type is
660  *      used to declare group ids in the kernel.
661  */
662 #define GIDTYPE $gidtype                /**/
663
664 /* GROUPSTYPE
665  *      This symbol has a value like gid_t, int, ushort, or whatever type is
666  *      used in the return value of getgroups().
667  */
668 #define GROUPSTYPE $groupstype          /**/
669
670 /* I_FCNTL
671  *      This manifest constant tells the C program to include <fcntl.h>.
672  */
673 #$i_fcntl       I_FCNTL /**/
674
675 /* I_GDBM
676  *      This symbol, if defined, indicates that gdbm.h exists and should
677  *      be included.
678  */
679 #$i_gdbm        I_GDBM          /**/
680
681 /* I_GRP
682  *      This symbol, if defined, indicates to the C program that it should
683  *      include grp.h.
684  */
685 #$i_grp I_GRP           /**/
686
687 /* I_NETINET_IN
688  *      This symbol, if defined, indicates to the C program that it should
689  *      include netinet/in.h.
690  */
691 /* I_SYS_IN
692  *      This symbol, if defined, indicates to the C program that it should
693  *      include sys/in.h.
694  */
695 #$i_niin        I_NETINET_IN            /**/
696 #$i_sysin       I_SYS_IN                /**/
697
698 /* I_PWD
699  *      This symbol, if defined, indicates to the C program that it should
700  *      include pwd.h.
701  */
702 /* PWQUOTA
703  *      This symbol, if defined, indicates to the C program that struct passwd
704  *      contains pw_quota.
705  */
706 /* PWAGE
707  *      This symbol, if defined, indicates to the C program that struct passwd
708  *      contains pw_age.
709  */
710 /* PWCHANGE
711  *      This symbol, if defined, indicates to the C program that struct passwd
712  *      contains pw_change.
713  */
714 /* PWCLASS
715  *      This symbol, if defined, indicates to the C program that struct passwd
716  *      contains pw_class.
717  */
718 /* PWEXPIRE
719  *      This symbol, if defined, indicates to the C program that struct passwd
720  *      contains pw_expire.
721  */
722 /* PWCOMMENT
723  *      This symbol, if defined, indicates to the C program that struct passwd
724  *      contains pw_comment.
725  */
726 #$i_pwd I_PWD           /**/
727 #$d_pwquota     PWQUOTA         /**/
728 #$d_pwage       PWAGE           /**/
729 #$d_pwchange    PWCHANGE        /**/
730 #$d_pwclass     PWCLASS         /**/
731 #$d_pwexpire    PWEXPIRE        /**/
732 #$d_pwcomment   PWCOMMENT       /**/
733
734 /* I_SYS_FILE
735  *      This manifest constant tells the C program to include <sys/file.h>.
736  */
737 #$i_sys_file    I_SYS_FILE      /**/
738
739 /* I_SYSIOCTL
740  *      This symbol, if defined, indicates that sys/ioctl.h exists and should
741  *      be included.
742  */
743 #$i_sysioctl    I_SYSIOCTL              /**/
744
745 /* I_TIME
746  *      This symbol is defined if the program should include <time.h>.
747  */
748 /* I_SYS_TIME
749  *      This symbol is defined if the program should include <sys/time.h>.
750  */
751 /* SYSTIMEKERNEL
752  *      This symbol is defined if the program should include <sys/time.h>
753  *      with KERNEL defined.
754  */
755 /* I_SYS_SELECT
756  *      This symbol is defined if the program should include <sys/select.h>.
757  */
758 #$i_time        I_TIME          /**/
759 #$i_sys_time    I_SYS_TIME      /**/
760 #$d_systimekernel       SYSTIMEKERNEL   /**/
761 #$i_sys_select  I_SYS_SELECT    /**/
762
763 /* I_UTIME
764  *      This symbol, if defined, indicates to the C program that it should
765  *      include utime.h.
766  */
767 #$i_utime       I_UTIME         /**/
768
769 /* I_VARARGS
770  *      This symbol, if defined, indicates to the C program that it should
771  *      include varargs.h.
772  */
773 #$i_varargs     I_VARARGS               /**/
774
775 /* I_VFORK
776  *      This symbol, if defined, indicates to the C program that it should
777  *      include vfork.h.
778  */
779 #$i_vfork       I_VFORK         /**/
780
781 /* INTSIZE
782  *      This symbol contains the size of an int, so that the C preprocessor
783  *      can make decisions based on it.
784  */
785 #define INTSIZE $intsize                /**/
786
787 /* I_DIRENT
788  *      This symbol, if defined, indicates that the program should use the
789  *      P1003-style directory routines, and include <dirent.h>.
790  */
791 /* I_SYS_DIR
792  *      This symbol, if defined, indicates that the program should use the
793  *      directory functions by including <sys/dir.h>.
794  */
795 /* I_NDIR
796  *      This symbol, if defined, indicates that the program should include the
797  *      system's version of ndir.h, rather than the one with this package.
798  */
799 /* I_SYS_NDIR
800  *      This symbol, if defined, indicates that the program should include the
801  *      system's version of sys/ndir.h, rather than the one with this package.
802  */
803 /* I_MY_DIR
804  *      This symbol, if defined, indicates that the program should compile
805  *      the ndir.c code provided with the package.
806  */
807 /* DIRNAMLEN
808  *      This symbol, if defined, indicates to the C program that the length
809  *      of directory entry names is provided by a d_namlen field.  Otherwise
810  *      you need to do strlen() on the d_name field.
811  */
812 #$i_dirent      I_DIRENT        /**/
813 #$i_sys_dir     I_SYS_DIR       /**/
814 #$i_ndir        I_NDIR          /**/
815 #$i_sys_ndir    I_SYS_NDIR      /**/
816 #$i_my_dir      I_MY_DIR        /**/
817 #$d_dirnamlen   DIRNAMLEN       /**/
818
819 /* MYMALLOC
820  *      This symbol, if defined, indicates that we're using our own malloc.
821  */
822 /* MALLOCPTRTYPE
823  *      This symbol defines the kind of ptr returned by malloc and realloc.
824  */
825 #$d_mymalloc MYMALLOC                   /**/
826
827 #define MALLOCPTRTYPE $mallocptrtype         /**/
828
829
830 /* RANDBITS
831  *      This symbol contains the number of bits of random number the rand()
832  *      function produces.  Usual values are 15, 16, and 31.
833  */
834 #define RANDBITS $randbits              /**/
835
836 /* SCRIPTDIR
837  *      This symbol holds the name of the directory in which the user wants
838  *      to keep publicly executable scripts for the package in question.  It
839  *      is often a directory that is mounted across diverse architectures.
840  */
841 #define SCRIPTDIR "$scriptdir"             /**/
842
843 /* SIG_NAME
844  *      This symbol contains an list of signal names in order.
845  */
846 #define SIG_NAME "`echo $sig_name | sed 's/ /","/g'`"           /**/
847
848 /* STDCHAR
849  *      This symbol is defined to be the type of char used in stdio.h.
850  *      It has the values "unsigned char" or "char".
851  */
852 #define STDCHAR $stdchar        /**/
853
854 /* UIDTYPE
855  *      This symbol has a value like uid_t, int, ushort, or whatever type is
856  *      used to declare user ids in the kernel.
857  */
858 #define UIDTYPE $uidtype                /**/
859
860 /* VOIDHAVE
861  *      This symbol indicates how much support of the void type is given by this
862  *      compiler.  What various bits mean:
863  *
864  *          1 = supports declaration of void
865  *          2 = supports arrays of pointers to functions returning void
866  *          4 = supports comparisons between pointers to void functions and
867  *                  addresses of void functions
868  *
869  *      The package designer should define VOIDWANT to indicate the requirements
870  *      of the package.  This can be done either by #defining VOIDWANT before
871  *      including config.h, or by defining voidwant in Myinit.U.  If the level
872  *      of void support necessary is not present, config.h defines void to "int",
873  *      VOID to the empty string, and VOIDP to "char *".
874  */
875 /* void
876  *      This symbol is used for void casts.  On implementations which support
877  *      void appropriately, its value is "void".  Otherwise, its value maps
878  *      to "int".
879  */
880 /* VOID
881  *      This symbol's value is "void" if the implementation supports void
882  *      appropriately.  Otherwise, its value is the empty string.  The primary
883  *      use of this symbol is in specifying void parameter lists for function
884  *      prototypes.
885  */
886 /* VOIDP
887  *      This symbol is used for casting generic pointers.  On implementations
888  *      which support void appropriately, its value is "void *".  Otherwise,
889  *      its value is "char *".
890  */
891 #ifndef VOIDWANT
892 #define VOIDWANT $voidwant
893 #endif
894 #define VOIDHAVE $voidhave
895 #if (VOIDHAVE & VOIDWANT) != VOIDWANT
896 #define void int                /* is void to be avoided? */
897 #define VOID
898 #define VOIDP (char *)
899 #define M_VOID          /* Xenix strikes again */
900 #else
901 #define VOID void
902 #define VOIDP (void *)
903 #endif
904
905 /* PRIVLIB
906  *      This symbol contains the name of the private library for this package.
907  *      The library is private in the sense that it needn't be in anyone's
908  *      execution path, but it should be accessible by the world.  The program
909  *      should be prepared to do ~ expansion.
910  */
911 #define PRIVLIB "$privlib"              /**/
912
913 #endif
914 !GROK!THIS!