4 * This file was produced by running the config.h.SH script, which
5 * gets its values from config.sh, which is generally produced by
8 * Feel free to modify any of this as the need arises. Note, however,
9 * that running config.h.SH again will wipe out any changes you've made.
10 * For a more permanent change edit config.sh and rerun config.h.SH.
16 * This symbol, if defined, indicates that the program is being compiled
17 * under the EUNICE package under VMS. The program will need to handle
18 * things like files that don't go away the first time you unlink them,
19 * due to version numbering. It will also need to compensate for lack
20 * of a respectable link() command.
23 * This symbol, if defined, indicates that the program is running under
24 * VMS. It is currently only set in conjunction with the EUNICE symbol.
30 * This symbol contains the number of bytes required to align a double.
31 * Usual values are 2, 4, and 8.
33 #define ALIGNBYTES 2 /**/
36 * This symbol holds the name of the directory in which the user wants
37 * to keep publicly executable images for the package in question. It
38 * is most often a local directory such as /usr/local/bin.
40 #define BIN "/bin" /**/
43 * This symbol contains an encoding of the order of bytes in a long.
44 * Usual values (in hex) are 0x1234, 0x4321, 0x2143, 0x3412...
46 #define BYTEORDER 0x4321 /**/
49 * This symbol contains the first part of the string which will invoke
50 * the C preprocessor on the standard input and produce to standard
51 * output. Typical value of "cc -E" or "/lib/cpp".
54 * This symbol contains the second part of the string which will invoke
55 * the C preprocessor on the standard input and produce to standard
56 * output. This symbol will have the value "-" if CPPSTDIN needs a minus
57 * to specify standard input, otherwise the value is "".
59 #define CPPSTDIN "gcc -E"
63 * This symbol, if defined, indicates that the bcmp routine is available
64 * to compare blocks of memory. If undefined, use memcmp. If that's
65 * not available, roll your own.
70 * This symbol, if defined, indicates that the bcopy routine is available
71 * to copy blocks of memory. Otherwise you should probably use memcpy().
72 * If neither is defined, roll your own.
75 * This symbol, if defined, indicates that the bcopy routine is available
76 * to copy potentially overlapping copy blocks of bcopy. Otherwise you
77 * should probably use memmove() or memcpy(). If neither is defined,
80 #define HAS_BCOPY /**/
81 #define SAFE_BCOPY /**/
84 * This symbol, if defined, indicates that the bzero routine is available
85 * to zero blocks of memory. Otherwise you should probably use memset()
88 #define HAS_BZERO /**/
91 * This symbol, if defined, indicates that this C compiler knows how to
92 * cast negative or large floating point numbers to unsigned longs, ints
96 * This symbol contains flags that say what difficulties the compiler
97 * has casting odd floating values to unsigned long:
98 * 1 = couldn't cast < 0
99 * 2 = couldn't cast >= 0x80000000
101 #define CASTNEGFLOAT /**/
102 #define CASTFLAGS 0 /**/
105 * This symbol is defined if this system declares "char *sprintf()" in
106 * stdio.h. The trend seems to be to declare it as "int sprintf()". It
107 * is up to the package author to declare sprintf correctly based on the
110 /* #define CHARSPRINTF /**/
113 * This symbol, if defined, indicates that the chsize routine is available
114 * to truncate files. You might need a -lx to get this routine.
116 /*#undef HAS_CHSIZE /**/
119 * This symbol, if defined, indicates that the crypt routine is available
120 * to encrypt passwords and the like.
122 /* #define HAS_CRYPT /**/
125 * This symbol, if defined, indicates that the C-shell exists.
126 * If defined, contains the full pathname of csh.
128 /* #define CSH "/bin/csh" /**/
131 * This symbol, if defined, indicates that the C program should
132 * check the script that it is executing for setuid/setgid bits, and
133 * attempt to emulate setuid/setgid on systems that have disabled
134 * setuid #! scripts because the kernel can't do it securely.
135 * It is up to the package designer to make sure that this emulation
136 * is done securely. Among other things, it should do an fstat on
137 * the script it just opened to make sure it really is a setuid/setgid
138 * script, it should make sure the arguments passed correspond exactly
139 * to the argument on the #! line, and it should not trust any
140 * subprocesses to which it must pass the filename rather than the
141 * file descriptor of the script to be executed.
146 * This symbol, if defined, indicates that the dup2 routine is available
147 * to dup file descriptors. Otherwise you should use dup().
149 #define HAS_DUP2 /**/
152 * This symbol, if defined, indicates that the fchmod routine is available
153 * to change mode of opened files. If unavailable, use chmod().
155 /* #define HAS_FCHMOD /**/
158 * This symbol, if defined, indicates that the fchown routine is available
159 * to change ownership of opened files. If unavailable, use chown().
161 /* #define HAS_FCHOWN /**/
164 * This symbol, if defined, indicates to the C program that
165 * the fcntl() function exists.
167 /* #define HAS_FCNTL /**/
170 * This symbol, if defined, indicates that the system supports filenames
171 * longer than 14 characters.
173 /* #define FLEXFILENAMES /**/
176 * This symbol, if defined, indicates that the flock() routine is
177 * available to do file locking.
179 /* #define HAS_FLOCK /**/
182 * This symbol, if defined, indicates that the getgroups() routine is
183 * available to get the list of process groups. If unavailable, multiple
184 * groups are probably not supported.
186 /* #define HAS_GETGROUPS /**/
189 * This symbol, if defined, indicates that the gethostent() routine is
190 * available to lookup host names in some data base or other.
192 /* #define HAS_GETHOSTENT /**/
195 * This symbol, if defined, indicates that the getpgrp() routine is
196 * available to get the current process group.
198 #define HAS_GETPGRP /**/
201 * This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
202 * routine is available to get the current process group.
204 /*#undef HAS_GETPGRP2 /**/
207 * This symbol, if defined, indicates that the getpriority() routine is
208 * available to get a process's priority.
210 /* #define HAS_GETPRIORITY /**/
213 * This symbol, if defined, indicates that the htons routine (and friends)
214 * are available to do network order byte swapping.
217 * This symbol, if defined, indicates that the htonl routine (and friends)
218 * are available to do network order byte swapping.
221 * This symbol, if defined, indicates that the ntohs routine (and friends)
222 * are available to do network order byte swapping.
225 * This symbol, if defined, indicates that the ntohl routine (and friends)
226 * are available to do network order byte swapping.
228 /* #define HAS_HTONS /**/
229 /* #define HAS_HTONL /**/
230 /* #define HAS_NTOHS /**/
231 /* #define HAS_NTOHL /**/
234 * This preprocessor symbol is defined, along with rindex, if the system
235 * uses the strchr and strrchr routines instead.
238 * This preprocessor symbol is defined, along with index, if the system
239 * uses the strchr and strrchr routines instead.
241 /* #define index strchr /* cultural */
242 /* #define rindex strrchr /* differences? */
246 * This symbol, if defined, indicates that the isascii routine is available
247 * to test characters for asciiness.
249 #define HAS_ISASCII /**/
252 * This symbol, if defined, indicates that the killpg routine is available
253 * to kill process groups. If unavailable, you probably should use kill
254 * with a negative process number.
256 /* #define HAS_KILLPG /**/
259 * This symbol, if defined, indicates that the lstat() routine is
260 * available to stat symbolic links.
262 #define HAS_LSTAT /**/
265 * This symbol, if defined, indicates that the memcmp routine is available
266 * to compare blocks of memory. If undefined, roll your own.
268 #define HAS_MEMCMP /**/
271 * This symbol, if defined, indicates that the memcpy routine is available
272 * to copy blocks of memory. Otherwise you should probably use bcopy().
273 * If neither is defined, roll your own.
276 * This symbol, if defined, indicates that the memcpy routine is available
277 * to copy potentially overlapping copy blocks of memory. Otherwise you
278 * should probably use memmove() or bcopy(). If neither is defined,
281 #define HAS_MEMCPY /**/
282 /*#undef SAFE_MEMCPY /**/
285 * This symbol, if defined, indicates that the memmove routine is available
286 * to move potentially overlapping blocks of memory. Otherwise you
287 * should use bcopy() or roll your own.
289 /*#undef HAS_MEMMOVE /**/
292 * This symbol, if defined, indicates that the memset routine is available
293 * to set a block of memory to a character. If undefined, roll your own.
295 #define HAS_MEMSET /**/
298 * This symbol, if defined, indicates that the mkdir routine is available
299 * to create directories. Otherwise you should fork off a new process to
302 #define HAS_MKDIR /**/
305 * This symbol, if defined, indicates that the entire msg*(2) library is
308 /* #define HAS_MSG /**/
311 * This symbol, if defined, indicates that the msgctl() routine is
312 * available to control message passing.
314 /* #define HAS_MSGCTL /**/
317 * This symbol, if defined, indicates that the msgget() routine is
318 * available to get messages.
320 /* #define HAS_MSGGET /**/
323 * This symbol, if defined, indicates that the msgrcv() routine is
324 * available to receive messages.
326 /* #define HAS_MSGRCV /**/
329 * This symbol, if defined, indicates that the msgsnd() routine is
330 * available to send messages.
332 /* #define HAS_MSGSND /**/
335 * This symbol, if defined, indicates that ndbm.h exists and should
338 /* #define HAS_NDBM /**/
341 * This symbol, if defined, indicates that dbm.h exists and should
344 /* #define HAS_ODBM /**/
347 * This manifest constant lets the C program know that the three
348 * argument form of open(2) is available.
350 #define HAS_OPEN3 /**/
353 * This symbol, if defined, indicates that the readdir routine is available
354 * from the C library to read directories.
356 #define HAS_READDIR /**/
359 * This symbol, if defined, indicates that the rename routine is available
360 * to rename files. Otherwise you should do the unlink(), link(), unlink()
363 #define HAS_RENAME /**/
366 * This symbol, if defined, indicates that the rewindir routine is
367 * available to rewind directories.
369 #define HAS_REWINDDIR /**/
372 * This symbol, if defined, indicates that the rmdir routine is available
373 * to remove directories. Otherwise you should fork off a new process to
376 #define HAS_RMDIR /**/
379 * This symbol, if defined, indicates that the seekdir routine is
380 * available to seek into directories.
382 #define HAS_SEEKDIR /**/
385 * This symbol, if defined, indicates that the select() subroutine
388 /* #define HAS_SELECT /**/
391 * This symbol, if defined, indicates that the entire sem*(2) library is
394 /* #define HAS_SEM /**/
397 * This symbol, if defined, indicates that the semctl() routine is
398 * available to control semaphores.
400 /* #define HAS_SEMCTL /**/
403 * This symbol, if defined, indicates that the semget() routine is
404 * available to get semaphores ids.
406 /* #define HAS_SEMGET /**/
409 * This symbol, if defined, indicates that the semop() routine is
410 * available to perform semaphore operations.
412 /* #define HAS_SEMOP /**/
415 * This symbol, if defined, indicates that the setegid routine is available
416 * to change the effective gid of the current program.
418 #define HAS_SETEGID /**/
421 * This symbol, if defined, indicates that the seteuid routine is available
422 * to change the effective uid of the current program.
424 #define HAS_SETEUID /**/
427 * This symbol, if defined, indicates that the setpgrp() routine is
428 * available to set the current process group.
430 #define HAS_SETPGRP /**/
433 * This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
434 * routine is available to set the current process group.
436 /*#undef HAS_SETPGRP2 /**/
439 * This symbol, if defined, indicates that the setpriority() routine is
440 * available to set a process's priority.
442 /* #define HAS_SETPRIORITY /**/
445 * This symbol, if defined, indicates that the setregid routine is
446 * available to change the real and effective gid of the current program.
449 * This symbol, if defined, indicates that the setresgid routine is
450 * available to change the real, effective and saved gid of the current
453 /* #define HAS_SETREGID /**/
454 /*#undef HAS_SETRESGID /**/
457 * This symbol, if defined, indicates that the setreuid routine is
458 * available to change the real and effective uid of the current program.
461 * This symbol, if defined, indicates that the setresuid routine is
462 * available to change the real, effective and saved uid of the current
465 /* #define HAS_SETREUID /**/
466 /*#undef HAS_SETRESUID /**/
469 * This symbol, if defined, indicates that the setrgid routine is available
470 * to change the real gid of the current program.
472 /* #define HAS_SETRGID /**/
475 * This symbol, if defined, indicates that the setruid routine is available
476 * to change the real uid of the current program.
478 /* #define HAS_SETRUID /**/
481 * This symbol, if defined, indicates that the entire shm*(2) library is
484 /* #define HAS_SHM /**/
487 * This symbol, if defined, indicates that the shmat() routine is
488 * available to attach a shared memory segment.
491 * This symbol, if defined, indicates that the shmat() routine
492 * returns a pointer of type void*.
494 /* #define HAS_SHMAT /**/
496 /*#undef VOIDSHMAT /**/
499 * This symbol, if defined, indicates that the shmctl() routine is
500 * available to control a shared memory segment.
502 /* #define HAS_SHMCTL /**/
505 * This symbol, if defined, indicates that the shmdt() routine is
506 * available to detach a shared memory segment.
508 /* #define HAS_SHMDT /**/
511 * This symbol, if defined, indicates that the shmget() routine is
512 * available to get a shared memory segment id.
514 /* #define HAS_SHMGET /**/
517 * This symbol, if defined, indicates that the BSD socket interface is
521 * This symbol, if defined, indicates that the BSD socketpair call is
525 * This symbol, if defined, indicates that the 4.1c BSD socket interface
526 * is supported instead of the 4.2/4.3 BSD socket interface.
528 /* #define HAS_SOCKET /**/
530 /* #define HAS_SOCKETPAIR /**/
532 /*#undef OLDSOCKET /**/
535 * This symbol is defined if this system has a stat structure declaring
536 * st_blksize and st_blocks.
538 #define STATBLOCKS /**/
541 * This symbol is defined if this system has a FILE structure declaring
542 * _ptr and _cnt in stdio.h.
544 /* #define STDSTDIO /**/ /* we do, but semantics are different */
547 * This symbol, if defined, indicates that this C compiler knows how
548 * to copy structures. If undefined, you'll need to use a block copy
549 * routine of some sort instead.
551 #define STRUCTCOPY /**/
554 * This symbol, if defined, indicates that the strerror() routine is
555 * available to translate error numbers to strings.
557 #define HAS_STRERROR /**/
560 * This symbol, if defined, indicates that the symlink routine is available
561 * to create symbolic links.
563 #define HAS_SYMLINK /**/
566 * This symbol, if defined, indicates that the syscall routine is available
567 * to call arbitrary system calls. If undefined, that's tough.
569 #define HAS_SYSCALL /**/
572 * This symbol, if defined, indicates that the telldir routine is
573 * available to tell your location in directories.
575 #define HAS_TELLDIR /**/
578 * This symbol, if defined, indicates that the truncate routine is
579 * available to truncate files.
581 /* #define HAS_TRUNCATE /**/
584 * This symbol, if defined, indicates that vfork() exists.
587 #define HAS_VFORK /**/
591 * This symbol is defined if this system declares "void (*signal())()" in
592 * signal.h. The old way was to declare it as "int (*signal())()". It
593 * is up to the package author to declare things correctly based on the
597 * This symbol's value is either "void" or "int", corresponding to the
598 * appropriate return "type" of a signal handler. Thus, one can declare
599 * a signal handler using "TO_SIGNAL (*handler())()", and define the
600 * handler using "TO_SIGNAL handler(sig)".
603 #define TO_SIGNAL void /**/
606 * This symbol, if defined, indicates that this C compiler knows about
607 * the volatile declaration.
609 #define HASVOLATILE /**/
612 * This symbol, if defined, indicates that the vprintf routine is available
613 * to printf with a pointer to an argument list. If unavailable, you
614 * may need to write your own, probably in terms of _doprnt().
617 * This symbol is defined if this system has vsprintf() returning type
618 * (char*). The trend seems to be to declare it as "int vsprintf()". It
619 * is up to the package author to declare vsprintf correctly based on the
622 #define HAS_VPRINTF /**/
623 /* #define CHARVSPRINTF /**/
626 * This symbol, if defined, indicates that wait4() exists.
628 /* #define HAS_WAIT4 /**/
631 * This symbol, if defined, indicates that waitpid() exists.
633 /*#undef HAS_WAITPID /**/
636 * This symbol has a value like gid_t, int, ushort, or whatever type is
637 * used to declare group ids in the kernel.
639 #define GIDTYPE gid_t /**/
642 * This symbol has a value like gid_t, int, ushort, or whatever type is
643 * used in the return value of getgroups().
645 /* #define GROUPSTYPE unsigned short /**/
648 * This manifest constant tells the C program to include <fcntl.h>.
653 * This symbol, if defined, indicates that gdbm.h exists and should
660 * This symbol, if defined, indicates to the C program that it should
663 /* #define I_GRP /**/
666 * This symbol, if defined, indicates to the C program that it should
667 * include netinet/in.h.
670 * This symbol, if defined, indicates to the C program that it should
673 /* #define I_NETINET_IN /**/
674 /*#undef I_SYS_IN /**/
677 * This symbol, if defined, indicates to the C program that it should
681 * This symbol, if defined, indicates to the C program that struct passwd
685 * This symbol, if defined, indicates to the C program that struct passwd
689 * This symbol, if defined, indicates to the C program that struct passwd
690 * contains pw_change.
693 * This symbol, if defined, indicates to the C program that struct passwd
697 * This symbol, if defined, indicates to the C program that struct passwd
698 * contains pw_expire.
701 * This symbol, if defined, indicates to the C program that struct passwd
702 * contains pw_comment.
705 /* #define PWQUOTA /**/
707 /*#undef PWCHANGE /**/
708 /*#undef PWCLASS /**/
709 /*#undef PWEXPIRE /**/
710 /* #define PWCOMMENT /**/
713 * This manifest constant tells the C program to include <sys/file.h>.
715 /* #define I_SYS_FILE /**/
718 * This symbol, if defined, indicates that sys/ioctl.h exists and should
721 #define I_SYSIOCTL /**/
724 * This symbol is defined if the program should include <time.h>.
727 * This symbol is defined if the program should include <sys/time.h>.
730 * This symbol is defined if the program should include <sys/time.h>
731 * with KERNEL defined.
734 * This symbol is defined if the program should include <sys/select.h>.
737 /* #define I_SYS_TIME /**/
738 /*#undef SYSTIMEKERNEL /**/
739 /*#undef I_SYS_SELECT /**/
742 * This symbol, if defined, indicates to the C program that it should
745 /*#undef I_UTIME /**/
748 * This symbol, if defined, indicates to the C program that it should
751 #define I_VARARGS /**/
754 * This symbol, if defined, indicates to the C program that it should
757 /* #define I_VFORK /**/
760 * This symbol contains the size of an int, so that the C preprocessor
761 * can make decisions based on it.
764 #define INTSIZE 2 /**/
766 #define INTSIZE 4 /**/
770 * This symbol, if defined, indicates that the program should use the
771 * P1003-style directory routines, and include <dirent.h>.
774 * This symbol, if defined, indicates that the program should use the
775 * directory functions by including <sys/dir.h>.
778 * This symbol, if defined, indicates that the program should include the
779 * system's version of ndir.h, rather than the one with this package.
782 * This symbol, if defined, indicates that the program should include the
783 * system's version of sys/ndir.h, rather than the one with this package.
786 * This symbol, if defined, indicates that the program should compile
787 * the ndir.c code provided with the package.
790 * This symbol, if defined, indicates to the C program that the length
791 * of directory entry names is provided by a d_namlen field. Otherwise
792 * you need to do strlen() on the d_name field.
794 #define I_DIRENT /**/
795 /*#undef I_SYS_DIR /**/
797 /*#undef I_SYS_NDIR /**/
798 /*#undef I_MY_DIR /**/
799 /*#undef DIRNAMLEN /**/
802 * This symbol, if defined, indicates that we're using our own malloc.
805 * This symbol defines the kind of ptr returned by malloc and realloc.
807 /* #define MYMALLOC /**/
808 #define MALLOCPTRTYPE void /**/
813 * This symbol contains the number of bits of random number the rand()
814 * function produces. Usual values are 15, 16, and 31.
817 #define RANDBITS 15 /**/
819 #define RANDBITS 31 /**/
823 * This symbol holds the name of the directory in which the user wants
824 * to keep publicly executable scripts for the package in question. It
825 * is often a directory that is mounted across diverse architectures.
827 #define SCRIPTDIR "/bin" /**/
830 * This symbol contains an list of signal names in order.
832 #define SIG_NAME "NULL","HUP","INT","QUIT","ILL","TRAP","ABRT","PRIV","FPE","KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM","URG","STOP","TSTP","CONT","CHLD","TTIN","TTOU","IO","XCPU","XFSZ","VTALRM","PROF","WINCH","USR1","USR2"
835 * This symbol is defined to be the type of char used in stdio.h.
836 * It has the values "unsigned char" or "char".
838 #define STDCHAR unsigned char /**/
841 * This symbol has a value like uid_t, int, ushort, or whatever type is
842 * used to declare user ids in the kernel.
844 #define UIDTYPE uid_t /**/
847 * This symbol indicates how much support of the void type is given by this
848 * compiler. What various bits mean:
850 * 1 = supports declaration of void
851 * 2 = supports arrays of pointers to functions returning void
852 * 4 = supports comparisons between pointers to void functions and
853 * addresses of void functions
855 * The package designer should define VOIDWANT to indicate the requirements
856 * of the package. This can be done either by #defining VOIDWANT before
857 * including config.h, or by defining voidwant in Myinit.U. If the level
858 * of void support necessary is not present, config.h defines void to "int",
859 * VOID to the empty string, and VOIDP to "char *".
862 * This symbol is used for void casts. On implementations which support
863 * void appropriately, its value is "void". Otherwise, its value maps
867 * This symbol's value is "void" if the implementation supports void
868 * appropriately. Otherwise, its value is the empty string. The primary
869 * use of this symbol is in specifying void parameter lists for function
873 * This symbol is used for casting generic pointers. On implementations
874 * which support void appropriately, its value is "void *". Otherwise,
875 * its value is "char *".
881 #if (VOIDHAVE & VOIDWANT) != VOIDWANT
882 #define void int /* is void to be avoided? */
884 #define VOIDP (char *)
885 #define M_VOID /* Xenix strikes again */
888 #define VOIDP (void *)
892 * This symbol contains the name of the private library for this package.
893 * The library is private in the sense that it needn't be in anyone's
894 * execution path, but it should be accessible by the world. The program
895 * should be prepared to do ~ expansion.
897 /* #define PRIVLIB "/usr/lib/perl" /**/
898 extern char *PRIVLIB; /* $PERLIB or /lib */
900 /* param.h does'nt really need types, but is #define'ed to make sure types.h
903 #define PARAM_NEEDS_TYPES
905 /* These are selective unix services in the gcc-st lib