perl 5.0 alpha 8
[p5sagit/p5-mst-13.2.git] / config_h.SH
1 case $CONFIG in
2 '')
3         if test -f config.sh; then TOP=.;
4         elif test -f ../config.sh; then TOP=..;
5         elif test -f ../../config.sh; then TOP=../..;
6         elif test -f ../../../config.sh; then TOP=../../..;
7         elif test -f ../../../../config.sh; then TOP=../../../..;
8         else
9                 echo "Can't find config.sh."; exit 1
10         fi
11         . $TOP/config.sh
12         ;;
13 esac
14 case "$0" in
15 */*) cd `expr X$0 : 'X\(.*\)/'` ;;
16 esac
17 echo "Extracting config.h (with variable substitutions)"
18 sed <<!GROK!THIS! >config.h -e 's!^#undef!/\*#define!' -e 's!^#un-def!#undef!'
19 /*
20  * This file was produced by running the config_h.SH script, which
21  * gets its values from config.sh, which is generally produced by
22  * running Configure.
23  *
24  * Feel free to modify any of this as the need arises.  Note, however,
25  * that running config.h.SH again will wipe out any changes you've made.
26  * For a more permanent change edit config.sh and rerun config.h.SH.
27  *
28  * \$Id: Config_h.U,v 3.0.1.2 1993/08/24 12:13:20 ram Exp $
29  */
30
31 /* Configuration time: $cf_time
32  * Configured by: $cf_by
33  * Target system: $myuname
34  */
35
36 #ifndef _config_h_
37 #define _config_h_
38
39 /* EUNICE:
40  *      This symbol, if defined, indicates that the program is being compiled
41  *      under the EUNICE package under VMS.  The program will need to handle
42  *      things like files that don't go away the first time you unlink them,
43  *      due to version numbering.  It will also need to compensate for lack
44  *      of a respectable link() command.
45  */
46 /* VMS:
47  *      This symbol, if defined, indicates that the program is running under
48  *      VMS.  It is currently only set in conjunction with the EUNICE symbol.
49  */
50 /* BSD:
51  *      This symbol, if defined, indicates that the program is running under
52  *      a BSD system.
53  */
54 #$d_eunice EUNICE               /**/
55 #$d_eunice VMS          /**/
56 #$d_bsd BSD             /**/
57
58 /* ALIGNBYTES:
59  *      This symbol contains the number of bytes required to align a
60  *      double. Usual values are 2, 4 and 8.
61  */
62 #define ALIGNBYTES $alignbytes  /**/
63
64 /* BIN:
65  *      This symbol holds the path of the bin directory where the package will
66  *      be installed. Program must be prepared to deal with ~name substitution.
67  */
68 #define BIN "$bin"      /**/
69
70 /* BYTEORDER:
71  *      This symbol hold the hexadecimal constant defined in byteorder,
72  *      i.e. 0x1234 or 0x4321, etc...
73  */
74 #define BYTEORDER 0x$byteorder  /* large digits for MSB */
75
76 /* CPPSTDIN:
77  *      This symbol contains the first part of the string which will invoke
78  *      the C preprocessor on the standard input and produce to standard
79  *      output.  Typical value of "cc -E" or "/lib/cpp", but it can also
80  *      call a wrapper. See CPPRUN.
81  */
82 /* CPPMINUS:
83  *      This symbol contains the second part of the string which will invoke
84  *      the C preprocessor on the standard input and produce to standard
85  *      output.  This symbol will have the value "-" if CPPSTDIN needs a minus
86  *      to specify standard input, otherwise the value is "".
87  */
88 #define CPPSTDIN "$cppstdin"
89 #define CPPMINUS "$cppminus"
90
91 /* HAS_BCMP:
92  *      This symbol is defined if the bcmp() routine is available to
93  *      compare blocks of memory.
94  */
95 #$d_bcmp HAS_BCMP       /**/
96
97 /* HAS_BCOPY:
98  *      This symbol is defined if the bcopy() routine is available to
99  *      copy blocks of memory.
100  */
101 #$d_bcopy HAS_BCOPY     /**/
102
103 /* HAS_BZERO:
104  *      This symbol is defined if the bzero() routine is available to
105  *      set a memory block to 0.
106  */
107 #$d_bzero HAS_BZERO     /**/
108
109 /* CASTNEGFLOAT:
110  *      This symbol is defined if the C compiler can cast negative
111  *      numbers to unsigned longs, ints and shorts.
112  */
113 /* CASTFLAGS:
114  *      This symbol contains flags that say what difficulties the compiler
115  *      has casting odd floating values to unsigned long:
116  *              0 = ok
117  *              1 = couldn't cast < 0
118  *              2 = couldn't cast >= 0x80000000
119  */
120 #$d_castneg     CASTNEGFLOAT            /**/
121 #define CASTFLAGS $castflags            /**/
122
123 /* CHARSPRINTF:
124  *      This symbol is defined if this system declares "char *sprintf()" in
125  *      stdio.h.  The trend seems to be to declare it as "int sprintf()".  It
126  *      is up to the package author to declare sprintf correctly based on the
127  *      symbol.
128  */
129 #$d_charsprf    CHARSPRINTF     /**/
130
131 /* HAS_CHSIZE:
132  *      This symbol, if defined, indicates that the chsize routine is available
133  *      to truncate files.  You might need a -lx to get this routine.
134  */
135 #$d_chsize      HAS_CHSIZE              /**/
136
137 /* HASCONST:
138  *      This symbol, if defined, indicates that this C compiler knows about
139  *      the const type. There is no need to actually test for that symbol
140  *      within your programs. The mere use of the "const" keyword will
141  *      trigger the necessary tests.
142  */
143 #$d_const HASCONST      /**/
144 #ifndef HASCONST
145 #define const
146 #endif
147
148 /* HAS_CRYPT:
149  *      This symbol, if defined, indicates that the crypt routine is available
150  *      to encrypt passwords and the like.
151  */
152 #$d_crypt HAS_CRYPT             /**/
153
154 /* CSH:
155  *      This symbol, if defined, indicates that the C-shell exists.
156  *      If defined, contains the full pathname of csh.
157  */
158 #$d_csh CSH "$csh"              /**/
159
160 /* DOSUID:
161  *      This symbol, if defined, indicates that the C program should
162  *      check the script that it is executing for setuid/setgid bits, and
163  *      attempt to emulate setuid/setgid on systems that have disabled
164  *      setuid #! scripts because the kernel can't do it securely.
165  *      It is up to the package designer to make sure that this emulation
166  *      is done securely.  Among other things, it should do an fstat on
167  *      the script it just opened to make sure it really is a setuid/setgid
168  *      script, it should make sure the arguments passed correspond exactly
169  *      to the argument on the #! line, and it should not trust any
170  *      subprocesses to which it must pass the filename rather than the
171  *      file descriptor of the script to be executed.
172  */
173 #$d_dosuid DOSUID               /**/
174
175 /* HAS_DUP2:
176  *      This symbol, if defined, indicates that the dup2 routine is
177  *      available to duplicate file descriptors.
178  */
179 #$d_dup2 HAS_DUP2       /**/
180
181 /* HAS_FCHMOD:
182  *      This symbol, if defined, indicates that the fchmod routine is available
183  *      to change mode of opened files.  If unavailable, use chmod().
184  */
185 #$d_fchmod HAS_FCHMOD           /**/
186
187 /* HAS_FCHOWN:
188  *      This symbol, if defined, indicates that the fchown routine is available
189  *      to change ownership of opened files.  If unavailable, use chown().
190  */
191 #$d_fchown HAS_FCHOWN           /**/
192
193 /* HAS_FCNTL:
194  *      This symbol, if defined, indicates to the C program that
195  *      the fcntl() function exists.
196  */
197 #$d_fcntl HAS_FCNTL             /**/
198
199 /* FLEXFILENAMES:
200  *      This symbol, if defined, indicates that the system supports filenames
201  *      longer than 14 characters.
202  */
203 #$d_flexfnam    FLEXFILENAMES           /**/
204
205 /* HAS_FLOCK:
206  *      This symbol, if defined, indicates that the flock routine is
207  *      available to do file locking.
208  */
209 #$d_flock HAS_FLOCK             /**/
210
211 /* HAS_GETGROUPS:
212  *      This symbol, if defined, indicates that the getgroups() routine is
213  *      available to get the list of process groups.  If unavailable, multiple
214  *      groups are probably not supported.
215  */
216 #$d_getgrps HAS_GETGROUPS               /**/
217
218 /* HAS_GETHOSTENT:
219  *      This symbol, if defined, indicates that the gethostent routine is
220  *      available to lookup host names in some data base or other.
221  */
222 #$d_gethent HAS_GETHOSTENT              /**/
223
224 /* HAS_UNAME:
225  *      This symbol, if defined, indicates that the C program may use the
226  *      uname() routine to derive the host name.  See also HAS_GETHOSTNAME
227  *      and PHOSTNAME.
228  */
229 #$d_uname HAS_UNAME             /**/
230
231 /* HAS_GETPGRP:
232  *      This symbol, if defined, indicates that the getpgrp routine is
233  *      available to get the current process group.
234  */
235 #$d_getpgrp HAS_GETPGRP         /**/
236
237 /* HAS_GETPGRP2:
238  *      This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
239  *      routine is available to get the current process group.
240  */
241 #$d_getpgrp2 HAS_GETPGRP2               /**/
242
243 /* HAS_GETPRIORITY:
244  *      This symbol, if defined, indicates that the getpriority routine is
245  *      available to get a process's priority.
246  */
247 #$d_getprior HAS_GETPRIORITY            /**/
248
249 /* HAS_HTONL:
250  *      This symbol, if defined, indicates that the htonl() routine (and
251  *      friends htons() ntohl() ntohs()) are available to do network
252  *      order byte swapping.
253  */
254 /* HAS_HTONS:
255  *      This symbol, if defined, indicates that the htons() routine (and
256  *      friends htonl() ntohl() ntohs()) are available to do network
257  *      order byte swapping.
258  */
259 /* HAS_NTOHL:
260  *      This symbol, if defined, indicates that the ntohl() routine (and
261  *      friends htonl() htons() ntohs()) are available to do network
262  *      order byte swapping.
263  */
264 /* HAS_NTOHS:
265  *      This symbol, if defined, indicates that the ntohs() routine (and
266  *      friends htonl() htons() ntohl()) are available to do network
267  *      order byte swapping.
268  */
269 #$d_htonl HAS_HTONL             /**/
270 #$d_htonl HAS_HTONS             /**/
271 #$d_htonl HAS_NTOHL             /**/
272 #$d_htonl HAS_NTOHS             /**/
273
274 /* HAS_KILLPG:
275  *      This symbol, if defined, indicates that the killpg routine is available
276  *      to kill process groups.  If unavailable, you probably should use kill
277  *      with a negative process number.
278  */
279 #$d_killpg HAS_KILLPG   /**/
280
281 /* HAS_LINK:
282  *      This symbol, if defined, indicates that the link routine is
283  *      available to create hard links.
284  */
285 #$d_link HAS_LINK       /**/
286
287 /* HAS_LSTAT:
288  *      This symbol, if defined, indicates that the lstat routine is
289  *      available to do file stats on symbolic links.
290  */
291 #$d_lstat HAS_LSTAT             /**/
292
293 /* HAS_MEMCMP:
294  *      This symbol, if defined, indicates that the memcmp routine is available
295  *      to compare blocks of memory.
296  */
297 #$d_memcmp HAS_MEMCMP   /**/
298
299 /* HAS_MEMCPY:
300  *      This symbol, if defined, indicates that the memcpy routine is available
301  *      to copy blocks of memory.
302  */
303 #$d_memcpy HAS_MEMCPY   /**/
304
305 /* HAS_MEMMOVE:
306  *      This symbol, if defined, indicates that the memmove routine is available
307  *      to copy potentially overlapping blocks of memory. This should be used
308  *      only when HAS_SAFE_BCOPY is not defined. If neither is there, roll your
309  *      own version.
310  */
311 #$d_memmove HAS_MEMMOVE /**/
312
313 /* HAS_MEMSET:
314  *      This symbol, if defined, indicates that the memset routine is available
315  *      to set blocks of memory.
316  */
317 #$d_memset HAS_MEMSET   /**/
318
319 /* HAS_MKDIR:
320  *      This symbol, if defined, indicates that the mkdir routine is available
321  *      to create directories.  Otherwise you should fork off a new process to
322  *      exec /bin/mkdir.
323  */
324 #$d_mkdir HAS_MKDIR             /**/
325
326 /* HAS_MSG:
327  *      This symbol, if defined, indicates that the entire msg*(2) library is
328  *      supported (IPC mechanism based on message queues).
329  */
330 #$d_msg HAS_MSG         /**/
331
332 /* HAS_MSGCTL:
333  *      This symbol, if defined, indicates that the msgctl() routine is
334  *      available to perform message control operations.
335  */
336 #$d_msgctl HAS_MSGCTL           /**/
337
338 /* HAS_MSGGET:
339  *      This symbol, if defined, indicates that the msgget() routine is
340  *      available to get a new message queue.
341  */
342 #$d_msgget HAS_MSGGET           /**/
343
344 /* HAS_MSGRCV:
345  *      This symbol, if defined, indicates that the msgrcv() routine is
346  *      available to extract a message from the message queue.
347  */
348 #$d_msgrcv HAS_MSGRCV           /**/
349
350 /* HAS_MSGSND:
351  *      This symbol, if defined, indicates that the msgsnd() routine is
352  *      available to send a message into the message queue.
353  */
354 #$d_msgsnd HAS_MSGSND           /**/
355
356 /* HAS_OPEN3:
357  *      This manifest constant lets the C program know that the three
358  *      argument form of open(2) is available.
359  */
360 #$d_open3 HAS_OPEN3             /**/
361
362 /* HAS_READDIR:
363  *      This symbol, if defined, indicates that the readdir routine is
364  *      available to read directory entries. You may have to include
365  *      <dirent.h>. See I_DIRENT.
366  */
367 #$d_readdir HAS_READDIR         /**/
368
369 /* HAS_RENAME:
370  *      This symbol, if defined, indicates that the rename routine is available
371  *      to rename files.  Otherwise you should do the unlink(), link(), unlink()
372  *      trick.
373  */
374 #$d_rename HAS_RENAME   /**/
375
376 /* HAS_RMDIR:
377  *      This symbol, if defined, indicates that the rmdir routine is
378  *      available to remove directories. Otherwise you should fork off a
379  *      new process to exec /bin/rmdir.
380  */
381 #$d_rmdir HAS_RMDIR             /**/
382
383 /* HAS_SAFE_BCOPY:
384  *      This symbol, if defined, indicates that the bcopy routine is available
385  *      to copy potentially overlapping memory blocks. Otherwise you should
386  *      probably use memmove() or memcpy(). If neither is defined, roll your
387  *      own version.
388  */
389 #$d_safebcpy HAS_SAFE_BCOPY     /**/
390
391 /* HAS_SAFE_MEMCPY:
392  *      This symbol, if defined, indicates that the memcpy routine is available
393  *      to copy potentially overlapping memory blocks. Otherwise you should
394  *      probably use memmove() or memcpy(). If neither is defined, roll your
395  *      own version.
396  */
397 #$d_safemcpy HAS_SAFE_MEMCPY    /**/
398
399 /* HAS_SELECT:
400  *      This symbol, if defined, indicates that the select routine is
401  *      available to select active file descriptors. If the timeout field
402  *      is used, <sys/time.h> may need to be included.
403  */
404 #$d_select HAS_SELECT   /**/
405
406 /* HAS_SEM:
407  *      This symbol, if defined, indicates that the entire sem*(2) library is
408  *      supported.
409  */
410 #$d_sem HAS_SEM         /**/
411
412 /* HAS_SEMCTL:
413  *      This symbol, if defined, indicates that the semctl() routine is
414  *      available to perform semaphore control operations.
415  */
416 #$d_semctl HAS_SEMCTL   /**/
417
418 /* HAS_SEMGET:
419  *      This symbol, if defined, indicates that the semget() routine is
420  *      available to get a set of semaphores.
421  */
422 #$d_semget HAS_SEMGET   /**/
423
424 /* HAS_SEMOP:
425  *      This symbol, if defined, indicates that the semop() routine is
426  *      available to execute semaphore operations.
427  */
428 #$d_semop HAS_SEMOP             /**/
429
430 /* HAS_SETEGID:
431  *      This symbol, if defined, indicates that the setegid routine is available
432  *      to change the effective gid of the current program.
433  */
434 #$d_setegid HAS_SETEGID         /**/
435
436 /* HAS_SETEUID:
437  *      This symbol, if defined, indicates that the seteuid routine is available
438  *      to change the effective uid of the current program.
439  */
440 #$d_seteuid HAS_SETEUID         /**/
441
442 /* HAS_SETPGID:
443  *      This symbol, if defined, indicates that the setpgid routine is
444  *      available to set process group ID.
445  */
446 #$d_setpgid HAS_SETPGID /**/
447
448 /* HAS_SETPGRP:
449  *      This symbol, if defined, indicates that the setpgrp routine is
450  *      available to set the current process group.
451  */
452 #$d_setpgrp HAS_SETPGRP         /**/
453
454 /* HAS_SETPGRP2:
455  *      This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
456  *      routine is available to set the current process group.
457  */
458 #$d_setpgrp2 HAS_SETPGRP2               /**/
459
460 /* HAS_SETPRIORITY:
461  *      This symbol, if defined, indicates that the setpriority routine is
462  *      available to set a process's priority.
463  */
464 #$d_setprior HAS_SETPRIORITY            /**/
465
466 /* HAS_SETREGID:
467  *      This symbol, if defined, indicates that the setregid routine is
468  *      available to change the real and effective gid of the current
469  *      process.
470  */
471 /* HAS_SETRESGID:
472  *      This symbol, if defined, indicates that the setresgid routine is
473  *      available to change the real, effective and saved gid of the current
474  *      process.
475  */
476 #$d_setregid HAS_SETREGID               /**/
477 #$d_setresgid HAS_SETRESGID             /**/
478
479 /* HAS_SETREUID:
480  *      This symbol, if defined, indicates that the setreuid routine is
481  *      available to change the real and effective uid of the current
482  *      process.
483  */
484 /* HAS_SETRESUID:
485  *      This symbol, if defined, indicates that the setresuid routine is
486  *      available to change the real, effective and saved uid of the current
487  *      process.
488  */
489 #$d_setreuid HAS_SETREUID               /**/
490 #$d_setresuid HAS_SETRESUID             /**/
491
492 /* HAS_SETRGID:
493  *      This symbol, if defined, indicates that the setrgid routine is available
494  *      to change the real gid of the current program.
495  */
496 #$d_setrgid HAS_SETRGID         /**/
497
498 /* HAS_SETRUID:
499  *      This symbol, if defined, indicates that the setruid routine is available
500  *      to change the real uid of the current program.
501  */
502 #$d_setruid HAS_SETRUID         /**/
503
504 /* HAS_SETSID:
505  *      This symbol, if defined, indicates that the setsid routine is
506  *      available to set the process group ID.
507  */
508 #$d_setsid HAS_SETSID   /**/
509
510 /* HAS_SHM:
511  *      This symbol, if defined, indicates that the entire shm*(2) library is
512  *      supported.
513  */
514 #$d_shm HAS_SHM         /**/
515
516 /* HAS_SHMAT:
517  *      This symbol, if defined, indicates that the shmat() routine is
518  *      available to attach a shared memory segment to the process space.
519  */
520 #$d_shmat HAS_SHMAT             /**/
521
522 /* HAS_SHMCTL:
523  *      This symbol, if defined, indicates that the shmctl() routine is
524  *      available to perform shared memory control operations.
525  */
526 #$d_shmctl HAS_SHMCTL           /**/
527
528 /* HAS_SHMDT:
529  *      This symbol, if defined, indicates that the shmdt() routine is
530  *      available to detach a shared memory segment from the process space.
531  */
532 #$d_shmdt HAS_SHMDT             /**/
533
534 /* HAS_SHMGET:
535  *      This symbol, if defined, indicates that the shmget() routine is
536  *      available to request a shared memory segment from the kernel.
537  */
538 #$d_shmget HAS_SHMGET           /**/
539
540 /* HAS_SOCKET:
541  *      This symbol, if defined, indicates that the BSD socket interface is
542  *      supported.
543  */
544 /* HAS_SOCKETPAIR:
545  *      This symbol, if defined, indicates that the BSD socketpair() call is
546  *      supported.
547  */
548 /* USE_OLDSOCKET:
549  *      This symbol, if defined, indicates that the 4.1c BSD socket interface
550  *      is supported instead of the 4.2/4.3 BSD socket interface. For instance,
551  *      there is no setsockopt() call.
552  */
553 #$d_socket HAS_SOCKET           /**/
554 #$d_sockpair HAS_SOCKETPAIR     /**/
555 #$d_oldsock USE_OLDSOCKET       /**/
556
557 /* USE_STAT_BLOCKS:
558  *      This symbol is defined if this system has a stat structure declaring
559  *      st_blksize and st_blocks.
560  */
561 #$d_statblks USE_STAT_BLOCKS    /**/
562
563 /* USE_STD_STDIO:
564  *      This symbol is defined if this system has a FILE structure declaring
565  *      _ptr and _cnt in stdio.h.
566  */
567 #$d_stdstdio USE_STD_STDIO      /**/
568
569 /* USE_STRUCT_COPY:
570  *      This symbol, if defined, indicates that this C compiler knows how
571  *      to copy structures.  If undefined, you'll need to use a block copy
572  *      routine of some sort instead.
573  */
574 #$d_strctcpy    USE_STRUCT_COPY /**/
575
576 /* HAS_SYMLINK:
577  *      This symbol, if defined, indicates that the symlink routine is available
578  *      to create symbolic links.
579  */
580 #$d_symlink HAS_SYMLINK /**/
581
582 /* HAS_SYSCALL:
583  *      This symbol, if defined, indicates that the syscall routine is
584  *      available to call arbitrary system calls. If undefined, that's tough.
585  */
586 #$d_syscall HAS_SYSCALL /**/
587
588 /* HAS_SYSTEM:
589  *      This symbol, if defined, indicates that the system routine is
590  *      available to issue a shell command.
591  */
592 #$d_system HAS_SYSTEM   /**/
593
594 /* HAS_TIMES:
595  *      This symbol, if defined, indicates that the times() routine exists.
596  *      Note that this became obsolete on some systems (SUNOS), which now
597  * use getrusage(). It may be necessary to include <sys/times.h>.
598  */
599 #$d_times HAS_TIMES             /**/
600
601 /* HAS_TRUNCATE:
602  *      This symbol, if defined, indicates that the truncate routine is
603  *      available to truncate files.
604  */
605 #$d_truncate HAS_TRUNCATE       /**/
606
607 /* I_NDIR:
608  *      This symbol, if defined, indicates that the program should include the
609  *      system's version of ndir.h, rather than the one with this package.
610  */
611 #$i_ndir I_NDIR         /**/
612
613 /* HAS_VFORK:
614  *      This symbol, if defined, indicates that vfork() exists.
615  */
616 #$d_vfork HAS_VFORK     /**/
617
618 /* VOIDSIG:
619  *      This symbol is defined if this system declares "void (*signal(...))()" in
620  *      signal.h.  The old way was to declare it as "int (*signal(...))()".  It
621  *      is up to the package author to declare things correctly based on the
622  *      symbol.
623  */
624 #$d_voidsig VOIDSIG     /**/
625
626 /* HASVOLATILE:
627  *      This symbol, if defined, indicates that this C compiler knows about
628  *      the volatile declaration.
629  */
630 #$d_volatile    HASVOLATILE     /**/
631 #ifndef HASVOLATILE
632 #define volatile
633 #endif
634
635 /* HAS_VPRINTF:
636  *      This symbol, if defined, indicates that the vprintf routine is available
637  *      to printf with a pointer to an argument list.  If unavailable, you
638  *      may need to write your own, probably in terms of _doprnt().
639  */
640 /* USE_CHAR_VSPRINTF:
641  *      This symbol is defined if this system has vsprintf() returning type
642  *      (char*).  The trend seems to be to declare it as "int vsprintf()".  It
643  *      is up to the package author to declare vsprintf correctly based on the
644  *      symbol.
645  */
646 #$d_vprintf HAS_VPRINTF /**/
647 #$d_charvspr USE_CHAR_VSPRINTF  /**/
648
649 /* HAS_WAIT4:
650  *      This symbol, if defined, indicates that wait4() exists.
651  */
652 #$d_wait4 HAS_WAIT4     /**/
653
654 /* HAS_WAITPID:
655  *      This symbol, if defined, indicates that the waitpid routine is
656  *      available to wait for child process.
657  */
658 #$d_waitpid HAS_WAITPID /**/
659
660 /* I_DBM:
661  *      This symbol, if defined, indicates to the C program that it should
662  *      include <dbm.h>.
663  */
664 #$i_dbm I_DBM   /**/
665
666 /* I_DIRENT:
667  *      This symbol, if defined, indicates to the C program that it should
668  *      include <dirent.h>. Using this symbol also triggers the definition
669  *      of the Direntry_t define which ends up being 'struct dirent' or
670  *      'struct direct' depending on the availability of <dirent.h>.
671  */
672 /* DIRNAMLEN:
673  *      This symbol, if defined, indicates to the C program that the length
674  *      of directory entry names is provided by a d_namlen field.  Otherwise
675  *      you need to do strlen() on the d_name field.
676  */
677 #$i_dirent I_DIRENT             /**/
678 #$d_dirnamlen DIRNAMLEN /**/
679 #ifdef I_DIRENT
680 #define Direntry_t struct dirent
681 #else
682 #define Direntry_t struct direct
683 #endif
684
685 /* I_FCNTL:
686  *      This manifest constant tells the C program to include <fcntl.h>.
687  */
688 #$i_fcntl I_FCNTL       /**/
689
690 /* I_GDBM:
691  *      This symbol, if defined, indicates that gdbm.h exists and should
692  *      be included.
693  */
694 #$i_gdbm I_GDBM /**/
695
696 /* I_GRP:
697  *      This symbol, if defined, indicates to the C program that it should
698  *      include <grp.h>.
699  */
700 #$i_grp I_GRP           /**/
701
702 /* I_NDBM:
703  *      This symbol, if defined, indicates that ndbm.h exists and should
704  *      be included.
705  */
706 #$i_ndbm I_NDBM /**/
707
708 /* I_NETINET_IN:
709  *      This symbol, if defined, indicates to the C program that it should
710  *      include <netinet/in.h>. Otherwise, you may try <sys/in.h>.
711  */
712 /* I_SYS_IN:
713  *      This symbol, if defined, indicates to the C program that it should
714  *      include <sys/in.h> instead of <netinet/in.h>.
715  */
716 #$i_niin I_NETINET_IN   /**/
717 #$i_sysin I_SYS_IN              /**/
718
719 /* I_PWD:
720  *      This symbol, if defined, indicates to the C program that it should
721  *      include <pwd.h>.
722  */
723 /* PWQUOTA:
724  *      This symbol, if defined, indicates to the C program that struct passwd
725  *      contains pw_quota.
726  */
727 /* PWAGE:
728  *      This symbol, if defined, indicates to the C program that struct passwd
729  *      contains pw_age.
730  */
731 /* PWCHANGE:
732  *      This symbol, if defined, indicates to the C program that struct passwd
733  *      contains pw_change.
734  */
735 /* PWCLASS:
736  *      This symbol, if defined, indicates to the C program that struct passwd
737  *      contains pw_class.
738  */
739 /* PWEXPIRE:
740  *      This symbol, if defined, indicates to the C program that struct passwd
741  *      contains pw_expire.
742  */
743 /* PWCOMMENT:
744  *      This symbol, if defined, indicates to the C program that struct passwd
745  *      contains pw_comment.
746  */
747 #$i_pwd I_PWD           /**/
748 #$d_pwquota PWQUOTA     /**/
749 #$d_pwage PWAGE /**/
750 #$d_pwchange PWCHANGE   /**/
751 #$d_pwclass PWCLASS     /**/
752 #$d_pwexpire PWEXPIRE   /**/
753 #$d_pwcomment PWCOMMENT /**/
754
755 /* I_STDARG:
756  *      This symbol, if defined, indicates that <stdarg.h> exists and should
757  *      be included.
758  */
759 #$i_stdarg I_STDARG             /**/
760
761 /* I_STDDEF:
762  *      This symbol, if defined, indicates that <stddef.h> exists and should
763  *      be included.
764  */
765 #$i_stddef I_STDDEF     /**/
766
767 /* I_SYS_DIR:
768  *      This symbol, if defined, indicates to the C program that it should
769  *      include <sys/dir.h>.
770  */
771 #$i_sysdir I_SYS_DIR            /**/
772
773 /* I_SYS_FILE:
774  *      This symbol, if defined, indicates to the C program that it should
775  *      include <sys/file.h> to get definition of R_OK and friends.
776  */
777 #$i_sysfile I_SYS_FILE          /**/
778
779 /* I_SYS_IOCTL:
780  *      This symbol, if defined, indicates that <sys/ioctl.h> exists and should
781  *      be included. Otherwise, include <sgtty.h> or <termio.h>.
782  */
783 #$i_sysioctl    I_SYS_IOCTL             /**/
784
785 /* I_SYS_NDIR:
786  *      This symbol, if defined, indicates to the C program that it should
787  *      include <sys/ndir.h>.
788  */
789 #$i_sysndir I_SYS_NDIR  /**/
790
791 /* I_SYS_SELECT:
792  *      This symbol, if defined, indicates to the C program that it should
793  *      include <sys/select.h> in order to get definition of struct timeval.
794  */
795 #$i_sysselct I_SYS_SELECT       /**/
796
797 /* I_TIME:
798  *      This symbol, if defined, indicates to the C program that it should
799  *      include <time.h>.
800  */
801 /* I_SYS_TIME:
802  *      This symbol, if defined, indicates to the C program that it should
803  *      include <sys/time.h>.
804  */
805 #$i_time I_TIME         /**/
806 #$i_systime I_SYS_TIME          /**/
807
808 /* I_UTIME:
809  *      This symbol, if defined, indicates to the C program that it should
810  *      include <utime.h>.
811  */
812 #$i_utime I_UTIME               /**/
813
814 /* I_VARARGS:
815  *      This symbol, if defined, indicates to the C program that it should
816  *      include <varargs.h>.
817  */
818 #$i_varargs I_VARARGS           /**/
819
820 /* I_VFORK:
821  *      This symbol, if defined, indicates to the C program that it should
822  *      include vfork.h.
823  */
824 #$i_vfork I_VFORK       /**/
825
826 /* INTSIZE:
827  *      This symbol contains the size of an int, so that the C preprocessor
828  *      can make decisions based on it.
829  */
830 #define INTSIZE $intsize                /**/
831
832 /* PRIVLIB:
833  *      This symbol contains the name of the private library for this package.
834  *      The library is private in the sense that it needn't be in anyone's
835  *      execution path, but it should be accessible by the world.  The program
836  *      should be prepared to do ~ expansion.
837  */
838 #define PRIVLIB "$privlib"              /**/
839
840 /* RANDBITS:
841  *      This symbol contains the number of bits of random number the rand()
842  *      function produces.  Usual values are 15, 16, and 31.
843  */
844 #define RANDBITS $randbits              /**/
845
846 /* SCRIPTDIR:
847  *      This symbol holds the name of the directory in which the user wants
848  *      to put publicly executable scripts for the package in question.  It
849  *      is often a directory that is mounted across diverse architectures.
850  *      Programs must be prepared to deal with ~name expansion.
851  */
852 #define SCRIPTDIR "$scriptdir"  /**/
853
854 /* SIG_NAME:
855  *      This symbol contains a list of signal names in order. This is intended
856  *      to be used as a static array initialization, like this:
857  *              char *sig_name[] = { SIG_NAME };
858  *      The signals in the list are separated with commas, and each signal
859  *      is surrounded by double quotes. There is no leading SIG in the signal
860  *      name, i.e. SIGQUIT is known as "QUIT".
861  */
862 #define SIG_NAME "`echo $sig_name | sed 's/ /","/g'`"   /**/
863
864 /* STDCHAR:
865  *      This symbol is defined to be the type of char used in stdio.h.
866  *      It has the values "unsigned char" or "char".
867  */
868 #define STDCHAR $stdchar        /**/
869
870 /* Uid_t:
871  *      This symbol holds the type used to declare user ids in the kernel.
872  *      It can be int, ushort, uid_t, etc... It may be necessary to include
873  *      <sys/types.h> to get any typedef'ed information.
874  */
875 #define Uid_t $uidtype          /* UID type */
876
877 /* CASTI32:
878  *      This symbol is defined if the C compiler can cast negative
879  *      or large floating point numbers to 32-bit ints.
880  */
881 #$d_casti32     CASTI32         /**/
882
883 /* HAS_ISASCII:
884  *      This manifest constant lets the C program know that the
885  *      isascii is available.
886  */
887 #$d_isascii HAS_ISASCII         /**/
888
889 /* HAS_SETLOCALE:
890  *      This symbol, if defined, indicates that the setlocale routine is
891  *      available to handle locale-specific ctype implementations.
892  */
893 #$d_setlocale HAS_SETLOCALE     /**/
894
895 /* HAS_STRERROR:
896  *      This symbol, if defined, indicates that the strerror routine is
897  *      available to translate error numbers to strings. See the writeup
898  *      of Strerror() in this file before you try to define your own.
899  */
900 /* HAS_SYS_ERRLIST:
901  *      This symbol, if defined, indicates that the sys_errlist array is
902  *      available to translate error numbers to strings. The extern int
903  *      sys_nerr gives the size of that table.
904  */
905 /* Strerror:
906  *      This preprocessor symbol is defined as a macro if strerror() is
907  *      not available to translate error numbers to strings but sys_errlist[]
908  *      array is there.
909  */
910 #$d_strerror HAS_STRERROR               /**/
911 #$d_syserrlst HAS_SYS_ERRLIST   /**/
912 #ifdef HAS_STRERROR
913 #  define Strerror strerror
914 #else
915 #$d_strerrm Strerror(e) ((e)<0||(e)>=sys_nerr?"unknown":sys_errlist[e]) /**/
916 #endif
917
918 /* USE_DYNAMIC_LOADING:
919  *      This symbol, if defined, indicates that dynamic loading of
920  *      some sort is available.
921  */
922 #$usedl USE_DYNAMIC_LOADING             /**/
923
924 /* Gid_t:
925  *      This symbol holds the return type of getgid() and the type of
926  *      argument to setrgid() and related functions.  Typically,
927  *      it is the type of group ids in the kernel.
928  *      It can be int, ushort, uid_t, etc... It may be necessary to include
929  *      <sys/types.h> to get any typedef'ed information.
930  */
931 #define Gid_t $gidtype          /* Type for getgid(), etc... */
932
933 /* GROUPSTYPE:
934  *      This symbol holds the type used for the second argument to
935  *      getgroups().  Usually, this is the same of gidtype, but
936  *      sometimes it isn't.  It can be int, ushort, uid_t, etc... 
937  *      It may be necessary to include <sys/types.h> to get any 
938  *      typedef'ed information.  This is only required if you have
939  *      getgroups().
940  */
941 #ifdef HAS_GETGROUPS
942 #define GROUPSTYPE $groupstype  /* Type for 2nd arg to getgroups() */
943 #endif
944
945 /* Malloc_t:
946  *      This symbol is the type of pointer returned by malloc and realloc.
947  */
948 #define Malloc_t $malloctype                    /**/
949
950 /* CAN_PROTOTYPE:
951  *      If defined, this macro indicates that the C compiler can handle
952  *      function prototypes.
953  */
954 #$prototype     CAN_PROTOTYPE   /**/
955 #ifdef CAN_PROTOTYPE
956 #else
957 #endif
958
959 /* VOIDFLAGS:
960  *      This symbol indicates how much support of the void type is given by this
961  *      compiler.  What various bits mean:
962  *
963  *          1 = supports declaration of void
964  *          2 = supports arrays of pointers to functions returning void
965  *          4 = supports comparisons between pointers to void functions and
966  *                  addresses of void functions
967  *          8 = suports declaration of generic void pointers
968  *
969  *      The package designer should define VOIDUSED to indicate the requirements
970  *      of the package.  This can be done either by #defining VOIDUSED before
971  *      including config.h, or by defining defvoidused in Myinit.U.  If the
972  *      latter approach is taken, only those flags will be tested.  If the
973  *      level of void support necessary is not present, defines void to int.
974  */
975 #ifndef VOIDUSED
976 #  ifdef VOIDWANT
977 #    define VOIDUSED VOIDWANT
978 #  else
979 #    define VOIDUSED $defvoidused
980 #  endif
981 #endif
982 #define VOIDFLAGS $voidflags
983 #if (VOIDFLAGS & VOIDUSED) != VOIDUSED
984 #  define void int              /* is void to be avoided? */
985 #  define M_VOID                        /* Xenix strikes again */
986 #  define VOID
987 #else
988 #  define VOID void
989 #endif
990
991 /*
992  * The following symbols are obsolete. They are mapped to the the new
993  * symbols only to ease the transition process. The sources should be
994  * updated so as to use the new symbols only, as the support for these
995  * obsolete symbols may end without notice.
996  */
997
998 #ifdef USE_CHAR_VSPRINTF
999 #define CHARVSPRINTF USE_CHAR_VSPRINTF
1000 #endif
1001
1002 #ifdef Gid_t
1003 #define GIDTYPE Gid_t
1004 #endif
1005
1006 #ifdef I_GDBM
1007 #define HAS_GDBM I_GDBM
1008 #endif
1009
1010 #ifdef HAS_SAFE_BCOPY
1011 #define SAFE_BCOPY HAS_SAFE_BCOPY
1012 #endif
1013
1014 #ifdef USE_STAT_BLOCKS
1015 #define STATBLOCKS USE_STAT_BLOCKS
1016 #endif
1017
1018 #ifdef USE_STD_STDIO
1019 #define STDSTDIO USE_STD_STDIO
1020 #endif
1021
1022 #ifdef Uid_t
1023 #define UIDTYPE Uid_t
1024 #endif
1025
1026 #endif
1027 !GROK!THIS!