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