1 /* This file (config.H) is a sample config.h file. If you are unable
2 to successfully run Configure, copy this file to config.h and
3 edit it to suit your system.
6 * This file was produced by running the config_h.SH script, which
7 * gets its values from config.sh, which is generally produced by
10 * Feel free to modify any of this as the need arises. Note, however,
11 * that running config.h.SH again will wipe out any changes you've made.
12 * For a more permanent change edit config.sh and rerun config.h.SH.
14 * $Id: Config_h.U,v 3.0.1.2 1993/08/24 12:13:20 ram Exp $
17 /* Configuration time: Mon Dec 19 13:04:26 EST 1994
19 * Target system: crystal crystal 3.2 2 i386
26 * This symbol contains the number of bytes required to align a
27 * double. Usual values are 2, 4 and 8.
29 #define MEM_ALIGNBYTES 4 /**/
32 * This variable, if defined, holds the name of the directory in
33 * which the user wants to put architecture-dependent public
34 * library files for perl5. It is most often a local directory
35 * such as /usr/local/lib. Programs using this variable must be
36 * prepared to deal with filename expansion. If ARCHLIB is the
37 * same as PRIVLIB, it is not defined, since presumably the
38 * program already searches PRIVLIB.
40 #define ARCHLIB "/usr/local/lib/perl5/i386-isc" /**/
43 * This symbol holds the path of the bin directory where the package will
44 * be installed. Program must be prepared to deal with ~name substitution.
46 #define BIN "/usr/local/bin" /**/
49 * This symbol hold the hexadecimal constant defined in byteorder,
50 * i.e. 0x1234 or 0x4321, etc...
52 #define BYTEORDER 0x1234 /* large digits for MSB */
55 * This macro catenates 2 tokens together.
58 * This macro surrounds its token with double quotes.
61 #define CAT2(a,b)a/**/b
62 #define CAT3(a,b,c)a/**/b/**/c
63 #define CAT4(a,b,c,d)a/**/b/**/c/**/d
64 #define CAT5(a,b,c,d,e)a/**/b/**/c/**/d/**/e
65 #define STRINGIFY(a)"a"
66 /* If you can get stringification with catify, tell me how! */
69 #define CAT2(a,b)a ## b
70 #define CAT3(a,b,c)a ## b ## c
71 #define CAT4(a,b,c,d)a ## b ## c ## d
72 #define CAT5(a,b,c,d,e)a ## b ## c ## d ## e
74 #define STRINGIFY(a)StGiFy(a)
75 #define SCAT2(a,b)StGiFy(a) StGiFy(b)
76 #define SCAT3(a,b,c)StGiFy(a) StGiFy(b) StGiFy(c)
77 #define SCAT4(a,b,c,d)StGiFy(a) StGiFy(b) StGiFy(c) StGiFy(d)
78 #define SCAT5(a,b,c,d,e)StGiFy(a) StGiFy(b) StGiFy(c) StGiFy(d) StGiFy(e)
81 #include "Bletch: How does this C preprocessor catenate tokens?"
85 * This symbol contains the first part of the string which will invoke
86 * the C preprocessor on the standard input and produce to standard
87 * output. Typical value of "cc -E" or "/lib/cpp", but it can also
88 * call a wrapper. See CPPRUN.
91 * This symbol contains the second part of the string which will invoke
92 * the C preprocessor on the standard input and produce to standard
93 * output. This symbol will have the value "-" if CPPSTDIN needs a minus
94 * to specify standard input, otherwise the value is "".
96 #define CPPSTDIN "cc -E"
100 * This symbol, if defined, indicates that the alarm routine is
103 #define HAS_ALARM /**/
106 * This symbol indicates the C compiler can check for function attributes,
107 * such as printf formats. This is normally only supported by GNU cc.
109 /*#define HASATTRIBUTE /**/
111 #define __attribute__(_arg_)
115 * This symbol is defined if the bcmp() routine is available to
116 * compare blocks of memory.
118 #define HAS_BCMP /**/
121 * This symbol is defined if the bcopy() routine is available to
122 * copy blocks of memory.
124 #define HAS_BCOPY /**/
127 * This symbol is defined if the bzero() routine is available to
128 * set a memory block to 0.
130 #define HAS_BZERO /**/
133 * This symbol is defined if the C compiler can cast negative
134 * or large floating point numbers to 32-bit ints.
136 /*#define CASTI32 /**/
139 * This symbol is defined if the C compiler can cast negative
140 * numbers to unsigned longs, ints and shorts.
143 * This symbol contains flags that say what difficulties the compiler
144 * has casting odd floating values to unsigned long:
146 * 1 = couldn't cast < 0
147 * 2 = couldn't cast >= 0x80000000
149 /*#define CASTNEGFLOAT /**/
150 #define CASTFLAGS 3 /**/
153 * This symbol, if defined, indicates that the chown routine is
156 #define HAS_CHOWN /**/
159 * This symbol, if defined, indicates that the chroot routine is
162 #define HAS_CHROOT /**/
165 * This symbol, if defined, indicates that the chsize routine is available
166 * to truncate files. You might need a -lx to get this routine.
168 /*#define HAS_CHSIZE /**/
171 * This symbol, if defined, indicates that the closedir() routine
172 * does not return a value.
174 /*#define VOID_CLOSEDIR /**/
177 * This symbol, if defined, indicates that this C compiler knows about
178 * the const type. There is no need to actually test for that symbol
179 * within your programs. The mere use of the "const" keyword will
180 * trigger the necessary tests.
182 /*#define HASCONST /**/
188 * This symbol, if defined, indicates that the crypt routine is available
189 * to encrypt passwords and the like.
191 #define HAS_CRYPT /**/
194 * This symbol, if defined, indicates that the C-shell exists.
195 * If defined, contains the full pathname of csh.
197 #define CSH "/bin/csh" /**/
200 * This symbol, if defined, indicates that the cuserid routine is
201 * available to get character login names.
203 #define HAS_CUSERID /**/
206 * This symbol, if defined, indicates that this system's <float.h>
207 * or <limits.h> defines the symbol DBL_DIG, which is the number
208 * of significant digits in a double precision number. If this
209 * symbol is not defined, a guess of 15 is usually pretty good.
211 #define HAS_DBL_DIG /* */
214 * This symbol, if defined, indicates that the difftime routine is
217 #define HAS_DIFFTIME /**/
220 * This symbol, if defined, indicates that the dlerror routine is
221 * available to return a string describing the last error that
222 * occurred from a call to dlopen(), dlclose() or dlsym().
224 /*#define HAS_DLERROR /**/
226 /* SETUID_SCRIPTS_ARE_SECURE_NOW:
227 * This symbol, if defined, indicates that the bug that prevents
228 * setuid scripts from being secure is not present in this kernel.
231 * This symbol, if defined, indicates that the C program should
232 * check the script that it is executing for setuid/setgid bits, and
233 * attempt to emulate setuid/setgid on systems that have disabled
234 * setuid #! scripts because the kernel can't do it securely.
235 * It is up to the package designer to make sure that this emulation
236 * is done securely. Among other things, it should do an fstat on
237 * the script it just opened to make sure it really is a setuid/setgid
238 * script, it should make sure the arguments passed correspond exactly
239 * to the argument on the #! line, and it should not trust any
240 * subprocesses to which it must pass the filename rather than the
241 * file descriptor of the script to be executed.
243 /*#define SETUID_SCRIPTS_ARE_SECURE_NOW /**/
244 /*#define DOSUID /**/
247 * This symbol, if defined, indicates that the drem routine is
248 * available. This routine is roughly the same as fmod, i.e. it
249 * computes the remainder r=x-n*y, where n=rint(x/y), whereas fmod
252 /*#define HAS_DREM /**/
255 * This symbol, if defined, indicates that the dup2 routine is
256 * available to duplicate file descriptors.
258 #define HAS_DUP2 /**/
261 * This symbol, if defined, indicates that the fchmod routine is available
262 * to change mode of opened files. If unavailable, use chmod().
264 /*#define HAS_FCHMOD /**/
267 * This symbol, if defined, indicates that the fchown routine is available
268 * to change ownership of opened files. If unavailable, use chown().
270 /*#define HAS_FCHOWN /**/
273 * This symbol, if defined, indicates to the C program that
274 * the fcntl() function exists.
276 #define HAS_FCNTL /**/
279 * This symbol, if defined, indicates that the fgetpos routine is
280 * available to get the file position indicator, similar to ftell().
282 /*#define HAS_FGETPOS /**/
285 * This symbol, if defined, indicates that the system supports filenames
286 * longer than 14 characters.
288 /*#define FLEXFILENAMES /**/
291 * This symbol, if defined, indicates that the flock routine is
292 * available to do file locking.
294 /*#define HAS_FLOCK /**/
297 * This symbol, if defined, indicates that the fmod routine is
298 * available to compute the remainder r=x-n*y where n=trunc(x/y).
300 #define HAS_FMOD /**/
303 * This symbol, if defined, indicates that the fork routine is
306 #define HAS_FORK /**/
309 * This symbol, if defined, indicates that the fsetpos routine is
310 * available to set the file position indicator, similar to fseek().
312 /*#define HAS_FSETPOS /**/
315 * This preprocessor macro is defined to convert a floating point
316 * number to a string without a trailing decimal point. This
317 * emulates the behavior of sprintf("%g"), but is sometimes much more
318 * efficient. If gconvert() is not available, but gcvt() drops the
319 * trailing decimal point, then gcvt() is used. If all else fails,
320 * a macro using sprintf("%g") is used. Arguments for the Gconvert
321 * macro are: value, number of digits, whether trailing zeros should
322 * be retained, and the output buffer.
324 #define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
327 * This symbol, if defined, indicates that the getgroups() routine is
328 * available to get the list of process groups. If unavailable, multiple
329 * groups are probably not supported.
331 #define HAS_GETGROUPS /**/
334 * This symbol, if defined, indicates that the gethostent routine is
335 * available to lookup host names in some data base or other.
337 /*#define HAS_GETHOSTENT /**/
340 * This symbol, if defined, indicates that the C program may use the
341 * uname() routine to derive the host name. See also HAS_GETHOSTNAME
344 #define HAS_UNAME /**/
347 * This symbol, if defined, indicates that the getlogin routine is
348 * available to get the login name.
350 #define HAS_GETLOGIN /**/
353 * This symbol, if defined, indicates that the getpgrp routine is
354 * available to get the current process group.
356 #define HAS_GETPGRP /**/
359 * This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
360 * routine is available to get the current process group.
362 /*#define HAS_GETPGRP2 /**/
365 * This symbol, if defined, indicates that the getppid routine is
366 * available to get the parent process ID.
368 #define HAS_GETPPID /**/
371 * This symbol, if defined, indicates that the getpriority routine is
372 * available to get a process's priority.
374 /*#define HAS_GETPRIORITY /**/
377 * This symbol, if defined, indicates that the group routine is
380 /*#define HAS_GROUP /**/
383 * This symbol, if defined, indicates that the htonl() routine (and
384 * friends htons() ntohl() ntohs()) are available to do network
385 * order byte swapping.
388 * This symbol, if defined, indicates that the htons() routine (and
389 * friends htonl() ntohl() ntohs()) are available to do network
390 * order byte swapping.
393 * This symbol, if defined, indicates that the ntohl() routine (and
394 * friends htonl() htons() ntohs()) are available to do network
395 * order byte swapping.
398 * This symbol, if defined, indicates that the ntohs() routine (and
399 * friends htonl() htons() ntohl()) are available to do network
400 * order byte swapping.
402 #define HAS_HTONL /**/
403 #define HAS_HTONS /**/
404 #define HAS_NTOHL /**/
405 #define HAS_NTOHS /**/
408 * This manifest constant lets the C program know that isascii
411 #define HAS_ISASCII /**/
414 * This symbol, if defined, indicates that the killpg routine is available
415 * to kill process groups. If unavailable, you probably should use kill
416 * with a negative process number.
418 /*#define HAS_KILLPG /**/
421 * This symbol, if defined, indicates that the link routine is
422 * available to create hard links.
424 #define HAS_LINK /**/
427 * This symbol is defined if this system has a FILE structure declaring
428 * _IO_read_base, _IO_read_ptr, and _IO_read_end in stdio.h.
430 /*#define USE_LINUX_STDIO /**/
433 * This symbol, if defined, indicates that the localeconv routine is
434 * available for numeric and monetary formatting conventions.
436 #define HAS_LOCALECONV /**/
439 * This symbol, if defined, indicates that the lockf routine is
440 * available to do file locking.
442 #define HAS_LOCKF /**/
445 * This symbol, if defined, indicates that the lstat routine is
446 * available to do file stats on symbolic links.
448 #define HAS_LSTAT /**/
451 * This symbol, if defined, indicates that the mblen routine is available
452 * to find the number of bytes in a multibye character.
454 /*#define HAS_MBLEN /**/
457 * This symbol, if defined, indicates that the mbstowcs routine is
458 * available to covert a multibyte string into a wide character string.
460 /*#define HAS_MBSTOWCS /**/
463 * This symbol, if defined, indicates that the mbtowc routine is available
464 * to covert a multibyte to a wide character.
466 /*#define HAS_MBTOWC /**/
469 * This symbol, if defined, indicates that the memcmp routine is available
470 * to compare blocks of memory.
472 #define HAS_MEMCMP /**/
475 * This symbol, if defined, indicates that the memcpy routine is available
476 * to copy blocks of memory.
478 #define HAS_MEMCPY /**/
481 * This symbol, if defined, indicates that the memmove routine is available
482 * to copy potentially overlapping blocks of memory. This should be used
483 * only when HAS_SAFE_BCOPY is not defined. If neither is there, roll your
486 /*#define HAS_MEMMOVE /**/
489 * This symbol, if defined, indicates that the memset routine is available
490 * to set blocks of memory.
492 #define HAS_MEMSET /**/
495 * This symbol, if defined, indicates that the mkdir routine is available
496 * to create directories. Otherwise you should fork off a new process to
499 #define HAS_MKDIR /**/
502 * This symbol, if defined, indicates that the mkfifo routine is
503 * available to create FIFOs. Otherwise, mknod should be able to
504 * do it for you. However, if mkfifo is there, mknod might require
505 * super-user privileges which mkfifo will not.
507 #define HAS_MKFIFO /**/
510 * This symbol, if defined, indicates that the mktime routine is
513 #define HAS_MKTIME /**/
516 * This symbol, if defined, indicates that the entire msg*(2) library is
517 * supported (IPC mechanism based on message queues).
522 * This symbol, if defined, indicates that the nice routine is
525 #define HAS_NICE /**/
528 * This manifest constant lets the C program know that the three
529 * argument form of open(2) is available.
531 #define HAS_OPEN3 /**/
534 * This symbol, if defined, indicates that the passwd routine is
537 /*#define HAS_PASSWD /**/
540 * This symbol, if defined, indicates that pathconf() is available
541 * to determine file-system related limits and options associated
542 * with a given filename.
545 * This symbol, if defined, indicates that pathconf() is available
546 * to determine file-system related limits and options associated
547 * with a given open file descriptor.
549 #define HAS_PATHCONF /**/
550 #define HAS_FPATHCONF /**/
553 * This symbol, if defined, indicates that the pause routine is
554 * available to suspend a process until a signal is received.
556 #define HAS_PAUSE /**/
559 * This symbol, if defined, indicates that the pipe routine is
560 * available to create an inter-process channel.
562 #define HAS_PIPE /**/
565 * This symbol, if defined, indicates that the readdir routine is
566 * available to read directory entries. You may have to include
567 * <dirent.h>. See I_DIRENT.
569 #define HAS_READDIR /**/
572 * This symbol, if defined, indicates that the seekdir routine is
573 * available. You may have to include <dirent.h>. See I_DIRENT.
575 #define HAS_SEEKDIR /**/
578 * This symbol, if defined, indicates that the telldir routine is
579 * available. You may have to include <dirent.h>. See I_DIRENT.
581 #define HAS_TELLDIR /**/
584 * This symbol, if defined, indicates that the rewinddir routine is
585 * available. You may have to include <dirent.h>. See I_DIRENT.
587 #define HAS_REWINDDIR /**/
590 * This symbol, if defined, indicates that the readlink routine is
591 * available to read the value of a symbolic link.
593 #define HAS_READLINK /**/
596 * This symbol, if defined, indicates that the rename routine is available
597 * to rename files. Otherwise you should do the unlink(), link(), unlink()
600 #define HAS_RENAME /**/
603 * This symbol, if defined, indicates that the rmdir routine is
604 * available to remove directories. Otherwise you should fork off a
605 * new process to exec /bin/rmdir.
607 #define HAS_RMDIR /**/
610 * This symbol, if defined, indicates that the bcopy routine is available
611 * to copy potentially overlapping memory blocks. Otherwise you should
612 * probably use memmove() or memcpy(). If neither is defined, roll your
615 #define HAS_SAFE_BCOPY /**/
618 * This symbol, if defined, indicates that the memcpy routine is available
619 * to copy potentially overlapping memory blocks. Otherwise you should
620 * probably use memmove() or memcpy(). If neither is defined, roll your
623 #define HAS_SAFE_MEMCPY /**/
626 * This symbol, if defined, indicates that the select routine is
627 * available to select active file descriptors. If the timeout field
628 * is used, <sys/time.h> may need to be included.
630 #define HAS_SELECT /**/
633 * This symbol, if defined, indicates that the entire sem*(2) library is
639 * This symbol, if defined, indicates that the setegid routine is available
640 * to change the effective gid of the current program.
642 #define HAS_SETEGID /**/
645 * This symbol, if defined, indicates that the seteuid routine is available
646 * to change the effective uid of the current program.
648 #define HAS_SETEUID /**/
651 * This symbol, if defined, indicates that the setlinebuf routine is
652 * available to change stderr or stdout from block-buffered or unbuffered
653 * to a line-buffered mode.
655 /*#define HAS_SETLINEBUF /**/
658 * This symbol, if defined, indicates that the setlocale routine is
659 * available to handle locale-specific ctype implementations.
661 #define HAS_SETLOCALE /**/
664 * This symbol, if defined, indicates that the setpgid routine is
665 * available to set process group ID.
667 #define HAS_SETPGID /**/
670 * This symbol, if defined, indicates that the setpgrp routine is
671 * available to set the current process group.
674 * This symbol, if defined, indicates that the BSD notion of process
675 * group is to be used. For instance, you have to say setpgrp(pid, pgrp)
676 * instead of the USG setpgrp().
678 #define HAS_SETPGRP /**/
679 /*#define USE_BSDPGRP /**/
682 * This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
683 * routine is available to set the current process group.
685 /*#define HAS_SETPGRP2 /**/
688 * This symbol, if defined, indicates that the setpriority routine is
689 * available to set a process's priority.
691 /*#define HAS_SETPRIORITY /**/
694 * This symbol, if defined, indicates that the setregid routine is
695 * available to change the real and effective gid of the current
699 * This symbol, if defined, indicates that the setresgid routine is
700 * available to change the real, effective and saved gid of the current
703 #define HAS_SETREGID /**/
704 /*#define HAS_SETRESGID /**/
707 * This symbol, if defined, indicates that the setreuid routine is
708 * available to change the real and effective uid of the current
712 * This symbol, if defined, indicates that the setresuid routine is
713 * available to change the real, effective and saved uid of the current
716 #define HAS_SETREUID /**/
717 /*#define HAS_SETRESUID /**/
720 * This symbol, if defined, indicates that the setrgid routine is available
721 * to change the real gid of the current program.
723 /*#define HAS_SETRGID /**/
726 * This symbol, if defined, indicates that the setruid routine is available
727 * to change the real uid of the current program.
729 /*#define HAS_SETRUID /**/
732 * This symbol, if defined, indicates that the setsid routine is
733 * available to set the process group ID.
735 #define HAS_SETSID /**/
738 * This symbol, if defined, indicates that the entire shm*(2) library is
744 * This symbol holds the return type of the shmat() system call.
745 * Usually set to 'void *' or 'char *'.
747 /* HAS_SHMAT_PROTOTYPE:
748 * This symbol, if defined, indicates that the sys/shm.h includes
749 * a prototype for shmat(). Otherwise, it is up to the program to
750 * guess one. Shmat_t shmat _((int, Shmat_t, int)) is a good guess,
751 * but not always right so it should be emitted by the program only
752 * when HAS_SHMAT_PROTOTYPE is not defined to avoid conflicting defs.
754 #define Shmat_t char * /**/
755 /*#define HAS_SHMAT_PROTOTYPE /**/
758 * This symbol, if defined, indicates that the BSD socket interface is
762 * This symbol, if defined, indicates that the BSD socketpair() call is
765 #define HAS_SOCKET /**/
766 /*#define HAS_SOCKETPAIR /**/
769 * This symbol is defined if this system has a stat structure declaring
770 * st_blksize and st_blocks.
772 /*#define USE_STAT_BLOCKS /**/
775 * This symbol is defined if this system has a FILE structure declaring
776 * _ptr and _cnt in stdio.h.
778 #define USE_STD_STDIO /**/
781 * This symbol is defined to indicate that the strchr()/strrchr()
782 * functions are available for string searching. If not, try the
783 * index()/rindex() pair.
786 * This symbol is defined to indicate that the index()/rindex()
787 * functions are available for string searching.
789 #define HAS_STRCHR /**/
790 /*#define HAS_INDEX /**/
793 * This symbol, if defined, indicates that the strcoll routine is
794 * available to compare strings using collating information.
796 #define HAS_STRCOLL /**/
799 * This symbol, if defined, indicates that this C compiler knows how
800 * to copy structures. If undefined, you'll need to use a block copy
801 * routine of some sort instead.
803 #define USE_STRUCT_COPY /**/
806 * This symbol, if defined, indicates that the strerror routine is
807 * available to translate error numbers to strings. See the writeup
808 * of Strerror() in this file before you try to define your own.
811 * This symbol, if defined, indicates that the sys_errlist array is
812 * available to translate error numbers to strings. The extern int
813 * sys_nerr gives the size of that table.
816 * This preprocessor symbol is defined as a macro if strerror() is
817 * not available to translate error numbers to strings but sys_errlist[]
820 #define HAS_STRERROR /**/
821 #define HAS_SYS_ERRLIST /**/
822 #define Strerror(e) strerror(e)
825 * This symbol, if defined, indicates that the strxfrm() routine is
826 * available to transform strings.
828 #define HAS_STRXFRM /**/
831 * This symbol, if defined, indicates that the symlink routine is available
832 * to create symbolic links.
834 #define HAS_SYMLINK /**/
837 * This symbol, if defined, indicates that the syscall routine is
838 * available to call arbitrary system calls. If undefined, that's tough.
840 #define HAS_SYSCALL /**/
843 * This symbol, if defined, indicates that sysconf() is available
844 * to determine system related limits and options.
846 #define HAS_SYSCONF /**/
849 * This symbol, if defined, indicates that the system routine is
850 * available to issue a shell command.
852 #define HAS_SYSTEM /**/
855 * This symbol, if defined, indicates that the tcgetpgrp routine is
856 * available to get foreground process group ID.
858 #define HAS_TCGETPGRP /**/
861 * This symbol, if defined, indicates that the tcsetpgrp routine is
862 * available to set foreground process group ID.
864 #define HAS_TCSETPGRP /**/
867 * This symbol holds the type returned by time(). It can be long,
868 * or time_t on BSD sites (in which case <sys/types.h> should be
871 #define Time_t time_t /* Time type */
874 * This symbol, if defined, indicates that the times() routine exists.
875 * Note that this became obsolete on some systems (SUNOS), which now
876 * use getrusage(). It may be necessary to include <sys/times.h>.
878 #define HAS_TIMES /**/
881 * This symbol, if defined, indicates that the truncate routine is
882 * available to truncate files.
884 /*#define HAS_TRUNCATE /**/
887 * This symbol, if defined, indicates that the tzname[] array is
888 * available to access timezone names.
890 #define HAS_TZNAME /**/
893 * This symbol, if defined, indicates that the umask routine is
894 * available to set and get the value of the file creation mask.
896 #define HAS_UMASK /**/
899 * This symbol, if defined, indicates that vfork() exists.
901 /*#define HAS_VFORK /**/
904 * This symbol is defined if this system declares "void (*signal(...))()" in
905 * signal.h. The old way was to declare it as "int (*signal(...))()". It
906 * is up to the package author to declare things correctly based on the
910 * This symbol's value is either "void" or "int", corresponding to the
911 * appropriate return type of a signal handler. Thus, you can declare
912 * a signal handler using "Signal_t (*handler)()", and define the
913 * handler using "Signal_t handler(sig)".
916 #define Signal_t void /* Signal handler's return type */
919 * This symbol, if defined, indicates that this C compiler knows about
920 * the volatile declaration.
922 /*#define HASVOLATILE /**/
928 * This symbol, if defined, indicates that the vprintf routine is available
929 * to printf with a pointer to an argument list. If unavailable, you
930 * may need to write your own, probably in terms of _doprnt().
932 /* USE_CHAR_VSPRINTF:
933 * This symbol is defined if this system has vsprintf() returning type
934 * (char*). The trend seems to be to declare it as "int vsprintf()". It
935 * is up to the package author to declare vsprintf correctly based on the
938 #define HAS_VPRINTF /**/
939 /*#define USE_CHAR_VSPRINTF /**/
942 * This symbol, if defined, indicates that wait4() exists.
944 /*#define HAS_WAIT4 /**/
947 * This symbol, if defined, indicates that the waitpid routine is
948 * available to wait for child process.
950 #define HAS_WAITPID /**/
953 * This symbol, if defined, indicates that the wcstombs routine is
954 * available to convert wide character strings to multibyte strings.
956 /*#define HAS_WCSTOMBS /**/
959 * This symbol, if defined, indicates that the wctomb routine is available
960 * to covert a wide character to a multibyte.
962 /*#define HAS_WCTOMB /**/
965 * This symbol holds the type used to declare file positions in libc.
966 * It can be fpos_t, long, uint, etc... It may be necessary to include
967 * <sys/types.h> to get any typedef'ed information.
969 #define Fpos_t fpos_t /* File position type */
972 * This symbol holds the return type of getgid() and the type of
973 * argument to setrgid() and related functions. Typically,
974 * it is the type of group ids in the kernel. It can be int, ushort,
975 * uid_t, etc... It may be necessary to include <sys/types.h> to get
976 * any typedef'ed information.
978 #define Gid_t gid_t /* Type for getgid(), etc... */
981 * This symbol holds the type used for the second argument to
982 * getgroups(). Usually, this is the same of gidtype, but
983 * sometimes it isn't. It can be int, ushort, uid_t, etc...
984 * It may be necessary to include <sys/types.h> to get any
985 * typedef'ed information. This is only required if you have
989 #define Groups_t gid_t /* Type for 2nd arg to getgroups() */
993 * This symbol, if defined, indicates to the C program that it should
994 * include <dirent.h>. Using this symbol also triggers the definition
995 * of the Direntry_t define which ends up being 'struct dirent' or
996 * 'struct direct' depending on the availability of <dirent.h>.
999 * This symbol, if defined, indicates to the C program that the length
1000 * of directory entry names is provided by a d_namlen field. Otherwise
1001 * you need to do strlen() on the d_name field.
1004 * This symbol is set to 'struct direct' or 'struct dirent' depending on
1005 * whether dirent is available or not. You should use this pseudo type to
1006 * portably declare your directory entries.
1008 #define I_DIRENT /**/
1009 /*#define DIRNAMLEN /**/
1010 #define Direntry_t struct dirent
1013 * This symbol, if defined, indicates that <dlfcn.h> exists and should
1016 /*#define I_DLFCN /**/
1019 * This manifest constant tells the C program to include <fcntl.h>.
1021 #define I_FCNTL /**/
1024 * This symbol, if defined, indicates to the C program that it should
1025 * include <float.h> to get definition of symbols like DBL_MAX or
1026 * DBL_MIN, i.e. machine dependent floating point values.
1028 #define I_FLOAT /**/
1031 * This symbol, if defined, indicates to the C program that it should
1037 * This symbol, if defined, indicates to the C program that it should
1038 * include <limits.h> to get definition of symbols like WORD_BIT or
1039 * LONG_MAX, i.e. machine dependant limitations.
1041 #define I_LIMITS /**/
1044 * This symbol, if defined, indicates to the C program that it should
1050 * This symbol, if defined, indicates to the C program that it should
1051 * include <memory.h>.
1053 /*#define I_MEMORY /**/
1056 * This symbol, if defined, indicates that <net/errno.h> exists and
1057 * should be included.
1059 #define I_NET_ERRNO /**/
1062 * This symbol, if defined, indicates to the C program that it should
1063 * include <netinet/in.h>. Otherwise, you may try <sys/in.h>.
1065 #define I_NETINET_IN /**/
1068 * This symbol, if defined, indicates to the C program that it should
1072 * This symbol, if defined, indicates to the C program that struct passwd
1073 * contains pw_quota.
1076 * This symbol, if defined, indicates to the C program that struct passwd
1080 * This symbol, if defined, indicates to the C program that struct passwd
1081 * contains pw_change.
1084 * This symbol, if defined, indicates to the C program that struct passwd
1085 * contains pw_class.
1088 * This symbol, if defined, indicates to the C program that struct passwd
1089 * contains pw_expire.
1092 * This symbol, if defined, indicates to the C program that struct passwd
1093 * contains pw_comment.
1096 /*#define PWQUOTA /**/
1098 /*#define PWCHANGE /**/
1099 /*#define PWCLASS /**/
1100 /*#define PWEXPIRE /**/
1101 #define PWCOMMENT /**/
1104 * This symbol, if defined, indicates that <stddef.h> exists and should
1107 #define I_STDDEF /**/
1110 * This symbol, if defined, indicates that <stdlib.h> exists and should
1113 #define I_STDLIB /**/
1116 * This symbol, if defined, indicates to the C program that it should
1117 * include <string.h> (USG systems) instead of <strings.h> (BSD systems).
1119 #define I_STRING /**/
1122 * This symbol, if defined, indicates to the C program that it should
1123 * include <sys/dir.h>.
1125 #define I_SYS_DIR /**/
1128 * This symbol, if defined, indicates to the C program that it should
1129 * include <sys/file.h> to get definition of R_OK and friends.
1131 /*#define I_SYS_FILE /**/
1134 * This symbol, if defined, indicates that <sys/ioctl.h> exists and should
1135 * be included. Otherwise, include <sgtty.h> or <termio.h>.
1137 #define I_SYS_IOCTL /**/
1140 * This symbol, if defined, indicates to the C program that it should
1141 * include <sys/ndir.h>.
1143 /*#define I_SYS_NDIR /**/
1146 * This symbol, if defined, indicates to the C program that it should
1147 * include <sys/param.h>.
1149 #define I_SYS_PARAM /**/
1152 * This symbol, if defined, indicates to the C program that it should
1153 * include <sys/select.h> in order to get definition of struct timeval.
1155 /*#define I_SYS_SELECT /**/
1158 * This symbol, if defined, indicates to the C program that it should
1159 * include <sys/times.h>.
1161 #define I_SYS_TIMES /**/
1164 * This symbol, if defined, indicates that the program should include
1165 * <termio.h> rather than <sgtty.h>. There are also differences in
1166 * the ioctl() calls that depend on the value of this symbol.
1169 * This symbol, if defined, indicates that the program should include
1170 * the POSIX termios.h rather than sgtty.h or termio.h.
1171 * There are also differences in the ioctl() calls that depend on the
1172 * value of this symbol.
1175 * This symbol, if defined, indicates that the program should include
1176 * <sgtty.h> rather than <termio.h>. There are also differences in
1177 * the ioctl() calls that depend on the value of this symbol.
1179 /*#define I_TERMIO /**/
1180 #define I_TERMIOS /**/
1181 /*#define I_SGTTY /**/
1184 * This symbol, if defined, indicates to the C program that it should
1188 * This symbol, if defined, indicates to the C program that it should
1189 * include <sys/time.h>.
1191 /* I_SYS_TIME_KERNEL:
1192 * This symbol, if defined, indicates to the C program that it should
1193 * include <sys/time.h> with KERNEL defined.
1195 /*#define I_TIME /**/
1196 #define I_SYS_TIME /**/
1197 /*#define I_SYS_TIME_KERNEL /**/
1200 * This symbol, if defined, indicates to the C program that it should
1201 * include <unistd.h>.
1203 #define I_UNISTD /**/
1206 * This symbol, if defined, indicates to the C program that it should
1207 * include <utime.h>.
1209 #define I_UTIME /**/
1212 * This symbol, if defined, indicates that <stdarg.h> exists and should
1216 * This symbol, if defined, indicates to the C program that it should
1217 * include <varargs.h>.
1219 /*#define I_STDARG /**/
1220 #define I_VARARGS /**/
1223 * This symbol, if defined, indicates to the C program that it should
1226 /*#define I_VFORK /**/
1229 * This symbol contains the size of an int, so that the C preprocessor
1230 * can make decisions based on it.
1232 #define INTSIZE 4 /**/
1235 * This symbol holds the type used to declare offsets in the kernel.
1236 * It can be int, long, off_t, etc... It may be necessary to include
1237 * <sys/types.h> to get any typedef'ed information.
1239 #define Off_t off_t /* <offset> type */
1242 * This symbol holds the type used to declare file modes
1243 * for systems calls. It is usually mode_t, but may be
1244 * int or unsigned short. It may be necessary to include <sys/types.h>
1245 * to get any typedef'ed information.
1247 #define Mode_t mode_t /* file mode parameter for system calls */
1250 * This symbol contains the name of the private library for this package.
1251 * The library is private in the sense that it needn't be in anyone's
1252 * execution path, but it should be accessible by the world. The program
1253 * should be prepared to do ~ expansion.
1255 #define PRIVLIB "/usr/local/lib/perl5" /**/
1258 * If defined, this macro indicates that the C compiler can handle
1259 * function prototypes.
1262 * This macro is used to declare function parameters for folks who want
1263 * to make declarations with prototypes using a different style than
1264 * the above macros. Use double parentheses. For example:
1266 * int main _((int argc, char *argv[]));
1268 /*#define CAN_PROTOTYPE /**/
1269 #ifdef CAN_PROTOTYPE
1270 #define _(args) args
1276 * This symbol contains the number of bits of random number the rand()
1277 * function produces. Usual values are 15, 16, and 31.
1279 #define RANDBITS 15 /**/
1282 * This symbol holds the name of the directory in which the user wants
1283 * to put publicly executable scripts for the package in question. It
1284 * is often a directory that is mounted across diverse architectures.
1285 * Programs must be prepared to deal with ~name expansion.
1287 #define SCRIPTDIR "/usr/local/bin" /**/
1290 * This symbol holds the type used for the 2nd, 3rd, and 4th
1291 * arguments to select. Usually, this is 'fd_set *', if HAS_FD_SET
1292 * is defined, and 'int *' otherwise. This is only useful if you
1293 * have select(), of course.
1295 #define Select_fd_set_t fd_set * /**/
1298 * This symbol contains a list of signal names in order. This is intended
1299 * to be used as a static array initialization, like this:
1300 * char *sig_name[] = { SIG_NAME };
1301 * The signals in the list are separated with commas, and each signal
1302 * is surrounded by double quotes. There is no leading SIG in the signal
1303 * name, i.e. SIGQUIT is known as "QUIT".
1305 #define SIG_NAME "ZERO","HUP","INT","QUIT","ILL","TRAP","ABRT","EMT","FPE","KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM","USR1","USR2","CLD","PWR","WINCH","21","POLL","CONT","STOP","TSTP","TTIN","TTOU" /**/
1308 * This symbol holds the type used to declare length parameters
1309 * for string functions. It is usually size_t, but may be
1310 * unsigned long, int, etc. It may be necessary to include
1311 * <sys/types.h> to get any typedef'ed information.
1313 #define Size_t size_t /* length paramater for string functions */
1316 * This symbol holds the type used by functions that return
1317 * a count of bytes or an error condition. It must be a signed type.
1318 * It is usually ssize_t, but may be long or int, etc.
1319 * It may be necessary to include <sys/types.h> or <unistd.h>
1320 * to get any typedef'ed information.
1321 * We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
1323 #define SSize_t int /* signed count of bytes */
1326 * This symbol is defined to be the type of char used in stdio.h.
1327 * It has the values "unsigned char" or "char".
1329 #define STDCHAR unsigned char /**/
1332 * This symbol holds the type used to declare user ids in the kernel.
1333 * It can be int, ushort, uid_t, etc... It may be necessary to include
1334 * <sys/types.h> to get any typedef'ed information.
1336 #define Uid_t uid_t /* UID type */
1339 * This symbol indicates how much support of the void type is given by this
1340 * compiler. What various bits mean:
1342 * 1 = supports declaration of void
1343 * 2 = supports arrays of pointers to functions returning void
1344 * 4 = supports comparisons between pointers to void functions and
1345 * addresses of void functions
1346 * 8 = suports declaration of generic void pointers
1348 * The package designer should define VOIDUSED to indicate the requirements
1349 * of the package. This can be done either by #defining VOIDUSED before
1350 * including config.h, or by defining defvoidused in Myinit.U. If the
1351 * latter approach is taken, only those flags will be tested. If the
1352 * level of void support necessary is not present, defines void to int.
1357 #define VOIDFLAGS 15
1358 #if (VOIDFLAGS & VOIDUSED) != VOIDUSED
1359 #define void int /* is void to be avoided? */
1360 #define M_VOID /* Xenix strikes again */
1364 * This symbol, if defined, indicates that the program is being compiled
1365 * under the EUNICE package under VMS. The program will need to handle
1366 * things like files that don't go away the first time you unlink them,
1367 * due to version numbering. It will also need to compensate for lack
1368 * of a respectable link() command.
1371 * This symbol, if defined, indicates that the program is running under
1372 * VMS. It is currently only set in conjunction with the EUNICE symbol.
1374 /*#define EUNICE /**/
1378 * This symbol holds the complete pathname to the sed program.
1380 #define LOC_SED "/bin/sed" /**/
1382 /* DLSYM_NEEDS_UNDERSCORE:
1383 * This symbol, if defined, indicates that we need to prepend an
1384 * underscore to the symbol name before calling dlsym(). This only
1385 * makes sense if you *have* dlsym, which we will presume is the
1386 * case if you're using dl_dlopen.xs.
1388 /*#define DLSYM_NEEDS_UNDERSCORE /* */
1390 /* USE_DYNAMIC_LOADING:
1391 * This symbol, if defined, indicates that dynamic loading of
1392 * some sort is available.
1394 /*#define USE_DYNAMIC_LOADING /**/
1397 * This symbol contains the type of the prefix structure element
1398 * in the <db.h> header file. In older versions of DB, it was
1399 * int, while in newer ones it is u_int32_t.
1402 * This symbol contains the type of the prefix structure element
1403 * in the <db.h> header file. In older versions of DB, it was
1404 * int, while in newer ones it is size_t.
1406 #define DB_Hash_t "int" /**/
1407 #define DB_Prefix_t "int" /**/
1410 * This symbol, if defined, indicates that ndbm.h exists and should
1416 * This symbol is the type of pointer returned by malloc and realloc.
1418 #define Malloc_t char * /**/
1421 * This symbol, if defined, indicates that we're using our own malloc.
1423 #define MYMALLOC /**/