source: trunk/third/perl/config_h.SH @ 10724

Revision 10724, 56.2 KB checked in by ghudson, 27 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r10723, which included commits to RCS files with non-trunk default branches.
Line 
1case $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        ;;
13esac
14case "$0" in
15*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
16esac
17echo "Extracting config.h (with variable substitutions)"
18sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -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.SH,v 1.1.1.2 1997-11-13 01:46:23 ghudson 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/* MEM_ALIGNBYTES:
40 *      This symbol contains the number of bytes required to align a
41 *      double. Usual values are 2, 4 and 8.
42 *      On NeXT starting with 3.2, you can build "Fat" Multiple Architecture
43 *      Binaries (MAB) for targets with varying alignment.  This only matters
44 *      for perl, where the config.h can be generated and installed on one
45 *      system, and used by a different architecture to build an extension.
46 *      The default is eight, for safety.
47 */
48#ifndef NeXT
49#define MEM_ALIGNBYTES $alignbytes      /**/
50#else  /* NeXT */
51#ifdef __m68k__
52#define MEM_ALIGNBYTES 2
53#else
54#ifdef __i386__
55#define MEM_ALIGNBYTES 4
56#else /* __hppa__, __sparc__ and default for unknown architectures */
57#define MEM_ALIGNBYTES 8
58#endif /* __i386__ */
59#endif /* __m68k__ */
60#endif /* NeXT */
61
62/* ARCHNAME:
63 *      This symbol holds a string representing the architecture name.
64 *      It may be used to construct an architecture-dependant pathname
65 *      where library files may be held under a private library, for
66 *      instance.
67 */
68#define ARCHNAME "$archname"            /**/
69
70/* BIN:
71 *      This symbol holds the path of the bin directory where the package will
72 *      be installed. Program must be prepared to deal with ~name substitution.
73 */
74/* BIN_EXP:
75 *      This symbol is the filename expanded version of the BIN symbol, for
76 *      programs that do not want to deal with that at run-time.
77 */
78#define BIN "$bin"      /**/
79#define BIN_EXP "$binexp"       /**/
80
81/* CAT2:
82 *      This macro catenates 2 tokens together.
83 */
84/* STRINGIFY:
85 *      This macro surrounds its token with double quotes.
86 */
87#if $cpp_stuff == 1
88#define CAT2(a,b)a/**/b
89#define CAT3(a,b,c)a/**/b/**/c
90#define CAT4(a,b,c,d)a/**/b/**/c/**/d
91#define CAT5(a,b,c,d,e)a/**/b/**/c/**/d/**/e
92#define STRINGIFY(a)"a"
93                /* If you can get stringification with catify, tell me how! */
94#endif
95#if $cpp_stuff == 42
96#define CAT2(a,b)a ## b
97#define CAT3(a,b,c)a ## b ## c
98#define CAT4(a,b,c,d)a ## b ## c ## d
99#define CAT5(a,b,c,d,e)a ## b ## c ## d ## e
100#define StGiFy(a)# a
101#define STRINGIFY(a)StGiFy(a)
102#define SCAT2(a,b)StGiFy(a) StGiFy(b)
103#define SCAT3(a,b,c)StGiFy(a) StGiFy(b) StGiFy(c)
104#define SCAT4(a,b,c,d)StGiFy(a) StGiFy(b) StGiFy(c) StGiFy(d)
105#define SCAT5(a,b,c,d,e)StGiFy(a) StGiFy(b) StGiFy(c) StGiFy(d) StGiFy(e)
106#endif
107#ifndef CAT2
108#include "Bletch: How does this C preprocessor catenate tokens?"
109#endif
110
111/* CPPSTDIN:
112 *      This symbol contains the first part of the string which will invoke
113 *      the C preprocessor on the standard input and produce to standard
114 *      output.  Typical value of "cc -E" or "/lib/cpp", but it can also
115 *      call a wrapper. See CPPRUN.
116 */
117/* CPPMINUS:
118 *      This symbol contains the second part of the string which will invoke
119 *      the C preprocessor on the standard input and produce to standard
120 *      output.  This symbol will have the value "-" if CPPSTDIN needs a minus
121 *      to specify standard input, otherwise the value is "".
122 */
123#define CPPSTDIN "$cppstdin"
124#define CPPMINUS "$cppminus"
125
126/* HAS_ALARM:
127 *      This symbol, if defined, indicates that the alarm routine is
128 *      available.
129 */
130#$d_alarm HAS_ALARM             /**/
131
132/* HASATTRIBUTE:
133 *      This symbol indicates the C compiler can check for function attributes,
134 *      such as printf formats. This is normally only supported by GNU cc.
135 */
136#$d_attribut HASATTRIBUTE       /**/
137#ifndef HASATTRIBUTE
138#define __attribute__(_arg_)
139#endif
140
141/* HAS_BCMP:
142 *      This symbol is defined if the bcmp() routine is available to
143 *      compare blocks of memory.
144 */
145#$d_bcmp HAS_BCMP       /**/
146
147/* HAS_BCOPY:
148 *      This symbol is defined if the bcopy() routine is available to
149 *      copy blocks of memory.
150 */
151#$d_bcopy HAS_BCOPY     /**/
152
153/* HAS_BZERO:
154 *      This symbol is defined if the bzero() routine is available to
155 *      set a memory block to 0.
156 */
157#$d_bzero HAS_BZERO     /**/
158
159/* CASTI32:
160 *      This symbol is defined if the C compiler can cast negative
161 *      or large floating point numbers to 32-bit ints.
162 */
163#$d_casti32     CASTI32         /**/
164
165/* CASTNEGFLOAT:
166 *      This symbol is defined if the C compiler can cast negative
167 *      numbers to unsigned longs, ints and shorts.
168 */
169/* CASTFLAGS:
170 *      This symbol contains flags that say what difficulties the compiler
171 *      has casting odd floating values to unsigned long:
172 *              0 = ok
173 *              1 = couldn't cast < 0
174 *              2 = couldn't cast >= 0x80000000
175 *              4 = couldn't cast in argument expression list
176 */
177#$d_castneg     CASTNEGFLOAT            /**/
178#define CASTFLAGS $castflags            /**/
179
180/* HAS_CHOWN:
181 *      This symbol, if defined, indicates that the chown routine is
182 *      available.
183 */
184#$d_chown HAS_CHOWN             /**/
185
186/* HAS_CHROOT:
187 *      This symbol, if defined, indicates that the chroot routine is
188 *      available.
189 */
190#$d_chroot HAS_CHROOT           /**/
191
192/* HAS_CHSIZE:
193 *      This symbol, if defined, indicates that the chsize routine is available
194 *      to truncate files.  You might need a -lx to get this routine.
195 */
196#$d_chsize      HAS_CHSIZE              /**/
197
198/* VOID_CLOSEDIR:
199 *      This symbol, if defined, indicates that the closedir() routine
200 *      does not return a value.
201 */
202#$d_void_closedir VOID_CLOSEDIR         /**/
203
204/* HASCONST:
205 *      This symbol, if defined, indicates that this C compiler knows about
206 *      the const type. There is no need to actually test for that symbol
207 *      within your programs. The mere use of the "const" keyword will
208 *      trigger the necessary tests.
209 */
210#$d_const HASCONST      /**/
211#ifndef HASCONST
212#define const
213#endif
214
215/* HAS_CRYPT:
216 *      This symbol, if defined, indicates that the crypt routine is available
217 *      to encrypt passwords and the like.
218 */
219#$d_crypt HAS_CRYPT             /**/
220
221/* HAS_CUSERID:
222 *      This symbol, if defined, indicates that the cuserid routine is
223 *      available to get character login names.
224 */
225#$d_cuserid HAS_CUSERID         /**/
226
227/* HAS_DBL_DIG:
228 *      This symbol, if defined, indicates that this system's <float.h>
229 *      or <limits.h> defines the symbol DBL_DIG, which is the number
230 *      of significant digits in a double precision number.  If this
231 *      symbol is not defined, a guess of 15 is usually pretty good.
232 */
233#$d_dbl_dig HAS_DBL_DIG         /* */
234
235/* HAS_DIFFTIME:
236 *      This symbol, if defined, indicates that the difftime routine is
237 *      available.
238 */
239#$d_difftime HAS_DIFFTIME               /**/
240
241/* HAS_DLERROR:
242 *      This symbol, if defined, indicates that the dlerror routine is
243 *      available to return a string describing the last error that
244 *      occurred from a call to dlopen(), dlclose() or dlsym().
245 */
246#$d_dlerror HAS_DLERROR /**/
247
248/* HAS_DUP2:
249 *      This symbol, if defined, indicates that the dup2 routine is
250 *      available to duplicate file descriptors.
251 */
252#$d_dup2 HAS_DUP2       /**/
253
254/* HAS_FCHMOD:
255 *      This symbol, if defined, indicates that the fchmod routine is available
256 *      to change mode of opened files.  If unavailable, use chmod().
257 */
258#$d_fchmod HAS_FCHMOD           /**/
259
260/* HAS_FCHOWN:
261 *      This symbol, if defined, indicates that the fchown routine is available
262 *      to change ownership of opened files.  If unavailable, use chown().
263 */
264#$d_fchown HAS_FCHOWN           /**/
265
266/* HAS_FCNTL:
267 *      This symbol, if defined, indicates to the C program that
268 *      the fcntl() function exists.
269 */
270#$d_fcntl HAS_FCNTL             /**/
271
272/* HAS_FGETPOS:
273 *      This symbol, if defined, indicates that the fgetpos routine is
274 *      available to get the file position indicator, similar to ftell().
275 */
276#$d_fgetpos HAS_FGETPOS /**/
277
278/* FLEXFILENAMES:
279 *      This symbol, if defined, indicates that the system supports filenames
280 *      longer than 14 characters.
281 */
282#$d_flexfnam    FLEXFILENAMES           /**/
283
284/* HAS_FLOCK:
285 *      This symbol, if defined, indicates that the flock routine is
286 *      available to do file locking.
287 */
288#$d_flock HAS_FLOCK             /**/
289
290/* HAS_FORK:
291 *      This symbol, if defined, indicates that the fork routine is
292 *      available.
293 */
294#$d_fork HAS_FORK               /**/
295
296/* HAS_FSETPOS:
297 *      This symbol, if defined, indicates that the fsetpos routine is
298 *      available to set the file position indicator, similar to fseek().
299 */
300#$d_fsetpos HAS_FSETPOS /**/
301
302/* HAS_GETTIMEOFDAY:
303 *      This symbol, if defined, indicates that the gettimeofday() system
304 *      call is available for a sub-second accuracy clock. Usually, the file
305 *      <sys/resource.h> needs to be included (see I_SYS_RESOURCE).
306 *      The type "Timeval" should be used to refer to "struct timeval".
307 */
308#$d_gettimeod HAS_GETTIMEOFDAY  /**/
309#ifdef HAS_GETTIMEOFDAY
310#define Timeval struct timeval  /* Structure used by gettimeofday() */
311#endif
312
313/* HAS_GETGROUPS:
314 *      This symbol, if defined, indicates that the getgroups() routine is
315 *      available to get the list of process groups.  If unavailable, multiple
316 *      groups are probably not supported.
317 */
318/* HAS_SETGROUPS:
319 *      This symbol, if defined, indicates that the setgroups() routine is
320 *      available to set the list of process groups.  If unavailable, multiple
321 *      groups are probably not supported.
322 */
323#$d_getgrps HAS_GETGROUPS               /**/
324#$d_setgrps HAS_SETGROUPS               /**/
325
326/* HAS_GETHOSTENT:
327 *      This symbol, if defined, indicates that the gethostent routine is
328 *      available to lookup host names in some data base or other.
329 */
330#$d_gethent HAS_GETHOSTENT              /**/
331
332/* HAS_UNAME:
333 *      This symbol, if defined, indicates that the C program may use the
334 *      uname() routine to derive the host name.  See also HAS_GETHOSTNAME
335 *      and PHOSTNAME.
336 */
337#$d_uname HAS_UNAME             /**/
338
339/* HAS_GETLOGIN:
340 *      This symbol, if defined, indicates that the getlogin routine is
341 *      available to get the login name.
342 */
343#$d_getlogin HAS_GETLOGIN               /**/
344
345/* HAS_GETPGRP2:
346 *      This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
347 *      routine is available to get the current process group.
348 */
349#$d_getpgrp2 HAS_GETPGRP2               /**/
350
351/* HAS_GETPPID:
352 *      This symbol, if defined, indicates that the getppid routine is
353 *      available to get the parent process ID.
354 */
355#$d_getppid HAS_GETPPID         /**/
356
357/* HAS_GETPRIORITY:
358 *      This symbol, if defined, indicates that the getpriority routine is
359 *      available to get a process's priority.
360 */
361#$d_getprior HAS_GETPRIORITY            /**/
362
363/* HAS_HTONL:
364 *      This symbol, if defined, indicates that the htonl() routine (and
365 *      friends htons() ntohl() ntohs()) are available to do network
366 *      order byte swapping.
367 */
368/* HAS_HTONS:
369 *      This symbol, if defined, indicates that the htons() routine (and
370 *      friends htonl() ntohl() ntohs()) are available to do network
371 *      order byte swapping.
372 */
373/* HAS_NTOHL:
374 *      This symbol, if defined, indicates that the ntohl() routine (and
375 *      friends htonl() htons() ntohs()) are available to do network
376 *      order byte swapping.
377 */
378/* HAS_NTOHS:
379 *      This symbol, if defined, indicates that the ntohs() routine (and
380 *      friends htonl() htons() ntohl()) are available to do network
381 *      order byte swapping.
382 */
383#$d_htonl HAS_HTONL             /**/
384#$d_htonl HAS_HTONS             /**/
385#$d_htonl HAS_NTOHL             /**/
386#$d_htonl HAS_NTOHS             /**/
387
388/* HAS_ISASCII:
389 *      This manifest constant lets the C program know that isascii
390 *      is available.
391 */
392#$d_isascii HAS_ISASCII         /**/
393
394/* HAS_KILLPG:
395 *      This symbol, if defined, indicates that the killpg routine is available
396 *      to kill process groups.  If unavailable, you probably should use kill
397 *      with a negative process number.
398 */
399#$d_killpg HAS_KILLPG   /**/
400
401/* HAS_LINK:
402 *      This symbol, if defined, indicates that the link routine is
403 *      available to create hard links.
404 */
405#$d_link HAS_LINK       /**/
406
407/* HAS_LOCALECONV:
408 *      This symbol, if defined, indicates that the localeconv routine is
409 *      available for numeric and monetary formatting conventions.
410 */
411#$d_locconv HAS_LOCALECONV      /**/
412
413/* HAS_LOCKF:
414 *      This symbol, if defined, indicates that the lockf routine is
415 *      available to do file locking.
416 */
417#$d_lockf HAS_LOCKF             /**/
418
419/* HAS_LSTAT:
420 *      This symbol, if defined, indicates that the lstat routine is
421 *      available to do file stats on symbolic links.
422 */
423#$d_lstat HAS_LSTAT             /**/
424
425/* HAS_MBLEN:
426 *      This symbol, if defined, indicates that the mblen routine is available
427 *      to find the number of bytes in a multibye character.
428 */
429#$d_mblen HAS_MBLEN             /**/
430
431/* HAS_MBSTOWCS:
432 *      This symbol, if defined, indicates that the mbstowcs routine is
433 *      available to covert a multibyte string into a wide character string.
434 */
435#$d_mbstowcs    HAS_MBSTOWCS            /**/
436
437/* HAS_MBTOWC:
438 *      This symbol, if defined, indicates that the mbtowc routine is available
439 *      to covert a multibyte to a wide character.
440 */
441#$d_mbtowc HAS_MBTOWC           /**/
442
443/* HAS_MEMCMP:
444 *      This symbol, if defined, indicates that the memcmp routine is available
445 *      to compare blocks of memory.
446 */
447#$d_memcmp HAS_MEMCMP   /**/
448
449/* HAS_MEMCPY:
450 *      This symbol, if defined, indicates that the memcpy routine is available
451 *      to copy blocks of memory.
452 */
453#$d_memcpy HAS_MEMCPY   /**/
454
455/* HAS_MEMMOVE:
456 *      This symbol, if defined, indicates that the memmove routine is available
457 *      to copy potentially overlapping blocks of memory. This should be used
458 *      only when HAS_SAFE_BCOPY is not defined. If neither is there, roll your
459 *      own version.
460 */
461#$d_memmove HAS_MEMMOVE /**/
462
463/* HAS_MEMSET:
464 *      This symbol, if defined, indicates that the memset routine is available
465 *      to set blocks of memory.
466 */
467#$d_memset HAS_MEMSET   /**/
468
469/* HAS_MKDIR:
470 *      This symbol, if defined, indicates that the mkdir routine is available
471 *      to create directories.  Otherwise you should fork off a new process to
472 *      exec /bin/mkdir.
473 */
474#$d_mkdir HAS_MKDIR             /**/
475
476/* HAS_MKFIFO:
477 *      This symbol, if defined, indicates that the mkfifo routine is
478 *      available to create FIFOs. Otherwise, mknod should be able to
479 *      do it for you. However, if mkfifo is there, mknod might require
480 *      super-user privileges which mkfifo will not.
481 */
482#$d_mkfifo HAS_MKFIFO           /**/
483
484/* HAS_MKTIME:
485 *      This symbol, if defined, indicates that the mktime routine is
486 *      available.
487 */
488#$d_mktime HAS_MKTIME           /**/
489
490/* HAS_MSG:
491 *      This symbol, if defined, indicates that the entire msg*(2) library is
492 *      supported (IPC mechanism based on message queues).
493 */
494#$d_msg HAS_MSG         /**/
495
496/* HAS_NICE:
497 *      This symbol, if defined, indicates that the nice routine is
498 *      available.
499 */
500#$d_nice HAS_NICE               /**/
501
502/* HAS_OPEN3:
503 *      This manifest constant lets the C program know that the three
504 *      argument form of open(2) is available.
505 */
506#$d_open3 HAS_OPEN3             /**/
507
508/* HAS_PATHCONF:
509 *      This symbol, if defined, indicates that pathconf() is available
510 *      to determine file-system related limits and options associated
511 *      with a given filename.
512 */
513/* HAS_FPATHCONF:
514 *      This symbol, if defined, indicates that pathconf() is available
515 *      to determine file-system related limits and options associated
516 *      with a given open file descriptor.
517 */
518#$d_pathconf HAS_PATHCONF               /**/
519#$d_fpathconf HAS_FPATHCONF             /**/
520
521/* HAS_PAUSE:
522 *      This symbol, if defined, indicates that the pause routine is
523 *      available to suspend a process until a signal is received.
524 */
525#$d_pause HAS_PAUSE             /**/
526
527/* HAS_PIPE:
528 *      This symbol, if defined, indicates that the pipe routine is
529 *      available to create an inter-process channel.
530 */
531#$d_pipe HAS_PIPE               /**/
532
533/* HAS_POLL:
534 *      This symbol, if defined, indicates that the poll routine is
535 *      available to poll active file descriptors.
536 */
537#$d_poll HAS_POLL               /**/
538
539/* HAS_READDIR:
540 *      This symbol, if defined, indicates that the readdir routine is
541 *      available to read directory entries. You may have to include
542 *      <dirent.h>. See I_DIRENT.
543 */
544#$d_readdir HAS_READDIR         /**/
545
546/* HAS_SEEKDIR:
547 *      This symbol, if defined, indicates that the seekdir routine is
548 *      available. You may have to include <dirent.h>. See I_DIRENT.
549 */
550#$d_seekdir HAS_SEEKDIR         /**/
551
552/* HAS_TELLDIR:
553 *      This symbol, if defined, indicates that the telldir routine is
554 *      available. You may have to include <dirent.h>. See I_DIRENT.
555 */
556#$d_telldir HAS_TELLDIR         /**/
557
558/* HAS_REWINDDIR:
559 *      This symbol, if defined, indicates that the rewinddir routine is
560 *      available. You may have to include <dirent.h>. See I_DIRENT.
561 */
562#$d_rewinddir HAS_REWINDDIR             /**/
563
564/* HAS_READLINK:
565 *      This symbol, if defined, indicates that the readlink routine is
566 *      available to read the value of a symbolic link.
567 */
568#$d_readlink HAS_READLINK               /**/
569
570/* HAS_RENAME:
571 *      This symbol, if defined, indicates that the rename routine is available
572 *      to rename files.  Otherwise you should do the unlink(), link(), unlink()
573 *      trick.
574 */
575#$d_rename HAS_RENAME   /**/
576
577/* HAS_RMDIR:
578 *      This symbol, if defined, indicates that the rmdir routine is
579 *      available to remove directories. Otherwise you should fork off a
580 *      new process to exec /bin/rmdir.
581 */
582#$d_rmdir HAS_RMDIR             /**/
583
584/* HAS_SAFE_BCOPY:
585 *      This symbol, if defined, indicates that the bcopy routine is available
586 *      to copy potentially overlapping memory blocks. Otherwise you should
587 *      probably use memmove() or memcpy(). If neither is defined, roll your
588 *      own version.
589 */
590#$d_safebcpy HAS_SAFE_BCOPY     /**/
591
592/* HAS_SAFE_MEMCPY:
593 *      This symbol, if defined, indicates that the memcpy routine is available
594 *      to copy potentially overlapping memory blocks. Otherwise you should
595 *      probably use memmove() or memcpy(). If neither is defined, roll your
596 *      own version.
597 */
598#$d_safemcpy HAS_SAFE_MEMCPY    /**/
599
600/* HAS_SANE_MEMCMP:
601 *      This symbol, if defined, indicates that the memcmp routine is available
602 *      and can be used to compare relative magnitudes of chars with their high
603 *      bits set.  If it is not defined, roll your own version.
604 */
605#$d_sanemcmp HAS_SANE_MEMCMP    /**/
606
607/* HAS_SELECT:
608 *      This symbol, if defined, indicates that the select routine is
609 *      available to select active file descriptors. If the timeout field
610 *      is used, <sys/time.h> may need to be included.
611 */
612#$d_select HAS_SELECT   /**/
613
614/* HAS_SEM:
615 *      This symbol, if defined, indicates that the entire sem*(2) library is
616 *      supported.
617 */
618#$d_sem HAS_SEM         /**/
619
620/* HAS_SETEGID:
621 *      This symbol, if defined, indicates that the setegid routine is available
622 *      to change the effective gid of the current program.
623 */
624#$d_setegid HAS_SETEGID         /**/
625
626/* HAS_SETEUID:
627 *      This symbol, if defined, indicates that the seteuid routine is available
628 *      to change the effective uid of the current program.
629 */
630#$d_seteuid HAS_SETEUID         /**/
631
632/* HAS_SETLINEBUF:
633 *      This symbol, if defined, indicates that the setlinebuf routine is
634 *      available to change stderr or stdout from block-buffered or unbuffered
635 *      to a line-buffered mode.
636 */
637#$d_setlinebuf HAS_SETLINEBUF           /**/
638
639/* HAS_SETLOCALE:
640 *      This symbol, if defined, indicates that the setlocale routine is
641 *      available to handle locale-specific ctype implementations.
642 */
643#$d_setlocale HAS_SETLOCALE     /**/
644
645/* HAS_SETPGRP2:
646 *      This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
647 *      routine is available to set the current process group.
648 */
649#$d_setpgrp2 HAS_SETPGRP2               /**/
650
651/* HAS_SETPRIORITY:
652 *      This symbol, if defined, indicates that the setpriority routine is
653 *      available to set a process's priority.
654 */
655#$d_setprior HAS_SETPRIORITY            /**/
656
657/* HAS_SETREGID:
658 *      This symbol, if defined, indicates that the setregid routine is
659 *      available to change the real and effective gid of the current
660 *      process.
661 */
662/* HAS_SETRESGID:
663 *      This symbol, if defined, indicates that the setresgid routine is
664 *      available to change the real, effective and saved gid of the current
665 *      process.
666 */
667#$d_setregid HAS_SETREGID               /**/
668#$d_setresgid HAS_SETRESGID             /**/
669
670/* HAS_SETREUID:
671 *      This symbol, if defined, indicates that the setreuid routine is
672 *      available to change the real and effective uid of the current
673 *      process.
674 */
675/* HAS_SETRESUID:
676 *      This symbol, if defined, indicates that the setresuid routine is
677 *      available to change the real, effective and saved uid of the current
678 *      process.
679 */
680#$d_setreuid HAS_SETREUID               /**/
681#$d_setresuid HAS_SETRESUID             /**/
682
683/* HAS_SETRGID:
684 *      This symbol, if defined, indicates that the setrgid routine is available
685 *      to change the real gid of the current program.
686 */
687#$d_setrgid HAS_SETRGID         /**/
688
689/* HAS_SETRUID:
690 *      This symbol, if defined, indicates that the setruid routine is available
691 *      to change the real uid of the current program.
692 */
693#$d_setruid HAS_SETRUID         /**/
694
695/* HAS_SETSID:
696 *      This symbol, if defined, indicates that the setsid routine is
697 *      available to set the process group ID.
698 */
699#$d_setsid HAS_SETSID   /**/
700
701/* HAS_SHM:
702 *      This symbol, if defined, indicates that the entire shm*(2) library is
703 *      supported.
704 */
705#$d_shm HAS_SHM         /**/
706
707/* Shmat_t:
708 *      This symbol holds the return type of the shmat() system call.
709 *      Usually set to 'void *' or 'char *'.
710 */
711/* HAS_SHMAT_PROTOTYPE:
712 *      This symbol, if defined, indicates that the sys/shm.h includes
713 *      a prototype for shmat().  Otherwise, it is up to the program to
714 *      guess one.  Shmat_t shmat _((int, Shmat_t, int)) is a good guess,
715 *      but not always right so it should be emitted by the program only
716 *      when HAS_SHMAT_PROTOTYPE is not defined to avoid conflicting defs.
717 */
718#define Shmat_t $shmattype      /**/
719#$d_shmatprototype HAS_SHMAT_PROTOTYPE  /**/
720
721/* HAS_SIGACTION:
722 *      This symbol, if defined, indicates that Vr4's sigaction() routine
723 *      is available.
724 */
725#$d_sigaction HAS_SIGACTION     /**/
726
727/* HAS_SOCKET:
728 *      This symbol, if defined, indicates that the BSD socket interface is
729 *      supported.
730 */
731/* HAS_SOCKETPAIR:
732 *      This symbol, if defined, indicates that the BSD socketpair() call is
733 *      supported.
734 */
735#$d_socket HAS_SOCKET           /**/
736#$d_sockpair HAS_SOCKETPAIR     /**/
737
738/* USE_STAT_BLOCKS:
739 *      This symbol is defined if this system has a stat structure declaring
740 *      st_blksize and st_blocks.
741 */
742#$d_statblks USE_STAT_BLOCKS    /**/
743
744/* USE_STDIO_PTR:
745 *      This symbol is defined if the _ptr and _cnt fields (or similar)
746 *      of the stdio FILE structure can be used to access the stdio buffer
747 *      for a file handle.  If this is defined, then the FILE_ptr(fp)
748 *      and FILE_cnt(fp) macros will also be defined and should be used
749 *      to access these fields.
750 */
751/* FILE_ptr:
752 *      This macro is used to access the _ptr field (or equivalent) of the
753 *      FILE structure pointed to by its argument. This macro will always be
754 *      defined if USE_STDIO_PTR is defined.
755 */
756/* STDIO_PTR_LVALUE:
757 *      This symbol is defined if the FILE_ptr macro can be used as an
758 *      lvalue.
759 */
760/* FILE_cnt:
761 *      This macro is used to access the _cnt field (or equivalent) of the
762 *      FILE structure pointed to by its argument. This macro will always be
763 *      defined if USE_STDIO_PTR is defined.
764 */
765/* STDIO_CNT_LVALUE:
766 *      This symbol is defined if the FILE_cnt macro can be used as an
767 *      lvalue.
768 */
769#$d_stdstdio USE_STDIO_PTR      /**/
770#ifdef USE_STDIO_PTR
771#define FILE_ptr(fp)    $stdio_ptr
772#$d_stdio_ptr_lval STDIO_PTR_LVALUE             /**/
773#define FILE_cnt(fp)    $stdio_cnt
774#$d_stdio_cnt_lval STDIO_CNT_LVALUE             /**/
775#endif
776
777/* USE_STDIO_BASE:
778 *      This symbol is defined if the _base field (or similar) of the
779 *      stdio FILE structure can be used to access the stdio buffer for
780 *      a file handle.  If this is defined, then the FILE_base(fp) macro
781 *      will also be defined and should be used to access this field.
782 *      Also, the FILE_bufsiz(fp) macro will be defined and should be used
783 *      to determine the number of bytes in the buffer.  USE_STDIO_BASE
784 *      will never be defined unless USE_STDIO_PTR is.
785 */
786/* FILE_base:
787 *      This macro is used to access the _base field (or equivalent) of the
788 *      FILE structure pointed to by its argument. This macro will always be
789 *      defined if USE_STDIO_BASE is defined.
790 */
791/* FILE_bufsiz:
792 *      This macro is used to determine the number of bytes in the I/O
793 *      buffer pointed to by _base field (or equivalent) of the FILE
794 *      structure pointed to its argument. This macro will always be defined
795 *      if USE_STDIO_BASE is defined.
796 */
797#$d_stdiobase USE_STDIO_BASE    /**/
798#ifdef USE_STDIO_BASE
799#define FILE_base(fp)   $stdio_base
800#define FILE_bufsiz(fp) $stdio_bufsiz
801#endif
802
803/* HAS_STRCHR:
804 *      This symbol is defined to indicate that the strchr()/strrchr()
805 *      functions are available for string searching. If not, try the
806 *      index()/rindex() pair.
807 */
808/* HAS_INDEX:
809 *      This symbol is defined to indicate that the index()/rindex()
810 *      functions are available for string searching.
811 */
812#$d_strchr HAS_STRCHR   /**/
813#$d_index HAS_INDEX     /**/
814
815/* HAS_STRCOLL:
816 *      This symbol, if defined, indicates that the strcoll routine is
817 *      available to compare strings using collating information.
818 */
819#$d_strcoll HAS_STRCOLL /**/
820
821/* USE_STRUCT_COPY:
822 *      This symbol, if defined, indicates that this C compiler knows how
823 *      to copy structures.  If undefined, you'll need to use a block copy
824 *      routine of some sort instead.
825 */
826#$d_strctcpy    USE_STRUCT_COPY /**/
827
828/* HAS_STRERROR:
829 *      This symbol, if defined, indicates that the strerror routine is
830 *      available to translate error numbers to strings. See the writeup
831 *      of Strerror() in this file before you try to define your own.
832 */
833/* HAS_SYS_ERRLIST:
834 *      This symbol, if defined, indicates that the sys_errlist array is
835 *      available to translate error numbers to strings. The extern int
836 *      sys_nerr gives the size of that table.
837 */
838/* Strerror:
839 *      This preprocessor symbol is defined as a macro if strerror() is
840 *      not available to translate error numbers to strings but sys_errlist[]
841 *      array is there.
842 */
843#$d_strerror HAS_STRERROR               /**/
844#$d_syserrlst HAS_SYS_ERRLIST   /**/
845#define Strerror(e) $d_strerrm
846
847/* HAS_STRTOD:
848 *      This symbol, if defined, indicates that the strtod routine is
849 *      available to provide better numeric string conversion than atof().
850 */
851#$d_strtod HAS_STRTOD   /**/
852
853/* HAS_STRTOL:
854 *      This symbol, if defined, indicates that the strtol routine is available
855 *      to provide better numeric string conversion than atoi() and friends.
856 */
857#$d_strtol HAS_STRTOL   /**/
858
859/* HAS_STRTOUL:
860 *      This symbol, if defined, indicates that the strtoul routine is
861 *      available to provide conversion of strings to unsigned long.
862 */
863#$d_strtoul HAS_STRTOUL /**/
864
865/* HAS_STRXFRM:
866 *      This symbol, if defined, indicates that the strxfrm() routine is
867 *      available to transform strings.
868 */
869#$d_strxfrm HAS_STRXFRM /**/
870
871/* HAS_SYMLINK:
872 *      This symbol, if defined, indicates that the symlink routine is available
873 *      to create symbolic links.
874 */
875#$d_symlink HAS_SYMLINK /**/
876
877/* HAS_SYSCALL:
878 *      This symbol, if defined, indicates that the syscall routine is
879 *      available to call arbitrary system calls. If undefined, that's tough.
880 */
881#$d_syscall HAS_SYSCALL /**/
882
883/* HAS_SYSCONF:
884 *      This symbol, if defined, indicates that sysconf() is available
885 *      to determine system related limits and options.
886 */
887#$d_sysconf HAS_SYSCONF /**/
888
889/* HAS_SYSTEM:
890 *      This symbol, if defined, indicates that the system routine is
891 *      available to issue a shell command.
892 */
893#$d_system HAS_SYSTEM   /**/
894
895/* HAS_TCGETPGRP:
896 *      This symbol, if defined, indicates that the tcgetpgrp routine is
897 *      available to get foreground process group ID.
898 */
899#$d_tcgetpgrp HAS_TCGETPGRP             /**/
900
901/* HAS_TCSETPGRP:
902 *      This symbol, if defined, indicates that the tcsetpgrp routine is
903 *      available to set foreground process group ID.
904 */
905#$d_tcsetpgrp HAS_TCSETPGRP             /**/
906
907/* Time_t:
908 *      This symbol holds the type returned by time(). It can be long,
909 *      or time_t on BSD sites (in which case <sys/types.h> should be
910 *      included).
911 */
912#define Time_t $timetype                /* Time type */
913
914/* HAS_TIMES:
915 *      This symbol, if defined, indicates that the times() routine exists.
916 *      Note that this became obsolete on some systems (SUNOS), which now
917 * use getrusage(). It may be necessary to include <sys/times.h>.
918 */
919#$d_times HAS_TIMES             /**/
920
921/* HAS_TRUNCATE:
922 *      This symbol, if defined, indicates that the truncate routine is
923 *      available to truncate files.
924 */
925#$d_truncate HAS_TRUNCATE       /**/
926
927/* HAS_TZNAME:
928 *      This symbol, if defined, indicates that the tzname[] array is
929 *      available to access timezone names.
930 */
931#$d_tzname HAS_TZNAME           /**/
932
933/* HAS_UMASK:
934 *      This symbol, if defined, indicates that the umask routine is
935 *      available to set and get the value of the file creation mask.
936 */
937#$d_umask HAS_UMASK             /**/
938
939/* HAS_VFORK:
940 *      This symbol, if defined, indicates that vfork() exists.
941 */
942#$d_vfork HAS_VFORK     /**/
943
944/* Signal_t:
945 *      This symbol's value is either "void" or "int", corresponding to the
946 *      appropriate return type of a signal handler.  Thus, you can declare
947 *      a signal handler using "Signal_t (*handler)()", and define the
948 *      handler using "Signal_t handler(sig)".
949 */
950#define Signal_t $signal_t      /* Signal handler's return type */
951
952/* HASVOLATILE:
953 *      This symbol, if defined, indicates that this C compiler knows about
954 *      the volatile declaration.
955 */
956#$d_volatile    HASVOLATILE     /**/
957#ifndef HASVOLATILE
958#define volatile
959#endif
960
961/* HAS_VPRINTF:
962 *      This symbol, if defined, indicates that the vprintf routine is available
963 *      to printf with a pointer to an argument list.  If unavailable, you
964 *      may need to write your own, probably in terms of _doprnt().
965 */
966/* USE_CHAR_VSPRINTF:
967 *      This symbol is defined if this system has vsprintf() returning type
968 *      (char*).  The trend seems to be to declare it as "int vsprintf()".  It
969 *      is up to the package author to declare vsprintf correctly based on the
970 *      symbol.
971 */
972#$d_vprintf HAS_VPRINTF /**/
973#$d_charvspr USE_CHAR_VSPRINTF  /**/
974
975/* HAS_WAIT4:
976 *      This symbol, if defined, indicates that wait4() exists.
977 */
978#$d_wait4 HAS_WAIT4     /**/
979
980/* HAS_WAITPID:
981 *      This symbol, if defined, indicates that the waitpid routine is
982 *      available to wait for child process.
983 */
984#$d_waitpid HAS_WAITPID /**/
985
986/* HAS_WCSTOMBS:
987 *      This symbol, if defined, indicates that the wcstombs routine is
988 *      available to convert wide character strings to multibyte strings.
989 */
990#$d_wcstombs HAS_WCSTOMBS       /**/
991
992/* HAS_WCTOMB:
993 *      This symbol, if defined, indicates that the wctomb routine is available
994 *      to covert a wide character to a multibyte.
995 */
996#$d_wctomb HAS_WCTOMB           /**/
997
998/* Fpos_t:
999 *      This symbol holds the type used to declare file positions in libc.
1000 *      It can be fpos_t, long, uint, etc... It may be necessary to include
1001 *      <sys/types.h> to get any typedef'ed information.
1002 */
1003#define Fpos_t $fpostype                /* File position type */
1004
1005/* Gid_t:
1006 *      This symbol holds the return type of getgid() and the type of
1007 *      argument to setrgid() and related functions.  Typically,
1008 *      it is the type of group ids in the kernel. It can be int, ushort,
1009 *      uid_t, etc... It may be necessary to include <sys/types.h> to get
1010 *      any typedef'ed information.
1011 */
1012#define Gid_t $gidtype          /* Type for getgid(), etc... */
1013
1014/* Groups_t:
1015 *      This symbol holds the type used for the second argument to
1016 *      [gs]etgroups().  Usually, this is the same of gidtype, but
1017 *      sometimes it isn't.  It can be int, ushort, uid_t, etc...
1018 *      It may be necessary to include <sys/types.h> to get any
1019 *      typedef'ed information.  This is only required if you have
1020 *      getgroups() or setgroups().
1021 */
1022#if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
1023#define Groups_t $groupstype    /* Type for 2nd arg to [gs]etgroups() */
1024#endif
1025
1026/* DB_Prefix_t:
1027 *      This symbol contains the type of the prefix structure element
1028 *      in the <db.h> header file.  In older versions of DB, it was
1029 *      int, while in newer ones it is u_int32_t.
1030 */
1031/* DB_Hash_t:
1032 *      This symbol contains the type of the prefix structure element
1033 *      in the <db.h> header file.  In older versions of DB, it was
1034 *      int, while in newer ones it is size_t.
1035 */
1036#define DB_Hash_t       $db_hashtype            /**/
1037#define DB_Prefix_t     $db_prefixtype          /**/
1038
1039/* I_DIRENT:
1040 *      This symbol, if defined, indicates to the C program that it should
1041 *      include <dirent.h>. Using this symbol also triggers the definition
1042 *      of the Direntry_t define which ends up being 'struct dirent' or
1043 *      'struct direct' depending on the availability of <dirent.h>.
1044 */
1045/* DIRNAMLEN:
1046 *      This symbol, if defined, indicates to the C program that the length
1047 *      of directory entry names is provided by a d_namlen field.  Otherwise
1048 *      you need to do strlen() on the d_name field.
1049 */
1050/* Direntry_t:
1051 *      This symbol is set to 'struct direct' or 'struct dirent' depending on
1052 *      whether dirent is available or not. You should use this pseudo type to
1053 *      portably declare your directory entries.
1054 */
1055#$i_dirent I_DIRENT             /**/
1056#$d_dirnamlen DIRNAMLEN /**/
1057#define Direntry_t $direntrytype
1058
1059/* I_DLFCN:
1060 *      This symbol, if defined, indicates that <dlfcn.h> exists and should
1061 *      be included.
1062 */
1063#$i_dlfcn I_DLFCN               /**/
1064
1065/* I_FCNTL:
1066 *      This manifest constant tells the C program to include <fcntl.h>.
1067 */
1068#$i_fcntl I_FCNTL       /**/
1069
1070/* I_FLOAT:
1071 *      This symbol, if defined, indicates to the C program that it should
1072 *      include <float.h> to get definition of symbols like DBL_MAX or
1073 *      DBL_MIN, i.e. machine dependent floating point values.
1074 */
1075#$i_float I_FLOAT               /**/
1076
1077/* I_GRP:
1078 *      This symbol, if defined, indicates to the C program that it should
1079 *      include <grp.h>.
1080 */
1081#$i_grp I_GRP           /**/
1082
1083/* I_LIMITS:
1084 *      This symbol, if defined, indicates to the C program that it should
1085 *      include <limits.h> to get definition of symbols like WORD_BIT or
1086 *      LONG_MAX, i.e. machine dependant limitations.
1087 */
1088#$i_limits I_LIMITS             /**/
1089
1090/* I_MATH:
1091 *      This symbol, if defined, indicates to the C program that it should
1092 *      include <math.h>.
1093 */
1094#$i_math I_MATH         /**/
1095
1096/* I_MEMORY:
1097 *      This symbol, if defined, indicates to the C program that it should
1098 *      include <memory.h>.
1099 */
1100#$i_memory I_MEMORY             /**/
1101
1102/* I_NDBM:
1103 *      This symbol, if defined, indicates that <ndbm.h> exists and should
1104 *      be included.
1105 */
1106#$i_ndbm I_NDBM /**/
1107
1108/* I_NET_ERRNO:
1109 *      This symbol, if defined, indicates that <net/errno.h> exists and
1110 *      should be included.
1111 */
1112#$i_neterrno I_NET_ERRNO                /**/
1113
1114/* I_NETINET_IN:
1115 *      This symbol, if defined, indicates to the C program that it should
1116 *      include <netinet/in.h>. Otherwise, you may try <sys/in.h>.
1117 */
1118#$i_niin I_NETINET_IN   /**/
1119
1120/* I_PWD:
1121 *      This symbol, if defined, indicates to the C program that it should
1122 *      include <pwd.h>.
1123 */
1124/* PWQUOTA:
1125 *      This symbol, if defined, indicates to the C program that struct passwd
1126 *      contains pw_quota.
1127 */
1128/* PWAGE:
1129 *      This symbol, if defined, indicates to the C program that struct passwd
1130 *      contains pw_age.
1131 */
1132/* PWCHANGE:
1133 *      This symbol, if defined, indicates to the C program that struct passwd
1134 *      contains pw_change.
1135 */
1136/* PWCLASS:
1137 *      This symbol, if defined, indicates to the C program that struct passwd
1138 *      contains pw_class.
1139 */
1140/* PWEXPIRE:
1141 *      This symbol, if defined, indicates to the C program that struct passwd
1142 *      contains pw_expire.
1143 */
1144/* PWCOMMENT:
1145 *      This symbol, if defined, indicates to the C program that struct passwd
1146 *      contains pw_comment.
1147 */
1148#$i_pwd I_PWD           /**/
1149#$d_pwquota PWQUOTA     /**/
1150#$d_pwage PWAGE /**/
1151#$d_pwchange PWCHANGE   /**/
1152#$d_pwclass PWCLASS     /**/
1153#$d_pwexpire PWEXPIRE   /**/
1154#$d_pwcomment PWCOMMENT /**/
1155
1156/* I_STDDEF:
1157 *      This symbol, if defined, indicates that <stddef.h> exists and should
1158 *      be included.
1159 */
1160#$i_stddef I_STDDEF     /**/
1161
1162/* I_STDLIB:
1163 *      This symbol, if defined, indicates that <stdlib.h> exists and should
1164 *      be included.
1165 */
1166#$i_stdlib I_STDLIB             /**/
1167
1168/* I_STRING:
1169 *      This symbol, if defined, indicates to the C program that it should
1170 *      include <string.h> (USG systems) instead of <strings.h> (BSD systems).
1171 */
1172#$i_string I_STRING             /**/
1173
1174/* I_SYS_DIR:
1175 *      This symbol, if defined, indicates to the C program that it should
1176 *      include <sys/dir.h>.
1177 */
1178#$i_sysdir I_SYS_DIR            /**/
1179
1180/* I_SYS_FILE:
1181 *      This symbol, if defined, indicates to the C program that it should
1182 *      include <sys/file.h> to get definition of R_OK and friends.
1183 */
1184#$i_sysfile I_SYS_FILE          /**/
1185
1186/* I_SYS_IOCTL:
1187 *      This symbol, if defined, indicates that <sys/ioctl.h> exists and should
1188 *      be included. Otherwise, include <sgtty.h> or <termio.h>.
1189 */
1190#$i_sysioctl    I_SYS_IOCTL             /**/
1191
1192/* I_SYS_NDIR:
1193 *      This symbol, if defined, indicates to the C program that it should
1194 *      include <sys/ndir.h>.
1195 */
1196#$i_sysndir I_SYS_NDIR  /**/
1197
1198/* I_SYS_PARAM:
1199 *      This symbol, if defined, indicates to the C program that it should
1200 *      include <sys/param.h>.
1201 */
1202#$i_sysparam I_SYS_PARAM                /**/
1203
1204/* I_SYS_RESOURCE:
1205 *      This symbol, if defined, indicates to the C program that it should
1206 *      include <sys/resource.h>.
1207 */
1208#$i_sysresrc I_SYS_RESOURCE             /**/
1209
1210/* I_SYS_SELECT:
1211 *      This symbol, if defined, indicates to the C program that it should
1212 *      include <sys/select.h> in order to get definition of struct timeval.
1213 */
1214#$i_sysselct I_SYS_SELECT       /**/
1215
1216/* I_SYS_TIMES:
1217 *      This symbol, if defined, indicates to the C program that it should
1218 *      include <sys/times.h>.
1219 */
1220#$i_systimes    I_SYS_TIMES             /**/
1221
1222/* I_SYS_TYPES:
1223 *      This symbol, if defined, indicates to the C program that it should
1224 *      include <sys/types.h>.
1225 */
1226#$i_systypes    I_SYS_TYPES             /**/
1227
1228/* I_SYS_UN:
1229 *      This symbol, if defined, indicates to the C program that it should
1230 *      include <sys/un.h> to get UNIX domain socket definitions.
1231 */
1232#$i_sysun I_SYS_UN              /**/
1233
1234/* I_SYS_WAIT:
1235 *      This symbol, if defined, indicates to the C program that it should
1236 *      include <sys/wait.h>.
1237 */
1238#$i_syswait I_SYS_WAIT  /**/
1239
1240/* I_TERMIO:
1241 *      This symbol, if defined, indicates that the program should include
1242 *      <termio.h> rather than <sgtty.h>.  There are also differences in
1243 *      the ioctl() calls that depend on the value of this symbol.
1244 */
1245/* I_TERMIOS:
1246 *      This symbol, if defined, indicates that the program should include
1247 *      the POSIX termios.h rather than sgtty.h or termio.h.
1248 *      There are also differences in the ioctl() calls that depend on the
1249 *      value of this symbol.
1250 */
1251/* I_SGTTY:
1252 *      This symbol, if defined, indicates that the program should include
1253 *      <sgtty.h> rather than <termio.h>.  There are also differences in
1254 *      the ioctl() calls that depend on the value of this symbol.
1255 */
1256#$i_termio I_TERMIO             /**/
1257#$i_termios I_TERMIOS           /**/
1258#$i_sgtty I_SGTTY               /**/
1259
1260/* I_TIME:
1261 *      This symbol, if defined, indicates to the C program that it should
1262 *      include <time.h>.
1263 */
1264/* I_SYS_TIME:
1265 *      This symbol, if defined, indicates to the C program that it should
1266 *      include <sys/time.h>.
1267 */
1268/* I_SYS_TIME_KERNEL:
1269 *      This symbol, if defined, indicates to the C program that it should
1270 *      include <sys/time.h> with KERNEL defined.
1271 */
1272#$i_time I_TIME         /**/
1273#$i_systime I_SYS_TIME          /**/
1274#$i_systimek I_SYS_TIME_KERNEL          /**/
1275
1276/* I_UNISTD:
1277 *      This symbol, if defined, indicates to the C program that it should
1278 *      include <unistd.h>.
1279 */
1280#$i_unistd I_UNISTD             /**/
1281
1282/* I_UTIME:
1283 *      This symbol, if defined, indicates to the C program that it should
1284 *      include <utime.h>.
1285 */
1286#$i_utime I_UTIME               /**/
1287
1288/* I_STDARG:
1289 *      This symbol, if defined, indicates that <stdarg.h> exists and should
1290 *      be included.
1291 */
1292/* I_VARARGS:
1293 *      This symbol, if defined, indicates to the C program that it should
1294 *      include <varargs.h>.
1295 */
1296#$i_stdarg I_STDARG             /**/
1297#$i_varargs I_VARARGS   /**/
1298
1299/* I_VFORK:
1300 *      This symbol, if defined, indicates to the C program that it should
1301 *      include vfork.h.
1302 */
1303#$i_vfork I_VFORK       /**/
1304
1305/* INTSIZE:
1306 *      This symbol contains the value of sizeof(int) so that the C
1307 *      preprocessor can make decisions based on it.
1308 */
1309/* LONGSIZE:
1310 *      This symbol contains the value of sizeof(long) so that the C
1311 *      preprocessor can make decisions based on it.
1312 */
1313/* SHORTSIZE:
1314 *      This symbol contains the value of sizeof(short) so that the C
1315 *      preprocessor can make decisions based on it.
1316 */
1317#define INTSIZE $intsize                /**/
1318#define LONGSIZE $longsize              /**/
1319#define SHORTSIZE $shortsize            /**/
1320
1321/* Off_t:
1322 *      This symbol holds the type used to declare offsets in the kernel.
1323 *      It can be int, long, off_t, etc... It may be necessary to include
1324 *      <sys/types.h> to get any typedef'ed information.
1325 */
1326#define Off_t $lseektype                /* <offset> type */
1327
1328/* Mode_t:
1329 *      This symbol holds the type used to declare file modes
1330 *      for systems calls.  It is usually mode_t, but may be
1331 *      int or unsigned short.  It may be necessary to include <sys/types.h>
1332 *      to get any typedef'ed information.
1333 */
1334#define Mode_t $modetype         /* file mode parameter for system calls */
1335
1336/* VAL_O_NONBLOCK:
1337 *      This symbol is to be used during open() or fcntl(F_SETFL) to turn on
1338 *      non-blocking I/O for the file descriptor. Note that there is no way
1339 *      back, i.e. you cannot turn it blocking again this way. If you wish to
1340 *      alternatively switch between blocking and non-blocking, use the
1341 *      ioctl(FIOSNBIO) call instead, but that is not supported by all devices.
1342 */
1343/* VAL_EAGAIN:
1344 *      This symbol holds the errno error code set by read() when no data was
1345 *      present on the non-blocking file descriptor.
1346 */
1347/* RD_NODATA:
1348 *      This symbol holds the return code from read() when no data is present
1349 *      on the non-blocking file descriptor. Be careful! If EOF_NONBLOCK is
1350 *      not defined, then you can't distinguish between no data and EOF by
1351 *      issuing a read(). You'll have to find another way to tell for sure!
1352 */
1353/* EOF_NONBLOCK:
1354 *      This symbol, if defined, indicates to the C program that a read() on
1355 *      a non-blocking file descriptor will return 0 on EOF, and not the value
1356 *      held in RD_NODATA (-1 usually, in that case!).
1357 */
1358#define VAL_O_NONBLOCK $o_nonblock
1359#define VAL_EAGAIN $eagain
1360#define RD_NODATA $rd_nodata
1361#$d_eofnblk EOF_NONBLOCK
1362
1363/* CAN_PROTOTYPE:
1364 *      If defined, this macro indicates that the C compiler can handle
1365 *      function prototypes.
1366 */
1367/* _:
1368 *      This macro is used to declare function parameters for folks who want
1369 *      to make declarations with prototypes using a different style than
1370 *      the above macros.  Use double parentheses.  For example:
1371 *
1372 *              int main _((int argc, char *argv[]));
1373 */
1374#$prototype     CAN_PROTOTYPE   /**/
1375#ifdef CAN_PROTOTYPE
1376#define _(args) args
1377#else
1378#define _(args) ()
1379#endif
1380
1381/* RANDBITS:
1382 *      This symbol contains the number of bits of random number the rand()
1383 *      function produces.  Usual values are 15, 16, and 31.
1384 */
1385#define RANDBITS $randbits              /**/
1386
1387/* Select_fd_set_t:
1388 *      This symbol holds the type used for the 2nd, 3rd, and 4th
1389 *      arguments to select.  Usually, this is 'fd_set *', if HAS_FD_SET
1390 *      is defined, and 'int *' otherwise.  This is only useful if you
1391 *      have select(), of course.
1392 */
1393#define Select_fd_set_t         $selecttype     /**/
1394
1395/* Size_t:
1396 *      This symbol holds the type used to declare length parameters
1397 *      for string functions.  It is usually size_t, but may be
1398 *      unsigned long, int, etc.  It may be necessary to include
1399 *      <sys/types.h> to get any typedef'ed information.
1400 */
1401#define Size_t $sizetype         /* length paramater for string functions */
1402
1403/* SSize_t:
1404 *      This symbol holds the type used by functions that return
1405 *      a count of bytes or an error condition.  It must be a signed type.
1406 *      It is usually ssize_t, but may be long or int, etc.
1407 *      It may be necessary to include <sys/types.h> or <unistd.h>
1408 *      to get any typedef'ed information.
1409 *      We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
1410 */
1411#define SSize_t $ssizetype       /* signed count of bytes */
1412
1413/* STDCHAR:
1414 *      This symbol is defined to be the type of char used in stdio.h.
1415 *      It has the values "unsigned char" or "char".
1416 */
1417#define STDCHAR $stdchar        /**/
1418
1419/* Uid_t:
1420 *      This symbol holds the type used to declare user ids in the kernel.
1421 *      It can be int, ushort, uid_t, etc... It may be necessary to include
1422 *      <sys/types.h> to get any typedef'ed information.
1423 */
1424#define Uid_t $uidtype          /* UID type */
1425
1426/* LOC_SED:
1427 *      This symbol holds the complete pathname to the sed program.
1428 */
1429#define LOC_SED         "$full_sed"     /**/
1430
1431/* OSNAME:
1432 *      This symbol contains the name of the operating system, as determined
1433 *      by Configure.  You shouldn't rely on it too much; the specific
1434 *      feature tests from Configure are generally more reliable.
1435 */
1436#define OSNAME "$osname"                /**/
1437
1438/* ARCHLIB:
1439 *      This variable, if defined, holds the name of the directory in
1440 *      which the user wants to put architecture-dependent public
1441 *      library files for $package.  It is most often a local directory
1442 *      such as /usr/local/lib.  Programs using this variable must be
1443 *      prepared to deal with filename expansion.  If ARCHLIB is the
1444 *      same as PRIVLIB, it is not defined, since presumably the
1445 *      program already searches PRIVLIB.
1446 */
1447/* ARCHLIB_EXP:
1448 *      This symbol contains the ~name expanded version of ARCHLIB, to be used
1449 *      in programs that are not prepared to deal with ~ expansion at run-time.
1450 */
1451#$d_archlib ARCHLIB "$archlib"          /**/
1452#$d_archlib ARCHLIB_EXP "$archlibexp"           /**/
1453
1454/* BINCOMPAT3:
1455 *      This symbol, if defined, indicates that Perl 5.004 should be
1456 *      binary-compatible with Perl 5.003.
1457 */
1458#$d_bincompat3 BINCOMPAT3                       /**/
1459
1460/* BYTEORDER:
1461 *      This symbol holds the hexadecimal constant defined in byteorder,
1462 *      i.e. 0x1234 or 0x4321, etc...
1463 *      On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture
1464 *      Binaries (MAB) on either big endian or little endian machines.
1465 *      The endian-ness is available at compile-time.  This only matters
1466 *      for perl, where the config.h can be generated and installed on
1467 *      one system, and used by a different architecture to build an
1468 *      extension.  Older versions of NeXT that might not have
1469 *      defined either *_ENDIAN__ were all on Motorola 680x0 series,
1470 *      so the default case (for NeXT) is big endian to catch them.
1471 *      This might matter for NeXT 3.0.
1472 */
1473#ifndef NeXT
1474#define BYTEORDER 0x$byteorder  /* large digits for MSB */
1475#else  /* NeXT */
1476#ifdef __LITTLE_ENDIAN__
1477#define BYTEORDER 0x1234
1478#else /* __BIG_ENDIAN__ */
1479#define BYTEORDER 0x4321
1480#endif /* ENDIAN CHECK */
1481#endif /* NeXT */
1482
1483/* CSH:
1484 *      This symbol, if defined, indicates that the C-shell exists.
1485 *      If defined, contains the full pathname of csh.
1486 */
1487#$d_csh CSH "$full_csh"         /**/
1488
1489/* DLSYM_NEEDS_UNDERSCORE:
1490 *      This symbol, if defined, indicates that we need to prepend an
1491 *      underscore to the symbol name before calling dlsym().  This only
1492 *      makes sense if you *have* dlsym, which we will presume is the
1493 *      case if you're using dl_dlopen.xs.
1494 */
1495#$d_dlsymun     DLSYM_NEEDS_UNDERSCORE  /**/
1496
1497/* SETUID_SCRIPTS_ARE_SECURE_NOW:
1498 *      This symbol, if defined, indicates that the bug that prevents
1499 *      setuid scripts from being secure is not present in this kernel.
1500 */
1501/* DOSUID:
1502 *      This symbol, if defined, indicates that the C program should
1503 *      check the script that it is executing for setuid/setgid bits, and
1504 *      attempt to emulate setuid/setgid on systems that have disabled
1505 *      setuid #! scripts because the kernel can't do it securely.
1506 *      It is up to the package designer to make sure that this emulation
1507 *      is done securely.  Among other things, it should do an fstat on
1508 *      the script it just opened to make sure it really is a setuid/setgid
1509 *      script, it should make sure the arguments passed correspond exactly
1510 *      to the argument on the #! line, and it should not trust any
1511 *      subprocesses to which it must pass the filename rather than the
1512 *      file descriptor of the script to be executed.
1513 */
1514#$d_suidsafe SETUID_SCRIPTS_ARE_SECURE_NOW      /**/
1515#$d_dosuid DOSUID               /**/
1516
1517/* Gconvert:
1518 *      This preprocessor macro is defined to convert a floating point
1519 *      number to a string without a trailing decimal point.  This
1520 *      emulates the behavior of sprintf("%g"), but is sometimes much more
1521 *      efficient.  If gconvert() is not available, but gcvt() drops the
1522 *      trailing decimal point, then gcvt() is used.  If all else fails,
1523 *      a macro using sprintf("%g") is used. Arguments for the Gconvert
1524 *      macro are: value, number of digits, whether trailing zeros should
1525 *      be retained, and the output buffer.
1526 *      Possible values are:
1527 *              d_Gconvert='gconvert((x),(n),(t),(b))'
1528 *              d_Gconvert='gcvt((x),(n),(b))'
1529 *              d_Gconvert='sprintf((b),"%.*g",(n),(x))'
1530 *      The last two assume trailing zeros should not be kept.
1531 */
1532#define Gconvert(x,n,t,b) $d_Gconvert
1533
1534/* HAS_GETPGID:
1535 *      This symbol, if defined, indicates to the C program that
1536 *      the getpgid(pid) function is available to get the
1537 *      process group id.
1538 */
1539#$d_getpgid HAS_GETPGID         /**/
1540
1541/* HAS_GETPGRP:
1542 *      This symbol, if defined, indicates that the getpgrp routine is
1543 *      available to get the current process group.
1544 */
1545/* USE_BSD_GETPGRP:
1546 *      This symbol, if defined, indicates that getpgrp needs one
1547 *      arguments whereas USG one needs none.
1548 */
1549#$d_getpgrp HAS_GETPGRP         /**/
1550#$d_bsdgetpgrp USE_BSD_GETPGRP  /**/
1551
1552/* HAS_INET_ATON:
1553 *      This symbol, if defined, indicates to the C program that the
1554 *      inet_aton() function is available to parse IP address "dotted-quad"
1555 *      strings.
1556 */
1557#$d_inetaton HAS_INET_ATON              /**/
1558
1559/* HAS_SETPGID:
1560 *      This symbol, if defined, indicates to the C program that
1561 *      the setpgid(pid, gpid) function is available to set the
1562 *      process group id.
1563 */
1564#$d_setpgid HAS_SETPGID         /**/
1565
1566/* HAS_SETPGRP:
1567 *      This symbol, if defined, indicates that the setpgrp routine is
1568 *      available to set the current process group.
1569 */
1570/* USE_BSD_SETPGRP:
1571 *      This symbol, if defined, indicates that setpgrp needs two
1572 *      arguments whereas USG one needs none.  See also HAS_SETPGID
1573 *      for a POSIX interface.
1574 */
1575/* USE_BSDPGRP:
1576 *      This symbol, if defined, indicates that the BSD notion of process
1577 *      group is to be used. For instance, you have to say setpgrp(pid, pgrp)
1578 *      instead of the USG setpgrp().  This should be obsolete since
1579 *      there are systems which have BSD-ish setpgrp but USG-ish getpgrp.
1580 */
1581#$d_setpgrp HAS_SETPGRP         /**/
1582#$d_bsdsetpgrp USE_BSD_SETPGRP  /**/
1583#$d_bsdpgrp USE_BSDPGRP         /**/
1584
1585/* USE_SFIO:
1586 *      This symbol, if defined, indicates that sfio should
1587 *      be used.
1588 */
1589#$d_sfio        USE_SFIO                /**/
1590
1591/* Sigjmp_buf:
1592 *      This is the buffer type to be used with Sigsetjmp and Siglongjmp.
1593 */
1594/* Sigsetjmp:
1595 *      This macro is used in the same way as sigsetjmp(), but will invoke
1596 *      traditional setjmp() if sigsetjmp isn't available.
1597 *      See HAS_SIGSETJMP.
1598 */
1599/* Siglongjmp:
1600 *      This macro is used in the same way as siglongjmp(), but will invoke
1601 *      traditional longjmp() if siglongjmp isn't available.
1602 *      See HAS_SIGSETJMP.
1603 */
1604#$d_sigsetjmp HAS_SIGSETJMP     /**/
1605#ifdef HAS_SIGSETJMP
1606#define Sigjmp_buf sigjmp_buf
1607#define Sigsetjmp(buf,save_mask) sigsetjmp((buf),(save_mask))
1608#define Siglongjmp(buf,retval) siglongjmp((buf),(retval))
1609#else
1610#define Sigjmp_buf jmp_buf
1611#define Sigsetjmp(buf,save_mask) setjmp((buf))
1612#define Siglongjmp(buf,retval) longjmp((buf),(retval))
1613#endif
1614
1615/* USE_DYNAMIC_LOADING:
1616 *      This symbol, if defined, indicates that dynamic loading of
1617 *      some sort is available.
1618 */
1619#$usedl USE_DYNAMIC_LOADING             /**/
1620
1621/* I_DBM:
1622 *      This symbol, if defined, indicates that <dbm.h> exists and should
1623 *      be included.
1624 */
1625/* I_RPCSVC_DBM:
1626 *      This symbol, if defined, indicates that <rpcsvc/dbm.h> exists and
1627 *      should be included.
1628 */
1629#$i_dbm I_DBM   /**/
1630#$i_rpcsvcdbm I_RPCSVC_DBM      /**/
1631
1632/* I_LOCALE:
1633 *      This symbol, if defined, indicates to the C program that it should
1634 *      include <locale.h>.
1635 */
1636#$i_locale      I_LOCALE                /**/
1637
1638/* I_SFIO:
1639 *      This symbol, if defined, indicates to the C program that it should
1640 *      include <sfio.h>.
1641 */
1642#$i_sfio        I_SFIO          /**/
1643
1644/* I_SYS_STAT:
1645 *      This symbol, if defined, indicates to the C program that it should
1646 *      include <sys/stat.h>.
1647 */
1648#$i_sysstat     I_SYS_STAT              /**/
1649
1650/* I_VALUES:
1651 *      This symbol, if defined, indicates to the C program that it should
1652 *      include <values.h> to get definition of symbols like MINFLOAT or
1653 *      MAXLONG, i.e. machine dependant limitations.  Probably, you
1654 *      should use <limits.h> instead, if it is available.
1655 */
1656#$i_values I_VALUES             /**/
1657
1658/* Free_t:
1659 *      This variable contains the return type of free().  It is usually
1660 * void, but occasionally int.
1661 */
1662/* Malloc_t:
1663 *      This symbol is the type of pointer returned by malloc and realloc.
1664 */
1665#define Malloc_t $malloctype                    /**/
1666#define Free_t $freetype                        /**/
1667
1668/* MYMALLOC:
1669 *      This symbol, if defined, indicates that we're using our own malloc.
1670 */
1671#$d_mymalloc MYMALLOC                   /**/
1672
1673/* OLDARCHLIB:
1674 *      This variable, if defined, holds the name of the directory in
1675 *      which the user has perl5.000 or perl5.001 architecture-dependent
1676 *      public library files for $package.  For the most part, these
1677 *      files will work with 5.002 (and later), but that is not
1678 *      guaranteed.
1679 */
1680/* OLDARCHLIB_EXP:
1681 *      This symbol contains the ~name expanded version of OLDARCHLIB, to be
1682 *      used in programs that are not prepared to deal with ~ expansion at
1683 *      run-time.
1684 */
1685#$d_oldarchlib OLDARCHLIB "$oldarchlib"         /**/
1686#$d_oldarchlib OLDARCHLIB_EXP "$oldarchlibexp"          /**/
1687
1688/* PRIVLIB:
1689 *      This symbol contains the name of the private library for this package.
1690 *      The library is private in the sense that it needn't be in anyone's
1691 *      execution path, but it should be accessible by the world.  The program
1692 *      should be prepared to do ~ expansion.
1693 */
1694/* PRIVLIB_EXP:
1695 *      This symbol contains the ~name expanded version of PRIVLIB, to be used
1696 *      in programs that are not prepared to deal with ~ expansion at run-time.
1697 */
1698#define PRIVLIB "$privlib"              /**/
1699#define PRIVLIB_EXP "$privlibexp"               /**/
1700
1701/* SH_PATH:
1702 *      This symbol contains the full pathname to the shell used on this
1703 *      on this system to execute Bourne shell scripts.  Usually, this will be
1704 *      /bin/sh, though it's possible that some systems will have /bin/ksh,
1705 *      /bin/pdksh, /bin/ash, /bin/bash, or even something such as
1706 *      D:/bin/sh.exe.
1707 */
1708#define SH_PATH "$sh"  /**/
1709
1710/* SIG_NAME:
1711 *      This symbol contains a list of signal names in order of
1712 *      signal number. This is intended
1713 *      to be used as a static array initialization, like this:
1714 *              char *sig_name[] = { SIG_NAME };
1715 *      The signals in the list are separated with commas, and each signal
1716 *      is surrounded by double quotes. There is no leading SIG in the signal
1717 *      name, i.e. SIGQUIT is known as "QUIT".
1718 *      Gaps in the signal numbers (up to NSIG) are filled in with NUMnn,
1719 *      etc., where nn is the actual signal number (e.g. NUM37).
1720 *      The signal number for sig_name[i] is stored in sig_num[i].
1721 *      The last element is 0 to terminate the list with a NULL.  This
1722 *      corresponds to the 0 at the end of the sig_num list.
1723 */
1724/* SIG_NUM:
1725 *      This symbol contains a list of signal numbers, in the same order as the
1726 *      SIG_NAME list. It is suitable for static array initialization, as in:
1727 *              int sig_num[] = { SIG_NUM };
1728 *      The signals in the list are separated with commas, and the indices
1729 *      within that list and the SIG_NAME list match, so it's easy to compute
1730 *      the signal name from a number or vice versa at the price of a small
1731 *      dynamic linear lookup.
1732 *      Duplicates are allowed, but are moved to the end of the list.
1733 *      The signal number corresponding to sig_name[i] is sig_number[i].
1734 *      if (i < NSIG) then sig_number[i] == i. 
1735 *      The last element is 0, corresponding to the 0 at the end of
1736 *      the sig_name list.
1737 */
1738#define SIG_NAME "`echo $sig_name | sed 's/ /","/g'`",0 /**/
1739#define SIG_NUM `echo $sig_num 0 | sed 's/ /,/g'`       /**/
1740
1741/* SITEARCH:
1742 *      This symbol contains the name of the private library for this package.
1743 *      The library is private in the sense that it needn't be in anyone's
1744 *      execution path, but it should be accessible by the world.  The program
1745 *      should be prepared to do ~ expansion.
1746 *      The standard distribution will put nothing in this directory.
1747 *      Individual sites may place their own extensions and modules in
1748 *      this directory.
1749 */
1750/* SITEARCH_EXP:
1751 *      This symbol contains the ~name expanded version of SITEARCH, to be used
1752 *      in programs that are not prepared to deal with ~ expansion at run-time.
1753 */
1754#define SITEARCH "$sitearch"            /**/
1755#define SITEARCH_EXP "$sitearchexp"             /**/
1756
1757/* SITELIB:
1758 *      This symbol contains the name of the private library for this package.
1759 *      The library is private in the sense that it needn't be in anyone's
1760 *      execution path, but it should be accessible by the world.  The program
1761 *      should be prepared to do ~ expansion.
1762 *      The standard distribution will put nothing in this directory.
1763 *      Individual sites may place their own extensions and modules in
1764 *      this directory.
1765 */
1766/* SITELIB_EXP:
1767 *      This symbol contains the ~name expanded version of SITELIB, to be used
1768 *      in programs that are not prepared to deal with ~ expansion at run-time.
1769 */
1770#define SITELIB "$sitelib"              /**/
1771#define SITELIB_EXP "$sitelibexp"               /**/
1772
1773/* STARTPERL:
1774 *      This variable contains the string to put in front of a perl
1775 *      script to make sure (one hopes) that it runs with perl and not
1776 *      some shell.
1777 */
1778#define STARTPERL "$startperl"          /**/
1779
1780/* USE_PERLIO:
1781 *      This symbol, if defined, indicates that the PerlIO abstraction should
1782 *      be used throughout.  If not defined, stdio should be
1783 *      used in a fully backward compatible manner.
1784 */
1785#$useperlio     USE_PERLIO              /**/
1786
1787/* VOIDFLAGS:
1788 *      This symbol indicates how much support of the void type is given by this
1789 *      compiler.  What various bits mean:
1790 *
1791 *          1 = supports declaration of void
1792 *          2 = supports arrays of pointers to functions returning void
1793 *          4 = supports comparisons between pointers to void functions and
1794 *                  addresses of void functions
1795 *          8 = suports declaration of generic void pointers
1796 *
1797 *      The package designer should define VOIDUSED to indicate the requirements
1798 *      of the package.  This can be done either by #defining VOIDUSED before
1799 *      including config.h, or by defining defvoidused in Myinit.U.  If the
1800 *      latter approach is taken, only those flags will be tested.  If the
1801 *      level of void support necessary is not present, defines void to int.
1802 */
1803#ifndef VOIDUSED
1804#define VOIDUSED $defvoidused
1805#endif
1806#define VOIDFLAGS $voidflags
1807#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
1808#define void int                /* is void to be avoided? */
1809#define M_VOID                  /* Xenix strikes again */
1810#endif
1811
1812#endif
1813!GROK!THIS!
Note: See TracBrowser for help on using the repository browser.