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 holds the complete pathname to the sed program.
32 #define LOC_SED "/bin/sed" /**/
35 * This symbol contains the number of bytes required to align a double.
36 * Usual values are 2, 4, and 8.
38 #define ALIGNBYTES 8 /**/
41 * This symbol holds the name of the directory in which the user wants
42 * to keep publicly executable images for the package in question. It
43 * is most often a local directory such as /usr/local/bin.
45 #define BIN "/usr/local/bin" /**/
48 * This symbol contains an encoding of the order of bytes in a long.
49 * Usual values (in hex) are 0x1234, 0x4321, 0x2143, 0x3412...
51 #define BYTEORDER 0x4321 /**/
54 * This symbol contains the first part of the string which will invoke
55 * the C preprocessor on the standard input and produce to standard
56 * output. Typical value of "cc -E" or "/lib/cpp".
59 * This symbol contains the second part of the string which will invoke
60 * the C preprocessor on the standard input and produce to standard
61 * output. This symbol will have the value "-" if CPPSTDIN needs a minus
62 * to specify standard input, otherwise the value is "".
64 #define CPPSTDIN "/usr/lib/cpp"
68 * This symbol, if defined, indicates that the bcmp routine is available
69 * to compare blocks of memory. If undefined, use memcmp. If that's
70 * not available, roll your own.
75 * This symbol, if defined, indicates that the bcopy routine is available
76 * to copy blocks of memory. Otherwise you should probably use memcpy().
77 * If neither is defined, roll your own.
80 * This symbol, if defined, indicates that the bcopy routine is available
81 * to copy potentially overlapping copy blocks of bcopy. Otherwise you
82 * should probably use memmove() or memcpy(). If neither is defined,
85 #define HAS_BCOPY /**/
86 #define SAFE_BCOPY /**/
89 * This symbol, if defined, indicates that the bzero routine is available
90 * to zero blocks of memory. Otherwise you should probably use memset()
93 #define HAS_BZERO /**/
96 * This symbol, if defined, indicates that this C compiler knows how to
97 * cast negative or large floating point numbers to unsigned longs, ints
101 * This symbol contains flags that say what difficulties the compiler
102 * has casting odd floating values to unsigned long:
103 * 1 = couldn't cast < 0
104 * 2 = couldn't cast >= 0x80000000
106 #define CASTNEGFLOAT /**/
107 #define CASTFLAGS 0 /**/
110 * This symbol is defined if this system declares "char *sprintf()" in
111 * stdio.h. The trend seems to be to declare it as "int sprintf()". It
112 * is up to the package author to declare sprintf correctly based on the
115 #define CHARSPRINTF /**/
118 * This symbol, if defined, indicates that the chsize routine is available
119 * to truncate files. You might need a -lx to get this routine.
121 /*#undef HAS_CHSIZE /**/
124 * This symbol, if defined, indicates that the crypt routine is available
125 * to encrypt passwords and the like.
127 #define HAS_CRYPT /**/
130 * This symbol, if defined, indicates that the C-shell exists.
131 * If defined, contains the full pathname of csh.
133 #define CSH "/bin/csh" /**/
136 * This symbol, if defined, indicates that the C program should
137 * check the script that it is executing for setuid/setgid bits, and
138 * attempt to emulate setuid/setgid on systems that have disabled
139 * setuid #! scripts because the kernel can't do it securely.
140 * It is up to the package designer to make sure that this emulation
141 * is done securely. Among other things, it should do an fstat on
142 * the script it just opened to make sure it really is a setuid/setgid
143 * script, it should make sure the arguments passed correspond exactly
144 * to the argument on the #! line, and it should not trust any
145 * subprocesses to which it must pass the filename rather than the
146 * file descriptor of the script to be executed.
151 * This symbol, if defined, indicates that the dup2 routine is available
152 * to dup file descriptors. Otherwise you should use dup().
154 #define HAS_DUP2 /**/
157 * This symbol, if defined, indicates that the fchmod routine is available
158 * to change mode of opened files. If unavailable, use chmod().
160 #define HAS_FCHMOD /**/
163 * This symbol, if defined, indicates that the fchown routine is available
164 * to change ownership of opened files. If unavailable, use chown().
166 #define HAS_FCHOWN /**/
169 * This symbol, if defined, indicates to the C program that
170 * the fcntl() function exists.
172 #define HAS_FCNTL /**/
175 * This symbol, if defined, indicates that the system supports filenames
176 * longer than 14 characters.
178 #define FLEXFILENAMES /**/
181 * This symbol, if defined, indicates that the flock() routine is
182 * available to do file locking.
184 #define HAS_FLOCK /**/
187 * This symbol, if defined, indicates that the getgroups() routine is
188 * available to get the list of process groups. If unavailable, multiple
189 * groups are probably not supported.
191 #define HAS_GETGROUPS /**/
194 * This symbol, if defined, indicates that the gethostent() routine is
195 * available to lookup host names in some data base or other.
197 #define HAS_GETHOSTENT /**/
200 * This symbol, if defined, indicates that the getpgrp() routine is
201 * available to get the current process group.
203 #define HAS_GETPGRP /**/
206 * This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
207 * routine is available to get the current process group.
209 /*#undef HAS_GETPGRP2 /**/
212 * This symbol, if defined, indicates that the getpriority() routine is
213 * available to get a process's priority.
215 #define HAS_GETPRIORITY /**/
218 * This symbol, if defined, indicates that the htons routine (and friends)
219 * are available to do network order byte swapping.
222 * This symbol, if defined, indicates that the htonl routine (and friends)
223 * are available to do network order byte swapping.
226 * This symbol, if defined, indicates that the ntohs routine (and friends)
227 * are available to do network order byte swapping.
230 * This symbol, if defined, indicates that the ntohl routine (and friends)
231 * are available to do network order byte swapping.
233 #define HAS_HTONS /**/
234 #define HAS_HTONL /**/
235 #define HAS_NTOHS /**/
236 #define HAS_NTOHL /**/
239 * This preprocessor symbol is defined, along with rindex, if the system
240 * uses the strchr and strrchr routines instead.
243 * This preprocessor symbol is defined, along with index, if the system
244 * uses the strchr and strrchr routines instead.
246 /*#undef index strchr /* cultural */
247 /*#undef rindex strrchr /* differences? */
250 * This symbol, if defined, indicates that the isascii routine is available
251 * to test characters for asciiness.
253 #define HAS_ISASCII /**/
256 * This symbol, if defined, indicates that the killpg routine is available
257 * to kill process groups. If unavailable, you probably should use kill
258 * with a negative process number.
260 #define HAS_KILLPG /**/
263 * This symbol, if defined, indicates that the lstat() routine is
264 * available to stat symbolic links.
266 #define HAS_LSTAT /**/
269 * This symbol, if defined, indicates that the memcmp routine is available
270 * to compare blocks of memory. If undefined, roll your own.
272 #define HAS_MEMCMP /**/
275 * This symbol, if defined, indicates that the memcpy routine is available
276 * to copy blocks of memory. Otherwise you should probably use bcopy().
277 * If neither is defined, roll your own.
280 * This symbol, if defined, indicates that the memcpy routine is available
281 * to copy potentially overlapping copy blocks of memory. Otherwise you
282 * should probably use memmove() or bcopy(). If neither is defined,
285 #define HAS_MEMCPY /**/
286 /*#undef SAFE_MEMCPY /**/
289 * This symbol, if defined, indicates that the memmove routine is available
290 * to move potentially overlapping blocks of memory. Otherwise you
291 * should use bcopy() or roll your own.
293 /*#undef HAS_MEMMOVE /**/
296 * This symbol, if defined, indicates that the memset routine is available
297 * to set a block of memory to a character. If undefined, roll your own.
299 #define HAS_MEMSET /**/
302 * This symbol, if defined, indicates that the mkdir routine is available
303 * to create directories. Otherwise you should fork off a new process to
306 #define HAS_MKDIR /**/
309 * This symbol, if defined, indicates that the entire msg*(2) library is
315 * This symbol, if defined, indicates that the msgctl() routine is
316 * available to control message passing.
318 #define HAS_MSGCTL /**/
321 * This symbol, if defined, indicates that the msgget() routine is
322 * available to get messages.
324 #define HAS_MSGGET /**/
327 * This symbol, if defined, indicates that the msgrcv() routine is
328 * available to receive messages.
330 #define HAS_MSGRCV /**/
333 * This symbol, if defined, indicates that the msgsnd() routine is
334 * available to send messages.
336 #define HAS_MSGSND /**/
339 * This symbol, if defined, indicates that ndbm.h exists and should
342 #define HAS_NDBM /**/
345 * This symbol, if defined, indicates that dbm.h exists and should
348 #define HAS_ODBM /**/
351 * This manifest constant lets the C program know that the three
352 * argument form of open(2) is available.
354 #define HAS_OPEN3 /**/
357 * This symbol, if defined, indicates that the readdir routine is available
358 * from the C library to read directories.
360 #define HAS_READDIR /**/
363 * This symbol, if defined, indicates that the rename routine is available
364 * to rename files. Otherwise you should do the unlink(), link(), unlink()
367 #define HAS_RENAME /**/
370 * This symbol, if defined, indicates that the rewindir routine is
371 * available to rewind directories.
373 #define HAS_REWINDDIR /**/
376 * This symbol, if defined, indicates that the rmdir routine is available
377 * to remove directories. Otherwise you should fork off a new process to
380 #define HAS_RMDIR /**/
383 * This symbol, if defined, indicates that the seekdir routine is
384 * available to seek into directories.
386 #define HAS_SEEKDIR /**/
389 * This symbol, if defined, indicates that the select() subroutine
392 #define HAS_SELECT /**/
395 * This symbol, if defined, indicates that the entire sem*(2) library is
401 * This symbol, if defined, indicates that the semctl() routine is
402 * available to control semaphores.
404 #define HAS_SEMCTL /**/
407 * This symbol, if defined, indicates that the semget() routine is
408 * available to get semaphores ids.
410 #define HAS_SEMGET /**/
413 * This symbol, if defined, indicates that the semop() routine is
414 * available to perform semaphore operations.
416 #define HAS_SEMOP /**/
419 * This symbol, if defined, indicates that the setegid routine is available
420 * to change the effective gid of the current program.
422 #define HAS_SETEGID /**/
425 * This symbol, if defined, indicates that the seteuid routine is available
426 * to change the effective uid of the current program.
428 #define HAS_SETEUID /**/
431 * This symbol, if defined, indicates that the setpgrp() routine is
432 * available to set the current process group.
434 #define HAS_SETPGRP /**/
437 * This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
438 * routine is available to set the current process group.
440 /*#undef HAS_SETPGRP2 /**/
443 * This symbol, if defined, indicates that the setpriority() routine is
444 * available to set a process's priority.
446 #define HAS_SETPRIORITY /**/
449 * This symbol, if defined, indicates that the setregid routine is
450 * available to change the real and effective gid of the current program.
453 * This symbol, if defined, indicates that the setresgid routine is
454 * available to change the real, effective and saved gid of the current
457 #define HAS_SETREGID /**/
458 /*#undef HAS_SETRESGID /**/
461 * This symbol, if defined, indicates that the setreuid routine is
462 * available to change the real and effective uid of the current program.
465 * This symbol, if defined, indicates that the setresuid routine is
466 * available to change the real, effective and saved uid of the current
469 #define HAS_SETREUID /**/
470 /*#undef HAS_SETRESUID /**/
473 * This symbol, if defined, indicates that the setrgid routine is available
474 * to change the real gid of the current program.
476 #define HAS_SETRGID /**/
479 * This symbol, if defined, indicates that the setruid routine is available
480 * to change the real uid of the current program.
482 #define HAS_SETRUID /**/
485 * This symbol, if defined, indicates that the entire shm*(2) library is
491 * This symbol, if defined, indicates that the shmat() routine is
492 * available to attach a shared memory segment.
495 * This symbol, if defined, indicates that the shmat() routine
496 * returns a pointer of type void*.
498 #define HAS_SHMAT /**/
500 /*#undef VOIDSHMAT /**/
503 * This symbol, if defined, indicates that the shmctl() routine is
504 * available to control a shared memory segment.
506 #define HAS_SHMCTL /**/
509 * This symbol, if defined, indicates that the shmdt() routine is
510 * available to detach a shared memory segment.
512 #define HAS_SHMDT /**/
515 * This symbol, if defined, indicates that the shmget() routine is
516 * available to get a shared memory segment id.
518 #define HAS_SHMGET /**/
521 * This symbol, if defined, indicates that the BSD socket interface is
525 * This symbol, if defined, indicates that the BSD socketpair call is
529 * This symbol, if defined, indicates that the 4.1c BSD socket interface
530 * is supported instead of the 4.2/4.3 BSD socket interface.
532 #define HAS_SOCKET /**/
534 #define HAS_SOCKETPAIR /**/
536 /*#undef OLDSOCKET /**/
539 * This symbol is defined if this system has a stat structure declaring
540 * st_blksize and st_blocks.
542 #define STATBLOCKS /**/
545 * This symbol is defined if this system has a FILE structure declaring
546 * _ptr and _cnt in stdio.h.
548 #define STDSTDIO /**/
551 * This symbol, if defined, indicates that this C compiler knows how
552 * to copy structures. If undefined, you'll need to use a block copy
553 * routine of some sort instead.
555 #define STRUCTCOPY /**/
558 * This symbol, if defined, indicates that the strerror() routine is
559 * available to translate error numbers to strings.
561 /*#undef HAS_STRERROR /**/
564 * This symbol, if defined, indicates that the symlink routine is available
565 * to create symbolic links.
567 #define HAS_SYMLINK /**/
570 * This symbol, if defined, indicates that the syscall routine is available
571 * to call arbitrary system calls. If undefined, that's tough.
573 #define HAS_SYSCALL /**/
576 * This symbol, if defined, indicates that the telldir routine is
577 * available to tell your location in directories.
579 #define HAS_TELLDIR /**/
582 * This symbol, if defined, indicates that the truncate routine is
583 * available to truncate files.
585 #define HAS_TRUNCATE /**/
588 * This symbol, if defined, indicates that vfork() exists.
590 #define HAS_VFORK /**/
593 * This symbol is defined if this system declares "void (*signal())()" in
594 * signal.h. The old way was to declare it as "int (*signal())()". It
595 * is up to the package author to declare things correctly based on the
599 * This symbol's value is either "void" or "int", corresponding to the
600 * appropriate return "type" of a signal handler. Thus, one can declare
601 * a signal handler using "TO_SIGNAL (*handler())()", and define the
602 * handler using "TO_SIGNAL handler(sig)".
605 #define TO_SIGNAL int /**/
608 * This symbol, if defined, indicates that this C compiler knows about
609 * the volatile declaration.
611 /*#undef HASVOLATILE /**/
614 * This symbol, if defined, indicates that the vprintf routine is available
615 * to printf with a pointer to an argument list. If unavailable, you
616 * may need to write your own, probably in terms of _doprnt().
619 * This symbol is defined if this system has vsprintf() returning type
620 * (char*). The trend seems to be to declare it as "int vsprintf()". It
621 * is up to the package author to declare vsprintf correctly based on the
624 #define HAS_VPRINTF /**/
625 #define CHARVSPRINTF /**/
628 * This symbol, if defined, indicates that wait4() exists.
630 #define HAS_WAIT4 /**/
633 * This symbol, if defined, indicates that waitpid() exists.
635 #define HAS_WAITPID /**/
638 * This symbol has a value like gid_t, int, ushort, or whatever type is
639 * used to declare group ids in the kernel.
641 #define GIDTYPE gid_t /**/
644 * This symbol has a value like gid_t, int, ushort, or whatever type is
645 * used in the return value of getgroups().
647 #define GROUPSTYPE int /**/
650 * This manifest constant tells the C program to include <fcntl.h>.
652 /*#undef I_FCNTL /**/
655 * This symbol, if defined, indicates that gdbm.h exists and should
661 * This symbol, if defined, indicates to the C program that it should
667 * This symbol, if defined, indicates to the C program that it should
668 * include netinet/in.h.
671 * This symbol, if defined, indicates to the C program that it should
674 #define I_NETINET_IN /**/
675 /*#undef I_SYS_IN /**/
678 * This symbol, if defined, indicates to the C program that it should
682 * This symbol, if defined, indicates to the C program that struct passwd
686 * This symbol, if defined, indicates to the C program that struct passwd
690 * This symbol, if defined, indicates to the C program that struct passwd
691 * contains pw_change.
694 * This symbol, if defined, indicates to the C program that struct passwd
698 * This symbol, if defined, indicates to the C program that struct passwd
699 * contains pw_expire.
702 * This symbol, if defined, indicates to the C program that struct passwd
703 * contains pw_comment.
706 /*#undef PWQUOTA /**/
708 /*#undef PWCHANGE /**/
709 /*#undef PWCLASS /**/
710 /*#undef PWEXPIRE /**/
711 #define PWCOMMENT /**/
714 * This manifest constant tells the C program to include <sys/file.h>.
716 #define I_SYS_FILE /**/
719 * This symbol, if defined, indicates that sys/ioctl.h exists and should
722 #define I_SYSIOCTL /**/
725 * This symbol is defined if the program should include <time.h>.
728 * This symbol is defined if the program should include <sys/time.h>.
731 * This symbol is defined if the program should include <sys/time.h>
732 * with KERNEL defined.
735 * This symbol is defined if the program should include <sys/select.h>.
738 #define I_SYS_TIME /**/
739 /*#undef SYSTIMEKERNEL /**/
740 /*#undef I_SYS_SELECT /**/
743 * This symbol, if defined, indicates to the C program that it should
749 * This symbol, if defined, indicates to the C program that it should
752 #define I_VARARGS /**/
755 * This symbol, if defined, indicates to the C program that it should
761 * This symbol contains the size of an int, so that the C preprocessor
762 * can make decisions based on it.
764 #define INTSIZE 4 /**/
767 * This symbol, if defined, indicates that the program should use the
768 * P1003-style directory routines, and include <dirent.h>.
771 * This symbol, if defined, indicates that the program should use the
772 * directory functions by including <sys/dir.h>.
775 * This symbol, if defined, indicates that the program should include the
776 * system's version of ndir.h, rather than the one with this package.
779 * This symbol, if defined, indicates that the program should include the
780 * system's version of sys/ndir.h, rather than the one with this package.
783 * This symbol, if defined, indicates that the program should compile
784 * the ndir.c code provided with the package.
787 * This symbol, if defined, indicates to the C program that the length
788 * of directory entry names is provided by a d_namlen field. Otherwise
789 * you need to do strlen() on the d_name field.
791 #define I_DIRENT /**/
792 /*#undef I_SYS_DIR /**/
794 /*#undef I_SYS_NDIR /**/
795 /*#undef I_MY_DIR /**/
796 /*#undef DIRNAMLEN /**/
799 * This symbol, if defined, indicates that we're using our own malloc.
802 * This symbol defines the kind of ptr returned by malloc and realloc.
804 #define MYMALLOC /**/
806 #define MALLOCPTRTYPE char /**/
810 * This symbol contains the number of bits of random number the rand()
811 * function produces. Usual values are 15, 16, and 31.
813 #define RANDBITS 31 /**/
816 * This symbol holds the name of the directory in which the user wants
817 * to keep publicly executable scripts for the package in question. It
818 * is often a directory that is mounted across diverse architectures.
820 #define SCRIPTDIR "/usr/local/bin" /**/
823 * This symbol contains an list of signal names in order.
825 #define SIG_NAME "ZERO","HUP","INT","QUIT","ILL","TRAP","ABRT","EMT","FPE","KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM","URG","STOP","TSTP","CONT","CLD","TTIN","TTOU","IO","XCPU","XFSZ","VTALRM","PROF","WINCH","LOST","USR1","USR2" /**/
828 * This symbol is defined to be the type of char used in stdio.h.
829 * It has the values "unsigned char" or "char".
831 #define STDCHAR unsigned char /**/
834 * This symbol has a value like uid_t, int, ushort, or whatever type is
835 * used to declare user ids in the kernel.
837 #define UIDTYPE uid_t /**/
840 * This symbol indicates how much support of the void type is given by this
841 * compiler. What various bits mean:
843 * 1 = supports declaration of void
844 * 2 = supports arrays of pointers to functions returning void
845 * 4 = supports comparisons between pointers to void functions and
846 * addresses of void functions
848 * The package designer should define VOIDWANT to indicate the requirements
849 * of the package. This can be done either by #defining VOIDWANT before
850 * including config.h, or by defining voidwant in Myinit.U. If the level
851 * of void support necessary is not present, config.h defines void to "int",
852 * VOID to the empty string, and VOIDP to "char *".
855 * This symbol is used for void casts. On implementations which support
856 * void appropriately, its value is "void". Otherwise, its value maps
860 * This symbol's value is "void" if the implementation supports void
861 * appropriately. Otherwise, its value is the empty string. The primary
862 * use of this symbol is in specifying void parameter lists for function
866 * This symbol is used for casting generic pointers. On implementations
867 * which support void appropriately, its value is "void *". Otherwise,
868 * its value is "char *".
874 #if (VOIDHAVE & VOIDWANT) != VOIDWANT
875 #define void int /* is void to be avoided? */
877 #define VOIDP (char *)
878 #define M_VOID /* Xenix strikes again */
881 #define VOIDP (void *)
885 * This symbol contains the name of the private library for this package.
886 * The library is private in the sense that it needn't be in anyone's
887 * execution path, but it should be accessible by the world. The program
888 * should be prepared to do ~ expansion.
890 #define PRIVLIB "/usr/local/lib/perl" /**/