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