This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl 1.0 patch 2: Various portability fixes.
[perl5.git] / config.h.SH
CommitLineData
8d063cd8
LW
1case $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 ;;
12esac
13echo "Extracting config.h (with variable substitutions)"
14cat <<!GROK!THIS! >config.h
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
36ce8bec
DFDL
40/* CPP:
41 * This symbol contains the first part of the string which will invoke
42 * the C preprocessor on the standard input and produce to standard
43 * output. Typical value of "cc -E" or "/lib/cpp".
44 */
45/* CPPMINUS:
46 * This symbol contains the second part of the string which will invoke
47 * the C preprocessor on the standard input and produce to standard
48 * output. This symbol will have the value "-" if CPP needs a minus
49 * to specify standard input, otherwise the value is "".
50 */
51#define CPP "$cpp"
52#define CPPMINUS "$cppminus"
53
8d063cd8
LW
54/* CHARSPRINTF:
55 * This symbol is defined if this system declares "char *sprintf()" in
56 * stdio.h. The trend seems to be to declare it as "int sprintf()". It
57 * is up to the package author to declare sprintf correctly based on the
58 * symbol.
59 */
60#$d_charsprf CHARSPRINTF /**/
61
62/* index:
63 * This preprocessor symbol is defined, along with rindex, if the system
64 * uses the strchr and strrchr routines instead.
65 */
66/* rindex:
67 * This preprocessor symbol is defined, along with index, if the system
68 * uses the strchr and strrchr routines instead.
69 */
70#$d_index index strchr /* cultural */
71#$d_index rindex strrchr /* differences? */
72
36ce8bec
DFDL
73/* STDSTDIO:
74 * This symbol is defined if this system has a FILE structure declaring
75 * _ptr and _cnt in stdio.h.
76 */
77#$d_stdstdio STDSTDIO /**/
78
8d063cd8
LW
79/* STRUCTCOPY:
80 * This symbol, if defined, indicates that this C compiler knows how
81 * to copy structures. If undefined, you'll need to use a block copy
82 * routine of some sort instead.
83 */
84#$d_strctcpy STRUCTCOPY /**/
85
86/* vfork:
87 * This symbol, if defined, remaps the vfork routine to fork if the
88 * vfork() routine isn't supported here.
89 */
90#$d_vfork vfork fork /**/
91
36ce8bec
DFDL
92/* VOIDSIG:
93 * This symbol is defined if this system declares "void (*signal())()" in
94 * signal.h. The old way was to declare it as "int (*signal())()". It
95 * is up to the package author to declare things correctly based on the
96 * symbol.
97 */
98#$d_voidsig VOIDSIG /**/
99
100/* STDCHAR:
101 * This symbol is defined to be the type of char used in stdio.h.
102 * It has the values "unsigned char" or "char".
103 */
104#define STDCHAR $stdchar /**/
105
8d063cd8
LW
106/* VOIDFLAGS:
107 * This symbol indicates how much support of the void type is given by this
108 * compiler. What various bits mean:
109 *
110 * 1 = supports declaration of void
111 * 2 = supports arrays of pointers to functions returning void
112 * 4 = supports comparisons between pointers to void functions and
113 * addresses of void functions
114 *
115 * The package designer should define VOIDUSED to indicate the requirements
116 * of the package. This can be done either by #defining VOIDUSED before
117 * including config.h, or by defining defvoidused in Myinit.U. If the
118 * level of void support necessary is not present, defines void to int.
119 */
120#ifndef VOIDUSED
121#define VOIDUSED $defvoidused
122#endif
123#define VOIDFLAGS $voidflags
124#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
125#$define void int /* is void to be avoided? */
126#$define M_VOID /* Xenix strikes again */
127#endif
128
129!GROK!THIS!