1: make config.h.SH
2case $CONFIG in
3'')
4    if test ! -f config.sh; then
5	ln ../config.sh . || \
6	ln ../../config.sh . || \
7	ln ../../../config.sh . || \
8	(echo "Can't find config.sh."; exit 1)
9	echo "Using config.sh from above..."
10    fi 2>/dev/null
11    . ./config.sh
12    ;;
13esac
14echo "Extracting config.h (with variable substitutions)"
15sed <<!GROK!THIS! >config.h -e 's!^#undef!/\*#undef!'
16#ifndef config_h
17#define config_h
18/* config.h
19 * This file was produced by running the config.h.SH script, which
20 * gets its values from config.sh, which is generally produced by
21 * running Configure.
22 *
23 * Feel free to modify any of this as the need arises.  Note, however,
24 * that running config.h.SH again will wipe out any changes you've made.
25 * For a more permanent change edit config.sh and rerun config.h.SH.
26 */
27 /*SUPPRESS 460*/
28
29
30/* EUNICE
31 *	This symbol, if defined, indicates that the program is being compiled
32 *	under the EUNICE package under VMS.  The program will need to handle
33 *	things like files that don't go away the first time you unlink them,
34 *	due to version numbering.  It will also need to compensate for lack
35 *	of a respectable link() command.
36 */
37/* VMS
38 *	This symbol, if defined, indicates that the program is running under
39 *	VMS.  It is currently only set in conjunction with the EUNICE symbol.
40 */
41#$d_eunice	EUNICE		/**/
42#$d_eunice	VMS		/**/
43
44/* LOC_SED
45 *     This symbol holds the complete pathname to the sed program.
46 */
47#define LOC_SED "$sed"             /**/
48
49/* BIN
50 *	This symbol holds the name of the directory in which the user wants
51 *	to keep publicly executable images for the package in question.  It
52 *	is most often a local directory such as /usr/local/bin.
53 */
54#define BIN "$bin"             /**/
55
56/* BYTEORDER
57 *	This symbol contains an encoding of the order of bytes in a long.
58 *	Usual values (in hex) are 0x1234, 0x4321, 0x2143, 0x3412...
59 */
60#define BYTEORDER 0x$byteorder		/**/
61
62/* CPPSTDIN
63 *	This symbol contains the first part of the string which will invoke
64 *	the C preprocessor on the standard input and produce to standard
65 *	output.	 Typical value of "cc -E" or "/lib/cpp".
66 */
67/* CPPMINUS
68 *	This symbol contains the second part of the string which will invoke
69 *	the C preprocessor on the standard input and produce to standard
70 *	output.  This symbol will have the value "-" if CPPSTDIN needs a minus
71 *	to specify standard input, otherwise the value is "".
72 */
73#define CPPSTDIN "$cppstdin"
74#define CPPMINUS "$cppminus"
75
76/* HAS_BCMP
77 *	This symbol, if defined, indicates that the bcmp routine is available
78 *	to compare blocks of memory.  If undefined, use memcmp.  If that's
79 *	not available, roll your own.
80 */
81#$d_bcmp	HAS_BCMP		/**/
82
83/* HAS_BCOPY
84 *	This symbol, if defined, indicates that the bcopy routine is available
85 *	to copy blocks of memory.  Otherwise you should probably use memcpy().
86 *	If neither is defined, roll your own.
87 */
88/* SAFE_BCOPY
89 *	This symbol, if defined, indicates that the bcopy routine is available
90 *	to copy potentially overlapping copy blocks of bcopy.  Otherwise you
91 *	should probably use memmove() or memcpy().  If neither is defined,
92 *	roll your own.
93 */
94#$d_bcopy	HAS_BCOPY		/**/
95#$d_safebcpy	SAFE_BCOPY		/**/
96
97/* HAS_BZERO
98 *	This symbol, if defined, indicates that the bzero routine is available
99 *	to zero blocks of memory.  Otherwise you should probably use memset()
100 *	or roll your own.
101 */
102#$d_bzero	HAS_BZERO		/**/
103
104/* CASTNEGFLOAT
105 *	This symbol, if defined, indicates that this C compiler knows how to
106 *	cast negative or large floating point numbers to unsigned longs, ints
107 *	and shorts.
108 */
109/* CASTFLAGS
110 *	This symbol contains flags that say what difficulties the compiler
111 *	has casting odd floating values to unsigned long:
112 *		1 = couldn't cast < 0
113 *		2 = couldn't cast >= 0x80000000
114 */
115#$d_castneg	CASTNEGFLOAT	/**/
116#define	CASTFLAGS $castflags	/**/
117
118/* CHARSPRINTF
119 *	This symbol is defined if this system declares "char *sprintf()" in
120 *	stdio.h.  The trend seems to be to declare it as "int sprintf()".  It
121 *	is up to the package author to declare sprintf correctly based on the
122 *	symbol.
123 */
124#$d_charsprf	CHARSPRINTF 	/**/
125
126/* HAS_CHSIZE
127 *	This symbol, if defined, indicates that the chsize routine is available
128 *	to truncate files.  You might need a -lx to get this routine.
129 */
130#$d_chsize	HAS_CHSIZE		/**/
131
132/* HAS_CRYPT
133 *	This symbol, if defined, indicates that the crypt routine is available
134 *	to encrypt passwords and the like.
135 */
136#$d_crypt	HAS_CRYPT		/**/
137
138/* CSH
139 *	This symbol, if defined, indicates that the C-shell exists.
140 *	If defined, contains the full pathname of csh.
141 */
142#$d_csh CSH "$csh"		/**/
143
144/* DOSUID
145 *	This symbol, if defined, indicates that the C program should
146 *	check the script that it is executing for setuid/setgid bits, and
147 *	attempt to emulate setuid/setgid on systems that have disabled
148 *	setuid #! scripts because the kernel can't do it securely.
149 *	It is up to the package designer to make sure that this emulation
150 *	is done securely.  Among other things, it should do an fstat on
151 *	the script it just opened to make sure it really is a setuid/setgid
152 *	script, it should make sure the arguments passed correspond exactly
153 *	to the argument on the #! line, and it should not trust any
154 *	subprocesses to which it must pass the filename rather than the
155 *	file descriptor of the script to be executed.
156 */
157#$d_dosuid DOSUID		/**/
158
159/* HAS_DUP2
160 *	This symbol, if defined, indicates that the dup2 routine is available
161 *	to dup file descriptors.  Otherwise you should use dup().
162 */
163#$d_dup2	HAS_DUP2		/**/
164
165/* HAS_FCHMOD
166 *	This symbol, if defined, indicates that the fchmod routine is available
167 *	to change mode of opened files.  If unavailable, use chmod().
168 */
169#$d_fchmod	HAS_FCHMOD		/**/
170
171/* HAS_FCHOWN
172 *	This symbol, if defined, indicates that the fchown routine is available
173 *	to change ownership of opened files.  If unavailable, use chown().
174 */
175#$d_fchown	HAS_FCHOWN		/**/
176
177/* HAS_FCNTL
178 *	This symbol, if defined, indicates to the C program that
179 *	the fcntl() function exists.
180 */
181#$d_fcntl	HAS_FCNTL		/**/
182
183/* FLEXFILENAMES
184 *	This symbol, if defined, indicates that the system supports filenames
185 *	longer than 14 characters.
186 */
187#$d_flexfnam	FLEXFILENAMES		/**/
188
189/* HAS_FLOCK
190 *	This symbol, if defined, indicates that the flock() routine is
191 *	available to do file locking.
192 */
193#$d_flock	HAS_FLOCK		/**/
194
195/* HAS_GETGROUPS
196 *	This symbol, if defined, indicates that the getgroups() routine is
197 *	available to get the list of process groups.  If unavailable, multiple
198 *	groups are probably not supported.
199 */
200#$d_getgrps	HAS_GETGROUPS		/**/
201
202/* HAS_GETHOSTENT
203 *	This symbol, if defined, indicates that the gethostent() routine is
204 *	available to lookup host names in some data base or other.
205 */
206#$d_gethent	HAS_GETHOSTENT		/**/
207
208/* HAS_GETPGRP
209 *	This symbol, if defined, indicates that the getpgrp() routine is
210 *	available to get the current process group.
211 */
212#$d_getpgrp	HAS_GETPGRP		/**/
213
214/* HAS_GETPGRP2
215 *	This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
216 *	routine is available to get the current process group.
217 */
218#$d_getpgrp2	HAS_GETPGRP2		/**/
219
220/* HAS_GETPRIORITY
221 *	This symbol, if defined, indicates that the getpriority() routine is
222 *	available to get a process's priority.
223 */
224#$d_getprior	HAS_GETPRIORITY		/**/
225
226/* HAS_HTONS
227 *	This symbol, if defined, indicates that the htons routine (and friends)
228 *	are available to do network order byte swapping.
229 */
230/* HAS_HTONL
231 *	This symbol, if defined, indicates that the htonl routine (and friends)
232 *	are available to do network order byte swapping.
233 */
234/* HAS_NTOHS
235 *	This symbol, if defined, indicates that the ntohs routine (and friends)
236 *	are available to do network order byte swapping.
237 */
238/* HAS_NTOHL
239 *	This symbol, if defined, indicates that the ntohl routine (and friends)
240 *	are available to do network order byte swapping.
241 */
242#$d_htonl	HAS_HTONS	/**/
243#$d_htonl	HAS_HTONL	/**/
244#$d_htonl	HAS_NTOHS	/**/
245#$d_htonl	HAS_NTOHL	/**/
246
247/* index
248 *	This preprocessor symbol is defined, along with rindex, if the system
249 *	uses the strchr and strrchr routines instead.
250 */
251/* rindex
252 *	This preprocessor symbol is defined, along with index, if the system
253 *	uses the strchr and strrchr routines instead.
254 */
255#$d_index	index strchr	/* cultural */
256#$d_index	rindex strrchr	/*  differences? */
257
258/* HAS_ISASCII
259 *	This symbol, if defined, indicates that the isascii routine is available
260 *	to test characters for asciiness.
261 */
262#$d_isascii	HAS_ISASCII		/**/
263
264/* HAS_KILLPG
265 *	This symbol, if defined, indicates that the killpg routine is available
266 *	to kill process groups.  If unavailable, you probably should use kill
267 *	with a negative process number.
268 */
269#$d_killpg	HAS_KILLPG		/**/
270
271/* HAS_LSTAT
272 *	This symbol, if defined, indicates that the lstat() routine is
273 *	available to stat symbolic links.
274 */
275#$d_lstat	HAS_LSTAT		/**/
276
277/* HAS_MEMCMP
278 *	This symbol, if defined, indicates that the memcmp routine is available
279 *	to compare blocks of memory.  If undefined, roll your own.
280 */
281#$d_memcmp	HAS_MEMCMP		/**/
282
283/* HAS_MEMCPY
284 *	This symbol, if defined, indicates that the memcpy routine is available
285 *	to copy blocks of memory.  Otherwise you should probably use bcopy().
286 *	If neither is defined, roll your own.
287 */
288/* SAFE_MEMCPY
289 *	This symbol, if defined, indicates that the memcpy routine is available
290 *	to copy potentially overlapping copy blocks of memory.  Otherwise you
291 *	should probably use memmove() or bcopy().  If neither is defined,
292 *	roll your own.
293 */
294#$d_memcpy	HAS_MEMCPY		/**/
295#$d_safemcpy	SAFE_MEMCPY		/**/
296
297/* HAS_MEMMOVE
298 *	This symbol, if defined, indicates that the memmove routine is available
299 *	to move potentially overlapping blocks of memory.  Otherwise you
300 *	should use bcopy() or roll your own.
301 */
302#$d_memmove	HAS_MEMMOVE		/**/
303
304/* HAS_MEMSET
305 *	This symbol, if defined, indicates that the memset routine is available
306 *	to set a block of memory to a character.  If undefined, roll your own.
307 */
308#$d_memset	HAS_MEMSET		/**/
309
310/* HAS_MKDIR
311 *	This symbol, if defined, indicates that the mkdir routine is available
312 *	to create directories.  Otherwise you should fork off a new process to
313 *	exec /bin/mkdir.
314 */
315#$d_mkdir	HAS_MKDIR		/**/
316
317/* HAS_MSG
318 *	This symbol, if defined, indicates that the entire msg*(2) library is
319 *	supported.
320 */
321#$d_msg	HAS_MSG		/**/
322
323/* HAS_MSGCTL
324 *	This symbol, if defined, indicates that the msgctl() routine is
325 *	available to control message passing.
326 */
327#$d_msgctl	HAS_MSGCTL		/**/
328
329/* HAS_MSGGET
330 *	This symbol, if defined, indicates that the msgget() routine is
331 *	available to get messages.
332 */
333#$d_msgget	HAS_MSGGET		/**/
334
335/* HAS_MSGRCV
336 *	This symbol, if defined, indicates that the msgrcv() routine is
337 *	available to receive messages.
338 */
339#$d_msgrcv	HAS_MSGRCV		/**/
340
341/* HAS_MSGSND
342 *	This symbol, if defined, indicates that the msgsnd() routine is
343 *	available to send messages.
344 */
345#$d_msgsnd	HAS_MSGSND		/**/
346
347/* HAS_NDBM
348 *	This symbol, if defined, indicates that ndbm.h exists and should
349 *	be included.
350 */
351#$d_ndbm	HAS_NDBM		/**/
352
353/* HAS_ODBM
354 *	This symbol, if defined, indicates that dbm.h exists and should
355 *	be included.
356 */
357#$d_odbm	HAS_ODBM		/**/
358
359/* HAS_OPEN3
360 *	This manifest constant lets the C program know that the three
361 *	argument form of open(2) is available.
362 */
363#$d_open3	HAS_OPEN3		/**/
364
365/* HAS_READDIR
366 *	This symbol, if defined, indicates that the readdir routine is available
367 *	from the C library to read directories.
368 */
369#$d_readdir	HAS_READDIR		/**/
370
371/* HAS_RENAME
372 *	This symbol, if defined, indicates that the rename routine is available
373 *	to rename files.  Otherwise you should do the unlink(), link(), unlink()
374 *	trick.
375 */
376#$d_rename	HAS_RENAME		/**/
377
378/* HAS_REWINDDIR
379 *	This symbol, if defined, indicates that the rewindir routine is
380 *	available to rewind directories.
381 */
382#$d_rewindir	HAS_REWINDDIR		/**/
383
384/* HAS_RMDIR
385 *	This symbol, if defined, indicates that the rmdir routine is available
386 *	to remove directories.  Otherwise you should fork off a new process to
387 *	exec /bin/rmdir.
388 */
389#$d_rmdir	HAS_RMDIR		/**/
390
391/* HAS_SEEKDIR
392 *	This symbol, if defined, indicates that the seekdir routine is
393 *	available to seek into directories.
394 */
395#$d_seekdir	HAS_SEEKDIR		/**/
396
397/* HAS_SELECT
398 *	This symbol, if defined, indicates that the select() subroutine
399 *	exists.
400 */
401#$d_select	HAS_SELECT	/**/
402
403/* HAS_SEM
404 *	This symbol, if defined, indicates that the entire sem*(2) library is
405 *	supported.
406 */
407#$d_sem	HAS_SEM		/**/
408
409/* HAS_SEMCTL
410 *	This symbol, if defined, indicates that the semctl() routine is
411 *	available to control semaphores.
412 */
413#$d_semctl	HAS_SEMCTL		/**/
414
415/* HAS_SEMGET
416 *	This symbol, if defined, indicates that the semget() routine is
417 *	available to get semaphores ids.
418 */
419#$d_semget	HAS_SEMGET		/**/
420
421/* HAS_SEMOP
422 *	This symbol, if defined, indicates that the semop() routine is
423 *	available to perform semaphore operations.
424 */
425#$d_semop	HAS_SEMOP		/**/
426
427/* HAS_SETEGID
428 *	This symbol, if defined, indicates that the setegid routine is available
429 *	to change the effective gid of the current program.
430 */
431#$d_setegid	HAS_SETEGID		/**/
432
433/* HAS_SETEUID
434 *	This symbol, if defined, indicates that the seteuid routine is available
435 *	to change the effective uid of the current program.
436 */
437#$d_seteuid	HAS_SETEUID		/**/
438
439/* HAS_SETPGRP
440 *	This symbol, if defined, indicates that the setpgrp() routine is
441 *	available to set the current process group.
442 */
443#$d_setpgrp	HAS_SETPGRP		/**/
444
445/* HAS_SETPGRP2
446 *	This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
447 *	routine is available to set the current process group.
448 */
449#$d_setpgrp2	HAS_SETPGRP2		/**/
450
451/* HAS_SETPRIORITY
452 *	This symbol, if defined, indicates that the setpriority() routine is
453 *	available to set a process's priority.
454 */
455#$d_setprior	HAS_SETPRIORITY		/**/
456
457/* HAS_SETREGID
458 *	This symbol, if defined, indicates that the setregid routine is
459 *	available to change the real and effective gid of the current program.
460 */
461/* HAS_SETRESGID
462 *	This symbol, if defined, indicates that the setresgid routine is
463 *	available to change the real, effective and saved gid of the current
464 *	program.
465 */
466#$d_setregid	HAS_SETREGID		/**/
467#$d_setresgid	HAS_SETRESGID		/**/
468
469/* HAS_SETREUID
470 *	This symbol, if defined, indicates that the setreuid routine is
471 *	available to change the real and effective uid of the current program.
472 */
473/* HAS_SETRESUID
474 *	This symbol, if defined, indicates that the setresuid routine is
475 *	available to change the real, effective and saved uid of the current
476 *	program.
477 */
478#$d_setreuid	HAS_SETREUID		/**/
479#$d_setresuid	HAS_SETRESUID		/**/
480
481/* HAS_SETRGID
482 *	This symbol, if defined, indicates that the setrgid routine is available
483 *	to change the real gid of the current program.
484 */
485#$d_setrgid	HAS_SETRGID		/**/
486
487/* HAS_SETRUID
488 *	This symbol, if defined, indicates that the setruid routine is available
489 *	to change the real uid of the current program.
490 */
491#$d_setruid	HAS_SETRUID		/**/
492
493/* HAS_SHM
494 *	This symbol, if defined, indicates that the entire shm*(2) library is
495 *	supported.
496 */
497#$d_shm	HAS_SHM		/**/
498
499/* HAS_SHMAT
500 *	This symbol, if defined, indicates that the shmat() routine is
501 *	available to attach a shared memory segment.
502 */
503/* VOID_SHMAT
504 *	This symbol, if defined, indicates that the shmat() routine
505 *	returns a pointer of type void*.
506 */
507#$d_shmat	HAS_SHMAT		/**/
508
509#$d_voidshmat	VOIDSHMAT		/**/
510
511/* HAS_SHMCTL
512 *	This symbol, if defined, indicates that the shmctl() routine is
513 *	available to control a shared memory segment.
514 */
515#$d_shmctl	HAS_SHMCTL		/**/
516
517/* HAS_SHMDT
518 *	This symbol, if defined, indicates that the shmdt() routine is
519 *	available to detach a shared memory segment.
520 */
521#$d_shmdt	HAS_SHMDT		/**/
522
523/* HAS_SHMGET
524 *	This symbol, if defined, indicates that the shmget() routine is
525 *	available to get a shared memory segment id.
526 */
527#$d_shmget	HAS_SHMGET		/**/
528
529/* HAS_SOCKET
530 *	This symbol, if defined, indicates that the BSD socket interface is
531 *	supported.
532 */
533/* HAS_SOCKETPAIR
534 *	This symbol, if defined, indicates that the BSD socketpair call is
535 *	supported.
536 */
537/* OLDSOCKET
538 *	This symbol, if defined, indicates that the 4.1c BSD socket interface
539 *	is supported instead of the 4.2/4.3 BSD socket interface.
540 */
541#$d_socket	HAS_SOCKET		/**/
542
543#$d_sockpair	HAS_SOCKETPAIR	/**/
544
545#$d_oldsock	OLDSOCKET	/**/
546
547/* STATBLOCKS
548 *	This symbol is defined if this system has a stat structure declaring
549 *	st_blksize and st_blocks.
550 */
551#$d_statblks	STATBLOCKS 	/**/
552
553/* STDSTDIO
554 *	This symbol is defined if this system has a FILE structure declaring
555 *	_ptr and _cnt in stdio.h.
556 */
557#$d_stdstdio	STDSTDIO 	/**/
558
559/* STRUCTCOPY
560 *	This symbol, if defined, indicates that this C compiler knows how
561 *	to copy structures.  If undefined, you'll need to use a block copy
562 *	routine of some sort instead.
563 */
564#$d_strctcpy	STRUCTCOPY	/**/
565
566/* HAS_STRERROR
567 *	This symbol, if defined, indicates that the strerror() routine is
568 *	available to translate error numbers to strings.
569 */
570#$d_strerror	HAS_STRERROR		/**/
571
572/* HAS_SYMLINK
573 *	This symbol, if defined, indicates that the symlink routine is available
574 *	to create symbolic links.
575 */
576#$d_symlink	HAS_SYMLINK		/**/
577
578/* HAS_SYSCALL
579 *	This symbol, if defined, indicates that the syscall routine is available
580 *	to call arbitrary system calls.  If undefined, that's tough.
581 */
582#$d_syscall	HAS_SYSCALL		/**/
583
584/* HAS_TELLDIR
585 *	This symbol, if defined, indicates that the telldir routine is
586 *	available to tell your location in directories.
587 */
588#$d_telldir	HAS_TELLDIR		/**/
589
590/* HAS_TRUNCATE
591 *	This symbol, if defined, indicates that the truncate routine is
592 *	available to truncate files.
593 */
594#$d_truncate	HAS_TRUNCATE		/**/
595
596/* HAS_VFORK
597 *	This symbol, if defined, indicates that vfork() exists.
598 */
599#$d_vfork	HAS_VFORK	/**/
600
601/* VOIDSIG
602 *	This symbol is defined if this system declares "void (*signal())()" in
603 *	signal.h.  The old way was to declare it as "int (*signal())()".  It
604 *	is up to the package author to declare things correctly based on the
605 *	symbol.
606 */
607/* TO_SIGNAL
608 *	This symbol's value is either "void" or "int", corresponding to the
609 *	appropriate return "type" of a signal handler.  Thus, one can declare
610 *	a signal handler using "TO_SIGNAL (*handler())()", and define the
611 *	handler using "TO_SIGNAL handler(sig)".
612 */
613#$d_voidsig	VOIDSIG 	/**/
614#$define	TO_SIGNAL	$d_tosignal 	/**/
615
616/* HASVOLATILE
617 *	This symbol, if defined, indicates that this C compiler knows about
618 *	the volatile declaration.
619 */
620#$d_volatile	HASVOLATILE	/**/
621
622/* HAS_VPRINTF
623 *	This symbol, if defined, indicates that the vprintf routine is available
624 *	to printf with a pointer to an argument list.  If unavailable, you
625 *	may need to write your own, probably in terms of _doprnt().
626 */
627/* CHARVSPRINTF
628 *	This symbol is defined if this system has vsprintf() returning type
629 *	(char*).  The trend seems to be to declare it as "int vsprintf()".  It
630 *	is up to the package author to declare vsprintf correctly based on the
631 *	symbol.
632 */
633#$d_vprintf	HAS_VPRINTF	/**/
634#$d_charvspr	CHARVSPRINTF 	/**/
635
636/* HAS_WAIT4
637 *	This symbol, if defined, indicates that wait4() exists.
638 */
639#$d_wait4	HAS_WAIT4	/**/
640
641/* HAS_WAITPID
642 *	This symbol, if defined, indicates that waitpid() exists.
643 */
644#$d_waitpid	HAS_WAITPID	/**/
645
646/* GIDTYPE
647 *	This symbol has a value like gid_t, int, ushort, or whatever type is
648 *	used to declare group ids in the kernel.
649 */
650#define GIDTYPE $gidtype		/**/
651
652/* GROUPSTYPE
653 *	This symbol has a value like gid_t, int, ushort, or whatever type is
654 *	used in the return value of getgroups().
655 */
656#define GROUPSTYPE $groupstype		/**/
657
658/* I_FCNTL
659 *	This manifest constant tells the C program to include <fcntl.h>.
660 */
661#$i_fcntl	I_FCNTL	/**/
662
663/* I_GDBM
664 *	This symbol, if defined, indicates that gdbm.h exists and should
665 *	be included.
666 */
667#$i_gdbm	I_GDBM		/**/
668
669/* I_GRP
670 *	This symbol, if defined, indicates to the C program that it should
671 *	include grp.h.
672 */
673#$i_grp	I_GRP		/**/
674
675/* I_NETINET_IN
676 *	This symbol, if defined, indicates to the C program that it should
677 *	include netinet/in.h.
678 */
679/* I_SYS_IN
680 *	This symbol, if defined, indicates to the C program that it should
681 *	include sys/in.h.
682 */
683#$i_niin	I_NETINET_IN		/**/
684#$i_sysin	I_SYS_IN		/**/
685
686/* I_PWD
687 *	This symbol, if defined, indicates to the C program that it should
688 *	include pwd.h.
689 */
690/* PWQUOTA
691 *	This symbol, if defined, indicates to the C program that struct passwd
692 *	contains pw_quota.
693 */
694/* PWAGE
695 *	This symbol, if defined, indicates to the C program that struct passwd
696 *	contains pw_age.
697 */
698/* PWCHANGE
699 *	This symbol, if defined, indicates to the C program that struct passwd
700 *	contains pw_change.
701 */
702/* PWCLASS
703 *	This symbol, if defined, indicates to the C program that struct passwd
704 *	contains pw_class.
705 */
706/* PWEXPIRE
707 *	This symbol, if defined, indicates to the C program that struct passwd
708 *	contains pw_expire.
709 */
710/* PWCOMMENT
711 *	This symbol, if defined, indicates to the C program that struct passwd
712 *	contains pw_comment.
713 */
714#$i_pwd	I_PWD		/**/
715#$d_pwquota	PWQUOTA		/**/
716#$d_pwage	PWAGE		/**/
717#$d_pwchange	PWCHANGE	/**/
718#$d_pwclass	PWCLASS		/**/
719#$d_pwexpire	PWEXPIRE	/**/
720#$d_pwcomment	PWCOMMENT	/**/
721
722/* I_SYS_FILE
723 *	This manifest constant tells the C program to include <sys/file.h>.
724 */
725#$i_sys_file	I_SYS_FILE	/**/
726
727/* I_SYSIOCTL
728 *	This symbol, if defined, indicates that sys/ioctl.h exists and should
729 *	be included.
730 */
731#$i_sysioctl	I_SYSIOCTL		/**/
732
733/* I_TIME
734 *	This symbol is defined if the program should include <time.h>.
735 */
736/* I_SYS_TIME
737 *	This symbol is defined if the program should include <sys/time.h>.
738 */
739/* SYSTIMEKERNEL
740 *	This symbol is defined if the program should include <sys/time.h>
741 *	with KERNEL defined.
742 */
743/* I_SYS_SELECT
744 *	This symbol is defined if the program should include <sys/select.h>.
745 */
746#$i_time	I_TIME	 	/**/
747#$i_sys_time	I_SYS_TIME 	/**/
748#$d_systimekernel	SYSTIMEKERNEL 	/**/
749#$i_sys_select	I_SYS_SELECT 	/**/
750
751/* I_UTIME
752 *	This symbol, if defined, indicates to the C program that it should
753 *	include utime.h.
754 */
755#$i_utime	I_UTIME		/**/
756
757/* I_VARARGS
758 *	This symbol, if defined, indicates to the C program that it should
759 *	include varargs.h.
760 */
761#$i_varargs	I_VARARGS		/**/
762
763/* I_VFORK
764 *	This symbol, if defined, indicates to the C program that it should
765 *	include vfork.h.
766 */
767#$i_vfork	I_VFORK		/**/
768
769/* INTSIZE
770 *	This symbol contains the size of an int, so that the C preprocessor
771 *	can make decisions based on it.
772 */
773#define INTSIZE $intsize		/**/
774
775/* I_DIRENT
776 *	This symbol, if defined, indicates that the program should use the
777 *	P1003-style directory routines, and include <dirent.h>.
778 */
779/* I_SYS_DIR
780 *	This symbol, if defined, indicates that the program should use the
781 *	directory functions by including <sys/dir.h>.
782 */
783/* I_NDIR
784 *	This symbol, if defined, indicates that the program should include the
785 *	system's version of ndir.h, rather than the one with this package.
786 */
787/* I_SYS_NDIR
788 *	This symbol, if defined, indicates that the program should include the
789 *	system's version of sys/ndir.h, rather than the one with this package.
790 */
791/* I_MY_DIR
792 *	This symbol, if defined, indicates that the program should compile
793 *	the ndir.c code provided with the package.
794 */
795/* DIRNAMLEN
796 *	This symbol, if defined, indicates to the C program that the length
797 *	of directory entry names is provided by a d_namlen field.  Otherwise
798 *	you need to do strlen() on the d_name field.
799 */
800#$i_dirent	I_DIRENT	/**/
801#$i_sys_dir	I_SYS_DIR	/**/
802#$i_ndir	I_NDIR		/**/
803#$i_sys_ndir	I_SYS_NDIR	/**/
804#$i_my_dir	I_MY_DIR	/**/
805#$d_dirnamlen	DIRNAMLEN	/**/
806
807/* MYMALLOC
808 *	This symbol, if defined, indicates that we're using our own malloc.
809 */
810/* MALLOCPTRTYPE
811 *	This symbol defines the kind of ptr returned by malloc and realloc.
812 */
813#$d_mymalloc MYMALLOC			/**/
814
815#define MALLOCPTRTYPE $mallocptrtype         /**/
816
817
818/* RANDBITS
819 *	This symbol contains the number of bits of random number the rand()
820 *	function produces.  Usual values are 15, 16, and 31.
821 */
822#define RANDBITS $randbits		/**/
823
824/* SCRIPTDIR
825 *	This symbol holds the name of the directory in which the user wants
826 *	to keep publicly executable scripts for the package in question.  It
827 *	is often a directory that is mounted across diverse architectures.
828 */
829#define SCRIPTDIR "$scriptdir"             /**/
830
831/* SIG_NAME
832 *	This symbol contains an list of signal names in order.
833 */
834#define SIG_NAME "`echo $sig_name | sed 's/ /","/g'`"		/**/
835
836/* STDCHAR
837 *	This symbol is defined to be the type of char used in stdio.h.
838 *	It has the values "unsigned char" or "char".
839 */
840#define STDCHAR $stdchar	/**/
841
842/* UIDTYPE
843 *	This symbol has a value like uid_t, int, ushort, or whatever type is
844 *	used to declare user ids in the kernel.
845 */
846#define UIDTYPE $uidtype		/**/
847
848/* VOIDHAVE
849 *	This symbol indicates how much support of the void type is given by this
850 *	compiler.  What various bits mean:
851 *
852 *	    1 = supports declaration of void
853 *	    2 = supports arrays of pointers to functions returning void
854 *	    4 = supports comparisons between pointers to void functions and
855 *		    addresses of void functions
856 *
857 *	The package designer should define VOIDWANT to indicate the requirements
858 *	of the package.  This can be done either by #defining VOIDWANT before
859 *	including config.h, or by defining voidwant in Myinit.U.  If the level
860 *	of void support necessary is not present, config.h defines void to "int",
861 *	VOID to the empty string, and VOIDP to "char *".
862 */
863/* void
864 *	This symbol is used for void casts.  On implementations which support
865 *	void appropriately, its value is "void".  Otherwise, its value maps
866 *	to "int".
867 */
868/* VOID
869 *	This symbol's value is "void" if the implementation supports void
870 *	appropriately.  Otherwise, its value is the empty string.  The primary
871 *	use of this symbol is in specifying void parameter lists for function
872 *	prototypes.
873 */
874/* VOIDP
875 *	This symbol is used for casting generic pointers.  On implementations
876 *	which support void appropriately, its value is "void *".  Otherwise,
877 *	its value is "char *".
878 */
879#ifndef VOIDWANT
880#define VOIDWANT $voidwant
881#endif
882#define VOIDHAVE $voidhave
883#if (VOIDHAVE & VOIDWANT) != VOIDWANT
884#define void int		/* is void to be avoided? */
885#define VOID
886#define VOIDP (char *)
887#define M_VOID		/* Xenix strikes again */
888#else
889#define VOID void
890#define VOIDP (void *)
891#endif
892
893/* PRIVLIB
894 *	This symbol contains the name of the private library for this package.
895 *	The library is private in the sense that it needn't be in anyone's
896 *	execution path, but it should be accessible by the world.  The program
897 *	should be prepared to do ~ expansion.
898 */
899#define PRIVLIB "$privlib"		/**/
900
901#endif
902!GROK!THIS!
903