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