3 if test ! -f config.sh; then
5 ln ../../config.sh . || \
6 ln ../../../config.sh . || \
7 (echo "Can't find config.sh."; exit 1)
8 echo "Using config.sh from above..."
13 echo "Extracting config.h (with variable substitutions)"
14 sed <<!GROK!THIS! >config.h -e 's!^#undef!/\*#undef!'
16 * This file was produced by running the config.h.SH script, which
17 * gets its values from config.sh, which is generally produced by
20 * Feel free to modify any of this as the need arises. Note, however,
21 * that running config.h.SH again will wipe out any changes you've made.
22 * For a more permanent change edit config.sh and rerun config.h.SH.
27 * This symbol, if defined, indicates that the program is being compiled
28 * under the EUNICE package under VMS. The program will need to handle
29 * things like files that don't go away the first time you unlink them,
30 * due to version numbering. It will also need to compensate for lack
31 * of a respectable link() command.
34 * This symbol, if defined, indicates that the program is running under
35 * VMS. It is currently only set in conjunction with the EUNICE symbol.
37 #$d_eunice EUNICE /**/
41 * This symbol holds the name of the directory in which the user wants
42 * to put publicly executable images for the package in question. It
43 * is most often a local directory such as /usr/local/bin.
45 #define BIN "$bin" /**/
48 * This symbol contains an encoding of the order of bytes in a long.
49 * Usual values (in octal) are 01234, 04321, 02143, 03412...
51 #define BYTEORDER 0$byteorder /**/
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 "$cppstdin"
65 #define CPPMINUS "$cppminus"
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().
81 * This symbol is defined if this system declares "char *sprintf()" in
82 * stdio.h. The trend seems to be to declare it as "int sprintf()". It
83 * is up to the package author to declare sprintf correctly based on the
86 #$d_charsprf CHARSPRINTF /**/
89 * This symbol, if defined, indicates that the crypt routine is available
90 * to encrypt passwords and the like.
95 * This symbol, if defined, indicates that the C program should
96 * check the script that it is executing for setuid/setgid bits, and
97 * attempt to emulate setuid/setgid on systems that have disabled
98 * setuid #! scripts because the kernel can't do it securely.
99 * It is up to the package designer to make sure that this emulation
100 * is done securely. Among other things, it should do an fstat on
101 * the script it just opened to make sure it really is a setuid/setgid
102 * script, it should make sure the arguments passed correspond exactly
103 * to the argument on the #! line, and it should not trust any
104 * subprocesses to which it must pass the filename rather than the
105 * file descriptor of the script to be executed.
107 #$d_dosuid DOSUID /**/
110 * This symbol, if defined, indicates that the dup2 routine is available
111 * to dup file descriptors. Otherwise you should use dup().
116 * This symbol, if defined, indicates that the fchmod routine is available
117 * to change mode of opened files. If unavailable, use chmod().
119 #$d_fchmod FCHMOD /**/
122 * This symbol, if defined, indicates that the fchown routine is available
123 * to change ownership of opened files. If unavailable, use chown().
125 #$d_fchown FCHOWN /**/
128 * This symbol, if defined, indicates to the C program that it should
134 * This symbol, if defined, indicates that the flock() routine is
135 * available to do file locking.
140 * This symbol, if defined, indicates that the getgroups() routine is
141 * available to get the list of process groups. If unavailable, multiple
142 * groups are probably not supported.
144 #$d_getgrps GETGROUPS /**/
147 * This symbol, if defined, indicates that the gethostent() routine is
148 * available to lookup host names in some data base or other.
150 #$d_gethent GETHOSTENT /**/
153 * This symbol, if defined, indicates that the getpgrp() routine is
154 * available to get the current process group.
156 #$d_getpgrp GETPGRP /**/
159 * This symbol, if defined, indicates that the getpriority() routine is
160 * available to get a process's priority.
162 #$d_getprior GETPRIORITY /**/
165 * This symbol, if defined, indicates that the htons routine (and friends)
166 * are available to do network order byte swapping.
169 * This symbol, if defined, indicates that the htonl routine (and friends)
170 * are available to do network order byte swapping.
173 * This symbol, if defined, indicates that the ntohs routine (and friends)
174 * are available to do network order byte swapping.
177 * This symbol, if defined, indicates that the ntohl routine (and friends)
178 * are available to do network order byte swapping.
186 * This preprocessor symbol is defined, along with rindex, if the system
187 * uses the strchr and strrchr routines instead.
190 * This preprocessor symbol is defined, along with index, if the system
191 * uses the strchr and strrchr routines instead.
193 #$d_index index strchr /* cultural */
194 #$d_index rindex strrchr /* differences? */
197 * This symbol, if defined, indicates that sys/ioctl.h exists and should
203 * This symbol, if defined, indicates that the killpg routine is available
204 * to kill process groups. If unavailable, you probably should use kill
205 * with a negative process number.
207 #$d_killpg KILLPG /**/
210 * This symbol, if defined, indicates that the memcmp routine is available
211 * to compare blocks of memory. If undefined, roll your own.
213 #$d_memcmp MEMCMP /**/
216 * This symbol, if defined, indicates that the memcpy routine is available
217 * to copy blocks of memory. Otherwise you should probably use bcopy().
218 * If neither is defined, roll your own.
220 #$d_memcpy MEMCPY /**/
223 * This symbol, if defined, indicates that the mkdir routine is available
224 * to create directories. Otherwise you should fork off a new process to
230 * This symbol, if defined, indicates that ndbm.h exists and should
236 * This symbol, if defined, indicates that dbm.h exists and should
242 * This symbol, if defined, indicates that the readdir routine is available
243 * from the C library to create directories.
245 #$d_readdir READDIR /**/
248 * This symbol, if defined, indicates that the rename routine is available
249 * to rename files. Otherwise you should do the unlink(), link(), unlink()
252 #$d_rename RENAME /**/
255 * This symbol, if defined, indicates that the rmdir routine is available
256 * to remove directories. Otherwise you should fork off a new process to
262 * This symbol, if defined, indicates that the setegid routine is available
263 * to change the effective gid of the current program.
265 #$d_setegid SETEGID /**/
268 * This symbol, if defined, indicates that the seteuid routine is available
269 * to change the effective uid of the current program.
271 #$d_seteuid SETEUID /**/
274 * This symbol, if defined, indicates that the setpgrp() routine is
275 * available to set the current process group.
277 #$d_setpgrp SETPGRP /**/
280 * This symbol, if defined, indicates that the setpriority() routine is
281 * available to set a process's priority.
283 #$d_setprior SETPRIORITY /**/
286 * This symbol, if defined, indicates that the setregid routine is
287 * available to change the real and effective gid of the current program.
290 * This symbol, if defined, indicates that the setresgid routine is
291 * available to change the real, effective and saved gid of the current
294 #$d_setregid SETREGID /**/
295 #$d_setresgid SETRESGID /**/
298 * This symbol, if defined, indicates that the setreuid routine is
299 * available to change the real and effective uid of the current program.
302 * This symbol, if defined, indicates that the setresuid routine is
303 * available to change the real, effective and saved uid of the current
306 #$d_setreuid SETREUID /**/
307 #$d_setresuid SETRESUID /**/
310 * This symbol, if defined, indicates that the setrgid routine is available
311 * to change the real gid of the current program.
313 #$d_setrgid SETRGID /**/
316 * This symbol, if defined, indicates that the setruid routine is available
317 * to change the real uid of the current program.
319 #$d_setruid SETRUID /**/
322 * This symbol, if defined, indicates that the BSD socket interface is
326 * This symbol, if defined, indicates that the BSD socketpair call is
330 * This symbol, if defined, indicates that the 4.1c BSD socket interface
331 * is supported instead of the 4.2/4.3 BSD socket interface.
333 #$d_socket SOCKET /**/
335 #$d_sockpair SOCKETPAIR /**/
337 #$d_oldsock OLDSOCKET /**/
340 * This symbol is defined if this system has a stat structure declaring
341 * st_blksize and st_blocks.
343 #$d_statblks STATBLOCKS /**/
346 * This symbol is defined if this system has a FILE structure declaring
347 * _ptr and _cnt in stdio.h.
349 #$d_stdstdio STDSTDIO /**/
352 * This symbol, if defined, indicates that this C compiler knows how
353 * to copy structures. If undefined, you'll need to use a block copy
354 * routine of some sort instead.
356 #$d_strctcpy STRUCTCOPY /**/
359 * This symbol, if defined, indicates that the symlink routine is available
360 * to create symbolic links.
362 #$d_symlink SYMLINK /**/
365 * This symbol, if defined, indicates that the syscall routine is available
366 * to call arbitrary system calls. If undefined, that's tough.
368 #$d_syscall SYSCALL /**/
371 * This symbol is defined if this system declares "struct tm" in
372 * in <sys/time.h> rather than <time.h>. We can't just say
373 * -I/usr/include/sys because some systems have both time files, and
374 * the -I trick gets the wrong one.
377 * This symbol is defined if this system has the file <sys/time.h>.
379 #$d_tminsys TMINSYS /**/
380 #$i_systime I_SYSTIME /**/
383 * This symbol, if defined, indicates to the C program that it should
386 #$d_varargs VARARGS /**/
389 * This symbol, if defined, remaps the vfork routine to fork if the
390 * vfork() routine isn't supported here.
392 #$d_vfork vfork fork /**/
395 * This symbol is defined if this system declares "void (*signal())()" in
396 * signal.h. The old way was to declare it as "int (*signal())()". It
397 * is up to the package author to declare things correctly based on the
400 #$d_voidsig VOIDSIG /**/
403 * This symbol, if defined, indicates that the vprintf routine is available
404 * to printf with a pointer to an argument list. If unavailable, you
405 * may need to write your own, probably in terms of _doprnt().
408 * This symbol is defined if this system has vsprintf() returning type
409 * (char*). The trend seems to be to declare it as "int vsprintf()". It
410 * is up to the package author to declare vsprintf correctly based on the
413 #$d_vprintf VPRINTF /**/
414 #$d_charvspr CHARVSPRINTF /**/
417 * This symbol has a value like gid_t, int, ushort, or whatever type is
418 * used to declare group ids in the kernel.
420 #define GIDTYPE $gidtype /**/
423 * This symbol, if defined, indicates to the C program that it should
427 * This symbol, if defined, indicates to the C program that the length
428 * of directory entry names is provided by a d_namlen field. Otherwise
429 * you need to do strlen() on the d_name field.
431 #$i_dirent I_DIRENT /**/
432 #$d_dirnamlen DIRNAMLEN /**/
435 * This symbol, if defined, indicates to the C program that it should
438 #$i_fcntl I_FCNTL /**/
441 * This symbol, if defined, indicates to the C program that it should
447 * This symbol, if defined, indicates to the C program that it should
451 * This symbol, if defined, indicates to the C program that struct passwd
455 * This symbol, if defined, indicates to the C program that struct passwd
459 #$d_pwquota PWQUOTA /**/
463 * This symbol, if defined, indicates to the C program that it should
466 #$i_sysdir I_SYSDIR /**/
469 * This symbol, if defined, indicates that sys/ioctl.h exists and should
472 #$i_sysioctl I_SYSIOCTL /**/
475 * This symbol, if defined, indicates to the C program that it should
478 #$i_varargs I_VARARGS /**/
481 * This symbol, if defined, indicates to the C program that it should
484 #$i_vfork I_VFORK /**/
487 * This symbol contains the size of an int, so that the C preprocessor
488 * can make decisions based on it.
490 #define INTSIZE $intsize /**/
493 * This symbol contains the number of bits of random number the rand()
494 * function produces. Usual values are 15, 16, and 31.
496 #define RANDBITS $randbits /**/
499 * This symbol contains an list of signal names in order.
501 #define SIG_NAME "`echo $sig_name | sed 's/ /","/g'`" /**/
504 * This symbol is defined to be the type of char used in stdio.h.
505 * It has the values "unsigned char" or "char".
507 #define STDCHAR $stdchar /**/
510 * This symbol has a value like uid_t, int, ushort, or whatever type is
511 * used to declare user ids in the kernel.
513 #define UIDTYPE $uidtype /**/
516 * This symbol indicates how much support of the void type is given by this
517 * compiler. What various bits mean:
519 * 1 = supports declaration of void
520 * 2 = supports arrays of pointers to functions returning void
521 * 4 = supports comparisons between pointers to void functions and
522 * addresses of void functions
524 * The package designer should define VOIDUSED to indicate the requirements
525 * of the package. This can be done either by #defining VOIDUSED before
526 * including config.h, or by defining defvoidused in Myinit.U. If the
527 * latter approach is taken, only those flags will be tested. If the
528 * level of void support necessary is not present, defines void to int.
531 #define VOIDUSED $defvoidused
533 #define VOIDFLAGS $voidflags
534 #if (VOIDFLAGS & VOIDUSED) != VOIDUSED
535 #$define void int /* is void to be avoided? */
536 #$define M_VOID /* Xenix strikes again */
540 * This symbol contains the name of the private library for this package.
541 * The library is private in the sense that it needn't be in anyone's
542 * execution path, but it should be accessible by the world. The program
543 * should be prepared to do ~ expansion.
545 #define PRIVLIB "$privlib" /**/