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