This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl 2.0 patch 1: removed redundant debugging code in regexp.c
[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
378cc40b 10 . ./config.sh
8d063cd8
LW
11 ;;
12esac
13echo "Extracting config.h (with variable substitutions)"
13281fa4 14sed <<!GROK!THIS! >config.h -e 's!^#undef!/\*#undef!'
8d063cd8
LW
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
378cc40b 40/* CPPSTDIN:
36ce8bec
DFDL
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
378cc40b 48 * output. This symbol will have the value "-" if CPPSTDIN needs a minus
36ce8bec
DFDL
49 * to specify standard input, otherwise the value is "".
50 */
378cc40b 51#define CPPSTDIN "$cppstdin"
36ce8bec
DFDL
52#define CPPMINUS "$cppminus"
53
c51b80d1
LW
54/* BCOPY:
55 * This symbol, if defined, indicates that the bcopy routine is available
56 * to copy blocks of memory. Otherwise you should probably use memcpy().
57 */
58#$d_bcopy BCOPY /**/
59
8d063cd8
LW
60/* CHARSPRINTF:
61 * This symbol is defined if this system declares "char *sprintf()" in
62 * stdio.h. The trend seems to be to declare it as "int sprintf()". It
63 * is up to the package author to declare sprintf correctly based on the
64 * symbol.
65 */
66#$d_charsprf CHARSPRINTF /**/
67
2e1b3b7e
KK
68/* CRYPT:
69 * This symbol, if defined, indicates that the crypt routine is available
70 * to encrypt passwords and the like.
71 */
72#$d_crypt CRYPT /**/
73
13281fa4
LW
74/* DOSUID:
75 * This symbol, if defined, indicates that the C program should
76 * check the script that it is executing for setuid/setgid bits, and
77 * attempt to emulate setuid/setgid on systems that have disabled
78 * setuid #! scripts because the kernel can't do it securely.
79 * It is up to the package designer to make sure that this emulation
80 * is done securely. Among other things, it should do an fstat on
81 * the script it just opened to make sure it really is a setuid/setgid
82 * script, it should make sure the arguments passed correspond exactly
83 * to the argument on the #! line, and it should not trust any
84 * subprocesses to which it must pass the filename rather than the
85 * file descriptor of the script to be executed.
86 */
87#$d_dosuid DOSUID /**/
88
378cc40b
LW
89/* FCHMOD:
90 * This symbol, if defined, indicates that the fchmod routine is available
91 * to change mode of opened files. If unavailable, use chmod().
92 */
93#$d_fchmod FCHMOD /**/
94
95/* FCHOWN:
96 * This symbol, if defined, indicates that the fchown routine is available
97 * to change ownership of opened files. If unavailable, use chown().
98 */
99#$d_fchown FCHOWN /**/
100
101/* GETGROUPS:
102 * This symbol, if defined, indicates that the getgroups() routine is
103 * available to get the list of process groups. If unavailable, multiple
104 * groups are probably not supported.
105 */
106#$d_getgrps GETGROUPS /**/
107
8d063cd8
LW
108/* index:
109 * This preprocessor symbol is defined, along with rindex, if the system
110 * uses the strchr and strrchr routines instead.
111 */
112/* rindex:
113 * This preprocessor symbol is defined, along with index, if the system
114 * uses the strchr and strrchr routines instead.
115 */
116#$d_index index strchr /* cultural */
117#$d_index rindex strrchr /* differences? */
118
378cc40b
LW
119/* KILLPG:
120 * This symbol, if defined, indicates that the killpg routine is available
121 * to kill process groups. If unavailable, you probably should use kill
122 * with a negative process number.
123 */
124#$d_killpg KILLPG /**/
125
126/* MEMCPY:
127 * This symbol, if defined, indicates that the memcpy routine is available
128 * to copy blocks of memory. Otherwise you should probably use bcopy().
129 * If neither is defined, roll your own.
130 */
131#$d_memcpy MEMCPY /**/
132
133/* RENAME:
134 * This symbol, if defined, indicates that the rename routine is available
135 * to rename files. Otherwise you should do the unlink(), link(), unlink()
136 * trick.
137 */
138#$d_rename RENAME /**/
139
140/* SETEGID:
141 * This symbol, if defined, indicates that the setegid routine is available
142 * to change the effective gid of the current program.
143 */
144#$d_setegid SETEGID /**/
145
146/* SETEUID:
147 * This symbol, if defined, indicates that the seteuid routine is available
148 * to change the effective uid of the current program.
149 */
150#$d_seteuid SETEUID /**/
151
152/* SETRGID:
153 * This symbol, if defined, indicates that the setrgid routine is available
154 * to change the real gid of the current program.
155 */
156#$d_setrgid SETRGID /**/
157
158/* SETRUID:
159 * This symbol, if defined, indicates that the setruid routine is available
160 * to change the real uid of the current program.
161 */
162#$d_setruid SETRUID /**/
163
c51b80d1
LW
164/* STATBLOCKS:
165 * This symbol is defined if this system has a stat structure declaring
166 * st_blksize and st_blocks.
167 */
168#$d_statblks STATBLOCKS /**/
169
36ce8bec
DFDL
170/* STDSTDIO:
171 * This symbol is defined if this system has a FILE structure declaring
172 * _ptr and _cnt in stdio.h.
173 */
174#$d_stdstdio STDSTDIO /**/
175
378cc40b
LW
176/* STRCSPN:
177 * This symbol, if defined, indicates that the strcspn routine is available
178 * to scan strings.
179 */
180#$d_strcspn STRCSPN /**/
181
8d063cd8
LW
182/* STRUCTCOPY:
183 * This symbol, if defined, indicates that this C compiler knows how
184 * to copy structures. If undefined, you'll need to use a block copy
185 * routine of some sort instead.
186 */
187#$d_strctcpy STRUCTCOPY /**/
188
2e1b3b7e
KK
189/* SYMLINK:
190 * This symbol, if defined, indicates that the symlink routine is available
191 * to create symbolic links.
192 */
193#$d_symlink SYMLINK /**/
194
c51b80d1
LW
195/* TMINSYS:
196 * This symbol is defined if this system declares "struct tm" in
197 * in <sys/time.h> rather than <time.h>. We can't just say
198 * -I/usr/include/sys because some systems have both time files, and
199 * the -I trick gets the wrong one.
200 */
201#$d_tminsys TMINSYS /**/
202
8d063cd8
LW
203/* vfork:
204 * This symbol, if defined, remaps the vfork routine to fork if the
205 * vfork() routine isn't supported here.
206 */
207#$d_vfork vfork fork /**/
208
36ce8bec
DFDL
209/* VOIDSIG:
210 * This symbol is defined if this system declares "void (*signal())()" in
211 * signal.h. The old way was to declare it as "int (*signal())()". It
212 * is up to the package author to declare things correctly based on the
213 * symbol.
214 */
215#$d_voidsig VOIDSIG /**/
216
378cc40b
LW
217/* GIDTYPE:
218 * This symbol has a value like gid_t, int, ushort, or whatever type is
219 * used to declare group ids in the kernel.
220 */
221#define GIDTYPE $gidtype /**/
222
36ce8bec
DFDL
223/* STDCHAR:
224 * This symbol is defined to be the type of char used in stdio.h.
225 * It has the values "unsigned char" or "char".
226 */
227#define STDCHAR $stdchar /**/
228
378cc40b
LW
229/* UIDTYPE:
230 * This symbol has a value like uid_t, int, ushort, or whatever type is
231 * used to declare user ids in the kernel.
232 */
233#define UIDTYPE $uidtype /**/
234
8d063cd8
LW
235/* VOIDFLAGS:
236 * This symbol indicates how much support of the void type is given by this
237 * compiler. What various bits mean:
238 *
239 * 1 = supports declaration of void
240 * 2 = supports arrays of pointers to functions returning void
241 * 4 = supports comparisons between pointers to void functions and
242 * addresses of void functions
243 *
244 * The package designer should define VOIDUSED to indicate the requirements
245 * of the package. This can be done either by #defining VOIDUSED before
246 * including config.h, or by defining defvoidused in Myinit.U. If the
247 * level of void support necessary is not present, defines void to int.
248 */
249#ifndef VOIDUSED
250#define VOIDUSED $defvoidused
251#endif
252#define VOIDFLAGS $voidflags
253#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
254#$define void int /* is void to be avoided? */
255#$define M_VOID /* Xenix strikes again */
256#endif
257
378cc40b
LW
258/* PRIVLIB:
259 * This symbol contains the name of the private library for this package.
260 * The library is private in the sense that it needn't be in anyone's
261 * execution path, but it should be accessible by the world.
262 */
263#define PRIVLIB "$privlib" /**/
264
8d063cd8 265!GROK!THIS!