This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl 4.0 patch 1: (combined patch)
[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
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 #$d_shmat       HAS_SHMAT               /**/
458
459 /* HAS_SHMCTL
460  *      This symbol, if defined, indicates that the shmctl() routine is
461  *      available to stat symbolic links.
462  */
463 #$d_shmctl      HAS_SHMCTL              /**/
464
465 /* HAS_SHMDT
466  *      This symbol, if defined, indicates that the shmdt() routine is
467  *      available to stat symbolic links.
468  */
469 #$d_shmdt       HAS_SHMDT               /**/
470
471 /* HAS_SHMGET
472  *      This symbol, if defined, indicates that the shmget() routine is
473  *      available to stat symbolic links.
474  */
475 #$d_shmget      HAS_SHMGET              /**/
476
477 /* HAS_SOCKET
478  *      This symbol, if defined, indicates that the BSD socket interface is
479  *      supported.
480  */
481 /* HAS_SOCKETPAIR
482  *      This symbol, if defined, indicates that the BSD socketpair call is
483  *      supported.
484  */
485 /* OLDSOCKET
486  *      This symbol, if defined, indicates that the 4.1c BSD socket interface
487  *      is supported instead of the 4.2/4.3 BSD socket interface.
488  */
489 #$d_socket      HAS_SOCKET              /**/
490
491 #$d_sockpair    HAS_SOCKETPAIR  /**/
492
493 #$d_oldsock     OLDSOCKET       /**/
494
495 /* STATBLOCKS
496  *      This symbol is defined if this system has a stat structure declaring
497  *      st_blksize and st_blocks.
498  */
499 #$d_statblks    STATBLOCKS      /**/
500
501 /* STDSTDIO
502  *      This symbol is defined if this system has a FILE structure declaring
503  *      _ptr and _cnt in stdio.h.
504  */
505 #$d_stdstdio    STDSTDIO        /**/
506
507 /* STRUCTCOPY
508  *      This symbol, if defined, indicates that this C compiler knows how
509  *      to copy structures.  If undefined, you'll need to use a block copy
510  *      routine of some sort instead.
511  */
512 #$d_strctcpy    STRUCTCOPY      /**/
513
514 /* HAS_STRERROR
515  *      This symbol, if defined, indicates that the strerror() routine is
516  *      available to translate error numbers to strings.
517  */
518 #$d_strerror    HAS_STRERROR            /**/
519
520 /* HAS_SYMLINK
521  *      This symbol, if defined, indicates that the symlink routine is available
522  *      to create symbolic links.
523  */
524 #$d_symlink     HAS_SYMLINK             /**/
525
526 /* HAS_SYSCALL
527  *      This symbol, if defined, indicates that the syscall routine is available
528  *      to call arbitrary system calls.  If undefined, that's tough.
529  */
530 #$d_syscall     HAS_SYSCALL             /**/
531
532 /* HAS_TRUNCATE
533  *      This symbol, if defined, indicates that the truncate routine is
534  *      available to truncate files.
535  */
536 #$d_truncate    HAS_TRUNCATE            /**/
537
538 /* HAS_VFORK
539  *      This symbol, if defined, indicates that vfork() exists.
540  */
541 #$d_vfork       HAS_VFORK       /**/
542
543 /* VOIDSIG
544  *      This symbol is defined if this system declares "void (*signal())()" in
545  *      signal.h.  The old way was to declare it as "int (*signal())()".  It
546  *      is up to the package author to declare things correctly based on the
547  *      symbol.
548  */
549 /* TO_SIGNAL
550  *      This symbol's value is either "void" or "int", corresponding to the
551  *      appropriate return "type" of a signal handler.  Thus, one can declare
552  *      a signal handler using "TO_SIGNAL (*handler())()", and define the
553  *      handler using "TO_SIGNAL handler(sig)".
554  */
555 #$d_voidsig     VOIDSIG         /**/
556 #$define        TO_SIGNAL       $d_tosignal     /**/
557
558 /* HASVOLATILE
559  *      This symbol, if defined, indicates that this C compiler knows about
560  *      the volatile declaration.
561  */
562 #$d_volatile    HASVOLATILE     /**/
563
564 /* HAS_VPRINTF
565  *      This symbol, if defined, indicates that the vprintf routine is available
566  *      to printf with a pointer to an argument list.  If unavailable, you
567  *      may need to write your own, probably in terms of _doprnt().
568  */
569 /* CHARVSPRINTF
570  *      This symbol is defined if this system has vsprintf() returning type
571  *      (char*).  The trend seems to be to declare it as "int vsprintf()".  It
572  *      is up to the package author to declare vsprintf correctly based on the
573  *      symbol.
574  */
575 #$d_vprintf     HAS_VPRINTF     /**/
576 #$d_charvspr    CHARVSPRINTF    /**/
577
578 /* HAS_WAIT4
579  *      This symbol, if defined, indicates that wait4() exists.
580  */
581 #$d_wait4       HAS_WAIT4       /**/
582
583 /* HAS_WAITPID
584  *      This symbol, if defined, indicates that waitpid() exists.
585  */
586 #$d_waitpid     HAS_WAITPID     /**/
587
588 /* GIDTYPE
589  *      This symbol has a value like gid_t, int, ushort, or whatever type is
590  *      used to declare group ids in the kernel.
591  */
592 #define GIDTYPE $gidtype                /**/
593
594 /* GROUPSTYPE
595  *      This symbol has a value like gid_t, int, ushort, or whatever type is
596  *      used in the return value of getgroups().
597  */
598 #define GROUPSTYPE $groupstype          /**/
599
600 /* I_FCNTL
601  *      This manifest constant tells the C program to include <fcntl.h>.
602  */
603 #$i_fcntl       I_FCNTL /**/
604
605 /* I_GDBM
606  *      This symbol, if defined, indicates that gdbm.h exists and should
607  *      be included.
608  */
609 #$i_gdbm        I_GDBM          /**/
610
611 /* I_GRP
612  *      This symbol, if defined, indicates to the C program that it should
613  *      include grp.h.
614  */
615 #$i_grp I_GRP           /**/
616
617 /* I_NETINET_IN
618  *      This symbol, if defined, indicates to the C program that it should
619  *      include netinet/in.h.
620  */
621 /* I_SYS_IN
622  *      This symbol, if defined, indicates to the C program that it should
623  *      include sys/in.h.
624  */
625 #$i_niin        I_NETINET_IN            /**/
626 #$i_sysin       I_SYS_IN                /**/
627
628 /* I_PWD
629  *      This symbol, if defined, indicates to the C program that it should
630  *      include pwd.h.
631  */
632 /* PWQUOTA
633  *      This symbol, if defined, indicates to the C program that struct passwd
634  *      contains pw_quota.
635  */
636 /* PWAGE
637  *      This symbol, if defined, indicates to the C program that struct passwd
638  *      contains pw_age.
639  */
640 /* PWCHANGE
641  *      This symbol, if defined, indicates to the C program that struct passwd
642  *      contains pw_change.
643  */
644 /* PWCLASS
645  *      This symbol, if defined, indicates to the C program that struct passwd
646  *      contains pw_class.
647  */
648 /* PWEXPIRE
649  *      This symbol, if defined, indicates to the C program that struct passwd
650  *      contains pw_expire.
651  */
652 /* PWCOMMENT
653  *      This symbol, if defined, indicates to the C program that struct passwd
654  *      contains pw_comment.
655  */
656 #$i_pwd I_PWD           /**/
657 #$d_pwquota     PWQUOTA         /**/
658 #$d_pwage       PWAGE           /**/
659 #$d_pwchange    PWCHANGE        /**/
660 #$d_pwclass     PWCLASS         /**/
661 #$d_pwexpire    PWEXPIRE        /**/
662 #$d_pwcomment   PWCOMMENT       /**/
663
664 /* I_SYS_FILE
665  *      This manifest constant tells the C program to include <sys/file.h>.
666  */
667 #$i_sys_file    I_SYS_FILE      /**/
668
669 /* I_SYSIOCTL
670  *      This symbol, if defined, indicates that sys/ioctl.h exists and should
671  *      be included.
672  */
673 #$i_sysioctl    I_SYSIOCTL              /**/
674
675 /* I_TIME
676  *      This symbol is defined if the program should include <time.h>.
677  */
678 /* I_SYS_TIME
679  *      This symbol is defined if the program should include <sys/time.h>.
680  */
681 /* SYSTIMEKERNEL
682  *      This symbol is defined if the program should include <sys/time.h>
683  *      with KERNEL defined.
684  */
685 /* I_SYS_SELECT
686  *      This symbol is defined if the program should include <sys/select.h>.
687  */
688 #$i_time        I_TIME          /**/
689 #$i_sys_time    I_SYS_TIME      /**/
690 #$d_systimekernel       SYSTIMEKERNEL   /**/
691 #$i_sys_select  I_SYS_SELECT    /**/
692
693 /* I_UTIME
694  *      This symbol, if defined, indicates to the C program that it should
695  *      include utime.h.
696  */
697 #$i_utime       I_UTIME         /**/
698
699 /* I_VARARGS
700  *      This symbol, if defined, indicates to the C program that it should
701  *      include varargs.h.
702  */
703 #$i_varargs     I_VARARGS               /**/
704
705 /* I_VFORK
706  *      This symbol, if defined, indicates to the C program that it should
707  *      include vfork.h.
708  */
709 #$i_vfork       I_VFORK         /**/
710
711 /* INTSIZE
712  *      This symbol contains the size of an int, so that the C preprocessor
713  *      can make decisions based on it.
714  */
715 #define INTSIZE $intsize                /**/
716
717 /* I_DIRENT
718  *      This symbol, if defined, indicates that the program should use the
719  *      P1003-style directory routines, and include <dirent.h>.
720  */
721 /* I_SYS_DIR
722  *      This symbol, if defined, indicates that the program should use the
723  *      directory functions by including <sys/dir.h>.
724  */
725 /* I_NDIR
726  *      This symbol, if defined, indicates that the program should include the
727  *      system's version of ndir.h, rather than the one with this package.
728  */
729 /* I_SYS_NDIR
730  *      This symbol, if defined, indicates that the program should include the
731  *      system's version of sys/ndir.h, rather than the one with this package.
732  */
733 /* I_MY_DIR
734  *      This symbol, if defined, indicates that the program should compile
735  *      the ndir.c code provided with the package.
736  */
737 /* DIRNAMLEN
738  *      This symbol, if defined, indicates to the C program that the length
739  *      of directory entry names is provided by a d_namlen field.  Otherwise
740  *      you need to do strlen() on the d_name field.
741  */
742 #$i_dirent      I_DIRENT        /**/
743 #$i_sys_dir     I_SYS_DIR       /**/
744 #$i_ndir        I_NDIR          /**/
745 #$i_sys_ndir    I_SYS_NDIR      /**/
746 #$i_my_dir      I_MY_DIR        /**/
747 #$d_dirnamlen   DIRNAMLEN       /**/
748
749 /* MALLOCPTRTYPE
750  *      This symbol defines the kind of ptr returned by malloc and realloc.
751  */
752 #define MALLOCPTRTYPE $mallocptrtype         /**/
753
754
755 /* RANDBITS
756  *      This symbol contains the number of bits of random number the rand()
757  *      function produces.  Usual values are 15, 16, and 31.
758  */
759 #define RANDBITS $randbits              /**/
760
761 /* SCRIPTDIR
762  *      This symbol holds the name of the directory in which the user wants
763  *      to put publicly executable scripts for the package in question.  It
764  *      is often a directory that is mounted across diverse architectures.
765  */
766 #define SCRIPTDIR "$scriptdir"             /**/
767
768 /* SIG_NAME
769  *      This symbol contains an list of signal names in order.
770  */
771 #define SIG_NAME "`echo $sig_name | sed 's/ /","/g'`"           /**/
772
773 /* STDCHAR
774  *      This symbol is defined to be the type of char used in stdio.h.
775  *      It has the values "unsigned char" or "char".
776  */
777 #define STDCHAR $stdchar        /**/
778
779 /* UIDTYPE
780  *      This symbol has a value like uid_t, int, ushort, or whatever type is
781  *      used to declare user ids in the kernel.
782  */
783 #define UIDTYPE $uidtype                /**/
784
785 /* VOIDHAVE
786  *      This symbol indicates how much support of the void type is given by this
787  *      compiler.  What various bits mean:
788  *
789  *          1 = supports declaration of void
790  *          2 = supports arrays of pointers to functions returning void
791  *          4 = supports comparisons between pointers to void functions and
792  *                  addresses of void functions
793  *
794  *      The package designer should define VOIDWANT to indicate the requirements
795  *      of the package.  This can be done either by #defining VOIDWANT before
796  *      including config.h, or by defining voidwant in Myinit.U.  If the level
797  *      of void support necessary is not present, config.h defines void to "int",
798  *      VOID to the empty string, and VOIDP to "char *".
799  */
800 /* void
801  *      This symbol is used for void casts.  On implementations which support
802  *      void appropriately, its value is "void".  Otherwise, its value maps
803  *      to "int".
804  */
805 /* VOID
806  *      This symbol's value is "void" if the implementation supports void
807  *      appropriately.  Otherwise, its value is the empty string.  The primary
808  *      use of this symbol is in specifying void parameter lists for function
809  *      prototypes.
810  */
811 /* VOIDP
812  *      This symbol is used for casting generic pointers.  On implementations
813  *      which support void appropriately, its value is "void *".  Otherwise,
814  *      its value is "char *".
815  */
816 #ifndef VOIDWANT
817 #define VOIDWANT $voidwant
818 #endif
819 #define VOIDHAVE $voidhave
820 #if (VOIDHAVE & VOIDWANT) != VOIDWANT
821 #define void int                /* is void to be avoided? */
822 #define VOID
823 #define VOIDP (char *)
824 #define M_VOID          /* Xenix strikes again */
825 #else
826 #define VOID void
827 #define VOIDP (void *)
828 #endif
829
830 /* PRIVLIB
831  *      This symbol contains the name of the private library for this package.
832  *      The library is private in the sense that it needn't be in anyone's
833  *      execution path, but it should be accessible by the world.  The program
834  *      should be prepared to do ~ expansion.
835  */
836 #define PRIVLIB "$privlib"              /**/
837
838 #endif
839 !GROK!THIS!