perl 3.0 patch #1 (combined patch)
[p5sagit/p5-mst-13.2.git] / config.h.SH
1 case $CONFIG in
2 '')
3     if test ! -f config.sh; then
4         ln ../config.sh . || \
5         ln ../../config.sh . || \
6         ln ../../../config.sh . || \
7         (echo "Can't find config.sh."; exit 1)
8         echo "Using config.sh from above..."
9     fi
10     . ./config.sh
11     ;;
12 esac
13 echo "Extracting config.h (with variable substitutions)"
14 sed <<!GROK!THIS! >config.h -e 's!^#undef!/\*#undef!'
15 /* config.h
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
18  * running Configure.
19  *
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.
23  */
24
25
26 /* EUNICE:
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.
32  */
33 /* VMS:
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.
36  */
37 #$d_eunice      EUNICE          /**/
38 #$d_eunice      VMS             /**/
39
40 /* BIN:
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.
44  */
45 #define BIN "$bin"             /**/
46
47 /* BYTEORDER:
48  *      This symbol contains an encoding of the order of bytes in a long.
49  *      Usual values (in octal) are 01234, 04321, 02143, 03412...
50  */
51 #define BYTEORDER 0$byteorder           /**/
52
53 /* CPPSTDIN:
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".
57  */
58 /* CPPMINUS:
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 "".
63  */
64 #define CPPSTDIN "$cppstdin"
65 #define CPPMINUS "$cppminus"
66
67 /* BCMP:
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.
71  */
72 #$d_bcmp        BCMP            /**/
73
74 /* BCOPY:
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  */
78 #$d_bcopy       BCOPY           /**/
79
80 /* CHARSPRINTF:
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
84  *      symbol.
85  */
86 #$d_charsprf    CHARSPRINTF     /**/
87
88 /* CRYPT:
89  *      This symbol, if defined, indicates that the crypt routine is available
90  *      to encrypt passwords and the like.
91  */
92 #$d_crypt       CRYPT           /**/
93
94 /* DOSUID:
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.
106  */
107 #$d_dosuid DOSUID               /**/
108
109 /* DUP2:
110  *      This symbol, if defined, indicates that the dup2 routine is available
111  *      to dup file descriptors.  Otherwise you should use dup().
112  */
113 #$d_dup2        DUP2            /**/
114
115 /* FCHMOD:
116  *      This symbol, if defined, indicates that the fchmod routine is available
117  *      to change mode of opened files.  If unavailable, use chmod().
118  */
119 #$d_fchmod      FCHMOD          /**/
120
121 /* FCHOWN:
122  *      This symbol, if defined, indicates that the fchown routine is available
123  *      to change ownership of opened files.  If unavailable, use chown().
124  */
125 #$d_fchown      FCHOWN          /**/
126
127 /* FCNTL:
128  *      This symbol, if defined, indicates to the C program that it should
129  *      include fcntl.h.
130  */
131 #$d_fcntl       FCNTL           /**/
132
133 /* FLOCK:
134  *      This symbol, if defined, indicates that the flock() routine is
135  *      available to do file locking.
136  */
137 #$d_flock       FLOCK           /**/
138
139 /* GETGROUPS:
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.
143  */
144 #$d_getgrps     GETGROUPS               /**/
145
146 /* GETHOSTENT:
147  *      This symbol, if defined, indicates that the gethostent() routine is
148  *      available to lookup host names in some data base or other.
149  */
150 #$d_gethent     GETHOSTENT              /**/
151
152 /* GETPGRP:
153  *      This symbol, if defined, indicates that the getpgrp() routine is
154  *      available to get the current process group.
155  */
156 #$d_getpgrp     GETPGRP         /**/
157
158 /* GETPRIORITY:
159  *      This symbol, if defined, indicates that the getpriority() routine is
160  *      available to get a process's priority.
161  */
162 #$d_getprior    GETPRIORITY             /**/
163
164 /* HTONS:
165  *      This symbol, if defined, indicates that the htons routine (and friends)
166  *      are available to do network order byte swapping.
167  */
168 /* HTONL:
169  *      This symbol, if defined, indicates that the htonl routine (and friends)
170  *      are available to do network order byte swapping.
171  */
172 /* NTOHS:
173  *      This symbol, if defined, indicates that the ntohs routine (and friends)
174  *      are available to do network order byte swapping.
175  */
176 /* NTOHL:
177  *      This symbol, if defined, indicates that the ntohl routine (and friends)
178  *      are available to do network order byte swapping.
179  */
180 #$d_htonl       HTONS           /**/
181 #$d_htonl       HTONL           /**/
182 #$d_htonl       NTOHS           /**/
183 #$d_htonl       NTOHL           /**/
184
185 /* index:
186  *      This preprocessor symbol is defined, along with rindex, if the system
187  *      uses the strchr and strrchr routines instead.
188  */
189 /* rindex:
190  *      This preprocessor symbol is defined, along with index, if the system
191  *      uses the strchr and strrchr routines instead.
192  */
193 #$d_index       index strchr    /* cultural */
194 #$d_index       rindex strrchr  /*  differences? */
195
196 /* IOCTL:
197  *      This symbol, if defined, indicates that sys/ioctl.h exists and should
198  *      be included.
199  */
200 #$d_ioctl       IOCTL           /**/
201
202 /* KILLPG:
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.
206  */
207 #$d_killpg      KILLPG          /**/
208
209 /* MEMCMP:
210  *      This symbol, if defined, indicates that the memcmp routine is available
211  *      to compare blocks of memory.  If undefined, roll your own.
212  */
213 #$d_memcmp      MEMCMP          /**/
214
215 /* MEMCPY:
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.
219  */
220 #$d_memcpy      MEMCPY          /**/
221
222 /* MKDIR:
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
225  *      exec /bin/mkdir.
226  */
227 #$d_mkdir       MKDIR           /**/
228
229 /* NDBM:
230  *      This symbol, if defined, indicates that ndbm.h exists and should
231  *      be included.
232  */
233 #$d_ndbm        NDBM            /**/
234
235 /* ODBM:
236  *      This symbol, if defined, indicates that dbm.h exists and should
237  *      be included.
238  */
239 #$d_odbm        ODBM            /**/
240
241 /* READDIR:
242  *      This symbol, if defined, indicates that the readdir routine is available
243  *      from the C library to create directories.
244  */
245 #$d_readdir     READDIR         /**/
246
247 /* RENAME:
248  *      This symbol, if defined, indicates that the rename routine is available
249  *      to rename files.  Otherwise you should do the unlink(), link(), unlink()
250  *      trick.
251  */
252 #$d_rename      RENAME          /**/
253
254 /* RMDIR:
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
257  *      exec /bin/rmdir.
258  */
259 #$d_rmdir       RMDIR           /**/
260
261 /* SETEGID:
262  *      This symbol, if defined, indicates that the setegid routine is available
263  *      to change the effective gid of the current program.
264  */
265 #$d_setegid     SETEGID         /**/
266
267 /* SETEUID:
268  *      This symbol, if defined, indicates that the seteuid routine is available
269  *      to change the effective uid of the current program.
270  */
271 #$d_seteuid     SETEUID         /**/
272
273 /* SETPGRP:
274  *      This symbol, if defined, indicates that the setpgrp() routine is
275  *      available to set the current process group.
276  */
277 #$d_setpgrp     SETPGRP         /**/
278
279 /* SETPRIORITY:
280  *      This symbol, if defined, indicates that the setpriority() routine is
281  *      available to set a process's priority.
282  */
283 #$d_setprior    SETPRIORITY             /**/
284
285 /* SETREGID:
286  *      This symbol, if defined, indicates that the setregid routine is
287  *      available to change the real and effective gid of the current program.
288  */
289 /* SETRESGID:
290  *      This symbol, if defined, indicates that the setresgid routine is
291  *      available to change the real, effective and saved gid of the current
292  *      program.
293  */
294 #$d_setregid    SETREGID                /**/
295 #$d_setresgid   SETRESGID               /**/
296
297 /* SETREUID:
298  *      This symbol, if defined, indicates that the setreuid routine is
299  *      available to change the real and effective uid of the current program.
300  */
301 /* SETRESUID:
302  *      This symbol, if defined, indicates that the setresuid routine is
303  *      available to change the real, effective and saved uid of the current
304  *      program.
305  */
306 #$d_setreuid    SETREUID                /**/
307 #$d_setresuid   SETRESUID               /**/
308
309 /* SETRGID:
310  *      This symbol, if defined, indicates that the setrgid routine is available
311  *      to change the real gid of the current program.
312  */
313 #$d_setrgid     SETRGID         /**/
314
315 /* SETRUID:
316  *      This symbol, if defined, indicates that the setruid routine is available
317  *      to change the real uid of the current program.
318  */
319 #$d_setruid     SETRUID         /**/
320
321 /* SOCKET:
322  *      This symbol, if defined, indicates that the BSD socket interface is
323  *      supported.
324  */
325 /* SOCKETPAIR:
326  *      This symbol, if defined, indicates that the BSD socketpair call is
327  *      supported.
328  */
329 /* OLDSOCKET:
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.
332  */
333 #$d_socket      SOCKET          /**/
334
335 #$d_sockpair    SOCKETPAIR      /**/
336
337 #$d_oldsock     OLDSOCKET       /**/
338
339 /* STATBLOCKS:
340  *      This symbol is defined if this system has a stat structure declaring
341  *      st_blksize and st_blocks.
342  */
343 #$d_statblks    STATBLOCKS      /**/
344
345 /* STDSTDIO:
346  *      This symbol is defined if this system has a FILE structure declaring
347  *      _ptr and _cnt in stdio.h.
348  */
349 #$d_stdstdio    STDSTDIO        /**/
350
351 /* STRUCTCOPY:
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.
355  */
356 #$d_strctcpy    STRUCTCOPY      /**/
357
358 /* SYMLINK:
359  *      This symbol, if defined, indicates that the symlink routine is available
360  *      to create symbolic links.
361  */
362 #$d_symlink     SYMLINK         /**/
363
364 /* SYSCALL:
365  *      This symbol, if defined, indicates that the syscall routine is available
366  *      to call arbitrary system calls.  If undefined, that's tough.
367  */
368 #$d_syscall     SYSCALL         /**/
369
370 /* TMINSYS:
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.
375  */
376 /* I_SYSTIME:
377  *      This symbol is defined if this system has the file <sys/time.h>.
378  */
379 #$d_tminsys     TMINSYS         /**/
380 #$i_systime     I_SYSTIME       /**/
381
382 /* VARARGS:
383  *      This symbol, if defined, indicates to the C program that it should
384  *      include varargs.h.
385  */
386 #$d_varargs     VARARGS         /**/
387
388 /* VFORK:
389  *      This symbol, if defined, indicates that vfork() exists.
390  */
391 #$d_vfork       VFORK   /**/
392
393 /* VOIDSIG:
394  *      This symbol is defined if this system declares "void (*signal())()" in
395  *      signal.h.  The old way was to declare it as "int (*signal())()".  It
396  *      is up to the package author to declare things correctly based on the
397  *      symbol.
398  */
399 #$d_voidsig     VOIDSIG         /**/
400
401 /* VPRINTF:
402  *      This symbol, if defined, indicates that the vprintf routine is available
403  *      to printf with a pointer to an argument list.  If unavailable, you
404  *      may need to write your own, probably in terms of _doprnt().
405  */
406 /* CHARVSPRINTF:
407  *      This symbol is defined if this system has vsprintf() returning type
408  *      (char*).  The trend seems to be to declare it as "int vsprintf()".  It
409  *      is up to the package author to declare vsprintf correctly based on the
410  *      symbol.
411  */
412 #$d_vprintf     VPRINTF         /**/
413 #$d_charvspr    CHARVSPRINTF    /**/
414
415 /* GIDTYPE:
416  *      This symbol has a value like gid_t, int, ushort, or whatever type is
417  *      used to declare group ids in the kernel.
418  */
419 #define GIDTYPE $gidtype                /**/
420
421 /* I_DIRENT:
422  *      This symbol, if defined, indicates to the C program that it should
423  *      include dirent.h.
424  */
425 /* DIRNAMLEN:
426  *      This symbol, if defined, indicates to the C program that the length
427  *      of directory entry names is provided by a d_namlen field.  Otherwise
428  *      you need to do strlen() on the d_name field.
429  */
430 #$i_dirent      I_DIRENT                /**/
431 #$d_dirnamlen   DIRNAMLEN               /**/
432
433 /* I_FCNTL:
434  *      This symbol, if defined, indicates to the C program that it should
435  *      include fcntl.h.
436  */
437 #$i_fcntl       I_FCNTL         /**/
438
439 /* I_GRP:
440  *      This symbol, if defined, indicates to the C program that it should
441  *      include grp.h.
442  */
443 #$i_grp I_GRP           /**/
444
445 /* I_NETINET_IN:
446  *      This symbol, if defined, indicates to the C program that it should
447  *      include netinet/in.h.
448  */
449 #$i_niin        I_NETINET_IN            /**/
450
451 /* I_PWD:
452  *      This symbol, if defined, indicates to the C program that it should
453  *      include pwd.h.
454  */
455 /* PWQUOTA:
456  *      This symbol, if defined, indicates to the C program that struct passwd
457  *      contains pw_quota.
458  */
459 /* PWAGE:
460  *      This symbol, if defined, indicates to the C program that struct passwd
461  *      contains pw_age.
462  */
463 /* PWCHANGE:
464  *      This symbol, if defined, indicates to the C program that struct passwd
465  *      contains pw_change.
466  */
467 /* PWCLASS:
468  *      This symbol, if defined, indicates to the C program that struct passwd
469  *      contains pw_class.
470  */
471 /* PWEXPIRE:
472  *      This symbol, if defined, indicates to the C program that struct passwd
473  *      contains pw_expire.
474  */
475 #$i_pwd I_PWD           /**/
476 #$d_pwquota     PWQUOTA         /**/
477 #$d_pwage       PWAGE           /**/
478 #$d_pwage       PWCHANGE        /**/
479 #$d_pwage       PWCLASS         /**/
480 #$d_pwage       PWEXPIRE        /**/
481
482 /* I_SYSDIR:
483  *      This symbol, if defined, indicates to the C program that it should
484  *      include sys/dir.h.
485  */
486 #$i_sysdir      I_SYSDIR                /**/
487
488 /* I_SYSIOCTL:
489  *      This symbol, if defined, indicates that sys/ioctl.h exists and should
490  *      be included.
491  */
492 #$i_sysioctl    I_SYSIOCTL              /**/
493
494 /* I_VARARGS:
495  *      This symbol, if defined, indicates to the C program that it should
496  *      include varargs.h.
497  */
498 #$i_varargs     I_VARARGS               /**/
499
500 /* I_VFORK:
501  *      This symbol, if defined, indicates to the C program that it should
502  *      include vfork.h.
503  */
504 #$i_vfork       I_VFORK         /**/
505
506 /* INTSIZE:
507  *      This symbol contains the size of an int, so that the C preprocessor
508  *      can make decisions based on it.
509  */
510 #define INTSIZE $intsize                /**/
511
512 /* RANDBITS:
513  *      This symbol contains the number of bits of random number the rand()
514  *      function produces.  Usual values are 15, 16, and 31.
515  */
516 #define RANDBITS $randbits              /**/
517
518 /* SIG_NAME:
519  *      This symbol contains an list of signal names in order.
520  */
521 #define SIG_NAME "`echo $sig_name | sed 's/ /","/g'`"           /**/
522
523 /* STDCHAR:
524  *      This symbol is defined to be the type of char used in stdio.h.
525  *      It has the values "unsigned char" or "char".
526  */
527 #define STDCHAR $stdchar        /**/
528
529 /* UIDTYPE:
530  *      This symbol has a value like uid_t, int, ushort, or whatever type is
531  *      used to declare user ids in the kernel.
532  */
533 #define UIDTYPE $uidtype                /**/
534
535 /* VOIDFLAGS:
536  *      This symbol indicates how much support of the void type is given by this
537  *      compiler.  What various bits mean:
538  *
539  *          1 = supports declaration of void
540  *          2 = supports arrays of pointers to functions returning void
541  *          4 = supports comparisons between pointers to void functions and
542  *                  addresses of void functions
543  *
544  *      The package designer should define VOIDUSED to indicate the requirements
545  *      of the package.  This can be done either by #defining VOIDUSED before
546  *      including config.h, or by defining defvoidused in Myinit.U.  If the
547  *      latter approach is taken, only those flags will be tested.  If the
548  *      level of void support necessary is not present, defines void to int.
549  */
550 #ifndef VOIDUSED
551 #define VOIDUSED $defvoidused
552 #endif
553 #define VOIDFLAGS $voidflags
554 #if (VOIDFLAGS & VOIDUSED) != VOIDUSED
555 #$define void int               /* is void to be avoided? */
556 #$define M_VOID         /* Xenix strikes again */
557 #endif
558
559 /* PRIVLIB:
560  *      This symbol contains the name of the private library for this package.
561  *      The library is private in the sense that it needn't be in anyone's
562  *      execution path, but it should be accessible by the world.  The program
563  *      should be prepared to do ~ expansion.
564  */
565 #define PRIVLIB "$privlib"              /**/
566
567 !GROK!THIS!