1 |
#! /bin/sh |
2 |
# |
3 |
# If these # comments don't work, trim them. Don't worry about any other |
4 |
# shell scripts, Configure will trim # comments from them for you. |
5 |
# |
6 |
# (If you are trying to port this package to a machine without sh, |
7 |
# I would suggest you have a look at the prototypical config_h.SH file |
8 |
# and edit it to reflect your system. Some packages may include samples |
9 |
# of config.h for certain machines, so you might look for one of those.) |
10 |
# |
11 |
# Yes, you may rip this off to use in other distribution packages. This |
12 |
# script belongs to the public domain and cannot be copyrighted. |
13 |
# |
14 |
# (Note: this Configure script was generated automatically. Rather than |
15 |
# working with this copy of Configure, you may wish to get metaconfig. |
16 |
# The dist-3.0 package (which contains metaconfig) was posted in |
17 |
# comp.sources.misc and is available on CPAN under authors/id/RAM so |
18 |
# you may fetch it yourself from your nearest archive site.) |
19 |
# |
20 |
|
21 |
# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $ |
22 |
# |
23 |
# Generated on Mon Apr 11 12:33:25 CEST 2005 [metaconfig 3.0 PL70] |
24 |
# (with additional metaconfig patches by perlbug@perl.org) |
25 |
|
26 |
cat >c1$$ <<EOF |
27 |
ARGGGHHHH!!!!! |
28 |
|
29 |
SCO csh still thinks true is false. Write to SCO today and tell them that next |
30 |
year Configure ought to "rm /bin/csh" unless they fix their blasted shell. :-) |
31 |
|
32 |
(Actually, Configure ought to just patch csh in place. Hmm. Hmmmmm. All |
33 |
we'd have to do is go in and swap the && and || tokens, wherever they are.) |
34 |
|
35 |
[End of diatribe. We now return you to your regularly scheduled programming...] |
36 |
EOF |
37 |
cat >c2$$ <<EOF |
38 |
|
39 |
OOPS! You naughty creature! You didn't run Configure with sh! |
40 |
I will attempt to remedy the situation by running sh for you... |
41 |
EOF |
42 |
|
43 |
true || cat c1$$ c2$$ |
44 |
true || exec sh $0 $argv:q |
45 |
|
46 |
(exit $?0) || cat c2$$ |
47 |
(exit $?0) || exec sh $0 $argv:q |
48 |
rm -f c1$$ c2$$ |
49 |
|
50 |
if test -f /dev/cputype -a -f /dev/drivers -a -f /dev/osversion; then |
51 |
cat >&4 <<EOF |
52 |
*** |
53 |
*** I'm sorry but this system looks like Plan 9 and Plan 9 doesn't do |
54 |
*** Configure that well. (Plan 9 is close to UNIX but not close enough.) |
55 |
*** Please read the README.plan9 for further instructions. |
56 |
*** Cannot continue, aborting. |
57 |
*** |
58 |
EOF |
59 |
exit 1 |
60 |
fi |
61 |
|
62 |
: compute my invocation name |
63 |
me=$0 |
64 |
case "$0" in |
65 |
*/*) |
66 |
me=`echo $0 | sed -e 's!.*/\(.*\)!\1!' 2>/dev/null` |
67 |
test "$me" || me=$0 |
68 |
;; |
69 |
esac |
70 |
|
71 |
: Proper separator for the PATH environment variable |
72 |
p_=: |
73 |
: On OS/2 this directory should exist if this is not floppy only system :-] |
74 |
if test -d c:/. || ( uname -a | grep -i 'os\(/\|\)2' ) 2>&1 >/dev/null ; then |
75 |
if test -n "$OS2_SHELL"; then |
76 |
p_=\; |
77 |
PATH=`cmd /c "echo %PATH%" | tr '\\\\' / ` |
78 |
OS2_SHELL=`cmd /c "echo %OS2_SHELL%" | tr '\\\\' / | tr '[A-Z]' '[a-z]'` |
79 |
is_os2=yes |
80 |
elif test -n "$DJGPP"; then |
81 |
case "X${MACHTYPE:-nonesuchmach}" in |
82 |
*cygwin) ;; |
83 |
*) p_=\; ;; |
84 |
esac |
85 |
fi |
86 |
fi |
87 |
|
88 |
: Proper PATH setting |
89 |
paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin' |
90 |
paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin" |
91 |
paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin" |
92 |
paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin" |
93 |
paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb" |
94 |
paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin" |
95 |
paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib" |
96 |
paths="$paths /sbin /usr/sbin /usr/libexec" |
97 |
paths="$paths /system/gnu_library/bin" |
98 |
|
99 |
for p in $paths |
100 |
do |
101 |
case "$p_$PATH$p_" in |
102 |
*$p_$p$p_*) ;; |
103 |
*) test -d $p && PATH=$PATH$p_$p ;; |
104 |
esac |
105 |
done |
106 |
|
107 |
PATH=.$p_$PATH |
108 |
export PATH |
109 |
|
110 |
: shall we be using ksh? |
111 |
inksh='' |
112 |
needksh='' |
113 |
avoidksh='' |
114 |
newsh=/bin/ksh |
115 |
changesh='' |
116 |
if (PATH=.; alias -x) >/dev/null 2>&1; then |
117 |
inksh=true |
118 |
fi |
119 |
if test -f /hp-ux -a -f /bin/ksh; then |
120 |
needksh='to avoid sh bug in "here document" expansion' |
121 |
fi |
122 |
if test -d /usr/lpp -a -f /usr/bin/bsh -a -f /usr/bin/uname; then |
123 |
if test X`/usr/bin/uname -v` = X4; then |
124 |
avoidksh="to avoid AIX 4's /bin/sh" |
125 |
newsh=/usr/bin/bsh |
126 |
fi |
127 |
fi |
128 |
if test -f /osf_boot -a -f /usr/sbin/setld; then |
129 |
if test X`/usr/bin/uname -s` = XOSF1; then |
130 |
avoidksh="to avoid Digital UNIX' ksh" |
131 |
newsh=/bin/sh |
132 |
unset BIN_SH # if this is 'xpg4' sh will start up ksh |
133 |
fi |
134 |
fi |
135 |
case "$inksh/$needksh" in |
136 |
/[a-z]*) |
137 |
ENV='' |
138 |
changesh=true |
139 |
reason="$needksh" |
140 |
;; |
141 |
esac |
142 |
case "$inksh/$avoidksh" in |
143 |
true/[a-z]*) |
144 |
changesh=true |
145 |
reason="$avoidksh" |
146 |
;; |
147 |
esac |
148 |
case "$inksh/$needksh-$avoidksh-" in |
149 |
true/--) |
150 |
cat <<EOM |
151 |
(I see you are using the Korn shell. Some ksh's blow up on $me, |
152 |
mainly on older exotic systems. If yours does, try the Bourne shell instead.) |
153 |
EOM |
154 |
;; |
155 |
esac |
156 |
case "$changesh" in |
157 |
true) |
158 |
export newsh |
159 |
echo "(Feeding myself to $newsh $reason.)" |
160 |
case "$0" in |
161 |
Configure|*/Configure) exec $newsh $0 "$@";; |
162 |
*) exec $newsh Configure "$@";; |
163 |
esac |
164 |
;; |
165 |
esac |
166 |
|
167 |
: if needed set CDPATH to a harmless value that is not chatty |
168 |
: avoid bash 2.02 problems with empty CDPATH. |
169 |
case "$CDPATH" in |
170 |
'') ;; |
171 |
*) case "$SHELL" in |
172 |
*bash*) CDPATH='.' ;; |
173 |
*) CDPATH='' ;; |
174 |
esac |
175 |
;; |
176 |
esac |
177 |
: Configure runs within the UU subdirectory |
178 |
test -d UU || mkdir UU |
179 |
cd UU && rm -f ./* |
180 |
|
181 |
ccname='' |
182 |
ccversion='' |
183 |
ccsymbols='' |
184 |
cppccsymbols='' |
185 |
cppsymbols='' |
186 |
from='' |
187 |
run='' |
188 |
targetarch='' |
189 |
to='' |
190 |
usecrosscompile='' |
191 |
mistrustnm='' |
192 |
perllibs='' |
193 |
dynamic_ext='' |
194 |
extensions='' |
195 |
known_extensions='' |
196 |
nonxs_ext='' |
197 |
static_ext='' |
198 |
useopcode='' |
199 |
useposix='' |
200 |
extras='' |
201 |
d_bsd='' |
202 |
d_eunice='' |
203 |
d_xenix='' |
204 |
eunicefix='' |
205 |
Mcc='' |
206 |
ar='' |
207 |
awk='' |
208 |
bash='' |
209 |
bison='' |
210 |
byacc='' |
211 |
cat='' |
212 |
chgrp='' |
213 |
chmod='' |
214 |
chown='' |
215 |
comm='' |
216 |
compress='' |
217 |
cp='' |
218 |
cpio='' |
219 |
cpp='' |
220 |
csh='' |
221 |
date='' |
222 |
echo='' |
223 |
egrep='' |
224 |
emacs='' |
225 |
expr='' |
226 |
find='' |
227 |
flex='' |
228 |
gmake='' |
229 |
grep='' |
230 |
gzip='' |
231 |
inews='' |
232 |
ksh='' |
233 |
less='' |
234 |
line='' |
235 |
lint='' |
236 |
ln='' |
237 |
lp='' |
238 |
lpr='' |
239 |
ls='' |
240 |
mail='' |
241 |
mailx='' |
242 |
make='' |
243 |
mkdir='' |
244 |
more='' |
245 |
mv='' |
246 |
nm='' |
247 |
nroff='' |
248 |
perl='' |
249 |
pg='' |
250 |
pmake='' |
251 |
pr='' |
252 |
rm='' |
253 |
rmail='' |
254 |
sed='' |
255 |
sendmail='' |
256 |
shar='' |
257 |
sleep='' |
258 |
smail='' |
259 |
sort='' |
260 |
submit='' |
261 |
tail='' |
262 |
tar='' |
263 |
tbl='' |
264 |
tee='' |
265 |
test='' |
266 |
touch='' |
267 |
tr='' |
268 |
troff='' |
269 |
uname='' |
270 |
uniq='' |
271 |
uuname='' |
272 |
vi='' |
273 |
zcat='' |
274 |
zip='' |
275 |
full_ar='' |
276 |
full_sed='' |
277 |
libswanted='' |
278 |
hint='' |
279 |
myuname='' |
280 |
osname='' |
281 |
osvers='' |
282 |
Author='' |
283 |
Date='' |
284 |
Header='' |
285 |
Id='' |
286 |
Locker='' |
287 |
Log='' |
288 |
RCSfile='' |
289 |
Revision='' |
290 |
Source='' |
291 |
State='' |
292 |
_a='' |
293 |
_exe='' |
294 |
_o='' |
295 |
archobjs='' |
296 |
exe_ext='' |
297 |
firstmakefile='' |
298 |
lib_ext='' |
299 |
obj_ext='' |
300 |
path_sep='' |
301 |
afs='' |
302 |
afsroot='' |
303 |
alignbytes='' |
304 |
ansi2knr='' |
305 |
archlib='' |
306 |
archlibexp='' |
307 |
d_archlib='' |
308 |
installarchlib='' |
309 |
archname='' |
310 |
myarchname='' |
311 |
d_atolf='' |
312 |
d_atoll='' |
313 |
baserev='' |
314 |
bin='' |
315 |
binexp='' |
316 |
installbin='' |
317 |
byteorder='' |
318 |
cc='' |
319 |
ccflags='' |
320 |
cppflags='' |
321 |
ldflags='' |
322 |
lkflags='' |
323 |
locincpth='' |
324 |
optimize='' |
325 |
cf_email='' |
326 |
cf_by='' |
327 |
cf_time='' |
328 |
charsize='' |
329 |
contains='' |
330 |
cpp_stuff='' |
331 |
cpplast='' |
332 |
cppminus='' |
333 |
cpprun='' |
334 |
cppstdin='' |
335 |
d__fwalk='' |
336 |
d_access='' |
337 |
d_accessx='' |
338 |
d_aintl='' |
339 |
d_alarm='' |
340 |
asctime_r_proto='' |
341 |
d_asctime_r='' |
342 |
d_attribut='' |
343 |
d_bcmp='' |
344 |
d_bcopy='' |
345 |
d_bzero='' |
346 |
d_casti32='' |
347 |
castflags='' |
348 |
d_castneg='' |
349 |
d_chown='' |
350 |
d_chroot='' |
351 |
d_chsize='' |
352 |
d_class='' |
353 |
d_closedir='' |
354 |
d_void_closedir='' |
355 |
d_cmsghdr_s='' |
356 |
d_const='' |
357 |
d_copysignl='' |
358 |
cryptlib='' |
359 |
d_crypt='' |
360 |
crypt_r_proto='' |
361 |
d_crypt_r='' |
362 |
d_csh='' |
363 |
full_csh='' |
364 |
ctermid_r_proto='' |
365 |
d_ctermid_r='' |
366 |
ctime_r_proto='' |
367 |
d_ctime_r='' |
368 |
d_cuserid='' |
369 |
d_dbl_dig='' |
370 |
d_dbminitproto='' |
371 |
d_difftime='' |
372 |
d_dirfd='' |
373 |
d_dlerror='' |
374 |
d_dlopen='' |
375 |
d_dlsymun='' |
376 |
d_dosuid='' |
377 |
d_suidsafe='' |
378 |
d_drand48_r='' |
379 |
drand48_r_proto='' |
380 |
d_drand48proto='' |
381 |
d_dup2='' |
382 |
d_eaccess='' |
383 |
d_endgrent='' |
384 |
d_endgrent_r='' |
385 |
endgrent_r_proto='' |
386 |
d_endhent='' |
387 |
d_endhostent_r='' |
388 |
endhostent_r_proto='' |
389 |
d_endnent='' |
390 |
d_endnetent_r='' |
391 |
endnetent_r_proto='' |
392 |
d_endpent='' |
393 |
d_endprotoent_r='' |
394 |
endprotoent_r_proto='' |
395 |
d_endpwent='' |
396 |
d_endpwent_r='' |
397 |
endpwent_r_proto='' |
398 |
d_endsent='' |
399 |
d_endservent_r='' |
400 |
endservent_r_proto='' |
401 |
d_faststdio='' |
402 |
d_fchdir='' |
403 |
d_fchmod='' |
404 |
d_fchown='' |
405 |
d_fcntl='' |
406 |
d_fcntl_can_lock='' |
407 |
d_fd_macros='' |
408 |
d_fd_set='' |
409 |
d_fds_bits='' |
410 |
d_fgetpos='' |
411 |
d_finite='' |
412 |
d_finitel='' |
413 |
d_flexfnam='' |
414 |
d_flock='' |
415 |
d_flockproto='' |
416 |
d_fork='' |
417 |
d_fp_class='' |
418 |
d_fpclass='' |
419 |
d_fpclassify='' |
420 |
d_fpclassl='' |
421 |
d_fpos64_t='' |
422 |
d_frexpl='' |
423 |
d_fs_data_s='' |
424 |
d_fseeko='' |
425 |
d_fsetpos='' |
426 |
d_fstatfs='' |
427 |
d_fsync='' |
428 |
d_ftello='' |
429 |
d_ftime='' |
430 |
d_gettimeod='' |
431 |
d_Gconvert='' |
432 |
d_getcwd='' |
433 |
d_getespwnam='' |
434 |
d_getfsstat='' |
435 |
d_getgrent='' |
436 |
d_getgrent_r='' |
437 |
getgrent_r_proto='' |
438 |
d_getgrgid_r='' |
439 |
getgrgid_r_proto='' |
440 |
d_getgrnam_r='' |
441 |
getgrnam_r_proto='' |
442 |
d_getgrps='' |
443 |
d_gethbyaddr='' |
444 |
d_gethbyname='' |
445 |
d_gethent='' |
446 |
aphostname='' |
447 |
d_gethname='' |
448 |
d_phostname='' |
449 |
d_uname='' |
450 |
d_gethostbyaddr_r='' |
451 |
gethostbyaddr_r_proto='' |
452 |
d_gethostbyname_r='' |
453 |
gethostbyname_r_proto='' |
454 |
d_gethostent_r='' |
455 |
gethostent_r_proto='' |
456 |
d_gethostprotos='' |
457 |
d_getitimer='' |
458 |
d_getlogin='' |
459 |
d_getlogin_r='' |
460 |
getlogin_r_proto='' |
461 |
d_getmnt='' |
462 |
d_getmntent='' |
463 |
d_getnbyaddr='' |
464 |
d_getnbyname='' |
465 |
d_getnent='' |
466 |
d_getnetbyaddr_r='' |
467 |
getnetbyaddr_r_proto='' |
468 |
d_getnetbyname_r='' |
469 |
getnetbyname_r_proto='' |
470 |
d_getnetent_r='' |
471 |
getnetent_r_proto='' |
472 |
d_getnetprotos='' |
473 |
d_getpagsz='' |
474 |
d_getpent='' |
475 |
d_getpgid='' |
476 |
d_getpgrp2='' |
477 |
d_bsdgetpgrp='' |
478 |
d_getpgrp='' |
479 |
d_getppid='' |
480 |
d_getprior='' |
481 |
d_getpbyname='' |
482 |
d_getpbynumber='' |
483 |
d_getprotobyname_r='' |
484 |
getprotobyname_r_proto='' |
485 |
d_getprotobynumber_r='' |
486 |
getprotobynumber_r_proto='' |
487 |
d_getprotoent_r='' |
488 |
getprotoent_r_proto='' |
489 |
d_getprotoprotos='' |
490 |
d_getprpwnam='' |
491 |
d_getpwent='' |
492 |
d_getpwent_r='' |
493 |
getpwent_r_proto='' |
494 |
d_getpwnam_r='' |
495 |
getpwnam_r_proto='' |
496 |
d_getpwuid_r='' |
497 |
getpwuid_r_proto='' |
498 |
d_getsent='' |
499 |
d_getservbyname_r='' |
500 |
getservbyname_r_proto='' |
501 |
d_getservbyport_r='' |
502 |
getservbyport_r_proto='' |
503 |
d_getservent_r='' |
504 |
getservent_r_proto='' |
505 |
d_getservprotos='' |
506 |
d_getspnam='' |
507 |
d_getspnam_r='' |
508 |
getspnam_r_proto='' |
509 |
d_getsbyname='' |
510 |
d_getsbyport='' |
511 |
d_gmtime_r='' |
512 |
gmtime_r_proto='' |
513 |
d_gnulibc='' |
514 |
gnulibc_version='' |
515 |
d_hasmntopt='' |
516 |
d_htonl='' |
517 |
d_ilogbl='' |
518 |
d_inetaton='' |
519 |
d_int64_t='' |
520 |
d_isascii='' |
521 |
d_isfinite='' |
522 |
d_isinf='' |
523 |
d_isnan='' |
524 |
d_isnanl='' |
525 |
d_killpg='' |
526 |
d_lchown='' |
527 |
d_ldbl_dig='' |
528 |
d_libm_lib_version='' |
529 |
d_link='' |
530 |
d_localtime_r='' |
531 |
localtime_r_proto='' |
532 |
d_locconv='' |
533 |
d_lockf='' |
534 |
d_longdbl='' |
535 |
longdblsize='' |
536 |
d_longlong='' |
537 |
longlongsize='' |
538 |
d_lseekproto='' |
539 |
d_lstat='' |
540 |
d_madvise='' |
541 |
d_mblen='' |
542 |
d_mbstowcs='' |
543 |
d_mbtowc='' |
544 |
d_memchr='' |
545 |
d_memcmp='' |
546 |
d_memcpy='' |
547 |
d_memmove='' |
548 |
d_memset='' |
549 |
d_mkdir='' |
550 |
d_mkdtemp='' |
551 |
d_mkfifo='' |
552 |
d_mkstemp='' |
553 |
d_mkstemps='' |
554 |
d_mktime='' |
555 |
d_mmap='' |
556 |
mmaptype='' |
557 |
d_modfl='' |
558 |
d_modfl_pow32_bug='' |
559 |
d_modflproto='' |
560 |
d_mprotect='' |
561 |
d_msg='' |
562 |
d_msgctl='' |
563 |
d_msgget='' |
564 |
d_msghdr_s='' |
565 |
d_msgrcv='' |
566 |
d_msgsnd='' |
567 |
d_msync='' |
568 |
d_munmap='' |
569 |
d_nice='' |
570 |
d_nl_langinfo='' |
571 |
d_off64_t='' |
572 |
d_open3='' |
573 |
d_fpathconf='' |
574 |
d_pathconf='' |
575 |
d_pause='' |
576 |
d_pipe='' |
577 |
d_poll='' |
578 |
d_portable='' |
579 |
d_procselfexe='' |
580 |
procselfexe='' |
581 |
d_old_pthread_create_joinable='' |
582 |
old_pthread_create_joinable='' |
583 |
d_pthread_atfork='' |
584 |
d_pthread_attr_setscope='' |
585 |
d_pthread_yield='' |
586 |
d_sched_yield='' |
587 |
sched_yield='' |
588 |
d_qgcvt='' |
589 |
d_random_r='' |
590 |
random_r_proto='' |
591 |
d_readdir64_r='' |
592 |
readdir64_r_proto='' |
593 |
d_readdir='' |
594 |
d_rewinddir='' |
595 |
d_seekdir='' |
596 |
d_telldir='' |
597 |
d_readdir_r='' |
598 |
readdir_r_proto='' |
599 |
d_readlink='' |
600 |
d_readv='' |
601 |
d_recvmsg='' |
602 |
d_rename='' |
603 |
d_rmdir='' |
604 |
d_safebcpy='' |
605 |
d_safemcpy='' |
606 |
d_sanemcmp='' |
607 |
d_sbrkproto='' |
608 |
d_scalbnl='' |
609 |
d_select='' |
610 |
d_sem='' |
611 |
d_semctl='' |
612 |
d_semget='' |
613 |
d_semop='' |
614 |
d_sendmsg='' |
615 |
d_setegid='' |
616 |
d_seteuid='' |
617 |
d_setgrent='' |
618 |
d_setgrent_r='' |
619 |
setgrent_r_proto='' |
620 |
d_setgrps='' |
621 |
d_sethent='' |
622 |
d_sethostent_r='' |
623 |
sethostent_r_proto='' |
624 |
d_setitimer='' |
625 |
d_setlinebuf='' |
626 |
d_setlocale='' |
627 |
d_setlocale_r='' |
628 |
setlocale_r_proto='' |
629 |
d_setnent='' |
630 |
d_setnetent_r='' |
631 |
setnetent_r_proto='' |
632 |
d_setpent='' |
633 |
d_setpgid='' |
634 |
d_setpgrp2='' |
635 |
d_bsdsetpgrp='' |
636 |
d_setpgrp='' |
637 |
d_setprior='' |
638 |
d_setproctitle='' |
639 |
d_setprotoent_r='' |
640 |
setprotoent_r_proto='' |
641 |
d_setpwent='' |
642 |
d_setpwent_r='' |
643 |
setpwent_r_proto='' |
644 |
d_setregid='' |
645 |
d_setresgid='' |
646 |
d_setresuid='' |
647 |
d_setreuid='' |
648 |
d_setrgid='' |
649 |
d_setruid='' |
650 |
d_setsent='' |
651 |
d_setservent_r='' |
652 |
setservent_r_proto='' |
653 |
d_setsid='' |
654 |
d_setvbuf='' |
655 |
d_sfio='' |
656 |
usesfio='' |
657 |
d_shm='' |
658 |
d_shmat='' |
659 |
d_shmatprototype='' |
660 |
shmattype='' |
661 |
d_shmctl='' |
662 |
d_shmdt='' |
663 |
d_shmget='' |
664 |
d_sigaction='' |
665 |
d_sigprocmask='' |
666 |
d_sigsetjmp='' |
667 |
usesitecustomize='' |
668 |
d_sockatmark='' |
669 |
d_sockatmarkproto='' |
670 |
d_msg_ctrunc='' |
671 |
d_msg_dontroute='' |
672 |
d_msg_oob='' |
673 |
d_msg_peek='' |
674 |
d_msg_proxy='' |
675 |
d_oldsock='' |
676 |
d_scm_rights='' |
677 |
d_socket='' |
678 |
d_sockpair='' |
679 |
sockethdr='' |
680 |
socketlib='' |
681 |
d_socklen_t='' |
682 |
d_socks5_init='' |
683 |
d_sqrtl='' |
684 |
d_srand48_r='' |
685 |
srand48_r_proto='' |
686 |
d_srandom_r='' |
687 |
srandom_r_proto='' |
688 |
d_sresgproto='' |
689 |
d_sresuproto='' |
690 |
d_statblks='' |
691 |
d_statfs_f_flags='' |
692 |
d_statfs_s='' |
693 |
d_fstatvfs='' |
694 |
d_statvfs='' |
695 |
d_stdio_cnt_lval='' |
696 |
d_stdio_ptr_lval='' |
697 |
d_stdio_ptr_lval_nochange_cnt='' |
698 |
d_stdio_ptr_lval_sets_cnt='' |
699 |
d_stdiobase='' |
700 |
d_stdstdio='' |
701 |
stdio_base='' |
702 |
stdio_bufsiz='' |
703 |
stdio_cnt='' |
704 |
stdio_filbuf='' |
705 |
stdio_ptr='' |
706 |
d_index='' |
707 |
d_strchr='' |
708 |
d_strcoll='' |
709 |
d_strctcpy='' |
710 |
d_strerrm='' |
711 |
d_strerror='' |
712 |
d_sysernlst='' |
713 |
d_syserrlst='' |
714 |
d_strerror_r='' |
715 |
strerror_r_proto='' |
716 |
d_strftime='' |
717 |
d_strlcat='' |
718 |
d_strlcpy='' |
719 |
d_strtod='' |
720 |
d_strtol='' |
721 |
d_strtold='' |
722 |
d_strtoll='' |
723 |
d_strtoq='' |
724 |
d_strtoul='' |
725 |
d_strtoull='' |
726 |
d_strtouq='' |
727 |
d_strxfrm='' |
728 |
d_symlink='' |
729 |
d_syscall='' |
730 |
d_syscallproto='' |
731 |
d_sysconf='' |
732 |
d_system='' |
733 |
d_tcgetpgrp='' |
734 |
d_tcsetpgrp='' |
735 |
d_telldirproto='' |
736 |
d_time='' |
737 |
timetype='' |
738 |
clocktype='' |
739 |
d_times='' |
740 |
d_tmpnam_r='' |
741 |
tmpnam_r_proto='' |
742 |
d_truncate='' |
743 |
d_ttyname_r='' |
744 |
ttyname_r_proto='' |
745 |
d_tzname='' |
746 |
d_u32align='' |
747 |
d_ualarm='' |
748 |
d_umask='' |
749 |
d_semctl_semid_ds='' |
750 |
d_semctl_semun='' |
751 |
d_union_semun='' |
752 |
d_unordered='' |
753 |
d_usleep='' |
754 |
d_usleepproto='' |
755 |
d_ustat='' |
756 |
d_vfork='' |
757 |
usevfork='' |
758 |
d_voidsig='' |
759 |
signal_t='' |
760 |
d_volatile='' |
761 |
d_charvspr='' |
762 |
d_vprintf='' |
763 |
d_wait4='' |
764 |
d_waitpid='' |
765 |
d_wcstombs='' |
766 |
d_wctomb='' |
767 |
d_writev='' |
768 |
dlext='' |
769 |
cccdlflags='' |
770 |
ccdlflags='' |
771 |
dlsrc='' |
772 |
ld='' |
773 |
lddlflags='' |
774 |
usedl='' |
775 |
doublesize='' |
776 |
ebcdic='' |
777 |
fflushNULL='' |
778 |
fflushall='' |
779 |
fpossize='' |
780 |
fpostype='' |
781 |
gccansipedantic='' |
782 |
gccosandvers='' |
783 |
gccversion='' |
784 |
gidformat='' |
785 |
gidsign='' |
786 |
gidsize='' |
787 |
gidtype='' |
788 |
groupstype='' |
789 |
h_fcntl='' |
790 |
h_sysfile='' |
791 |
html1dir='' |
792 |
html1direxp='' |
793 |
installhtml1dir='' |
794 |
html3dir='' |
795 |
html3direxp='' |
796 |
installhtml3dir='' |
797 |
i_arpainet='' |
798 |
i_crypt='' |
799 |
db_hashtype='' |
800 |
db_prefixtype='' |
801 |
db_version_major='' |
802 |
db_version_minor='' |
803 |
db_version_patch='' |
804 |
i_db='' |
805 |
i_dbm='' |
806 |
i_rpcsvcdbm='' |
807 |
d_dirnamlen='' |
808 |
direntrytype='' |
809 |
i_dirent='' |
810 |
i_dld='' |
811 |
i_dlfcn='' |
812 |
i_fcntl='' |
813 |
i_float='' |
814 |
i_fp='' |
815 |
i_fp_class='' |
816 |
i_gdbm='' |
817 |
d_grpasswd='' |
818 |
i_grp='' |
819 |
i_ieeefp='' |
820 |
i_inttypes='' |
821 |
i_langinfo='' |
822 |
i_libutil='' |
823 |
i_limits='' |
824 |
i_locale='' |
825 |
i_machcthr='' |
826 |
i_malloc='' |
827 |
i_math='' |
828 |
i_memory='' |
829 |
i_mntent='' |
830 |
i_ndbm='' |
831 |
i_netdb='' |
832 |
i_neterrno='' |
833 |
i_netinettcp='' |
834 |
i_niin='' |
835 |
i_sysin='' |
836 |
i_poll='' |
837 |
i_prot='' |
838 |
i_pthread='' |
839 |
d_pwage='' |
840 |
d_pwchange='' |
841 |
d_pwclass='' |
842 |
d_pwcomment='' |
843 |
d_pwexpire='' |
844 |
d_pwgecos='' |
845 |
d_pwpasswd='' |
846 |
d_pwquota='' |
847 |
i_pwd='' |
848 |
i_sfio='' |
849 |
i_shadow='' |
850 |
i_socks='' |
851 |
i_stddef='' |
852 |
i_stdlib='' |
853 |
i_string='' |
854 |
strings='' |
855 |
i_sunmath='' |
856 |
i_sysaccess='' |
857 |
i_sysdir='' |
858 |
i_sysfile='' |
859 |
d_voidtty='' |
860 |
i_bsdioctl='' |
861 |
i_sysfilio='' |
862 |
i_sysioctl='' |
863 |
i_syssockio='' |
864 |
i_syslog='' |
865 |
i_sysmman='' |
866 |
i_sysmode='' |
867 |
i_sysmount='' |
868 |
i_sysndir='' |
869 |
i_sysparam='' |
870 |
i_sysresrc='' |
871 |
i_syssecrt='' |
872 |
i_sysselct='' |
873 |
i_sysstat='' |
874 |
i_sysstatfs='' |
875 |
i_sysstatvfs='' |
876 |
i_systimes='' |
877 |
i_systypes='' |
878 |
i_sysuio='' |
879 |
i_sysun='' |
880 |
i_sysutsname='' |
881 |
i_sysvfs='' |
882 |
i_syswait='' |
883 |
i_sgtty='' |
884 |
i_termio='' |
885 |
i_termios='' |
886 |
d_tm_tm_gmtoff='' |
887 |
d_tm_tm_zone='' |
888 |
i_systime='' |
889 |
i_systimek='' |
890 |
i_time='' |
891 |
timeincl='' |
892 |
i_unistd='' |
893 |
i_ustat='' |
894 |
i_utime='' |
895 |
i_values='' |
896 |
i_stdarg='' |
897 |
i_varargs='' |
898 |
i_varhdr='' |
899 |
i_vfork='' |
900 |
inc_version_list='' |
901 |
inc_version_list_init='' |
902 |
installprefix='' |
903 |
installprefixexp='' |
904 |
installstyle='' |
905 |
installusrbinperl='' |
906 |
intsize='' |
907 |
longsize='' |
908 |
shortsize='' |
909 |
issymlink='' |
910 |
libc='' |
911 |
ldlibpthname='' |
912 |
libperl='' |
913 |
shrpenv='' |
914 |
useshrplib='' |
915 |
glibpth='' |
916 |
libpth='' |
917 |
loclibpth='' |
918 |
plibpth='' |
919 |
xlibpth='' |
920 |
ignore_versioned_solibs='' |
921 |
libs='' |
922 |
libsdirs='' |
923 |
libsfiles='' |
924 |
libsfound='' |
925 |
libspath='' |
926 |
lns='' |
927 |
d_PRIEUldbl='' |
928 |
d_PRIFUldbl='' |
929 |
d_PRIGUldbl='' |
930 |
d_PRIeldbl='' |
931 |
d_PRIfldbl='' |
932 |
d_PRIgldbl='' |
933 |
d_SCNfldbl='' |
934 |
sPRIEUldbl='' |
935 |
sPRIFUldbl='' |
936 |
sPRIGUldbl='' |
937 |
sPRIeldbl='' |
938 |
sPRIfldbl='' |
939 |
sPRIgldbl='' |
940 |
sSCNfldbl='' |
941 |
lseeksize='' |
942 |
lseektype='' |
943 |
make_set_make='' |
944 |
d_mymalloc='' |
945 |
freetype='' |
946 |
mallocobj='' |
947 |
mallocsrc='' |
948 |
malloctype='' |
949 |
usemallocwrap='' |
950 |
usemymalloc='' |
951 |
installman1dir='' |
952 |
man1dir='' |
953 |
man1direxp='' |
954 |
man1ext='' |
955 |
installman3dir='' |
956 |
man3dir='' |
957 |
man3direxp='' |
958 |
man3ext='' |
959 |
modetype='' |
960 |
multiarch='' |
961 |
mydomain='' |
962 |
myhostname='' |
963 |
phostname='' |
964 |
c='' |
965 |
n='' |
966 |
d_eofnblk='' |
967 |
eagain='' |
968 |
o_nonblock='' |
969 |
rd_nodata='' |
970 |
need_va_copy='' |
971 |
netdb_hlen_type='' |
972 |
netdb_host_type='' |
973 |
netdb_name_type='' |
974 |
netdb_net_type='' |
975 |
groupcat='' |
976 |
hostcat='' |
977 |
passcat='' |
978 |
orderlib='' |
979 |
ranlib='' |
980 |
d_perl_otherlibdirs='' |
981 |
otherlibdirs='' |
982 |
package='' |
983 |
spackage='' |
984 |
pager='' |
985 |
api_revision='' |
986 |
api_subversion='' |
987 |
api_version='' |
988 |
api_versionstring='' |
989 |
patchlevel='' |
990 |
perl_patchlevel='' |
991 |
revision='' |
992 |
subversion='' |
993 |
version='' |
994 |
version_patchlevel_string='' |
995 |
perl5='' |
996 |
perladmin='' |
997 |
perlpath='' |
998 |
d_nv_preserves_uv='' |
999 |
i16size='' |
1000 |
i16type='' |
1001 |
i32size='' |
1002 |
i32type='' |
1003 |
i64size='' |
1004 |
i64type='' |
1005 |
i8size='' |
1006 |
i8type='' |
1007 |
ivsize='' |
1008 |
ivtype='' |
1009 |
nv_preserves_uv_bits='' |
1010 |
nvsize='' |
1011 |
nvtype='' |
1012 |
u16size='' |
1013 |
u16type='' |
1014 |
u32size='' |
1015 |
u32type='' |
1016 |
u64size='' |
1017 |
u64type='' |
1018 |
u8size='' |
1019 |
u8type='' |
1020 |
uvsize='' |
1021 |
uvtype='' |
1022 |
ivdformat='' |
1023 |
nvEUformat='' |
1024 |
nvFUformat='' |
1025 |
nvGUformat='' |
1026 |
nveformat='' |
1027 |
nvfformat='' |
1028 |
nvgformat='' |
1029 |
uvXUformat='' |
1030 |
uvoformat='' |
1031 |
uvuformat='' |
1032 |
uvxformat='' |
1033 |
pidtype='' |
1034 |
prefix='' |
1035 |
prefixexp='' |
1036 |
installprivlib='' |
1037 |
privlib='' |
1038 |
privlibexp='' |
1039 |
prototype='' |
1040 |
ptrsize='' |
1041 |
d_PRIXU64='' |
1042 |
d_PRId64='' |
1043 |
d_PRIi64='' |
1044 |
d_PRIo64='' |
1045 |
d_PRIu64='' |
1046 |
d_PRIx64='' |
1047 |
sPRIXU64='' |
1048 |
sPRId64='' |
1049 |
sPRIi64='' |
1050 |
sPRIo64='' |
1051 |
sPRIu64='' |
1052 |
sPRIx64='' |
1053 |
d_quad='' |
1054 |
quadkind='' |
1055 |
quadtype='' |
1056 |
uquadtype='' |
1057 |
drand01='' |
1058 |
randbits='' |
1059 |
randfunc='' |
1060 |
randseedtype='' |
1061 |
seedfunc='' |
1062 |
installscript='' |
1063 |
scriptdir='' |
1064 |
scriptdirexp='' |
1065 |
selectminbits='' |
1066 |
selecttype='' |
1067 |
sh='' |
1068 |
sig_count='' |
1069 |
sig_name='' |
1070 |
sig_name_init='' |
1071 |
sig_num='' |
1072 |
sig_num_init='' |
1073 |
sig_size='' |
1074 |
installsitearch='' |
1075 |
sitearch='' |
1076 |
sitearchexp='' |
1077 |
installsitebin='' |
1078 |
sitebin='' |
1079 |
sitebinexp='' |
1080 |
installsitehtml1dir='' |
1081 |
sitehtml1dir='' |
1082 |
sitehtml1direxp='' |
1083 |
installsitehtml3dir='' |
1084 |
sitehtml3dir='' |
1085 |
sitehtml3direxp='' |
1086 |
installsitelib='' |
1087 |
sitelib='' |
1088 |
sitelib_stem='' |
1089 |
sitelibexp='' |
1090 |
installsiteman1dir='' |
1091 |
siteman1dir='' |
1092 |
siteman1direxp='' |
1093 |
installsiteman3dir='' |
1094 |
siteman3dir='' |
1095 |
siteman3direxp='' |
1096 |
siteprefix='' |
1097 |
siteprefixexp='' |
1098 |
installsitescript='' |
1099 |
sitescript='' |
1100 |
sitescriptexp='' |
1101 |
sizesize='' |
1102 |
sizetype='' |
1103 |
so='' |
1104 |
socksizetype='' |
1105 |
sharpbang='' |
1106 |
shsharp='' |
1107 |
spitshell='' |
1108 |
src='' |
1109 |
ssizetype='' |
1110 |
startperl='' |
1111 |
startsh='' |
1112 |
stdchar='' |
1113 |
d_stdio_stream_array='' |
1114 |
stdio_stream_array='' |
1115 |
sysman='' |
1116 |
trnl='' |
1117 |
uidformat='' |
1118 |
uidsign='' |
1119 |
uidsize='' |
1120 |
uidtype='' |
1121 |
archname64='' |
1122 |
use64bitall='' |
1123 |
use64bitint='' |
1124 |
usefaststdio='' |
1125 |
ccflags_uselargefiles='' |
1126 |
ldflags_uselargefiles='' |
1127 |
libswanted_uselargefiles='' |
1128 |
uselargefiles='' |
1129 |
uselongdouble='' |
1130 |
usemorebits='' |
1131 |
usemultiplicity='' |
1132 |
nm_opt='' |
1133 |
nm_so_opt='' |
1134 |
runnm='' |
1135 |
usenm='' |
1136 |
useperlio='' |
1137 |
usesocks='' |
1138 |
d_oldpthreads='' |
1139 |
use5005threads='' |
1140 |
useithreads='' |
1141 |
usereentrant='' |
1142 |
usethreads='' |
1143 |
incpath='' |
1144 |
mips_type='' |
1145 |
usrinc='' |
1146 |
d_vendorarch='' |
1147 |
installvendorarch='' |
1148 |
vendorarch='' |
1149 |
vendorarchexp='' |
1150 |
d_vendorbin='' |
1151 |
installvendorbin='' |
1152 |
vendorbin='' |
1153 |
vendorbinexp='' |
1154 |
installvendorhtml1dir='' |
1155 |
vendorhtml1dir='' |
1156 |
vendorhtml1direxp='' |
1157 |
installvendorhtml3dir='' |
1158 |
vendorhtml3dir='' |
1159 |
vendorhtml3direxp='' |
1160 |
d_vendorlib='' |
1161 |
installvendorlib='' |
1162 |
vendorlib='' |
1163 |
vendorlib_stem='' |
1164 |
vendorlibexp='' |
1165 |
installvendorman1dir='' |
1166 |
vendorman1dir='' |
1167 |
vendorman1direxp='' |
1168 |
installvendorman3dir='' |
1169 |
vendorman3dir='' |
1170 |
vendorman3direxp='' |
1171 |
usevendorprefix='' |
1172 |
vendorprefix='' |
1173 |
vendorprefixexp='' |
1174 |
d_vendorscript='' |
1175 |
installvendorscript='' |
1176 |
vendorscript='' |
1177 |
vendorscriptexp='' |
1178 |
versiononly='' |
1179 |
defvoidused='' |
1180 |
voidflags='' |
1181 |
yacc='' |
1182 |
yaccflags='' |
1183 |
CONFIG='' |
1184 |
|
1185 |
define='define' |
1186 |
undef='undef' |
1187 |
smallmach='pdp11 i8086 z8000 i80286 iAPX286' |
1188 |
rmlist='' |
1189 |
|
1190 |
: We must find out about Eunice early |
1191 |
eunicefix=':' |
1192 |
if test -f /etc/unixtovms; then |
1193 |
eunicefix=/etc/unixtovms |
1194 |
fi |
1195 |
if test -f /etc/unixtovms.exe; then |
1196 |
eunicefix=/etc/unixtovms.exe |
1197 |
fi |
1198 |
|
1199 |
: Set executable suffix now -- needed before hints available |
1200 |
if test -f "/libs/version.library"; then |
1201 |
: Amiga OS |
1202 |
_exe="" |
1203 |
elif test -f "/system/gnu_library/bin/ar.pm"; then |
1204 |
: Stratus VOS |
1205 |
_exe=".pm" |
1206 |
elif test -n "$DJGPP"; then |
1207 |
: DOS DJGPP |
1208 |
_exe=".exe" |
1209 |
elif test -d c:/. -o -n "$is_os2" ; then |
1210 |
: OS/2 or cygwin |
1211 |
_exe=".exe" |
1212 |
fi |
1213 |
|
1214 |
i_whoami='' |
1215 |
ccname='' |
1216 |
ccversion='' |
1217 |
perllibs='' |
1218 |
: set useposix=false in your hint file to disable the POSIX extension. |
1219 |
useposix=true |
1220 |
: set useopcode=false in your hint file to disable the Opcode extension. |
1221 |
useopcode=true |
1222 |
: Trailing extension. Override this in a hint file, if needed. |
1223 |
: Extra object files, if any, needed on this platform. |
1224 |
archobjs='' |
1225 |
archname='' |
1226 |
: Possible local include directories to search. |
1227 |
: Set locincpth to "" in a hint file to defeat local include searches. |
1228 |
locincpth="/usr/local/include /opt/local/include /usr/gnu/include" |
1229 |
locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include" |
1230 |
: |
1231 |
: no include file wanted by default |
1232 |
inclwanted='' |
1233 |
|
1234 |
groupstype='' |
1235 |
libnames='' |
1236 |
: change the next line if compiling for Xenix/286 on Xenix/386 |
1237 |
xlibpth='/usr/lib/386 /lib/386' |
1238 |
: Possible local library directories to search. |
1239 |
loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib" |
1240 |
loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib" |
1241 |
|
1242 |
: general looking path for locating libraries |
1243 |
glibpth="/lib /usr/lib $xlibpth" |
1244 |
glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib" |
1245 |
test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth" |
1246 |
test -f /shlib/libc.so && glibpth="/shlib $glibpth" |
1247 |
|
1248 |
: Private path used by Configure to find libraries. Its value |
1249 |
: is prepended to libpth. This variable takes care of special |
1250 |
: machines, like the mips. Usually, it should be empty. |
1251 |
plibpth='' |
1252 |
|
1253 |
: default library list |
1254 |
libswanted='' |
1255 |
: some systems want to use only the non-versioned libso:s |
1256 |
ignore_versioned_solibs='' |
1257 |
siteman1dir='' |
1258 |
siteman3dir='' |
1259 |
sitescript='' |
1260 |
archname64='' |
1261 |
ccflags_uselargefiles='' |
1262 |
ldflags_uselargefiles='' |
1263 |
libswanted_uselargefiles='' |
1264 |
: set usemultiplicity on the Configure command line to enable multiplicity. |
1265 |
: set usesocks on the Configure command line to enable socks. |
1266 |
: set usethreads on the Configure command line to enable threads. |
1267 |
usereentrant='undef' |
1268 |
: full support for void wanted by default |
1269 |
defvoidused=15 |
1270 |
|
1271 |
: List of libraries we want. |
1272 |
: If anyone needs extra -lxxx, put those in a hint file. |
1273 |
libswanted="sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun" |
1274 |
libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD" |
1275 |
: We probably want to search /usr/shlib before most other libraries. |
1276 |
: This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist. |
1277 |
glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'` |
1278 |
glibpth="/usr/shlib $glibpth" |
1279 |
: Do not use vfork unless overridden by a hint file. |
1280 |
usevfork=false |
1281 |
|
1282 |
: Find the basic shell for Bourne shell scripts |
1283 |
case "$sh" in |
1284 |
'') |
1285 |
case "$SYSTYPE" in |
1286 |
*bsd*|sys5*) xxx="/$SYSTYPE/bin/sh";; |
1287 |
*) xxx='/bin/sh';; |
1288 |
esac |
1289 |
if test -f "$xxx"; then |
1290 |
sh="$xxx" |
1291 |
else |
1292 |
: Build up a list and do a single loop so we can 'break' out. |
1293 |
pth=`echo $PATH | sed -e "s/$p_/ /g"` |
1294 |
for xxx in sh bash ksh pdksh ash; do |
1295 |
for p in $pth; do |
1296 |
try="$try ${p}/${xxx}" |
1297 |
done |
1298 |
done |
1299 |
for xxx in $try; do |
1300 |
if test -f "$xxx"; then |
1301 |
sh="$xxx"; |
1302 |
break |
1303 |
elif test "X$_exe" != X -a -f "$xxx$_exe"; then |
1304 |
sh="$xxx"; |
1305 |
break |
1306 |
elif test -f "$xxx.exe"; then |
1307 |
sh="$xxx"; |
1308 |
break |
1309 |
fi |
1310 |
done |
1311 |
fi |
1312 |
;; |
1313 |
esac |
1314 |
|
1315 |
case "$sh" in |
1316 |
'') cat >&2 <<EOM |
1317 |
$me: Fatal Error: I can't find a Bourne Shell anywhere. |
1318 |
|
1319 |
Usually it's in /bin/sh. How did you even get this far? |
1320 |
Please contact me (Perl Maintainers) at perlbug@perl.org and |
1321 |
we'll try to straighten this all out. |
1322 |
EOM |
1323 |
exit 1 |
1324 |
;; |
1325 |
esac |
1326 |
|
1327 |
: see if sh knows # comments |
1328 |
if `$sh -c '#' >/dev/null 2>&1`; then |
1329 |
shsharp=true |
1330 |
spitshell=cat |
1331 |
xcat=/bin/cat |
1332 |
test -f $xcat$_exe || xcat=/usr/bin/cat |
1333 |
if test ! -f $xcat$_exe; then |
1334 |
for p in `echo $PATH | sed -e "s/$p_/ /g"` $paths; do |
1335 |
if test -f $p/cat$_exe; then |
1336 |
xcat=$p/cat |
1337 |
break |
1338 |
fi |
1339 |
done |
1340 |
if test ! -f $xcat$_exe; then |
1341 |
echo "Can't find cat anywhere!" |
1342 |
exit 1 |
1343 |
fi |
1344 |
fi |
1345 |
echo "#!$xcat" >sharp |
1346 |
$eunicefix sharp |
1347 |
chmod +x sharp |
1348 |
./sharp > today |
1349 |
if test -s today; then |
1350 |
sharpbang='#!' |
1351 |
else |
1352 |
echo "#! $xcat" > sharp |
1353 |
$eunicefix sharp |
1354 |
chmod +x sharp |
1355 |
./sharp > today |
1356 |
if test -s today; then |
1357 |
sharpbang='#! ' |
1358 |
else |
1359 |
sharpbang=': use ' |
1360 |
fi |
1361 |
fi |
1362 |
else |
1363 |
echo " " |
1364 |
echo "Your $sh doesn't grok # comments--I will strip them later on." |
1365 |
shsharp=false |
1366 |
cd .. |
1367 |
echo "exec grep -v '^[ ]*#'" >spitshell |
1368 |
chmod +x spitshell |
1369 |
$eunicefix spitshell |
1370 |
spitshell=`pwd`/spitshell |
1371 |
cd UU |
1372 |
echo "I presume that if # doesn't work, #! won't work either!" |
1373 |
sharpbang=': use ' |
1374 |
fi |
1375 |
rm -f sharp today |
1376 |
|
1377 |
: figure out how to guarantee sh startup |
1378 |
case "$startsh" in |
1379 |
'') startsh=${sharpbang}${sh} ;; |
1380 |
*) |
1381 |
esac |
1382 |
cat >sharp <<EOSS |
1383 |
$startsh |
1384 |
set abc |
1385 |
test "$?abc" != 1 |
1386 |
EOSS |
1387 |
|
1388 |
chmod +x sharp |
1389 |
$eunicefix sharp |
1390 |
if ./sharp; then |
1391 |
: echo "Yup, it does." |
1392 |
else |
1393 |
echo "Hmm... '$startsh' does not guarantee sh startup..." |
1394 |
echo "You may have to fix up the shell scripts to make sure $sh runs them." |
1395 |
fi |
1396 |
rm -f sharp |
1397 |
|
1398 |
|
1399 |
: Save command line options in file UU/cmdline.opt for later use in |
1400 |
: generating config.sh. |
1401 |
cat > cmdline.opt <<EOSH |
1402 |
# Configure command line arguments. |
1403 |
config_arg0='$0' |
1404 |
config_args='$*' |
1405 |
config_argc=$# |
1406 |
EOSH |
1407 |
argn=1 |
1408 |
args_exp='' |
1409 |
args_sep='' |
1410 |
for arg in "$@"; do |
1411 |
cat >>cmdline.opt <<EOSH |
1412 |
config_arg$argn='$arg' |
1413 |
EOSH |
1414 |
# Extreme backslashitis: replace each ' by '"'"' |
1415 |
cat <<EOC | sed -e "s/'/'"'"'"'"'"'"'/g" > cmdl.opt |
1416 |
$arg |
1417 |
EOC |
1418 |
arg_exp=`cat cmdl.opt` |
1419 |
args_exp="$args_exp$args_sep'$arg_exp'" |
1420 |
argn=`expr $argn + 1` |
1421 |
args_sep=' ' |
1422 |
done |
1423 |
# args_exp is good for restarting self: eval "set X $args_exp"; shift; $0 "$@" |
1424 |
# used by ./hints/os2.sh |
1425 |
rm -f cmdl.opt |
1426 |
|
1427 |
: produce awk script to parse command line options |
1428 |
cat >options.awk <<'EOF' |
1429 |
BEGIN { |
1430 |
optstr = "A:dD:eEf:hKOrsSU:V"; # getopt-style specification |
1431 |
|
1432 |
len = length(optstr); |
1433 |
for (i = 1; i <= len; i++) { |
1434 |
c = substr(optstr, i, 1); |
1435 |
if (i < len) a = substr(optstr, i + 1, 1); else a = ""; |
1436 |
if (a == ":") { |
1437 |
arg[c] = 1; |
1438 |
i++; |
1439 |
} |
1440 |
opt[c] = 1; |
1441 |
} |
1442 |
} |
1443 |
{ |
1444 |
expect = 0; |
1445 |
str = $0; |
1446 |
if (substr(str, 1, 1) != "-") { |
1447 |
printf("'%s'\n", str); |
1448 |
next; |
1449 |
} |
1450 |
len = length($0); |
1451 |
for (i = 2; i <= len; i++) { |
1452 |
c = substr(str, i, 1); |
1453 |
if (!opt[c]) { |
1454 |
printf("-%s\n", substr(str, i)); |
1455 |
next; |
1456 |
} |
1457 |
printf("-%s\n", c); |
1458 |
if (arg[c]) { |
1459 |
if (i < len) |
1460 |
printf("'%s'\n", substr(str, i + 1)); |
1461 |
else |
1462 |
expect = 1; |
1463 |
next; |
1464 |
} |
1465 |
} |
1466 |
} |
1467 |
END { |
1468 |
if (expect) |
1469 |
print "?"; |
1470 |
} |
1471 |
EOF |
1472 |
|
1473 |
: process the command line options |
1474 |
set X `for arg in "$@"; do echo "X$arg"; done | |
1475 |
sed -e s/X// | awk -f options.awk` |
1476 |
eval "set $*" |
1477 |
shift |
1478 |
rm -f options.awk |
1479 |
|
1480 |
: set up default values |
1481 |
fastread='' |
1482 |
reuseval=false |
1483 |
config_sh='' |
1484 |
alldone='' |
1485 |
error='' |
1486 |
silent='' |
1487 |
extractsh='' |
1488 |
override='' |
1489 |
knowitall='' |
1490 |
rm -f optdef.sh posthint.sh |
1491 |
cat >optdef.sh <<EOS |
1492 |
$startsh |
1493 |
EOS |
1494 |
|
1495 |
|
1496 |
: option parsing |
1497 |
while test $# -gt 0; do |
1498 |
case "$1" in |
1499 |
-d) shift; fastread=yes;; |
1500 |
-e) shift; alldone=cont;; |
1501 |
-f) |
1502 |
shift |
1503 |
cd .. |
1504 |
if test -r "$1"; then |
1505 |
config_sh="$1" |
1506 |
else |
1507 |
echo "$me: cannot read config file $1." >&2 |
1508 |
error=true |
1509 |
fi |
1510 |
cd UU |
1511 |
shift;; |
1512 |
-h) shift; error=true;; |
1513 |
-r) shift; reuseval=true;; |
1514 |
-s) shift; silent=true; realsilent=true;; |
1515 |
-E) shift; alldone=exit;; |
1516 |
-K) shift; knowitall=true;; |
1517 |
-O) shift; override=true;; |
1518 |
-S) shift; silent=true; extractsh=true;; |
1519 |
-D) |
1520 |
shift |
1521 |
case "$1" in |
1522 |
*=) |
1523 |
echo "$me: use '-U symbol=', not '-D symbol='." >&2 |
1524 |
echo "$me: ignoring -D $1" >&2 |
1525 |
;; |
1526 |
*=*) echo "$1" | \ |
1527 |
sed -e "s/'/'\"'\"'/g" -e "s/=\(.*\)/='\1'/" >> optdef.sh;; |
1528 |
*) echo "$1='define'" >> optdef.sh;; |
1529 |
esac |
1530 |
shift |
1531 |
;; |
1532 |
-U) |
1533 |
shift |
1534 |
case "$1" in |
1535 |
*=) echo "$1" >> optdef.sh;; |
1536 |
*=*) |
1537 |
echo "$me: use '-D symbol=val', not '-U symbol=val'." >&2 |
1538 |
echo "$me: ignoring -U $1" >&2 |
1539 |
;; |
1540 |
*) echo "$1='undef'" >> optdef.sh;; |
1541 |
esac |
1542 |
shift |
1543 |
;; |
1544 |
-A) |
1545 |
shift |
1546 |
xxx='' |
1547 |
yyy="$1" |
1548 |
zzz='' |
1549 |
uuu=undef |
1550 |
case "$yyy" in |
1551 |
*=*) zzz=`echo "$yyy"|sed 's!=.*!!'` |
1552 |
case "$zzz" in |
1553 |
*:*) zzz='' ;; |
1554 |
*) xxx=append |
1555 |
zzz=" "`echo "$yyy"|sed 's!^[^=]*=!!'` |
1556 |
yyy=`echo "$yyy"|sed 's!=.*!!'` ;; |
1557 |
esac |
1558 |
;; |
1559 |
esac |
1560 |
case "$xxx" in |
1561 |
'') case "$yyy" in |
1562 |
*:*) xxx=`echo "$yyy"|sed 's!:.*!!'` |
1563 |
yyy=`echo "$yyy"|sed 's!^[^:]*:!!'` |
1564 |
zzz=`echo "$yyy"|sed 's!^[^=]*=!!'` |
1565 |
yyy=`echo "$yyy"|sed 's!=.*!!'` ;; |
1566 |
*) xxx=`echo "$yyy"|sed 's!:.*!!'` |
1567 |
yyy=`echo "$yyy"|sed 's!^[^:]*:!!'` ;; |
1568 |
esac |
1569 |
;; |
1570 |
esac |
1571 |
case "$xxx" in |
1572 |
append) |
1573 |
echo "$yyy=\"\${$yyy}$zzz\"" >> posthint.sh ;; |
1574 |
clear) |
1575 |
echo "$yyy=''" >> posthint.sh ;; |
1576 |
define) |
1577 |
case "$zzz" in |
1578 |
'') zzz=define ;; |
1579 |
esac |
1580 |
echo "$yyy='$zzz'" >> posthint.sh ;; |
1581 |
eval) |
1582 |
echo "eval \"$yyy=$zzz\"" >> posthint.sh ;; |
1583 |
prepend) |
1584 |
echo "$yyy=\"$zzz\${$yyy}\"" >> posthint.sh ;; |
1585 |
undef) |
1586 |
case "$zzz" in |
1587 |
'') zzz="$uuu" ;; |
1588 |
esac |
1589 |
echo "$yyy=$zzz" >> posthint.sh ;; |
1590 |
*) echo "$me: unknown -A command '$xxx', ignoring -A $1" >&2 ;; |
1591 |
esac |
1592 |
shift |
1593 |
;; |
1594 |
-V) echo "$me generated by metaconfig 3.0 PL70." >&2 |
1595 |
exit 0;; |
1596 |
--) break;; |
1597 |
-*) echo "$me: unknown option $1" >&2; shift; error=true;; |
1598 |
*) break;; |
1599 |
esac |
1600 |
done |
1601 |
|
1602 |
case "$error" in |
1603 |
true) |
1604 |
cat >&2 <<EOM |
1605 |
Usage: $me [-dehrsEKOSV] [-f config.sh] [-D symbol] [-D symbol=value] |
1606 |
[-U symbol] [-U symbol=] [-A command:symbol...] |
1607 |
-d : use defaults for all answers. |
1608 |
-e : go on without questioning past the production of config.sh. |
1609 |
-f : specify an alternate default configuration file. |
1610 |
-h : print this help message and exit (with an error status). |
1611 |
-r : reuse C symbols value if possible (skips costly nm extraction). |
1612 |
-s : silent mode, only echoes questions and essential information. |
1613 |
-D : define symbol to have some value: |
1614 |
-D symbol symbol gets the value 'define' |
1615 |
-D symbol=value symbol gets the value 'value' |
1616 |
-E : stop at the end of questions, after having produced config.sh. |
1617 |
-K : do not use unless you know what you are doing. |
1618 |
-O : let -D and -U override definitions from loaded configuration file. |
1619 |
-S : perform variable substitutions on all .SH files (can mix with -f) |
1620 |
-U : undefine symbol: |
1621 |
-U symbol symbol gets the value 'undef' |
1622 |
-U symbol= symbol gets completely empty |
1623 |
-A : manipulate symbol after the platform specific hints have been applied: |
1624 |
-A symbol=value append " "value to symbol |
1625 |
-A append:symbol=value append value to symbol |
1626 |
-A define:symbol=value define symbol to have value |
1627 |
-A clear:symbol define symbol to be '' |
1628 |
-A define:symbol define symbol to be 'define' |
1629 |
-A eval:symbol=value define symbol to be eval of value |
1630 |
-A prepend:symbol=value prepend value to symbol |
1631 |
-A undef:symbol define symbol to be 'undef' |
1632 |
-A undef:symbol= define symbol to be '' |
1633 |
-V : print version number and exit (with a zero status). |
1634 |
EOM |
1635 |
exit 1 |
1636 |
;; |
1637 |
esac |
1638 |
|
1639 |
: Sanity checks |
1640 |
case "$fastread$alldone" in |
1641 |
yescont|yesexit) ;; |
1642 |
*) |
1643 |
case "$extractsh" in |
1644 |
true) ;; |
1645 |
*) |
1646 |
if test ! -t 0; then |
1647 |
echo "Say 'sh Configure', not 'sh <Configure'" |
1648 |
exit 1 |
1649 |
fi |
1650 |
;; |
1651 |
esac |
1652 |
;; |
1653 |
esac |
1654 |
|
1655 |
exec 4>&1 |
1656 |
case "$silent" in |
1657 |
true) exec 1>/dev/null;; |
1658 |
esac |
1659 |
|
1660 |
: run the defines and the undefines, if any, but leave the file out there... |
1661 |
touch optdef.sh |
1662 |
. ./optdef.sh |
1663 |
: create the posthint manipulation script and leave the file out there... |
1664 |
touch posthint.sh |
1665 |
|
1666 |
: set package name |
1667 |
package=perl5 |
1668 |
first=`echo $package | sed -e 's/^\(.\).*/\1/'` |
1669 |
last=`echo $package | sed -e 's/^.\(.*\)/\1/'` |
1670 |
case "`echo AbyZ | tr '[:lower:]' '[:upper:]' 2>/dev/null`" in |
1671 |
ABYZ) spackage=`echo $first | tr '[:lower:]' '[:upper:]'`$last;; |
1672 |
*) spackage=`echo $first | tr '[a-z]' '[A-Z]'`$last;; |
1673 |
esac |
1674 |
|
1675 |
: Some greps do not return status, grrr. |
1676 |
echo "grimblepritz" >grimble |
1677 |
if grep blurfldyick grimble >/dev/null 2>&1 ; then |
1678 |
contains=contains |
1679 |
elif grep grimblepritz grimble >/dev/null 2>&1 ; then |
1680 |
contains=grep |
1681 |
else |
1682 |
contains=contains |
1683 |
fi |
1684 |
rm -f grimble |
1685 |
: the following should work in any shell |
1686 |
case "$contains" in |
1687 |
contains*) |
1688 |
echo " " |
1689 |
echo "AGH! Grep doesn't return a status. Attempting remedial action." |
1690 |
cat >contains <<'EOSS' |
1691 |
grep "$1" "$2" >.greptmp && cat .greptmp && test -s .greptmp |
1692 |
EOSS |
1693 |
chmod +x contains |
1694 |
esac |
1695 |
|
1696 |
: Find the path to the source tree |
1697 |
case "$src" in |
1698 |
'') case "$0" in |
1699 |
*/*) src=`echo $0 | sed -e 's%/[^/][^/]*$%%'` |
1700 |
case "$src" in |
1701 |
/*) ;; |
1702 |
.) ;; |
1703 |
*) src=`cd ../$src && pwd` ;; |
1704 |
esac |
1705 |
;; |
1706 |
*) src='.';; |
1707 |
esac;; |
1708 |
esac |
1709 |
case "$src" in |
1710 |
'') src=/ |
1711 |
rsrc=/ |
1712 |
;; |
1713 |
/*) rsrc="$src";; |
1714 |
*) rsrc="../$src";; |
1715 |
esac |
1716 |
if test -f $rsrc/Configure && \ |
1717 |
$contains "^package=$package$" $rsrc/Configure >/dev/null 2>&1 |
1718 |
then |
1719 |
: found it, so we are ok. |
1720 |
else |
1721 |
rsrc='' |
1722 |
for src in . .. ../.. ../../.. ../../../..; do |
1723 |
if test -f ../$src/Configure && \ |
1724 |
$contains "^package=$package$" ../$src/Configure >/dev/null 2>&1 |
1725 |
then |
1726 |
rsrc=../$src |
1727 |
break |
1728 |
fi |
1729 |
done |
1730 |
fi |
1731 |
case "$rsrc" in |
1732 |
'') |
1733 |
cat <<EOM >&4 |
1734 |
|
1735 |
Sorry, I can't seem to locate the source dir for $package. Please start |
1736 |
Configure with an explicit path -- i.e. /some/path/Configure. |
1737 |
|
1738 |
EOM |
1739 |
exit 1 |
1740 |
;; |
1741 |
../.) rsrc='..';; |
1742 |
*) |
1743 |
echo " " |
1744 |
echo "Sources for $package found in \"$src\"." >&4 |
1745 |
;; |
1746 |
esac |
1747 |
|
1748 |
: script used to extract .SH files with variable substitutions |
1749 |
cat >extract <<'EOS' |
1750 |
PERL_CONFIG_SH=true |
1751 |
echo "Doing variable substitutions on .SH files..." |
1752 |
if test -f MANIFEST; then |
1753 |
set x `awk '{print $1}' < MANIFEST | grep '\.SH$'` |
1754 |
else |
1755 |
echo "(Looking for .SH files under the source directory.)" |
1756 |
set x `(cd "$src"; find . -name "*.SH" -print)` |
1757 |
fi |
1758 |
shift |
1759 |
case $# in |
1760 |
0) set x `(cd "$src"; echo *.SH)`; shift;; |
1761 |
esac |
1762 |
if test ! -f "$src/$1"; then |
1763 |
shift |
1764 |
fi |
1765 |
mkdir_p=' |
1766 |
name=$1; |
1767 |
create=""; |
1768 |
while test $name; do |
1769 |
if test ! -d "$name"; then |
1770 |
create="$name $create"; |
1771 |
name=`echo $name | sed -e "s|^[^/]*$||"`; |
1772 |
name=`echo $name | sed -e "s|\(.*\)/.*|\1|"`; |
1773 |
else |
1774 |
name=""; |
1775 |
fi; |
1776 |
done; |
1777 |
for file in $create; do |
1778 |
mkdir $file; |
1779 |
done |
1780 |
' |
1781 |
for file in $*; do |
1782 |
case "$src" in |
1783 |
".") |
1784 |
case "$file" in |
1785 |
*/*) |
1786 |
dir=`expr X$file : 'X\(.*\)/'` |
1787 |
file=`expr X$file : 'X.*/\(.*\)'` |
1788 |
(cd "$dir" && . ./$file) |
1789 |
;; |
1790 |
*) |
1791 |
. ./$file |
1792 |
;; |
1793 |
esac |
1794 |
;; |
1795 |
*) |
1796 |
case "$file" in |
1797 |
*/*) |
1798 |
dir=`expr X$file : 'X\(.*\)/'` |
1799 |
file=`expr X$file : 'X.*/\(.*\)'` |
1800 |
(set x $dir; shift; eval $mkdir_p) |
1801 |
sh <"$src/$dir/$file" |
1802 |
;; |
1803 |
*) |
1804 |
sh <"$src/$file" |
1805 |
;; |
1806 |
esac |
1807 |
;; |
1808 |
esac |
1809 |
done |
1810 |
if test -f "$src/config_h.SH"; then |
1811 |
if test ! -f config.h; then |
1812 |
: oops, they left it out of MANIFEST, probably, so do it anyway. |
1813 |
. "$src/config_h.SH" |
1814 |
fi |
1815 |
fi |
1816 |
EOS |
1817 |
|
1818 |
: extract files and exit if asked to do so |
1819 |
case "$extractsh" in |
1820 |
true) |
1821 |
case "$realsilent" in |
1822 |
true) ;; |
1823 |
*) exec 1>&4;; |
1824 |
esac |
1825 |
case "$config_sh" in |
1826 |
'') config_sh='config.sh';; |
1827 |
esac |
1828 |
echo " " |
1829 |
echo "Fetching answers from $config_sh..." |
1830 |
cd .. |
1831 |
. $config_sh |
1832 |
test "$override" && . ./optdef.sh |
1833 |
echo " " |
1834 |
. UU/extract |
1835 |
rm -rf UU |
1836 |
echo "Extraction done." |
1837 |
exit 0 |
1838 |
;; |
1839 |
esac |
1840 |
|
1841 |
: Eunice requires " " instead of "", can you believe it |
1842 |
echo " " |
1843 |
: Here we go... |
1844 |
echo "Beginning of configuration questions for $package." |
1845 |
|
1846 |
trap 'echo " "; test -d ../UU && rm -rf X $rmlist; exit 1' 1 2 3 15 |
1847 |
|
1848 |
: first determine how to suppress newline on echo command |
1849 |
echo " " |
1850 |
echo "Checking echo to see how to suppress newlines..." |
1851 |
(echo "hi there\c" ; echo " ") >.echotmp |
1852 |
if $contains c .echotmp >/dev/null 2>&1 ; then |
1853 |
echo "...using -n." |
1854 |
n='-n' |
1855 |
c='' |
1856 |
else |
1857 |
cat <<'EOM' |
1858 |
...using \c |
1859 |
EOM |
1860 |
n='' |
1861 |
c='\c' |
1862 |
fi |
1863 |
echo $n "The star should be here-->$c" |
1864 |
echo '*' |
1865 |
rm -f .echotmp |
1866 |
|
1867 |
: Now test for existence of everything in MANIFEST |
1868 |
echo " " |
1869 |
if test -f "$rsrc/MANIFEST"; then |
1870 |
echo "First let's make sure your kit is complete. Checking..." >&4 |
1871 |
awk '$1 !~ /PACK[A-Z]+/ {print $1}' "$rsrc/MANIFEST" | (split -l 50 2>/dev/null || split -50) |
1872 |
rm -f missing |
1873 |
tmppwd=`pwd` |
1874 |
for filelist in x??; do |
1875 |
(cd "$rsrc"; ls `cat "$tmppwd/$filelist"` >/dev/null 2>>"$tmppwd/missing") |
1876 |
done |
1877 |
if test -s missing; then |
1878 |
cat missing >&4 |
1879 |
cat >&4 <<'EOM' |
1880 |
|
1881 |
THIS PACKAGE SEEMS TO BE INCOMPLETE. |
1882 |
|
1883 |
You have the option of continuing the configuration process, despite the |
1884 |
distinct possibility that your kit is damaged, by typing 'y'es. If you |
1885 |
do, don't blame me if something goes wrong. I advise you to type 'n'o |
1886 |
and contact the author (perlbug@perl.org). |
1887 |
|
1888 |
EOM |
1889 |
echo $n "Continue? [n] $c" >&4 |
1890 |
read ans |
1891 |
case "$ans" in |
1892 |
y*) |
1893 |
echo "Continuing..." >&4 |
1894 |
rm -f missing |
1895 |
;; |
1896 |
*) |
1897 |
echo "ABORTING..." >&4 |
1898 |
kill $$ |
1899 |
;; |
1900 |
esac |
1901 |
else |
1902 |
echo "Looks good..." |
1903 |
fi |
1904 |
else |
1905 |
echo "There is no MANIFEST file. I hope your kit is complete !" |
1906 |
fi |
1907 |
rm -f missing x?? |
1908 |
|
1909 |
echo " " |
1910 |
: Find the appropriate value for a newline for tr |
1911 |
if test -n "$DJGPP"; then |
1912 |
trnl='\012' |
1913 |
fi |
1914 |
if test X"$trnl" = X; then |
1915 |
case "`echo foo|tr '\n' x 2>/dev/null`" in |
1916 |
foox) trnl='\n' ;; |
1917 |
esac |
1918 |
fi |
1919 |
if test X"$trnl" = X; then |
1920 |
case "`echo foo|tr '\012' x 2>/dev/null`" in |
1921 |
foox) trnl='\012' ;; |
1922 |
esac |
1923 |
fi |
1924 |
if test X"$trnl" = X; then |
1925 |
case "`echo foo|tr '\r\n' xy 2>/dev/null`" in |
1926 |
fooxy) trnl='\n\r' ;; |
1927 |
esac |
1928 |
fi |
1929 |
if test X"$trnl" = X; then |
1930 |
cat <<EOM >&2 |
1931 |
|
1932 |
$me: Fatal Error: cannot figure out how to translate newlines with 'tr'. |
1933 |
|
1934 |
EOM |
1935 |
exit 1 |
1936 |
fi |
1937 |
|
1938 |
: compute the number of columns on the terminal for proper question formatting |
1939 |
case "$COLUMNS" in |
1940 |
'') COLUMNS='80';; |
1941 |
esac |
1942 |
|
1943 |
: set up the echo used in my read |
1944 |
myecho="case \"\$xxxm\" in |
1945 |
'') echo $n \"\$rp $c\" >&4;; |
1946 |
*) case \"\$rp\" in |
1947 |
'') echo $n \"[\$xxxm] $c\";; |
1948 |
*) |
1949 |
if test \`echo \"\$rp [\$xxxm] \" | wc -c\` -ge $COLUMNS; then |
1950 |
echo \"\$rp\" >&4 |
1951 |
echo $n \"[\$xxxm] $c\" >&4 |
1952 |
else |
1953 |
echo $n \"\$rp [\$xxxm] $c\" >&4 |
1954 |
fi |
1955 |
;; |
1956 |
esac;; |
1957 |
esac" |
1958 |
|
1959 |
: now set up to do reads with possible shell escape and default assignment |
1960 |
cat <<EOSC >myread |
1961 |
$startsh |
1962 |
xxxm=\$dflt |
1963 |
$myecho |
1964 |
ans='!' |
1965 |
case "\$fastread" in |
1966 |
yes) case "\$dflt" in |
1967 |
'') ;; |
1968 |
*) ans=''; |
1969 |
case "\$silent-\$rp" in |
1970 |
true-) ;; |
1971 |
*) echo " " >&4;; |
1972 |
esac;; |
1973 |
esac;; |
1974 |
*) case "\$silent" in |
1975 |
true) case "\$rp" in |
1976 |
'') ans='';; |
1977 |
esac;; |
1978 |
esac;; |
1979 |
esac |
1980 |
while expr "X\$ans" : "X!" >/dev/null; do |
1981 |
read answ |
1982 |
set x \$xxxm |
1983 |
shift |
1984 |
aok=''; eval "ans=\\"\$answ\\"" && aok=y |
1985 |
case "\$answ" in |
1986 |
"!") |
1987 |
sh 1>&4 |
1988 |
echo " " |
1989 |
$myecho |
1990 |
;; |
1991 |
!*) |
1992 |
set x \`expr "X\$ans" : "X!\(.*\)\$"\` |
1993 |
shift |
1994 |
sh 1>&4 -c "\$*" |
1995 |
echo " " |
1996 |
$myecho |
1997 |
;; |
1998 |
"\$ans") |
1999 |
case "\$ans" in |
2000 |
\\&*) |
2001 |
set x \`expr "X\$ans" : "X&\(.*\)\$"\` |
2002 |
shift |
2003 |
case "\$1" in |
2004 |
-d) |
2005 |
fastread=yes |
2006 |
echo "(OK, I'll run with -d after this question.)" >&4 |
2007 |
;; |
2008 |
-*) |
2009 |
echo "*** Sorry, \$1 not supported yet." >&4 |
2010 |
;; |
2011 |
esac |
2012 |
$myecho |
2013 |
ans=! |
2014 |
;; |
2015 |
esac;; |
2016 |
*) |
2017 |
case "\$aok" in |
2018 |
y) |
2019 |
echo "*** Substitution done -- please confirm." |
2020 |
xxxm="\$ans" |
2021 |
ans=\`echo $n "\$ans$c" | tr '$trnl' ' '\` |
2022 |
xxxm="\$ans" |
2023 |
ans=! |
2024 |
;; |
2025 |
*) |
2026 |
echo "*** Error -- try again." |
2027 |
ans=! |
2028 |
;; |
2029 |
esac |
2030 |
$myecho |
2031 |
;; |
2032 |
esac |
2033 |
case "\$ans\$xxxm\$nostick" in |
2034 |
'') |
2035 |
ans=! |
2036 |
$myecho |
2037 |
;; |
2038 |
esac |
2039 |
done |
2040 |
case "\$ans" in |
2041 |
'') ans="\$xxxm";; |
2042 |
esac |
2043 |
EOSC |
2044 |
|
2045 |
: create .config dir to save info across Configure sessions |
2046 |
test -d ../.config || mkdir ../.config |
2047 |
cat >../.config/README <<EOF |
2048 |
This directory created by Configure to save information that should |
2049 |
persist across sessions for $package. |
2050 |
|
2051 |
You may safely delete it if you wish. |
2052 |
EOF |
2053 |
|
2054 |
xversion=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h` |
2055 |
case "$usedevel" in |
2056 |
$define|true|[yY]*) ;; |
2057 |
*) case "$xversion" in |
2058 |
*[13579]) |
2059 |
cat >&4 <<EOH |
2060 |
*** WHOA THERE!!! *** |
2061 |
|
2062 |
This is an UNSTABLE DEVELOPMENT release. |
2063 |
The version of this $package distribution is $xversion, that is, odd, |
2064 |
(as opposed to even) and that signifies a development release. |
2065 |
If you want a maintenance release, you want an even-numbered version. |
2066 |
|
2067 |
Do ***NOT*** install this into production use. |
2068 |
Data corruption and crashes are possible. |
2069 |
|
2070 |
It is most seriously suggested that you do not continue any further |
2071 |
unless you want to help in developing and debugging Perl. |
2072 |
|
2073 |
If you *still* want to build perl, you can answer 'y' now, |
2074 |
or pass -Dusedevel to Configure. |
2075 |
|
2076 |
EOH |
2077 |
rp='Do you really want to continue?' |
2078 |
dflt='n' |
2079 |
. ./myread |
2080 |
case "$ans" in |
2081 |
[yY]) echo >&4 "Okay, continuing." |
2082 |
usedevel="$define" ;; |
2083 |
*) echo >&4 "Okay, bye." |
2084 |
exit 1 |
2085 |
;; |
2086 |
esac |
2087 |
;; |
2088 |
esac |
2089 |
;; |
2090 |
esac |
2091 |
case "$usedevel" in |
2092 |
$define|true|[yY]*) |
2093 |
case "$versiononly" in |
2094 |
'') versiononly="$define" ;; |
2095 |
esac |
2096 |
case "$installusrbinperl" in |
2097 |
'') installusrbinperl="$undef" ;; |
2098 |
esac |
2099 |
;; |
2100 |
esac |
2101 |
|
2102 |
: general instructions |
2103 |
needman=true |
2104 |
firsttime=true |
2105 |
user=`(logname) 2>/dev/null` |
2106 |
case "$user" in |
2107 |
'') user=`whoami 2>&1`;; |
2108 |
esac |
2109 |
if $contains "^$user\$" ../.config/instruct >/dev/null 2>&1; then |
2110 |
firsttime=false |
2111 |
echo " " |
2112 |
rp='Would you like to see the instructions?' |
2113 |
dflt=n |
2114 |
. ./myread |
2115 |
case "$ans" in |
2116 |
[yY]*) ;; |
2117 |
*) needman=false;; |
2118 |
esac |
2119 |
fi |
2120 |
if $needman; then |
2121 |
cat <<EOH |
2122 |
|
2123 |
This installation shell script will examine your system and ask you questions |
2124 |
to determine how the perl5 package should be installed. If you get |
2125 |
stuck on a question, you may use a ! shell escape to start a subshell or |
2126 |
execute a command. Many of the questions will have default answers in square |
2127 |
brackets; typing carriage return will give you the default. |
2128 |
|
2129 |
On some of the questions which ask for file or directory names you are allowed |
2130 |
to use the ~name construct to specify the login directory belonging to "name", |
2131 |
even if you don't have a shell which knows about that. Questions where this is |
2132 |
allowed will be marked "(~name ok)". |
2133 |
|
2134 |
EOH |
2135 |
rp='' |
2136 |
dflt='Type carriage return to continue' |
2137 |
. ./myread |
2138 |
cat <<'EOH' |
2139 |
|
2140 |
The prompter used in this script allows you to use shell variables and |
2141 |
backticks in your answers. You may use $1, $2, etc... to refer to the words |
2142 |
in the default answer, as if the default line was a set of arguments given to a |
2143 |
script shell. This means you may also use $* to repeat the whole default line, |
2144 |
so you do not have to re-type everything to add something to the default. |
2145 |
|
2146 |
Everytime there is a substitution, you will have to confirm. If there is an |
2147 |
error (e.g. an unmatched backtick), the default answer will remain unchanged |
2148 |
and you will be prompted again. |
2149 |
|
2150 |
If you are in a hurry, you may run 'Configure -d'. This will bypass nearly all |
2151 |
the questions and use the computed defaults (or the previous answers if there |
2152 |
was already a config.sh file). Type 'Configure -h' for a list of options. |
2153 |
You may also start interactively and then answer '& -d' at any prompt to turn |
2154 |
on the non-interactive behaviour for the remainder of the execution. |
2155 |
|
2156 |
EOH |
2157 |
. ./myread |
2158 |
cat <<EOH |
2159 |
|
2160 |
Much effort has been expended to ensure that this shell script will run on any |
2161 |
Unix system. If despite that it blows up on yours, your best bet is to edit |
2162 |
Configure and run it again. If you can't run Configure for some reason, |
2163 |
you'll have to generate a config.sh file by hand. Whatever problems you |
2164 |
have, let me (perlbug@perl.org) know how I blew it. |
2165 |
|
2166 |
This installation script affects things in two ways: |
2167 |
|
2168 |
1) it may do direct variable substitutions on some of the files included |
2169 |
in this kit. |
2170 |
2) it builds a config.h file for inclusion in C programs. You may edit |
2171 |
any of these files as the need arises after running this script. |
2172 |
|
2173 |
If you make a mistake on a question, there is no easy way to back up to it |
2174 |
currently. The easiest thing to do is to edit config.sh and rerun all the SH |
2175 |
files. Configure will offer to let you do this before it runs the SH files. |
2176 |
|
2177 |
EOH |
2178 |
dflt='Type carriage return to continue' |
2179 |
. ./myread |
2180 |
case "$firsttime" in |
2181 |
true) echo $user >>../.config/instruct;; |
2182 |
esac |
2183 |
fi |
2184 |
|
2185 |
: find out where common programs are |
2186 |
echo " " |
2187 |
echo "Locating common programs..." >&4 |
2188 |
cat <<EOSC >loc |
2189 |
$startsh |
2190 |
case \$# in |
2191 |
0) exit 1;; |
2192 |
esac |
2193 |
thing=\$1 |
2194 |
shift |
2195 |
dflt=\$1 |
2196 |
shift |
2197 |
for dir in \$*; do |
2198 |
case "\$thing" in |
2199 |
.) |
2200 |
if test -d \$dir/\$thing; then |
2201 |
echo \$dir |
2202 |
exit 0 |
2203 |
fi |
2204 |
;; |
2205 |
*) |
2206 |
for thisthing in \$dir/\$thing; do |
2207 |
: just loop through to pick last item |
2208 |
done |
2209 |
if test -f \$thisthing; then |
2210 |
echo \$thisthing |
2211 |
exit 0 |
2212 |
elif test "X$_exe" != X -a -f \$thisthing$_exe; then |
2213 |
echo \$thisthing |
2214 |
exit 0 |
2215 |
elif test -f \$dir/\$thing.exe; then |
2216 |
if test -n "$DJGPP"; then |
2217 |
echo \$dir/\$thing.exe |
2218 |
elif test "$eunicefix" != ":"; then |
2219 |
: on Eunice apparently |
2220 |
echo \$dir/\$thing |
2221 |
exit 0 |
2222 |
fi |
2223 |
exit 0 |
2224 |
fi |
2225 |
;; |
2226 |
esac |
2227 |
done |
2228 |
echo \$dflt |
2229 |
exit 1 |
2230 |
EOSC |
2231 |
chmod +x loc |
2232 |
$eunicefix loc |
2233 |
loclist=" |
2234 |
awk |
2235 |
cat |
2236 |
chmod |
2237 |
comm |
2238 |
cp |
2239 |
echo |
2240 |
expr |
2241 |
grep |
2242 |
ls |
2243 |
mkdir |
2244 |
rm |
2245 |
sed |
2246 |
sort |
2247 |
touch |
2248 |
tr |
2249 |
uniq |
2250 |
" |
2251 |
trylist=" |
2252 |
Mcc |
2253 |
ar |
2254 |
bison |
2255 |
byacc |
2256 |
cpp |
2257 |
csh |
2258 |
date |
2259 |
egrep |
2260 |
gmake |
2261 |
gzip |
2262 |
less |
2263 |
ln |
2264 |
make |
2265 |
more |
2266 |
nm |
2267 |
nroff |
2268 |
pg |
2269 |
test |
2270 |
uname |
2271 |
zip |
2272 |
" |
2273 |
pth=`echo $PATH | sed -e "s/$p_/ /g"` |
2274 |
pth="$pth /lib /usr/lib" |
2275 |
for file in $loclist; do |
2276 |
eval xxx=\$$file |
2277 |
case "$xxx" in |
2278 |
/*|?:[\\/]*) |
2279 |
if test -f "$xxx"; then |
2280 |
: ok |
2281 |
else |
2282 |
echo "WARNING: no $xxx -- ignoring your setting for $file." >&4 |
2283 |
xxx=`./loc $file $file $pth` |
2284 |
fi |
2285 |
;; |
2286 |
'') xxx=`./loc $file $file $pth`;; |
2287 |
*) xxx=`./loc $xxx $xxx $pth`;; |
2288 |
esac |
2289 |
eval $file=$xxx$_exe |
2290 |
eval _$file=$xxx |
2291 |
case "$xxx" in |
2292 |
/*) |
2293 |
echo $file is in $xxx. |
2294 |
;; |
2295 |
?:[\\/]*) |
2296 |
echo $file is in $xxx. |
2297 |
;; |
2298 |
*) |
2299 |
echo "I don't know where '$file' is, and my life depends on it." >&4 |
2300 |
echo "Go find a public domain implementation or fix your PATH setting!" >&4 |
2301 |
exit 1 |
2302 |
;; |
2303 |
esac |
2304 |
done |
2305 |
echo " " |
2306 |
echo "Don't worry if any of the following aren't found..." |
2307 |
say=offhand |
2308 |
for file in $trylist; do |
2309 |
eval xxx=\$$file |
2310 |
case "$xxx" in |
2311 |
/*|?:[\\/]*) |
2312 |
if test -f "$xxx"; then |
2313 |
: ok |
2314 |
else |
2315 |
echo "WARNING: no $xxx -- ignoring your setting for $file." >&4 |
2316 |
xxx=`./loc $file $file $pth` |
2317 |
fi |
2318 |
;; |
2319 |
'') xxx=`./loc $file $file $pth`;; |
2320 |
*) xxx=`./loc $xxx $xxx $pth`;; |
2321 |
esac |
2322 |
eval $file=$xxx$_exe |
2323 |
eval _$file=$xxx |
2324 |
case "$xxx" in |
2325 |
/*) |
2326 |
echo $file is in $xxx. |
2327 |
;; |
2328 |
?:[\\/]*) |
2329 |
echo $file is in $xxx. |
2330 |
;; |
2331 |
*) |
2332 |
echo "I don't see $file out there, $say." |
2333 |
say=either |
2334 |
;; |
2335 |
esac |
2336 |
done |
2337 |
case "$egrep" in |
2338 |
egrep) |
2339 |
echo "Substituting grep for egrep." |
2340 |
egrep=$grep |
2341 |
_egrep=$grep |
2342 |
;; |
2343 |
esac |
2344 |
case "$ln" in |
2345 |
ln) |
2346 |
echo "Substituting cp for ln." |
2347 |
ln=$cp |
2348 |
_ln=$cp |
2349 |
;; |
2350 |
esac |
2351 |
case "$make" in |
2352 |
make) |
2353 |
case "$gmake" in |
2354 |
gmake) |
2355 |
echo "I can't find make or gmake, and my life depends on it." >&4 |
2356 |
echo "Go find a public domain implementation or fix your PATH setting!" >&4 |
2357 |
exit 1 |
2358 |
;; |
2359 |
esac |
2360 |
;; |
2361 |
esac |
2362 |
case "$gmake" in |
2363 |
gmake) ;; |
2364 |
*) # We can't have osname yet. |
2365 |
if test -f "/system/gnu_library/bin/ar.pm"; then # Stratus VOS |
2366 |
# Assume that gmake, if found, is definitely GNU make |
2367 |
# and prefer it over the system make. |
2368 |
echo "Substituting gmake for make." |
2369 |
make=$gmake |
2370 |
_make=$gmake |
2371 |
fi |
2372 |
;; |
2373 |
esac |
2374 |
case "$test" in |
2375 |
test) |
2376 |
echo "Hopefully test is built into your sh." |
2377 |
;; |
2378 |
*) |
2379 |
if `sh -c "PATH= test true" >/dev/null 2>&1`; then |
2380 |
echo "Using the test built into your sh." |
2381 |
test=test |
2382 |
_test=test |
2383 |
fi |
2384 |
;; |
2385 |
esac |
2386 |
case "$echo" in |
2387 |
echo) |
2388 |
echo "Hopefully echo is built into your sh." |
2389 |
;; |
2390 |
'') ;; |
2391 |
*) |
2392 |
echo " " |
2393 |
echo "Checking compatibility between $echo and builtin echo (if any)..." >&4 |
2394 |
$echo $n "hi there$c" >foo1 |
2395 |
echo $n "hi there$c" >foo2 |
2396 |
if cmp foo1 foo2 >/dev/null 2>&1; then |
2397 |
echo "They are compatible. In fact, they may be identical." |
2398 |
else |
2399 |
case "$n" in |
2400 |
'-n') n='' c='\c';; |
2401 |
*) n='-n' c='';; |
2402 |
esac |
2403 |
cat <<FOO |
2404 |
They are not compatible! You are probably running ksh on a non-USG system. |
2405 |
I'll have to use $echo instead of the builtin, since Bourne shell doesn't |
2406 |
have echo built in and we may have to run some Bourne shell scripts. That |
2407 |
means I'll have to use '$n$c' to suppress newlines now. Life is ridiculous. |
2408 |
|
2409 |
FOO |
2410 |
$echo $n "The star should be here-->$c" |
2411 |
$echo "*" |
2412 |
fi |
2413 |
$rm -f foo1 foo2 |
2414 |
;; |
2415 |
esac |
2416 |
|
2417 |
cat <<EOS >trygcc |
2418 |
$startsh |
2419 |
EOS |
2420 |
cat <<'EOSC' >>trygcc |
2421 |
case "$cc" in |
2422 |
'') ;; |
2423 |
*) $rm -f try try.* |
2424 |
$cat >try.c <<EOM |
2425 |
int main(int argc, char *argv[]) { |
2426 |
return 0; |
2427 |
} |
2428 |
EOM |
2429 |
if $cc -o try $ccflags $ldflags try.c; then |
2430 |
: |
2431 |
else |
2432 |
echo "Uh-oh, the C compiler '$cc' doesn't seem to be working." >&4 |
2433 |
despair=yes |
2434 |
trygcc=yes |
2435 |
case "$cc" in |
2436 |
*gcc*) trygcc=no ;; |
2437 |
esac |
2438 |
case "`$cc -v -c try.c 2>&1`" in |
2439 |
*gcc*) trygcc=no ;; |
2440 |
esac |
2441 |
if $test X"$trygcc" = Xyes; then |
2442 |
if gcc -o try -c try.c; then |
2443 |
echo " " |
2444 |
echo "You seem to have a working gcc, though." >&4 |
2445 |
rp="Would you like to use it?" |
2446 |
dflt=y |
2447 |
if $test -f myread; then |
2448 |
. ./myread |
2449 |
else |
2450 |
if $test -f UU/myread; then |
2451 |
. ./UU/myread |
2452 |
else |
2453 |
echo "Cannot find myread, sorry. Aborting." >&2 |
2454 |
exit 1 |
2455 |
fi |
2456 |
fi |
2457 |
case "$ans" in |
2458 |
[yY]*) cc=gcc; ccname=gcc; ccflags=''; despair=no; |
2459 |
if $test -f usethreads.cbu; then |
2460 |
$cat >&4 <<EOM |
2461 |
|
2462 |
*** However, any setting of the C compiler flags (e.g. for thread support) |
2463 |
*** has been lost. It may be necessary to pass -Dcc=gcc to Configure |
2464 |
*** (together with e.g. -Dusethreads). |
2465 |
|
2466 |
EOM |
2467 |
fi;; |
2468 |
esac |
2469 |
fi |
2470 |
fi |
2471 |
fi |
2472 |
$rm -f try try.* |
2473 |
;; |
2474 |
esac |
2475 |
EOSC |
2476 |
|
2477 |
cat <<EOS >checkcc |
2478 |
$startsh |
2479 |
EOS |
2480 |
cat <<'EOSC' >>checkcc |
2481 |
case "$cc" in |
2482 |
'') ;; |
2483 |
*) $rm -f try try.* |
2484 |
$cat >try.c <<EOM |
2485 |
int main(int argc, char *argv[]) { |
2486 |
return 0; |
2487 |
} |
2488 |
EOM |
2489 |
if $cc -o try $ccflags $ldflags try.c; then |
2490 |
: |
2491 |
else |
2492 |
if $test X"$despair" = Xyes; then |
2493 |
echo "Uh-oh, the C compiler '$cc' doesn't seem to be working." >&4 |
2494 |
fi |
2495 |
$cat >&4 <<EOM |
2496 |
You need to find a working C compiler. |
2497 |
Either (purchase and) install the C compiler supplied by your OS vendor, |
2498 |
or for a free C compiler try http://gcc.gnu.org/ |
2499 |
I cannot continue any further, aborting. |
2500 |
EOM |
2501 |
exit 1 |
2502 |
fi |
2503 |
$rm -f try try.* |
2504 |
;; |
2505 |
esac |
2506 |
EOSC |
2507 |
|
2508 |
: determine whether symbolic links are supported |
2509 |
echo " " |
2510 |
$touch blurfl |
2511 |
if $ln -s blurfl sym > /dev/null 2>&1 ; then |
2512 |
echo "Symbolic links are supported." >&4 |
2513 |
lns="$ln -s" |
2514 |
else |
2515 |
echo "Symbolic links are NOT supported." >&4 |
2516 |
lns="$ln" |
2517 |
fi |
2518 |
$rm -f blurfl sym |
2519 |
|
2520 |
: determine whether symbolic links are supported |
2521 |
echo " " |
2522 |
case "$lns" in |
2523 |
*"ln"*" -s") |
2524 |
echo "Checking how to test for symbolic links..." >&4 |
2525 |
$lns blurfl sym |
2526 |
if $test "X$issymlink" = X; then |
2527 |
case "$newsh" in |
2528 |
'') sh -c "PATH= test -h sym" >/dev/null 2>&1 ;; |
2529 |
*) $newsh -c "PATH= test -h sym" >/dev/null 2>&1 ;; |
2530 |
esac |
2531 |
if test $? = 0; then |
2532 |
issymlink="test -h" |
2533 |
else |
2534 |
echo "Your builtin 'test -h' may be broken." >&4 |
2535 |
case "$test" in |
2536 |
/*) ;; |
2537 |
*) pth=`echo $PATH | sed -e "s/$p_/ /g"` |
2538 |
for p in $pth |
2539 |
do |
2540 |
if test -f "$p/$test"; then |
2541 |
test="$p/$test" |
2542 |
break |
2543 |
fi |
2544 |
done |
2545 |
;; |
2546 |
esac |
2547 |
case "$test" in |
2548 |
/*) |
2549 |
echo "Trying external '$test -h'." >&4 |
2550 |
issymlink="$test -h" |
2551 |
if $test ! -h sym >/dev/null 2>&1; then |
2552 |
echo "External '$test -h' is broken, too." >&4 |
2553 |
issymlink='' |
2554 |
fi |
2555 |
;; |
2556 |
*) issymlink='' ;; |
2557 |
esac |
2558 |
fi |
2559 |
fi |
2560 |
if $test "X$issymlink" = X; then |
2561 |
if $test -L sym 2>/dev/null; then |
2562 |
issymlink="$test -L" |
2563 |
echo "The builtin '$test -L' worked." >&4 |
2564 |
fi |
2565 |
fi |
2566 |
if $test "X$issymlink" != X; then |
2567 |
echo "You can test for symbolic links with '$issymlink'." >&4 |
2568 |
else |
2569 |
echo "I do not know how you can test for symbolic links." >&4 |
2570 |
fi |
2571 |
$rm -f blurfl sym |
2572 |
;; |
2573 |
*) echo "No symbolic links, so not testing for their testing..." >&4 |
2574 |
;; |
2575 |
esac |
2576 |
echo " " |
2577 |
|
2578 |
|
2579 |
case "$mksymlinks" in |
2580 |
$define|true|[yY]*) |
2581 |
case "$src" in |
2582 |
''|'.') echo "Cannot create symlinks in the original directory." >&4 |
2583 |
exit 1 |
2584 |
;; |
2585 |
*) case "$lns:$issymlink" in |
2586 |
*"ln"*" -s:"*"test -"?) |
2587 |
echo "Creating the symbolic links..." >&4 |
2588 |
echo "(First creating the subdirectories...)" >&4 |
2589 |
cd .. |
2590 |
awk '{print $1}' $src/MANIFEST | grep / | sed 's:/[^/]*$::' | sort -u | while true; do |
2591 |
read directory |
2592 |
test -z "$directory" && break |
2593 |
mkdir -p $directory |
2594 |
done |
2595 |
# Sanity check 1. |
2596 |
if test ! -d t/base; then |
2597 |
echo "Failed to create the subdirectories. Aborting." >&4 |
2598 |
exit 1 |
2599 |
fi |
2600 |
echo "(Then creating the symlinks...)" >&4 |
2601 |
awk '{print $1}' $src/MANIFEST | while true; do |
2602 |
read filename |
2603 |
test -z "$filename" && break |
2604 |
if test -f $filename; then |
2605 |
if $issymlink $filename; then |
2606 |
rm -f $filename |
2607 |
fi |
2608 |
fi |
2609 |
if test -f $filename; then |
2610 |
echo "$filename already exists, not symlinking." |
2611 |
else |
2612 |
ln -s $src/$filename $filename |
2613 |
fi |
2614 |
done |
2615 |
# Sanity check 2. |
2616 |
if test ! -f t/base/lex.t; then |
2617 |
echo "Failed to create the symlinks (t/base/lex.t missing). Aborting." >&4 |
2618 |
exit 1 |
2619 |
fi |
2620 |
cd UU |
2621 |
;; |
2622 |
*) echo "(I cannot figure out how to do symbolic links, ignoring mksymlinks)." >&4 |
2623 |
;; |
2624 |
esac |
2625 |
;; |
2626 |
esac |
2627 |
;; |
2628 |
esac |
2629 |
|
2630 |
|
2631 |
case "$usecrosscompile" in |
2632 |
$define|true|[yY]*) |
2633 |
$echo "Cross-compiling..." |
2634 |
croak='' |
2635 |
case "$cc" in |
2636 |
*-*-gcc) # A cross-compiling gcc, probably. |
2637 |
targetarch=`$echo $cc|$sed 's/-gcc$//'` |
2638 |
ar=$targetarch-ar |
2639 |
# leave out ld, choosing it is more complex |
2640 |
nm=$targetarch-nm |
2641 |
ranlib=$targetarch-ranlib |
2642 |
$echo 'extern int foo;' > try.c |
2643 |
set X `$cc -v -E try.c 2>&1 | $awk '/^#include </,/^End of search /'|$grep '/include'` |
2644 |
shift |
2645 |
if $test $# -gt 0; then |
2646 |
incpth="$incpth $*" |
2647 |
incpth="`$echo $incpth|$sed 's/^ //'`" |
2648 |
echo "Guessing incpth '$incpth'." >&4 |
2649 |
for i in $*; do |
2650 |
j="`$echo $i|$sed 's,/include$,/lib,'`" |
2651 |
if $test -d $j; then |
2652 |
libpth="$libpth $j" |
2653 |
fi |
2654 |
done |
2655 |
libpth="`$echo $libpth|$sed 's/^ //'`" |
2656 |
echo "Guessing libpth '$libpth'." >&4 |
2657 |
fi |
2658 |
$rm -f try.c |
2659 |
;; |
2660 |
esac |
2661 |
case "$targetarch" in |
2662 |
'') echo "Targetarch not defined." >&4; croak=y ;; |
2663 |
*) echo "Using targetarch $targetarch." >&4 ;; |
2664 |
esac |
2665 |
case "$incpth" in |
2666 |
'') echo "Incpth not defined." >&4; croak=y ;; |
2667 |
*) echo "Using incpth '$incpth'." >&4 ;; |
2668 |
esac |
2669 |
case "$libpth" in |
2670 |
'') echo "Libpth not defined." >&4; croak=y ;; |
2671 |
*) echo "Using libpth '$libpth'." >&4 ;; |
2672 |
esac |
2673 |
case "$usrinc" in |
2674 |
'') for i in $incpth; do |
2675 |
if $test -f $i/errno.h -a -f $i/stdio.h -a -f $i/time.h; then |
2676 |
usrinc=$i |
2677 |
echo "Guessing usrinc $usrinc." >&4 |
2678 |
break |
2679 |
fi |
2680 |
done |
2681 |
case "$usrinc" in |
2682 |
'') echo "Usrinc not defined." >&4; croak=y ;; |
2683 |
esac |
2684 |
;; |
2685 |
*) echo "Using usrinc $usrinc." >&4 ;; |
2686 |
esac |
2687 |
case "$targethost" in |
2688 |
'') echo "Targethost not defined." >&4; croak=y ;; |
2689 |
*) echo "Using targethost $targethost." >&4 |
2690 |
esac |
2691 |
locincpth=' ' |
2692 |
loclibpth=' ' |
2693 |
case "$croak" in |
2694 |
y) echo "Cannot continue, aborting." >&4; exit 1 ;; |
2695 |
esac |
2696 |
case "$src" in |
2697 |
/*) run=$src/Cross/run |
2698 |
targetmkdir=$src/Cross/mkdir |
2699 |
to=$src/Cross/to |
2700 |
from=$src/Cross/from |
2701 |
;; |
2702 |
*) pwd=`$test -f ../Configure & cd ..; pwd` |
2703 |
run=$pwd/Cross/run |
2704 |
targetmkdir=$pwd/Cross/mkdir |
2705 |
to=$pwd/Cross/to |
2706 |
from=$pwd/Cross/from |
2707 |
;; |
2708 |
esac |
2709 |
case "$targetrun" in |
2710 |
'') targetrun=ssh ;; |
2711 |
esac |
2712 |
case "$targetto" in |
2713 |
'') targetto=scp ;; |
2714 |
esac |
2715 |
case "$targetfrom" in |
2716 |
'') targetfrom=scp ;; |
2717 |
esac |
2718 |
run=$run-$targetrun |
2719 |
to=$to-$targetto |
2720 |
from=$from-$targetfrom |
2721 |
case "$targetdir" in |
2722 |
'') targetdir=/tmp |
2723 |
echo "Guessing targetdir $targetdir." >&4 |
2724 |
;; |
2725 |
esac |
2726 |
case "$targetuser" in |
2727 |
'') targetuser=root |
2728 |
echo "Guessing targetuser $targetuser." >&4 |
2729 |
;; |
2730 |
esac |
2731 |
case "$targetfrom" in |
2732 |
scp) q=-q ;; |
2733 |
*) q='' ;; |
2734 |
esac |
2735 |
case "$targetrun" in |
2736 |
ssh|rsh) |
2737 |
cat >$run <<EOF |
2738 |
#!/bin/sh |
2739 |
case "\$1" in |
2740 |
-cwd) |
2741 |
shift |
2742 |
cwd=\$1 |
2743 |
shift |
2744 |
;; |
2745 |
esac |
2746 |
case "\$cwd" in |
2747 |
'') cwd=$targetdir ;; |
2748 |
esac |
2749 |
exe=\$1 |
2750 |
shift |
2751 |
if $test ! -f \$exe.xok; then |
2752 |
$to \$exe |
2753 |
$touch \$exe.xok |
2754 |
fi |
2755 |
$targetrun -l $targetuser $targethost "cd \$cwd && ./\$exe \$@" |
2756 |
EOF |
2757 |
;; |
2758 |
*) echo "Unknown targetrun '$targetrun'" >&4 |
2759 |
exit 1 |
2760 |
;; |
2761 |
esac |
2762 |
case "$targetmkdir" in |
2763 |
*/Cross/mkdir) |
2764 |
cat >$targetmkdir <<EOF |
2765 |
#!/bin/sh |
2766 |
$targetrun -l $targetuser $targethost "mkdir -p \$@" |
2767 |
EOF |
2768 |
$chmod a+rx $targetmkdir |
2769 |
;; |
2770 |
*) echo "Unknown targetmkdir '$targetmkdir'" >&4 |
2771 |
exit 1 |
2772 |
;; |
2773 |
esac |
2774 |
case "$targetto" in |
2775 |
scp|rcp) |
2776 |
cat >$to <<EOF |
2777 |
#!/bin/sh |
2778 |
for f in \$@ |
2779 |
do |
2780 |
case "\$f" in |
2781 |
/*) |
2782 |
$targetmkdir \`dirname \$f\` |
2783 |
$targetto $q \$f $targetuser@$targethost:\$f || exit 1 |
2784 |
;; |
2785 |
*) |
2786 |
$targetmkdir $targetdir/\`dirname \$f\` |
2787 |
$targetto $q \$f $targetuser@$targethost:$targetdir/\$f || exit 1 |
2788 |
;; |
2789 |
esac |
2790 |
done |
2791 |
exit 0 |
2792 |
EOF |
2793 |
;; |
2794 |
cp) cat >$to <<EOF |
2795 |
#!/bin/sh |
2796 |
for f in \$@ |
2797 |
do |
2798 |
case "\$f" in |
2799 |
/*) |
2800 |
$mkdir -p $targetdir/\`dirname \$f\` |
2801 |
$cp \$f $targetdir/\$f || exit 1 |
2802 |
;; |
2803 |
*) |
2804 |
$targetmkdir $targetdir/\`dirname \$f\` |
2805 |
$cp \$f $targetdir/\$f || exit 1 |
2806 |
;; |
2807 |
esac |
2808 |
done |
2809 |
exit 0 |
2810 |
EOF |
2811 |
;; |
2812 |
*) echo "Unknown targetto '$targetto'" >&4 |
2813 |
exit 1 |
2814 |
;; |
2815 |
esac |
2816 |
case "$targetfrom" in |
2817 |
scp|rcp) |
2818 |
cat >$from <<EOF |
2819 |
#!/bin/sh |
2820 |
for f in \$@ |
2821 |
do |
2822 |
$rm -f \$f |
2823 |
$targetfrom $q $targetuser@$targethost:$targetdir/\$f . || exit 1 |
2824 |
done |
2825 |
exit 0 |
2826 |
EOF |
2827 |
;; |
2828 |
cp) cat >$from <<EOF |
2829 |
#!/bin/sh |
2830 |
for f in \$@ |
2831 |
do |
2832 |
$rm -f \$f |
2833 |
cp $targetdir/\$f . || exit 1 |
2834 |
done |
2835 |
exit 0 |
2836 |
EOF |
2837 |
;; |
2838 |
*) echo "Unknown targetfrom '$targetfrom'" >&4 |
2839 |
exit 1 |
2840 |
;; |
2841 |
esac |
2842 |
if $test ! -f $run; then |
2843 |
echo "Target 'run' script '$run' not found." >&4 |
2844 |
else |
2845 |
$chmod a+rx $run |
2846 |
fi |
2847 |
if $test ! -f $to; then |
2848 |
echo "Target 'to' script '$to' not found." >&4 |
2849 |
else |
2850 |
$chmod a+rx $to |
2851 |
fi |
2852 |
if $test ! -f $from; then |
2853 |
echo "Target 'from' script '$from' not found." >&4 |
2854 |
else |
2855 |
$chmod a+rx $from |
2856 |
fi |
2857 |
if $test ! -f $run -o ! -f $to -o ! -f $from; then |
2858 |
exit 1 |
2859 |
fi |
2860 |
cat >&4 <<EOF |
2861 |
Using '$run' for remote execution, |
2862 |
and '$from' and '$to' |
2863 |
for remote file transfer. |
2864 |
EOF |
2865 |
;; |
2866 |
*) run='' |
2867 |
to=: |
2868 |
from=: |
2869 |
usecrosscompile='undef' |
2870 |
targetarch='' |
2871 |
;; |
2872 |
esac |
2873 |
|
2874 |
: see whether [:lower:] and [:upper:] are supported character classes |
2875 |
echo " " |
2876 |
case "`echo AbyZ | $tr '[:lower:]' '[:upper:]' 2>/dev/null`" in |
2877 |
ABYZ) |
2878 |
echo "Good, your tr supports [:lower:] and [:upper:] to convert case." >&4 |
2879 |
up='[:upper:]' |
2880 |
low='[:lower:]' |
2881 |
;; |
2882 |
*) # There is a discontinuity in EBCDIC between 'R' and 'S' |
2883 |
# (0xd9 and 0xe2), therefore that is a nice testing point. |
2884 |
if test "X$up" = X -o "X$low" = X; then |
2885 |
case "`echo RS | $tr '[R-S]' '[r-s]' 2>/dev/null`" in |
2886 |
rs) up='[A-Z]' |
2887 |
low='[a-z]' |
2888 |
;; |
2889 |
esac |
2890 |
fi |
2891 |
if test "X$up" = X -o "X$low" = X; then |
2892 |
case "`echo RS | $tr R-S r-s 2>/dev/null`" in |
2893 |
rs) up='A-Z' |
2894 |
low='a-z' |
2895 |
;; |
2896 |
esac |
2897 |
fi |
2898 |
if test "X$up" = X -o "X$low" = X; then |
2899 |
case "`echo RS | od -x 2>/dev/null`" in |
2900 |
*D9E2*|*d9e2*) |
2901 |
echo "Hey, this might be EBCDIC." >&4 |
2902 |
if test "X$up" = X -o "X$low" = X; then |
2903 |
case "`echo RS | $tr '[A-IJ-RS-Z]' '[a-ij-rs-z]' 2>/dev/null`" in |
2904 |
rs) up='[A-IJ-RS-Z]' |
2905 |
low='[a-ij-rs-z]' |
2906 |
;; |
2907 |
esac |
2908 |
fi |
2909 |
if test "X$up" = X -o "X$low" = X; then |
2910 |
case "`echo RS | $tr A-IJ-RS-Z a-ij-rs-z 2>/dev/null`" in |
2911 |
rs) up='A-IJ-RS-Z' |
2912 |
low='a-ij-rs-z' |
2913 |
;; |
2914 |
esac |
2915 |
fi |
2916 |
;; |
2917 |
esac |
2918 |
fi |
2919 |
esac |
2920 |
case "`echo RS | $tr \"$up\" \"$low\" 2>/dev/null`" in |
2921 |
rs) |
2922 |
echo "Using $up and $low to convert case." >&4 |
2923 |
;; |
2924 |
*) |
2925 |
echo "I don't know how to translate letters from upper to lower case." >&4 |
2926 |
echo "Your tr is not acting any way I know of." >&4 |
2927 |
exit 1 |
2928 |
;; |
2929 |
esac |
2930 |
: set up the translation script tr, must be called with ./tr of course |
2931 |
cat >tr <<EOSC |
2932 |
$startsh |
2933 |
case "\$1\$2" in |
2934 |
'[A-Z][a-z]') exec $tr '$up' '$low';; |
2935 |
'[a-z][A-Z]') exec $tr '$low' '$up';; |
2936 |
esac |
2937 |
exec $tr "\$@" |
2938 |
EOSC |
2939 |
chmod +x tr |
2940 |
$eunicefix tr |
2941 |
|
2942 |
: Try to determine whether config.sh was made on this system |
2943 |
case "$config_sh" in |
2944 |
'') |
2945 |
myuname=`$uname -a 2>/dev/null` |
2946 |
$test -z "$myuname" && myuname=`hostname 2>/dev/null` |
2947 |
# tr '[A-Z]' '[a-z]' would not work in EBCDIC |
2948 |
# because the A-Z/a-z are not consecutive. |
2949 |
myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e 's/\///g' | \ |
2950 |
./tr '[A-Z]' '[a-z]' | $tr $trnl ' '` |
2951 |
newmyuname="$myuname" |
2952 |
dflt=n |
2953 |
case "$knowitall" in |
2954 |
'') |
2955 |
if test -f ../config.sh; then |
2956 |
if $contains myuname= ../config.sh >/dev/null 2>&1; then |
2957 |
eval "`grep myuname= ../config.sh`" |
2958 |
fi |
2959 |
if test "X$myuname" = "X$newmyuname"; then |
2960 |
dflt=y |
2961 |
fi |
2962 |
fi |
2963 |
;; |
2964 |
*) dflt=y;; |
2965 |
esac |
2966 |
|
2967 |
: Get old answers from old config file if Configure was run on the |
2968 |
: same system, otherwise use the hints. |
2969 |
hint=default |
2970 |
cd .. |
2971 |
if test -f config.sh; then |
2972 |
echo " " |
2973 |
rp="I see a config.sh file. Shall I use it to set the defaults?" |
2974 |
. UU/myread |
2975 |
case "$ans" in |
2976 |
n*|N*) echo "OK, I'll ignore it." |
2977 |
mv config.sh config.sh.old |
2978 |
myuname="$newmyuname" |
2979 |
;; |
2980 |
*) echo "Fetching default answers from your old config.sh file..." >&4 |
2981 |
tmp_n="$n" |
2982 |
tmp_c="$c" |
2983 |
tmp_sh="$sh" |
2984 |
. ./config.sh |
2985 |
cp config.sh UU |
2986 |
n="$tmp_n" |
2987 |
c="$tmp_c" |
2988 |
: Older versions did not always set $sh. Catch re-use of such |
2989 |
: an old config.sh. |
2990 |
case "$sh" in |
2991 |
'') sh="$tmp_sh" ;; |
2992 |
esac |
2993 |
hint=previous |
2994 |
;; |
2995 |
esac |
2996 |
fi |
2997 |
. ./UU/checkcc |
2998 |
if test ! -f config.sh; then |
2999 |
$cat <<EOM |
3000 |
|
3001 |
First time through, eh? I have some defaults handy for some systems |
3002 |
that need some extra help getting the Configure answers right: |
3003 |
|
3004 |
EOM |
3005 |
(cd $src/hints; ls -C *.sh) | $sed 's/\.sh/ /g' >&4 |
3006 |
dflt='' |
3007 |
: Half the following guesses are probably wrong... If you have better |
3008 |
: tests or hints, please send them to perlbug@perl.org |
3009 |
: The metaconfig authors would also appreciate a copy... |
3010 |
$test -f /irix && osname=irix |
3011 |
$test -f /xenix && osname=sco_xenix |
3012 |
$test -f /dynix && osname=dynix |
3013 |
$test -f /dnix && osname=dnix |
3014 |
$test -f /lynx.os && osname=lynxos |
3015 |
$test -f /unicos && osname=unicos && osvers=`$uname -r` |
3016 |
$test -f /unicosmk && osname=unicosmk && osvers=`$uname -r` |
3017 |
$test -f /unicosmk.ar && osname=unicosmk && osvers=`$uname -r` |
3018 |
$test -f /bin/mips && /bin/mips && osname=mips |
3019 |
$test -d /NextApps && set X `hostinfo | grep 'NeXT Mach.*:' | \ |
3020 |
$sed -e 's/://' -e 's/\./_/'` && osname=next && osvers=$4 |
3021 |
$test -d /usr/apollo/bin && osname=apollo |
3022 |
$test -f /etc/saf/_sactab && osname=svr4 |
3023 |
$test -d /usr/include/minix && osname=minix |
3024 |
$test -f /system/gnu_library/bin/ar.pm && osname=vos |
3025 |
if $test -d /MachTen -o -d /MachTen_Folder; then |
3026 |
osname=machten |
3027 |
if $test -x /sbin/version; then |
3028 |
osvers=`/sbin/version | $awk '{print $2}' | |
3029 |
$sed -e 's/[A-Za-z]$//'` |
3030 |
elif $test -x /usr/etc/version; then |
3031 |
osvers=`/usr/etc/version | $awk '{print $2}' | |
3032 |
$sed -e 's/[A-Za-z]$//'` |
3033 |
else |
3034 |
osvers="$2.$3" |
3035 |
fi |
3036 |
fi |
3037 |
|
3038 |
$test -f /sys/posix.dll && |
3039 |
$test -f /usr/bin/what && |
3040 |
set X `/usr/bin/what /sys/posix.dll` && |
3041 |
$test "$3" = UWIN && |
3042 |
osname=uwin && |
3043 |
osvers="$5" |
3044 |
|
3045 |
if $test -f $uname; then |
3046 |
set X $myuname |
3047 |
shift |
3048 |
|
3049 |
case "$5" in |
3050 |
fps*) osname=fps ;; |
3051 |
mips*) |
3052 |
case "$4" in |
3053 |
umips) osname=umips ;; |
3054 |
*) osname=mips ;; |
3055 |
esac;; |
3056 |
[23]100) osname=mips ;; |
3057 |
next*) osname=next ;; |
3058 |
i386*) |
3059 |
tmp=`/bin/uname -X 2>/dev/null|awk '/3\.2v[45]/{ print $(NF) }'` |
3060 |
if $test "$tmp" != "" -a "$3" = "3.2" -a -f '/etc/systemid'; then |
3061 |
osname='sco' |
3062 |
osvers=$tmp |
3063 |
elif $test -f /etc/kconfig; then |
3064 |
osname=isc |
3065 |
if test "$lns" = "$ln -s"; then |
3066 |
osvers=4 |
3067 |
elif $contains _SYSV3 /usr/include/stdio.h > /dev/null 2>&1 ; then |
3068 |
osvers=3 |
3069 |
elif $contains _POSIX_SOURCE /usr/include/stdio.h > /dev/null 2>&1 ; then |
3070 |
osvers=2 |
3071 |
fi |
3072 |
fi |
3073 |
tmp='' |
3074 |
;; |
3075 |
pc*) |
3076 |
if test -n "$DJGPP"; then |
3077 |
osname=dos |
3078 |
osvers=djgpp |
3079 |
fi |
3080 |
;; |
3081 |
esac |
3082 |
|
3083 |
case "$1" in |
3084 |
aix) osname=aix |
3085 |
tmp=`( (oslevel) 2>/dev/null || echo "not found") 2>&1` |
3086 |
case "$tmp" in |
3087 |
# oslevel can fail with: |
3088 |
# oslevel: Unable to acquire lock. |
3089 |
*not\ found) osvers="$4"."$3" ;; |
3090 |
'<3240'|'<>3240') osvers=3.2.0 ;; |
3091 |
'=3240'|'>3240'|'<3250'|'<>3250') osvers=3.2.4 ;; |
3092 |
'=3250'|'>3250') osvers=3.2.5 ;; |
3093 |
*) osvers=$tmp;; |
3094 |
esac |
3095 |
;; |
3096 |
bsd386) osname=bsd386 |
3097 |
osvers=`$uname -r` |
3098 |
;; |
3099 |
cygwin*) osname=cygwin |
3100 |
osvers="$3" |
3101 |
;; |
3102 |
*dc.osx) osname=dcosx |
3103 |
osvers="$3" |
3104 |
;; |
3105 |
dnix) osname=dnix |
3106 |
osvers="$3" |
3107 |
;; |
3108 |
domainos) osname=apollo |
3109 |
osvers="$3" |
3110 |
;; |
3111 |
dgux) osname=dgux |
3112 |
osvers="$3" |
3113 |
;; |
3114 |
dynixptx*) osname=dynixptx |
3115 |
osvers=`echo "$4"|sed 's/^v//'` |
3116 |
;; |
3117 |
freebsd) osname=freebsd |
3118 |
osvers="$3" ;; |
3119 |
genix) osname=genix ;; |
3120 |
gnu) osname=gnu |
3121 |
osvers="$3" ;; |
3122 |
hp*) osname=hpux |
3123 |
osvers=`echo "$3" | $sed 's,.*\.\([0-9]*\.[0-9]*\),\1,'` |
3124 |
;; |
3125 |
irix*) osname=irix |
3126 |
case "$3" in |
3127 |
4*) osvers=4 ;; |
3128 |
5*) osvers=5 ;; |
3129 |
*) osvers="$3" ;; |
3130 |
esac |
3131 |
;; |
3132 |
linux) osname=linux |
3133 |
case "$3" in |
3134 |
*) osvers="$3" ;; |
3135 |
esac |
3136 |
;; |
3137 |
MiNT) osname=mint |
3138 |
;; |
3139 |
netbsd*) osname=netbsd |
3140 |
osvers="$3" |
3141 |
;; |
3142 |
news-os) osvers="$3" |
3143 |
case "$3" in |
3144 |
4*) osname=newsos4 ;; |
3145 |
*) osname=newsos ;; |
3146 |
esac |
3147 |
;; |
3148 |
next*) osname=next ;; |
3149 |
nonstop-ux) osname=nonstopux ;; |
3150 |
openbsd) osname=openbsd |
3151 |
osvers="$3" |
3152 |
;; |
3153 |
os2) osname=os2 |
3154 |
osvers="$4" |
3155 |
;; |
3156 |
POSIX-BC | posix-bc ) osname=posix-bc |
3157 |
osvers="$3" |
3158 |
;; |
3159 |
powerux | power_ux | powermax_os | powermaxos | \ |
3160 |
powerunix | power_unix) osname=powerux |
3161 |
osvers="$3" |
3162 |
;; |
3163 |
qnx) osname=qnx |
3164 |
osvers="$4" |
3165 |
;; |
3166 |
solaris) osname=solaris |
3167 |
case "$3" in |
3168 |
5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;; |
3169 |
*) osvers="$3" ;; |
3170 |
esac |
3171 |
;; |
3172 |
sunos) osname=sunos |
3173 |
case "$3" in |
3174 |
5*) osname=solaris |
3175 |
osvers=`echo $3 | $sed 's/^5/2/g'` ;; |
3176 |
*) osvers="$3" ;; |
3177 |
esac |
3178 |
;; |
3179 |
titanos) osname=titanos |
3180 |
case "$3" in |
3181 |
1*) osvers=1 ;; |
3182 |
2*) osvers=2 ;; |
3183 |
3*) osvers=3 ;; |
3184 |
4*) osvers=4 ;; |
3185 |
*) osvers="$3" ;; |
3186 |
esac |
3187 |
;; |
3188 |
ultrix) osname=ultrix |
3189 |
osvers="$3" |
3190 |
;; |
3191 |
osf1|mls+) case "$5" in |
3192 |
alpha) |
3193 |
osname=dec_osf |
3194 |
osvers=`sizer -v | awk -FUNIX '{print $2}' | awk '{print $1}' | tr '[A-Z]' '[a-z]' | sed 's/^[xvt]//'` |
3195 |
case "$osvers" in |
3196 |
[1-9].[0-9]*) ;; |
3197 |
*) osvers=`echo "$3" | sed 's/^[xvt]//'` ;; |
3198 |
esac |
3199 |
;; |
3200 |
hp*) osname=hp_osf1 ;; |
3201 |
mips) osname=mips_osf1 ;; |
3202 |
esac |
3203 |
;; |
3204 |
# UnixWare 7.1.2 is known as Open UNIX 8 |
3205 |
openunix|unixware) osname=svr5 |
3206 |
osvers="$4" |
3207 |
;; |
3208 |
uts) osname=uts |
3209 |
osvers="$3" |
3210 |
;; |
3211 |
vos) osvers="$3" |
3212 |
;; |
3213 |
$2) case "$osname" in |
3214 |
*isc*) ;; |
3215 |
*freebsd*) ;; |
3216 |
svr*) |
3217 |
: svr4.x or possibly later |
3218 |
case "svr$3" in |
3219 |
${osname}*) |
3220 |
osname=svr$3 |
3221 |
osvers=$4 |
3222 |
;; |
3223 |
esac |
3224 |
case "$osname" in |
3225 |
svr4.0) |
3226 |
: Check for ESIX |
3227 |
if test -f /stand/boot ; then |
3228 |
eval `grep '^INITPROG=[a-z/0-9]*$' /stand/boot` |
3229 |
if test -n "$INITPROG" -a -f "$INITPROG"; then |
3230 |
isesix=`strings -a $INITPROG|grep 'ESIX SYSTEM V/386 Release 4.0'` |
3231 |
if test -n "$isesix"; then |
3232 |
osname=esix4 |
3233 |
fi |
3234 |
fi |
3235 |
fi |
3236 |
;; |
3237 |
esac |
3238 |
;; |
3239 |
*) if test -f /etc/systemid; then |
3240 |
osname=sco |
3241 |
set `echo $3 | $sed 's/\./ /g'` $4 |
3242 |
if $test -f $src/hints/sco_$1_$2_$3.sh; then |
3243 |
osvers=$1.$2.$3 |
3244 |
elif $test -f $src/hints/sco_$1_$2.sh; then |
3245 |
osvers=$1.$2 |
3246 |
elif $test -f $src/hints/sco_$1.sh; then |
3247 |
osvers=$1 |
3248 |
fi |
3249 |
else |
3250 |
case "$osname" in |
3251 |
'') : Still unknown. Probably a generic Sys V. |
3252 |
osname="sysv" |
3253 |
osvers="$3" |
3254 |
;; |
3255 |
esac |
3256 |
fi |
3257 |
;; |
3258 |
esac |
3259 |
;; |
3260 |
*) case "$osname" in |
3261 |
'') : Still unknown. Probably a generic BSD. |
3262 |
osname="$1" |
3263 |
osvers="$3" |
3264 |
;; |
3265 |
esac |
3266 |
;; |
3267 |
esac |
3268 |
else |
3269 |
if test -f /vmunix -a -f $src/hints/news_os.sh; then |
3270 |
(what /vmunix | UU/tr '[A-Z]' '[a-z]') > UU/kernel.what 2>&1 |
3271 |
if $contains news-os UU/kernel.what >/dev/null 2>&1; then |
3272 |
osname=news_os |
3273 |
fi |
3274 |
$rm -f UU/kernel.what |
3275 |
elif test -d c:/. -o -n "$is_os2" ; then |
3276 |
set X $myuname |
3277 |
osname=os2 |
3278 |
osvers="$5" |
3279 |
fi |
3280 |
fi |
3281 |
|
3282 |
case "$targetarch" in |
3283 |
'') ;; |
3284 |
*) hostarch=$osname |
3285 |
osname=`echo $targetarch|sed 's,^[^-]*-,,'` |
3286 |
osvers='' |
3287 |
;; |
3288 |
esac |
3289 |
|
3290 |
: Now look for a hint file osname_osvers, unless one has been |
3291 |
: specified already. |
3292 |
case "$hintfile" in |
3293 |
''|' ') |
3294 |
file=`echo "${osname}_${osvers}" | $sed -e 's%\.%_%g' -e 's%_$%%'` |
3295 |
: Also try without trailing minor version numbers. |
3296 |
xfile=`echo $file | $sed -e 's%_[^_]*$%%'` |
3297 |
xxfile=`echo $xfile | $sed -e 's%_[^_]*$%%'` |
3298 |
xxxfile=`echo $xxfile | $sed -e 's%_[^_]*$%%'` |
3299 |
xxxxfile=`echo $xxxfile | $sed -e 's%_[^_]*$%%'` |
3300 |
case "$file" in |
3301 |
'') dflt=none ;; |
3302 |
*) case "$osvers" in |
3303 |
'') dflt=$file |
3304 |
;; |
3305 |
*) if $test -f $src/hints/$file.sh ; then |
3306 |
dflt=$file |
3307 |
elif $test -f $src/hints/$xfile.sh ; then |
3308 |
dflt=$xfile |
3309 |
elif $test -f $src/hints/$xxfile.sh ; then |
3310 |
dflt=$xxfile |
3311 |
elif $test -f $src/hints/$xxxfile.sh ; then |
3312 |
dflt=$xxxfile |
3313 |
elif $test -f $src/hints/$xxxxfile.sh ; then |
3314 |
dflt=$xxxxfile |
3315 |
elif $test -f "$src/hints/${osname}.sh" ; then |
3316 |
dflt="${osname}" |
3317 |
else |
3318 |
dflt=none |
3319 |
fi |
3320 |
;; |
3321 |
esac |
3322 |
;; |
3323 |
esac |
3324 |
if $test -f Policy.sh ; then |
3325 |
case "$dflt" in |
3326 |
*Policy*) ;; |
3327 |
none) dflt="Policy" ;; |
3328 |
*) dflt="Policy $dflt" ;; |
3329 |
esac |
3330 |
fi |
3331 |
;; |
3332 |
*) |
3333 |
dflt=`echo $hintfile | $sed 's/\.sh$//'` |
3334 |
;; |
3335 |
esac |
3336 |
|
3337 |
if $test -f Policy.sh ; then |
3338 |
$cat <<EOM |
3339 |
|
3340 |
There's also a Policy hint file available, which should make the |
3341 |
site-specific (policy) questions easier to answer. |
3342 |
EOM |
3343 |
|
3344 |
fi |
3345 |
|
3346 |
$cat <<EOM |
3347 |
|
3348 |
You may give one or more space-separated answers, or "none" if appropriate. |
3349 |
A well-behaved OS will have no hints, so answering "none" or just "Policy" |
3350 |
is a good thing. DO NOT give a wrong version or a wrong OS. |
3351 |
|
3352 |
EOM |
3353 |
|
3354 |
rp="Which of these apply, if any?" |
3355 |
. UU/myread |
3356 |
tans=$ans |
3357 |
for file in $tans; do |
3358 |
if $test X$file = XPolicy -a -f Policy.sh; then |
3359 |
. Policy.sh |
3360 |
$cat Policy.sh >> UU/config.sh |
3361 |
elif $test -f $src/hints/$file.sh; then |
3362 |
. $src/hints/$file.sh |
3363 |
$cat $src/hints/$file.sh >> UU/config.sh |
3364 |
elif $test X"$tans" = X -o X"$tans" = Xnone ; then |
3365 |
: nothing |
3366 |
else |
3367 |
: Give one chance to correct a possible typo. |
3368 |
echo "$file.sh does not exist" |
3369 |
dflt=$file |
3370 |
rp="hint to use instead?" |
3371 |
. UU/myread |
3372 |
for file in $ans; do |
3373 |
if $test -f "$src/hints/$file.sh"; then |
3374 |
. $src/hints/$file.sh |
3375 |
$cat $src/hints/$file.sh >> UU/config.sh |
3376 |
elif $test X$ans = X -o X$ans = Xnone ; then |
3377 |
: nothing |
3378 |
else |
3379 |
echo "$file.sh does not exist -- ignored." |
3380 |
fi |
3381 |
done |
3382 |
fi |
3383 |
done |
3384 |
|
3385 |
hint=recommended |
3386 |
: Remember our hint file for later. |
3387 |
if $test -f "$src/hints/$file.sh" ; then |
3388 |
hintfile="$file" |
3389 |
else |
3390 |
hintfile='' |
3391 |
fi |
3392 |
fi |
3393 |
cd UU |
3394 |
;; |
3395 |
*) |
3396 |
echo " " |
3397 |
echo "Fetching default answers from $config_sh..." >&4 |
3398 |
tmp_n="$n" |
3399 |
tmp_c="$c" |
3400 |
cd .. |
3401 |
cp $config_sh config.sh 2>/dev/null |
3402 |
chmod +w config.sh |
3403 |
. ./config.sh |
3404 |
cd UU |
3405 |
cp ../config.sh . |
3406 |
n="$tmp_n" |
3407 |
c="$tmp_c" |
3408 |
hint=previous |
3409 |
;; |
3410 |
esac |
3411 |
test "$override" && . ./optdef.sh |
3412 |
|
3413 |
: Restore computed paths |
3414 |
for file in $loclist $trylist; do |
3415 |
eval $file="\$_$file" |
3416 |
done |
3417 |
|
3418 |
cat << EOM |
3419 |
|
3420 |
Configure uses the operating system name and version to set some defaults. |
3421 |
The default value is probably right if the name rings a bell. Otherwise, |
3422 |
since spelling matters for me, either accept the default or answer "none" |
3423 |
to leave it blank. |
3424 |
|
3425 |
EOM |
3426 |
case "$osname" in |
3427 |
''|' ') |
3428 |
case "$hintfile" in |
3429 |
''|' '|none) dflt=none ;; |
3430 |
*) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/_.*$//'` ;; |
3431 |
esac |
3432 |
;; |
3433 |
*) dflt="$osname" ;; |
3434 |
esac |
3435 |
rp="Operating system name?" |
3436 |
. ./myread |
3437 |
case "$ans" in |
3438 |
none) osname='' ;; |
3439 |
*) osname=`echo "$ans" | $sed -e 's/[ ][ ]*/_/g' | ./tr '[A-Z]' '[a-z]'`;; |
3440 |
esac |
3441 |
echo " " |
3442 |
case "$osvers" in |
3443 |
''|' ') |
3444 |
case "$hintfile" in |
3445 |
''|' '|none) dflt=none ;; |
3446 |
*) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/^[^_]*//'` |
3447 |
dflt=`echo $dflt | $sed -e 's/^_//' -e 's/_/./g'` |
3448 |
case "$dflt" in |
3449 |
''|' ') dflt=none ;; |
3450 |
esac |
3451 |
;; |
3452 |
esac |
3453 |
;; |
3454 |
*) dflt="$osvers" ;; |
3455 |
esac |
3456 |
rp="Operating system version?" |
3457 |
. ./myread |
3458 |
case "$ans" in |
3459 |
none) osvers='' ;; |
3460 |
*) osvers="$ans" ;; |
3461 |
esac |
3462 |
|
3463 |
|
3464 |
. ./posthint.sh |
3465 |
|
3466 |
: who configured the system |
3467 |
cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1` |
3468 |
case "$cf_by" in |
3469 |
"") |
3470 |
cf_by=`(logname) 2>/dev/null` |
3471 |
case "$cf_by" in |
3472 |
"") |
3473 |
cf_by=`(whoami) 2>/dev/null` |
3474 |
case "$cf_by" in |
3475 |
"") cf_by=unknown ;; |
3476 |
esac ;; |
3477 |
esac ;; |
3478 |
esac |
3479 |
|
3480 |
: set up the script used to warn in case of inconsistency |
3481 |
cat <<EOS >whoa |
3482 |
$startsh |
3483 |
EOS |
3484 |
cat <<'EOSC' >>whoa |
3485 |
dflt=y |
3486 |
echo " " |
3487 |
echo "*** WHOA THERE!!! ***" >&4 |
3488 |
echo " The $hint value for \$$var on this machine was \"$was\"!" >&4 |
3489 |
rp=" Keep the $hint value?" |
3490 |
. ./myread |
3491 |
case "$ans" in |
3492 |
y) td=$was; tu=$was;; |
3493 |
esac |
3494 |
EOSC |
3495 |
|
3496 |
: function used to set $1 to $val |
3497 |
setvar='var=$1; eval "was=\$$1"; td=$define; tu=$undef; |
3498 |
case "$val$was" in |
3499 |
$define$undef) . ./whoa; eval "$var=\$td";; |
3500 |
$undef$define) . ./whoa; eval "$var=\$tu";; |
3501 |
*) eval "$var=$val";; |
3502 |
esac' |
3503 |
|
3504 |
case "$usesocks" in |
3505 |
$define|true|[yY]*) dflt='y';; |
3506 |
*) dflt='n';; |
3507 |
esac |
3508 |
cat <<EOM |
3509 |
|
3510 |
Perl can be built to use the SOCKS proxy protocol library. To do so, |
3511 |
Configure must be run with -Dusesocks. If you use SOCKS you also need |
3512 |
to use the PerlIO abstraction layer, this will be implicitly selected. |
3513 |
|
3514 |
If this doesn't make any sense to you, just accept the default '$dflt'. |
3515 |
EOM |
3516 |
rp='Build Perl for SOCKS?' |
3517 |
. ./myread |
3518 |
case "$ans" in |
3519 |
y|Y) val="$define" ;; |
3520 |
*) val="$undef" ;; |
3521 |
esac |
3522 |
set usesocks |
3523 |
eval $setvar |
3524 |
|
3525 |
case "$usesocks" in |
3526 |
$define|true|[yY]*) useperlio="$define";; |
3527 |
esac |
3528 |
|
3529 |
case "$useperlio" in |
3530 |
$define|true|[yY]*|'') dflt='y';; |
3531 |
*) dflt='n';; |
3532 |
esac |
3533 |
cat <<EOM |
3534 |
|
3535 |
Previous version of $package used the standard IO mechanisms as |
3536 |
defined in <stdio.h>. Versions 5.003_02 and later of $package allow |
3537 |
alternate IO mechanisms via the PerlIO abstraction layer, but the |
3538 |
stdio mechanism is still available if needed. The abstraction layer |
3539 |
can use AT&T's sfio (if you already have sfio installed) or regular stdio. |
3540 |
Using PerlIO with sfio may cause problems with some extension modules. |
3541 |
|
3542 |
If this doesn't make any sense to you, just accept the default '$dflt'. |
3543 |
EOM |
3544 |
rp='Use the PerlIO abstraction layer?' |
3545 |
. ./myread |
3546 |
case "$ans" in |
3547 |
y|Y) |
3548 |
val="$define" |
3549 |
;; |
3550 |
*) |
3551 |
echo "Ok, doing things the stdio way." |
3552 |
val="$undef" |
3553 |
;; |
3554 |
esac |
3555 |
set useperlio |
3556 |
eval $setvar |
3557 |
|
3558 |
case "$usesocks" in |
3559 |
$define|true|[yY]*) |
3560 |
case "$useperlio" in |
3561 |
$define|true|[yY]*) ;; |
3562 |
*) cat >&4 <<EOM |
3563 |
|
3564 |
You are using the SOCKS proxy protocol library which means that you |
3565 |
should also use the PerlIO layer. You may be headed for trouble. |
3566 |
|
3567 |
EOM |
3568 |
;; |
3569 |
esac |
3570 |
;; |
3571 |
esac |
3572 |
|
3573 |
|
3574 |
case "$usethreads" in |
3575 |
$define|true|[yY]*) dflt='y';; |
3576 |
*) # Catch case where user specified ithreads or 5005threads but |
3577 |
# forgot -Dusethreads (A.D. 4/2002) |
3578 |
case "$useithreads$use5005threads" in |
3579 |
*$define*) |
3580 |
case "$useperlio" in |
3581 |
"$define") dflt='y' ;; |
3582 |
*) dflt='n' ;; |
3583 |
esac |
3584 |
;; |
3585 |
*) dflt='n';; |
3586 |
esac |
3587 |
;; |
3588 |
esac |
3589 |
cat <<EOM |
3590 |
|
3591 |
Perl can be built to take advantage of threads on some systems. |
3592 |
To do so, Configure can be run with -Dusethreads. |
3593 |
|
3594 |
Note that Perl built with threading support runs slightly slower |
3595 |
and uses more memory than plain Perl. The current implementation |
3596 |
is believed to be stable, but it is fairly new, and so should be |
3597 |
treated with caution. |
3598 |
|
3599 |
If this doesn't make any sense to you, just accept the default '$dflt'. |
3600 |
EOM |
3601 |
rp='Build a threading Perl?' |
3602 |
. ./myread |
3603 |
case "$ans" in |
3604 |
y|Y) val="$define" ;; |
3605 |
*) val="$undef" ;; |
3606 |
esac |
3607 |
set usethreads |
3608 |
eval $setvar |
3609 |
|
3610 |
case "$usethreads" in |
3611 |
$define) |
3612 |
$cat <<EOM |
3613 |
|
3614 |
Since release 5.6, Perl has had two different threading implementations, |
3615 |
the newer interpreter-based version (ithreads) with one interpreter per |
3616 |
thread, and the older 5.005 version (5005threads). |
3617 |
The 5005threads version is effectively unmaintained and will probably be |
3618 |
removed in Perl 5.10, so there should be no need to build a Perl using it |
3619 |
unless needed for backwards compatibility with some existing 5.005threads |
3620 |
code. |
3621 |
|
3622 |
EOM |
3623 |
: Default to ithreads unless overridden on command line or with |
3624 |
: old config.sh |
3625 |
dflt='y' |
3626 |
case "$use5005threads" in |
3627 |
$define|true|[yY]*) dflt='n';; |
3628 |
esac |
3629 |
case "$useithreads" in |
3630 |
$undef|false|[nN]*) dflt='n';; |
3631 |
esac |
3632 |
rp='Use the newer interpreter-based ithreads?' |
3633 |
. ./myread |
3634 |
case "$ans" in |
3635 |
y|Y) val="$define" ;; |
3636 |
*) val="$undef" ;; |
3637 |
esac |
3638 |
set useithreads |
3639 |
eval $setvar |
3640 |
: Now set use5005threads to the opposite value. |
3641 |
case "$useithreads" in |
3642 |
$define) val="$undef" ;; |
3643 |
*) val="$define" ;; |
3644 |
esac |
3645 |
set use5005threads |
3646 |
eval $setvar |
3647 |
;; |
3648 |
*) |
3649 |
useithreads="$undef" |
3650 |
use5005threads="$undef" |
3651 |
;; |
3652 |
esac |
3653 |
|
3654 |
case "$useithreads$use5005threads" in |
3655 |
"$define$define") |
3656 |
$cat >&4 <<EOM |
3657 |
|
3658 |
You cannot have both the ithreads and the 5.005 threads enabled |
3659 |
at the same time. Disabling the 5.005 threads since they are |
3660 |
much less stable than the ithreads. |
3661 |
|
3662 |
EOM |
3663 |
use5005threads="$undef" |
3664 |
;; |
3665 |
esac |
3666 |
|
3667 |
if test X"$usethreads" = "X$define" -a "X$useperlio" = "Xundef"; then |
3668 |
cat >&4 <<EOF |
3669 |
*** |
3670 |
*** To build with ithreads you must also use the PerlIO layer. |
3671 |
*** Cannot continue, aborting. |
3672 |
*** |
3673 |
EOF |
3674 |
exit 1 |
3675 |
fi |
3676 |
|
3677 |
case "$d_oldpthreads" in |
3678 |
'') : Configure tests would be welcome here. For now, assume undef. |
3679 |
val="$undef" ;; |
3680 |
*) val="$d_oldpthreads" ;; |
3681 |
esac |
3682 |
set d_oldpthreads |
3683 |
eval $setvar |
3684 |
|
3685 |
|
3686 |
: Look for a hint-file generated 'call-back-unit'. If the |
3687 |
: user has specified that a threading perl is to be built, |
3688 |
: we may need to set or change some other defaults. |
3689 |
if $test -f usethreads.cbu; then |
3690 |
echo "Your platform has some specific hints regarding threaded builds, using them..." |
3691 |
. ./usethreads.cbu |
3692 |
else |
3693 |
case "$usethreads" in |
3694 |
"$define"|true|[yY]*) |
3695 |
$cat <<EOM |
3696 |
(Your platform does not have any specific hints for threaded builds. |
3697 |
Assuming POSIX threads, then.) |
3698 |
EOM |
3699 |
;; |
3700 |
esac |
3701 |
fi |
3702 |
|
3703 |
cat <<EOM |
3704 |
|
3705 |
Perl can be built so that multiple Perl interpreters can coexist |
3706 |
within the same Perl executable. |
3707 |
EOM |
3708 |
|
3709 |
case "$useithreads" in |
3710 |
$define) |
3711 |
cat <<EOM |
3712 |
This multiple interpreter support is required for interpreter-based threads. |
3713 |
EOM |
3714 |
val="$define" |
3715 |
;; |
3716 |
*) case "$usemultiplicity" in |
3717 |
$define|true|[yY]*) dflt='y';; |
3718 |
*) dflt='n';; |
3719 |
esac |
3720 |
echo " " |
3721 |
echo "If this doesn't make any sense to you, just accept the default '$dflt'." |
3722 |
rp='Build Perl for multiplicity?' |
3723 |
. ./myread |
3724 |
case "$ans" in |
3725 |
y|Y) val="$define" ;; |
3726 |
*) val="$undef" ;; |
3727 |
esac |
3728 |
;; |
3729 |
esac |
3730 |
set usemultiplicity |
3731 |
eval $setvar |
3732 |
|
3733 |
|
3734 |
case "$usemorebits" in |
3735 |
"$define"|true|[yY]*) |
3736 |
use64bitint="$define" |
3737 |
uselongdouble="$define" |
3738 |
usemorebits="$define" |
3739 |
;; |
3740 |
*) usemorebits="$undef" |
3741 |
;; |
3742 |
esac |
3743 |
|
3744 |
: make some quick guesses about what we are up against |
3745 |
echo " " |
3746 |
$echo $n "Hmm... $c" |
3747 |
echo exit 1 >bsd |
3748 |
echo exit 1 >usg |
3749 |
echo exit 1 >v7 |
3750 |
echo exit 1 >osf1 |
3751 |
echo exit 1 >eunice |
3752 |
echo exit 1 >xenix |
3753 |
echo exit 1 >venix |
3754 |
echo exit 1 >os2 |
3755 |
d_bsd="$undef" |
3756 |
$cat /usr/include/signal.h /usr/include/sys/signal.h >foo 2>/dev/null |
3757 |
if test -f /osf_boot || $contains 'OSF/1' /usr/include/ctype.h >/dev/null 2>&1 |
3758 |
then |
3759 |
echo "Looks kind of like an OSF/1 system, but we'll see..." |
3760 |
echo exit 0 >osf1 |
3761 |
elif test `echo abc | $tr a-z A-Z` = Abc ; then |
3762 |
xxx=`./loc addbib blurfl $pth` |
3763 |
if $test -f $xxx; then |
3764 |
echo "Looks kind of like a USG system with BSD features, but we'll see..." |
3765 |
echo exit 0 >bsd |
3766 |
echo exit 0 >usg |
3767 |
else |
3768 |
if $contains SIGTSTP foo >/dev/null 2>&1 ; then |
3769 |
echo "Looks kind of like an extended USG system, but we'll see..." |
3770 |
else |
3771 |
echo "Looks kind of like a USG system, but we'll see..." |
3772 |
fi |
3773 |
echo exit 0 >usg |
3774 |
fi |
3775 |
elif $contains SIGTSTP foo >/dev/null 2>&1 ; then |
3776 |
echo "Looks kind of like a BSD system, but we'll see..." |
3777 |
d_bsd="$define" |
3778 |
echo exit 0 >bsd |
3779 |
else |
3780 |
echo "Looks kind of like a Version 7 system, but we'll see..." |
3781 |
echo exit 0 >v7 |
3782 |
fi |
3783 |
case "$eunicefix" in |
3784 |
*unixtovms*) |
3785 |
$cat <<'EOI' |
3786 |
There is, however, a strange, musty smell in the air that reminds me of |
3787 |
something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit. |
3788 |
EOI |
3789 |
echo exit 0 >eunice |
3790 |
d_eunice="$define" |
3791 |
: it so happens the Eunice I know will not run shell scripts in Unix format |
3792 |
;; |
3793 |
*) |
3794 |
echo " " |
3795 |
echo "Congratulations. You aren't running Eunice." |
3796 |
d_eunice="$undef" |
3797 |
;; |
3798 |
esac |
3799 |
: Detect OS2. The p_ variable is set above in the Head.U unit. |
3800 |
: Note that this also -- wrongly -- detects e.g. dos-djgpp, which also uses |
3801 |
: semicolon as a patch separator |
3802 |
case "$p_" in |
3803 |
:) ;; |
3804 |
*) |
3805 |
$cat <<'EOI' |
3806 |
I have the feeling something is not exactly right, however...don't tell me... |
3807 |
lemme think...does HAL ring a bell?...no, of course, you're only running OS/2! |
3808 |
(Or you may be running DOS with DJGPP.) |
3809 |
EOI |
3810 |
echo exit 0 >os2 |
3811 |
;; |
3812 |
esac |
3813 |
if test -f /xenix; then |
3814 |
echo "Actually, this looks more like a XENIX system..." |
3815 |
echo exit 0 >xenix |
3816 |
d_xenix="$define" |
3817 |
else |
3818 |
echo " " |
3819 |
echo "It's not Xenix..." |
3820 |
d_xenix="$undef" |
3821 |
fi |
3822 |
chmod +x xenix |
3823 |
$eunicefix xenix |
3824 |
if test -f /venix; then |
3825 |
echo "Actually, this looks more like a VENIX system..." |
3826 |
echo exit 0 >venix |
3827 |
else |
3828 |
echo " " |
3829 |
if ./xenix; then |
3830 |
: null |
3831 |
else |
3832 |
echo "Nor is it Venix..." |
3833 |
fi |
3834 |
fi |
3835 |
chmod +x bsd usg v7 osf1 eunice xenix venix os2 |
3836 |
$eunicefix bsd usg v7 osf1 eunice xenix venix os2 |
3837 |
$rm -f foo |
3838 |
|
3839 |
case "$cc" in |
3840 |
'') dflt=cc;; |
3841 |
*) dflt="$cc";; |
3842 |
esac |
3843 |
rp="Use which C compiler?" |
3844 |
. ./myread |
3845 |
cc="$ans" |
3846 |
|
3847 |
: See if they have not cc but they do have gcc |
3848 |
. ./trygcc |
3849 |
: Look for a hint-file generated 'call-back-unit'. Now that the |
3850 |
: user has specified the compiler, we may need to set or change some |
3851 |
: other defaults. |
3852 |
if $test -f cc.cbu; then |
3853 |
. ./cc.cbu |
3854 |
fi |
3855 |
. ./checkcc |
3856 |
|
3857 |
echo " " |
3858 |
echo "Checking for GNU cc in disguise and/or its version number..." >&4 |
3859 |
$cat >try.c <<EOM |
3860 |
#include <stdio.h> |
3861 |
int main() { |
3862 |
#ifdef __GNUC__ |
3863 |
#ifdef __VERSION__ |
3864 |
printf("%s\n", __VERSION__); |
3865 |
#else |
3866 |
printf("%s\n", "1"); |
3867 |
#endif |
3868 |
#endif |
3869 |
return(0); |
3870 |
} |
3871 |
EOM |
3872 |
if $cc -o try $ccflags $ldflags try.c; then |
3873 |
gccversion=`$run ./try` |
3874 |
case "$gccversion" in |
3875 |
'') echo "You are not using GNU cc." ;; |
3876 |
*) echo "You are using GNU cc $gccversion." |
3877 |
ccname=gcc |
3878 |
;; |
3879 |
esac |
3880 |
else |
3881 |
echo " " |
3882 |
echo "*** WHOA THERE!!! ***" >&4 |
3883 |
echo " Your C compiler \"$cc\" doesn't seem to be working!" >&4 |
3884 |
case "$knowitall" in |
3885 |
'') |
3886 |
echo " You'd better start hunting for one and let me know about it." >&4 |
3887 |
exit 1 |
3888 |
;; |
3889 |
esac |
3890 |
fi |
3891 |
$rm -f try try.* |
3892 |
case "$gccversion" in |
3893 |
1*) cpp=`./loc gcc-cpp $cpp $pth` ;; |
3894 |
esac |
3895 |
case "$gccversion" in |
3896 |
'') gccosandvers='' ;; |
3897 |
*) gccshortvers=`echo "$gccversion"|sed 's/ .*//'` |
3898 |
gccosandvers=`$cc -v 2>&1|grep '/specs$'|sed "s!.*/[^-/]*-[^-/]*-\([^-/]*\)/$gccshortvers/specs!\1!"` |
3899 |
gccshortvers='' |
3900 |
case "$gccosandvers" in |
3901 |
$osname) gccosandvers='' ;; # linux gccs seem to have no linux osvers, grr |
3902 |
$osname$osvers) ;; # looking good |
3903 |
$osname*) cat <<EOM >&4 |
3904 |
|
3905 |
*** WHOA THERE!!! *** |
3906 |
|
3907 |
Your gcc has not been compiled for the exact release of |
3908 |
your operating system ($gccosandvers versus $osname$osvers). |
3909 |
|
3910 |
In general it is a good idea to keep gcc synchronized with |
3911 |
the operating system because otherwise serious problems |
3912 |
may ensue when trying to compile software, like Perl. |
3913 |
|
3914 |
I'm trying to be optimistic here, though, and will continue. |
3915 |
If later during the configuration and build icky compilation |
3916 |
problems appear (headerfile conflicts being the most common |
3917 |
manifestation), I suggest reinstalling the gcc to match |
3918 |
your operating system release. |
3919 |
|
3920 |
EOM |
3921 |
;; |
3922 |
*) gccosandvers='' ;; # failed to parse, better be silent |
3923 |
esac |
3924 |
;; |
3925 |
esac |
3926 |
case "$ccname" in |
3927 |
'') ccname="$cc" ;; |
3928 |
esac |
3929 |
|
3930 |
# gcc 3.* complain about adding -Idirectories that they already know about, |
3931 |
# so we will take those off from locincpth. |
3932 |
case "$gccversion" in |
3933 |
3*) |
3934 |
echo "main(){}">try.c |
3935 |
for incdir in $locincpth; do |
3936 |
warn=`$cc $ccflags -I$incdir -c try.c 2>&1 | \ |
3937 |
grep '^c[cp]p*[01]: warning: changing search order '` |
3938 |
if test "X$warn" != X; then |
3939 |
locincpth=`echo " $locincpth " | sed "s! $incdir ! !"` |
3940 |
fi |
3941 |
done |
3942 |
$rm -f try try.* |
3943 |
esac |
3944 |
|
3945 |
: decide how portable to be. Allow command line overrides. |
3946 |
case "$d_portable" in |
3947 |
"$undef") ;; |
3948 |
*) d_portable="$define" ;; |
3949 |
esac |
3950 |
|
3951 |
: set up shell script to do ~ expansion |
3952 |
cat >filexp <<EOSS |
3953 |
$startsh |
3954 |
: expand filename |
3955 |
case "\$1" in |
3956 |
~/*|~) |
3957 |
echo \$1 | $sed "s|~|\${HOME-\$LOGDIR}|" |
3958 |
;; |
3959 |
~*) |
3960 |
if $test -f /bin/csh; then |
3961 |
/bin/csh -f -c "glob \$1" |
3962 |
failed=\$? |
3963 |
echo "" |
3964 |
exit \$failed |
3965 |
else |
3966 |
name=\`$expr x\$1 : '..\([^/]*\)'\` |
3967 |
dir=\`$sed -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}' </etc/passwd\` |
3968 |
if $test ! -d "\$dir"; then |
3969 |
me=\`basename \$0\` |
3970 |
echo "\$me: can't locate home directory for: \$name" >&2 |
3971 |
exit 1 |
3972 |
fi |
3973 |
case "\$1" in |
3974 |
*/*) |
3975 |
echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\` |
3976 |
;; |
3977 |
*) |
3978 |
echo \$dir |
3979 |
;; |
3980 |
esac |
3981 |
fi |
3982 |
;; |
3983 |
*) |
3984 |
echo \$1 |
3985 |
;; |
3986 |
esac |
3987 |
EOSS |
3988 |
chmod +x filexp |
3989 |
$eunicefix filexp |
3990 |
|
3991 |
: now set up to get a file name |
3992 |
cat <<EOS >getfile |
3993 |
$startsh |
3994 |
EOS |
3995 |
cat <<'EOSC' >>getfile |
3996 |
tilde='' |
3997 |
fullpath='' |
3998 |
already='' |
3999 |
skip='' |
4000 |
none_ok='' |
4001 |
exp_file='' |
4002 |
nopath_ok='' |
4003 |
orig_rp="$rp" |
4004 |
orig_dflt="$dflt" |
4005 |
case "$gfpth" in |
4006 |
'') gfpth='.' ;; |
4007 |
esac |
4008 |
|
4009 |
case "$fn" in |
4010 |
*\(*) |
4011 |
: getfile will accept an answer from the comma-separated list |
4012 |
: enclosed in parentheses even if it does not meet other criteria. |
4013 |
expr "$fn" : '.*(\(.*\)).*' | $tr ',' $trnl >getfile.ok |
4014 |
fn=`echo $fn | sed 's/(.*)//'` |
4015 |
;; |
4016 |
esac |
4017 |
|
4018 |
case "$fn" in |
4019 |
*:*) |
4020 |
loc_file=`expr $fn : '.*:\(.*\)'` |
4021 |
fn=`expr $fn : '\(.*\):.*'` |
4022 |
;; |
4023 |
esac |
4024 |
|
4025 |
case "$fn" in |
4026 |
*~*) tilde=true;; |
4027 |
esac |
4028 |
case "$fn" in |
4029 |
*/*) fullpath=true;; |
4030 |
esac |
4031 |
case "$fn" in |
4032 |
*+*) skip=true;; |
4033 |
esac |
4034 |
case "$fn" in |
4035 |
*n*) none_ok=true;; |
4036 |
esac |
4037 |
case "$fn" in |
4038 |
*e*) exp_file=true;; |
4039 |
esac |
4040 |
case "$fn" in |
4041 |
*p*) nopath_ok=true;; |
4042 |
esac |
4043 |
|
4044 |
case "$fn" in |
4045 |
*f*) type='File';; |
4046 |
*d*) type='Directory';; |
4047 |
*l*) type='Locate';; |
4048 |
esac |
4049 |
|
4050 |
what="$type" |
4051 |
case "$what" in |
4052 |
Locate) what='File';; |
4053 |
esac |
4054 |
|
4055 |
case "$exp_file" in |
4056 |
'') |
4057 |
case "$d_portable" in |
4058 |
"$define") ;; |
4059 |
*) exp_file=true;; |
4060 |
esac |
4061 |
;; |
4062 |
esac |
4063 |
|
4064 |
cd .. |
4065 |
while test "$type"; do |
4066 |
redo='' |
4067 |
rp="$orig_rp" |
4068 |
dflt="$orig_dflt" |
4069 |
case "$tilde" in |
4070 |
true) rp="$rp (~name ok)";; |
4071 |
esac |
4072 |
. UU/myread |
4073 |
if test -f UU/getfile.ok && \ |
4074 |
$contains "^$ans\$" UU/getfile.ok >/dev/null 2>&1 |
4075 |
then |
4076 |
value="$ans" |
4077 |
ansexp="$ans" |
4078 |
break |
4079 |
fi |
4080 |
case "$ans" in |
4081 |
none) |
4082 |
value='' |
4083 |
ansexp='' |
4084 |
case "$none_ok" in |
4085 |
true) type='';; |
4086 |
esac |
4087 |
;; |
4088 |
*) |
4089 |
case "$tilde" in |
4090 |
'') value="$ans" |
4091 |
ansexp="$ans";; |
4092 |
*) |
4093 |
value=`UU/filexp $ans` |
4094 |
case $? in |
4095 |
0) |
4096 |
if test "$ans" != "$value"; then |
4097 |
echo "(That expands to $value on this system.)" |
4098 |
fi |
4099 |
;; |
4100 |
*) value="$ans";; |
4101 |
esac |
4102 |
ansexp="$value" |
4103 |
case "$exp_file" in |
4104 |
'') value="$ans";; |
4105 |
esac |
4106 |
;; |
4107 |
esac |
4108 |
case "$fullpath" in |
4109 |
true) |
4110 |
case "$ansexp" in |
4111 |
/*) value="$ansexp" ;; |
4112 |
[a-zA-Z]:/*) value="$ansexp" ;; |
4113 |
*) |
4114 |
redo=true |
4115 |
case "$already" in |
4116 |
true) |
4117 |
echo "I shall only accept a full path name, as in /bin/ls." >&4 |
4118 |
echo "Use a ! shell escape if you wish to check pathnames." >&4 |
4119 |
;; |
4120 |
*) |
4121 |
echo "Please give a full path name, starting with slash." >&4 |
4122 |
case "$tilde" in |
4123 |
true) |
4124 |
echo "Note that using ~name is ok provided it expands well." >&4 |
4125 |
already=true |
4126 |
;; |
4127 |
esac |
4128 |
esac |
4129 |
;; |
4130 |
esac |
4131 |
;; |
4132 |
esac |
4133 |
case "$redo" in |
4134 |
'') |
4135 |
case "$type" in |
4136 |
File) |
4137 |
for fp in $gfpth; do |
4138 |
if test "X$fp" = X.; then |
4139 |
pf="$ansexp" |
4140 |
else |
4141 |
pf="$fp/$ansexp" |
4142 |
fi |
4143 |
if test -f "$pf"; then |
4144 |
type='' |
4145 |
elif test -r "$pf" || (test -h "$pf") >/dev/null 2>&1 |
4146 |
then |
4147 |
echo "($value is not a plain file, but that's ok.)" |
4148 |
type='' |
4149 |
fi |
4150 |
if test X"$type" = X; then |
4151 |
value="$pf" |
4152 |
break |
4153 |
fi |
4154 |
done |
4155 |
;; |
4156 |
Directory) |
4157 |
for fp in $gfpth; do |
4158 |
if test "X$fp" = X.; then |
4159 |
dir="$ans" |
4160 |
direxp="$ansexp" |
4161 |
else |
4162 |
dir="$fp/$ansexp" |
4163 |
direxp="$fp/$ansexp" |
4164 |
fi |
4165 |
if test -d "$direxp"; then |
4166 |
type='' |
4167 |
value="$dir" |
4168 |
break |
4169 |
fi |
4170 |
done |
4171 |
;; |
4172 |
Locate) |
4173 |
if test -d "$ansexp"; then |
4174 |
echo "(Looking for $loc_file in directory $value.)" |
4175 |
value="$value/$loc_file" |
4176 |
ansexp="$ansexp/$loc_file" |
4177 |
fi |
4178 |
if test -f "$ansexp"; then |
4179 |
type='' |
4180 |
fi |
4181 |
case "$nopath_ok" in |
4182 |
true) case "$value" in |
4183 |
*/*) ;; |
4184 |
*) echo "Assuming $value will be in people's path." |
4185 |
type='' |
4186 |
;; |
4187 |
esac |
4188 |
;; |
4189 |
esac |
4190 |
;; |
4191 |
esac |
4192 |
|
4193 |
case "$skip" in |
4194 |
true) type=''; |
4195 |
esac |
4196 |
|
4197 |
case "$type" in |
4198 |
'') ;; |
4199 |
*) |
4200 |
if test "$fastread" = yes; then |
4201 |
dflt=y |
4202 |
else |
4203 |
dflt=n |
4204 |
fi |
4205 |
rp="$what $value doesn't exist. Use that name anyway?" |
4206 |
. UU/myread |
4207 |
dflt='' |
4208 |
case "$ans" in |
4209 |
y*) type='';; |
4210 |
*) echo " ";; |
4211 |
esac |
4212 |
;; |
4213 |
esac |
4214 |
;; |
4215 |
esac |
4216 |
;; |
4217 |
esac |
4218 |
done |
4219 |
cd UU |
4220 |
ans="$value" |
4221 |
rp="$orig_rp" |
4222 |
dflt="$orig_dflt" |
4223 |
rm -f getfile.ok |
4224 |
test "X$gfpthkeep" != Xy && gfpth="" |
4225 |
EOSC |
4226 |
|
4227 |
: What should the include directory be ? |
4228 |
echo " " |
4229 |
$echo $n "Hmm... $c" |
4230 |
dflt='/usr/include' |
4231 |
incpath='' |
4232 |
mips_type='' |
4233 |
if $test -f /bin/mips && /bin/mips; then |
4234 |
echo "Looks like a MIPS system..." |
4235 |
$cat >usr.c <<'EOCP' |
4236 |
#ifdef SYSTYPE_BSD43 |
4237 |
/bsd43 |
4238 |
#endif |
4239 |
EOCP |
4240 |
if cc -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then |
4241 |
dflt='/bsd43/usr/include' |
4242 |
incpath='/bsd43' |
4243 |
mips_type='BSD 4.3' |
4244 |
else |
4245 |
mips_type='System V' |
4246 |
fi |
4247 |
$rm -f usr.c usr.out |
4248 |
echo "and you're compiling with the $mips_type compiler and libraries." |
4249 |
xxx_prompt=y |
4250 |
echo "exit 0" >mips |
4251 |
else |
4252 |
echo "Doesn't look like a MIPS system." |
4253 |
xxx_prompt=n |
4254 |
echo "exit 1" >mips |
4255 |
fi |
4256 |
chmod +x mips |
4257 |
$eunicefix mips |
4258 |
case "$usrinc" in |
4259 |
'') ;; |
4260 |
*) dflt="$usrinc";; |
4261 |
esac |
4262 |
case "$xxx_prompt" in |
4263 |
y) fn=d/ |
4264 |
echo " " |
4265 |
rp='Where are the include files you want to use?' |
4266 |
. ./getfile |
4267 |
usrinc="$ans" |
4268 |
;; |
4269 |
*) usrinc="$dflt" |
4270 |
;; |
4271 |
esac |
4272 |
|
4273 |
: see how we invoke the C preprocessor |
4274 |
echo " " |
4275 |
echo "Now, how can we feed standard input to your C preprocessor..." >&4 |
4276 |
cat <<'EOT' >testcpp.c |
4277 |
#define ABC abc |
4278 |
#define XYZ xyz |
4279 |
ABC.XYZ |
4280 |
EOT |
4281 |
cd .. |
4282 |
if test ! -f cppstdin; then |
4283 |
if test "X$osname" = "Xaix" -a "X$gccversion" = X; then |
4284 |
# AIX cc -E doesn't show the absolute headerfile |
4285 |
# locations but we'll cheat by using the -M flag. |
4286 |
echo 'cat >.$$.c; rm -f .$$.u; '"$cc"' ${1+"$@"} -M -c .$$.c 2>/dev/null; test -s .$$.u && awk '"'"'$2 ~ /\.h$/ { print "# 0 \""$2"\"" }'"'"' .$$.u; rm -f .$$.o .$$.u; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' > cppstdin |
4287 |
else |
4288 |
echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin |
4289 |
fi |
4290 |
else |
4291 |
echo "Keeping your $hint cppstdin wrapper." |
4292 |
fi |
4293 |
chmod 755 cppstdin |
4294 |
wrapper=`pwd`/cppstdin |
4295 |
ok='false' |
4296 |
cd UU |
4297 |
|
4298 |
if $test "X$cppstdin" != "X" && \ |
4299 |
$cppstdin $cppminus <testcpp.c >testcpp.out 2>&1 && \ |
4300 |
$contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 |
4301 |
then |
4302 |
echo "You used to use $cppstdin $cppminus so we'll use that again." |
4303 |
case "$cpprun" in |
4304 |
'') echo "But let's see if we can live without a wrapper..." ;; |
4305 |
*) |
4306 |
if $cpprun $cpplast <testcpp.c >testcpp.out 2>&1 && \ |
4307 |
$contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 |
4308 |
then |
4309 |
echo "(And we'll use $cpprun $cpplast to preprocess directly.)" |
4310 |
ok='true' |
4311 |
else |
4312 |
echo "(However, $cpprun $cpplast does not work, let's see...)" |
4313 |
fi |
4314 |
;; |
4315 |
esac |
4316 |
else |
4317 |
case "$cppstdin" in |
4318 |
'') ;; |
4319 |
*) |
4320 |
echo "Good old $cppstdin $cppminus does not seem to be of any help..." |
4321 |
;; |
4322 |
esac |
4323 |
fi |
4324 |
|
4325 |
if $ok; then |
4326 |
: nothing |
4327 |
elif echo 'Maybe "'"$cc"' -E" will work...'; \ |
4328 |
$cc -E <testcpp.c >testcpp.out 2>&1; \ |
4329 |
$contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then |
4330 |
echo "Yup, it does." |
4331 |
x_cpp="$cc -E" |
4332 |
x_minus=''; |
4333 |
elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \ |
4334 |
$cc -E - <testcpp.c >testcpp.out 2>&1; \ |
4335 |
$contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then |
4336 |
echo "Yup, it does." |
4337 |
x_cpp="$cc -E" |
4338 |
x_minus='-'; |
4339 |
elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \ |
4340 |
$cc -P <testcpp.c >testcpp.out 2>&1; \ |
4341 |
$contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then |
4342 |
echo "Yipee, that works!" |
4343 |
x_cpp="$cc -P" |
4344 |
x_minus=''; |
4345 |
elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \ |
4346 |
$cc -P - <testcpp.c >testcpp.out 2>&1; \ |
4347 |
$contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then |
4348 |
echo "At long last!" |
4349 |
x_cpp="$cc -P" |
4350 |
x_minus='-'; |
4351 |
elif echo 'No such luck, maybe "'$cpp'" will work...'; \ |
4352 |
$cpp <testcpp.c >testcpp.out 2>&1; \ |
4353 |
$contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then |
4354 |
echo "It works!" |
4355 |
x_cpp="$cpp" |
4356 |
x_minus=''; |
4357 |
elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \ |
4358 |
$cpp - <testcpp.c >testcpp.out 2>&1; \ |
4359 |
$contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then |
4360 |
echo "Hooray, it works! I was beginning to wonder." |
4361 |
x_cpp="$cpp" |
4362 |
x_minus='-'; |
4363 |
elif echo 'Uh-uh. Time to get fancy. Trying a wrapper...'; \ |
4364 |
$wrapper <testcpp.c >testcpp.out 2>&1; \ |
4365 |
$contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then |
4366 |
x_cpp="$wrapper" |
4367 |
x_minus='' |
4368 |
echo "Eureka!" |
4369 |
else |
4370 |
dflt='' |
4371 |
rp="No dice. I can't find a C preprocessor. Name one:" |
4372 |
. ./myread |
4373 |
x_cpp="$ans" |
4374 |
x_minus='' |
4375 |
$x_cpp <testcpp.c >testcpp.out 2>&1 |
4376 |
if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then |
4377 |
echo "OK, that will do." >&4 |
4378 |
else |
4379 |
echo "Sorry, I can't get that to work. Go find one and rerun Configure." >&4 |
4380 |
exit 1 |
4381 |
fi |
4382 |
fi |
4383 |
|
4384 |
case "$ok" in |
4385 |
false) |
4386 |
cppstdin="$x_cpp" |
4387 |
cppminus="$x_minus" |
4388 |
cpprun="$x_cpp" |
4389 |
cpplast="$x_minus" |
4390 |
set X $x_cpp |
4391 |
shift |
4392 |
case "$1" in |
4393 |
"$cpp") |
4394 |
echo "Perhaps can we force $cc -E using a wrapper..." |
4395 |
if $wrapper <testcpp.c >testcpp.out 2>&1; \ |
4396 |
$contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 |
4397 |
then |
4398 |
echo "Yup, we can." |
4399 |
cppstdin="$wrapper" |
4400 |
cppminus=''; |
4401 |
else |
4402 |
echo "Nope, we'll have to live without it..." |
4403 |
fi |
4404 |
;; |
4405 |
esac |
4406 |
case "$cpprun" in |
4407 |
"$wrapper") |
4408 |
cpprun='' |
4409 |
cpplast='' |
4410 |
;; |
4411 |
esac |
4412 |
;; |
4413 |
esac |
4414 |
|
4415 |
case "$cppstdin" in |
4416 |
"$wrapper"|'cppstdin') ;; |
4417 |
*) $rm -f $wrapper;; |
4418 |
esac |
4419 |
$rm -f testcpp.c testcpp.out |
4420 |
|
4421 |
: Set private lib path |
4422 |
case "$plibpth" in |
4423 |
'') if ./mips; then |
4424 |
plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib" |
4425 |
fi;; |
4426 |
esac |
4427 |
case "$libpth" in |
4428 |
' ') dlist='';; |
4429 |
'') dlist="$loclibpth $plibpth $glibpth";; |
4430 |
*) dlist="$libpth";; |
4431 |
esac |
4432 |
|
4433 |
: Now check and see which directories actually exist, avoiding duplicates |
4434 |
libpth='' |
4435 |
for xxx in $dlist |
4436 |
do |
4437 |
if $test -d $xxx; then |
4438 |
case " $libpth " in |
4439 |
*" $xxx "*) ;; |
4440 |
*) libpth="$libpth $xxx";; |
4441 |
esac |
4442 |
fi |
4443 |
done |
4444 |
$cat <<'EOM' |
4445 |
|
4446 |
Some systems have incompatible or broken versions of libraries. Among |
4447 |
the directories listed in the question below, please remove any you |
4448 |
know not to be holding relevant libraries, and add any that are needed. |
4449 |
Say "none" for none. |
4450 |
|
4451 |
EOM |
4452 |
case "$libpth" in |
4453 |
'') dflt='none';; |
4454 |
*) |
4455 |
set X $libpth |
4456 |
shift |
4457 |
dflt=${1+"$@"} |
4458 |
;; |
4459 |
esac |
4460 |
rp="Directories to use for library searches?" |
4461 |
. ./myread |
4462 |
case "$ans" in |
4463 |
none) libpth=' ';; |
4464 |
*) libpth="$ans";; |
4465 |
esac |
4466 |
|
4467 |
: compute shared library extension |
4468 |
case "$so" in |
4469 |
'') |
4470 |
if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then |
4471 |
dflt='sl' |
4472 |
else |
4473 |
dflt='so' |
4474 |
fi |
4475 |
;; |
4476 |
*) dflt="$so";; |
4477 |
esac |
4478 |
$cat <<EOM |
4479 |
|
4480 |
On some systems, shared libraries may be available. Answer 'none' if |
4481 |
you want to suppress searching of shared libraries for the remainder |
4482 |
of this configuration. |
4483 |
|
4484 |
EOM |
4485 |
rp='What is the file extension used for shared libraries?' |
4486 |
. ./myread |
4487 |
so="$ans" |
4488 |
|
4489 |
: Define several unixisms. |
4490 |
: Hints files or command line option can be used to override them. |
4491 |
: The convoluted testing is in case hints files set either the old |
4492 |
: or the new name. |
4493 |
case "$_exe" in |
4494 |
'') case "$exe_ext" in |
4495 |
'') ;; |
4496 |
*) _exe="$exe_ext" ;; |
4497 |
esac |
4498 |
;; |
4499 |
esac |
4500 |
case "$_a" in |
4501 |
'') case "$lib_ext" in |
4502 |
'') _a='.a';; |
4503 |
*) _a="$lib_ext" ;; |
4504 |
esac |
4505 |
;; |
4506 |
esac |
4507 |
case "$_o" in |
4508 |
'') case "$obj_ext" in |
4509 |
'') _o='.o';; |
4510 |
*) _o="$obj_ext";; |
4511 |
esac |
4512 |
;; |
4513 |
esac |
4514 |
case "$p_" in |
4515 |
'') case "$path_sep" in |
4516 |
'') p_=':';; |
4517 |
*) p_="$path_sep";; |
4518 |
esac |
4519 |
;; |
4520 |
esac |
4521 |
exe_ext=$_exe |
4522 |
lib_ext=$_a |
4523 |
obj_ext=$_o |
4524 |
path_sep=$p_ |
4525 |
|
4526 |
: Which makefile gets called first. This is used by make depend. |
4527 |
case "$firstmakefile" in |
4528 |
'') firstmakefile='makefile';; |
4529 |
esac |
4530 |
|
4531 |
case "$ccflags" in |
4532 |
*-DUSE_LONG_DOUBLE*|*-DUSE_MORE_BITS*) uselongdouble="$define" ;; |
4533 |
esac |
4534 |
|
4535 |
case "$uselongdouble" in |
4536 |
$define|true|[yY]*) dflt='y';; |
4537 |
*) dflt='n';; |
4538 |
esac |
4539 |
cat <<EOM |
4540 |
|
4541 |
Perl can be built to take advantage of long doubles which |
4542 |
(if available) may give more accuracy and range for floating point numbers. |
4543 |
|
4544 |
If this doesn't make any sense to you, just accept the default '$dflt'. |
4545 |
EOM |
4546 |
rp='Try to use long doubles if available?' |
4547 |
. ./myread |
4548 |
case "$ans" in |
4549 |
y|Y) val="$define" ;; |
4550 |
*) val="$undef" ;; |
4551 |
esac |
4552 |
set uselongdouble |
4553 |
eval $setvar |
4554 |
|
4555 |
case "$uselongdouble" in |
4556 |
true|[yY]*) uselongdouble="$define" ;; |
4557 |
esac |
4558 |
|
4559 |
: Look for a hint-file generated 'call-back-unit'. If the |
4560 |
: user has specified that long doubles should be used, |
4561 |
: we may need to set or change some other defaults. |
4562 |
if $test -f uselongdouble.cbu; then |
4563 |
echo "Your platform has some specific hints regarding long doubles, using them..." |
4564 |
. ./uselongdouble.cbu |
4565 |
else |
4566 |
case "$uselongdouble" in |
4567 |
$define) |
4568 |
$cat <<EOM |
4569 |
(Your platform does not have any specific hints for long doubles.) |
4570 |
EOM |
4571 |
;; |
4572 |
esac |
4573 |
fi |
4574 |
|
4575 |
: Looking for optional libraries |
4576 |
echo " " |
4577 |
echo "Checking for optional libraries..." >&4 |
4578 |
case "$libs" in |
4579 |
' '|'') dflt='';; |
4580 |
*) dflt="$libs";; |
4581 |
esac |
4582 |
case "$libswanted" in |
4583 |
'') libswanted='c_s';; |
4584 |
esac |
4585 |
case "$usesocks" in |
4586 |
"$define") libswanted="$libswanted socks5 socks5_sh" ;; |
4587 |
esac |
4588 |
libsfound='' |
4589 |
libsfiles='' |
4590 |
libsdirs='' |
4591 |
libspath='' |
4592 |
for thisdir in $libpth $xlibpth; do |
4593 |
test -d $thisdir && libspath="$libspath $thisdir" |
4594 |
done |
4595 |
for thislib in $libswanted; do |
4596 |
for thisdir in $libspath; do |
4597 |
xxx='' |
4598 |
if $test ! -f "$xxx" -a "X$ignore_versioned_solibs" = "X"; then |
4599 |
xxx=`ls $thisdir/lib$thislib.$so.[0-9] 2>/dev/null|sed -n '$p'` |
4600 |
$test -f "$xxx" && eval $libscheck |
4601 |
$test -f "$xxx" && libstyle=shared |
4602 |
fi |
4603 |
if test ! -f "$xxx"; then |
4604 |
xxx=$thisdir/lib$thislib.$so |
4605 |
$test -f "$xxx" && eval $libscheck |
4606 |
$test -f "$xxx" && libstyle=shared |
4607 |
fi |
4608 |
if test ! -f "$xxx"; then |
4609 |
xxx=$thisdir/lib$thislib$_a |
4610 |
$test -f "$xxx" && eval $libscheck |
4611 |
$test -f "$xxx" && libstyle=static |
4612 |
fi |
4613 |
if test ! -f "$xxx"; then |
4614 |
xxx=$thisdir/$thislib$_a |
4615 |
$test -f "$xxx" && eval $libscheck |
4616 |
$test -f "$xxx" && libstyle=static |
4617 |
fi |
4618 |
if test ! -f "$xxx"; then |
4619 |
xxx=$thisdir/lib${thislib}_s$_a |
4620 |
$test -f "$xxx" && eval $libscheck |
4621 |
$test -f "$xxx" && libstyle=static |
4622 |
$test -f "$xxx" && thislib=${thislib}_s |
4623 |
fi |
4624 |
if test ! -f "$xxx"; then |
4625 |
xxx=$thisdir/Slib$thislib$_a |
4626 |
$test -f "$xxx" && eval $libscheck |
4627 |
$test -f "$xxx" && libstyle=static |
4628 |
fi |
4629 |
if $test -f "$xxx"; then |
4630 |
case "$libstyle" in |
4631 |
shared) echo "Found -l$thislib (shared)." ;; |
4632 |
static) echo "Found -l$thislib." ;; |
4633 |
*) echo "Found -l$thislib ($libstyle)." ;; |
4634 |
esac |
4635 |
case " $dflt " in |
4636 |
*"-l$thislib "*);; |
4637 |
*) dflt="$dflt -l$thislib" |
4638 |
libsfound="$libsfound $xxx" |
4639 |
yyy=`basename $xxx` |
4640 |
libsfiles="$libsfiles $yyy" |
4641 |
yyy=`echo $xxx|$sed -e "s%/$yyy\\$%%"` |
4642 |
case " $libsdirs " in |
4643 |
*" $yyy "*) ;; |
4644 |
*) libsdirs="$libsdirs $yyy" ;; |
4645 |
esac |
4646 |
;; |
4647 |
esac |
4648 |
break |
4649 |
fi |
4650 |
done |
4651 |
if $test ! -f "$xxx"; then |
4652 |
echo "No -l$thislib." |
4653 |
fi |
4654 |
done |
4655 |
set X $dflt |
4656 |
shift |
4657 |
dflt="$*" |
4658 |
case "$libs" in |
4659 |
'') dflt="$dflt";; |
4660 |
*) dflt="$libs";; |
4661 |
esac |
4662 |
case "$dflt" in |
4663 |
' '|'') dflt='none';; |
4664 |
esac |
4665 |
|
4666 |
$cat <<EOM |
4667 |
|
4668 |
In order to compile $package on your machine, a number of libraries |
4669 |
are usually needed. Include any other special libraries here as well. |
4670 |
Say "none" for none. The default list is almost always right. |
4671 |
EOM |
4672 |
|
4673 |
echo " " |
4674 |
rp="What libraries to use?" |
4675 |
. ./myread |
4676 |
case "$ans" in |
4677 |
none) libs=' ';; |
4678 |
*) libs="$ans";; |
4679 |
esac |
4680 |
|
4681 |
: determine optimization, if desired, or use for debug flag also |
4682 |
case "$optimize" in |
4683 |
' '|$undef) dflt='none';; |
4684 |
'') dflt='-O';; |
4685 |
*) dflt="$optimize";; |
4686 |
esac |
4687 |
$cat <<EOH |
4688 |
|
4689 |
By default, $package compiles with the -O flag to use the optimizer. |
4690 |
Alternately, you might want to use the symbolic debugger, which uses |
4691 |
the -g flag (on traditional Unix systems). Either flag can be |
4692 |
specified here. To use neither flag, specify the word "none". |
4693 |
|
4694 |
EOH |
4695 |
rp="What optimizer/debugger flag should be used?" |
4696 |
. ./myread |
4697 |
optimize="$ans" |
4698 |
case "$optimize" in |
4699 |
'none') optimize=" ";; |
4700 |
esac |
4701 |
|
4702 |
dflt='' |
4703 |
: We will not override a previous value, but we might want to |
4704 |
: augment a hint file |
4705 |
case "$hint" in |
4706 |
default|recommended) |
4707 |
case "$gccversion" in |
4708 |
1*) dflt='-fpcc-struct-return' ;; |
4709 |
esac |
4710 |
case "$optimize" in |
4711 |
*-g*) dflt="$dflt -DDEBUGGING";; |
4712 |
esac |
4713 |
case "$gccversion" in |
4714 |
2*) if test -d /etc/conf/kconfig.d && |
4715 |
$contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1 |
4716 |
then |
4717 |
# Interactive Systems (ISC) POSIX mode. |
4718 |
dflt="$dflt -posix" |
4719 |
fi |
4720 |
;; |
4721 |
esac |
4722 |
case "$gccversion" in |
4723 |
1*) ;; |
4724 |
2.[0-8]*) ;; |
4725 |
?*) echo " " |
4726 |
echo "Checking if your compiler accepts -fno-strict-aliasing" 2>&1 |
4727 |
echo 'int main(void) { return 0; }' > gcctest.c |
4728 |
if $cc -O2 -fno-strict-aliasing -o gcctest gcctest.c; then |
4729 |
echo "Yes, it does." 2>&1 |
4730 |
case "$ccflags" in |
4731 |
*strict-aliasing*) |
4732 |
echo "Leaving current flags $ccflags alone." 2>&1 |
4733 |
;; |
4734 |
*) dflt="$dflt -fno-strict-aliasing" ;; |
4735 |
esac |
4736 |
else |
4737 |
echo "Nope, it doesn't, but that's ok." 2>&1 |
4738 |
fi |
4739 |
;; |
4740 |
esac |
4741 |
# For gcc, adding -pipe speeds up compilations for some, but apparently |
4742 |
# some assemblers can't read from stdin. (It also slows down compilations |
4743 |
# in other cases, but those are apparently rarer these days.) AD 5/2004. |
4744 |
case "$gccversion" in |
4745 |
?*) echo " " |
4746 |
echo "Checking if your compiler accepts -pipe" 2>&1 |
4747 |
echo 'int main(void) { return 0; }' > gcctest.c |
4748 |
if $cc -O2 -pipe -o gcctest gcctest.c; then |
4749 |
echo "Yes, it does." 2>&1 |
4750 |
case "$ccflags" in |
4751 |
*-pipe*) |
4752 |
echo "Leaving current flags $ccflags alone." 2>&1 |
4753 |
;; |
4754 |
*) dflt="$dflt -pipe" ;; |
4755 |
esac |
4756 |
else |
4757 |
echo "Nope, it doesn't, but that's ok." 2>&1 |
4758 |
fi |
4759 |
;; |
4760 |
esac |
4761 |
;; |
4762 |
esac |
4763 |
|
4764 |
case "$mips_type" in |
4765 |
*BSD*|'') inclwanted="$locincpth $usrinc";; |
4766 |
*) inclwanted="$locincpth $inclwanted $usrinc/bsd";; |
4767 |
esac |
4768 |
for thisincl in $inclwanted; do |
4769 |
if $test -d $thisincl; then |
4770 |
if $test x$thisincl != x$usrinc; then |
4771 |
case "$dflt" in |
4772 |
*" -I$thisincl "*);; |
4773 |
*) dflt="$dflt -I$thisincl ";; |
4774 |
esac |
4775 |
fi |
4776 |
fi |
4777 |
done |
4778 |
|
4779 |
inctest='if $contains $2 $usrinc/$1 >/dev/null 2>&1; then |
4780 |
xxx=true; |
4781 |
elif $contains $2 $usrinc/sys/$1 >/dev/null 2>&1; then |
4782 |
xxx=true; |
4783 |
else |
4784 |
xxx=false; |
4785 |
fi; |
4786 |
if $xxx; then |
4787 |
case "$dflt" in |
4788 |
*$2*);; |
4789 |
*) dflt="$dflt -D$2";; |
4790 |
esac; |
4791 |
fi' |
4792 |
|
4793 |
set signal.h LANGUAGE_C; eval $inctest |
4794 |
|
4795 |
case "$usesocks" in |
4796 |
$define) |
4797 |
ccflags="$ccflags -DSOCKS" |
4798 |
;; |
4799 |
esac |
4800 |
|
4801 |
case "$hint" in |
4802 |
default|recommended) dflt="$ccflags $dflt" ;; |
4803 |
*) dflt="$ccflags";; |
4804 |
esac |
4805 |
|
4806 |
case "$dflt" in |
4807 |
''|' ') dflt=none;; |
4808 |
esac |
4809 |
|
4810 |
$cat <<EOH |
4811 |
|
4812 |
Your C compiler may want other flags. For this question you should include |
4813 |
-I/whatever and -DWHATEVER flags and any other flags used by the C compiler, |
4814 |
but you should NOT include libraries or ld flags like -lwhatever. If you |
4815 |
want $package to honor its debug switch, you should include -DDEBUGGING here. |
4816 |
Your C compiler might also need additional flags, such as -D_POSIX_SOURCE. |
4817 |
|
4818 |
To use no flags, specify the word "none". |
4819 |
|
4820 |
EOH |
4821 |
set X $dflt |
4822 |
shift |
4823 |
dflt=${1+"$@"} |
4824 |
rp="Any additional cc flags?" |
4825 |
. ./myread |
4826 |
case "$ans" in |
4827 |
none) ccflags='';; |
4828 |
*) ccflags="$ans";; |
4829 |
esac |
4830 |
|
4831 |
: the following weeds options from ccflags that are of no interest to cpp |
4832 |
case "$cppflags" in |
4833 |
'') cppflags="$ccflags" ;; |
4834 |
*) cppflags="$cppflags $ccflags" ;; |
4835 |
esac |
4836 |
case "$gccversion" in |
4837 |
1*) cppflags="$cppflags -D__GNUC__" |
4838 |
esac |
4839 |
case "$mips_type" in |
4840 |
'');; |
4841 |
*BSD*) cppflags="$cppflags -DSYSTYPE_BSD43";; |
4842 |
esac |
4843 |
case "$cppflags" in |
4844 |
'');; |
4845 |
*) |
4846 |
echo " " |
4847 |
echo "Let me guess what the preprocessor flags are..." >&4 |
4848 |
set X $cppflags |
4849 |
shift |
4850 |
cppflags='' |
4851 |
$cat >cpp.c <<'EOM' |
4852 |
#define BLURFL foo |
4853 |
|
4854 |
BLURFL xx LFRULB |
4855 |
EOM |
4856 |
previous='' |
4857 |
for flag in $* |
4858 |
do |
4859 |
case "$flag" in |
4860 |
-*) ftry="$flag";; |
4861 |
*) ftry="$previous $flag";; |
4862 |
esac |
4863 |
if $cppstdin -DLFRULB=bar $cppflags $ftry $cppminus <cpp.c \ |
4864 |
>cpp1.out 2>/dev/null && \ |
4865 |
$cpprun -DLFRULB=bar $cppflags $ftry $cpplast <cpp.c \ |
4866 |
>cpp2.out 2>/dev/null && \ |
4867 |
$contains 'foo.*xx.*bar' cpp1.out >/dev/null 2>&1 && \ |
4868 |
$contains 'foo.*xx.*bar' cpp2.out >/dev/null 2>&1 |
4869 |
then |
4870 |
cppflags="$cppflags $ftry" |
4871 |
previous='' |
4872 |
else |
4873 |
previous="$flag" |
4874 |
fi |
4875 |
done |
4876 |
set X $cppflags |
4877 |
shift |
4878 |
cppflags=${1+"$@"} |
4879 |
case "$cppflags" in |
4880 |
*-*) echo "They appear to be: $cppflags";; |
4881 |
esac |
4882 |
$rm -f cpp.c cpp?.out |
4883 |
;; |
4884 |
esac |
4885 |
|
4886 |
: flags used in final linking phase |
4887 |
case "$ldflags" in |
4888 |
'') if ./venix; then |
4889 |
dflt='-i -z' |
4890 |
else |
4891 |
dflt='' |
4892 |
fi |
4893 |
case "$ccflags" in |
4894 |
*-posix*) dflt="$dflt -posix" ;; |
4895 |
esac |
4896 |
;; |
4897 |
*) dflt="$ldflags";; |
4898 |
esac |
4899 |
|
4900 |
: Try to guess additional flags to pick up local libraries. |
4901 |
for thislibdir in $libpth; do |
4902 |
case " $loclibpth " in |
4903 |
*" $thislibdir "*) |
4904 |
case "$dflt " in |
4905 |
*"-L$thislibdir "*) ;; |
4906 |
*) dflt="$dflt -L$thislibdir" ;; |
4907 |
esac |
4908 |
;; |
4909 |
esac |
4910 |
done |
4911 |
|
4912 |
case "$dflt" in |
4913 |
'') dflt='none' ;; |
4914 |
esac |
4915 |
|
4916 |
$cat <<EOH |
4917 |
|
4918 |
Your C linker may need flags. For this question you should |
4919 |
include -L/whatever and any other flags used by the C linker, but you |
4920 |
should NOT include libraries like -lwhatever. |
4921 |
|
4922 |
Make sure you include the appropriate -L/path flags if your C linker |
4923 |
does not normally search all of the directories you specified above, |
4924 |
namely |
4925 |
$libpth |
4926 |
To use no flags, specify the word "none". |
4927 |
|
4928 |
EOH |
4929 |
|
4930 |
rp="Any additional ld flags (NOT including libraries)?" |
4931 |
. ./myread |
4932 |
case "$ans" in |
4933 |
none) ldflags='';; |
4934 |
*) ldflags="$ans";; |
4935 |
esac |
4936 |
rmlist="$rmlist pdp11" |
4937 |
|
4938 |
: coherency check |
4939 |
echo " " |
4940 |
echo "Checking your choice of C compiler and flags for coherency..." >&4 |
4941 |
$cat > try.c <<'EOF' |
4942 |
#include <stdio.h> |
4943 |
int main() { printf("Ok\n"); return(0); } |
4944 |
EOF |
4945 |
set X $cc -o try $optimize $ccflags $ldflags try.c $libs |
4946 |
shift |
4947 |
$cat >try.msg <<'EOM' |
4948 |
I've tried to compile and run the following simple program: |
4949 |
|
4950 |
EOM |
4951 |
$cat try.c >> try.msg |
4952 |
|
4953 |
$cat >> try.msg <<EOM |
4954 |
|
4955 |
I used the command: |
4956 |
|
4957 |
$* |
4958 |
$run ./try |
4959 |
|
4960 |
and I got the following output: |
4961 |
|
4962 |
EOM |
4963 |
dflt=y |
4964 |
if $sh -c "$cc -o try $optimize $ccflags $ldflags try.c $libs" >>try.msg 2>&1; then |
4965 |
if $sh -c "$run ./try" >>try.msg 2>&1; then |
4966 |
xxx=`$run ./try` |
4967 |
case "$xxx" in |
4968 |
"Ok") dflt=n ;; |
4969 |
*) echo 'The program compiled OK, but produced no output.' >> try.msg |
4970 |
case " $libs " in |
4971 |
*" -lsfio "*) |
4972 |
cat >> try.msg <<'EOQS' |
4973 |
If $libs contains -lsfio, and sfio is mis-configured, then it |
4974 |
sometimes (apparently) runs and exits with a 0 status, but with no |
4975 |
output! It may have to do with sfio's use of _exit vs. exit. |
4976 |
|
4977 |
EOQS |
4978 |
rp="You have a big problem. Shall I abort Configure" |
4979 |
dflt=y |
4980 |
;; |
4981 |
esac |
4982 |
;; |
4983 |
esac |
4984 |
else |
4985 |
echo "The program compiled OK, but exited with status $?." >>try.msg |
4986 |
rp="You have a problem. Shall I abort Configure" |
4987 |
dflt=y |
4988 |
fi |
4989 |
else |
4990 |
echo "I can't compile the test program." >>try.msg |
4991 |
rp="You have a BIG problem. Shall I abort Configure" |
4992 |
dflt=y |
4993 |
fi |
4994 |
case "$dflt" in |
4995 |
y) |
4996 |
$cat try.msg >&4 |
4997 |
case "$knowitall" in |
4998 |
'') |
4999 |
echo "(The supplied flags or libraries might be incorrect.)" |
5000 |
;; |
5001 |
*) dflt=n;; |
5002 |
esac |
5003 |
echo " " |
5004 |
. ./myread |
5005 |
case "$ans" in |
5006 |
n*|N*) ;; |
5007 |
*) echo "Ok. Stopping Configure." >&4 |
5008 |
exit 1 |
5009 |
;; |
5010 |
esac |
5011 |
;; |
5012 |
n) echo "OK, that should do.";; |
5013 |
esac |
5014 |
$rm -f try try.* core |
5015 |
|
5016 |
: define a shorthand compile call |
5017 |
compile=' |
5018 |
mc_file=$1; |
5019 |
shift; |
5020 |
$cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs > /dev/null 2>&1;' |
5021 |
: define a shorthand compile call for compilations that should be ok. |
5022 |
compile_ok=' |
5023 |
mc_file=$1; |
5024 |
shift; |
5025 |
$cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs;' |
5026 |
|
5027 |
: determine filename position in cpp output |
5028 |
echo " " |
5029 |
echo "Computing filename position in cpp output for #include directives..." >&4 |
5030 |
case "$osname" in |
5031 |
vos) testaccess=-e ;; |
5032 |
*) testaccess=-r ;; |
5033 |
esac |
5034 |
echo '#include <stdio.h>' > foo.c |
5035 |
$cat >fieldn <<EOF |
5036 |
$startsh |
5037 |
$cppstdin $cppflags $cppminus <foo.c 2>/dev/null | \ |
5038 |
$grep '^[ ]*#.*stdio\.h' | \ |
5039 |
while read cline; do |
5040 |
pos=1 |
5041 |
set \$cline |
5042 |
while $test \$# -gt 0; do |
5043 |
if $test $testaccess \`echo \$1 | $tr -d '"'\`; then |
5044 |
echo "\$pos" |
5045 |
exit 0 |
5046 |
fi |
5047 |
shift |
5048 |
pos=\`expr \$pos + 1\` |
5049 |
done |
5050 |
done |
5051 |
EOF |
5052 |
chmod +x fieldn |
5053 |
fieldn=`./fieldn` |
5054 |
$rm -f foo.c fieldn |
5055 |
case $fieldn in |
5056 |
'') pos='???';; |
5057 |
1) pos=first;; |
5058 |
2) pos=second;; |
5059 |
3) pos=third;; |
5060 |
*) pos="${fieldn}th";; |
5061 |
esac |
5062 |
echo "Your cpp writes the filename in the $pos field of the line." |
5063 |
|
5064 |
case "$osname" in |
5065 |
vos) cppfilter="tr '\\\\>' '/' |" ;; # path component separator is > |
5066 |
os2) cppfilter="sed -e 's|\\\\\\\\|/|g' |" ;; # path component separator is \ |
5067 |
*) cppfilter='' ;; |
5068 |
esac |
5069 |
: locate header file |
5070 |
$cat >findhdr <<EOF |
5071 |
$startsh |
5072 |
wanted=\$1 |
5073 |
name='' |
5074 |
for usrincdir in $usrinc |
5075 |
do |
5076 |
if test -f \$usrincdir/\$wanted; then |
5077 |
echo "\$usrincdir/\$wanted" |
5078 |
exit 0 |
5079 |
fi |
5080 |
done |
5081 |
awkprg='{ print \$$fieldn }' |
5082 |
echo "#include <\$wanted>" > foo\$\$.c |
5083 |
$cppstdin $cppminus $cppflags < foo\$\$.c 2>/dev/null | \ |
5084 |
$cppfilter $grep "^[ ]*#.*\$wanted" | \ |
5085 |
while read cline; do |
5086 |
name=\`echo \$cline | $awk "\$awkprg" | $tr -d '"'\` |
5087 |
case "\$name" in |
5088 |
*[/\\\\]\$wanted) echo "\$name"; exit 1;; |
5089 |
*[\\\\/]\$wanted) echo "\$name"; exit 1;; |
5090 |
*) exit 2;; |
5091 |
esac; |
5092 |
done; |
5093 |
# |
5094 |
# status = 0: grep returned 0 lines, case statement not executed |
5095 |
# status = 1: headerfile found |
5096 |
# status = 2: while loop executed, no headerfile found |
5097 |
# |
5098 |
status=\$? |
5099 |
$rm -f foo\$\$.c; |
5100 |
if test \$status -eq 1; then |
5101 |
exit 0; |
5102 |
fi |
5103 |
exit 1 |
5104 |
EOF |
5105 |
chmod +x findhdr |
5106 |
|
5107 |
: define an alternate in-header-list? function |
5108 |
inhdr='echo " "; td=$define; tu=$undef; yyy=$@; |
5109 |
cont=true; xxf="echo \"<\$1> found.\" >&4"; |
5110 |
case $# in 2) xxnf="echo \"<\$1> NOT found.\" >&4";; |
5111 |
*) xxnf="echo \"<\$1> NOT found, ...\" >&4";; |
5112 |
esac; |
5113 |
case $# in 4) instead=instead;; *) instead="at last";; esac; |
5114 |
while $test "$cont"; do |
5115 |
xxx=`./findhdr $1` |
5116 |
var=$2; eval "was=\$$2"; |
5117 |
if $test "$xxx" && $test -r "$xxx"; |
5118 |
then eval $xxf; |
5119 |
eval "case \"\$$var\" in $undef) . ./whoa; esac"; eval "$var=\$td"; |
5120 |
cont=""; |
5121 |
else eval $xxnf; |
5122 |
eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; fi; |
5123 |
set $yyy; shift; shift; yyy=$@; |
5124 |
case $# in 0) cont="";; |
5125 |
2) xxf="echo \"but I found <\$1> $instead.\" >&4"; |
5126 |
xxnf="echo \"and I did not find <\$1> either.\" >&4";; |
5127 |
*) xxf="echo \"but I found <\$1\> instead.\" >&4"; |
5128 |
xxnf="echo \"there is no <\$1>, ...\" >&4";; |
5129 |
esac; |
5130 |
done; |
5131 |
while $test "$yyy"; |
5132 |
do set $yyy; var=$2; eval "was=\$$2"; |
5133 |
eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; |
5134 |
set $yyy; shift; shift; yyy=$@; |
5135 |
done' |
5136 |
|
5137 |
: see if stdlib is available |
5138 |
set stdlib.h i_stdlib |
5139 |
eval $inhdr |
5140 |
|
5141 |
: check for lengths of integral types |
5142 |
echo " " |
5143 |
case "$intsize" in |
5144 |
'') |
5145 |
echo "Checking to see how big your integers are..." >&4 |
5146 |
$cat >try.c <<EOCP |
5147 |
#include <stdio.h> |
5148 |
#$i_stdlib I_STDLIB |
5149 |
#ifdef I_STDLIB |
5150 |
#include <stdlib.h> |
5151 |
#endif |
5152 |
int main() |
5153 |
{ |
5154 |
printf("intsize=%d;\n", (int)sizeof(int)); |
5155 |
printf("longsize=%d;\n", (int)sizeof(long)); |
5156 |
printf("shortsize=%d;\n", (int)sizeof(short)); |
5157 |
exit(0); |
5158 |
} |
5159 |
EOCP |
5160 |
set try |
5161 |
if eval $compile_ok && $run ./try > /dev/null; then |
5162 |
eval `$run ./try` |
5163 |
echo "Your integers are $intsize bytes long." |
5164 |
echo "Your long integers are $longsize bytes long." |
5165 |
echo "Your short integers are $shortsize bytes long." |
5166 |
else |
5167 |
$cat >&4 <<EOM |
5168 |
! |
5169 |
Help! I can't compile and run the intsize test program: please enlighten me! |
5170 |
(This is probably a misconfiguration in your system or libraries, and |
5171 |
you really ought to fix it. Still, I'll try anyway.) |
5172 |
! |
5173 |
EOM |
5174 |
dflt=4 |
5175 |
rp="What is the size of an integer (in bytes)?" |
5176 |
. ./myread |
5177 |
intsize="$ans" |
5178 |
dflt=$intsize |
5179 |
rp="What is the size of a long integer (in bytes)?" |
5180 |
. ./myread |
5181 |
longsize="$ans" |
5182 |
dflt=2 |
5183 |
rp="What is the size of a short integer (in bytes)?" |
5184 |
. ./myread |
5185 |
shortsize="$ans" |
5186 |
fi |
5187 |
;; |
5188 |
esac |
5189 |
$rm -f try try.* |
5190 |
|
5191 |
: check for long long |
5192 |
echo " " |
5193 |
echo "Checking to see if you have long long..." >&4 |
5194 |
echo 'int main() { long long x = 7; return 0; }' > try.c |
5195 |
set try |
5196 |
if eval $compile; then |
5197 |
val="$define" |
5198 |
echo "You have long long." |
5199 |
else |
5200 |
val="$undef" |
5201 |
echo "You do not have long long." |
5202 |
fi |
5203 |
$rm try.* |
5204 |
set d_longlong |
5205 |
eval $setvar |
5206 |
|
5207 |
: check for length of long long |
5208 |
case "${d_longlong}${longlongsize}" in |
5209 |
$define) |
5210 |
echo " " |
5211 |
echo "Checking to see how big your long longs are..." >&4 |
5212 |
$cat >try.c <<'EOCP' |
5213 |
#include <stdio.h> |
5214 |
int main() |
5215 |
{ |
5216 |
printf("%d\n", (int)sizeof(long long)); |
5217 |
return(0); |
5218 |
} |
5219 |
EOCP |
5220 |
set try |
5221 |
if eval $compile_ok; then |
5222 |
longlongsize=`$run ./try` |
5223 |
echo "Your long longs are $longlongsize bytes long." |
5224 |
else |
5225 |
dflt='8' |
5226 |
echo " " |
5227 |
echo "(I can't seem to compile the test program. Guessing...)" |
5228 |
rp="What is the size of a long long (in bytes)?" |
5229 |
. ./myread |
5230 |
longlongsize="$ans" |
5231 |
fi |
5232 |
if $test "X$longsize" = "X$longlongsize"; then |
5233 |
echo "(That isn't any different from an ordinary long.)" |
5234 |
fi |
5235 |
;; |
5236 |
esac |
5237 |
$rm -f try.* try |
5238 |
|
5239 |
: see if inttypes.h is available |
5240 |
: we want a real compile instead of Inhdr because some systems |
5241 |
: have an inttypes.h which includes non-existent headers |
5242 |
echo " " |
5243 |
$cat >try.c <<EOCP |
5244 |
#include <inttypes.h> |
5245 |
int main() { |
5246 |
static int32_t foo32 = 0x12345678; |
5247 |
} |
5248 |
EOCP |
5249 |
set try |
5250 |
if eval $compile; then |
5251 |
echo "<inttypes.h> found." >&4 |
5252 |
val="$define" |
5253 |
else |
5254 |
echo "<inttypes.h> NOT found." >&4 |
5255 |
val="$undef" |
5256 |
fi |
5257 |
$rm -f try.c try |
5258 |
set i_inttypes |
5259 |
eval $setvar |
5260 |
|
5261 |
: check for int64_t |
5262 |
echo " " |
5263 |
echo "Checking to see if you have int64_t..." >&4 |
5264 |
$cat >try.c <<EOCP |
5265 |
#include <sys/types.h> |
5266 |
#$i_inttypes I_INTTYPES |
5267 |
#ifdef I_INTTYPES |
5268 |
#include <inttypes.h> |
5269 |
#endif |
5270 |
int main() { int64_t x = 7; } |
5271 |
EOCP |
5272 |
set try |
5273 |
if eval $compile; then |
5274 |
val="$define" |
5275 |
echo "You have int64_t." |
5276 |
else |
5277 |
val="$undef" |
5278 |
echo "You do not have int64_t." |
5279 |
fi |
5280 |
$rm -f try try.* |
5281 |
set d_int64_t |
5282 |
eval $setvar |
5283 |
|
5284 |
|
5285 |
echo " " |
5286 |
echo "Checking which 64-bit integer type we could use..." >&4 |
5287 |
|
5288 |
case "$intsize" in |
5289 |
8) val=int |
5290 |
set quadtype |
5291 |
eval $setvar |
5292 |
val='"unsigned int"' |
5293 |
set uquadtype |
5294 |
eval $setvar |
5295 |
quadkind=1 |
5296 |
;; |
5297 |
*) case "$longsize" in |
5298 |
8) val=long |
5299 |
set quadtype |
5300 |
eval $setvar |
5301 |
val='"unsigned long"' |
5302 |
set uquadtype |
5303 |
eval $setvar |
5304 |
quadkind=2 |
5305 |
;; |
5306 |
*) case "$d_longlong:$longlongsize" in |
5307 |
define:8) |
5308 |
val='"long long"' |
5309 |
set quadtype |
5310 |
eval $setvar |
5311 |
val='"unsigned long long"' |
5312 |
set uquadtype |
5313 |
eval $setvar |
5314 |
quadkind=3 |
5315 |
;; |
5316 |
*) case "$d_int64_t" in |
5317 |
define) |
5318 |
val=int64_t |
5319 |
set quadtype |
5320 |
eval $setvar |
5321 |
val=uint64_t |
5322 |
set uquadtype |
5323 |
eval $setvar |
5324 |
quadkind=4 |
5325 |
;; |
5326 |
esac |
5327 |
;; |
5328 |
esac |
5329 |
;; |
5330 |
esac |
5331 |
;; |
5332 |
esac |
5333 |
|
5334 |
case "$quadtype" in |
5335 |
'') echo "Alas, no 64-bit integer types in sight." >&4 |
5336 |
d_quad="$undef" |
5337 |
;; |
5338 |
*) echo "We could use '$quadtype' for 64-bit integers." >&4 |
5339 |
d_quad="$define" |
5340 |
;; |
5341 |
esac |
5342 |
|
5343 |
|
5344 |
case "$uselonglong" in |
5345 |
"$define"|true|[yY]*) |
5346 |
cat <<EOM >&4 |
5347 |
|
5348 |
*** Configure -Duselonglong is deprecated, using -Duse64bitint instead. |
5349 |
EOM |
5350 |
use64bitint="$define" |
5351 |
;; |
5352 |
esac |
5353 |
case "$use64bits" in |
5354 |
"$define"|true|[yY]*) |
5355 |
cat <<EOM >&4 |
5356 |
|
5357 |
*** Configure -Duse64bits is deprecated, using -Duse64bitint instead. |
5358 |
EOM |
5359 |
use64bitint="$define" |
5360 |
;; |
5361 |
esac |
5362 |
case "$use64bitints" in |
5363 |
"$define"|true|[yY]*) |
5364 |
cat <<EOM >&4 |
5365 |
|
5366 |
*** There is no Configure -Duse64bitints, using -Duse64bitint instead. |
5367 |
EOM |
5368 |
use64bitint="$define" |
5369 |
;; |
5370 |
esac |
5371 |
case "$use64bitsint" in |
5372 |
"$define"|true|[yY]*) |
5373 |
cat <<EOM >&4 |
5374 |
|
5375 |
*** There is no Configure -Duse64bitsint, using -Duse64bitint instead. |
5376 |
EOM |
5377 |
use64bitint="$define" |
5378 |
;; |
5379 |
esac |
5380 |
case "$uselonglongs" in |
5381 |
"$define"|true|[yY]*) |
5382 |
cat <<EOM >&4 |
5383 |
|
5384 |
*** There is no Configure -Duselonglongs, using -Duse64bitint instead. |
5385 |
EOM |
5386 |
use64bitint="$define" |
5387 |
;; |
5388 |
esac |
5389 |
case "$use64bitsall" in |
5390 |
"$define"|true|[yY]*) |
5391 |
cat <<EOM >&4 |
5392 |
|
5393 |
*** There is no Configure -Duse64bitsall, using -Duse64bitall instead. |
5394 |
EOM |
5395 |
use64bitall="$define" |
5396 |
;; |
5397 |
esac |
5398 |
|
5399 |
case "$ccflags" in |
5400 |
*-DUSE_LONG_LONG*|*-DUSE_64_BIT_INT*|*-DUSE_64_BIT_ALL*) use64bitint="$define";; |
5401 |
esac |
5402 |
case "$use64bitall" in |
5403 |
"$define"|true|[yY]*) use64bitint="$define" ;; |
5404 |
esac |
5405 |
|
5406 |
case "$longsize" in |
5407 |
8) cat <<EOM |
5408 |
|
5409 |
You have natively 64-bit long integers. |
5410 |
EOM |
5411 |
val="$define" |
5412 |
;; |
5413 |
*) case "$use64bitint" in |
5414 |
"$define"|true|[yY]*) dflt='y';; |
5415 |
*) dflt='n';; |
5416 |
esac |
5417 |
case "$d_quad" in |
5418 |
"$define") ;; |
5419 |
*) dflt='n' ;; |
5420 |
esac |
5421 |
cat <<EOM |
5422 |
|
5423 |
Perl can be built to take advantage of 64-bit integer types |
5424 |
on some systems. To do so, Configure can be run with -Duse64bitint. |
5425 |
Choosing this option will most probably introduce binary incompatibilities. |
5426 |
|
5427 |
If this doesn't make any sense to you, just accept the default '$dflt'. |
5428 |
(The default has been chosen based on your configuration.) |
5429 |
EOM |
5430 |
rp='Try to use 64-bit integers, if available?' |
5431 |
. ./myread |
5432 |
case "$ans" in |
5433 |
[yY]*) val="$define" ;; |
5434 |
*) val="$undef" ;; |
5435 |
esac |
5436 |
;; |
5437 |
esac |
5438 |
set use64bitint |
5439 |
eval $setvar |
5440 |
|
5441 |
case "$use64bitall" in |
5442 |
"$define"|true|[yY]*) dflt='y' ;; |
5443 |
*) case "$longsize" in |
5444 |
8) dflt='y' ;; |
5445 |
*) dflt='n' ;; |
5446 |
esac |
5447 |
;; |
5448 |
esac |
5449 |
cat <<EOM |
5450 |
|
5451 |
You may also choose to try maximal 64-bitness. It means using as much |
5452 |
64-bitness as possible on the platform. This in turn means even more |
5453 |
binary incompatibilities. On the other hand, your platform may not |
5454 |
have any more 64-bitness available than what you already have chosen. |
5455 |
|
5456 |
If this doesn't make any sense to you, just accept the default '$dflt'. |
5457 |
(The default has been chosen based on your configuration.) |
5458 |
EOM |
5459 |
rp='Try to use maximal 64-bit support, if available?' |
5460 |
. ./myread |
5461 |
case "$ans" in |
5462 |
[yY]*) val="$define" ;; |
5463 |
*) val="$undef" ;; |
5464 |
esac |
5465 |
set use64bitall |
5466 |
eval $setvar |
5467 |
case "$use64bitall" in |
5468 |
"$define") |
5469 |
case "$use64bitint" in |
5470 |
"$undef") |
5471 |
cat <<EOM |
5472 |
|
5473 |
Since you have chosen a maximally 64-bit build, I'm also turning on |
5474 |
the use of 64-bit integers. |
5475 |
EOM |
5476 |
use64bitint="$define" ;; |
5477 |
esac |
5478 |
;; |
5479 |
esac |
5480 |
|
5481 |
: Look for a hint-file generated 'call-back-unit'. If the |
5482 |
: user has specified that a 64-bit perl is to be built, |
5483 |
: we may need to set or change some other defaults. |
5484 |
if $test -f use64bitint.cbu; then |
5485 |
echo "Your platform has some specific hints regarding 64-bit integers, using them..." |
5486 |
. ./use64bitint.cbu |
5487 |
fi |
5488 |
case "$use64bitint" in |
5489 |
"$define"|true|[yY]*) |
5490 |
case "$longsize" in |
5491 |
4) case "$archname64" in |
5492 |
'') archname64=64int ;; |
5493 |
esac |
5494 |
;; |
5495 |
esac |
5496 |
;; |
5497 |
esac |
5498 |
|
5499 |
: Look for a hint-file generated 'call-back-unit'. If the |
5500 |
: user has specified that a maximally 64-bit perl is to be built, |
5501 |
: we may need to set or change some other defaults. |
5502 |
if $test -f use64bitall.cbu; then |
5503 |
echo "Your platform has some specific hints regarding 64-bit builds, using them..." |
5504 |
. ./use64bitall.cbu |
5505 |
fi |
5506 |
case "$use64bitall" in |
5507 |
"$define"|true|[yY]*) |
5508 |
case "$longsize" in |
5509 |
4) case "$archname64" in |
5510 |
''|64int) archname64=64all ;; |
5511 |
esac |
5512 |
;; |
5513 |
esac |
5514 |
;; |
5515 |
esac |
5516 |
|
5517 |
case "$d_quad:$use64bitint" in |
5518 |
$undef:$define) |
5519 |
cat >&4 <<EOF |
5520 |
|
5521 |
*** You have chosen to use 64-bit integers, |
5522 |
*** but none can be found. |
5523 |
*** Please rerun Configure without -Duse64bitint and/or -Dusemorebits. |
5524 |
*** Cannot continue, aborting. |
5525 |
|
5526 |
EOF |
5527 |
exit 1 |
5528 |
;; |
5529 |
esac |
5530 |
|
5531 |
: check for length of double |
5532 |
echo " " |
5533 |
case "$doublesize" in |
5534 |
'') |
5535 |
echo "Checking to see how big your double precision numbers are..." >&4 |
5536 |
$cat >try.c <<EOCP |
5537 |
#include <stdio.h> |
5538 |
#$i_stdlib I_STDLIB |
5539 |
#ifdef I_STDLIB |
5540 |
#include <stdlib.h> |
5541 |
#endif |
5542 |
int main() |
5543 |
{ |
5544 |
printf("%d\n", (int)sizeof(double)); |
5545 |
exit(0); |
5546 |
} |
5547 |
EOCP |
5548 |
set try |
5549 |
if eval $compile_ok; then |
5550 |
doublesize=`$run ./try` |
5551 |
echo "Your double is $doublesize bytes long." |
5552 |
else |
5553 |
dflt='8' |
5554 |
echo "(I can't seem to compile the test program. Guessing...)" |
5555 |
rp="What is the size of a double precision number (in bytes)?" |
5556 |
. ./myread |
5557 |
doublesize="$ans" |
5558 |
fi |
5559 |
;; |
5560 |
esac |
5561 |
$rm -f try.c try |
5562 |
|
5563 |
: check for long doubles |
5564 |
echo " " |
5565 |
echo "Checking to see if you have long double..." >&4 |
5566 |
echo 'int main() { long double x = 7.0; }' > try.c |
5567 |
set try |
5568 |
if eval $compile; then |
5569 |
val="$define" |
5570 |
echo "You have long double." |
5571 |
else |
5572 |
val="$undef" |
5573 |
echo "You do not have long double." |
5574 |
fi |
5575 |
$rm try.* |
5576 |
set d_longdbl |
5577 |
eval $setvar |
5578 |
|
5579 |
: check for length of long double |
5580 |
case "${d_longdbl}${longdblsize}" in |
5581 |
$define) |
5582 |
echo " " |
5583 |
echo "Checking to see how big your long doubles are..." >&4 |
5584 |
$cat >try.c <<'EOCP' |
5585 |
#include <stdio.h> |
5586 |
int main() |
5587 |
{ |
5588 |
printf("%d\n", sizeof(long double)); |
5589 |
} |
5590 |
EOCP |
5591 |
set try |
5592 |
set try |
5593 |
if eval $compile; then |
5594 |
longdblsize=`$run ./try` |
5595 |
echo "Your long doubles are $longdblsize bytes long." |
5596 |
else |
5597 |
dflt='8' |
5598 |
echo " " |
5599 |
echo "(I can't seem to compile the test program. Guessing...)" >&4 |
5600 |
rp="What is the size of a long double (in bytes)?" |
5601 |
. ./myread |
5602 |
longdblsize="$ans" |
5603 |
fi |
5604 |
if $test "X$doublesize" = "X$longdblsize"; then |
5605 |
echo "That isn't any different from an ordinary double." |
5606 |
echo "I'll keep your setting anyway, but you may see some" |
5607 |
echo "harmless compilation warnings." |
5608 |
fi |
5609 |
;; |
5610 |
esac |
5611 |
$rm -f try.* try |
5612 |
|
5613 |
: determine the architecture name |
5614 |
echo " " |
5615 |
if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then |
5616 |
tarch=`arch`"-$osname" |
5617 |
elif xxx=`./loc uname blurfl $pth`; $test -f "$xxx" ; then |
5618 |
if uname -m > tmparch 2>&1 ; then |
5619 |
tarch=`$sed -e 's/ *$//' -e 's/ /_/g' \ |
5620 |
-e 's/$/'"-$osname/" tmparch` |
5621 |
else |
5622 |
tarch="$osname" |
5623 |
fi |
5624 |
$rm -f tmparch |
5625 |
else |
5626 |
tarch="$osname" |
5627 |
fi |
5628 |
case "$myarchname" in |
5629 |
''|"$tarch") ;; |
5630 |
*) |
5631 |
echo "(Your architecture name used to be $myarchname.)" |
5632 |
archname='' |
5633 |
;; |
5634 |
esac |
5635 |
case "$targetarch" in |
5636 |
'') ;; |
5637 |
*) archname=`echo $targetarch|sed 's,^[^-]*-,,'` ;; |
5638 |
esac |
5639 |
myarchname="$tarch" |
5640 |
case "$archname" in |
5641 |
'') dflt="$tarch";; |
5642 |
*) dflt="$archname";; |
5643 |
esac |
5644 |
rp='What is your architecture name' |
5645 |
. ./myread |
5646 |
archname="$ans" |
5647 |
case "$usethreads" in |
5648 |
$define) |
5649 |
echo "Threads selected." >&4 |
5650 |
case "$archname" in |
5651 |
*-thread*) echo "...and architecture name already has -thread." >&4 |
5652 |
;; |
5653 |
*) archname="$archname-thread" |
5654 |
echo "...setting architecture name to $archname." >&4 |
5655 |
;; |
5656 |
esac |
5657 |
;; |
5658 |
esac |
5659 |
case "$usemultiplicity" in |
5660 |
$define) |
5661 |
echo "Multiplicity selected." >&4 |
5662 |
case "$archname" in |
5663 |
*-multi*) echo "...and architecture name already has -multi." >&4 |
5664 |
;; |
5665 |
*) archname="$archname-multi" |
5666 |
echo "...setting architecture name to $archname." >&4 |
5667 |
;; |
5668 |
esac |
5669 |
;; |
5670 |
esac |
5671 |
case "$use64bitint$use64bitall" in |
5672 |
*"$define"*) |
5673 |
case "$archname64" in |
5674 |
'') |
5675 |
echo "This architecture is naturally 64-bit, not changing architecture name." >&4 |
5676 |
;; |
5677 |
*) |
5678 |
case "$use64bitint" in |
5679 |
"$define") echo "64 bit integers selected." >&4 ;; |
5680 |
esac |
5681 |
case "$use64bitall" in |
5682 |
"$define") echo "Maximal 64 bitness selected." >&4 ;; |
5683 |
esac |
5684 |
case "$archname" in |
5685 |
*-$archname64*) echo "...and architecture name already has $archname64." >&4 |
5686 |
;; |
5687 |
*) archname="$archname-$archname64" |
5688 |
echo "...setting architecture name to $archname." >&4 |
5689 |
;; |
5690 |
esac |
5691 |
;; |
5692 |
esac |
5693 |
esac |
5694 |
case "$uselongdouble" in |
5695 |
$define) |
5696 |
echo "Long doubles selected." >&4 |
5697 |
case "$longdblsize" in |
5698 |
$doublesize) |
5699 |
echo "...but long doubles are equal to doubles, not changing architecture name." >&4 |
5700 |
;; |
5701 |
*) |
5702 |
case "$archname" in |
5703 |
*-ld*) echo "...and architecture name already has -ld." >&4 |
5704 |
;; |
5705 |
*) archname="$archname-ld" |
5706 |
echo "...setting architecture name to $archname." >&4 |
5707 |
;; |
5708 |
esac |
5709 |
;; |
5710 |
esac |
5711 |
;; |
5712 |
esac |
5713 |
case "$useperlio" in |
5714 |
$define) |
5715 |
echo "Perlio selected." >&4 |
5716 |
;; |
5717 |
*) |
5718 |
echo "Perlio not selected, using stdio." >&4 |
5719 |
case "$archname" in |
5720 |
*-stdio*) echo "...and architecture name already has -stdio." >&4 |
5721 |
;; |
5722 |
*) archname="$archname-stdio" |
5723 |
echo "...setting architecture name to $archname." >&4 |
5724 |
;; |
5725 |
esac |
5726 |
;; |
5727 |
esac |
5728 |
if $test -f archname.cbu; then |
5729 |
echo "Your platform has some specific hints for architecture name, using them..." |
5730 |
. ./archname.cbu |
5731 |
fi |
5732 |
|
5733 |
: determine root of directory hierarchy where package will be installed. |
5734 |
case "$prefix" in |
5735 |
'') |
5736 |
dflt=`./loc . /usr/local /usr/local /local /opt /usr` |
5737 |
;; |
5738 |
*?/) |
5739 |
dflt=`echo "$prefix" | sed 's/.$//'` |
5740 |
;; |
5741 |
*) |
5742 |
dflt="$prefix" |
5743 |
;; |
5744 |
esac |
5745 |
$cat <<EOM |
5746 |
|
5747 |
By default, $package will be installed in $dflt/bin, manual pages |
5748 |
under $dflt/man, etc..., i.e. with $dflt as prefix for all |
5749 |
installation directories. Typically this is something like /usr/local. |
5750 |
If you wish to have binaries under /usr/bin but other parts of the |
5751 |
installation under /usr/local, that's ok: you will be prompted |
5752 |
separately for each of the installation directories, the prefix being |
5753 |
only used to set the defaults. |
5754 |
|
5755 |
EOM |
5756 |
fn=d~ |
5757 |
rp='Installation prefix to use?' |
5758 |
. ./getfile |
5759 |
oldprefix='' |
5760 |
case "$prefix" in |
5761 |
'') ;; |
5762 |
*) |
5763 |
case "$ans" in |
5764 |
"$prefix") ;; |
5765 |
*) oldprefix="$prefix";; |
5766 |
esac |
5767 |
;; |
5768 |
esac |
5769 |
prefix="$ans" |
5770 |
prefixexp="$ansexp" |
5771 |
|
5772 |
case "$afsroot" in |
5773 |
'') afsroot=/afs ;; |
5774 |
*) afsroot=$afsroot ;; |
5775 |
esac |
5776 |
|
5777 |
: is AFS running? |
5778 |
echo " " |
5779 |
case "$afs" in |
5780 |
$define|true) afs=true ;; |
5781 |
$undef|false) afs=false ;; |
5782 |
*) if test -d $afsroot; then |
5783 |
afs=true |
5784 |
else |
5785 |
afs=false |
5786 |
fi |
5787 |
;; |
5788 |
esac |
5789 |
if $afs; then |
5790 |
echo "AFS may be running... I'll be extra cautious then..." >&4 |
5791 |
else |
5792 |
echo "AFS does not seem to be running..." >&4 |
5793 |
fi |
5794 |
|
5795 |
: determine installation prefix for where package is to be installed. |
5796 |
if $afs; then |
5797 |
$cat <<EOM |
5798 |
|
5799 |
Since you are running AFS, I need to distinguish the directory in which |
5800 |
files will reside from the directory in which they are installed (and from |
5801 |
which they are presumably copied to the former directory by occult means). |
5802 |
|
5803 |
EOM |
5804 |
case "$installprefix" in |
5805 |
'') dflt=`echo $prefix | sed 's#^/afs/#/afs/.#'`;; |
5806 |
*) dflt="$installprefix";; |
5807 |
esac |
5808 |
else |
5809 |
$cat <<EOM |
5810 |
|
5811 |
In some special cases, particularly when building $package for distribution, |
5812 |
it is convenient to distinguish the directory in which files should be |
5813 |
installed from the directory ($prefix) in which they will |
5814 |
eventually reside. For most users, these two directories are the same. |
5815 |
|
5816 |
EOM |
5817 |
case "$installprefix" in |
5818 |
'') dflt=$prefix ;; |
5819 |
*) dflt=$installprefix;; |
5820 |
esac |
5821 |
fi |
5822 |
fn=d~ |
5823 |
rp='What installation prefix should I use for installing files?' |
5824 |
. ./getfile |
5825 |
installprefix="$ans" |
5826 |
installprefixexp="$ansexp" |
5827 |
|
5828 |
: set the prefixit variable, to compute a suitable default value |
5829 |
prefixit='case "$3" in |
5830 |
""|none) |
5831 |
case "$oldprefix" in |
5832 |
"") eval "$1=\"\$$2\"";; |
5833 |
*) |
5834 |
case "$3" in |
5835 |
"") eval "$1=";; |
5836 |
none) |
5837 |
eval "tp=\"\$$2\""; |
5838 |
case "$tp" in |
5839 |
""|" ") eval "$1=\"\$$2\"";; |
5840 |
*) eval "$1=";; |
5841 |
esac;; |
5842 |
esac;; |
5843 |
esac;; |
5844 |
*) |
5845 |
eval "tp=\"$oldprefix-\$$2-\""; eval "tp=\"$tp\""; |
5846 |
case "$tp" in |
5847 |
--|/*--|\~*--) eval "$1=\"$prefix/$3\"";; |
5848 |
/*-$oldprefix/*|\~*-$oldprefix/*) |
5849 |
eval "$1=\`echo \$$2 | sed \"s,^$oldprefix,$prefix,\"\`";; |
5850 |
*) eval "$1=\"\$$2\"";; |
5851 |
esac;; |
5852 |
esac' |
5853 |
|
5854 |
: get the patchlevel |
5855 |
echo " " |
5856 |
echo "Getting the current patchlevel..." >&4 |
5857 |
if $test -r $rsrc/patchlevel.h;then |
5858 |
revision=`awk '/define[ ]+PERL_REVISION/ {print $3}' $rsrc/patchlevel.h` |
5859 |
patchlevel=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h` |
5860 |
subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $rsrc/patchlevel.h` |
5861 |
api_revision=`awk '/define[ ]+PERL_API_REVISION/ {print $3}' $rsrc/patchlevel.h` |
5862 |
api_version=`awk '/define[ ]+PERL_API_VERSION/ {print $3}' $rsrc/patchlevel.h` |
5863 |
api_subversion=`awk '/define[ ]+PERL_API_SUBVERSION/ {print $3}' $rsrc/patchlevel.h` |
5864 |
perl_patchlevel=`grep ',"DEVEL[0-9][0-9]*"' $rsrc/patchlevel.h|sed 's/[^0-9]//g'` |
5865 |
else |
5866 |
revision=0 |
5867 |
patchlevel=0 |
5868 |
subversion=0 |
5869 |
api_revision=0 |
5870 |
api_version=0 |
5871 |
api_subversion=0 |
5872 |
perl_patchlevel=0 |
5873 |
$echo "(You do not have patchlevel.h. Eek.)" |
5874 |
fi |
5875 |
if $test -r $rsrc/.patch ; then |
5876 |
if $test "`cat $rsrc/.patch`" -gt "$perl_patchlevel" ; then |
5877 |
perl_patchlevel=`cat $rsrc/.patch` |
5878 |
fi |
5879 |
fi |
5880 |
: Define a handy string here to avoid duplication in myconfig.SH and configpm. |
5881 |
version_patchlevel_string="version $patchlevel subversion $subversion" |
5882 |
case "$perl_patchlevel" in |
5883 |
0|'') ;; |
5884 |
*) version_patchlevel_string="$version_patchlevel_string patch $perl_patchlevel" ;; |
5885 |
esac |
5886 |
|
5887 |
$echo "(You have $package $version_patchlevel_string.)" |
5888 |
|
5889 |
case "$osname" in |
5890 |
dos|vms) |
5891 |
: XXX Should be a Configure test for double-dots in filenames. |
5892 |
version=`echo $revision $patchlevel $subversion | \ |
5893 |
$awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'` |
5894 |
api_versionstring=`echo $api_revision $api_version $api_subversion | \ |
5895 |
$awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'` |
5896 |
;; |
5897 |
*) |
5898 |
version=`echo $revision $patchlevel $subversion | \ |
5899 |
$awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'` |
5900 |
api_versionstring=`echo $api_revision $api_version $api_subversion | \ |
5901 |
$awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'` |
5902 |
;; |
5903 |
esac |
5904 |
: Special case the 5.005_xx maintenance series, which used 5.005 |
5905 |
: without any subversion label as a subdirectory in $sitelib |
5906 |
if test "${api_revision}${api_version}${api_subversion}" = "550"; then |
5907 |
api_versionstring='5.005' |
5908 |
fi |
5909 |
|
5910 |
: determine installation style |
5911 |
: For now, try to deduce it from prefix unless it is already set. |
5912 |
: Reproduce behavior of 5.005 and earlier, maybe drop that in 5.7. |
5913 |
case "$installstyle" in |
5914 |
'') case "$prefix" in |
5915 |
*perl*) dflt='lib';; |
5916 |
*) dflt='lib/perl5' ;; |
5917 |
esac |
5918 |
;; |
5919 |
*) dflt="$installstyle" ;; |
5920 |
esac |
5921 |
: Probably not worth prompting for this since we prompt for all |
5922 |
: the directories individually, and the prompt would be too long and |
5923 |
: confusing anyway. |
5924 |
installstyle=$dflt |
5925 |
|
5926 |
: determine where private library files go |
5927 |
: Usual default is /usr/local/lib/perl5/$version. |
5928 |
: Also allow things like /opt/perl/lib/$version, since |
5929 |
: /opt/perl/lib/perl5... would be redundant. |
5930 |
: The default "style" setting is made in installstyle.U |
5931 |
case "$installstyle" in |
5932 |
*lib/perl5*) set dflt privlib lib/$package/$version ;; |
5933 |
*) set dflt privlib lib/$version ;; |
5934 |
esac |
5935 |
eval $prefixit |
5936 |
$cat <<EOM |
5937 |
|
5938 |
There are some auxiliary files for $package that need to be put into a |
5939 |
private library directory that is accessible by everyone. |
5940 |
|
5941 |
EOM |
5942 |
fn=d~+ |
5943 |
rp='Pathname where the private library files will reside?' |
5944 |
. ./getfile |
5945 |
privlib="$ans" |
5946 |
privlibexp="$ansexp" |
5947 |
: Change installation prefix, if necessary. |
5948 |
if $test X"$prefix" != X"$installprefix"; then |
5949 |
installprivlib=`echo $privlibexp | sed "s#^$prefix#$installprefix#"` |
5950 |
else |
5951 |
installprivlib="$privlibexp" |
5952 |
fi |
5953 |
|
5954 |
: set the prefixup variable, to restore leading tilda escape |
5955 |
prefixup='case "$prefixexp" in |
5956 |
"$prefix") ;; |
5957 |
*) eval "$1=\`echo \$$1 | sed \"s,^$prefixexp,$prefix,\"\`";; |
5958 |
esac' |
5959 |
|
5960 |
: determine where public architecture dependent libraries go |
5961 |
set archlib archlib |
5962 |
eval $prefixit |
5963 |
: privlib default is /usr/local/lib/$package/$version |
5964 |
: archlib default is /usr/local/lib/$package/$version/$archname |
5965 |
: privlib may have an optional trailing /share. |
5966 |
tdflt=`echo $privlib | $sed 's,/share$,,'` |
5967 |
tdflt=$tdflt/$archname |
5968 |
case "$archlib" in |
5969 |
'') dflt=$tdflt |
5970 |
;; |
5971 |
*) dflt="$archlib" |
5972 |
;; |
5973 |
esac |
5974 |
$cat <<EOM |
5975 |
|
5976 |
$spackage contains architecture-dependent library files. If you are |
5977 |
sharing libraries in a heterogeneous environment, you might store |
5978 |
these files in a separate location. Otherwise, you can just include |
5979 |
them with the rest of the public library files. |
5980 |
|
5981 |
EOM |
5982 |
fn=d+~ |
5983 |
rp='Where do you want to put the public architecture-dependent libraries?' |
5984 |
. ./getfile |
5985 |
archlib="$ans" |
5986 |
archlibexp="$ansexp" |
5987 |
if $test X"$archlib" = X"$privlib"; then |
5988 |
d_archlib="$undef" |
5989 |
else |
5990 |
d_archlib="$define" |
5991 |
fi |
5992 |
: Change installation prefix, if necessary. |
5993 |
if $test X"$prefix" != X"$installprefix"; then |
5994 |
installarchlib=`echo $archlibexp | sed "s#^$prefix#$installprefix#"` |
5995 |
else |
5996 |
installarchlib="$archlibexp" |
5997 |
fi |
5998 |
|
5999 |
: see if setuid scripts can be secure |
6000 |
$cat <<EOM |
6001 |
|
6002 |
Some kernels have a bug that prevents setuid #! scripts from being |
6003 |
secure. Some sites have disabled setuid #! scripts because of this. |
6004 |
|
6005 |
First let's decide if your kernel supports secure setuid #! scripts. |
6006 |
(If setuid #! scripts would be secure but have been disabled anyway, |
6007 |
don't say that they are secure if asked.) |
6008 |
|
6009 |
EOM |
6010 |
|
6011 |
val="$undef" |
6012 |
if $test -d /dev/fd; then |
6013 |
echo "#!$ls" >reflect |
6014 |
chmod +x,u+s reflect |
6015 |
./reflect >flect 2>&1 |
6016 |
if $contains "/dev/fd" flect >/dev/null; then |
6017 |
echo "Congratulations, your kernel has secure setuid scripts!" >&4 |
6018 |
val="$define" |
6019 |
else |
6020 |
$cat <<EOM |
6021 |
If you are not sure if they are secure, I can check but I'll need a |
6022 |
username and password different from the one you are using right now. |
6023 |
If you don't have such a username or don't want me to test, simply |
6024 |
enter 'none'. |
6025 |
|
6026 |
EOM |
6027 |
rp='Other username to test security of setuid scripts with?' |
6028 |
dflt='none' |
6029 |
. ./myread |
6030 |
case "$ans" in |
6031 |
n|none) |
6032 |
case "$d_suidsafe" in |
6033 |
'') echo "I'll assume setuid scripts are *not* secure." >&4 |
6034 |
dflt=n;; |
6035 |
"$undef") |
6036 |
echo "Well, the $hint value is *not* secure." >&4 |
6037 |
dflt=n;; |
6038 |
*) echo "Well, the $hint value *is* secure." >&4 |
6039 |
dflt=y;; |
6040 |
esac |
6041 |
;; |
6042 |
*) |
6043 |
$rm -f reflect flect |
6044 |
echo "#!$ls" >reflect |
6045 |
chmod +x,u+s reflect |
6046 |
echo >flect |
6047 |
chmod a+w flect |
6048 |
echo '"su" will (probably) prompt you for '"$ans's password." |
6049 |
su $ans -c './reflect >flect' |
6050 |
if $contains "/dev/fd" flect >/dev/null; then |
6051 |
echo "Okay, it looks like setuid scripts are secure." >&4 |
6052 |
dflt=y |
6053 |
else |
6054 |
echo "I don't think setuid scripts are secure." >&4 |
6055 |
dflt=n |
6056 |
fi |
6057 |
;; |
6058 |
esac |
6059 |
rp='Does your kernel have *secure* setuid scripts?' |
6060 |
. ./myread |
6061 |
case "$ans" in |
6062 |
[yY]*) val="$define";; |
6063 |
*) val="$undef";; |
6064 |
esac |
6065 |
fi |
6066 |
else |
6067 |
echo "I don't think setuid scripts are secure (no /dev/fd directory)." >&4 |
6068 |
echo "(That's for file descriptors, not floppy disks.)" |
6069 |
val="$undef" |
6070 |
fi |
6071 |
set d_suidsafe |
6072 |
eval $setvar |
6073 |
|
6074 |
$rm -f reflect flect |
6075 |
|
6076 |
: now see if they want to do setuid emulation |
6077 |
echo " " |
6078 |
val="$undef" |
6079 |
case "$d_suidsafe" in |
6080 |
"$define") |
6081 |
val="$undef" |
6082 |
echo "No need to emulate SUID scripts since they are secure here." >&4 |
6083 |
;; |
6084 |
*) |
6085 |
$cat <<EOM |
6086 |
Some systems have disabled setuid scripts, especially systems where |
6087 |
setuid scripts cannot be secure. On systems where setuid scripts have |
6088 |
been disabled, the setuid/setgid bits on scripts are currently |
6089 |
useless. It is possible for $package to detect those bits and emulate |
6090 |
setuid/setgid in a secure fashion. This emulation will only work if |
6091 |
setuid scripts have been disabled in your kernel. |
6092 |
|
6093 |
EOM |
6094 |
case "$d_dosuid" in |
6095 |
"$define") dflt=y ;; |
6096 |
*) dflt=n ;; |
6097 |
esac |
6098 |
rp="Do you want to do setuid/setgid emulation?" |
6099 |
. ./myread |
6100 |
case "$ans" in |
6101 |
[yY]*) val="$define";; |
6102 |
*) val="$undef";; |
6103 |
esac |
6104 |
;; |
6105 |
esac |
6106 |
set d_dosuid |
6107 |
eval $setvar |
6108 |
|
6109 |
: see if this is a malloc.h system |
6110 |
: we want a real compile instead of Inhdr because some systems have a |
6111 |
: malloc.h that just gives a compile error saying to use stdlib.h instead |
6112 |
echo " " |
6113 |
$cat >try.c <<EOCP |
6114 |
#include <stdlib.h> |
6115 |
#include <malloc.h> |
6116 |
int main () { return 0; } |
6117 |
EOCP |
6118 |
set try |
6119 |
if eval $compile; then |
6120 |
echo "<malloc.h> found." >&4 |
6121 |
val="$define" |
6122 |
else |
6123 |
echo "<malloc.h> NOT found." >&4 |
6124 |
val="$undef" |
6125 |
fi |
6126 |
$rm -f try.c try |
6127 |
set i_malloc |
6128 |
eval $setvar |
6129 |
|
6130 |
: check for void type |
6131 |
echo " " |
6132 |
echo "Checking to see how well your C compiler groks the void type..." >&4 |
6133 |
case "$voidflags" in |
6134 |
'') |
6135 |
$cat >try.c <<EOCP |
6136 |
#$i_stdlib I_STDLIB |
6137 |
#ifdef I_STDLIB |
6138 |
#include <stdlib.h> |
6139 |
#endif |
6140 |
#if TRY & 1 |
6141 |
void sub() { |
6142 |
#else |
6143 |
sub() { |
6144 |
#endif |
6145 |
extern void moo(); /* function returning void */ |
6146 |
void (*goo)(); /* ptr to func returning void */ |
6147 |
#if TRY & 8 |
6148 |
void *hue; /* generic ptr */ |
6149 |
#endif |
6150 |
#if TRY & 2 |
6151 |
void (*foo[10])(); |
6152 |
#endif |
6153 |
|
6154 |
#if TRY & 4 |
6155 |
if(goo == moo) { |
6156 |
exit(0); |
6157 |
} |
6158 |
#endif |
6159 |
exit(0); |
6160 |
} |
6161 |
int main() { sub(); } |
6162 |
EOCP |
6163 |
if $cc $ccflags -c -DTRY=$defvoidused try.c >.out 2>&1 ; then |
6164 |
voidflags=$defvoidused |
6165 |
echo "Good. It appears to support void to the level $package wants.">&4 |
6166 |
if $contains warning .out >/dev/null 2>&1; then |
6167 |
echo "However, you might get some warnings that look like this:" |
6168 |
$cat .out |
6169 |
fi |
6170 |
else |
6171 |
echo "Hmm, your compiler has some difficulty with void. Checking further..." >&4 |
6172 |
if $cc $ccflags -c -DTRY=1 try.c >/dev/null 2>&1; then |
6173 |
echo "It supports 1..." |
6174 |
if $cc $ccflags -c -DTRY=3 try.c >/dev/null 2>&1; then |
6175 |
echo "It also supports 2..." |
6176 |
if $cc $ccflags -c -DTRY=7 try.c >/dev/null 2>&1; then |
6177 |
voidflags=7 |
6178 |
echo "And it supports 4 but not 8 definitely." |
6179 |
else |
6180 |
echo "It doesn't support 4..." |
6181 |
if $cc $ccflags -c -DTRY=11 try.c >/dev/null 2>&1; then |
6182 |
voidflags=11 |
6183 |
echo "But it supports 8." |
6184 |
else |
6185 |
voidflags=3 |
6186 |
echo "Neither does it support 8." |
6187 |
fi |
6188 |
fi |
6189 |
else |
6190 |
echo "It does not support 2..." |
6191 |
if $cc $ccflags -c -DTRY=13 try.c >/dev/null 2>&1; then |
6192 |
voidflags=13 |
6193 |
echo "But it supports 4 and 8." |
6194 |
else |
6195 |
if $cc $ccflags -c -DTRY=5 try.c >/dev/null 2>&1; then |
6196 |
voidflags=5 |
6197 |
echo "And it supports 4 but has not heard about 8." |
6198 |
else |
6199 |
echo "However it supports 8 but not 4." |
6200 |
fi |
6201 |
fi |
6202 |
fi |
6203 |
else |
6204 |
echo "There is no support at all for void." |
6205 |
voidflags=0 |
6206 |
fi |
6207 |
fi |
6208 |
esac |
6209 |
case "$voidflags" in |
6210 |
"$defvoidused") ;; |
6211 |
*) $cat >&4 <<'EOM' |
6212 |
Support flag bits are: |
6213 |
1: basic void declarations. |
6214 |
2: arrays of pointers to functions returning void. |
6215 |
4: operations between pointers to and addresses of void functions. |
6216 |
8: generic void pointers. |
6217 |
EOM |
6218 |
dflt="$voidflags"; |
6219 |
rp="Your void support flags add up to what?" |
6220 |
. ./myread |
6221 |
voidflags="$ans" |
6222 |
;; |
6223 |
esac |
6224 |
$rm -f try.* .out |
6225 |
|
6226 |
: check for length of pointer |
6227 |
echo " " |
6228 |
case "$ptrsize" in |
6229 |
'') |
6230 |
echo "Checking to see how big your pointers are..." >&4 |
6231 |
if test "$voidflags" -gt 7; then |
6232 |
echo '#define VOID_PTR char *' > try.c |
6233 |
else |
6234 |
echo '#define VOID_PTR void *' > try.c |
6235 |
fi |
6236 |
$cat >>try.c <<EOCP |
6237 |
#include <stdio.h> |
6238 |
#$i_stdlib I_STDLIB |
6239 |
#ifdef I_STDLIB |
6240 |
#include <stdlib.h> |
6241 |
#endif |
6242 |
int main() |
6243 |
{ |
6244 |
printf("%d\n", (int)sizeof(VOID_PTR)); |
6245 |
exit(0); |
6246 |
} |
6247 |
EOCP |
6248 |
set try |
6249 |
if eval $compile_ok; then |
6250 |
ptrsize=`$run ./try` |
6251 |
echo "Your pointers are $ptrsize bytes long." |
6252 |
else |
6253 |
dflt='4' |
6254 |
echo "(I can't seem to compile the test program. Guessing...)" >&4 |
6255 |
rp="What is the size of a pointer (in bytes)?" |
6256 |
. ./myread |
6257 |
ptrsize="$ans" |
6258 |
fi |
6259 |
;; |
6260 |
esac |
6261 |
$rm -f try.c try |
6262 |
case "$use64bitall" in |
6263 |
"$define"|true|[yY]*) |
6264 |
case "$ptrsize" in |
6265 |
4) cat <<EOM >&4 |
6266 |
|
6267 |
*** You have chosen a maximally 64-bit build, |
6268 |
*** but your pointers are only 4 bytes wide. |
6269 |
*** Please rerun Configure without -Duse64bitall. |
6270 |
EOM |
6271 |
case "$d_quad" in |
6272 |
define) |
6273 |
cat <<EOM >&4 |
6274 |
*** Since you have quads, you could possibly try with -Duse64bitint. |
6275 |
EOM |
6276 |
;; |
6277 |
esac |
6278 |
cat <<EOM >&4 |
6279 |
*** Cannot continue, aborting. |
6280 |
|
6281 |
EOM |
6282 |
|
6283 |
exit 1 |
6284 |
;; |
6285 |
esac |
6286 |
;; |
6287 |
esac |
6288 |
|
6289 |
|
6290 |
: determine whether to use malloc wrapping |
6291 |
echo " " |
6292 |
case "$usemallocwrap" in |
6293 |
[yY]*|true|$define) dflt='y' ;; |
6294 |
[nN]*|false|$undef) dflt='n' ;; |
6295 |
*) case "$usedevel" in |
6296 |
[yY]*|true|$define) dflt='y' ;; |
6297 |
*) dflt='n' ;; |
6298 |
esac |
6299 |
;; |
6300 |
esac |
6301 |
rp="Do you wish to wrap malloc calls to protect against potential overflows?" |
6302 |
. ./myread |
6303 |
usemallocwrap="$ans" |
6304 |
case "$ans" in |
6305 |
y*|true) |
6306 |
usemallocwrap="$define" ;; |
6307 |
*) |
6308 |
usemallocwrap="$undef" ;; |
6309 |
esac |
6310 |
|
6311 |
: determine which malloc to compile in |
6312 |
echo " " |
6313 |
case "$usemymalloc" in |
6314 |
[yY]*|true|$define) dflt='y' ;; |
6315 |
[nN]*|false|$undef) dflt='n' ;; |
6316 |
*) case "$ptrsize" in |
6317 |
4) dflt='y' ;; |
6318 |
*) dflt='n' ;; |
6319 |
esac |
6320 |
;; |
6321 |
esac |
6322 |
rp="Do you wish to attempt to use the malloc that comes with $package?" |
6323 |
. ./myread |
6324 |
usemymalloc="$ans" |
6325 |
case "$ans" in |
6326 |
y*|true) |
6327 |
usemymalloc='y' |
6328 |
mallocsrc='malloc.c' |
6329 |
mallocobj="malloc$_o" |
6330 |
d_mymalloc="$define" |
6331 |
case "$libs" in |
6332 |
*-lmalloc*) |
6333 |
: Remove malloc from list of libraries to use |
6334 |
echo "Removing unneeded -lmalloc from library list" >&4 |
6335 |
set `echo X $libs | $sed -e 's/-lmalloc / /' -e 's/-lmalloc$//'` |
6336 |
shift |
6337 |
libs="$*" |
6338 |
echo "libs = $libs" >&4 |
6339 |
;; |
6340 |
esac |
6341 |
;; |
6342 |
*) |
6343 |
usemymalloc='n' |
6344 |
mallocsrc='' |
6345 |
mallocobj='' |
6346 |
d_mymalloc="$undef" |
6347 |
;; |
6348 |
esac |
6349 |
|
6350 |
: compute the return types of malloc and free |
6351 |
echo " " |
6352 |
$cat >malloc.c <<END |
6353 |
#$i_malloc I_MALLOC |
6354 |
#$i_stdlib I_STDLIB |
6355 |
#include <stdio.h> |
6356 |
#include <sys/types.h> |
6357 |
#ifdef I_MALLOC |
6358 |
#include <malloc.h> |
6359 |
#endif |
6360 |
#ifdef I_STDLIB |
6361 |
#include <stdlib.h> |
6362 |
#endif |
6363 |
#ifdef TRY_MALLOC |
6364 |
void *malloc(); |
6365 |
#endif |
6366 |
#ifdef TRY_FREE |
6367 |
void free(); |
6368 |
#endif |
6369 |
END |
6370 |
case "$malloctype" in |
6371 |
'') |
6372 |
if $cc $ccflags -c -DTRY_MALLOC malloc.c >/dev/null 2>&1; then |
6373 |
malloctype='void *' |
6374 |
else |
6375 |
malloctype='char *' |
6376 |
fi |
6377 |
;; |
6378 |
esac |
6379 |
echo "Your system wants malloc to return '$malloctype', it would seem." >&4 |
6380 |
|
6381 |
case "$freetype" in |
6382 |
'') |
6383 |
if $cc $ccflags -c -DTRY_FREE malloc.c >/dev/null 2>&1; then |
6384 |
freetype='void' |
6385 |
else |
6386 |
freetype='int' |
6387 |
fi |
6388 |
;; |
6389 |
esac |
6390 |
echo "Your system uses $freetype free(), it would seem." >&4 |
6391 |
$rm -f malloc.[co] |
6392 |
$cat <<EOM |
6393 |
|
6394 |
After $package is installed, you may wish to install various |
6395 |
add-on modules and utilities. Typically, these add-ons will |
6396 |
be installed under $prefix with the rest |
6397 |
of this package. However, you may wish to install such add-ons |
6398 |
elsewhere under a different prefix. |
6399 |
|
6400 |
If you do not wish to put everything under a single prefix, that's |
6401 |
ok. You will be prompted for the individual locations; this siteprefix |
6402 |
is only used to suggest the defaults. |
6403 |
|
6404 |
The default should be fine for most people. |
6405 |
|
6406 |
EOM |
6407 |
fn=d~+ |
6408 |
rp='Installation prefix to use for add-on modules and utilities?' |
6409 |
: XXX Here might be another good place for an installstyle setting. |
6410 |
case "$siteprefix" in |
6411 |
'') dflt=$prefix ;; |
6412 |
*) dflt=$siteprefix ;; |
6413 |
esac |
6414 |
. ./getfile |
6415 |
: XXX Prefixit unit does not yet support siteprefix and vendorprefix |
6416 |
oldsiteprefix='' |
6417 |
case "$siteprefix" in |
6418 |
'') ;; |
6419 |
*) case "$ans" in |
6420 |
"$prefix") ;; |
6421 |
*) oldsiteprefix="$prefix";; |
6422 |
esac |
6423 |
;; |
6424 |
esac |
6425 |
siteprefix="$ans" |
6426 |
siteprefixexp="$ansexp" |
6427 |
|
6428 |
: determine where site specific libraries go. |
6429 |
: Usual default is /usr/local/lib/perl5/site_perl/$version |
6430 |
: The default "style" setting is made in installstyle.U |
6431 |
: XXX No longer works with Prefixit stuff. |
6432 |
prog=`echo $package | $sed 's/-*[0-9.]*$//'` |
6433 |
case "$sitelib" in |
6434 |
'') case "$installstyle" in |
6435 |
*lib/perl5*) dflt=$siteprefix/lib/$package/site_$prog/$version ;; |
6436 |
*) dflt=$siteprefix/lib/site_$prog/$version ;; |
6437 |
esac |
6438 |
;; |
6439 |
*) dflt="$sitelib" |
6440 |
;; |
6441 |
esac |
6442 |
$cat <<EOM |
6443 |
|
6444 |
The installation process will create a directory for |
6445 |
site-specific extensions and modules. Most users find it convenient |
6446 |
to place all site-specific files in this directory rather than in the |
6447 |
main distribution directory. |
6448 |
|
6449 |
EOM |
6450 |
fn=d~+ |
6451 |
rp='Pathname for the site-specific library files?' |
6452 |
. ./getfile |
6453 |
sitelib="$ans" |
6454 |
sitelibexp="$ansexp" |
6455 |
sitelib_stem=`echo "$sitelibexp" | sed "s,/$version$,,"` |
6456 |
: Change installation prefix, if necessary. |
6457 |
if $test X"$prefix" != X"$installprefix"; then |
6458 |
installsitelib=`echo $sitelibexp | $sed "s#^$prefix#$installprefix#"` |
6459 |
else |
6460 |
installsitelib="$sitelibexp" |
6461 |
fi |
6462 |
|
6463 |
: determine where site specific architecture-dependent libraries go. |
6464 |
: sitelib default is /usr/local/lib/perl5/site_perl/$version |
6465 |
: sitearch default is /usr/local/lib/perl5/site_perl/$version/$archname |
6466 |
: sitelib may have an optional trailing /share. |
6467 |
case "$sitearch" in |
6468 |
'') dflt=`echo $sitelib | $sed 's,/share$,,'` |
6469 |
dflt="$dflt/$archname" |
6470 |
;; |
6471 |
*) dflt="$sitearch" |
6472 |
;; |
6473 |
esac |
6474 |
set sitearch sitearch none |
6475 |
eval $prefixit |
6476 |
$cat <<EOM |
6477 |
|
6478 |
The installation process will also create a directory for |
6479 |
architecture-dependent site-specific extensions and modules. |
6480 |
|
6481 |
EOM |
6482 |
fn=d~+ |
6483 |
rp='Pathname for the site-specific architecture-dependent library files?' |
6484 |
. ./getfile |
6485 |
sitearch="$ans" |
6486 |
sitearchexp="$ansexp" |
6487 |
: Change installation prefix, if necessary. |
6488 |
if $test X"$prefix" != X"$installprefix"; then |
6489 |
installsitearch=`echo $sitearchexp | sed "s#^$prefix#$installprefix#"` |
6490 |
else |
6491 |
installsitearch="$sitearchexp" |
6492 |
fi |
6493 |
|
6494 |
$cat <<EOM |
6495 |
|
6496 |
The installation process will also create a directory for |
6497 |
vendor-supplied add-ons. Vendors who supply perl with their system |
6498 |
may find it convenient to place all vendor-supplied files in this |
6499 |
directory rather than in the main distribution directory. This will |
6500 |
ease upgrades between binary-compatible maintenance versions of perl. |
6501 |
|
6502 |
Of course you may also use these directories in whatever way you see |
6503 |
fit. For example, you might use them to access modules shared over a |
6504 |
company-wide network. |
6505 |
|
6506 |
The default answer should be fine for most people. |
6507 |
This causes further questions about vendor add-ons to be skipped |
6508 |
and no vendor-specific directories will be configured for perl. |
6509 |
|
6510 |
EOM |
6511 |
rp='Do you want to configure vendor-specific add-on directories?' |
6512 |
case "$usevendorprefix" in |
6513 |
define|true|[yY]*) dflt=y ;; |
6514 |
*) : User may have set vendorprefix directly on Configure command line. |
6515 |
case "$vendorprefix" in |
6516 |
''|' ') dflt=n ;; |
6517 |
*) dflt=y ;; |
6518 |
esac |
6519 |
;; |
6520 |
esac |
6521 |
. ./myread |
6522 |
case "$ans" in |
6523 |
[yY]*) fn=d~+ |
6524 |
rp='Installation prefix to use for vendor-supplied add-ons?' |
6525 |
case "$vendorprefix" in |
6526 |
'') dflt='' ;; |
6527 |
*) dflt=$vendorprefix ;; |
6528 |
esac |
6529 |
. ./getfile |
6530 |
: XXX Prefixit unit does not yet support siteprefix and vendorprefix |
6531 |
oldvendorprefix='' |
6532 |
case "$vendorprefix" in |
6533 |
'') ;; |
6534 |
*) case "$ans" in |
6535 |
"$prefix") ;; |
6536 |
*) oldvendorprefix="$prefix";; |
6537 |
esac |
6538 |
;; |
6539 |
esac |
6540 |
usevendorprefix="$define" |
6541 |
vendorprefix="$ans" |
6542 |
vendorprefixexp="$ansexp" |
6543 |
;; |
6544 |
*) usevendorprefix="$undef" |
6545 |
vendorprefix='' |
6546 |
vendorprefixexp='' |
6547 |
;; |
6548 |
esac |
6549 |
|
6550 |
case "$vendorprefix" in |
6551 |
'') d_vendorlib="$undef" |
6552 |
vendorlib='' |
6553 |
vendorlibexp='' |
6554 |
;; |
6555 |
*) d_vendorlib="$define" |
6556 |
: determine where vendor-supplied modules go. |
6557 |
: Usual default is /usr/local/lib/perl5/vendor_perl/$version |
6558 |
case "$vendorlib" in |
6559 |
'') |
6560 |
prog=`echo $package | $sed 's/-*[0-9.]*$//'` |
6561 |
case "$installstyle" in |
6562 |
*lib/perl5*) dflt=$vendorprefix/lib/$package/vendor_$prog/$version ;; |
6563 |
*) dflt=$vendorprefix/lib/vendor_$prog/$version ;; |
6564 |
esac |
6565 |
;; |
6566 |
*) dflt="$vendorlib" |
6567 |
;; |
6568 |
esac |
6569 |
fn=d~+ |
6570 |
rp='Pathname for the vendor-supplied library files?' |
6571 |
. ./getfile |
6572 |
vendorlib="$ans" |
6573 |
vendorlibexp="$ansexp" |
6574 |
;; |
6575 |
esac |
6576 |
vendorlib_stem=`echo "$vendorlibexp" | sed "s,/$version$,,"` |
6577 |
: Change installation prefix, if necessary. |
6578 |
if $test X"$prefix" != X"$installprefix"; then |
6579 |
installvendorlib=`echo $vendorlibexp | $sed "s#^$prefix#$installprefix#"` |
6580 |
else |
6581 |
installvendorlib="$vendorlibexp" |
6582 |
fi |
6583 |
|
6584 |
case "$vendorprefix" in |
6585 |
'') d_vendorarch="$undef" |
6586 |
vendorarch='' |
6587 |
vendorarchexp='' |
6588 |
;; |
6589 |
*) d_vendorarch="$define" |
6590 |
: determine where vendor-supplied architecture-dependent libraries go. |
6591 |
: vendorlib default is /usr/local/lib/perl5/vendor_perl/$version |
6592 |
: vendorarch default is /usr/local/lib/perl5/vendor_perl/$version/$archname |
6593 |
: vendorlib may have an optional trailing /share. |
6594 |
case "$vendorarch" in |
6595 |
'') dflt=`echo $vendorlib | $sed 's,/share$,,'` |
6596 |
dflt="$dflt/$archname" |
6597 |
;; |
6598 |
*) dflt="$vendorarch" ;; |
6599 |
esac |
6600 |
fn=d~+ |
6601 |
rp='Pathname for vendor-supplied architecture-dependent files?' |
6602 |
. ./getfile |
6603 |
vendorarch="$ans" |
6604 |
vendorarchexp="$ansexp" |
6605 |
;; |
6606 |
esac |
6607 |
: Change installation prefix, if necessary. |
6608 |
if $test X"$prefix" != X"$installprefix"; then |
6609 |
installvendorarch=`echo $vendorarchexp | sed "s#^$prefix#$installprefix#"` |
6610 |
else |
6611 |
installvendorarch="$vendorarchexp" |
6612 |
fi |
6613 |
|
6614 |
: Final catch-all directories to search |
6615 |
$cat <<EOM |
6616 |
|
6617 |
Lastly, you can have perl look in other directories for extensions and |
6618 |
modules in addition to those already specified. |
6619 |
These directories will be searched after |
6620 |
$sitearch |
6621 |
$sitelib |
6622 |
EOM |
6623 |
test X"$vendorlib" != "X" && echo ' ' $vendorlib |
6624 |
test X"$vendorarch" != "X" && echo ' ' $vendorarch |
6625 |
echo ' ' |
6626 |
case "$otherlibdirs" in |
6627 |
''|' ') dflt='none' ;; |
6628 |
*) dflt="$otherlibdirs" ;; |
6629 |
esac |
6630 |
$cat <<EOM |
6631 |
Enter a colon-separated set of extra paths to include in perl's @INC |
6632 |
search path, or enter 'none' for no extra paths. |
6633 |
|
6634 |
EOM |
6635 |
|
6636 |
rp='Colon-separated list of additional directories for perl to search?' |
6637 |
. ./myread |
6638 |
case "$ans" in |
6639 |
' '|''|none) otherlibdirs=' ' ;; |
6640 |
*) otherlibdirs="$ans" ;; |
6641 |
esac |
6642 |
case "$otherlibdirs" in |
6643 |
' ') val=$undef ;; |
6644 |
*) val=$define ;; |
6645 |
esac |
6646 |
set d_perl_otherlibdirs |
6647 |
eval $setvar |
6648 |
|
6649 |
: Cruising for prototypes |
6650 |
echo " " |
6651 |
echo "Checking out function prototypes..." >&4 |
6652 |
$cat >prototype.c <<EOCP |
6653 |
#$i_stdlib I_STDLIB |
6654 |
#ifdef I_STDLIB |
6655 |
#include <stdlib.h> |
6656 |
#endif |
6657 |
int main(int argc, char *argv[]) { |
6658 |
exit(0);} |
6659 |
EOCP |
6660 |
if $cc $ccflags -c prototype.c >prototype.out 2>&1 ; then |
6661 |
echo "Your C compiler appears to support function prototypes." |
6662 |
val="$define" |
6663 |
else |
6664 |
echo "Your C compiler doesn't seem to understand function prototypes." |
6665 |
val="$undef" |
6666 |
fi |
6667 |
set prototype |
6668 |
eval $setvar |
6669 |
$rm -f prototype* |
6670 |
|
6671 |
case "$prototype" in |
6672 |
"$define") ;; |
6673 |
*) ansi2knr='ansi2knr' |
6674 |
echo " " |
6675 |
cat <<EOM >&4 |
6676 |
|
6677 |
$me: FATAL ERROR: |
6678 |
This version of $package can only be compiled by a compiler that |
6679 |
understands function prototypes. Unfortunately, your C compiler |
6680 |
$cc $ccflags |
6681 |
doesn't seem to understand them. Sorry about that. |
6682 |
|
6683 |
If GNU cc is available for your system, perhaps you could try that instead. |
6684 |
|
6685 |
Eventually, we hope to support building Perl with pre-ANSI compilers. |
6686 |
If you would like to help in that effort, please contact <perlbug@perl.org>. |
6687 |
|
6688 |
Aborting Configure now. |
6689 |
EOM |
6690 |
exit 2 |
6691 |
;; |
6692 |
esac |
6693 |
|
6694 |
: determine where public executables go |
6695 |
echo " " |
6696 |
set dflt bin bin |
6697 |
eval $prefixit |
6698 |
fn=d~ |
6699 |
rp='Pathname where the public executables will reside?' |
6700 |
. ./getfile |
6701 |
if $test "X$ansexp" != "X$binexp"; then |
6702 |
installbin='' |
6703 |
fi |
6704 |
bin="$ans" |
6705 |
binexp="$ansexp" |
6706 |
: Change installation prefix, if necessary. |
6707 |
: XXX Bug? -- ignores Configure -Dinstallprefix setting. |
6708 |
if $test X"$prefix" != X"$installprefix"; then |
6709 |
installbin=`echo $binexp | sed "s#^$prefix#$installprefix#"` |
6710 |
else |
6711 |
installbin="$binexp" |
6712 |
fi |
6713 |
|
6714 |
echo " " |
6715 |
case "$extras" in |
6716 |
'') dflt='n';; |
6717 |
*) dflt='y';; |
6718 |
esac |
6719 |
cat <<EOM |
6720 |
Perl can be built with extra modules or bundles of modules which |
6721 |
will be fetched from the CPAN and installed alongside Perl. |
6722 |
|
6723 |
Notice that you will need access to the CPAN; either via the Internet, |
6724 |
or a local copy, for example a CD-ROM or a local CPAN mirror. (You will |
6725 |
be asked later to configure the CPAN.pm module which will in turn do |
6726 |
the installation of the rest of the extra modules or bundles.) |
6727 |
|
6728 |
Notice also that if the modules require any external software such as |
6729 |
libraries and headers (the libz library and the zlib.h header for the |
6730 |
Compress::Zlib module, for example) you MUST have any such software |
6731 |
already installed, this configuration process will NOT install such |
6732 |
things for you. |
6733 |
|
6734 |
If this doesn't make any sense to you, just accept the default '$dflt'. |
6735 |
EOM |
6736 |
rp='Install any extra modules (y or n)?' |
6737 |
. ./myread |
6738 |
case "$ans" in |
6739 |
y|Y) |
6740 |
cat <<EOM |
6741 |
|
6742 |
Please list any extra modules or bundles to be installed from CPAN, |
6743 |
with spaces between the names. The names can be in any format the |
6744 |
'install' command of CPAN.pm will understand. (Answer 'none', |
6745 |
without the quotes, to install no extra modules or bundles.) |
6746 |
EOM |
6747 |
rp='Extras?' |
6748 |
dflt="$extras" |
6749 |
. ./myread |
6750 |
extras="$ans" |
6751 |
esac |
6752 |
case "$extras" in |
6753 |
''|'none') |
6754 |
val='' |
6755 |
$rm -f ../extras.lst |
6756 |
;; |
6757 |
*) echo "(Saving the list of extras for later...)" |
6758 |
echo "$extras" > ../extras.lst |
6759 |
val="'$extras'" |
6760 |
;; |
6761 |
esac |
6762 |
set extras |
6763 |
eval $setvar |
6764 |
echo " " |
6765 |
|
6766 |
: determine where html pages for programs go |
6767 |
set html1dir html1dir none |
6768 |
eval $prefixit |
6769 |
$cat <<EOM |
6770 |
|
6771 |
If you wish to install html files for programs in $spackage, indicate |
6772 |
the appropriate directory here. To skip installing html files, |
6773 |
answer "none". |
6774 |
EOM |
6775 |
case "$html1dir" in |
6776 |
''|none|$undef|' ') dflt=none ;; |
6777 |
*) dflt=$html1dir ;; |
6778 |
esac |
6779 |
fn=dn+~ |
6780 |
rp="Directory for the main $spackage html pages?" |
6781 |
. ./getfile |
6782 |
html1dir="$ans" |
6783 |
html1direxp="$ansexp" |
6784 |
: Use ' ' for none so value is preserved next time through Configure |
6785 |
$test X"$html1dir" = "X" && html1dir=' ' |
6786 |
: Change installation prefix, if necessary. |
6787 |
if $test X"$prefix" != X"$installprefix"; then |
6788 |
installhtml1dir=`echo $html1direxp | sed "s#^$prefix#$installprefix#"` |
6789 |
else |
6790 |
installhtml1dir="$html1direxp" |
6791 |
fi |
6792 |
|
6793 |
: determine where html pages for libraries and modules go |
6794 |
set html3dir html3dir none |
6795 |
eval $prefixit |
6796 |
$cat <<EOM |
6797 |
|
6798 |
If you wish to install html files for modules associated with $spackage, |
6799 |
indicate the appropriate directory here. To skip installing html files, |
6800 |
answer "none". |
6801 |
EOM |
6802 |
: There is no obvious default. If they have specified html1dir, then |
6803 |
: try to key off that, possibly changing .../html1 into .../html3. |
6804 |
case "$html3dir" in |
6805 |
'') html3dir=`echo "$html1dir" | $sed 's/1$/3$/'` ;; |
6806 |
*) dflt=$html3dir ;; |
6807 |
esac |
6808 |
fn=dn+~ |
6809 |
rp="Directory for the $spackage module html pages?" |
6810 |
. ./getfile |
6811 |
html3dir="$ans" |
6812 |
html3direxp="$ansexp" |
6813 |
: Use ' ' for none so value is preserved next time through Configure |
6814 |
$test X"$html3dir" = "X" && html3dir=' ' |
6815 |
: Change installation prefix, if necessary. |
6816 |
if $test X"$prefix" != X"$installprefix"; then |
6817 |
installhtml3dir=`echo $html3direxp | sed "s#^$prefix#$installprefix#"` |
6818 |
else |
6819 |
installhtml3dir="$html3direxp" |
6820 |
fi |
6821 |
|
6822 |
: Find perl5.005 or later. |
6823 |
echo "Looking for a previously installed perl5.005 or later... " |
6824 |
case "$perl5" in |
6825 |
'') for tdir in `echo "$binexp$path_sep$PATH" | $sed "s/$path_sep/ /g"`; do |
6826 |
: Check if this perl is recent and can load a simple module |
6827 |
if $test -x $tdir/perl$exe_ext && $tdir/perl -Mless -e 'use 5.005;' >/dev/null 2>&1; then |
6828 |
perl5=$tdir/perl |
6829 |
break; |
6830 |
elif $test -x $tdir/perl5$exe_ext && $tdir/perl5 -Mless -e 'use 5.005;' >/dev/null 2>&1; then |
6831 |
perl5=$tdir/perl5 |
6832 |
break; |
6833 |
fi |
6834 |
done |
6835 |
;; |
6836 |
*) perl5="$perl5" |
6837 |
;; |
6838 |
esac |
6839 |
case "$perl5" in |
6840 |
'') echo "None found. That's ok.";; |
6841 |
*) echo "Using $perl5." ;; |
6842 |
esac |
6843 |
|
6844 |
: Determine list of previous versions to include in @INC |
6845 |
$cat > getverlist <<EOPL |
6846 |
#!$perl5 -w |
6847 |
use File::Basename; |
6848 |
\$api_versionstring = "$api_versionstring"; |
6849 |
\$version = "$version"; |
6850 |
\$stem = "$sitelib_stem"; |
6851 |
\$archname = "$archname"; |
6852 |
EOPL |
6853 |
$cat >> getverlist <<'EOPL' |
6854 |
# Can't have leading @ because metaconfig interprets it as a command! |
6855 |
;@inc_version_list=(); |
6856 |
# XXX Redo to do opendir/readdir? |
6857 |
if (-d $stem) { |
6858 |
chdir($stem); |
6859 |
;@candidates = glob("5.*"); |
6860 |
} |
6861 |
else { |
6862 |
;@candidates = (); |
6863 |
} |
6864 |
|
6865 |
# XXX ToDo: These comparisons must be reworked when two-digit |
6866 |
# subversions come along, so that 5.7.10 compares as greater than |
6867 |
# 5.7.3! By that time, hope that 5.6.x is sufficiently |
6868 |
# widespread that we can use the built-in version vectors rather |
6869 |
# than reinventing them here. For 5.6.0, however, we must |
6870 |
# assume this script will likely be run by 5.005_0x. --AD 1/2000. |
6871 |
foreach $d (@candidates) { |
6872 |
if ($d lt $version) { |
6873 |
if ($d ge $api_versionstring) { |
6874 |
unshift(@inc_version_list, grep { -d } "$d/$archname", $d); |
6875 |
} |
6876 |
elsif ($d ge "5.005") { |
6877 |
unshift(@inc_version_list, grep { -d } $d); |
6878 |
} |
6879 |
} |
6880 |
else { |
6881 |
# Skip newer version. I.e. don't look in |
6882 |
# 5.7.0 if we're installing 5.6.1. |
6883 |
} |
6884 |
} |
6885 |
|
6886 |
if (@inc_version_list) { |
6887 |
print join(' ', @inc_version_list); |
6888 |
} |
6889 |
else { |
6890 |
# Blank space to preserve value for next Configure run. |
6891 |
print " "; |
6892 |
} |
6893 |
EOPL |
6894 |
chmod +x getverlist |
6895 |
case "$inc_version_list" in |
6896 |
'') if test -x "$perl5$exe_ext"; then |
6897 |
dflt=`$perl5 getverlist` |
6898 |
else |
6899 |
dflt='none' |
6900 |
fi |
6901 |
;; |
6902 |
$undef) dflt='none' ;; |
6903 |
*) eval dflt=\"$inc_version_list\" ;; |
6904 |
esac |
6905 |
case "$dflt" in |
6906 |
''|' ') dflt=none ;; |
6907 |
esac |
6908 |
case "$dflt" in |
6909 |
5.005) dflt=none ;; |
6910 |
esac |
6911 |
$cat <<EOM |
6912 |
|
6913 |
In order to ease the process of upgrading, this version of perl |
6914 |
can be configured to use modules built and installed with earlier |
6915 |
versions of perl that were installed under $prefix. Specify here |
6916 |
the list of earlier versions that this version of perl should check. |
6917 |
If Configure detected no earlier versions of perl installed under |
6918 |
$prefix, then the list will be empty. Answer 'none' to tell perl |
6919 |
to not search earlier versions. |
6920 |
|
6921 |
The default should almost always be sensible, so if you're not sure, |
6922 |
just accept the default. |
6923 |
EOM |
6924 |
|
6925 |
rp='List of earlier versions to include in @INC?' |
6926 |
. ./myread |
6927 |
case "$ans" in |
6928 |
[Nn]one|''|' '|$undef) inc_version_list=' ' ;; |
6929 |
*) inc_version_list="$ans" ;; |
6930 |
esac |
6931 |
case "$inc_version_list" in |
6932 |
''|' ') |
6933 |
inc_version_list_init='0';; |
6934 |
*) inc_version_list_init=`echo $inc_version_list | |
6935 |
$sed -e 's/^/"/' -e 's/ /","/g' -e 's/$/",0/'` |
6936 |
;; |
6937 |
esac |
6938 |
$rm -f getverlist |
6939 |
|
6940 |
: determine whether to install perl also as /usr/bin/perl |
6941 |
|
6942 |
echo " " |
6943 |
if $test -d /usr/bin -a "X$installbin" != X/usr/bin; then |
6944 |
$cat <<EOM |
6945 |
Many scripts expect perl to be installed as /usr/bin/perl. |
6946 |
|
6947 |
If you want to, I can install the perl you are about to compile |
6948 |
as /usr/bin/perl (in addition to $bin/perl). |
6949 |
EOM |
6950 |
if test -f /usr/bin/perl; then |
6951 |
$cat <<EOM |
6952 |
|
6953 |
However, please note that because you already have a /usr/bin/perl, |
6954 |
overwriting that with a new Perl would very probably cause problems. |
6955 |
Therefore I'm assuming you don't want to do that (unless you insist). |
6956 |
|
6957 |
EOM |
6958 |
case "$installusrbinperl" in |
6959 |
"$define"|[yY]*) dflt='y';; |
6960 |
*) dflt='n';; |
6961 |
esac |
6962 |
else |
6963 |
$cat <<EOM |
6964 |
|
6965 |
Since you don't have a /usr/bin/perl I'm assuming creating one is okay. |
6966 |
|
6967 |
EOM |
6968 |
case "$installusrbinperl" in |
6969 |
"$undef"|[nN]*) dflt='n';; |
6970 |
*) dflt='y';; |
6971 |
esac |
6972 |
fi |
6973 |
rp="Do you want to install perl as /usr/bin/perl?" |
6974 |
. ./myread |
6975 |
case "$ans" in |
6976 |
[yY]*) val="$define";; |
6977 |
*) val="$undef" ;; |
6978 |
esac |
6979 |
else |
6980 |
val="$undef" |
6981 |
fi |
6982 |
set installusrbinperl |
6983 |
eval $setvar |
6984 |
|
6985 |
echo " " |
6986 |
echo "Checking for GNU C Library..." >&4 |
6987 |
cat >try.c <<'EOCP' |
6988 |
/* Find out version of GNU C library. __GLIBC__ and __GLIBC_MINOR__ |
6989 |
alone are insufficient to distinguish different versions, such as |
6990 |
2.0.6 and 2.0.7. The function gnu_get_libc_version() appeared in |
6991 |
libc version 2.1.0. A. Dougherty, June 3, 2002. |
6992 |
*/ |
6993 |
#include <stdio.h> |
6994 |
int main(void) |
6995 |
{ |
6996 |
#ifdef __GLIBC__ |
6997 |
# ifdef __GLIBC_MINOR__ |
6998 |
# if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1 |
6999 |
# include <gnu/libc-version.h> |
7000 |
printf("%s\n", gnu_get_libc_version()); |
7001 |
# else |
7002 |
printf("%d.%d\n", __GLIBC__, __GLIBC_MINOR__); |
7003 |
# endif |
7004 |
# else |
7005 |
printf("%d\n", __GLIBC__); |
7006 |
# endif |
7007 |
return 0; |
7008 |
#else |
7009 |
return 1; |
7010 |
#endif |
7011 |
} |
7012 |
EOCP |
7013 |
set try |
7014 |
if eval $compile_ok && $run ./try > glibc.ver; then |
7015 |
val="$define" |
7016 |
gnulibc_version=`$cat glibc.ver` |
7017 |
echo "You are using the GNU C Library version $gnulibc_version" |
7018 |
else |
7019 |
val="$undef" |
7020 |
gnulibc_version='' |
7021 |
echo "You are not using the GNU C Library" |
7022 |
fi |
7023 |
$rm -f try try.* glibc.ver |
7024 |
set d_gnulibc |
7025 |
eval $setvar |
7026 |
|
7027 |
: see if nm is to be used to determine whether a symbol is defined or not |
7028 |
case "$usenm" in |
7029 |
'') |
7030 |
dflt='' |
7031 |
case "$d_gnulibc" in |
7032 |
"$define") |
7033 |
echo " " |
7034 |
echo "nm probably won't work on the GNU C Library." >&4 |
7035 |
dflt=n |
7036 |
;; |
7037 |
esac |
7038 |
case "$dflt" in |
7039 |
'') |
7040 |
if $test "$osname" = aix -a "X$PASE" != "Xdefine" -a ! -f /lib/syscalls.exp; then |
7041 |
echo " " |
7042 |
echo "Whoops! This is an AIX system without /lib/syscalls.exp!" >&4 |
7043 |
echo "'nm' won't be sufficient on this sytem." >&4 |
7044 |
dflt=n |
7045 |
fi |
7046 |
;; |
7047 |
esac |
7048 |
case "$dflt" in |
7049 |
'') dflt=`$egrep 'inlibc|csym' $rsrc/Configure | wc -l 2>/dev/null` |
7050 |
if $test $dflt -gt 20; then |
7051 |
dflt=y |
7052 |
else |
7053 |
dflt=n |
7054 |
fi |
7055 |
;; |
7056 |
esac |
7057 |
;; |
7058 |
*) |
7059 |
case "$usenm" in |
7060 |
true|$define) dflt=y;; |
7061 |
*) dflt=n;; |
7062 |
esac |
7063 |
;; |
7064 |
esac |
7065 |
$cat <<EOM |
7066 |
|
7067 |
I can use $nm to extract the symbols from your C libraries. This |
7068 |
is a time consuming task which may generate huge output on the disk (up |
7069 |
to 3 megabytes) but that should make the symbols extraction faster. The |
7070 |
alternative is to skip the 'nm' extraction part and to compile a small |
7071 |
test program instead to determine whether each symbol is present. If |
7072 |
you have a fast C compiler and/or if your 'nm' output cannot be parsed, |
7073 |
this may be the best solution. |
7074 |
|
7075 |
You probably shouldn't let me use 'nm' if you are using the GNU C Library. |
7076 |
|
7077 |
EOM |
7078 |
rp="Shall I use $nm to extract C symbols from the libraries?" |
7079 |
. ./myread |
7080 |
case "$ans" in |
7081 |
[Nn]*) usenm=false;; |
7082 |
*) usenm=true;; |
7083 |
esac |
7084 |
|
7085 |
runnm=$usenm |
7086 |
case "$reuseval" in |
7087 |
true) runnm=false;; |
7088 |
esac |
7089 |
|
7090 |
: nm options which may be necessary |
7091 |
case "$nm_opt" in |
7092 |
'') if $test -f /mach_boot; then |
7093 |
nm_opt='' # Mach |
7094 |
elif $test -d /usr/ccs/lib; then |
7095 |
nm_opt='-p' # Solaris (and SunOS?) |
7096 |
elif $test -f /dgux; then |
7097 |
nm_opt='-p' # DG-UX |
7098 |
elif $test -f /lib64/rld; then |
7099 |
nm_opt='-p' # 64-bit Irix |
7100 |
else |
7101 |
nm_opt='' |
7102 |
fi;; |
7103 |
esac |
7104 |
|
7105 |
: nm options which may be necessary for shared libraries but illegal |
7106 |
: for archive libraries. Thank you, Linux. |
7107 |
case "$nm_so_opt" in |
7108 |
'') case "$myuname" in |
7109 |
*linux*|gnu*) |
7110 |
if $nm --help | $grep 'dynamic' > /dev/null 2>&1; then |
7111 |
nm_so_opt='--dynamic' |
7112 |
fi |
7113 |
;; |
7114 |
esac |
7115 |
;; |
7116 |
esac |
7117 |
|
7118 |
case "$runnm" in |
7119 |
true) |
7120 |
: get list of predefined functions in a handy place |
7121 |
echo " " |
7122 |
case "$libc" in |
7123 |
'') libc=unknown |
7124 |
case "$libs" in |
7125 |
*-lc_s*) libc=`./loc libc_s$_a $libc $libpth` |
7126 |
esac |
7127 |
;; |
7128 |
esac |
7129 |
case "$libs" in |
7130 |
'') ;; |
7131 |
*) for thislib in $libs; do |
7132 |
case "$thislib" in |
7133 |
-lc|-lc_s) |
7134 |
: Handle C library specially below. |
7135 |
;; |
7136 |
-l*) |
7137 |
thislib=`echo $thislib | $sed -e 's/^-l//'` |
7138 |
if try=`./loc lib$thislib.$so.'*' X $libpth`; $test -f "$try"; then |
7139 |
: |
7140 |
elif try=`./loc lib$thislib.$so X $libpth`; $test -f "$try"; then |
7141 |
: |
7142 |
elif try=`./loc lib$thislib$_a X $libpth`; $test -f "$try"; then |
7143 |
: |
7144 |
elif try=`./loc $thislib$_a X $libpth`; $test -f "$try"; then |
7145 |
: |
7146 |
elif try=`./loc lib$thislib X $libpth`; $test -f "$try"; then |
7147 |
: |
7148 |
elif try=`./loc $thislib X $libpth`; $test -f "$try"; then |
7149 |
: |
7150 |
elif try=`./loc Slib$thislib$_a X $xlibpth`; $test -f "$try"; then |
7151 |
: |
7152 |
else |
7153 |
try='' |
7154 |
fi |
7155 |
libnames="$libnames $try" |
7156 |
;; |
7157 |
*) libnames="$libnames $thislib" ;; |
7158 |
esac |
7159 |
done |
7160 |
;; |
7161 |
esac |
7162 |
xxx=normal |
7163 |
case "$libc" in |
7164 |
unknown) |
7165 |
set /lib/libc.$so |
7166 |
for xxx in $libpth; do |
7167 |
$test -r $1 || set $xxx/libc.$so |
7168 |
: The messy sed command sorts on library version numbers. |
7169 |
$test -r $1 || \ |
7170 |
set `echo blurfl; echo $xxx/libc.$so.[0-9]* | \ |
7171 |
tr ' ' $trnl | egrep -v '\.[A-Za-z]*$' | $sed -e ' |
7172 |
h |
7173 |
s/[0-9][0-9]*/0000&/g |
7174 |
s/0*\([0-9][0-9][0-9][0-9][0-9]\)/\1/g |
7175 |
G |
7176 |
s/\n/ /' | \ |
7177 |
$sort | $sed -e 's/^.* //'` |
7178 |
eval set \$$# |
7179 |
done |
7180 |
$test -r $1 || set /usr/ccs/lib/libc.$so |
7181 |
$test -r $1 || set /lib/libsys_s$_a |
7182 |
;; |
7183 |
*) |
7184 |
set blurfl |
7185 |
;; |
7186 |
esac |
7187 |
if $test -r "$1"; then |
7188 |
echo "Your (shared) C library seems to be in $1." |
7189 |
libc="$1" |
7190 |
elif $test -r /lib/libc && $test -r /lib/clib; then |
7191 |
echo "Your C library seems to be in both /lib/clib and /lib/libc." |
7192 |
xxx=apollo |
7193 |
libc='/lib/clib /lib/libc' |
7194 |
if $test -r /lib/syslib; then |
7195 |
echo "(Your math library is in /lib/syslib.)" |
7196 |
libc="$libc /lib/syslib" |
7197 |
fi |
7198 |
elif $test -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then |
7199 |
echo "Your C library seems to be in $libc, as you said before." |
7200 |
elif $test -r $incpath/usr/lib/libc$_a; then |
7201 |
libc=$incpath/usr/lib/libc$_a; |
7202 |
echo "Your C library seems to be in $libc. That's fine." |
7203 |
elif $test -r /lib/libc$_a; then |
7204 |
libc=/lib/libc$_a; |
7205 |
echo "Your C library seems to be in $libc. You're normal." |
7206 |
else |
7207 |
if tans=`./loc libc$_a blurfl/dyick $libpth`; $test -r "$tans"; then |
7208 |
: |
7209 |
elif tans=`./loc libc blurfl/dyick $libpth`; $test -r "$tans"; then |
7210 |
libnames="$libnames "`./loc clib blurfl/dyick $libpth` |
7211 |
elif tans=`./loc clib blurfl/dyick $libpth`; $test -r "$tans"; then |
7212 |
: |
7213 |
elif tans=`./loc Slibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then |
7214 |
: |
7215 |
elif tans=`./loc Mlibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then |
7216 |
: |
7217 |
else |
7218 |
tans=`./loc Llibc$_a blurfl/dyick $xlibpth` |
7219 |
fi |
7220 |
if $test -r "$tans"; then |
7221 |
echo "Your C library seems to be in $tans, of all places." |
7222 |
libc=$tans |
7223 |
else |
7224 |
libc='blurfl' |
7225 |
fi |
7226 |
fi |
7227 |
if $test $xxx = apollo -o -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then |
7228 |
dflt="$libc" |
7229 |
cat <<EOM |
7230 |
|
7231 |
If the guess above is wrong (which it might be if you're using a strange |
7232 |
compiler, or your machine supports multiple models), you can override it here. |
7233 |
|
7234 |
EOM |
7235 |
else |
7236 |
dflt='' |
7237 |
echo $libpth | $tr ' ' $trnl | $sort | $uniq > libpath |
7238 |
cat >&4 <<EOM |
7239 |
I can't seem to find your C library. I've looked in the following places: |
7240 |
|
7241 |
EOM |
7242 |
$sed 's/^/ /' libpath |
7243 |
cat <<EOM |
7244 |
|
7245 |
None of these seems to contain your C library. I need to get its name... |
7246 |
|
7247 |
EOM |
7248 |
fi |
7249 |
fn=f |
7250 |
rp='Where is your C library?' |
7251 |
. ./getfile |
7252 |
libc="$ans" |
7253 |
|
7254 |
echo " " |
7255 |
echo $libc $libnames | $tr ' ' $trnl | $sort | $uniq > libnames |
7256 |
set X `cat libnames` |
7257 |
shift |
7258 |
xxx=files |
7259 |
case $# in 1) xxx=file; esac |
7260 |
echo "Extracting names from the following $xxx for later perusal:" >&4 |
7261 |
echo " " |
7262 |
$sed 's/^/ /' libnames >&4 |
7263 |
echo " " |
7264 |
$echo $n "This may take a while...$c" >&4 |
7265 |
|
7266 |
for file in $*; do |
7267 |
case $file in |
7268 |
*$so*) $nm $nm_so_opt $nm_opt $file 2>/dev/null;; |
7269 |
*) $nm $nm_opt $file 2>/dev/null;; |
7270 |
esac |
7271 |
done >libc.tmp |
7272 |
|
7273 |
$echo $n ".$c" |
7274 |
$grep fprintf libc.tmp > libc.ptf |
7275 |
xscan='eval "<libc.ptf $com >libc.list"; $echo $n ".$c" >&4' |
7276 |
xrun='eval "<libc.tmp $com >libc.list"; echo "done." >&4' |
7277 |
xxx='[ADTSIW]' |
7278 |
if com="$sed -n -e 's/__IO//' -e 's/^.* $xxx *//p'";\ |
7279 |
eval $xscan;\ |
7280 |
$contains '^fprintf$' libc.list >/dev/null 2>&1; then |
7281 |
eval $xrun |
7282 |
elif com="$sed -n -e 's/^__*//' -e 's/^\([a-zA-Z_0-9$]*\).*xtern.*/\1/p'";\ |
7283 |
eval $xscan;\ |
7284 |
$contains '^fprintf$' libc.list >/dev/null 2>&1; then |
7285 |
eval $xrun |
7286 |
elif com="$sed -n -e '/|UNDEF/d' -e '/FUNC..GL/s/^.*|__*//p'";\ |
7287 |
eval $xscan;\ |
7288 |
$contains '^fprintf$' libc.list >/dev/null 2>&1; then |
7289 |
eval $xrun |
7290 |
elif com="$sed -n -e 's/^.* D __*//p' -e 's/^.* D //p'";\ |
7291 |
eval $xscan;\ |
7292 |
$contains '^fprintf$' libc.list >/dev/null 2>&1; then |
7293 |
eval $xrun |
7294 |
elif com="$sed -n -e 's/^_//' -e 's/^\([a-zA-Z_0-9]*\).*xtern.*text.*/\1/p'";\ |
7295 |
eval $xscan;\ |
7296 |
$contains '^fprintf$' libc.list >/dev/null 2>&1; then |
7297 |
eval $xrun |
7298 |
elif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p'";\ |
7299 |
eval $xscan;\ |
7300 |
$contains '^fprintf$' libc.list >/dev/null 2>&1; then |
7301 |
eval $xrun |
7302 |
elif com="$grep '|' | $sed -n -e '/|COMMON/d' -e '/|DATA/d' \ |
7303 |
-e '/ file/d' -e 's/^\([^ ]*\).*/\1/p'";\ |
7304 |
eval $xscan;\ |
7305 |
$contains '^fprintf$' libc.list >/dev/null 2>&1; then |
7306 |
eval $xrun |
7307 |
elif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p' -e 's/^.*|FUNC |WEAK .*|//p'";\ |
7308 |
eval $xscan;\ |
7309 |
$contains '^fprintf$' libc.list >/dev/null 2>&1; then |
7310 |
eval $xrun |
7311 |
elif com="$sed -n -e 's/^__//' -e '/|Undef/d' -e '/|Proc/s/ .*//p'";\ |
7312 |
eval $xscan;\ |
7313 |
$contains '^fprintf$' libc.list >/dev/null 2>&1; then |
7314 |
eval $xrun |
7315 |
elif com="$sed -n -e 's/^.*|Proc .*|Text *| *//p'";\ |
7316 |
eval $xscan;\ |
7317 |
$contains '^fprintf$' libc.list >/dev/null 2>&1; then |
7318 |
eval $xrun |
7319 |
elif com="$sed -n -e '/Def. Text/s/.* \([^ ]*\)\$/\1/p'";\ |
7320 |
eval $xscan;\ |
7321 |
$contains '^fprintf$' libc.list >/dev/null 2>&1; then |
7322 |
eval $xrun |
7323 |
elif com="$sed -n -e 's/^[-0-9a-f ]*_\(.*\)=.*/\1/p'";\ |
7324 |
eval $xscan;\ |
7325 |
$contains '^fprintf$' libc.list >/dev/null 2>&1; then |
7326 |
eval $xrun |
7327 |
elif com="$sed -n -e 's/.*\.text n\ \ \ \.//p'";\ |
7328 |
eval $xscan;\ |
7329 |
$contains '^fprintf$' libc.list >/dev/null 2>&1; then |
7330 |
eval $xrun |
7331 |
elif com="sed -n -e 's/^__.*//' -e 's/[ ]*D[ ]*[0-9]*.*//p'";\ |
7332 |
eval $xscan;\ |
7333 |
$contains '^fprintf$' libc.list >/dev/null 2>&1; then |
7334 |
eval $xrun |
7335 |
else |
7336 |
$nm -p $* 2>/dev/null >libc.tmp |
7337 |
$grep fprintf libc.tmp > libc.ptf |
7338 |
if com="$sed -n -e 's/^.* [ADTSIW] *_[_.]*//p' -e 's/^.* [ADTSIW] //p'";\ |
7339 |
eval $xscan; $contains '^fprintf$' libc.list >/dev/null 2>&1 |
7340 |
then |
7341 |
nm_opt='-p' |
7342 |
eval $xrun |
7343 |
else |
7344 |
echo " " |
7345 |
echo "$nm didn't seem to work right. Trying $ar instead..." >&4 |
7346 |
com='' |
7347 |
if $ar t $libc > libc.tmp && $contains '^fprintf$' libc.tmp >/dev/null 2>&1; then |
7348 |
for thisname in $libnames $libc; do |
7349 |
$ar t $thisname >>libc.tmp |
7350 |
done |
7351 |
$sed -e "s/\\$_o\$//" < libc.tmp > libc.list |
7352 |
echo "Ok." >&4 |
7353 |
elif test "X$osname" = "Xos2" && $ar tv $libc > libc.tmp; then |
7354 |
# Repeat libc to extract forwarders to DLL entries too |
7355 |
for thisname in $libnames $libc; do |
7356 |
$ar tv $thisname >>libc.tmp |
7357 |
# Revision 50 of EMX has bug in $ar. |
7358 |
# it will not extract forwarders to DLL entries |
7359 |
# Use emximp which will extract exactly them. |
7360 |
emximp -o tmp.imp $thisname \ |
7361 |
2>/dev/null && \ |
7362 |
$sed -e 's/^\([_a-zA-Z0-9]*\) .*$/\1/p' \ |
7363 |
< tmp.imp >>libc.tmp |
7364 |
$rm tmp.imp |
7365 |
done |
7366 |
$sed -e "s/\\$_o\$//" -e 's/^ \+//' < libc.tmp > libc.list |
7367 |
echo "Ok." >&4 |
7368 |
else |
7369 |
echo "$ar didn't seem to work right." >&4 |
7370 |
echo "Maybe this is a Cray...trying bld instead..." >&4 |
7371 |
if bld t $libc | $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" > libc.list |
7372 |
then |
7373 |
for thisname in $libnames; do |
7374 |
bld t $libnames | \ |
7375 |
$sed -e 's/.*\///' -e "s/\\$_o:.*\$//" >>libc.list |
7376 |
$ar t $thisname >>libc.tmp |
7377 |
done |
7378 |
echo "Ok." >&4 |
7379 |
else |
7380 |
echo "That didn't work either. Giving up." >&4 |
7381 |
exit 1 |
7382 |
fi |
7383 |
fi |
7384 |
fi |
7385 |
fi |
7386 |
nm_extract="$com" |
7387 |
case "$PASE" in |
7388 |
define) |
7389 |
echo " " |
7390 |
echo "Since you are compiling for PASE, extracting more symbols from libc.a ...">&4 |
7391 |
dump -Tv /lib/libc.a | awk '$7 == "/unix" {print $5 " " $8}' | grep "^SV" | awk '{print $2}' >> libc.list |
7392 |
;; |
7393 |
*) if $test -f /lib/syscalls.exp; then |
7394 |
echo " " |
7395 |
echo "Also extracting names from /lib/syscalls.exp for good ole AIX..." >&4 |
7396 |
$sed -n 's/^\([^ ]*\)[ ]*syscall[0-9]*[ ]*$/\1/p' /lib/syscalls.exp >>libc.list |
7397 |
fi |
7398 |
;; |
7399 |
esac |
7400 |
;; |
7401 |
esac |
7402 |
$rm -f libnames libpath |
7403 |
|
7404 |
: see if dld is available |
7405 |
set dld.h i_dld |
7406 |
eval $inhdr |
7407 |
|
7408 |
: is a C symbol defined? |
7409 |
csym='tlook=$1; |
7410 |
case "$3" in |
7411 |
-v) tf=libc.tmp; tdc="";; |
7412 |
-a) tf=libc.tmp; tdc="[]";; |
7413 |
*) tlook="^$1\$"; tf=libc.list; tdc="()";; |
7414 |
esac; |
7415 |
tx=yes; |
7416 |
case "$reuseval-$4" in |
7417 |
true-) ;; |
7418 |
true-*) tx=no; eval "tval=\$$4"; case "$tval" in "") tx=yes;; esac;; |
7419 |
esac; |
7420 |
case "$tx" in |
7421 |
yes) |
7422 |
tval=false; |
7423 |
if $test "$runnm" = true; then |
7424 |
if $contains $tlook $tf >/dev/null 2>&1; then |
7425 |
tval=true; |
7426 |
elif $test "$mistrustnm" = compile -o "$mistrustnm" = run; then |
7427 |
echo "void *(*(p()))$tdc { extern void *$1$tdc; return &$1; } int main() { if(p()) return(0); else return(1); }"> try.c; |
7428 |
$cc -o try $optimize $ccflags $ldflags try.c >/dev/null 2>&1 $libs && tval=true; |
7429 |
$test "$mistrustnm" = run -a -x try && { $run ./try$_exe >/dev/null 2>&1 || tval=false; }; |
7430 |
$rm -f try$_exe try.c core core.* try.core; |
7431 |
fi; |
7432 |
else |
7433 |
echo "void *(*(p()))$tdc { extern void *$1$tdc; return &$1; } int main() { if(p()) return(0); else return(1); }"> try.c; |
7434 |
$cc -o try $optimize $ccflags $ldflags try.c $libs >/dev/null 2>&1 && tval=true; |
7435 |
$rm -f try$_exe try.c; |
7436 |
fi; |
7437 |
;; |
7438 |
*) |
7439 |
case "$tval" in |
7440 |
$define) tval=true;; |
7441 |
*) tval=false;; |
7442 |
esac; |
7443 |
;; |
7444 |
esac; |
7445 |
eval "$2=$tval"' |
7446 |
|
7447 |
: define an is-in-libc? function |
7448 |
inlibc='echo " "; td=$define; tu=$undef; |
7449 |
sym=$1; var=$2; eval "was=\$$2"; |
7450 |
tx=yes; |
7451 |
case "$reuseval$was" in |
7452 |
true) ;; |
7453 |
true*) tx=no;; |
7454 |
esac; |
7455 |
case "$tx" in |
7456 |
yes) |
7457 |
set $sym tres -f; |
7458 |
eval $csym; |
7459 |
case "$tres" in |
7460 |
true) |
7461 |
echo "$sym() found." >&4; |
7462 |
case "$was" in $undef) . ./whoa; esac; eval "$var=\$td";; |
7463 |
*) |
7464 |
echo "$sym() NOT found." >&4; |
7465 |
case "$was" in $define) . ./whoa; esac; eval "$var=\$tu";; |
7466 |
esac;; |
7467 |
*) |
7468 |
case "$was" in |
7469 |
$define) echo "$sym() found." >&4;; |
7470 |
*) echo "$sym() NOT found." >&4;; |
7471 |
esac;; |
7472 |
esac' |
7473 |
|
7474 |
: see if dlopen exists |
7475 |
xxx_runnm="$runnm" |
7476 |
runnm=false |
7477 |
set dlopen d_dlopen |
7478 |
eval $inlibc |
7479 |
runnm="$xxx_runnm" |
7480 |
|
7481 |
: determine which dynamic loading, if any, to compile in |
7482 |
echo " " |
7483 |
dldir="ext/DynaLoader" |
7484 |
case "$usedl" in |
7485 |
$define|y|true) |
7486 |
dflt='y' |
7487 |
usedl="$define" |
7488 |
;; |
7489 |
$undef|n|false) |
7490 |
dflt='n' |
7491 |
usedl="$undef" |
7492 |
;; |
7493 |
*) |
7494 |
dflt='n' |
7495 |
case "$d_dlopen" in |
7496 |
$define) dflt='y' ;; |
7497 |
esac |
7498 |
case "$i_dld" in |
7499 |
$define) dflt='y' ;; |
7500 |
esac |
7501 |
: Does a dl_xxx.xs file exist for this operating system |
7502 |
$test -f $rsrc/$dldir/dl_${osname}.xs && dflt='y' |
7503 |
;; |
7504 |
esac |
7505 |
rp="Do you wish to use dynamic loading?" |
7506 |
. ./myread |
7507 |
usedl="$ans" |
7508 |
case "$ans" in |
7509 |
y*) usedl="$define" |
7510 |
case "$dlsrc" in |
7511 |
'') |
7512 |
if $test -f $rsrc/$dldir/dl_${osname}.xs ; then |
7513 |
dflt="$dldir/dl_${osname}.xs" |
7514 |
elif $test "$d_dlopen" = "$define" ; then |
7515 |
dflt="$dldir/dl_dlopen.xs" |
7516 |
elif $test "$i_dld" = "$define" ; then |
7517 |
dflt="$dldir/dl_dld.xs" |
7518 |
else |
7519 |
dflt='' |
7520 |
fi |
7521 |
;; |
7522 |
*) dflt="$dldir/$dlsrc" |
7523 |
;; |
7524 |
esac |
7525 |
echo "The following dynamic loading files are available:" |
7526 |
: Can not go over to $dldir because getfile has path hard-coded in. |
7527 |
tdir=`pwd`; cd "$rsrc"; $ls -C $dldir/dl*.xs; cd "$tdir" |
7528 |
rp="Source file to use for dynamic loading" |
7529 |
fn="fne" |
7530 |
gfpth="$src" |
7531 |
. ./getfile |
7532 |
usedl="$define" |
7533 |
: emulate basename |
7534 |
dlsrc=`echo $ans | $sed -e 's%.*/\([^/]*\)$%\1%'` |
7535 |
|
7536 |
$cat << EOM |
7537 |
|
7538 |
Some systems may require passing special flags to $cc -c to |
7539 |
compile modules that will be used to create a shared library. |
7540 |
To use no flags, say "none". |
7541 |
|
7542 |
EOM |
7543 |
case "$cccdlflags" in |
7544 |
'') case "$gccversion" in |
7545 |
'') case "$osname" in |
7546 |
hpux) dflt='+z' ;; |
7547 |
next) dflt='none' ;; |
7548 |
irix*) dflt='-KPIC' ;; |
7549 |
svr4*|esix*|solaris|nonstopux) dflt='-KPIC' ;; |
7550 |
sunos) dflt='-pic' ;; |
7551 |
*) dflt='none' ;; |
7552 |
esac |
7553 |
;; |
7554 |
*) case "$osname" in |
7555 |
darwin) dflt='none' ;; |
7556 |
svr4*|esix*|solaris|nonstopux) dflt='-fPIC' ;; |
7557 |
*) dflt='-fpic' ;; |
7558 |
esac ;; |
7559 |
esac ;; |
7560 |
' ') dflt='none' ;; |
7561 |
*) dflt="$cccdlflags" ;; |
7562 |
esac |
7563 |
rp="Any special flags to pass to $cc -c to compile shared library modules?" |
7564 |
. ./myread |
7565 |
case "$ans" in |
7566 |
none) cccdlflags=' ' ;; |
7567 |
*) cccdlflags="$ans" ;; |
7568 |
esac |
7569 |
|
7570 |
cat << EOM |
7571 |
|
7572 |
Some systems use ld to create libraries that can be dynamically loaded, |
7573 |
while other systems (such as those using ELF) use $cc. |
7574 |
|
7575 |
EOM |
7576 |
case "$ld" in |
7577 |
'') $cat >try.c <<EOM |
7578 |
/* Test for whether ELF binaries are produced */ |
7579 |
#include <fcntl.h> |
7580 |
#$i_stdlib I_STDLIB |
7581 |
#ifdef I_STDLIB |
7582 |
#include <stdlib.h> |
7583 |
#endif |
7584 |
int main() { |
7585 |
char b[4]; |
7586 |
int i = open("a.out",O_RDONLY); |
7587 |
if(i == -1) |
7588 |
exit(1); /* fail */ |
7589 |
if(read(i,b,4)==4 && b[0]==127 && b[1]=='E' && b[2]=='L' && b[3]=='F') |
7590 |
exit(0); /* succeed (yes, it's ELF) */ |
7591 |
else |
7592 |
exit(1); /* fail */ |
7593 |
} |
7594 |
EOM |
7595 |
if $cc $ccflags $ldflags try.c >/dev/null 2>&1 && $run ./a.out; then |
7596 |
cat <<EOM |
7597 |
You appear to have ELF support. I'll use $cc to build dynamic libraries. |
7598 |
EOM |
7599 |
dflt="$cc" |
7600 |
else |
7601 |
echo "I'll use ld to build dynamic libraries." |
7602 |
dflt='ld' |
7603 |
fi |
7604 |
rm -f try.c a.out |
7605 |
;; |
7606 |
*) dflt="$ld" |
7607 |
;; |
7608 |
esac |
7609 |
|
7610 |
rp="What command should be used to create dynamic libraries?" |
7611 |
. ./myread |
7612 |
ld="$ans" |
7613 |
|
7614 |
cat << EOM |
7615 |
|
7616 |
Some systems may require passing special flags to $ld to create a |
7617 |
library that can be dynamically loaded. If your ld flags include |
7618 |
-L/other/path options to locate libraries outside your loader's normal |
7619 |
search path, you may need to specify those -L options here as well. To |
7620 |
use no flags, say "none". |
7621 |
|
7622 |
EOM |
7623 |
case "$lddlflags" in |
7624 |
'') case "$osname" in |
7625 |
beos) dflt='-nostart' ;; |
7626 |
hpux) dflt='-b'; |
7627 |
case "$gccversion" in |
7628 |
'') dflt="$dflt +vnocompatwarnings" ;; |
7629 |
esac |
7630 |
;; |
7631 |
linux|irix*|gnu*) dflt='-shared' ;; |
7632 |
next) dflt='none' ;; |
7633 |
solaris) dflt='-G' ;; |
7634 |
sunos) dflt='-assert nodefinitions' ;; |
7635 |
svr4*|esix*|nonstopux) dflt="-G $ldflags" ;; |
7636 |
*) dflt='none' ;; |
7637 |
esac |
7638 |
;; |
7639 |
*) dflt="$lddlflags" ;; |
7640 |
esac |
7641 |
|
7642 |
: Try to guess additional flags to pick up local libraries. |
7643 |
: Be careful not to append to a plain 'none' |
7644 |
case "$dflt" in |
7645 |
none) dflt='' ;; |
7646 |
esac |
7647 |
for thisflag in $ldflags; do |
7648 |
case "$thisflag" in |
7649 |
-L*|-R*|-Wl,-R*) |
7650 |
case " $dflt " in |
7651 |
*" $thisflag "*) ;; |
7652 |
*) dflt="$dflt $thisflag" ;; |
7653 |
esac |
7654 |
;; |
7655 |
esac |
7656 |
done |
7657 |
|
7658 |
case "$dflt" in |
7659 |
''|' ') dflt='none' ;; |
7660 |
esac |
7661 |
|
7662 |
rp="Any special flags to pass to $ld to create a dynamically loaded library?" |
7663 |
. ./myread |
7664 |
case "$ans" in |
7665 |
none) lddlflags=' ' ;; |
7666 |
*) lddlflags="$ans" ;; |
7667 |
esac |
7668 |
|
7669 |
cat <<EOM |
7670 |
|
7671 |
Some systems may require passing special flags to $cc to indicate that |
7672 |
the resulting executable will use dynamic linking. To use no flags, |
7673 |
say "none". |
7674 |
|
7675 |
EOM |
7676 |
case "$ccdlflags" in |
7677 |
'') case "$osname" in |
7678 |
linux|hpux|gnu*) dflt='-Wl,-E' ;; |
7679 |
next|sunos) dflt='none' ;; |
7680 |
*) dflt='none' ;; |
7681 |
esac ;; |
7682 |
' ') dflt='none' ;; |
7683 |
*) dflt="$ccdlflags" ;; |
7684 |
esac |
7685 |
rp="Any special flags to pass to $cc to use dynamic linking?" |
7686 |
. ./myread |
7687 |
case "$ans" in |
7688 |
none) ccdlflags=' ' ;; |
7689 |
*) ccdlflags="$ans" ;; |
7690 |
esac |
7691 |
;; |
7692 |
*) usedl="$undef" |
7693 |
ld='ld' |
7694 |
dlsrc='dl_none.xs' |
7695 |
lddlflags='' |
7696 |
ccdlflags='' |
7697 |
;; |
7698 |
esac |
7699 |
|
7700 |
also='' |
7701 |
case "$usedl" in |
7702 |
$undef) |
7703 |
# No dynamic loading being used, so don't bother even to prompt. |
7704 |
useshrplib='false' |
7705 |
;; |
7706 |
*) case "$useshrplib" in |
7707 |
'') case "$osname" in |
7708 |
svr4*|nonstopux|dgux|dynixptx|esix|powerux|beos|cygwin*) |
7709 |
dflt=y |
7710 |
also='Building a shared libperl is required for dynamic loading to work on your system.' |
7711 |
;; |
7712 |
next*) |
7713 |
case "$osvers" in |
7714 |
4*) dflt=y |
7715 |
also='Building a shared libperl is needed for MAB support.' |
7716 |
;; |
7717 |
*) dflt=n |
7718 |
;; |
7719 |
esac |
7720 |
;; |
7721 |
*) dflt=n |
7722 |
;; |
7723 |
esac |
7724 |
;; |
7725 |
$define|true|[Yy]*) |
7726 |
dflt=y |
7727 |
;; |
7728 |
*) dflt=n |
7729 |
;; |
7730 |
esac |
7731 |
$cat << EOM |
7732 |
|
7733 |
The perl executable is normally obtained by linking perlmain.c with |
7734 |
libperl${_a}, any static extensions (usually just DynaLoader), and |
7735 |
any other libraries needed on this system (such as -lm, etc.). Since |
7736 |
your system supports dynamic loading, it is probably possible to build |
7737 |
a shared libperl.$so. If you will have more than one executable linked |
7738 |
to libperl.$so, this will significantly reduce the size of each |
7739 |
executable, but it may have a noticeable affect on performance. The |
7740 |
default is probably sensible for your system. |
7741 |
$also |
7742 |
|
7743 |
EOM |
7744 |
rp="Build a shared libperl.$so (y/n)" |
7745 |
. ./myread |
7746 |
case "$ans" in |
7747 |
true|$define|[Yy]*) |
7748 |
useshrplib='true' ;; |
7749 |
*) useshrplib='false' ;; |
7750 |
esac |
7751 |
;; |
7752 |
esac |
7753 |
|
7754 |
case "$useshrplib" in |
7755 |
true) |
7756 |
case "$libperl" in |
7757 |
'') |
7758 |
# Figure out a good name for libperl.so. Since it gets stored in |
7759 |
# a version-specific architecture-dependent library, the version |
7760 |
# number isn't really that important, except for making cc/ld happy. |
7761 |
# |
7762 |
# A name such as libperl.so.3.1 |
7763 |
majmin="libperl.$so.$patchlevel.$subversion" |
7764 |
# A name such as libperl.so.301 |
7765 |
majonly=`echo $patchlevel $subversion | |
7766 |
$awk '{printf "%d%02d", $1, $2}'` |
7767 |
majonly=libperl.$so.$majonly |
7768 |
# I'd prefer to keep the os-specific stuff here to a minimum, and |
7769 |
# rely on figuring it out from the naming of libc. |
7770 |
case "${osname}${osvers}" in |
7771 |
next4*) |
7772 |
dflt=libperl.5.$so |
7773 |
# XXX How handle the --version stuff for MAB? |
7774 |
;; |
7775 |
linux*|gnu*) # ld won't link with a bare -lperl otherwise. |
7776 |
dflt=libperl.$so |
7777 |
;; |
7778 |
cygwin*) # ld links against an importlib |
7779 |
dflt=libperl$lib_ext |
7780 |
;; |
7781 |
*) # Try to guess based on whether libc has major.minor. |
7782 |
case "$libc" in |
7783 |
*libc.$so.[0-9]*.[0-9]*) dflt=$majmin ;; |
7784 |
*libc.$so.[0-9]*) dflt=$majonly ;; |
7785 |
*) dflt=libperl.$so ;; |
7786 |
esac |
7787 |
;; |
7788 |
esac |
7789 |
;; |
7790 |
*) dflt=$libperl |
7791 |
;; |
7792 |
esac |
7793 |
cat << EOM |
7794 |
|
7795 |
I need to select a good name for the shared libperl. If your system uses |
7796 |
library names with major and minor numbers, then you might want something |
7797 |
like $majmin. Alternatively, if your system uses a single version |
7798 |
number for shared libraries, then you might want to use $majonly. |
7799 |
Or, your system might be quite happy with a simple libperl.$so. |
7800 |
|
7801 |
Since the shared libperl will get installed into a version-specific |
7802 |
architecture-dependent directory, the version number of the shared perl |
7803 |
library probably isn't important, so the default should be o.k. |
7804 |
|
7805 |
EOM |
7806 |
rp='What name do you want to give to the shared libperl?' |
7807 |
. ./myread |
7808 |
libperl=$ans |
7809 |
echo "Ok, I'll use $libperl" |
7810 |
;; |
7811 |
*) |
7812 |
libperl="libperl${_a}" |
7813 |
;; |
7814 |
esac |
7815 |
|
7816 |
# Detect old use of shrpdir via undocumented Configure -Dshrpdir |
7817 |
case "$shrpdir" in |
7818 |
'') ;; |
7819 |
*) $cat >&4 <<EOM |
7820 |
WARNING: Use of the shrpdir variable for the installation location of |
7821 |
the shared $libperl is not supported. It was never documented and |
7822 |
will not work in this version. Let me (perlbug@perl.org) |
7823 |
know of any problems this may cause. |
7824 |
|
7825 |
EOM |
7826 |
case "$shrpdir" in |
7827 |
"$archlibexp/CORE") |
7828 |
$cat >&4 <<EOM |
7829 |
But your current setting of $shrpdir is |
7830 |
the default anyway, so it's harmless. |
7831 |
EOM |
7832 |
;; |
7833 |
*) |
7834 |
$cat >&4 <<EOM |
7835 |
Further, your current attempted setting of $shrpdir |
7836 |
conflicts with the value of $archlibexp/CORE |
7837 |
that installperl will use. |
7838 |
EOM |
7839 |
;; |
7840 |
esac |
7841 |
;; |
7842 |
esac |
7843 |
|
7844 |
# How will the perl executable find the installed shared $libperl? |
7845 |
# Add $xxx to ccdlflags. |
7846 |
# If we can't figure out a command-line option, use $shrpenv to |
7847 |
# set env LD_RUN_PATH. The main perl makefile uses this. |
7848 |
shrpdir=$archlibexp/CORE |
7849 |
xxx='' |
7850 |
tmp_shrpenv='' |
7851 |
if "$useshrplib"; then |
7852 |
case "$osname" in |
7853 |
aix) |
7854 |
# We'll set it in Makefile.SH... |
7855 |
;; |
7856 |
solaris) |
7857 |
xxx="-R $shrpdir" |
7858 |
;; |
7859 |
freebsd|netbsd|openbsd|interix) |
7860 |
xxx="-Wl,-R$shrpdir" |
7861 |
;; |
7862 |
bsdos|linux|irix*|dec_osf|gnu*) |
7863 |
xxx="-Wl,-rpath,$shrpdir" |
7864 |
;; |
7865 |
next) |
7866 |
# next doesn't like the default... |
7867 |
;; |
7868 |
beos) |
7869 |
# beos doesn't like the default, either. |
7870 |
;; |
7871 |
hpux*) |
7872 |
# hpux doesn't like the default, either. |
7873 |
tmp_shrpenv="env LDOPTS=\"+s +b${shrpdir}\"" |
7874 |
;; |
7875 |
*) |
7876 |
tmp_shrpenv="env LD_RUN_PATH=$shrpdir" |
7877 |
;; |
7878 |
esac |
7879 |
case "$xxx" in |
7880 |
'') ;; |
7881 |
*) |
7882 |
# Only add $xxx if it isn't already in ccdlflags. |
7883 |
case " $ccdlflags " in |
7884 |
*" $xxx "*) ;; |
7885 |
*) ccdlflags="$ccdlflags $xxx" |
7886 |
cat <<EOM >&4 |
7887 |
|
7888 |
Adding $xxx to the flags |
7889 |
passed to $ld so that the perl executable will find the |
7890 |
installed shared $libperl. |
7891 |
|
7892 |
EOM |
7893 |
;; |
7894 |
esac |
7895 |
;; |
7896 |
esac |
7897 |
fi |
7898 |
# Fix ccdlflags in AIX for building external extensions. |
7899 |
# (For building Perl itself bare -bE:perl.exp is needed, |
7900 |
# Makefile.SH takes care of this.) |
7901 |
case "$osname" in |
7902 |
aix) ccdlflags="$ccdlflags -bE:$installarchlib/CORE/perl.exp" ;; |
7903 |
esac |
7904 |
# Respect a hint or command-line value. |
7905 |
case "$shrpenv" in |
7906 |
'') shrpenv="$tmp_shrpenv" ;; |
7907 |
esac |
7908 |
case "$ldlibpthname" in |
7909 |
'') ldlibpthname=LD_LIBRARY_PATH ;; |
7910 |
none) ldlibpthname='' ;; |
7911 |
esac |
7912 |
|
7913 |
: determine where manual pages are on this system |
7914 |
echo " " |
7915 |
case "$sysman" in |
7916 |
'') |
7917 |
syspath='/usr/share/man/man1 /usr/man/man1' |
7918 |
syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1" |
7919 |
syspath="$syspath /usr/man/u_man/man1" |
7920 |
syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1" |
7921 |
syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1" |
7922 |
syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1" |
7923 |
sysman=`./loc . /usr/man/man1 $syspath` |
7924 |
;; |
7925 |
esac |
7926 |
if $test -d "$sysman"; then |
7927 |
echo "System manual is in $sysman." >&4 |
7928 |
else |
7929 |
echo "Could not find manual pages in source form." >&4 |
7930 |
fi |
7931 |
|
7932 |
: determine where manual pages go |
7933 |
set man1dir man1dir none |
7934 |
eval $prefixit |
7935 |
$cat <<EOM |
7936 |
|
7937 |
$spackage has manual pages available in source form. |
7938 |
EOM |
7939 |
case "$nroff" in |
7940 |
nroff) |
7941 |
echo "However, you don't have nroff, so they're probably useless to you." |
7942 |
case "$man1dir" in |
7943 |
'') man1dir="none";; |
7944 |
esac;; |
7945 |
esac |
7946 |
echo "If you don't want the manual sources installed, answer 'none'." |
7947 |
case "$man1dir" in |
7948 |
' ') dflt=none |
7949 |
;; |
7950 |
'') |
7951 |
lookpath="$prefixexp/share/man/man1" |
7952 |
lookpath="$lookpath $prefixexp/man/man1 $prefixexp/man/l_man/man1" |
7953 |
lookpath="$lookpath $prefixexp/man/p_man/man1" |
7954 |
lookpath="$lookpath $prefixexp/man/u_man/man1" |
7955 |
lookpath="$lookpath $prefixexp/man/man.1" |
7956 |
case "$sysman" in |
7957 |
*/?_man*) dflt=`./loc . $prefixexp/l_man/man1 $lookpath` ;; |
7958 |
*) dflt=`./loc . $prefixexp/man/man1 $lookpath` ;; |
7959 |
esac |
7960 |
set dflt |
7961 |
eval $prefixup |
7962 |
;; |
7963 |
*) dflt="$man1dir" |
7964 |
;; |
7965 |
esac |
7966 |
echo " " |
7967 |
fn=dn+~ |
7968 |
rp="Where do the main $spackage manual pages (source) go?" |
7969 |
. ./getfile |
7970 |
if $test "X$man1direxp" != "X$ansexp"; then |
7971 |
installman1dir='' |
7972 |
fi |
7973 |
man1dir="$ans" |
7974 |
man1direxp="$ansexp" |
7975 |
case "$man1dir" in |
7976 |
'') man1dir=' ' |
7977 |
installman1dir='';; |
7978 |
esac |
7979 |
|
7980 |
: Change installation prefix, if necessary. |
7981 |
if $test X"$prefix" != X"$installprefix"; then |
7982 |
installman1dir=`echo $man1direxp | $sed "s#^$prefix#$installprefix#"` |
7983 |
else |
7984 |
installman1dir="$man1direxp" |
7985 |
fi |
7986 |
|
7987 |
: What suffix to use on installed man pages |
7988 |
|
7989 |
case "$man1dir" in |
7990 |
' ') |
7991 |
man1ext='0' |
7992 |
;; |
7993 |
*) |
7994 |
rp="What suffix should be used for the main $spackage man pages?" |
7995 |
case "$man1ext" in |
7996 |
'') case "$man1dir" in |
7997 |
*1) dflt=1 ;; |
7998 |
*1p) dflt=1p ;; |
7999 |
*1pm) dflt=1pm ;; |
8000 |
*l) dflt=l;; |
8001 |
*n) dflt=n;; |
8002 |
*o) dflt=o;; |
8003 |
*p) dflt=p;; |
8004 |
*C) dflt=C;; |
8005 |
*L) dflt=L;; |
8006 |
*L1) dflt=L1;; |
8007 |
*) dflt=1;; |
8008 |
esac |
8009 |
;; |
8010 |
*) dflt="$man1ext";; |
8011 |
esac |
8012 |
. ./myread |
8013 |
man1ext="$ans" |
8014 |
;; |
8015 |
esac |
8016 |
|
8017 |
: see if we can have long filenames |
8018 |
echo " " |
8019 |
first=123456789abcdef |
8020 |
$rm -f $first |
8021 |
if (echo hi >$first) 2>/dev/null; then |
8022 |
if $test -f 123456789abcde; then |
8023 |
echo 'You cannot have filenames longer than 14 characters. Sigh.' >&4 |
8024 |
val="$undef" |
8025 |
else |
8026 |
echo 'You can have filenames longer than 14 characters.'>&4 |
8027 |
val="$define" |
8028 |
fi |
8029 |
else |
8030 |
$cat <<'EOM' |
8031 |
You can't have filenames longer than 14 chars. |
8032 |
You can't even think about them! |
8033 |
EOM |
8034 |
val="$undef" |
8035 |
fi |
8036 |
set d_flexfnam |
8037 |
eval $setvar |
8038 |
$rm -rf 123456789abcde* |
8039 |
|
8040 |
: determine where library module manual pages go |
8041 |
set man3dir man3dir none |
8042 |
eval $prefixit |
8043 |
$cat <<EOM |
8044 |
|
8045 |
$spackage has manual pages for many of the library modules. |
8046 |
EOM |
8047 |
|
8048 |
case "$nroff" in |
8049 |
nroff) |
8050 |
$cat <<'EOM' |
8051 |
However, you don't have nroff, so they're probably useless to you. |
8052 |
EOM |
8053 |
case "$man3dir" in |
8054 |
'') man3dir="none";; |
8055 |
esac;; |
8056 |
esac |
8057 |
|
8058 |
case "$d_flexfnam" in |
8059 |
undef) |
8060 |
$cat <<'EOM' |
8061 |
However, your system can't handle the long file names like File::Basename.3. |
8062 |
EOM |
8063 |
case "$man3dir" in |
8064 |
'') man3dir="none";; |
8065 |
esac;; |
8066 |
esac |
8067 |
|
8068 |
echo "If you don't want the manual sources installed, answer 'none'." |
8069 |
prog=`echo $package | $sed 's/-*[0-9.]*$//'` |
8070 |
case "$man3dir" in |
8071 |
'') dflt=`echo "$man1dir" | $sed -e 's/man1/man3/g' -e 's/man\.1/man\.3/g'` |
8072 |
if $test -d "$privlib/man/man3"; then |
8073 |
cat <<EOM >&4 |
8074 |
|
8075 |
WARNING: Previous versions of perl installed man3 pages into |
8076 |
$privlib/man/man3. This version will suggest a |
8077 |
new default of $dflt. |
8078 |
EOM |
8079 |
tdflt=$dflt |
8080 |
dflt='n' |
8081 |
rp='Do you wish to preserve the old behavior?(y/n)' |
8082 |
. ./myread |
8083 |
case "$ans" in |
8084 |
y*) dflt="$privlib/man/man3" ;; |
8085 |
*) dflt=$tdflt ;; |
8086 |
esac |
8087 |
fi |
8088 |
;; |
8089 |
*) dflt="$man3dir" ;; |
8090 |
esac |
8091 |
case "$dflt" in |
8092 |
' ') dflt=none ;; |
8093 |
esac |
8094 |
echo " " |
8095 |
fn=dn+~ |
8096 |
rp="Where do the $package library man pages (source) go?" |
8097 |
. ./getfile |
8098 |
man3dir="$ans" |
8099 |
man3direxp="$ansexp" |
8100 |
case "$man3dir" in |
8101 |
'') man3dir=' ' |
8102 |
installman3dir='';; |
8103 |
esac |
8104 |
|
8105 |
: Change installation prefix, if necessary. |
8106 |
if $test X"$prefix" != X"$installprefix"; then |
8107 |
installman3dir=`echo $man3direxp | $sed "s#^$prefix#$installprefix#"` |
8108 |
else |
8109 |
installman3dir="$man3direxp" |
8110 |
fi |
8111 |
|
8112 |
: What suffix to use on installed man pages |
8113 |
case "$man3dir" in |
8114 |
' ') |
8115 |
man3ext='0' |
8116 |
;; |
8117 |
*) |
8118 |
rp="What suffix should be used for the $package library man pages?" |
8119 |
case "$man3ext" in |
8120 |
'') case "$man3dir" in |
8121 |
*3) dflt=3 ;; |
8122 |
*3p) dflt=3p ;; |
8123 |
*3pm) dflt=3pm ;; |
8124 |
*l) dflt=l;; |
8125 |
*n) dflt=n;; |
8126 |
*o) dflt=o;; |
8127 |
*p) dflt=p;; |
8128 |
*C) dflt=C;; |
8129 |
*L) dflt=L;; |
8130 |
*L3) dflt=L3;; |
8131 |
*) dflt=3;; |
8132 |
esac |
8133 |
;; |
8134 |
*) dflt="$man3ext";; |
8135 |
esac |
8136 |
. ./myread |
8137 |
man3ext="$ans" |
8138 |
;; |
8139 |
esac |
8140 |
|
8141 |
: see if we have to deal with yellow pages, now NIS. |
8142 |
if $test -d /usr/etc/yp || $test -d /etc/yp || $test -d /usr/lib/yp; then |
8143 |
if $test -f /usr/etc/nibindd; then |
8144 |
echo " " |
8145 |
echo "I'm fairly confident you're on a NeXT." |
8146 |
echo " " |
8147 |
rp='Do you get the hosts file via NetInfo?' |
8148 |
dflt=y |
8149 |
case "$hostcat" in |
8150 |
nidump*) ;; |
8151 |
'') ;; |
8152 |
*) dflt=n;; |
8153 |
esac |
8154 |
. ./myread |
8155 |
case "$ans" in |
8156 |
y*) hostcat='nidump hosts .';; |
8157 |
*) case "$hostcat" in |
8158 |
nidump*) hostcat='';; |
8159 |
esac |
8160 |
;; |
8161 |
esac |
8162 |
fi |
8163 |
case "$hostcat" in |
8164 |
nidump*) ;; |
8165 |
*) |
8166 |
case "$hostcat" in |
8167 |
*ypcat*) dflt=y;; |
8168 |
'') if $contains '^\+' /etc/passwd >/dev/null 2>&1; then |
8169 |
dflt=y |
8170 |
else |
8171 |
dflt=n |
8172 |
fi;; |
8173 |
*) dflt=n;; |
8174 |
esac |
8175 |
echo " " |
8176 |
rp='Are you getting the hosts file via yellow pages?' |
8177 |
. ./myread |
8178 |
case "$ans" in |
8179 |
y*) hostcat='ypcat hosts';; |
8180 |
*) hostcat='cat /etc/hosts';; |
8181 |
esac |
8182 |
;; |
8183 |
esac |
8184 |
fi |
8185 |
case "$hostcat" in |
8186 |
'') test -f /etc/hosts && hostcat='cat /etc/hosts';; |
8187 |
esac |
8188 |
case "$groupcat" in |
8189 |
'') test -f /etc/group && groupcat='cat /etc/group';; |
8190 |
esac |
8191 |
case "$passcat" in |
8192 |
'') test -f /etc/passwd && passcat='cat /etc/passwd';; |
8193 |
esac |
8194 |
|
8195 |
: now get the host name |
8196 |
echo " " |
8197 |
echo "Figuring out host name..." >&4 |
8198 |
case "$myhostname" in |
8199 |
'') cont=true |
8200 |
echo 'Maybe "hostname" will work...' |
8201 |
if tans=`sh -c hostname 2>&1` ; then |
8202 |
myhostname=$tans |
8203 |
phostname=hostname |
8204 |
cont='' |
8205 |
fi |
8206 |
;; |
8207 |
*) cont='';; |
8208 |
esac |
8209 |
if $test "$cont"; then |
8210 |
if ./xenix; then |
8211 |
echo 'Oh, dear. Maybe "/etc/systemid" is the key...' |
8212 |
if tans=`cat /etc/systemid 2>&1` ; then |
8213 |
myhostname=$tans |
8214 |
phostname='cat /etc/systemid' |
8215 |
echo "Whadyaknow. Xenix always was a bit strange..." |
8216 |
cont='' |
8217 |
fi |
8218 |
elif $test -r /etc/systemid; then |
8219 |
echo "(What is a non-Xenix system doing with /etc/systemid?)" |
8220 |
fi |
8221 |
fi |
8222 |
if $test "$cont"; then |
8223 |
echo 'No, maybe "uuname -l" will work...' |
8224 |
if tans=`sh -c 'uuname -l' 2>&1` ; then |
8225 |
myhostname=$tans |
8226 |
phostname='uuname -l' |
8227 |
else |
8228 |
echo 'Strange. Maybe "uname -n" will work...' |
8229 |
if tans=`sh -c 'uname -n' 2>&1` ; then |
8230 |
myhostname=$tans |
8231 |
phostname='uname -n' |
8232 |
else |
8233 |
echo 'Oh well, maybe I can mine it out of whoami.h...' |
8234 |
if tans=`sh -c $contains' sysname $usrinc/whoami.h' 2>&1` ; then |
8235 |
myhostname=`echo "$tans" | $sed 's/^.*"\(.*\)"/\1/'` |
8236 |
phostname="sed -n -e '"'/sysname/s/^.*\"\\(.*\\)\"/\1/{'"' -e p -e q -e '}' <$usrinc/whoami.h" |
8237 |
else |
8238 |
case "$myhostname" in |
8239 |
'') echo "Does this machine have an identity crisis or something?" |
8240 |
phostname='';; |
8241 |
*) |
8242 |
echo "Well, you said $myhostname before..." |
8243 |
phostname='echo $myhostname';; |
8244 |
esac |
8245 |
fi |
8246 |
fi |
8247 |
fi |
8248 |
fi |
8249 |
case "$myhostname" in |
8250 |
'') myhostname=noname ;; |
8251 |
esac |
8252 |
: you do not want to know about this |
8253 |
set $myhostname |
8254 |
myhostname=$1 |
8255 |
|
8256 |
: verify guess |
8257 |
if $test "$myhostname" ; then |
8258 |
dflt=y |
8259 |
rp='Your host name appears to be "'$myhostname'".'" Right?" |
8260 |
. ./myread |
8261 |
case "$ans" in |
8262 |
y*) ;; |
8263 |
*) myhostname='';; |
8264 |
esac |
8265 |
fi |
8266 |
|
8267 |
: bad guess or no guess |
8268 |
while $test "X$myhostname" = X ; do |
8269 |
dflt='' |
8270 |
rp="Please type the (one word) name of your host:" |
8271 |
. ./myread |
8272 |
myhostname="$ans" |
8273 |
done |
8274 |
|
8275 |
: translate upper to lower if necessary |
8276 |
case "$myhostname" in |
8277 |
*[A-Z]*) |
8278 |
echo "(Normalizing case in your host name)" |
8279 |
myhostname=`echo $myhostname | ./tr '[A-Z]' '[a-z]'` |
8280 |
;; |
8281 |
esac |
8282 |
|
8283 |
case "$myhostname" in |
8284 |
*.*) |
8285 |
dflt=`expr "X$myhostname" : "X[^.]*\(\..*\)"` |
8286 |
myhostname=`expr "X$myhostname" : "X\([^.]*\)\."` |
8287 |
echo "(Trimming domain name from host name--host name is now $myhostname)" |
8288 |
;; |
8289 |
*) case "$mydomain" in |
8290 |
'') |
8291 |
{ |
8292 |
test "X$hostcat" = "Xypcat hosts" && |
8293 |
ypmatch "$myhostname" hosts 2>/dev/null |\ |
8294 |
$sed -e 's/[ ]*#.*//; s/$/ /' > hosts && \ |
8295 |
$test -s hosts |
8296 |
} || { |
8297 |
test "X$hostcat" != "X" && |
8298 |
$hostcat | $sed -n -e "s/[ ]*#.*//; s/\$/ / |
8299 |
/[ ]$myhostname[ . ]/p" > hosts |
8300 |
} |
8301 |
tmp_re="[ . ]" |
8302 |
if $test -f hosts; then |
8303 |
$test x`$awk "/[0-9].*[ ]$myhostname$tmp_re/ { sum++ } |
8304 |
END { print sum }" hosts` = x1 || tmp_re="[ ]" |
8305 |
dflt=.`$awk "/[0-9].*[ ]$myhostname$tmp_re/ {for(i=2; i<=NF;i++) print \\\$i}" \ |
8306 |
hosts | $sort | $uniq | \ |
8307 |
$sed -n -e "s/$myhostname\.\([-a-zA-Z0-9_.]\)/\1/p"` |
8308 |
case `$echo X$dflt` in |
8309 |
X*\ *) echo "(Several hosts in the database matched hostname)" |
8310 |
dflt=. |
8311 |
;; |
8312 |
X.) echo "(You do not have fully-qualified names in the hosts database)" |
8313 |
;; |
8314 |
esac |
8315 |
else |
8316 |
echo "(I cannot locate a hosts database anywhere)" |
8317 |
dflt=. |
8318 |
fi |
8319 |
case "$dflt" in |
8320 |
.) |
8321 |
tans=`./loc resolv.conf X /etc /usr/etc` |
8322 |
if $test -f "$tans"; then |
8323 |
echo "(Attempting domain name extraction from $tans)" |
8324 |
dflt=.`$sed -n -e 's/ / /g' \ |
8325 |
-e 's/^search *\([^ ]*\).*/\1/p' $tans \ |
8326 |
| ./tr '[A-Z]' '[a-z]' 2>/dev/null` |
8327 |
case "$dflt" in |
8328 |
.) dflt=.`$sed -n -e 's/ / /g' \ |
8329 |
-e 's/^domain *\([^ ]*\).*/\1/p' $tans \ |
8330 |
| ./tr '[A-Z]' '[a-z]' 2>/dev/null` |
8331 |
;; |
8332 |
esac |
8333 |
fi |
8334 |
;; |
8335 |
esac |
8336 |
case "$dflt" in |
8337 |
.) echo "(No help from resolv.conf either -- attempting clever guess)" |
8338 |
dflt=.`sh -c domainname 2>/dev/null` |
8339 |
case "$dflt" in |
8340 |
'') dflt='.';; |
8341 |
.nis.*|.yp.*|.main.*) dflt=`echo $dflt | $sed -e 's/^\.[^.]*//'`;; |
8342 |
esac |
8343 |
;; |
8344 |
esac |
8345 |
case "$dflt$osname" in |
8346 |
.os390) echo "(Attempting domain name extraction from //'SYS1.TCPPARMS(TCPDATA)')" |
8347 |
dflt=.`awk '/^DOMAINORIGIN/ {print $2}' "//'SYS1.TCPPARMS(TCPDATA)'" 2>/dev/null` |
8348 |
;; |
8349 |
esac |
8350 |
case "$dflt" in |
8351 |
.) echo "(Lost all hope -- silly guess then)" |
8352 |
dflt='.nonet' |
8353 |
;; |
8354 |
esac |
8355 |
$rm -f hosts |
8356 |
;; |
8357 |
*) dflt="$mydomain";; |
8358 |
esac;; |
8359 |
esac |
8360 |
echo " " |
8361 |
rp="What is your domain name?" |
8362 |
. ./myread |
8363 |
tans="$ans" |
8364 |
case "$ans" in |
8365 |
'') ;; |
8366 |
.*) ;; |
8367 |
*) tans=".$tans";; |
8368 |
esac |
8369 |
mydomain="$tans" |
8370 |
|
8371 |
: translate upper to lower if necessary |
8372 |
case "$mydomain" in |
8373 |
*[A-Z]*) |
8374 |
echo "(Normalizing case in your domain name)" |
8375 |
mydomain=`echo $mydomain | ./tr '[A-Z]' '[a-z]'` |
8376 |
;; |
8377 |
esac |
8378 |
|
8379 |
: a little sanity check here |
8380 |
case "$phostname" in |
8381 |
'') ;; |
8382 |
*) |
8383 |
case `$phostname | ./tr '[A-Z]' '[a-z]'` in |
8384 |
$myhostname$mydomain|$myhostname) ;; |
8385 |
*) |
8386 |
case "$phostname" in |
8387 |
sed*) |
8388 |
echo "(That doesn't agree with your whoami.h file, by the way.)" |
8389 |
;; |
8390 |
*) |
8391 |
echo "(That doesn't agree with your $phostname command, by the way.)" |
8392 |
;; |
8393 |
esac |
8394 |
;; |
8395 |
esac |
8396 |
;; |
8397 |
esac |
8398 |
|
8399 |
$cat <<EOM |
8400 |
|
8401 |
I need to get your e-mail address in Internet format if possible, i.e. |
8402 |
something like user@host.domain. Please answer accurately since I have |
8403 |
no easy means to double check it. The default value provided below |
8404 |
is most probably close to reality but may not be valid from outside |
8405 |
your organization... |
8406 |
|
8407 |
EOM |
8408 |
cont=x |
8409 |
while test "$cont"; do |
8410 |
case "$cf_email" in |
8411 |
'') dflt="$cf_by@$myhostname$mydomain";; |
8412 |
*) dflt="$cf_email";; |
8413 |
esac |
8414 |
rp='What is your e-mail address?' |
8415 |
. ./myread |
8416 |
cf_email="$ans" |
8417 |
case "$cf_email" in |
8418 |
*@*.*) cont='' ;; |
8419 |
*) |
8420 |
rp='Address does not look like an Internet one. Use it anyway?' |
8421 |
case "$fastread" in |
8422 |
yes) dflt=y ;; |
8423 |
*) dflt=n ;; |
8424 |
esac |
8425 |
. ./myread |
8426 |
case "$ans" in |
8427 |
y*) cont='' ;; |
8428 |
*) echo " " ;; |
8429 |
esac |
8430 |
;; |
8431 |
esac |
8432 |
done |
8433 |
|
8434 |
$cat <<EOM |
8435 |
|
8436 |
If you or somebody else will be maintaining perl at your site, please |
8437 |
fill in the correct e-mail address here so that they may be contacted |
8438 |
if necessary. Currently, the "perlbug" program included with perl |
8439 |
will send mail to this address in addition to perlbug@perl.org. You may |
8440 |
enter "none" for no administrator. |
8441 |
|
8442 |
EOM |
8443 |
case "$perladmin" in |
8444 |
'') dflt="$cf_email";; |
8445 |
*) dflt="$perladmin";; |
8446 |
esac |
8447 |
rp='Perl administrator e-mail address' |
8448 |
. ./myread |
8449 |
perladmin="$ans" |
8450 |
|
8451 |
: determine whether to only install version-specific parts. |
8452 |
echo " " |
8453 |
$cat <<EOM |
8454 |
Do you want to install only the version-specific parts of the perl |
8455 |
distribution? Usually you do *not* want to do this. |
8456 |
EOM |
8457 |
case "$versiononly" in |
8458 |
"$define"|[Yy]*|true) dflt='y' ;; |
8459 |
*) dflt='n'; |
8460 |
esac |
8461 |
rp="Do you want to install only the version-specific parts of perl?" |
8462 |
. ./myread |
8463 |
case "$ans" in |
8464 |
[yY]*) val="$define";; |
8465 |
*) val="$undef" ;; |
8466 |
esac |
8467 |
set versiononly |
8468 |
eval $setvar |
8469 |
|
8470 |
case "$versiononly" in |
8471 |
"$define") inc_version_list='' |
8472 |
inc_version_list_init=0 |
8473 |
;; |
8474 |
esac |
8475 |
|
8476 |
: figure out how to guarantee perl startup |
8477 |
case "$startperl" in |
8478 |
'') |
8479 |
case "$sharpbang" in |
8480 |
*!) |
8481 |
$cat <<EOH |
8482 |
|
8483 |
I can use the #! construct to start perl on your system. This will |
8484 |
make startup of perl scripts faster, but may cause problems if you |
8485 |
want to share those scripts and perl is not in a standard place |
8486 |
($binexp/perl) on all your platforms. The alternative is to force |
8487 |
a shell by starting the script with a single ':' character. |
8488 |
|
8489 |
EOH |
8490 |
case "$versiononly" in |
8491 |
"$define") dflt="$binexp/perl$version";; |
8492 |
*) dflt="$binexp/perl";; |
8493 |
esac |
8494 |
rp='What shall I put after the #! to start up perl ("none" to not use #!)?' |
8495 |
. ./myread |
8496 |
case "$ans" in |
8497 |
none) startperl=": # use perl";; |
8498 |
*) startperl="#!$ans" |
8499 |
if $test 30 -lt `echo "$ans" | wc -c`; then |
8500 |
$cat >&4 <<EOM |
8501 |
|
8502 |
WARNING: Some systems limit the #! command to 32 characters. |
8503 |
If you experience difficulty running Perl scripts with #!, try |
8504 |
installing Perl in a directory with a shorter pathname. |
8505 |
|
8506 |
EOM |
8507 |
fi ;; |
8508 |
esac |
8509 |
;; |
8510 |
*) startperl=": # use perl" |
8511 |
;; |
8512 |
esac |
8513 |
;; |
8514 |
esac |
8515 |
echo "I'll use $startperl to start perl scripts." |
8516 |
|
8517 |
: figure best path for perl in scripts |
8518 |
case "$perlpath" in |
8519 |
'') |
8520 |
case "$versiononly" in |
8521 |
"$define") perlpath="$binexp/perl$version";; |
8522 |
*) perlpath="$binexp/perl";; |
8523 |
esac |
8524 |
case "$startperl" in |
8525 |
*!*) ;; |
8526 |
*) |
8527 |
$cat <<EOH |
8528 |
|
8529 |
I will use the "eval 'exec'" idiom to start Perl on your system. |
8530 |
I can use the full path of your Perl binary for this purpose, but |
8531 |
doing so may cause problems if you want to share those scripts and |
8532 |
Perl is not always in a standard place ($binexp/perl). |
8533 |
|
8534 |
EOH |
8535 |
dflt="$binexp/perl" |
8536 |
rp="What path shall I use in \"eval 'exec'\"?" |
8537 |
. ./myread |
8538 |
perlpath="$ans" |
8539 |
;; |
8540 |
esac |
8541 |
;; |
8542 |
esac |
8543 |
case "$startperl" in |
8544 |
*!*) ;; |
8545 |
*) echo "I'll use $perlpath in \"eval 'exec'\"" ;; |
8546 |
esac |
8547 |
|
8548 |
: determine where public executable scripts go |
8549 |
set scriptdir scriptdir |
8550 |
eval $prefixit |
8551 |
case "$scriptdir" in |
8552 |
'') |
8553 |
dflt="$bin" |
8554 |
: guess some guesses |
8555 |
$test -d /usr/share/scripts && dflt=/usr/share/scripts |
8556 |
$test -d /usr/share/bin && dflt=/usr/share/bin |
8557 |
$test -d /usr/local/script && dflt=/usr/local/script |
8558 |
$test -d /usr/local/scripts && dflt=/usr/local/scripts |
8559 |
$test -d $prefixexp/script && dflt=$prefixexp/script |
8560 |
set dflt |
8561 |
eval $prefixup |
8562 |
;; |
8563 |
*) dflt="$scriptdir" |
8564 |
;; |
8565 |
esac |
8566 |
$cat <<EOM |
8567 |
|
8568 |
Some installations have a separate directory just for executable scripts so |
8569 |
that they can mount it across multiple architectures but keep the scripts in |
8570 |
one spot. You might, for example, have a subdirectory of /usr/share for this. |
8571 |
Or you might just lump your scripts in with all your other executables. |
8572 |
|
8573 |
EOM |
8574 |
fn=d~ |
8575 |
rp='Where do you keep publicly executable scripts?' |
8576 |
. ./getfile |
8577 |
if $test "X$ansexp" != "X$scriptdirexp"; then |
8578 |
installscript='' |
8579 |
fi |
8580 |
scriptdir="$ans" |
8581 |
scriptdirexp="$ansexp" |
8582 |
: Change installation prefix, if necessary. |
8583 |
if $test X"$prefix" != X"$installprefix"; then |
8584 |
installscript=`echo $scriptdirexp | sed "s#^$prefix#$installprefix#"` |
8585 |
else |
8586 |
installscript="$scriptdirexp" |
8587 |
fi |
8588 |
|
8589 |
: determine where add-on public executables go |
8590 |
case "$sitebin" in |
8591 |
'') dflt=$siteprefix/bin ;; |
8592 |
*) dflt=$sitebin ;; |
8593 |
esac |
8594 |
fn=d~ |
8595 |
rp='Pathname where the add-on public executables should be installed?' |
8596 |
. ./getfile |
8597 |
sitebin="$ans" |
8598 |
sitebinexp="$ansexp" |
8599 |
: Change installation prefix, if necessary. |
8600 |
if $test X"$prefix" != X"$installprefix"; then |
8601 |
installsitebin=`echo $sitebinexp | sed "s#^$prefix#$installprefix#"` |
8602 |
else |
8603 |
installsitebin="$sitebinexp" |
8604 |
fi |
8605 |
|
8606 |
: determine where add-on html pages go |
8607 |
: There is no standard location, so try to copy the previously-selected |
8608 |
: directory structure for the core html pages. |
8609 |
case "$sitehtml1dir" in |
8610 |
'') dflt=`echo "$html1dir" | $sed "s#^$prefix#$siteprefix#"` ;; |
8611 |
*) dflt=$sitehtml1dir ;; |
8612 |
esac |
8613 |
case "$dflt" in |
8614 |
''|' ') dflt=none ;; |
8615 |
esac |
8616 |
fn=dn+~ |
8617 |
rp='Pathname where the site-specific html pages should be installed?' |
8618 |
. ./getfile |
8619 |
sitehtml1dir="$ans" |
8620 |
sitehtml1direxp="$ansexp" |
8621 |
: Change installation prefix, if necessary. |
8622 |
if $test X"$prefix" != X"$installprefix"; then |
8623 |
installsitehtml1dir=`echo $sitehtml1direxp | $sed "s#^$prefix#$installprefix#"` |
8624 |
else |
8625 |
installsitehtml1dir="$sitehtml1direxp" |
8626 |
fi |
8627 |
|
8628 |
: determine where add-on library html pages go |
8629 |
: There is no standard location, so try to copy the previously-selected |
8630 |
: directory structure for the core html pages. |
8631 |
case "$sitehtml3dir" in |
8632 |
'') dflt=`echo "$html3dir" | $sed "s#^$prefix#$siteprefix#"` ;; |
8633 |
*) dflt=$sitehtml3dir ;; |
8634 |
esac |
8635 |
case "$dflt" in |
8636 |
''|' ') dflt=none ;; |
8637 |
esac |
8638 |
fn=dn+~ |
8639 |
rp='Pathname where the site-specific library html pages should be installed?' |
8640 |
. ./getfile |
8641 |
sitehtml3dir="$ans" |
8642 |
sitehtml3direxp="$ansexp" |
8643 |
: Change installation prefix, if necessary. |
8644 |
if $test X"$prefix" != X"$installprefix"; then |
8645 |
installsitehtml3dir=`echo $sitehtml3direxp | $sed "s#^$prefix#$installprefix#"` |
8646 |
else |
8647 |
installsitehtml3dir="$sitehtml3direxp" |
8648 |
fi |
8649 |
|
8650 |
: determine where add-on manual pages go |
8651 |
case "$siteman1dir" in |
8652 |
'') dflt=`echo $man1dir | $sed "s#^$prefix#$siteprefix#"` ;; |
8653 |
*) dflt=$siteman1dir ;; |
8654 |
esac |
8655 |
case "$dflt" in |
8656 |
''|' ') dflt=none ;; |
8657 |
esac |
8658 |
fn=dn+~ |
8659 |
rp='Pathname where the site-specific manual pages should be installed?' |
8660 |
. ./getfile |
8661 |
siteman1dir="$ans" |
8662 |
siteman1direxp="$ansexp" |
8663 |
: Change installation prefix, if necessary. |
8664 |
if $test X"$prefix" != X"$installprefix"; then |
8665 |
installsiteman1dir=`echo $siteman1direxp | $sed "s#^$prefix#$installprefix#"` |
8666 |
else |
8667 |
installsiteman1dir="$siteman1direxp" |
8668 |
fi |
8669 |
|
8670 |
: determine where add-on library man pages go |
8671 |
case "$siteman3dir" in |
8672 |
'') dflt=`echo $man3dir | $sed "s#^$prefix#$siteprefix#"` ;; |
8673 |
*) dflt=$siteman3dir ;; |
8674 |
esac |
8675 |
case "$dflt" in |
8676 |
''|' ') dflt=none ;; |
8677 |
esac |
8678 |
fn=dn+~ |
8679 |
rp='Pathname where the site-specific library manual pages should be installed?' |
8680 |
. ./getfile |
8681 |
siteman3dir="$ans" |
8682 |
siteman3direxp="$ansexp" |
8683 |
: Change installation prefix, if necessary. |
8684 |
if $test X"$prefix" != X"$installprefix"; then |
8685 |
installsiteman3dir=`echo $siteman3direxp | $sed "s#^$prefix#$installprefix#"` |
8686 |
else |
8687 |
installsiteman3dir="$siteman3direxp" |
8688 |
fi |
8689 |
|
8690 |
: determine where add-on public executable scripts go |
8691 |
case "$sitescript" in |
8692 |
'') dflt=$siteprefix/script |
8693 |
$test -d $dflt || dflt=$sitebin ;; |
8694 |
*) dflt="$sitescript" ;; |
8695 |
esac |
8696 |
fn=d~+ |
8697 |
rp='Pathname where add-on public executable scripts should be installed?' |
8698 |
. ./getfile |
8699 |
sitescript="$ans" |
8700 |
sitescriptexp="$ansexp" |
8701 |
: Change installation prefix, if necessary. |
8702 |
if $test X"$prefix" != X"$installprefix"; then |
8703 |
installsitescript=`echo $sitescriptexp | sed "s#^$prefix#$installprefix#"` |
8704 |
else |
8705 |
installsitescript="$sitescriptexp" |
8706 |
fi |
8707 |
|
8708 |
case "$usefaststdio" in |
8709 |
$define|true|[yY]*|'') |
8710 |
xversion=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h` |
8711 |
case "$xversion" in |
8712 |
[68]) dflt='y' ;; |
8713 |
*) dflt='n' ;; |
8714 |
esac |
8715 |
;; |
8716 |
*) dflt='n';; |
8717 |
esac |
8718 |
cat <<EOM |
8719 |
|
8720 |
Perl can be built to use 'fast stdio', which means using the stdio |
8721 |
library but also directly manipulating the stdio buffers to enable |
8722 |
faster I/O. Using stdio is better for backward compatibility (especially |
8723 |
for Perl extensions), but on the other hand since Perl 5.8 the 'perlio' |
8724 |
interface has been preferred instead of stdio. |
8725 |
|
8726 |
If this doesn't make any sense to you, just accept the default '$dflt'. |
8727 |
EOM |
8728 |
rp='Use the "fast stdio" if available?' |
8729 |
. ./myread |
8730 |
case "$ans" in |
8731 |
y|Y) val="$define" ;; |
8732 |
*) val="$undef" ;; |
8733 |
esac |
8734 |
set usefaststdio |
8735 |
eval $setvar |
8736 |
|
8737 |
|
8738 |
: define an is-a-typedef? function |
8739 |
typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@; |
8740 |
case "$inclist" in |
8741 |
"") inclist="sys/types.h";; |
8742 |
esac; |
8743 |
eval "varval=\$$var"; |
8744 |
case "$varval" in |
8745 |
"") |
8746 |
$rm -f temp.c; |
8747 |
for inc in $inclist; do |
8748 |
echo "#include <$inc>" >>temp.c; |
8749 |
done; |
8750 |
echo "#ifdef $type" >> temp.c; |
8751 |
echo "printf(\"We have $type\");" >> temp.c; |
8752 |
echo "#endif" >> temp.c; |
8753 |
$cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null; |
8754 |
if $contains $type temp.E >/dev/null 2>&1; then |
8755 |
eval "$var=\$type"; |
8756 |
else |
8757 |
eval "$var=\$def"; |
8758 |
fi; |
8759 |
$rm -f temp.?;; |
8760 |
*) eval "$var=\$varval";; |
8761 |
esac' |
8762 |
|
8763 |
: define an is-a-typedef? function that prompts if the type is not available. |
8764 |
typedef_ask='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@; |
8765 |
case "$inclist" in |
8766 |
"") inclist="sys/types.h";; |
8767 |
esac; |
8768 |
eval "varval=\$$var"; |
8769 |
case "$varval" in |
8770 |
"") |
8771 |
$rm -f temp.c; |
8772 |
for inc in $inclist; do |
8773 |
echo "#include <$inc>" >>temp.c; |
8774 |
done; |
8775 |
echo "#ifdef $type" >> temp.c; |
8776 |
echo "printf(\"We have $type\");" >> temp.c; |
8777 |
echo "#endif" >> temp.c; |
8778 |
$cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null; |
8779 |
echo " " ; |
8780 |
echo "$rp" | $sed -e "s/What is/Looking for/" -e "s/?/./"; |
8781 |
if $contains $type temp.E >/dev/null 2>&1; then |
8782 |
echo "$type found." >&4; |
8783 |
eval "$var=\$type"; |
8784 |
else |
8785 |
echo "$type NOT found." >&4; |
8786 |
dflt="$def"; |
8787 |
. ./myread ; |
8788 |
eval "$var=\$ans"; |
8789 |
fi; |
8790 |
$rm -f temp.?;; |
8791 |
*) eval "$var=\$varval";; |
8792 |
esac' |
8793 |
|
8794 |
: see what type lseek is declared as in the kernel |
8795 |
rp="What is the type used for lseek's offset on this system?" |
8796 |
set off_t lseektype long stdio.h sys/types.h |
8797 |
eval $typedef_ask |
8798 |
|
8799 |
echo " " |
8800 |
echo "Checking to see how big your file offsets are..." >&4 |
8801 |
$cat >try.c <<EOCP |
8802 |
#include <sys/types.h> |
8803 |
#include <stdio.h> |
8804 |
int main() |
8805 |
{ |
8806 |
printf("%d\n", (int)sizeof($lseektype)); |
8807 |
return(0); |
8808 |
} |
8809 |
EOCP |
8810 |
set try |
8811 |
if eval $compile_ok; then |
8812 |
lseeksize=`$run ./try` |
8813 |
echo "Your file offsets are $lseeksize bytes long." |
8814 |
else |
8815 |
dflt=$longsize |
8816 |
echo " " |
8817 |
echo "(I can't seem to compile the test program. Guessing...)" |
8818 |
rp="What is the size of your file offsets (in bytes)?" |
8819 |
. ./myread |
8820 |
lseeksize="$ans" |
8821 |
fi |
8822 |
$rm -f try.c try |
8823 |
|
8824 |
: see what type file positions are declared as in the library |
8825 |
rp="What is the type for file position used by fsetpos()?" |
8826 |
set fpos_t fpostype long stdio.h sys/types.h |
8827 |
eval $typedef_ask |
8828 |
|
8829 |
echo " " |
8830 |
case "$fpostype" in |
8831 |
*_t) zzz="$fpostype" ;; |
8832 |
*) zzz="fpos_t" ;; |
8833 |
esac |
8834 |
echo "Checking the size of $zzz..." >&4 |
8835 |
cat > try.c <<EOCP |
8836 |
#include <sys/types.h> |
8837 |
#include <stdio.h> |
8838 |
#$i_stdlib I_STDLIB |
8839 |
#ifdef I_STDLIB |
8840 |
#include <stdlib.h> |
8841 |
#endif |
8842 |
int main() { |
8843 |
printf("%d\n", (int)sizeof($fpostype)); |
8844 |
exit(0); |
8845 |
} |
8846 |
EOCP |
8847 |
set try |
8848 |
if eval $compile_ok; then |
8849 |
yyy=`$run ./try` |
8850 |
case "$yyy" in |
8851 |
'') fpossize=4 |
8852 |
echo "(I can't execute the test program--guessing $fpossize.)" >&4 |
8853 |
;; |
8854 |
*) fpossize=$yyy |
8855 |
echo "Your $zzz is $fpossize bytes long." |
8856 |
;; |
8857 |
esac |
8858 |
else |
8859 |
dflt="$longsize" |
8860 |
echo " " >&4 |
8861 |
echo "(I can't compile the test program. Guessing...)" >&4 |
8862 |
rp="What is the size of your file positions (in bytes)?" |
8863 |
. ./myread |
8864 |
fpossize="$ans" |
8865 |
fi |
8866 |
|
8867 |
# Backward compatibility (uselfs is deprecated). |
8868 |
case "$uselfs" in |
8869 |
"$define"|true|[yY]*) |
8870 |
cat <<EOM >&4 |
8871 |
|
8872 |
*** Configure -Duselfs is deprecated, using -Duselargefiles instead. |
8873 |
EOM |
8874 |
uselargefiles="$define" |
8875 |
;; |
8876 |
esac |
8877 |
|
8878 |
case "$lseeksize:$fpossize" in |
8879 |
8:8) cat <<EOM |
8880 |
|
8881 |
You can have files larger than 2 gigabytes. |
8882 |
EOM |
8883 |
val="$define" ;; |
8884 |
*) case "$uselargefiles" in |
8885 |
"$undef"|false|[nN]*) dflt='n' ;; |
8886 |
*) dflt='y' ;; |
8887 |
esac |
8888 |
cat <<EOM |
8889 |
|
8890 |
Perl can be built to understand large files (files larger than 2 gigabytes) |
8891 |
on some systems. To do so, Configure can be run with -Duselargefiles. |
8892 |
|
8893 |
If this doesn't make any sense to you, just accept the default '$dflt'. |
8894 |
EOM |
8895 |
rp='Try to understand large files, if available?' |
8896 |
. ./myread |
8897 |
case "$ans" in |
8898 |
y|Y) val="$define" ;; |
8899 |
*) val="$undef" ;; |
8900 |
esac |
8901 |
;; |
8902 |
esac |
8903 |
set uselargefiles |
8904 |
eval $setvar |
8905 |
: Look for a hint-file generated 'call-back-unit'. If the |
8906 |
: user has specified that a large files perl is to be built, |
8907 |
: we may need to set or change some other defaults. |
8908 |
if $test -f uselargefiles.cbu; then |
8909 |
echo "Your platform has some specific hints regarding large file builds, using them..." |
8910 |
. ./uselargefiles.cbu |
8911 |
fi |
8912 |
case "$uselargefiles" in |
8913 |
"$define") |
8914 |
if $test -f uselargefiles.cbu; then |
8915 |
echo " " |
8916 |
echo "Rechecking to see how big your file offsets are..." >&4 |
8917 |
$cat >try.c <<EOCP |
8918 |
#include <sys/types.h> |
8919 |
#include <stdio.h> |
8920 |
int main() |
8921 |
{ |
8922 |
printf("%d\n", (int)sizeof($lseektype)); |
8923 |
return(0); |
8924 |
} |
8925 |
EOCP |
8926 |
set try |
8927 |
if eval $compile_ok; then |
8928 |
lseeksize=`$run ./try` |
8929 |
$echo "Your file offsets are now $lseeksize bytes long." |
8930 |
else |
8931 |
dflt="$lseeksize" |
8932 |
echo " " |
8933 |
echo "(I can't seem to compile the test program. Guessing...)" |
8934 |
rp="What is the size of your file offsets (in bytes)?" |
8935 |
. ./myread |
8936 |
lseeksize="$ans" |
8937 |
fi |
8938 |
case "$fpostype" in |
8939 |
*_t) zzz="$fpostype" ;; |
8940 |
*) zzz="fpos_t" ;; |
8941 |
esac |
8942 |
$echo $n "Rechecking the size of $zzz...$c" >&4 |
8943 |
$cat > try.c <<EOCP |
8944 |
#include <sys/types.h> |
8945 |
#include <stdio.h> |
8946 |
#$i_stdlib I_STDLIB |
8947 |
#ifdef I_STDLIB |
8948 |
#include <stdlib.h> |
8949 |
#endif |
8950 |
int main() { |
8951 |
printf("%d\n", (int)sizeof($fpostype)); |
8952 |
return(0); |
8953 |
} |
8954 |
EOCP |
8955 |
set try |
8956 |
if eval $compile_ok; then |
8957 |
yyy=`$run ./try` |
8958 |
dflt="$lseeksize" |
8959 |
case "$yyy" in |
8960 |
'') echo " " |
8961 |
echo "(I can't execute the test program--guessing $fpossize.)" >&4 |
8962 |
;; |
8963 |
*) fpossize=$yyy |
8964 |
echo " $fpossize bytes." >&4 |
8965 |
;; |
8966 |
esac |
8967 |
else |
8968 |
dflt="$fpossize" |
8969 |
echo " " |
8970 |
echo "(I can't compile the test program. Guessing...)" >&4 |
8971 |
rp="What is the size of your file positions (in bytes)?" |
8972 |
. ./myread |
8973 |
fpossize="$ans" |
8974 |
fi |
8975 |
$rm -f try.c try |
8976 |
fi |
8977 |
;; |
8978 |
esac |
8979 |
|
8980 |
case "$vendorprefix" in |
8981 |
'') d_vendorbin="$undef" |
8982 |
vendorbin='' |
8983 |
vendorbinexp='' |
8984 |
;; |
8985 |
*) d_vendorbin="$define" |
8986 |
: determine where vendor-supplied executables go. |
8987 |
case "$vendorbin" in |
8988 |
'') dflt=$vendorprefix/bin ;; |
8989 |
*) dflt="$vendorbin" ;; |
8990 |
esac |
8991 |
fn=d~+ |
8992 |
rp='Pathname for the vendor-supplied executables directory?' |
8993 |
. ./getfile |
8994 |
vendorbin="$ans" |
8995 |
vendorbinexp="$ansexp" |
8996 |
;; |
8997 |
esac |
8998 |
: Change installation prefix, if necessary. |
8999 |
if $test X"$prefix" != X"$installprefix"; then |
9000 |
installvendorbin=`echo $vendorbinexp | $sed "s#^$prefix#$installprefix#"` |
9001 |
else |
9002 |
installvendorbin="$vendorbinexp" |
9003 |
fi |
9004 |
|
9005 |
case "$vendorprefix" in |
9006 |
'') vendorhtml1dir='' |
9007 |
vendorhtml1direxp='' |
9008 |
;; |
9009 |
*) : determine where vendor-supplied html pages go. |
9010 |
: There is no standard location, so try to copy the previously-selected |
9011 |
: directory structure for the core html pages. |
9012 |
: XXX Better default suggestions would be welcome. |
9013 |
case "$vendorhtml1dir" in |
9014 |
'') dflt=`echo "$html1dir" | $sed "s#^$prefix#$vendorprefix#"` ;; |
9015 |
*) dflt=$vendorhtml1dir ;; |
9016 |
esac |
9017 |
case "$dflt" in |
9018 |
''|' ') dflt=none ;; |
9019 |
esac |
9020 |
fn=dn+~ |
9021 |
rp='Pathname for the vendor-supplied html pages?' |
9022 |
. ./getfile |
9023 |
vendorhtml1dir="$ans" |
9024 |
vendorhtml1direxp="$ansexp" |
9025 |
;; |
9026 |
esac |
9027 |
: Use ' ' for none so value is preserved next time through Configure |
9028 |
$test X"$vendorhtml1dir" = "X" && vendorhtml1dir=' ' |
9029 |
: Change installation prefix, if necessary. |
9030 |
if $test X"$prefix" != X"$installprefix"; then |
9031 |
installvendorhtml1dir=`echo $vendorhtml1direxp | $sed "s#^$prefix#$installprefix#"` |
9032 |
else |
9033 |
installvendorhtml1dir="$vendorhtml1direxp" |
9034 |
fi |
9035 |
|
9036 |
case "$vendorprefix" in |
9037 |
'') vendorhtml3dir='' |
9038 |
vendorhtml3direxp='' |
9039 |
;; |
9040 |
*) : determine where vendor-supplied module html pages go. |
9041 |
: There is no standard location, so try to copy the previously-selected |
9042 |
: directory structure for the core html pages. |
9043 |
: XXX Better default suggestions would be welcome. |
9044 |
case "$vendorhtml3dir" in |
9045 |
'') dflt=`echo "$html3dir" | $sed "s#^$prefix#$vendorprefix#"` ;; |
9046 |
*) dflt=$vendorhtml3dir ;; |
9047 |
esac |
9048 |
case "$dflt" in |
9049 |
''|' ') dflt=none ;; |
9050 |
esac |
9051 |
fn=dn+~ |
9052 |
rp='Pathname for the vendor-supplied html pages?' |
9053 |
. ./getfile |
9054 |
vendorhtml3dir="$ans" |
9055 |
vendorhtml3direxp="$ansexp" |
9056 |
;; |
9057 |
esac |
9058 |
: Use ' ' for none so value is preserved next time through Configure |
9059 |
$test X"$vendorhtml3dir" = "X" && vendorhtml3dir=' ' |
9060 |
: Change installation prefix, if necessary. |
9061 |
if $test X"$prefix" != X"$installprefix"; then |
9062 |
installvendorhtml3dir=`echo $vendorhtml3direxp | $sed "s#^$prefix#$installprefix#"` |
9063 |
else |
9064 |
installvendorhtml3dir="$vendorhtml3direxp" |
9065 |
fi |
9066 |
|
9067 |
case "$vendorprefix" in |
9068 |
'') vendorman1dir='' |
9069 |
vendorman1direxp='' |
9070 |
;; |
9071 |
*) : determine where vendor-supplied manual pages go. |
9072 |
case "$vendorman1dir" in |
9073 |
'') dflt=`echo "$man1dir" | $sed "s#^$prefix#$vendorprefix#"` ;; |
9074 |
*) dflt=$vendorman1dir ;; |
9075 |
esac |
9076 |
case "$dflt" in |
9077 |
''|' ') dflt=none ;; |
9078 |
esac |
9079 |
fn=nd~+ |
9080 |
rp='Pathname for the vendor-supplied manual section 1 pages?' |
9081 |
. ./getfile |
9082 |
vendorman1dir="$ans" |
9083 |
vendorman1direxp="$ansexp" |
9084 |
;; |
9085 |
esac |
9086 |
: Use ' ' for none so value is preserved next time through Configure |
9087 |
$test X"$vendorman1dir" = "X" && vendorman1dir=' ' |
9088 |
: Change installation prefix, if necessary. |
9089 |
if $test X"$prefix" != X"$installprefix"; then |
9090 |
installvendorman1dir=`echo "$vendorman1direxp" | $sed "s#^$prefix#$installprefix#"` |
9091 |
else |
9092 |
installvendorman1dir="$vendorman1direxp" |
9093 |
fi |
9094 |
|
9095 |
case "$vendorprefix" in |
9096 |
'') vendorman3dir='' |
9097 |
vendorman3direxp='' |
9098 |
;; |
9099 |
*) : determine where vendor-supplied module manual pages go. |
9100 |
case "$vendorman3dir" in |
9101 |
'') dflt=`echo "$man3dir" | $sed "s#^$prefix#$vendorprefix#"` ;; |
9102 |
*) dflt=$vendorman3dir ;; |
9103 |
esac |
9104 |
case "$dflt" in |
9105 |
''|' ') dflt=none ;; |
9106 |
esac |
9107 |
fn=nd~+ |
9108 |
rp='Pathname for the vendor-supplied manual section 3 pages?' |
9109 |
. ./getfile |
9110 |
vendorman3dir="$ans" |
9111 |
vendorman3direxp="$ansexp" |
9112 |
;; |
9113 |
esac |
9114 |
: Use ' ' for none so value is preserved next time through Configure |
9115 |
$test X"$vendorman3dir" = "X" && vendorman3dir=' ' |
9116 |
: Change installation prefix, if necessary. |
9117 |
if $test X"$prefix" != X"$installprefix"; then |
9118 |
installvendorman3dir=`echo "$vendorman3direxp" | $sed "s#^$prefix#$installprefix#"` |
9119 |
else |
9120 |
installvendorman3dir="$vendorman3direxp" |
9121 |
fi |
9122 |
|
9123 |
case "$vendorprefix" in |
9124 |
'') d_vendorscript="$undef" |
9125 |
vendorscript='' |
9126 |
vendorscriptexp='' |
9127 |
;; |
9128 |
*) d_vendorscript="$define" |
9129 |
: determine where vendor-supplied scripts go. |
9130 |
case "$vendorscript" in |
9131 |
'') dflt=$vendorprefix/script |
9132 |
$test -d $dflt || dflt=$vendorbin ;; |
9133 |
*) dflt="$vendorscript" ;; |
9134 |
esac |
9135 |
$cat <<EOM |
9136 |
|
9137 |
The installation process will create a directory for |
9138 |
vendor-supplied scripts. |
9139 |
|
9140 |
EOM |
9141 |
fn=d~+ |
9142 |
rp='Pathname for the vendor-supplied scripts directory?' |
9143 |
. ./getfile |
9144 |
vendorscript="$ans" |
9145 |
vendorscriptexp="$ansexp" |
9146 |
;; |
9147 |
esac |
9148 |
: Change installation prefix, if necessary. |
9149 |
if $test X"$prefix" != X"$installprefix"; then |
9150 |
installvendorscript=`echo $vendorscriptexp | $sed "s#^$prefix#$installprefix#"` |
9151 |
else |
9152 |
installvendorscript="$vendorscriptexp" |
9153 |
fi |
9154 |
|
9155 |
: see if qgcvt exists |
9156 |
set qgcvt d_qgcvt |
9157 |
eval $inlibc |
9158 |
|
9159 |
echo " " |
9160 |
|
9161 |
if $test X"$d_longdbl" = X"$define"; then |
9162 |
|
9163 |
echo "Checking how to print long doubles..." >&4 |
9164 |
|
9165 |
if $test X"$sPRIfldbl" = X -a X"$doublesize" = X"$longdblsize"; then |
9166 |
$cat >try.c <<'EOCP' |
9167 |
#include <sys/types.h> |
9168 |
#include <stdio.h> |
9169 |
int main() { |
9170 |
double d = 123.456; |
9171 |
printf("%.3f\n", d); |
9172 |
} |
9173 |
EOCP |
9174 |
set try |
9175 |
if eval $compile; then |
9176 |
yyy=`$run ./try` |
9177 |
case "$yyy" in |
9178 |
123.456) |
9179 |
sPRIfldbl='"f"'; sPRIgldbl='"g"'; sPRIeldbl='"e"'; |
9180 |
sPRIFUldbl='"F"'; sPRIGUldbl='"G"'; sPRIEUldbl='"E"'; |
9181 |
echo "We will use %f." |
9182 |
;; |
9183 |
esac |
9184 |
fi |
9185 |
fi |
9186 |
|
9187 |
if $test X"$sPRIfldbl" = X; then |
9188 |
$cat >try.c <<'EOCP' |
9189 |
#include <sys/types.h> |
9190 |
#include <stdio.h> |
9191 |
int main() { |
9192 |
long double d = 123.456; |
9193 |
printf("%.3Lf\n", d); |
9194 |
} |
9195 |
EOCP |
9196 |
set try |
9197 |
if eval $compile; then |
9198 |
yyy=`$run ./try` |
9199 |
case "$yyy" in |
9200 |
123.456) |
9201 |
sPRIfldbl='"Lf"'; sPRIgldbl='"Lg"'; sPRIeldbl='"Le"'; |
9202 |
sPRIFUldbl='"LF"'; sPRIGUldbl='"LG"'; sPRIEUldbl='"LE"'; |
9203 |
echo "We will use %Lf." |
9204 |
;; |
9205 |
esac |
9206 |
fi |
9207 |
fi |
9208 |
|
9209 |
if $test X"$sPRIfldbl" = X; then |
9210 |
$cat >try.c <<'EOCP' |
9211 |
#include <sys/types.h> |
9212 |
#include <stdio.h> |
9213 |
int main() { |
9214 |
long double d = 123.456; |
9215 |
printf("%.3llf\n", d); |
9216 |
} |
9217 |
EOCP |
9218 |
set try |
9219 |
if eval $compile; then |
9220 |
yyy=`$run ./try` |
9221 |
case "$yyy" in |
9222 |
123.456) |
9223 |
sPRIfldbl='"llf"'; sPRIgldbl='"llg"'; sPRIeldbl='"lle"'; |
9224 |
sPRIFUldbl='"llF"'; sPRIGUldbl='"llG"'; sPRIEUldbl='"llE"'; |
9225 |
echo "We will use %llf." |
9226 |
;; |
9227 |
esac |
9228 |
fi |
9229 |
fi |
9230 |
|
9231 |
if $test X"$sPRIfldbl" = X; then |
9232 |
$cat >try.c <<'EOCP' |
9233 |
#include <sys/types.h> |
9234 |
#include <stdio.h> |
9235 |
int main() { |
9236 |
long double d = 123.456; |
9237 |
printf("%.3lf\n", d); |
9238 |
} |
9239 |
EOCP |
9240 |
set try |
9241 |
if eval $compile; then |
9242 |
yyy=`$run ./try` |
9243 |
case "$yyy" in |
9244 |
123.456) |
9245 |
sPRIfldbl='"lf"'; sPRIgldbl='"lg"'; sPRIeldbl='"le"'; |
9246 |
sPRIFUldbl='"lF"'; sPRIGUldbl='"lG"'; sPRIEUldbl='"lE"'; |
9247 |
echo "We will use %lf." |
9248 |
;; |
9249 |
esac |
9250 |
fi |
9251 |
fi |
9252 |
|
9253 |
if $test X"$sPRIfldbl" = X; then |
9254 |
echo "Cannot figure out how to print long doubles." >&4 |
9255 |
else |
9256 |
sSCNfldbl=$sPRIfldbl # expect consistency |
9257 |
fi |
9258 |
|
9259 |
$rm -f try try.* |
9260 |
|
9261 |
fi # d_longdbl |
9262 |
|
9263 |
case "$sPRIfldbl" in |
9264 |
'') d_PRIfldbl="$undef"; d_PRIgldbl="$undef"; d_PRIeldbl="$undef"; |
9265 |
d_PRIFUldbl="$undef"; d_PRIGUldbl="$undef"; d_PRIEUldbl="$undef"; |
9266 |
d_SCNfldbl="$undef"; |
9267 |
;; |
9268 |
*) d_PRIfldbl="$define"; d_PRIgldbl="$define"; d_PRIeldbl="$define"; |
9269 |
d_PRIFUldbl="$define"; d_PRIGUldbl="$define"; d_PRIEUldbl="$define"; |
9270 |
d_SCNfldbl="$define"; |
9271 |
;; |
9272 |
esac |
9273 |
|
9274 |
: Check how to convert floats to strings. |
9275 |
|
9276 |
if test "X$d_Gconvert" = X; then |
9277 |
|
9278 |
echo " " |
9279 |
echo "Checking for an efficient way to convert floats to strings." |
9280 |
echo " " > try.c |
9281 |
case "$uselongdouble" in |
9282 |
"$define") echo "#define USE_LONG_DOUBLE" >>try.c ;; |
9283 |
esac |
9284 |
case "$d_longdbl" in |
9285 |
"$define") echo "#define HAS_LONG_DOUBLE" >>try.c ;; |
9286 |
esac |
9287 |
case "$d_PRIgldbl" in |
9288 |
"$define") echo "#define HAS_PRIgldbl" >>try.c ;; |
9289 |
esac |
9290 |
$cat >>try.c <<EOP |
9291 |
#ifdef TRY_gconvert |
9292 |
#define Gconvert(x,n,t,b) gconvert((x),(n),(t),(b)) |
9293 |
char *myname = "gconvert"; |
9294 |
#endif |
9295 |
#ifdef TRY_gcvt |
9296 |
#define Gconvert(x,n,t,b) gcvt((x),(n),(b)) |
9297 |
char *myname = "gcvt"; |
9298 |
#endif |
9299 |
#ifdef TRY_qgcvt |
9300 |
#define Gconvert(x,n,t,b) qgcvt((x),(n),(b)) |
9301 |
char *myname = "qgcvt"; |
9302 |
#define DOUBLETYPE long double |
9303 |
#endif |
9304 |
#ifdef TRY_sprintf |
9305 |
#if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) |
9306 |
#ifdef HAS_PRIgldbl |
9307 |
#define Gconvert(x,n,t,b) sprintf((b),"%.*"$sPRIgldbl,(n),(x)) |
9308 |
#else |
9309 |
#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(double)(x)) |
9310 |
#endif |
9311 |
#else |
9312 |
#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x)) |
9313 |
#endif |
9314 |
char *myname = "sprintf"; |
9315 |
#endif |
9316 |
|
9317 |
#ifndef DOUBLETYPE |
9318 |
#if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) |
9319 |
#define DOUBLETYPE long double |
9320 |
#else |
9321 |
#define DOUBLETYPE double |
9322 |
#endif |
9323 |
#endif |
9324 |
|
9325 |
#include <stdio.h> |
9326 |
|
9327 |
#define I_STDLIB $i_stdlib |
9328 |
#ifdef I_STDLIB |
9329 |
#include <stdlib.h> |
9330 |
#endif |
9331 |
|
9332 |
int |
9333 |
checkit(expect, got) |
9334 |
char *expect; |
9335 |
char *got; |
9336 |
{ |
9337 |
if (strcmp(expect, got)) { |
9338 |
printf("%s oddity: Expected %s, got %s\n", |
9339 |
myname, expect, got); |
9340 |
exit(1); |
9341 |
} |
9342 |
} |
9343 |
|
9344 |
int main() |
9345 |
{ |
9346 |
char buf[64]; |
9347 |
buf[63] = '\0'; |
9348 |
|
9349 |
/* This must be 1st test on (which?) platform */ |
9350 |
/* Alan Burlison <AlanBurlsin@unn.unisys.com> */ |
9351 |
Gconvert((DOUBLETYPE)0.1, 8, 0, buf); |
9352 |
checkit("0.1", buf); |
9353 |
|
9354 |
Gconvert((DOUBLETYPE)0.01, 8, 0, buf); |
9355 |
checkit("0.01", buf); |
9356 |
|
9357 |
Gconvert((DOUBLETYPE)0.001, 8, 0, buf); |
9358 |
checkit("0.001", buf); |
9359 |
|
9360 |
Gconvert((DOUBLETYPE)0.0001, 8, 0, buf); |
9361 |
checkit("0.0001", buf); |
9362 |
|
9363 |
Gconvert((DOUBLETYPE)0.00009, 8, 0, buf); |
9364 |
if (strlen(buf) > 5) |
9365 |
checkit("9e-005", buf); /* for Microsoft ?? */ |
9366 |
else |
9367 |
checkit("9e-05", buf); |
9368 |
|
9369 |
Gconvert((DOUBLETYPE)1.0, 8, 0, buf); |
9370 |
checkit("1", buf); |
9371 |
|
9372 |
Gconvert((DOUBLETYPE)1.1, 8, 0, buf); |
9373 |
checkit("1.1", buf); |
9374 |
|
9375 |
Gconvert((DOUBLETYPE)1.01, 8, 0, buf); |
9376 |
checkit("1.01", buf); |
9377 |
|
9378 |
Gconvert((DOUBLETYPE)1.001, 8, 0, buf); |
9379 |
checkit("1.001", buf); |
9380 |
|
9381 |
Gconvert((DOUBLETYPE)1.0001, 8, 0, buf); |
9382 |
checkit("1.0001", buf); |
9383 |
|
9384 |
Gconvert((DOUBLETYPE)1.00001, 8, 0, buf); |
9385 |
checkit("1.00001", buf); |
9386 |
|
9387 |
Gconvert((DOUBLETYPE)1.000001, 8, 0, buf); |
9388 |
checkit("1.000001", buf); |
9389 |
|
9390 |
Gconvert((DOUBLETYPE)0.0, 8, 0, buf); |
9391 |
checkit("0", buf); |
9392 |
|
9393 |
Gconvert((DOUBLETYPE)-1.0, 8, 0, buf); |
9394 |
checkit("-1", buf); |
9395 |
|
9396 |
/* Some Linux gcvt's give 1.e+5 here. */ |
9397 |
Gconvert((DOUBLETYPE)100000.0, 8, 0, buf); |
9398 |
checkit("100000", buf); |
9399 |
|
9400 |
/* Some Linux gcvt's give -1.e+5 here. */ |
9401 |
Gconvert((DOUBLETYPE)-100000.0, 8, 0, buf); |
9402 |
checkit("-100000", buf); |
9403 |
|
9404 |
Gconvert((DOUBLETYPE)123.456, 8, 0, buf); |
9405 |
checkit("123.456", buf); |
9406 |
|
9407 |
/* Testing of 1e+129 in bigintpm.t must not get extra '.' here. */ |
9408 |
Gconvert((DOUBLETYPE)1e34, 8, 0, buf); |
9409 |
/* 34 should be enough to scare even long double |
9410 |
* places into using the e notation. */ |
9411 |
if (strlen(buf) > 5) |
9412 |
checkit("1e+034", buf); /* for Microsoft */ |
9413 |
else |
9414 |
checkit("1e+34", buf); |
9415 |
|
9416 |
/* For Perl, if you add additional tests here, also add them to |
9417 |
* t/base/num.t for benefit of platforms not using Configure or |
9418 |
* overriding d_Gconvert */ |
9419 |
|
9420 |
exit(0); |
9421 |
} |
9422 |
EOP |
9423 |
: first add preferred functions to our list |
9424 |
xxx_list="" |
9425 |
for xxx_convert in $gconvert_preference; do |
9426 |
case $xxx_convert in |
9427 |
gcvt|gconvert|sprintf) xxx_list="$xxx_list $xxx_convert" ;; |
9428 |
*) echo "Discarding unrecognized gconvert_preference $xxx_convert" >&4 ;; |
9429 |
esac |
9430 |
done |
9431 |
: then add any others |
9432 |
for xxx_convert in gconvert gcvt sprintf; do |
9433 |
case "$xxx_list" in |
9434 |
*$xxx_convert*) ;; |
9435 |
*) xxx_list="$xxx_list $xxx_convert" ;; |
9436 |
esac |
9437 |
done |
9438 |
|
9439 |
case "$d_longdbl$uselongdouble" in |
9440 |
"$define$define") |
9441 |
: again, add prefered functions to our list first |
9442 |
xxx_ld_list="" |
9443 |
for xxx_convert in $gconvert_ld_preference; do |
9444 |
case $xxx_convert in |
9445 |
qgcvt|gcvt|gconvert|sprintf) xxx_ld_list="$xxx_ld_list $xxx_convert" ;; |
9446 |
*) echo "Discarding unrecognized gconvert_ld_preference $xxx_convert" ;; |
9447 |
esac |
9448 |
done |
9449 |
: then add qgcvt, sprintf--then, in xxx_list order, gconvert and gcvt |
9450 |
for xxx_convert in qgcvt sprintf $xxx_list; do |
9451 |
case "$xxx_ld_list" in |
9452 |
$xxx_convert*|*" $xxx_convert"*) ;; |
9453 |
*) xxx_ld_list="$xxx_ld_list $xxx_convert" ;; |
9454 |
esac |
9455 |
done |
9456 |
: if sprintf cannot do long doubles, move it to the end |
9457 |
if test "$d_PRIgldbl" != "$define"; then |
9458 |
xxx_ld_list="`echo $xxx_ld_list|sed s/sprintf//` sprintf" |
9459 |
fi |
9460 |
: if no qgcvt, remove it |
9461 |
if test "$d_qgcvt" != "$define"; then |
9462 |
xxx_ld_list="`echo $xxx_ld_list|sed s/qgcvt//`" |
9463 |
fi |
9464 |
: use the ld_list |
9465 |
xxx_list="$xxx_ld_list" |
9466 |
;; |
9467 |
esac |
9468 |
|
9469 |
for xxx_convert in $xxx_list; do |
9470 |
echo "Trying $xxx_convert..." |
9471 |
$rm -f try try$_o |
9472 |
set try -DTRY_$xxx_convert |
9473 |
if eval $compile; then |
9474 |
echo "$xxx_convert() found." >&4 |
9475 |
if $run ./try; then |
9476 |
echo "I'll use $xxx_convert to convert floats into a string." >&4 |
9477 |
break; |
9478 |
else |
9479 |
echo "...But $xxx_convert didn't work as I expected." |
9480 |
xxx_convert='' |
9481 |
fi |
9482 |
else |
9483 |
echo "$xxx_convert NOT found." >&4 |
9484 |
fi |
9485 |
done |
9486 |
|
9487 |
if test X$xxx_convert = X; then |
9488 |
echo "*** WHOA THERE!!! ***" >&4 |
9489 |
echo "None of ($xxx_list) seemed to work properly. I'll use sprintf." >&4 |
9490 |
xxx_convert=sprintf |
9491 |
fi |
9492 |
|
9493 |
case "$xxx_convert" in |
9494 |
gconvert) d_Gconvert='gconvert((x),(n),(t),(b))' ;; |
9495 |
gcvt) d_Gconvert='gcvt((x),(n),(b))' ;; |
9496 |
qgcvt) d_Gconvert='qgcvt((x),(n),(b))' ;; |
9497 |
*) case "$uselongdouble$d_longdbl$d_PRIgldbl" in |
9498 |
"$define$define$define") |
9499 |
d_Gconvert="sprintf((b),\"%.*\"$sPRIgldbl,(n),(x))" ;; |
9500 |
"$define$define$undef") |
9501 |
d_Gconvert='sprintf((b),"%.*g",(n),(double)(x))' ;; |
9502 |
*) d_Gconvert='sprintf((b),"%.*g",(n),(x))' ;; |
9503 |
esac |
9504 |
;; |
9505 |
esac |
9506 |
|
9507 |
fi |
9508 |
|
9509 |
: see if _fwalk exists |
9510 |
set fwalk d__fwalk |
9511 |
eval $inlibc |
9512 |
|
9513 |
: Initialize h_fcntl |
9514 |
h_fcntl=false |
9515 |
|
9516 |
: Initialize h_sysfile |
9517 |
h_sysfile=false |
9518 |
|
9519 |
: access call always available on UNIX |
9520 |
set access d_access |
9521 |
eval $inlibc |
9522 |
|
9523 |
: locate the flags for 'access()' |
9524 |
case "$d_access" in |
9525 |
"$define") |
9526 |
echo " " |
9527 |
$cat >access.c <<EOCP |
9528 |
#include <sys/types.h> |
9529 |
#ifdef I_FCNTL |
9530 |
#include <fcntl.h> |
9531 |
#endif |
9532 |
#ifdef I_SYS_FILE |
9533 |
#include <sys/file.h> |
9534 |
#endif |
9535 |
#ifdef I_UNISTD |
9536 |
#include <unistd.h> |
9537 |
#endif |
9538 |
#$i_stdlib I_STDLIB |
9539 |
#ifdef I_STDLIB |
9540 |
#include <stdlib.h> |
9541 |
#endif |
9542 |
int main() { |
9543 |
exit(R_OK); |
9544 |
} |
9545 |
EOCP |
9546 |
: check sys/file.h first, no particular reason here |
9547 |
if $test `./findhdr sys/file.h` && \ |
9548 |
$cc -o access $cppflags -DI_SYS_FILE access.c >/dev/null 2>&1 ; then |
9549 |
h_sysfile=true; |
9550 |
echo "<sys/file.h> defines the *_OK access constants." >&4 |
9551 |
elif $test `./findhdr fcntl.h` && \ |
9552 |
$cc -o access $cppflags -DI_FCNTL access.c >/dev/null 2>&1 ; then |
9553 |
h_fcntl=true; |
9554 |
echo "<fcntl.h> defines the *_OK access constants." >&4 |
9555 |
elif $test `./findhdr unistd.h` && \ |
9556 |
$cc -o access $cppflags -DI_UNISTD access.c >/dev/null 2>&1 ; then |
9557 |
echo "<unistd.h> defines the *_OK access constants." >&4 |
9558 |
else |
9559 |
echo "I can't find the four *_OK access constants--I'll use mine." >&4 |
9560 |
fi |
9561 |
;; |
9562 |
esac |
9563 |
$rm -f access* |
9564 |
|
9565 |
: see if accessx exists |
9566 |
set accessx d_accessx |
9567 |
eval $inlibc |
9568 |
|
9569 |
: see if aintl exists |
9570 |
set aintl d_aintl |
9571 |
eval $inlibc |
9572 |
|
9573 |
: see if alarm exists |
9574 |
set alarm d_alarm |
9575 |
eval $inlibc |
9576 |
|
9577 |
: see if POSIX threads are available |
9578 |
set pthread.h i_pthread |
9579 |
eval $inhdr |
9580 |
|
9581 |
: define a fucntion to check prototypes |
9582 |
$cat > protochk <<EOSH |
9583 |
$startsh |
9584 |
cc="$cc" |
9585 |
optimize="$optimize" |
9586 |
ccflags="$ccflags" |
9587 |
prototype="$prototype" |
9588 |
define="$define" |
9589 |
rm=$rm |
9590 |
usethreads=$usethreads |
9591 |
i_pthread=$i_pthread |
9592 |
pthread_h_first=$pthread_h_first |
9593 |
EOSH |
9594 |
|
9595 |
$cat >> protochk <<'EOSH' |
9596 |
|
9597 |
$rm -f try.c |
9598 |
foo="$1" |
9599 |
shift |
9600 |
while test $# -ge 2; do |
9601 |
case "$1" in |
9602 |
$define) echo "#include <$2>" >> try.c ;; |
9603 |
literal) echo "$2" >> try.c ;; |
9604 |
esac |
9605 |
# Extra magic for the benefit of systems that need pthread.h |
9606 |
# to be included early to correctly detect threadsafe functions. |
9607 |
# Such functions must guarantee themselves, though, that the usethreads |
9608 |
# and i_pthread have been defined, before calling protochk. |
9609 |
if test "$usethreads" = "$define" -a "$i_pthread" = "$define" -a "$pthread_h_first" = "$define" -a "$pthread_h_done" = ""; then |
9610 |
echo "#include <pthread.h>" >> try.c |
9611 |
pthread_h_done=yes |
9612 |
fi |
9613 |
shift 2 |
9614 |
done |
9615 |
test "$prototype" = "$define" && echo '#define CAN_PROTOTYPE' >> try.c |
9616 |
cat >> try.c <<'EOCP' |
9617 |
#ifdef CAN_PROTOTYPE |
9618 |
#define _(args) args |
9619 |
#else |
9620 |
#define _(args) () |
9621 |
#endif |
9622 |
EOCP |
9623 |
echo "$foo" >> try.c |
9624 |
echo 'int no_real_function_has_this_name _((void)) { return 0; }' >> try.c |
9625 |
$cc $optimize $ccflags -c try.c > /dev/null 2>&1 |
9626 |
status=$? |
9627 |
$rm -f try.[co] |
9628 |
exit $status |
9629 |
EOSH |
9630 |
chmod +x protochk |
9631 |
$eunicefix protochk |
9632 |
|
9633 |
hasproto='varname=$1; func=$2; shift; shift; |
9634 |
while $test $# -ge 2; do |
9635 |
case "$1" in |
9636 |
$define) echo "#include <$2>";; |
9637 |
esac ; |
9638 |
shift 2; |
9639 |
done > try.c; |
9640 |
$cppstdin $cppflags $cppminus < try.c > tryout.c 2>/dev/null; |
9641 |
if $contains "$func.*(" tryout.c >/dev/null 2>&1; then |
9642 |
echo "$func() prototype found."; |
9643 |
val="$define"; |
9644 |
else |
9645 |
echo "$func() prototype NOT found."; |
9646 |
val="$undef"; |
9647 |
fi; |
9648 |
set $varname; |
9649 |
eval $setvar; |
9650 |
$rm -f try.c tryout.c' |
9651 |
|
9652 |
: see if sys/types.h has to be included |
9653 |
set sys/types.h i_systypes |
9654 |
eval $inhdr |
9655 |
|
9656 |
: see if sys/select.h has to be included |
9657 |
set sys/select.h i_sysselct |
9658 |
eval $inhdr |
9659 |
|
9660 |
hasfield='varname=$1; struct=$2; field=$3; shift; shift; shift; |
9661 |
while $test $# -ge 2; do |
9662 |
case "$1" in |
9663 |
$define) echo "#include <$2>";; |
9664 |
esac ; |
9665 |
shift 2; |
9666 |
done > try.c; |
9667 |
echo "int main () { struct $struct foo; char* bar; bar = (char*)foo.$field; }" >> try.c; |
9668 |
set try; |
9669 |
if eval $compile; then |
9670 |
val="$define"; |
9671 |
else |
9672 |
val="$undef"; |
9673 |
fi; |
9674 |
set $varname; |
9675 |
eval $setvar; |
9676 |
$rm -f try.c try.o' |
9677 |
|
9678 |
: see if we should include time.h, sys/time.h, or both |
9679 |
echo " " |
9680 |
if test "X$timeincl" = X; then |
9681 |
echo "Testing to see if we should include <time.h>, <sys/time.h> or both." >&4 |
9682 |
$echo $n "I'm now running the test program...$c" |
9683 |
$cat >try.c <<EOCP |
9684 |
#include <sys/types.h> |
9685 |
#ifdef I_TIME |
9686 |
#include <time.h> |
9687 |
#endif |
9688 |
#ifdef I_SYSTIME |
9689 |
#ifdef SYSTIMEKERNEL |
9690 |
#define KERNEL |
9691 |
#endif |
9692 |
#include <sys/time.h> |
9693 |
#endif |
9694 |
#ifdef I_SYSSELECT |
9695 |
#include <sys/select.h> |
9696 |
#endif |
9697 |
#$i_stdlib I_STDLIB |
9698 |
#ifdef I_STDLIB |
9699 |
#include <stdlib.h> |
9700 |
#endif |
9701 |
int main() |
9702 |
{ |
9703 |
struct tm foo; |
9704 |
#ifdef S_TIMEVAL |
9705 |
struct timeval bar; |
9706 |
#endif |
9707 |
#ifdef S_TIMEZONE |
9708 |
struct timezone tzp; |
9709 |
#endif |
9710 |
if (foo.tm_sec == foo.tm_sec) |
9711 |
exit(0); |
9712 |
#ifdef S_TIMEVAL |
9713 |
if (bar.tv_sec == bar.tv_sec) |
9714 |
exit(0); |
9715 |
#endif |
9716 |
exit(1); |
9717 |
} |
9718 |
EOCP |
9719 |
flags='' |
9720 |
for s_timezone in '-DS_TIMEZONE' ''; do |
9721 |
sysselect='' |
9722 |
for s_timeval in '-DS_TIMEVAL' ''; do |
9723 |
for i_systimek in '' '-DSYSTIMEKERNEL'; do |
9724 |
for i_time in '' '-DI_TIME'; do |
9725 |
for i_systime in '-DI_SYSTIME' ''; do |
9726 |
case "$flags" in |
9727 |
'') $echo $n ".$c" |
9728 |
set try $i_time $i_systime $i_systimek $sysselect $s_timeval $s_timezone |
9729 |
if eval $compile; then |
9730 |
set X $i_time $i_systime $i_systimek $sysselect $s_timeval |
9731 |
shift |
9732 |
flags="$*" |
9733 |
echo " " |
9734 |
$echo $n "Succeeded with $flags$c" |
9735 |
fi |
9736 |
;; |
9737 |
esac |
9738 |
done |
9739 |
done |
9740 |
done |
9741 |
done |
9742 |
done |
9743 |
timeincl='' |
9744 |
echo " " |
9745 |
case "$flags" in |
9746 |
*SYSTIMEKERNEL*) i_systimek="$define" |
9747 |
timeincl=`./findhdr sys/time.h` |
9748 |
echo "We'll include <sys/time.h> with KERNEL defined." >&4;; |
9749 |
*) i_systimek="$undef";; |
9750 |
esac |
9751 |
case "$flags" in |
9752 |
*I_TIME*) i_time="$define" |
9753 |
timeincl=`./findhdr time.h`" $timeincl" |
9754 |
echo "We'll include <time.h>." >&4;; |
9755 |
*) i_time="$undef";; |
9756 |
esac |
9757 |
case "$flags" in |
9758 |
*I_SYSTIME*) i_systime="$define" |
9759 |
timeincl=`./findhdr sys/time.h`" $timeincl" |
9760 |
echo "We'll include <sys/time.h>." >&4;; |
9761 |
*) i_systime="$undef";; |
9762 |
esac |
9763 |
$rm -f try.c try |
9764 |
fi |
9765 |
: see if struct tm knows about tm_zone |
9766 |
case "$i_systime$i_time" in |
9767 |
*$define*) |
9768 |
echo " " |
9769 |
echo "Checking to see if your struct tm has tm_zone field..." >&4 |
9770 |
set d_tm_tm_zone tm tm_zone $i_systime sys/time.h $i_time time.h |
9771 |
eval $hasfield |
9772 |
;; |
9773 |
*) val="$undef" |
9774 |
set d_tm_tm_zone |
9775 |
eval $setvar |
9776 |
;; |
9777 |
esac |
9778 |
case "$d_tm_tm_zone" in |
9779 |
"$define") echo "Yes, it does." ;; |
9780 |
*) echo "No, it doesn't." ;; |
9781 |
esac |
9782 |
: see if struct tm knows about tm_gmtoff |
9783 |
case "$i_systime$i_time" in |
9784 |
*$define*) |
9785 |
echo " " |
9786 |
echo "Checking to see if your struct tm has tm_gmtoff field..." >&4 |
9787 |
set d_tm_tm_gmtoff tm tm_gmtoff $i_systime sys/time.h $i_time time.h |
9788 |
eval $hasfield |
9789 |
;; |
9790 |
*) val="$undef" |
9791 |
set d_tm_tm_gmtoff |
9792 |
eval $setvar |
9793 |
;; |
9794 |
esac |
9795 |
case "$d_tm_tm_gmtoff" in |
9796 |
"$define") echo "Yes, it does." ;; |
9797 |
*) echo "No, it doesn't." ;; |
9798 |
esac |
9799 |
|
9800 |
: see if asctime_r exists |
9801 |
set asctime_r d_asctime_r |
9802 |
eval $inlibc |
9803 |
case "$d_asctime_r" in |
9804 |
"$define") |
9805 |
hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h" |
9806 |
case "$d_asctime_r_proto:$usethreads" in |
9807 |
":define") d_asctime_r_proto=define |
9808 |
set d_asctime_r_proto asctime_r $hdrs |
9809 |
eval $hasproto ;; |
9810 |
*) ;; |
9811 |
esac |
9812 |
case "$d_asctime_r_proto" in |
9813 |
define) |
9814 |
case "$asctime_r_proto" in |
9815 |
''|0) try='char* asctime_r(const struct tm*, char*);' |
9816 |
./protochk "extern $try" $hdrs && asctime_r_proto=B_SB ;; |
9817 |
esac |
9818 |
case "$asctime_r_proto" in |
9819 |
''|0) try='char* asctime_r(const struct tm*, char*, int);' |
9820 |
./protochk "extern $try" $hdrs && asctime_r_proto=B_SBI ;; |
9821 |
esac |
9822 |
case "$asctime_r_proto" in |
9823 |
''|0) try='int asctime_r(const struct tm*, char*);' |
9824 |
./protochk "extern $try" $hdrs && asctime_r_proto=I_SB ;; |
9825 |
esac |
9826 |
case "$asctime_r_proto" in |
9827 |
''|0) try='int asctime_r(const struct tm*, char*, int);' |
9828 |
./protochk "extern $try" $hdrs && asctime_r_proto=I_SBI ;; |
9829 |
esac |
9830 |
case "$asctime_r_proto" in |
9831 |
''|0) d_asctime_r=undef |
9832 |
asctime_r_proto=0 |
9833 |
echo "Disabling asctime_r, cannot determine prototype." >&4 ;; |
9834 |
* ) case "$asctime_r_proto" in |
9835 |
REENTRANT_PROTO*) ;; |
9836 |
*) asctime_r_proto="REENTRANT_PROTO_$asctime_r_proto" ;; |
9837 |
esac |
9838 |
echo "Prototype: $try" ;; |
9839 |
esac |
9840 |
;; |
9841 |
*) case "$usethreads" in |
9842 |
define) echo "asctime_r has no prototype, not using it." >&4 ;; |
9843 |
esac |
9844 |
d_asctime_r=undef |
9845 |
asctime_r_proto=0 |
9846 |
;; |
9847 |
esac |
9848 |
;; |
9849 |
*) asctime_r_proto=0 |
9850 |
;; |
9851 |
esac |
9852 |
|
9853 |
: see if atolf exists |
9854 |
set atolf d_atolf |
9855 |
eval $inlibc |
9856 |
|
9857 |
: see if atoll exists |
9858 |
set atoll d_atoll |
9859 |
eval $inlibc |
9860 |
|
9861 |
: Look for GNU-cc style attribute checking |
9862 |
case "$d_attribut" in |
9863 |
'') |
9864 |
echo " " |
9865 |
echo "Checking whether your compiler can handle __attribute__ ..." >&4 |
9866 |
$cat >attrib.c <<'EOCP' |
9867 |
#include <stdio.h> |
9868 |
void croak (char* pat,...) __attribute__((__format__(__printf__,1,2),noreturn)); |
9869 |
EOCP |
9870 |
if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then |
9871 |
if $contains 'warning' attrib.out >/dev/null 2>&1; then |
9872 |
echo "Your C compiler doesn't fully support __attribute__." |
9873 |
val="$undef" |
9874 |
else |
9875 |
echo "Your C compiler supports __attribute__." |
9876 |
val="$define" |
9877 |
fi |
9878 |
else |
9879 |
echo "Your C compiler doesn't seem to understand __attribute__ at all." |
9880 |
val="$undef" |
9881 |
fi |
9882 |
;; |
9883 |
*) val="$d_attribut" ;; |
9884 |
esac |
9885 |
set d_attribut |
9886 |
eval $setvar |
9887 |
$rm -f attrib* |
9888 |
|
9889 |
: see if bcmp exists |
9890 |
set bcmp d_bcmp |
9891 |
eval $inlibc |
9892 |
|
9893 |
: see if bcopy exists |
9894 |
set bcopy d_bcopy |
9895 |
eval $inlibc |
9896 |
|
9897 |
: see if this is a unistd.h system |
9898 |
set unistd.h i_unistd |
9899 |
eval $inhdr |
9900 |
|
9901 |
: see if getpgrp exists |
9902 |
set getpgrp d_getpgrp |
9903 |
eval $inlibc |
9904 |
|
9905 |
case "$d_getpgrp" in |
9906 |
"$define") |
9907 |
echo " " |
9908 |
echo "Checking to see which flavor of getpgrp is in use..." |
9909 |
$cat >try.c <<EOP |
9910 |
#$i_unistd I_UNISTD |
9911 |
#include <sys/types.h> |
9912 |
#ifdef I_UNISTD |
9913 |
# include <unistd.h> |
9914 |
#endif |
9915 |
#$i_stdlib I_STDLIB |
9916 |
#ifdef I_STDLIB |
9917 |
#include <stdlib.h> |
9918 |
#endif |
9919 |
int main() |
9920 |
{ |
9921 |
if (getuid() == 0) { |
9922 |
printf("(I see you are running Configure as super-user...)\n"); |
9923 |
setuid(1); |
9924 |
} |
9925 |
#ifdef TRY_BSD_PGRP |
9926 |
if (getpgrp(1) == 0) |
9927 |
exit(0); |
9928 |
#else |
9929 |
if (getpgrp() > 0) |
9930 |
exit(0); |
9931 |
#endif |
9932 |
exit(1); |
9933 |
} |
9934 |
EOP |
9935 |
if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then |
9936 |
echo "You have to use getpgrp(pid) instead of getpgrp()." >&4 |
9937 |
val="$define" |
9938 |
elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then |
9939 |
echo "You have to use getpgrp() instead of getpgrp(pid)." >&4 |
9940 |
val="$undef" |
9941 |
else |
9942 |
echo "I can't seem to compile and run the test program." |
9943 |
if ./usg; then |
9944 |
xxx="a USG one, i.e. you use getpgrp()." |
9945 |
else |
9946 |
# SVR4 systems can appear rather BSD-ish. |
9947 |
case "$i_unistd" in |
9948 |
$undef) |
9949 |
xxx="a BSD one, i.e. you use getpgrp(pid)." |
9950 |
val="$define" |
9951 |
;; |
9952 |
$define) |
9953 |
xxx="probably a USG one, i.e. you use getpgrp()." |
9954 |
val="$undef" |
9955 |
;; |
9956 |
esac |
9957 |
fi |
9958 |
echo "Assuming your getpgrp is $xxx" >&4 |
9959 |
fi |
9960 |
;; |
9961 |
*) val="$undef";; |
9962 |
esac |
9963 |
set d_bsdgetpgrp |
9964 |
eval $setvar |
9965 |
$rm -f try try.* |
9966 |
|
9967 |
: see if setpgrp exists |
9968 |
set setpgrp d_setpgrp |
9969 |
eval $inlibc |
9970 |
|
9971 |
case "$d_setpgrp" in |
9972 |
"$define") |
9973 |
echo " " |
9974 |
echo "Checking to see which flavor of setpgrp is in use..." |
9975 |
$cat >try.c <<EOP |
9976 |
#$i_unistd I_UNISTD |
9977 |
#include <sys/types.h> |
9978 |
#ifdef I_UNISTD |
9979 |
# include <unistd.h> |
9980 |
#endif |
9981 |
#$i_stdlib I_STDLIB |
9982 |
#ifdef I_STDLIB |
9983 |
#include <stdlib.h> |
9984 |
#endif |
9985 |
int main() |
9986 |
{ |
9987 |
if (getuid() == 0) { |
9988 |
printf("(I see you are running Configure as super-user...)\n"); |
9989 |
setuid(1); |
9990 |
} |
9991 |
#ifdef TRY_BSD_PGRP |
9992 |
if (-1 == setpgrp(1, 1)) |
9993 |
exit(0); |
9994 |
#else |
9995 |
if (setpgrp() != -1) |
9996 |
exit(0); |
9997 |
#endif |
9998 |
exit(1); |
9999 |
} |
10000 |
EOP |
10001 |
if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then |
10002 |
echo 'You have to use setpgrp(pid,pgrp) instead of setpgrp().' >&4 |
10003 |
val="$define" |
10004 |
elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then |
10005 |
echo 'You have to use setpgrp() instead of setpgrp(pid,pgrp).' >&4 |
10006 |
val="$undef" |
10007 |
else |
10008 |
echo "(I can't seem to compile and run the test program.)" |
10009 |
if ./usg; then |
10010 |
xxx="a USG one, i.e. you use setpgrp()." |
10011 |
else |
10012 |
# SVR4 systems can appear rather BSD-ish. |
10013 |
case "$i_unistd" in |
10014 |
$undef) |
10015 |
xxx="a BSD one, i.e. you use setpgrp(pid,pgrp)." |
10016 |
val="$define" |
10017 |
;; |
10018 |
$define) |
10019 |
xxx="probably a USG one, i.e. you use setpgrp()." |
10020 |
val="$undef" |
10021 |
;; |
10022 |
esac |
10023 |
fi |
10024 |
echo "Assuming your setpgrp is $xxx" >&4 |
10025 |
fi |
10026 |
;; |
10027 |
*) val="$undef";; |
10028 |
esac |
10029 |
set d_bsdsetpgrp |
10030 |
eval $setvar |
10031 |
$rm -f try try.* |
10032 |
: see if bzero exists |
10033 |
set bzero d_bzero |
10034 |
eval $inlibc |
10035 |
|
10036 |
: see if signal is declared as pointer to function returning int or void |
10037 |
echo " " |
10038 |
xxx=`./findhdr signal.h` |
10039 |
$test "$xxx" && $cppstdin $cppminus $cppflags < $xxx >$$.tmp 2>/dev/null |
10040 |
if $contains 'int.*\*[ ]*signal' $$.tmp >/dev/null 2>&1 ; then |
10041 |
echo "You have int (*signal())() instead of void." >&4 |
10042 |
val="$undef" |
10043 |
elif $contains 'void.*\*[ ]*signal' $$.tmp >/dev/null 2>&1 ; then |
10044 |
echo "You have void (*signal())()." >&4 |
10045 |
val="$define" |
10046 |
elif $contains 'extern[ ]*[(\*]*signal' $$.tmp >/dev/null 2>&1 ; then |
10047 |
echo "You have int (*signal())() instead of void." >&4 |
10048 |
val="$undef" |
10049 |
elif $contains 'void.*\*.*sig' $$.tmp >/dev/null 2>&1 ; then |
10050 |
echo "You have void (*signal())()." >&4 |
10051 |
val="$define" |
10052 |
else |
10053 |
case "$d_voidsig" in |
10054 |
'') |
10055 |
echo "I can't determine whether signal handler returns void or int..." >&4 |
10056 |
dflt=void |
10057 |
rp="What type does your signal handler return?" |
10058 |
. ./myread |
10059 |
case "$ans" in |
10060 |
v*) val="$define";; |
10061 |
*) val="$undef";; |
10062 |
esac;; |
10063 |
"$define") |
10064 |
echo "As you already told me, signal handler returns void." >&4 |
10065 |
val="$define" |
10066 |
;; |
10067 |
*) echo "As you already told me, signal handler returns int." >&4 |
10068 |
val="$undef" |
10069 |
;; |
10070 |
esac |
10071 |
fi |
10072 |
set d_voidsig |
10073 |
eval $setvar |
10074 |
case "$d_voidsig" in |
10075 |
"$define") signal_t="void";; |
10076 |
*) signal_t="int";; |
10077 |
esac |
10078 |
$rm -f $$.tmp |
10079 |
|
10080 |
: check for ability to cast large floats to 32-bit ints. |
10081 |
echo " " |
10082 |
echo 'Checking whether your C compiler can cast large floats to int32.' >&4 |
10083 |
if $test "$intsize" -ge 4; then |
10084 |
xxx=int |
10085 |
else |
10086 |
xxx=long |
10087 |
fi |
10088 |
$cat >try.c <<EOCP |
10089 |
#include <stdio.h> |
10090 |
#$i_stdlib I_STDLIB |
10091 |
#ifdef I_STDLIB |
10092 |
#include <stdlib.h> |
10093 |
#endif |
10094 |
#include <sys/types.h> |
10095 |
#include <signal.h> |
10096 |
$signal_t blech(s) int s; { exit(3); } |
10097 |
int main() |
10098 |
{ |
10099 |
$xxx i32; |
10100 |
double f, g; |
10101 |
int result = 0; |
10102 |
char str[16]; |
10103 |
signal(SIGFPE, blech); |
10104 |
|
10105 |
/* Don't let compiler optimize the test away. Store the number |
10106 |
in a writable string for gcc to pass to sscanf under HP/UX. |
10107 |
*/ |
10108 |
sprintf(str, "2147483647"); |
10109 |
sscanf(str, "%lf", &f); /* f = (double) 0x7fffffff; */ |
10110 |
g = 10 * f; |
10111 |
i32 = ($xxx) g; |
10112 |
|
10113 |
/* x86 processors will probably give 0x8000 0000, which is a |
10114 |
sign change. We don't want that. We want to mimic SPARC |
10115 |
behavior here, which is to preserve the sign and give |
10116 |
back 0x7fff ffff. |
10117 |
*/ |
10118 |
if (i32 != ($xxx) f) |
10119 |
result |= 1; |
10120 |
exit(result); |
10121 |
} |
10122 |
EOCP |
10123 |
set try |
10124 |
if eval $compile_ok; then |
10125 |
$run ./try |
10126 |
yyy=$? |
10127 |
else |
10128 |
echo "(I can't seem to compile the test program--assuming it can't)" |
10129 |
yyy=1 |
10130 |
fi |
10131 |
case "$yyy" in |
10132 |
0) val="$define" |
10133 |
echo "Yup, it can." |
10134 |
;; |
10135 |
*) val="$undef" |
10136 |
echo "Nope, it can't." |
10137 |
;; |
10138 |
esac |
10139 |
set d_casti32 |
10140 |
eval $setvar |
10141 |
$rm -f try try.* |
10142 |
|
10143 |
: check for ability to cast negative floats to unsigned |
10144 |
echo " " |
10145 |
echo 'Checking whether your C compiler can cast negative float to unsigned.' >&4 |
10146 |
$cat >try.c <<EOCP |
10147 |
#include <stdio.h> |
10148 |
#$i_stdlib I_STDLIB |
10149 |
#ifdef I_STDLIB |
10150 |
#include <stdlib.h> |
10151 |
#endif |
10152 |
#include <sys/types.h> |
10153 |
#include <signal.h> |
10154 |
$signal_t blech(s) int s; { exit(7); } |
10155 |
$signal_t blech_in_list(s) int s; { exit(4); } |
10156 |
unsigned long dummy_long(p) unsigned long p; { return p; } |
10157 |
unsigned int dummy_int(p) unsigned int p; { return p; } |
10158 |
unsigned short dummy_short(p) unsigned short p; { return p; } |
10159 |
int main() |
10160 |
{ |
10161 |
double f; |
10162 |
unsigned long along; |
10163 |
unsigned int aint; |
10164 |
unsigned short ashort; |
10165 |
int result = 0; |
10166 |
char str[16]; |
10167 |
|
10168 |
/* Frustrate gcc-2.7.2's optimizer which failed this test with |
10169 |
a direct f = -123. assignment. gcc-2.8.0 reportedly |
10170 |
optimized the whole file away |
10171 |
*/ |
10172 |
/* Store the number in a writable string for gcc to pass to |
10173 |
sscanf under HP/UX. |
10174 |
*/ |
10175 |
sprintf(str, "-123"); |
10176 |
sscanf(str, "%lf", &f); /* f = -123.; */ |
10177 |
|
10178 |
signal(SIGFPE, blech); |
10179 |
along = (unsigned long)f; |
10180 |
aint = (unsigned int)f; |
10181 |
ashort = (unsigned short)f; |
10182 |
if (along != (unsigned long)-123) |
10183 |
result |= 1; |
10184 |
if (aint != (unsigned int)-123) |
10185 |
result |= 1; |
10186 |
if (ashort != (unsigned short)-123) |
10187 |
result |= 1; |
10188 |
sprintf(str, "1073741824."); |
10189 |
sscanf(str, "%lf", &f); /* f = (double)0x40000000; */ |
10190 |
f = f + f; |
10191 |
along = 0; |
10192 |
along = (unsigned long)f; |
10193 |
if (along != 0x80000000) |
10194 |
result |= 2; |
10195 |
f -= 1.; |
10196 |
along = 0; |
10197 |
along = (unsigned long)f; |
10198 |
if (along != 0x7fffffff) |
10199 |
result |= 1; |
10200 |
f += 2.; |
10201 |
along = 0; |
10202 |
along = (unsigned long)f; |
10203 |
if (along != 0x80000001) |
10204 |
result |= 2; |
10205 |
if (result) |
10206 |
exit(result); |
10207 |
signal(SIGFPE, blech_in_list); |
10208 |
sprintf(str, "123."); |
10209 |
sscanf(str, "%lf", &f); /* f = 123.; */ |
10210 |
along = dummy_long((unsigned long)f); |
10211 |
aint = dummy_int((unsigned int)f); |
10212 |
ashort = dummy_short((unsigned short)f); |
10213 |
if (along != (unsigned long)123) |
10214 |
result |= 4; |
10215 |
if (aint != (unsigned int)123) |
10216 |
result |= 4; |
10217 |
if (ashort != (unsigned short)123) |
10218 |
result |= 4; |
10219 |
exit(result); |
10220 |
|
10221 |
} |
10222 |
EOCP |
10223 |
set try |
10224 |
if eval $compile_ok; then |
10225 |
$run ./try |
10226 |
castflags=$? |
10227 |
else |
10228 |
echo "(I can't seem to compile the test program--assuming it can't)" |
10229 |
castflags=7 |
10230 |
fi |
10231 |
case "$castflags" in |
10232 |
0) val="$define" |
10233 |
echo "Yup, it can." |
10234 |
;; |
10235 |
*) val="$undef" |
10236 |
echo "Nope, it can't." |
10237 |
;; |
10238 |
esac |
10239 |
set d_castneg |
10240 |
eval $setvar |
10241 |
$rm -f try.* |
10242 |
|
10243 |
: see if vprintf exists |
10244 |
echo " " |
10245 |
if set vprintf val -f d_vprintf; eval $csym; $val; then |
10246 |
echo 'vprintf() found.' >&4 |
10247 |
val="$define" |
10248 |
$cat >try.c <<EOF |
10249 |
#include <varargs.h> |
10250 |
#$i_stdlib I_STDLIB |
10251 |
#ifdef I_STDLIB |
10252 |
#include <stdlib.h> |
10253 |
#endif |
10254 |
|
10255 |
int main() { xxx("foo"); } |
10256 |
|
10257 |
xxx(va_alist) |
10258 |
va_dcl |
10259 |
{ |
10260 |
va_list args; |
10261 |
char buf[10]; |
10262 |
|
10263 |
va_start(args); |
10264 |
exit((unsigned long)vsprintf(buf,"%s",args) > 10L); |
10265 |
} |
10266 |
EOF |
10267 |
set try |
10268 |
if eval $compile && $run ./try; then |
10269 |
echo "Your vsprintf() returns (int)." >&4 |
10270 |
val2="$undef" |
10271 |
else |
10272 |
echo "Your vsprintf() returns (char*)." >&4 |
10273 |
val2="$define" |
10274 |
fi |
10275 |
else |
10276 |
echo 'vprintf() NOT found.' >&4 |
10277 |
val="$undef" |
10278 |
val2="$undef" |
10279 |
fi |
10280 |
$rm -f try try.* |
10281 |
set d_vprintf |
10282 |
eval $setvar |
10283 |
val=$val2 |
10284 |
set d_charvspr |
10285 |
eval $setvar |
10286 |
|
10287 |
: see if chown exists |
10288 |
set chown d_chown |
10289 |
eval $inlibc |
10290 |
|
10291 |
: see if chroot exists |
10292 |
set chroot d_chroot |
10293 |
eval $inlibc |
10294 |
|
10295 |
: see if chsize exists |
10296 |
set chsize d_chsize |
10297 |
eval $inlibc |
10298 |
|
10299 |
: see if class exists |
10300 |
set class d_class |
10301 |
eval $inlibc |
10302 |
|
10303 |
hasstruct='varname=$1; struct=$2; shift; shift; |
10304 |
while $test $# -ge 2; do |
10305 |
case "$1" in |
10306 |
$define) echo "#include <$2>";; |
10307 |
esac ; |
10308 |
shift 2; |
10309 |
done > try.c; |
10310 |
echo "int main () { struct $struct foo; }" >> try.c; |
10311 |
set try; |
10312 |
if eval $compile; then |
10313 |
val="$define"; |
10314 |
else |
10315 |
val="$undef"; |
10316 |
fi; |
10317 |
set $varname; |
10318 |
eval $setvar; |
10319 |
$rm -f try.c try.o' |
10320 |
|
10321 |
socketlib='' |
10322 |
sockethdr='' |
10323 |
: see whether socket exists |
10324 |
echo " " |
10325 |
$echo $n "Hmm... $c" >&4 |
10326 |
if set socket val -f d_socket; eval $csym; $val; then |
10327 |
echo "Looks like you have Berkeley networking support." >&4 |
10328 |
d_socket="$define" |
10329 |
if set setsockopt val -f; eval $csym; $val; then |
10330 |
d_oldsock="$undef" |
10331 |
else |
10332 |
echo "...but it uses the old BSD 4.1c interface, rather than 4.2." >&4 |
10333 |
d_oldsock="$define" |
10334 |
fi |
10335 |
else |
10336 |
if $contains socklib libc.list >/dev/null 2>&1; then |
10337 |
echo "Looks like you have Berkeley networking support." >&4 |
10338 |
d_socket="$define" |
10339 |
: we will have to assume that it supports the 4.2 BSD interface |
10340 |
d_oldsock="$undef" |
10341 |
else |
10342 |
echo "You don't have Berkeley networking in libc$_a..." >&4 |
10343 |
if test "X$d_socket" = "X$define"; then |
10344 |
echo "...but you seem to believe that you have sockets." >&4 |
10345 |
else |
10346 |
for net in net socket |
10347 |
do |
10348 |
if test -f /usr/lib/lib$net$_a; then |
10349 |
( ($nm $nm_opt /usr/lib/lib$net$_a | eval $nm_extract) || \ |
10350 |
$ar t /usr/lib/lib$net$_a) 2>/dev/null >> libc.list |
10351 |
if $contains socket libc.list >/dev/null 2>&1; then |
10352 |
d_socket="$define" |
10353 |
socketlib="-l$net" |
10354 |
case "$net" in |
10355 |
net) |
10356 |
echo "...but the Wollongong group seems to have hacked it in." >&4 |
10357 |
sockethdr="-I/usr/netinclude" |
10358 |
;; |
10359 |
esac |
10360 |
echo "Found Berkeley sockets interface in lib$net." >&4 |
10361 |
if $contains setsockopt libc.list >/dev/null 2>&1; then |
10362 |
d_oldsock="$undef" |
10363 |
else |
10364 |
echo "...using the old BSD 4.1c interface, rather than 4.2." >&4 |
10365 |
d_oldsock="$define" |
10366 |
fi |
10367 |
break |
10368 |
fi |
10369 |
fi |
10370 |
done |
10371 |
if test "X$d_socket" != "X$define"; then |
10372 |
echo "or anywhere else I see." >&4 |
10373 |
d_socket="$undef" |
10374 |
d_oldsock="$undef" |
10375 |
fi |
10376 |
fi |
10377 |
fi |
10378 |
fi |
10379 |
|
10380 |
: see if socketpair exists |
10381 |
set socketpair d_sockpair |
10382 |
eval $inlibc |
10383 |
|
10384 |
|
10385 |
echo " " |
10386 |
echo "Checking the availability of certain socket constants..." >&4 |
10387 |
for ENUM in MSG_CTRUNC MSG_DONTROUTE MSG_OOB MSG_PEEK MSG_PROXY SCM_RIGHTS; do |
10388 |
enum=`$echo $ENUM|./tr '[A-Z]' '[a-z]'` |
10389 |
$cat >try.c <<EOF |
10390 |
#include <sys/types.h> |
10391 |
#include <sys/socket.h> |
10392 |
int main() { |
10393 |
int i = $ENUM; |
10394 |
} |
10395 |
EOF |
10396 |
val="$undef" |
10397 |
set try; if eval $compile; then |
10398 |
val="$define" |
10399 |
fi |
10400 |
set d_${enum}; eval $setvar |
10401 |
$rm -f try.c try |
10402 |
done |
10403 |
|
10404 |
: see if this is a sys/uio.h system |
10405 |
set sys/uio.h i_sysuio |
10406 |
eval $inhdr |
10407 |
|
10408 |
|
10409 |
echo " " |
10410 |
echo "Checking to see if your system supports struct cmsghdr..." >&4 |
10411 |
set d_cmsghdr_s cmsghdr $i_systypes sys/types.h $d_socket sys/socket.h $i_sysuio sys/uio.h |
10412 |
eval $hasstruct |
10413 |
case "$d_cmsghdr_s" in |
10414 |
"$define") echo "Yes, it does." ;; |
10415 |
*) echo "No, it doesn't." ;; |
10416 |
esac |
10417 |
|
10418 |
|
10419 |
: check for const keyword |
10420 |
echo " " |
10421 |
echo 'Checking to see if your C compiler knows about "const"...' >&4 |
10422 |
$cat >const.c <<'EOCP' |
10423 |
typedef struct spug { int drokk; } spug; |
10424 |
int main() |
10425 |
{ |
10426 |
const char *foo; |
10427 |
const spug y; |
10428 |
} |
10429 |
EOCP |
10430 |
if $cc -c $ccflags const.c >/dev/null 2>&1 ; then |
10431 |
val="$define" |
10432 |
echo "Yup, it does." |
10433 |
else |
10434 |
val="$undef" |
10435 |
echo "Nope, it doesn't." |
10436 |
fi |
10437 |
set d_const |
10438 |
eval $setvar |
10439 |
|
10440 |
: see if copysignl exists |
10441 |
set copysignl d_copysignl |
10442 |
eval $inlibc |
10443 |
|
10444 |
: see if crypt exists |
10445 |
echo " " |
10446 |
set crypt d_crypt |
10447 |
eval $inlibc |
10448 |
case "$d_crypt" in |
10449 |
$define) cryptlib='' ;; |
10450 |
*) if set crypt val -f d_crypt; eval $csym; $val; then |
10451 |
echo 'crypt() found.' >&4 |
10452 |
val="$define" |
10453 |
cryptlib='' |
10454 |
else |
10455 |
cryptlib=`./loc Slibcrypt$_a "" $xlibpth` |
10456 |
if $test -z "$cryptlib"; then |
10457 |
cryptlib=`./loc Mlibcrypt$_a "" $xlibpth` |
10458 |
else |
10459 |
cryptlib=-lcrypt |
10460 |
fi |
10461 |
if $test -z "$cryptlib"; then |
10462 |
cryptlib=`./loc Llibcrypt$_a "" $xlibpth` |
10463 |
else |
10464 |
cryptlib=-lcrypt |
10465 |
fi |
10466 |
if $test -z "$cryptlib"; then |
10467 |
cryptlib=`./loc libcrypt$_a "" $libpth` |
10468 |
else |
10469 |
cryptlib=-lcrypt |
10470 |
fi |
10471 |
if $test -z "$cryptlib"; then |
10472 |
echo 'crypt() NOT found.' >&4 |
10473 |
val="$undef" |
10474 |
else |
10475 |
val="$define" |
10476 |
fi |
10477 |
fi |
10478 |
set d_crypt |
10479 |
eval $setvar |
10480 |
;; |
10481 |
esac |
10482 |
|
10483 |
: see if this is a crypt.h system |
10484 |
set crypt.h i_crypt |
10485 |
eval $inhdr |
10486 |
|
10487 |
: see if crypt_r exists |
10488 |
set crypt_r d_crypt_r |
10489 |
eval $inlibc |
10490 |
case "$d_crypt_r" in |
10491 |
"$define") |
10492 |
hdrs="$i_systypes sys/types.h define stdio.h $i_crypt crypt.h" |
10493 |
case "$d_crypt_r_proto:$usethreads" in |
10494 |
":define") d_crypt_r_proto=define |
10495 |
set d_crypt_r_proto crypt_r $hdrs |
10496 |
eval $hasproto ;; |
10497 |
*) ;; |
10498 |
esac |
10499 |
case "$d_crypt_r_proto" in |
10500 |
define) |
10501 |
case "$crypt_r_proto" in |
10502 |
''|0) try='char* crypt_r(const char*, const char*, struct crypt_data*);' |
10503 |
./protochk "extern $try" $hdrs && crypt_r_proto=B_CCS ;; |
10504 |
esac |
10505 |
case "$crypt_r_proto" in |
10506 |
''|0) try='char* crypt_r(const char*, const char*, CRYPTD*);' |
10507 |
./protochk "extern $try" $hdrs && crypt_r_proto=B_CCD ;; |
10508 |
esac |
10509 |
case "$crypt_r_proto" in |
10510 |
''|0) d_crypt_r=undef |
10511 |
crypt_r_proto=0 |
10512 |
echo "Disabling crypt_r, cannot determine prototype." >&4 ;; |
10513 |
* ) case "$crypt_r_proto" in |
10514 |
REENTRANT_PROTO*) ;; |
10515 |
*) crypt_r_proto="REENTRANT_PROTO_$crypt_r_proto" ;; |
10516 |
esac |
10517 |
echo "Prototype: $try" ;; |
10518 |
esac |
10519 |
;; |
10520 |
*) case "$usethreads" in |
10521 |
define) echo "crypt_r has no prototype, not using it." >&4 ;; |
10522 |
esac |
10523 |
d_crypt_r=undef |
10524 |
crypt_r_proto=0 |
10525 |
;; |
10526 |
esac |
10527 |
;; |
10528 |
*) crypt_r_proto=0 |
10529 |
;; |
10530 |
esac |
10531 |
|
10532 |
: get csh whereabouts |
10533 |
case "$csh" in |
10534 |
'csh') val="$undef" ;; |
10535 |
*) val="$define" ;; |
10536 |
esac |
10537 |
set d_csh |
10538 |
eval $setvar |
10539 |
: Respect a hint or command line value for full_csh. |
10540 |
case "$full_csh" in |
10541 |
'') full_csh=$csh ;; |
10542 |
esac |
10543 |
|
10544 |
: see if ctermid_r exists |
10545 |
set ctermid_r d_ctermid_r |
10546 |
eval $inlibc |
10547 |
case "$d_ctermid_r" in |
10548 |
"$define") |
10549 |
hdrs="$i_systypes sys/types.h define stdio.h " |
10550 |
case "$d_ctermid_r_proto:$usethreads" in |
10551 |
":define") d_ctermid_r_proto=define |
10552 |
set d_ctermid_r_proto ctermid_r $hdrs |
10553 |
eval $hasproto ;; |
10554 |
*) ;; |
10555 |
esac |
10556 |
case "$d_ctermid_r_proto" in |
10557 |
define) |
10558 |
case "$ctermid_r_proto" in |
10559 |
''|0) try='char* ctermid_r(char*);' |
10560 |
./protochk "extern $try" $hdrs && ctermid_r_proto=B_B ;; |
10561 |
esac |
10562 |
case "$ctermid_r_proto" in |
10563 |
''|0) d_ctermid_r=undef |
10564 |
ctermid_r_proto=0 |
10565 |
echo "Disabling ctermid_r, cannot determine prototype." >&4 ;; |
10566 |
* ) case "$ctermid_r_proto" in |
10567 |
REENTRANT_PROTO*) ;; |
10568 |
*) ctermid_r_proto="REENTRANT_PROTO_$ctermid_r_proto" ;; |
10569 |
esac |
10570 |
echo "Prototype: $try" ;; |
10571 |
esac |
10572 |
;; |
10573 |
*) case "$usethreads" in |
10574 |
define) echo "ctermid_r has no prototype, not using it." >&4 ;; |
10575 |
esac |
10576 |
d_ctermid_r=undef |
10577 |
ctermid_r_proto=0 |
10578 |
;; |
10579 |
esac |
10580 |
;; |
10581 |
*) ctermid_r_proto=0 |
10582 |
;; |
10583 |
esac |
10584 |
|
10585 |
: see if ctime_r exists |
10586 |
set ctime_r d_ctime_r |
10587 |
eval $inlibc |
10588 |
case "$d_ctime_r" in |
10589 |
"$define") |
10590 |
hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h" |
10591 |
case "$d_ctime_r_proto:$usethreads" in |
10592 |
":define") d_ctime_r_proto=define |
10593 |
set d_ctime_r_proto ctime_r $hdrs |
10594 |
eval $hasproto ;; |
10595 |
*) ;; |
10596 |
esac |
10597 |
case "$d_ctime_r_proto" in |
10598 |
define) |
10599 |
case "$ctime_r_proto" in |
10600 |
''|0) try='char* ctime_r(const time_t*, char*);' |
10601 |
./protochk "extern $try" $hdrs && ctime_r_proto=B_SB ;; |
10602 |
esac |
10603 |
case "$ctime_r_proto" in |
10604 |
''|0) try='char* ctime_r(const time_t*, char*, int);' |
10605 |
./protochk "extern $try" $hdrs && ctime_r_proto=B_SBI ;; |
10606 |
esac |
10607 |
case "$ctime_r_proto" in |
10608 |
''|0) try='int ctime_r(const time_t*, char*);' |
10609 |
./protochk "extern $try" $hdrs && ctime_r_proto=I_SB ;; |
10610 |
esac |
10611 |
case "$ctime_r_proto" in |
10612 |
''|0) try='int ctime_r(const time_t*, char*, int);' |
10613 |
./protochk "extern $try" $hdrs && ctime_r_proto=I_SBI ;; |
10614 |
esac |
10615 |
case "$ctime_r_proto" in |
10616 |
''|0) d_ctime_r=undef |
10617 |
ctime_r_proto=0 |
10618 |
echo "Disabling ctime_r, cannot determine prototype." >&4 ;; |
10619 |
* ) case "$ctime_r_proto" in |
10620 |
REENTRANT_PROTO*) ;; |
10621 |
*) ctime_r_proto="REENTRANT_PROTO_$ctime_r_proto" ;; |
10622 |
esac |
10623 |
echo "Prototype: $try" ;; |
10624 |
esac |
10625 |
;; |
10626 |
*) case "$usethreads" in |
10627 |
define) echo "ctime_r has no prototype, not using it." >&4 ;; |
10628 |
esac |
10629 |
d_ctime_r=undef |
10630 |
ctime_r_proto=0 |
10631 |
;; |
10632 |
esac |
10633 |
;; |
10634 |
*) ctime_r_proto=0 |
10635 |
;; |
10636 |
esac |
10637 |
|
10638 |
: see if cuserid exists |
10639 |
set cuserid d_cuserid |
10640 |
eval $inlibc |
10641 |
|
10642 |
: see if this is a limits.h system |
10643 |
set limits.h i_limits |
10644 |
eval $inhdr |
10645 |
|
10646 |
: see if this is a float.h system |
10647 |
set float.h i_float |
10648 |
eval $inhdr |
10649 |
|
10650 |
: See if number of significant digits in a double precision number is known |
10651 |
echo " " |
10652 |
$cat >dbl_dig.c <<EOM |
10653 |
#$i_limits I_LIMITS |
10654 |
#$i_float I_FLOAT |
10655 |
#ifdef I_LIMITS |
10656 |
#include <limits.h> |
10657 |
#endif |
10658 |
#ifdef I_FLOAT |
10659 |
#include <float.h> |
10660 |
#endif |
10661 |
#ifdef DBL_DIG |
10662 |
printf("Contains DBL_DIG"); |
10663 |
#endif |
10664 |
EOM |
10665 |
$cppstdin $cppflags $cppminus < dbl_dig.c >dbl_dig.E 2>/dev/null |
10666 |
if $contains 'DBL_DIG' dbl_dig.E >/dev/null 2>&1; then |
10667 |
echo "DBL_DIG found." >&4 |
10668 |
val="$define" |
10669 |
else |
10670 |
echo "DBL_DIG NOT found." >&4 |
10671 |
val="$undef" |
10672 |
fi |
10673 |
$rm -f dbl_dig.? |
10674 |
set d_dbl_dig |
10675 |
eval $setvar |
10676 |
|
10677 |
: see if dbm.h is available |
10678 |
: see if dbmclose exists |
10679 |
set dbmclose d_dbmclose |
10680 |
eval $inlibc |
10681 |
|
10682 |
case "$d_dbmclose" in |
10683 |
$define) |
10684 |
set dbm.h i_dbm |
10685 |
eval $inhdr |
10686 |
case "$i_dbm" in |
10687 |
$define) |
10688 |
val="$undef" |
10689 |
set i_rpcsvcdbm |
10690 |
eval $setvar |
10691 |
;; |
10692 |
*) set rpcsvc/dbm.h i_rpcsvcdbm |
10693 |
eval $inhdr |
10694 |
;; |
10695 |
esac |
10696 |
;; |
10697 |
*) echo "We won't be including <dbm.h>" |
10698 |
val="$undef" |
10699 |
set i_dbm |
10700 |
eval $setvar |
10701 |
val="$undef" |
10702 |
set i_rpcsvcdbm |
10703 |
eval $setvar |
10704 |
;; |
10705 |
esac |
10706 |
|
10707 |
: see if prototype for dbminit is available |
10708 |
echo " " |
10709 |
set d_dbminitproto dbminit $i_dbm dbm.h |
10710 |
eval $hasproto |
10711 |
|
10712 |
: see if difftime exists |
10713 |
set difftime d_difftime |
10714 |
eval $inlibc |
10715 |
|
10716 |
: see if this is a dirent system |
10717 |
echo " " |
10718 |
if xinc=`./findhdr dirent.h`; $test "$xinc"; then |
10719 |
val="$define" |
10720 |
echo "<dirent.h> found." >&4 |
10721 |
else |
10722 |
val="$undef" |
10723 |
if xinc=`./findhdr sys/dir.h`; $test "$xinc"; then |
10724 |
echo "<sys/dir.h> found." >&4 |
10725 |
echo " " |
10726 |
else |
10727 |
xinc=`./findhdr sys/ndir.h` |
10728 |
fi |
10729 |
echo "<dirent.h> NOT found." >&4 |
10730 |
fi |
10731 |
set i_dirent |
10732 |
eval $setvar |
10733 |
|
10734 |
: Look for type of directory structure. |
10735 |
echo " " |
10736 |
$cppstdin $cppflags $cppminus < "$xinc" > try.c |
10737 |
|
10738 |
case "$direntrytype" in |
10739 |
''|' ') |
10740 |
case "$i_dirent" in |
10741 |
$define) guess1='struct dirent' ;; |
10742 |
*) guess1='struct direct' ;; |
10743 |
esac |
10744 |
;; |
10745 |
*) guess1="$direntrytype" |
10746 |
;; |
10747 |
esac |
10748 |
|
10749 |
case "$guess1" in |
10750 |
'struct dirent') guess2='struct direct' ;; |
10751 |
*) guess2='struct dirent' ;; |
10752 |
esac |
10753 |
|
10754 |
if $contains "$guess1" try.c >/dev/null 2>&1; then |
10755 |
direntrytype="$guess1" |
10756 |
echo "Your directory entries are $direntrytype." >&4 |
10757 |
elif $contains "$guess2" try.c >/dev/null 2>&1; then |
10758 |
direntrytype="$guess2" |
10759 |
echo "Your directory entries seem to be $direntrytype." >&4 |
10760 |
else |
10761 |
echo "I don't recognize your system's directory entries." >&4 |
10762 |
rp="What type is used for directory entries on this system?" |
10763 |
dflt="$guess1" |
10764 |
. ./myread |
10765 |
direntrytype="$ans" |
10766 |
fi |
10767 |
$rm -f try.c |
10768 |
|
10769 |
|
10770 |
: see if the directory entry stores field length |
10771 |
echo " " |
10772 |
$cppstdin $cppflags $cppminus < "$xinc" > try.c |
10773 |
if $contains 'd_namlen' try.c >/dev/null 2>&1; then |
10774 |
echo "Good, your directory entry keeps length information in d_namlen." >&4 |
10775 |
val="$define" |
10776 |
else |
10777 |
echo "Your directory entry does not know about the d_namlen field." >&4 |
10778 |
val="$undef" |
10779 |
fi |
10780 |
set d_dirnamlen |
10781 |
eval $setvar |
10782 |
$rm -f try.c |
10783 |
|
10784 |
: see if this is an sysdir system |
10785 |
set sys/dir.h i_sysdir |
10786 |
eval $inhdr |
10787 |
|
10788 |
: see if this is an sysndir system |
10789 |
set sys/ndir.h i_sysndir |
10790 |
eval $inhdr |
10791 |
|
10792 |
: Look for dirfd |
10793 |
echo " " |
10794 |
$cat >dirfd.c <<EOM |
10795 |
#include <stdio.h> |
10796 |
#$i_stdlib I_STDLIB |
10797 |
#ifdef I_STDLIB |
10798 |
#include <stdlib.h> |
10799 |
#endif |
10800 |
#$i_dirent I_DIRENT /**/ |
10801 |
#$i_sysdir I_SYS_DIR /**/ |
10802 |
#$i_sysndir I_SYS_NDIR /**/ |
10803 |
#$i_systypes I_SYS_TYPES /**/ |
10804 |
#if defined(I_SYS_TYPES) |
10805 |
#include <sys/types.h> |
10806 |
#endif |
10807 |
#if defined(I_DIRENT) |
10808 |
#include <dirent.h> |
10809 |
#if defined(NeXT) && defined(I_SYS_DIR) /* NeXT needs dirent + sys/dir.h */ |
10810 |
#include <sys/dir.h> |
10811 |
#endif |
10812 |
#else |
10813 |
#ifdef I_SYS_NDIR |
10814 |
#include <sys/ndir.h> |
10815 |
#else |
10816 |
#ifdef I_SYS_DIR |
10817 |
#ifdef hp9000s500 |
10818 |
#include <ndir.h> /* may be wrong in the future */ |
10819 |
#else |
10820 |
#include <sys/dir.h> |
10821 |
#endif |
10822 |
#endif |
10823 |
#endif |
10824 |
#endif |
10825 |
int main() { |
10826 |
DIR *dirp = opendir("."); |
10827 |
if (dirfd(dirp) >= 0) |
10828 |
exit(0); |
10829 |
else |
10830 |
exit(1); |
10831 |
} |
10832 |
EOM |
10833 |
set dirfd |
10834 |
if eval $compile; then |
10835 |
val="$define" |
10836 |
fi |
10837 |
case "$val" in |
10838 |
$define) echo "dirfd() found." >&4 ;; |
10839 |
*) echo "dirfd() NOT found." >&4 ;; |
10840 |
esac |
10841 |
set d_dirfd |
10842 |
eval $setvar |
10843 |
$rm -f dirfd* |
10844 |
|
10845 |
: see if dlerror exists |
10846 |
xxx_runnm="$runnm" |
10847 |
runnm=false |
10848 |
set dlerror d_dlerror |
10849 |
eval $inlibc |
10850 |
runnm="$xxx_runnm" |
10851 |
|
10852 |
: see if dlfcn is available |
10853 |
set dlfcn.h i_dlfcn |
10854 |
eval $inhdr |
10855 |
|
10856 |
case "$usedl" in |
10857 |
$define|y|true) |
10858 |
$cat << EOM |
10859 |
|
10860 |
On a few systems, the dynamically loaded modules that perl generates and uses |
10861 |
will need a different extension than shared libs. The default will probably |
10862 |
be appropriate. |
10863 |
|
10864 |
EOM |
10865 |
case "$dlext" in |
10866 |
'') dflt="$so" ;; |
10867 |
*) dflt="$dlext" ;; |
10868 |
esac |
10869 |
rp='What is the extension of dynamically loaded modules' |
10870 |
. ./myread |
10871 |
dlext="$ans" |
10872 |
;; |
10873 |
*) |
10874 |
dlext="none" |
10875 |
;; |
10876 |
esac |
10877 |
|
10878 |
: Check if dlsym need a leading underscore |
10879 |
echo " " |
10880 |
val="$undef" |
10881 |
|
10882 |
case "$dlsrc" in |
10883 |
dl_dlopen.xs) |
10884 |
echo "Checking whether your dlsym() needs a leading underscore ..." >&4 |
10885 |
$cat >dyna.c <<'EOM' |
10886 |
fred () { } |
10887 |
EOM |
10888 |
|
10889 |
$cat >fred.c<<EOM |
10890 |
|
10891 |
#include <stdio.h> |
10892 |
#$i_stdlib I_STDLIB |
10893 |
#ifdef I_STDLIB |
10894 |
#include <stdlib.h> |
10895 |
#endif |
10896 |
#$i_dlfcn I_DLFCN |
10897 |
#ifdef I_DLFCN |
10898 |
#include <dlfcn.h> /* the dynamic linker include file for SunOS/Solaris */ |
10899 |
#else |
10900 |
#include <sys/types.h> |
10901 |
#include <nlist.h> |
10902 |
#include <link.h> |
10903 |
#endif |
10904 |
|
10905 |
extern int fred() ; |
10906 |
|
10907 |
int main() |
10908 |
{ |
10909 |
void * handle ; |
10910 |
void * symbol ; |
10911 |
#ifndef RTLD_LAZY |
10912 |
int mode = 1 ; |
10913 |
#else |
10914 |
int mode = RTLD_LAZY ; |
10915 |
#endif |
10916 |
handle = dlopen("./dyna.$dlext", mode) ; |
10917 |
if (handle == NULL) { |
10918 |
printf ("1\n") ; |
10919 |
fflush (stdout) ; |
10920 |
exit(0); |
10921 |
} |
10922 |
symbol = dlsym(handle, "fred") ; |
10923 |
if (symbol == NULL) { |
10924 |
/* try putting a leading underscore */ |
10925 |
symbol = dlsym(handle, "_fred") ; |
10926 |
if (symbol == NULL) { |
10927 |
printf ("2\n") ; |
10928 |
fflush (stdout) ; |
10929 |
exit(0); |
10930 |
} |
10931 |
printf ("3\n") ; |
10932 |
} |
10933 |
else |
10934 |
printf ("4\n") ; |
10935 |
fflush (stdout) ; |
10936 |
exit(0); |
10937 |
} |
10938 |
EOM |
10939 |
: Call the object file tmp-dyna.o in case dlext=o. |
10940 |
if $cc $ccflags $cccdlflags -c dyna.c > /dev/null 2>&1 && |
10941 |
mv dyna${_o} tmp-dyna${_o} > /dev/null 2>&1 && |
10942 |
$ld -o dyna.$dlext $ldflags $lddlflags tmp-dyna${_o} > /dev/null 2>&1 && |
10943 |
$cc -o fred $ccflags $ldflags $cccdlflags $ccdlflags fred.c $libs > /dev/null 2>&1 && $to dyna.$dlext; then |
10944 |
xxx=`$run ./fred` |
10945 |
case $xxx in |
10946 |
1) echo "Test program failed using dlopen." >&4 |
10947 |
echo "Perhaps you should not use dynamic loading." >&4;; |
10948 |
2) echo "Test program failed using dlsym." >&4 |
10949 |
echo "Perhaps you should not use dynamic loading." >&4;; |
10950 |
3) echo "dlsym needs a leading underscore" >&4 |
10951 |
val="$define" ;; |
10952 |
4) echo "dlsym doesn't need a leading underscore." >&4;; |
10953 |
esac |
10954 |
else |
10955 |
echo "I can't compile and run the test program." >&4 |
10956 |
echo "I'm guessing that dlsym doesn't need a leading underscore." >&4 |
10957 |
fi |
10958 |
;; |
10959 |
esac |
10960 |
|
10961 |
$rm -f fred fred.* dyna.$dlext dyna.* tmp-dyna.* |
10962 |
|
10963 |
set d_dlsymun |
10964 |
eval $setvar |
10965 |
|
10966 |
: see if drand48_r exists |
10967 |
set drand48_r d_drand48_r |
10968 |
eval $inlibc |
10969 |
case "$d_drand48_r" in |
10970 |
"$define") |
10971 |
hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h" |
10972 |
case "$d_drand48_r_proto:$usethreads" in |
10973 |
":define") d_drand48_r_proto=define |
10974 |
set d_drand48_r_proto drand48_r $hdrs |
10975 |
eval $hasproto ;; |
10976 |
*) ;; |
10977 |
esac |
10978 |
case "$d_drand48_r_proto" in |
10979 |
define) |
10980 |
case "$drand48_r_proto" in |
10981 |
''|0) try='int drand48_r(struct drand48_data*, double*);' |
10982 |
./protochk "extern $try" $hdrs && drand48_r_proto=I_ST ;; |
10983 |
esac |
10984 |
case "$drand48_r_proto" in |
10985 |
''|0) d_drand48_r=undef |
10986 |
drand48_r_proto=0 |
10987 |
echo "Disabling drand48_r, cannot determine prototype." >&4 ;; |
10988 |
* ) case "$drand48_r_proto" in |
10989 |
REENTRANT_PROTO*) ;; |
10990 |
*) drand48_r_proto="REENTRANT_PROTO_$drand48_r_proto" ;; |
10991 |
esac |
10992 |
echo "Prototype: $try" ;; |
10993 |
esac |
10994 |
;; |
10995 |
*) case "$usethreads" in |
10996 |
define) echo "drand48_r has no prototype, not using it." >&4 ;; |
10997 |
esac |
10998 |
d_drand48_r=undef |
10999 |
drand48_r_proto=0 |
11000 |
;; |
11001 |
esac |
11002 |
;; |
11003 |
*) drand48_r_proto=0 |
11004 |
;; |
11005 |
esac |
11006 |
|
11007 |
: see if prototype for drand48 is available |
11008 |
echo " " |
11009 |
set d_drand48proto drand48 $i_stdlib stdlib.h $i_unistd unistd.h |
11010 |
eval $hasproto |
11011 |
|
11012 |
: see if dup2 exists |
11013 |
set dup2 d_dup2 |
11014 |
eval $inlibc |
11015 |
|
11016 |
: see if eaccess exists |
11017 |
set eaccess d_eaccess |
11018 |
eval $inlibc |
11019 |
|
11020 |
: see if endgrent exists |
11021 |
set endgrent d_endgrent |
11022 |
eval $inlibc |
11023 |
|
11024 |
: see if this is an grp system |
11025 |
set grp.h i_grp |
11026 |
eval $inhdr |
11027 |
|
11028 |
case "$i_grp" in |
11029 |
$define) |
11030 |
xxx=`./findhdr grp.h` |
11031 |
$cppstdin $cppflags $cppminus < $xxx >$$.h |
11032 |
|
11033 |
if $contains 'gr_passwd' $$.h >/dev/null 2>&1; then |
11034 |
val="$define" |
11035 |
else |
11036 |
val="$undef" |
11037 |
fi |
11038 |
set d_grpasswd |
11039 |
eval $setvar |
11040 |
|
11041 |
$rm -f $$.h |
11042 |
;; |
11043 |
*) |
11044 |
val="$undef"; |
11045 |
set d_grpasswd; eval $setvar |
11046 |
;; |
11047 |
esac |
11048 |
|
11049 |
: see if endgrent_r exists |
11050 |
set endgrent_r d_endgrent_r |
11051 |
eval $inlibc |
11052 |
case "$d_endgrent_r" in |
11053 |
"$define") |
11054 |
hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h" |
11055 |
case "$d_endgrent_r_proto:$usethreads" in |
11056 |
":define") d_endgrent_r_proto=define |
11057 |
set d_endgrent_r_proto endgrent_r $hdrs |
11058 |
eval $hasproto ;; |
11059 |
*) ;; |
11060 |
esac |
11061 |
case "$d_endgrent_r_proto" in |
11062 |
define) |
11063 |
case "$endgrent_r_proto" in |
11064 |
''|0) try='int endgrent_r(FILE**);' |
11065 |
./protochk "extern $try" $hdrs && endgrent_r_proto=I_H ;; |
11066 |
esac |
11067 |
case "$endgrent_r_proto" in |
11068 |
''|0) try='void endgrent_r(FILE**);' |
11069 |
./protochk "extern $try" $hdrs && endgrent_r_proto=V_H ;; |
11070 |
esac |
11071 |
case "$endgrent_r_proto" in |
11072 |
''|0) d_endgrent_r=undef |
11073 |
endgrent_r_proto=0 |
11074 |
echo "Disabling endgrent_r, cannot determine prototype." >&4 ;; |
11075 |
* ) case "$endgrent_r_proto" in |
11076 |
REENTRANT_PROTO*) ;; |
11077 |
*) endgrent_r_proto="REENTRANT_PROTO_$endgrent_r_proto" ;; |
11078 |
esac |
11079 |
echo "Prototype: $try" ;; |
11080 |
esac |
11081 |
;; |
11082 |
*) case "$usethreads" in |
11083 |
define) echo "endgrent_r has no prototype, not using it." >&4 ;; |
11084 |
esac |
11085 |
d_endgrent_r=undef |
11086 |
endgrent_r_proto=0 |
11087 |
;; |
11088 |
esac |
11089 |
;; |
11090 |
*) endgrent_r_proto=0 |
11091 |
;; |
11092 |
esac |
11093 |
|
11094 |
: see if endhostent exists |
11095 |
set endhostent d_endhent |
11096 |
eval $inlibc |
11097 |
|
11098 |
: see if this is a netdb.h system |
11099 |
set netdb.h i_netdb |
11100 |
eval $inhdr |
11101 |
|
11102 |
: see if endhostent_r exists |
11103 |
set endhostent_r d_endhostent_r |
11104 |
eval $inlibc |
11105 |
case "$d_endhostent_r" in |
11106 |
"$define") |
11107 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
11108 |
case "$d_endhostent_r_proto:$usethreads" in |
11109 |
":define") d_endhostent_r_proto=define |
11110 |
set d_endhostent_r_proto endhostent_r $hdrs |
11111 |
eval $hasproto ;; |
11112 |
*) ;; |
11113 |
esac |
11114 |
case "$d_endhostent_r_proto" in |
11115 |
define) |
11116 |
case "$endhostent_r_proto" in |
11117 |
''|0) try='int endhostent_r(struct hostent_data*);' |
11118 |
./protochk "extern $try" $hdrs && endhostent_r_proto=I_D ;; |
11119 |
esac |
11120 |
case "$endhostent_r_proto" in |
11121 |
''|0) try='void endhostent_r(struct hostent_data*);' |
11122 |
./protochk "extern $try" $hdrs && endhostent_r_proto=V_D ;; |
11123 |
esac |
11124 |
case "$endhostent_r_proto" in |
11125 |
''|0) d_endhostent_r=undef |
11126 |
endhostent_r_proto=0 |
11127 |
echo "Disabling endhostent_r, cannot determine prototype." >&4 ;; |
11128 |
* ) case "$endhostent_r_proto" in |
11129 |
REENTRANT_PROTO*) ;; |
11130 |
*) endhostent_r_proto="REENTRANT_PROTO_$endhostent_r_proto" ;; |
11131 |
esac |
11132 |
echo "Prototype: $try" ;; |
11133 |
esac |
11134 |
;; |
11135 |
*) case "$usethreads" in |
11136 |
define) echo "endhostent_r has no prototype, not using it." >&4 ;; |
11137 |
esac |
11138 |
d_endhostent_r=undef |
11139 |
endhostent_r_proto=0 |
11140 |
;; |
11141 |
esac |
11142 |
;; |
11143 |
*) endhostent_r_proto=0 |
11144 |
;; |
11145 |
esac |
11146 |
|
11147 |
: see if endnetent exists |
11148 |
set endnetent d_endnent |
11149 |
eval $inlibc |
11150 |
|
11151 |
: see if endnetent_r exists |
11152 |
set endnetent_r d_endnetent_r |
11153 |
eval $inlibc |
11154 |
case "$d_endnetent_r" in |
11155 |
"$define") |
11156 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
11157 |
case "$d_endnetent_r_proto:$usethreads" in |
11158 |
":define") d_endnetent_r_proto=define |
11159 |
set d_endnetent_r_proto endnetent_r $hdrs |
11160 |
eval $hasproto ;; |
11161 |
*) ;; |
11162 |
esac |
11163 |
case "$d_endnetent_r_proto" in |
11164 |
define) |
11165 |
case "$endnetent_r_proto" in |
11166 |
''|0) try='int endnetent_r(struct netent_data*);' |
11167 |
./protochk "extern $try" $hdrs && endnetent_r_proto=I_D ;; |
11168 |
esac |
11169 |
case "$endnetent_r_proto" in |
11170 |
''|0) try='void endnetent_r(struct netent_data*);' |
11171 |
./protochk "extern $try" $hdrs && endnetent_r_proto=V_D ;; |
11172 |
esac |
11173 |
case "$endnetent_r_proto" in |
11174 |
''|0) d_endnetent_r=undef |
11175 |
endnetent_r_proto=0 |
11176 |
echo "Disabling endnetent_r, cannot determine prototype." >&4 ;; |
11177 |
* ) case "$endnetent_r_proto" in |
11178 |
REENTRANT_PROTO*) ;; |
11179 |
*) endnetent_r_proto="REENTRANT_PROTO_$endnetent_r_proto" ;; |
11180 |
esac |
11181 |
echo "Prototype: $try" ;; |
11182 |
esac |
11183 |
;; |
11184 |
*) case "$usethreads" in |
11185 |
define) echo "endnetent_r has no prototype, not using it." >&4 ;; |
11186 |
esac |
11187 |
d_endnetent_r=undef |
11188 |
endnetent_r_proto=0 |
11189 |
;; |
11190 |
esac |
11191 |
;; |
11192 |
*) endnetent_r_proto=0 |
11193 |
;; |
11194 |
esac |
11195 |
|
11196 |
: see if endprotoent exists |
11197 |
set endprotoent d_endpent |
11198 |
eval $inlibc |
11199 |
|
11200 |
: see if endprotoent_r exists |
11201 |
set endprotoent_r d_endprotoent_r |
11202 |
eval $inlibc |
11203 |
case "$d_endprotoent_r" in |
11204 |
"$define") |
11205 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
11206 |
case "$d_endprotoent_r_proto:$usethreads" in |
11207 |
":define") d_endprotoent_r_proto=define |
11208 |
set d_endprotoent_r_proto endprotoent_r $hdrs |
11209 |
eval $hasproto ;; |
11210 |
*) ;; |
11211 |
esac |
11212 |
case "$d_endprotoent_r_proto" in |
11213 |
define) |
11214 |
case "$endprotoent_r_proto" in |
11215 |
''|0) try='int endprotoent_r(struct protoent_data*);' |
11216 |
./protochk "extern $try" $hdrs && endprotoent_r_proto=I_D ;; |
11217 |
esac |
11218 |
case "$endprotoent_r_proto" in |
11219 |
''|0) try='void endprotoent_r(struct protoent_data*);' |
11220 |
./protochk "extern $try" $hdrs && endprotoent_r_proto=V_D ;; |
11221 |
esac |
11222 |
case "$endprotoent_r_proto" in |
11223 |
''|0) d_endprotoent_r=undef |
11224 |
endprotoent_r_proto=0 |
11225 |
echo "Disabling endprotoent_r, cannot determine prototype." >&4 ;; |
11226 |
* ) case "$endprotoent_r_proto" in |
11227 |
REENTRANT_PROTO*) ;; |
11228 |
*) endprotoent_r_proto="REENTRANT_PROTO_$endprotoent_r_proto" ;; |
11229 |
esac |
11230 |
echo "Prototype: $try" ;; |
11231 |
esac |
11232 |
;; |
11233 |
*) case "$usethreads" in |
11234 |
define) echo "endprotoent_r has no prototype, not using it." >&4 ;; |
11235 |
esac |
11236 |
d_endprotoent_r=undef |
11237 |
endprotoent_r_proto=0 |
11238 |
;; |
11239 |
esac |
11240 |
;; |
11241 |
*) endprotoent_r_proto=0 |
11242 |
;; |
11243 |
esac |
11244 |
|
11245 |
: see if endpwent exists |
11246 |
set endpwent d_endpwent |
11247 |
eval $inlibc |
11248 |
|
11249 |
: see if this is a pwd.h system |
11250 |
set pwd.h i_pwd |
11251 |
eval $inhdr |
11252 |
|
11253 |
case "$i_pwd" in |
11254 |
$define) |
11255 |
xxx=`./findhdr pwd.h` |
11256 |
$cppstdin $cppflags $cppminus < $xxx >$$.h |
11257 |
|
11258 |
if $contains 'pw_quota' $$.h >/dev/null 2>&1; then |
11259 |
val="$define" |
11260 |
else |
11261 |
val="$undef" |
11262 |
fi |
11263 |
set d_pwquota |
11264 |
eval $setvar |
11265 |
|
11266 |
if $contains 'pw_age' $$.h >/dev/null 2>&1; then |
11267 |
val="$define" |
11268 |
else |
11269 |
val="$undef" |
11270 |
fi |
11271 |
set d_pwage |
11272 |
eval $setvar |
11273 |
|
11274 |
if $contains 'pw_change' $$.h >/dev/null 2>&1; then |
11275 |
val="$define" |
11276 |
else |
11277 |
val="$undef" |
11278 |
fi |
11279 |
set d_pwchange |
11280 |
eval $setvar |
11281 |
|
11282 |
if $contains 'pw_class' $$.h >/dev/null 2>&1; then |
11283 |
val="$define" |
11284 |
else |
11285 |
val="$undef" |
11286 |
fi |
11287 |
set d_pwclass |
11288 |
eval $setvar |
11289 |
|
11290 |
if $contains 'pw_expire' $$.h >/dev/null 2>&1; then |
11291 |
val="$define" |
11292 |
else |
11293 |
val="$undef" |
11294 |
fi |
11295 |
set d_pwexpire |
11296 |
eval $setvar |
11297 |
|
11298 |
if $contains 'pw_comment' $$.h >/dev/null 2>&1; then |
11299 |
val="$define" |
11300 |
else |
11301 |
val="$undef" |
11302 |
fi |
11303 |
set d_pwcomment |
11304 |
eval $setvar |
11305 |
|
11306 |
if $contains 'pw_gecos' $$.h >/dev/null 2>&1; then |
11307 |
val="$define" |
11308 |
else |
11309 |
val="$undef" |
11310 |
fi |
11311 |
set d_pwgecos |
11312 |
eval $setvar |
11313 |
|
11314 |
if $contains 'pw_passwd' $$.h >/dev/null 2>&1; then |
11315 |
val="$define" |
11316 |
else |
11317 |
val="$undef" |
11318 |
fi |
11319 |
set d_pwpasswd |
11320 |
eval $setvar |
11321 |
|
11322 |
$rm -f $$.h |
11323 |
;; |
11324 |
*) |
11325 |
val="$undef"; |
11326 |
set d_pwquota; eval $setvar |
11327 |
set d_pwage; eval $setvar |
11328 |
set d_pwchange; eval $setvar |
11329 |
set d_pwclass; eval $setvar |
11330 |
set d_pwexpire; eval $setvar |
11331 |
set d_pwcomment; eval $setvar |
11332 |
set d_pwgecos; eval $setvar |
11333 |
set d_pwpasswd; eval $setvar |
11334 |
;; |
11335 |
esac |
11336 |
|
11337 |
: see if endpwent_r exists |
11338 |
set endpwent_r d_endpwent_r |
11339 |
eval $inlibc |
11340 |
case "$d_endpwent_r" in |
11341 |
"$define") |
11342 |
hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h" |
11343 |
case "$d_endpwent_r_proto:$usethreads" in |
11344 |
":define") d_endpwent_r_proto=define |
11345 |
set d_endpwent_r_proto endpwent_r $hdrs |
11346 |
eval $hasproto ;; |
11347 |
*) ;; |
11348 |
esac |
11349 |
case "$d_endpwent_r_proto" in |
11350 |
define) |
11351 |
case "$endpwent_r_proto" in |
11352 |
''|0) try='int endpwent_r(FILE**);' |
11353 |
./protochk "extern $try" $hdrs && endpwent_r_proto=I_H ;; |
11354 |
esac |
11355 |
case "$endpwent_r_proto" in |
11356 |
''|0) try='void endpwent_r(FILE**);' |
11357 |
./protochk "extern $try" $hdrs && endpwent_r_proto=V_H ;; |
11358 |
esac |
11359 |
case "$endpwent_r_proto" in |
11360 |
''|0) d_endpwent_r=undef |
11361 |
endpwent_r_proto=0 |
11362 |
echo "Disabling endpwent_r, cannot determine prototype." >&4 ;; |
11363 |
* ) case "$endpwent_r_proto" in |
11364 |
REENTRANT_PROTO*) ;; |
11365 |
*) endpwent_r_proto="REENTRANT_PROTO_$endpwent_r_proto" ;; |
11366 |
esac |
11367 |
echo "Prototype: $try" ;; |
11368 |
esac |
11369 |
;; |
11370 |
*) case "$usethreads" in |
11371 |
define) echo "endpwent_r has no prototype, not using it." >&4 ;; |
11372 |
esac |
11373 |
d_endpwent_r=undef |
11374 |
endpwent_r_proto=0 |
11375 |
;; |
11376 |
esac |
11377 |
;; |
11378 |
*) endpwent_r_proto=0 |
11379 |
;; |
11380 |
esac |
11381 |
|
11382 |
: see if endservent exists |
11383 |
set endservent d_endsent |
11384 |
eval $inlibc |
11385 |
|
11386 |
: see if endservent_r exists |
11387 |
set endservent_r d_endservent_r |
11388 |
eval $inlibc |
11389 |
case "$d_endservent_r" in |
11390 |
"$define") |
11391 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
11392 |
case "$d_endservent_r_proto:$usethreads" in |
11393 |
":define") d_endservent_r_proto=define |
11394 |
set d_endservent_r_proto endservent_r $hdrs |
11395 |
eval $hasproto ;; |
11396 |
*) ;; |
11397 |
esac |
11398 |
case "$d_endservent_r_proto" in |
11399 |
define) |
11400 |
case "$endservent_r_proto" in |
11401 |
''|0) try='int endservent_r(struct servent_data*);' |
11402 |
./protochk "extern $try" $hdrs && endservent_r_proto=I_D ;; |
11403 |
esac |
11404 |
case "$endservent_r_proto" in |
11405 |
''|0) try='void endservent_r(struct servent_data*);' |
11406 |
./protochk "extern $try" $hdrs && endservent_r_proto=V_D ;; |
11407 |
esac |
11408 |
case "$endservent_r_proto" in |
11409 |
''|0) d_endservent_r=undef |
11410 |
endservent_r_proto=0 |
11411 |
echo "Disabling endservent_r, cannot determine prototype." >&4 ;; |
11412 |
* ) case "$endservent_r_proto" in |
11413 |
REENTRANT_PROTO*) ;; |
11414 |
*) endservent_r_proto="REENTRANT_PROTO_$endservent_r_proto" ;; |
11415 |
esac |
11416 |
echo "Prototype: $try" ;; |
11417 |
esac |
11418 |
;; |
11419 |
*) case "$usethreads" in |
11420 |
define) echo "endservent_r has no prototype, not using it." >&4 ;; |
11421 |
esac |
11422 |
d_endservent_r=undef |
11423 |
endservent_r_proto=0 |
11424 |
;; |
11425 |
esac |
11426 |
;; |
11427 |
*) endservent_r_proto=0 |
11428 |
;; |
11429 |
esac |
11430 |
|
11431 |
: Locate the flags for 'open()' |
11432 |
echo " " |
11433 |
$cat >try.c <<EOCP |
11434 |
#include <sys/types.h> |
11435 |
#ifdef I_FCNTL |
11436 |
#include <fcntl.h> |
11437 |
#endif |
11438 |
#ifdef I_SYS_FILE |
11439 |
#include <sys/file.h> |
11440 |
#endif |
11441 |
#$i_stdlib I_STDLIB |
11442 |
#ifdef I_STDLIB |
11443 |
#include <stdlib.h> |
11444 |
#endif |
11445 |
int main() { |
11446 |
if(O_RDONLY); |
11447 |
#ifdef O_TRUNC |
11448 |
exit(0); |
11449 |
#else |
11450 |
exit(1); |
11451 |
#endif |
11452 |
} |
11453 |
EOCP |
11454 |
: check sys/file.h first to get FREAD on Sun |
11455 |
if $test `./findhdr sys/file.h` && \ |
11456 |
set try -DI_SYS_FILE && eval $compile; then |
11457 |
h_sysfile=true; |
11458 |
echo "<sys/file.h> defines the O_* constants..." >&4 |
11459 |
if $run ./try; then |
11460 |
echo "and you have the 3 argument form of open()." >&4 |
11461 |
val="$define" |
11462 |
else |
11463 |
echo "but not the 3 argument form of open(). Oh, well." >&4 |
11464 |
val="$undef" |
11465 |
fi |
11466 |
elif $test `./findhdr fcntl.h` && \ |
11467 |
set try -DI_FCNTL && eval $compile; then |
11468 |
h_fcntl=true; |
11469 |
echo "<fcntl.h> defines the O_* constants..." >&4 |
11470 |
if $run ./try; then |
11471 |
echo "and you have the 3 argument form of open()." >&4 |
11472 |
val="$define" |
11473 |
else |
11474 |
echo "but not the 3 argument form of open(). Oh, well." >&4 |
11475 |
val="$undef" |
11476 |
fi |
11477 |
else |
11478 |
val="$undef" |
11479 |
echo "I can't find the O_* constant definitions! You got problems." >&4 |
11480 |
fi |
11481 |
set d_open3 |
11482 |
eval $setvar |
11483 |
$rm -f try try.* |
11484 |
|
11485 |
: see which of string.h or strings.h is needed |
11486 |
echo " " |
11487 |
strings=`./findhdr string.h` |
11488 |
if $test "$strings" && $test -r "$strings"; then |
11489 |
echo "Using <string.h> instead of <strings.h>." >&4 |
11490 |
val="$define" |
11491 |
else |
11492 |
val="$undef" |
11493 |
strings=`./findhdr strings.h` |
11494 |
if $test "$strings" && $test -r "$strings"; then |
11495 |
echo "Using <strings.h> instead of <string.h>." >&4 |
11496 |
else |
11497 |
echo "No string header found -- You'll surely have problems." >&4 |
11498 |
fi |
11499 |
fi |
11500 |
set i_string |
11501 |
eval $setvar |
11502 |
case "$i_string" in |
11503 |
"$undef") strings=`./findhdr strings.h`;; |
11504 |
*) strings=`./findhdr string.h`;; |
11505 |
esac |
11506 |
|
11507 |
: see if this is a sys/file.h system |
11508 |
val='' |
11509 |
set sys/file.h val |
11510 |
eval $inhdr |
11511 |
|
11512 |
: do we need to include sys/file.h ? |
11513 |
case "$val" in |
11514 |
"$define") |
11515 |
echo " " |
11516 |
if $h_sysfile; then |
11517 |
val="$define" |
11518 |
echo "We'll be including <sys/file.h>." >&4 |
11519 |
else |
11520 |
val="$undef" |
11521 |
echo "We won't be including <sys/file.h>." >&4 |
11522 |
fi |
11523 |
;; |
11524 |
*) |
11525 |
h_sysfile=false |
11526 |
;; |
11527 |
esac |
11528 |
set i_sysfile |
11529 |
eval $setvar |
11530 |
|
11531 |
: see if fcntl.h is there |
11532 |
val='' |
11533 |
set fcntl.h val |
11534 |
eval $inhdr |
11535 |
|
11536 |
: see if we can include fcntl.h |
11537 |
case "$val" in |
11538 |
"$define") |
11539 |
echo " " |
11540 |
if $h_fcntl; then |
11541 |
val="$define" |
11542 |
echo "We'll be including <fcntl.h>." >&4 |
11543 |
else |
11544 |
val="$undef" |
11545 |
if $h_sysfile; then |
11546 |
echo "We don't need to include <fcntl.h> if we include <sys/file.h>." >&4 |
11547 |
else |
11548 |
echo "We won't be including <fcntl.h>." >&4 |
11549 |
fi |
11550 |
fi |
11551 |
;; |
11552 |
*) |
11553 |
h_fcntl=false |
11554 |
val="$undef" |
11555 |
;; |
11556 |
esac |
11557 |
set i_fcntl |
11558 |
eval $setvar |
11559 |
|
11560 |
: check for non-blocking I/O stuff |
11561 |
case "$h_sysfile" in |
11562 |
true) echo "#include <sys/file.h>" > head.c;; |
11563 |
*) |
11564 |
case "$h_fcntl" in |
11565 |
true) echo "#include <fcntl.h>" > head.c;; |
11566 |
*) echo "#include <sys/fcntl.h>" > head.c;; |
11567 |
esac |
11568 |
;; |
11569 |
esac |
11570 |
echo " " |
11571 |
echo "Figuring out the flag used by open() for non-blocking I/O..." >&4 |
11572 |
case "$o_nonblock" in |
11573 |
'') |
11574 |
$cat head.c > try.c |
11575 |
$cat >>try.c <<EOCP |
11576 |
#include <stdio.h> |
11577 |
#$i_stdlib I_STDLIB |
11578 |
#ifdef I_STDLIB |
11579 |
#include <stdlib.h> |
11580 |
#endif |
11581 |
#$i_fcntl I_FCNTL |
11582 |
#ifdef I_FCNTL |
11583 |
#include <fcntl.h> |
11584 |
#endif |
11585 |
int main() { |
11586 |
#ifdef O_NONBLOCK |
11587 |
printf("O_NONBLOCK\n"); |
11588 |
exit(0); |
11589 |
#endif |
11590 |
#ifdef O_NDELAY |
11591 |
printf("O_NDELAY\n"); |
11592 |
exit(0); |
11593 |
#endif |
11594 |
#ifdef FNDELAY |
11595 |
printf("FNDELAY\n"); |
11596 |
exit(0); |
11597 |
#endif |
11598 |
exit(0); |
11599 |
} |
11600 |
EOCP |
11601 |
set try |
11602 |
if eval $compile_ok; then |
11603 |
o_nonblock=`$run ./try` |
11604 |
case "$o_nonblock" in |
11605 |
'') echo "I can't figure it out, assuming O_NONBLOCK will do.";; |
11606 |
*) echo "Seems like we can use $o_nonblock.";; |
11607 |
esac |
11608 |
else |
11609 |
echo "(I can't compile the test program; pray O_NONBLOCK is right!)" |
11610 |
fi |
11611 |
;; |
11612 |
*) echo "Using $hint value $o_nonblock.";; |
11613 |
esac |
11614 |
$rm -f try try.* .out core |
11615 |
|
11616 |
echo " " |
11617 |
echo "Let's see what value errno gets from read() on a $o_nonblock file..." >&4 |
11618 |
case "$eagain" in |
11619 |
'') |
11620 |
$cat head.c > try.c |
11621 |
$cat >>try.c <<EOCP |
11622 |
#include <errno.h> |
11623 |
#include <sys/types.h> |
11624 |
#include <signal.h> |
11625 |
#include <stdio.h> |
11626 |
#$i_stdlib I_STDLIB |
11627 |
#ifdef I_STDLIB |
11628 |
#include <stdlib.h> |
11629 |
#endif |
11630 |
#$i_fcntl I_FCNTL |
11631 |
#ifdef I_FCNTL |
11632 |
#include <fcntl.h> |
11633 |
#endif |
11634 |
#define MY_O_NONBLOCK $o_nonblock |
11635 |
#ifndef errno /* XXX need better Configure test */ |
11636 |
extern int errno; |
11637 |
#endif |
11638 |
#$i_unistd I_UNISTD |
11639 |
#ifdef I_UNISTD |
11640 |
#include <unistd.h> |
11641 |
#endif |
11642 |
#$i_string I_STRING |
11643 |
#ifdef I_STRING |
11644 |
#include <string.h> |
11645 |
#else |
11646 |
#include <strings.h> |
11647 |
#endif |
11648 |
$signal_t blech(x) int x; { exit(3); } |
11649 |
EOCP |
11650 |
$cat >> try.c <<'EOCP' |
11651 |
int main() |
11652 |
{ |
11653 |
int pd[2]; |
11654 |
int pu[2]; |
11655 |
char buf[1]; |
11656 |
char string[100]; |
11657 |
|
11658 |
pipe(pd); /* Down: child -> parent */ |
11659 |
pipe(pu); /* Up: parent -> child */ |
11660 |
if (0 != fork()) { |
11661 |
int ret; |
11662 |
close(pd[1]); /* Parent reads from pd[0] */ |
11663 |
close(pu[0]); /* Parent writes (blocking) to pu[1] */ |
11664 |
#ifdef F_SETFL |
11665 |
if (-1 == fcntl(pd[0], F_SETFL, MY_O_NONBLOCK)) |
11666 |
exit(1); |
11667 |
#else |
11668 |
exit(4); |
11669 |
#endif |
11670 |
signal(SIGALRM, blech); |
11671 |
alarm(5); |
11672 |
if ((ret = read(pd[0], buf, 1)) > 0) /* Nothing to read! */ |
11673 |
exit(2); |
11674 |
sprintf(string, "%d\n", ret); |
11675 |
write(2, string, strlen(string)); |
11676 |
alarm(0); |
11677 |
#ifdef EAGAIN |
11678 |
if (errno == EAGAIN) { |
11679 |
printf("EAGAIN\n"); |
11680 |
goto ok; |
11681 |
} |
11682 |
#endif |
11683 |
#ifdef EWOULDBLOCK |
11684 |
if (errno == EWOULDBLOCK) |
11685 |
printf("EWOULDBLOCK\n"); |
11686 |
#endif |
11687 |
ok: |
11688 |
write(pu[1], buf, 1); /* Unblocks child, tell it to close our pipe */ |
11689 |
sleep(2); /* Give it time to close our pipe */ |
11690 |
alarm(5); |
11691 |
ret = read(pd[0], buf, 1); /* Should read EOF */ |
11692 |
alarm(0); |
11693 |
sprintf(string, "%d\n", ret); |
11694 |
write(4, string, strlen(string)); |
11695 |
exit(0); |
11696 |
} |
11697 |
|
11698 |
close(pd[0]); /* We write to pd[1] */ |
11699 |
close(pu[1]); /* We read from pu[0] */ |
11700 |
read(pu[0], buf, 1); /* Wait for parent to signal us we may continue */ |
11701 |
close(pd[1]); /* Pipe pd is now fully closed! */ |
11702 |
exit(0); /* Bye bye, thank you for playing! */ |
11703 |
} |
11704 |
EOCP |
11705 |
set try |
11706 |
if eval $compile_ok; then |
11707 |
echo "$startsh" >mtry |
11708 |
echo "$run ./try >try.out 2>try.ret 4>try.err || exit 4" >>mtry |
11709 |
chmod +x mtry |
11710 |
./mtry >/dev/null 2>&1 |
11711 |
case $? in |
11712 |
0) eagain=`$cat try.out`;; |
11713 |
1) echo "Could not perform non-blocking setting!";; |
11714 |
2) echo "I did a successful read() for something that was not there!";; |
11715 |
3) echo "Hmm... non-blocking I/O does not seem to be working!";; |
11716 |
4) echo "Could not find F_SETFL!";; |
11717 |
*) echo "Something terribly wrong happened during testing.";; |
11718 |
esac |
11719 |
rd_nodata=`$cat try.ret` |
11720 |
echo "A read() system call with no data present returns $rd_nodata." |
11721 |
case "$rd_nodata" in |
11722 |
0|-1) ;; |
11723 |
*) |
11724 |
echo "(That's peculiar, fixing that to be -1.)" |
11725 |
rd_nodata=-1 |
11726 |
;; |
11727 |
esac |
11728 |
case "$eagain" in |
11729 |
'') |
11730 |
echo "Forcing errno EAGAIN on read() with no data available." |
11731 |
eagain=EAGAIN |
11732 |
;; |
11733 |
*) |
11734 |
echo "Your read() sets errno to $eagain when no data is available." |
11735 |
;; |
11736 |
esac |
11737 |
status=`$cat try.err` |
11738 |
case "$status" in |
11739 |
0) echo "And it correctly returns 0 to signal EOF.";; |
11740 |
-1) echo "But it also returns -1 to signal EOF, so be careful!";; |
11741 |
*) echo "However, your read() returns '$status' on EOF??";; |
11742 |
esac |
11743 |
val="$define" |
11744 |
if test "$status" = "$rd_nodata"; then |
11745 |
echo "WARNING: you can't distinguish between EOF and no data!" |
11746 |
val="$undef" |
11747 |
fi |
11748 |
else |
11749 |
echo "I can't compile the test program--assuming errno EAGAIN will do." |
11750 |
eagain=EAGAIN |
11751 |
fi |
11752 |
set d_eofnblk |
11753 |
eval $setvar |
11754 |
;; |
11755 |
*) |
11756 |
echo "Using $hint value $eagain." |
11757 |
echo "Your read() returns $rd_nodata when no data is present." |
11758 |
case "$d_eofnblk" in |
11759 |
"$define") echo "And you can see EOF because read() returns 0.";; |
11760 |
"$undef") echo "But you can't see EOF status from read() returned value.";; |
11761 |
*) |
11762 |
echo "(Assuming you can't see EOF status from read anyway.)" |
11763 |
d_eofnblk=$undef |
11764 |
;; |
11765 |
esac |
11766 |
;; |
11767 |
esac |
11768 |
$rm -f try try.* .out core head.c mtry |
11769 |
|
11770 |
: see if _ptr and _cnt from stdio act std |
11771 |
echo " " |
11772 |
|
11773 |
if $contains '_lbfsize' `./findhdr stdio.h` >/dev/null 2>&1 ; then |
11774 |
echo "(Looks like you have stdio.h from BSD.)" |
11775 |
case "$stdio_ptr" in |
11776 |
'') stdio_ptr='((fp)->_p)' |
11777 |
ptr_lval=$define |
11778 |
;; |
11779 |
*) ptr_lval=$d_stdio_ptr_lval;; |
11780 |
esac |
11781 |
case "$stdio_cnt" in |
11782 |
'') stdio_cnt='((fp)->_r)' |
11783 |
cnt_lval=$define |
11784 |
;; |
11785 |
*) cnt_lval=$d_stdio_cnt_lval;; |
11786 |
esac |
11787 |
case "$stdio_base" in |
11788 |
'') stdio_base='((fp)->_ub._base ? (fp)->_ub._base : (fp)->_bf._base)';; |
11789 |
esac |
11790 |
case "$stdio_bufsiz" in |
11791 |
'') stdio_bufsiz='((fp)->_ub._base ? (fp)->_ub._size : (fp)->_bf._size)';; |
11792 |
esac |
11793 |
elif $contains '_IO_fpos_t' `./findhdr stdio.h` `./findhdr libio.h` >/dev/null 2>&1 ; then |
11794 |
echo "(Looks like you have stdio.h from Linux.)" |
11795 |
case "$stdio_ptr" in |
11796 |
'') stdio_ptr='((fp)->_IO_read_ptr)' |
11797 |
ptr_lval=$define |
11798 |
;; |
11799 |
*) ptr_lval=$d_stdio_ptr_lval;; |
11800 |
esac |
11801 |
case "$stdio_cnt" in |
11802 |
'') stdio_cnt='((fp)->_IO_read_end - (fp)->_IO_read_ptr)' |
11803 |
cnt_lval=$undef |
11804 |
;; |
11805 |
*) cnt_lval=$d_stdio_cnt_lval;; |
11806 |
esac |
11807 |
case "$stdio_base" in |
11808 |
'') stdio_base='((fp)->_IO_read_base)';; |
11809 |
esac |
11810 |
case "$stdio_bufsiz" in |
11811 |
'') stdio_bufsiz='((fp)->_IO_read_end - (fp)->_IO_read_base)';; |
11812 |
esac |
11813 |
else |
11814 |
case "$stdio_ptr" in |
11815 |
'') stdio_ptr='((fp)->_ptr)' |
11816 |
ptr_lval=$define |
11817 |
;; |
11818 |
*) ptr_lval=$d_stdio_ptr_lval;; |
11819 |
esac |
11820 |
case "$stdio_cnt" in |
11821 |
'') stdio_cnt='((fp)->_cnt)' |
11822 |
cnt_lval=$define |
11823 |
;; |
11824 |
*) cnt_lval=$d_stdio_cnt_lval;; |
11825 |
esac |
11826 |
case "$stdio_base" in |
11827 |
'') stdio_base='((fp)->_base)';; |
11828 |
esac |
11829 |
case "$stdio_bufsiz" in |
11830 |
'') stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)';; |
11831 |
esac |
11832 |
fi |
11833 |
|
11834 |
: test whether _ptr and _cnt really work |
11835 |
echo "Checking how std your stdio is..." >&4 |
11836 |
$cat >try.c <<EOP |
11837 |
#include <stdio.h> |
11838 |
#$i_stdlib I_STDLIB |
11839 |
#ifdef I_STDLIB |
11840 |
#include <stdlib.h> |
11841 |
#endif |
11842 |
#define FILE_ptr(fp) $stdio_ptr |
11843 |
#define FILE_cnt(fp) $stdio_cnt |
11844 |
int main() { |
11845 |
FILE *fp = fopen("try.c", "r"); |
11846 |
char c = getc(fp); |
11847 |
if ( |
11848 |
18 <= FILE_cnt(fp) && |
11849 |
strncmp(FILE_ptr(fp), "include <stdio.h>\n", 18) == 0 |
11850 |
) |
11851 |
exit(0); |
11852 |
exit(1); |
11853 |
} |
11854 |
EOP |
11855 |
val="$undef" |
11856 |
set try |
11857 |
if eval $compile && $to try.c; then |
11858 |
if $run ./try; then |
11859 |
echo "Your stdio acts pretty std." |
11860 |
val="$define" |
11861 |
else |
11862 |
echo "Your stdio isn't very std." |
11863 |
fi |
11864 |
else |
11865 |
echo "Your stdio doesn't appear very std." |
11866 |
fi |
11867 |
$rm -f try.c try |
11868 |
|
11869 |
# glibc 2.2.90 and above apparently change stdio streams so Perl's |
11870 |
# direct buffer manipulation no longer works. The Configure tests |
11871 |
# should be changed to correctly detect this, but until then, |
11872 |
# the following check should at least let perl compile and run. |
11873 |
# (This quick fix should be updated before 5.8.1.) |
11874 |
# To be defensive, reject all unknown versions, and all versions > 2.2.9. |
11875 |
# A. Dougherty, June 3, 2002. |
11876 |
case "$d_gnulibc" in |
11877 |
$define) |
11878 |
case "$gnulibc_version" in |
11879 |
2.[01]*) ;; |
11880 |
2.2) ;; |
11881 |
2.2.[0-9]) ;; |
11882 |
*) echo "But I will not snoop inside glibc $gnulibc_version stdio buffers." |
11883 |
val="$undef" |
11884 |
;; |
11885 |
esac |
11886 |
;; |
11887 |
esac |
11888 |
set d_stdstdio |
11889 |
eval $setvar |
11890 |
|
11891 |
: Can _ptr be used as an lvalue? |
11892 |
case "$d_stdstdio$ptr_lval" in |
11893 |
$define$define) val=$define ;; |
11894 |
*) val=$undef ;; |
11895 |
esac |
11896 |
set d_stdio_ptr_lval |
11897 |
eval $setvar |
11898 |
|
11899 |
: Can _cnt be used as an lvalue? |
11900 |
case "$d_stdstdio$cnt_lval" in |
11901 |
$define$define) val=$define ;; |
11902 |
*) val=$undef ;; |
11903 |
esac |
11904 |
set d_stdio_cnt_lval |
11905 |
eval $setvar |
11906 |
|
11907 |
|
11908 |
: test whether setting _ptr sets _cnt as a side effect |
11909 |
d_stdio_ptr_lval_sets_cnt="$undef" |
11910 |
d_stdio_ptr_lval_nochange_cnt="$undef" |
11911 |
case "$d_stdio_ptr_lval$d_stdstdio" in |
11912 |
$define$define) |
11913 |
echo "Checking to see what happens if we set the stdio ptr..." >&4 |
11914 |
$cat >try.c <<EOP |
11915 |
#include <stdio.h> |
11916 |
/* Can we scream? */ |
11917 |
/* Eat dust sed :-) */ |
11918 |
/* In the buffer space, no one can hear you scream. */ |
11919 |
#$i_stdlib I_STDLIB |
11920 |
#ifdef I_STDLIB |
11921 |
#include <stdlib.h> |
11922 |
#endif |
11923 |
#define FILE_ptr(fp) $stdio_ptr |
11924 |
#define FILE_cnt(fp) $stdio_cnt |
11925 |
#include <sys/types.h> |
11926 |
int main() { |
11927 |
FILE *fp = fopen("try.c", "r"); |
11928 |
int c; |
11929 |
char *ptr; |
11930 |
size_t cnt; |
11931 |
if (!fp) { |
11932 |
puts("Fail even to read"); |
11933 |
exit(1); |
11934 |
} |
11935 |
c = getc(fp); /* Read away the first # */ |
11936 |
if (c == EOF) { |
11937 |
puts("Fail even to read"); |
11938 |
exit(1); |
11939 |
} |
11940 |
if (!( |
11941 |
18 <= FILE_cnt(fp) && |
11942 |
strncmp(FILE_ptr(fp), "include <stdio.h>\n", 18) == 0 |
11943 |
)) { |
11944 |
puts("Fail even to read"); |
11945 |
exit (1); |
11946 |
} |
11947 |
ptr = (char*) FILE_ptr(fp); |
11948 |
cnt = (size_t)FILE_cnt(fp); |
11949 |
|
11950 |
FILE_ptr(fp) += 42; |
11951 |
|
11952 |
if ((char*)FILE_ptr(fp) != (ptr + 42)) { |
11953 |
printf("Fail ptr check %p != %p", FILE_ptr(fp), (ptr + 42)); |
11954 |
exit (1); |
11955 |
} |
11956 |
if (FILE_cnt(fp) <= 20) { |
11957 |
printf ("Fail (<20 chars to test)"); |
11958 |
exit (1); |
11959 |
} |
11960 |
if (strncmp(FILE_ptr(fp), "Eat dust sed :-) */\n", 20) != 0) { |
11961 |
puts("Fail compare"); |
11962 |
exit (1); |
11963 |
} |
11964 |
if (cnt == FILE_cnt(fp)) { |
11965 |
puts("Pass_unchanged"); |
11966 |
exit (0); |
11967 |
} |
11968 |
if (FILE_cnt(fp) == (cnt - 42)) { |
11969 |
puts("Pass_changed"); |
11970 |
exit (0); |
11971 |
} |
11972 |
printf("Fail count was %d now %d\n", cnt, FILE_cnt(fp)); |
11973 |
return 1; |
11974 |
|
11975 |
} |
11976 |
EOP |
11977 |
set try |
11978 |
if eval $compile && $to try.c; then |
11979 |
case `$run ./try` in |
11980 |
Pass_changed) |
11981 |
echo "Increasing ptr in your stdio decreases cnt by the same amount. Good." >&4 |
11982 |
d_stdio_ptr_lval_sets_cnt="$define" ;; |
11983 |
Pass_unchanged) |
11984 |
echo "Increasing ptr in your stdio leaves cnt unchanged. Good." >&4 |
11985 |
d_stdio_ptr_lval_nochange_cnt="$define" ;; |
11986 |
Fail*) |
11987 |
echo "Increasing ptr in your stdio didn't do exactly what I expected. We'll not be doing that then." >&4 ;; |
11988 |
*) |
11989 |
echo "It appears attempting to set ptr in your stdio is a bad plan." >&4 ;; |
11990 |
esac |
11991 |
else |
11992 |
echo "It seems we can't set ptr in your stdio. Nevermind." >&4 |
11993 |
fi |
11994 |
$rm -f try.c try |
11995 |
;; |
11996 |
esac |
11997 |
|
11998 |
: see if _base is also standard |
11999 |
val="$undef" |
12000 |
case "$d_stdstdio" in |
12001 |
$define) |
12002 |
$cat >try.c <<EOP |
12003 |
#include <stdio.h> |
12004 |
#$i_stdlib I_STDLIB |
12005 |
#ifdef I_STDLIB |
12006 |
#include <stdlib.h> |
12007 |
#endif |
12008 |
#define FILE_base(fp) $stdio_base |
12009 |
#define FILE_bufsiz(fp) $stdio_bufsiz |
12010 |
int main() { |
12011 |
FILE *fp = fopen("try.c", "r"); |
12012 |
char c = getc(fp); |
12013 |
if ( |
12014 |
19 <= FILE_bufsiz(fp) && |
12015 |
strncmp(FILE_base(fp), "#include <stdio.h>\n", 19) == 0 |
12016 |
) |
12017 |
exit(0); |
12018 |
exit(1); |
12019 |
} |
12020 |
EOP |
12021 |
set try |
12022 |
if eval $compile && $to try.c; then |
12023 |
if $run ./try; then |
12024 |
echo "And its _base field acts std." |
12025 |
val="$define" |
12026 |
else |
12027 |
echo "But its _base field isn't std." |
12028 |
fi |
12029 |
else |
12030 |
echo "However, it seems to be lacking the _base field." |
12031 |
fi |
12032 |
$rm -f try.c try |
12033 |
;; |
12034 |
esac |
12035 |
set d_stdiobase |
12036 |
eval $setvar |
12037 |
|
12038 |
: see if fast_stdio exists |
12039 |
val="$undef" |
12040 |
case "$d_stdstdio:$d_stdio_ptr_lval" in |
12041 |
"$define:$define") |
12042 |
case "$d_stdio_cnt_lval$d_stdio_ptr_lval_sets_cnt" in |
12043 |
*$define*) |
12044 |
echo "You seem to have 'fast stdio' to directly manipulate the stdio buffers." >& 4 |
12045 |
val="$define" |
12046 |
;; |
12047 |
esac |
12048 |
;; |
12049 |
esac |
12050 |
set d_faststdio |
12051 |
eval $setvar |
12052 |
|
12053 |
|
12054 |
|
12055 |
: see if fchdir exists |
12056 |
set fchdir d_fchdir |
12057 |
eval $inlibc |
12058 |
|
12059 |
: see if fchmod exists |
12060 |
set fchmod d_fchmod |
12061 |
eval $inlibc |
12062 |
|
12063 |
: see if fchown exists |
12064 |
set fchown d_fchown |
12065 |
eval $inlibc |
12066 |
|
12067 |
: see if this is an fcntl system |
12068 |
set fcntl d_fcntl |
12069 |
eval $inlibc |
12070 |
|
12071 |
echo " " |
12072 |
: See if fcntl-based locking works. |
12073 |
$cat >try.c <<EOCP |
12074 |
#$i_stdlib I_STDLIB |
12075 |
#ifdef I_STDLIB |
12076 |
#include <stdlib.h> |
12077 |
#endif |
12078 |
#include <unistd.h> |
12079 |
#include <fcntl.h> |
12080 |
#include <signal.h> |
12081 |
$signal_t blech(x) int x; { exit(3); } |
12082 |
int main() { |
12083 |
#if defined(F_SETLK) && defined(F_SETLKW) |
12084 |
struct flock flock; |
12085 |
int retval, fd; |
12086 |
fd = open("try.c", O_RDONLY); |
12087 |
flock.l_type = F_RDLCK; |
12088 |
flock.l_whence = SEEK_SET; |
12089 |
flock.l_start = flock.l_len = 0; |
12090 |
signal(SIGALRM, blech); |
12091 |
alarm(10); |
12092 |
retval = fcntl(fd, F_SETLK, &flock); |
12093 |
close(fd); |
12094 |
(retval < 0 ? exit(2) : exit(0)); |
12095 |
#else |
12096 |
exit(2); |
12097 |
#endif |
12098 |
} |
12099 |
EOCP |
12100 |
echo "Checking if fcntl-based file locking works... " |
12101 |
case "$d_fcntl" in |
12102 |
"$define") |
12103 |
set try |
12104 |
if eval $compile_ok; then |
12105 |
if $run ./try; then |
12106 |
echo "Yes, it seems to work." |
12107 |
val="$define" |
12108 |
else |
12109 |
echo "Nope, it didn't work." |
12110 |
val="$undef" |
12111 |
case "$?" in |
12112 |
3) $cat >&4 <<EOM |
12113 |
*** |
12114 |
*** I had to forcibly timeout from fcntl(..., F_SETLK, ...). |
12115 |
*** This is (almost) impossible. |
12116 |
*** If your NFS lock daemons are not feeling well, something like |
12117 |
*** this may happen, please investigate. Cannot continue, aborting. |
12118 |
*** |
12119 |
EOM |
12120 |
exit 1 |
12121 |
;; |
12122 |
esac |
12123 |
fi |
12124 |
else |
12125 |
echo "I'm unable to compile the test program, so I'll assume not." |
12126 |
val="$undef" |
12127 |
fi |
12128 |
;; |
12129 |
*) val="$undef"; |
12130 |
echo "Nope, since you don't even have fcntl()." |
12131 |
;; |
12132 |
esac |
12133 |
set d_fcntl_can_lock |
12134 |
eval $setvar |
12135 |
$rm -f try* |
12136 |
|
12137 |
|
12138 |
: check for fd_set items |
12139 |
$cat <<EOM |
12140 |
|
12141 |
Checking to see how well your C compiler handles fd_set and friends ... |
12142 |
EOM |
12143 |
$cat >try.c <<EOCP |
12144 |
#$i_stdlib I_STDLIB |
12145 |
#ifdef I_STDLIB |
12146 |
#include <stdlib.h> |
12147 |
#endif |
12148 |
#$i_systime I_SYS_TIME |
12149 |
#$i_sysselct I_SYS_SELECT |
12150 |
#$d_socket HAS_SOCKET |
12151 |
#include <sys/types.h> |
12152 |
#ifdef HAS_SOCKET |
12153 |
#include <sys/socket.h> /* Might include <sys/bsdtypes.h> */ |
12154 |
#endif |
12155 |
#ifdef I_SYS_TIME |
12156 |
#include <sys/time.h> |
12157 |
#endif |
12158 |
#ifdef I_SYS_SELECT |
12159 |
#include <sys/select.h> |
12160 |
#endif |
12161 |
int main() { |
12162 |
fd_set fds; |
12163 |
|
12164 |
#ifdef TRYBITS |
12165 |
if(fds.fds_bits); |
12166 |
#endif |
12167 |
|
12168 |
#if defined(FD_SET) && defined(FD_CLR) && defined(FD_ISSET) && defined(FD_ZERO) |
12169 |
exit(0); |
12170 |
#else |
12171 |
exit(1); |
12172 |
#endif |
12173 |
} |
12174 |
EOCP |
12175 |
set try -DTRYBITS |
12176 |
if eval $compile; then |
12177 |
d_fds_bits="$define" |
12178 |
d_fd_set="$define" |
12179 |
echo "Well, your system knows about the normal fd_set typedef..." >&4 |
12180 |
if $run ./try; then |
12181 |
echo "and you have the normal fd_set macros (just as I'd expect)." >&4 |
12182 |
d_fd_macros="$define" |
12183 |
else |
12184 |
$cat >&4 <<'EOM' |
12185 |
but not the normal fd_set macros! Gaaack! I'll have to cover for you. |
12186 |
EOM |
12187 |
d_fd_macros="$undef" |
12188 |
fi |
12189 |
else |
12190 |
$cat <<'EOM' |
12191 |
Hmm, your compiler has some difficulty with fd_set. Checking further... |
12192 |
EOM |
12193 |
set try |
12194 |
if eval $compile; then |
12195 |
d_fds_bits="$undef" |
12196 |
d_fd_set="$define" |
12197 |
echo "Well, your system has some sort of fd_set available..." >&4 |
12198 |
if $run ./try; then |
12199 |
echo "and you have the normal fd_set macros." >&4 |
12200 |
d_fd_macros="$define" |
12201 |
else |
12202 |
$cat <<'EOM' |
12203 |
but not the normal fd_set macros! Gross! More work for me... |
12204 |
EOM |
12205 |
d_fd_macros="$undef" |
12206 |
fi |
12207 |
else |
12208 |
echo "Well, you got zip. That's OK, I can roll my own fd_set stuff." >&4 |
12209 |
d_fd_set="$undef" |
12210 |
d_fds_bits="$undef" |
12211 |
d_fd_macros="$undef" |
12212 |
fi |
12213 |
fi |
12214 |
$rm -f try try.* |
12215 |
|
12216 |
: see if fgetpos exists |
12217 |
set fgetpos d_fgetpos |
12218 |
eval $inlibc |
12219 |
|
12220 |
: see if finite exists |
12221 |
set finite d_finite |
12222 |
eval $inlibc |
12223 |
|
12224 |
: see if finitel exists |
12225 |
set finitel d_finitel |
12226 |
eval $inlibc |
12227 |
|
12228 |
: see if flock exists |
12229 |
set flock d_flock |
12230 |
eval $inlibc |
12231 |
|
12232 |
: see if prototype for flock is available |
12233 |
echo " " |
12234 |
set d_flockproto flock $i_sysfile sys/file.h |
12235 |
eval $hasproto |
12236 |
|
12237 |
: see if fork exists |
12238 |
set fork d_fork |
12239 |
eval $inlibc |
12240 |
|
12241 |
: see if fp_class exists |
12242 |
set fp_class d_fp_class |
12243 |
eval $inlibc |
12244 |
|
12245 |
: see if pathconf exists |
12246 |
set pathconf d_pathconf |
12247 |
eval $inlibc |
12248 |
|
12249 |
: see if fpathconf exists |
12250 |
set fpathconf d_fpathconf |
12251 |
eval $inlibc |
12252 |
|
12253 |
: see if fpclass exists |
12254 |
set fpclass d_fpclass |
12255 |
eval $inlibc |
12256 |
|
12257 |
: see if fpclassify exists |
12258 |
set fpclassify d_fpclassify |
12259 |
eval $inlibc |
12260 |
|
12261 |
: see if fpclassl exists |
12262 |
set fpclassl d_fpclassl |
12263 |
eval $inlibc |
12264 |
|
12265 |
|
12266 |
: check for fpos64_t |
12267 |
echo " " |
12268 |
echo "Checking to see if you have fpos64_t..." >&4 |
12269 |
$cat >try.c <<EOCP |
12270 |
#include <stdio.h> |
12271 |
int main() { fpos64_t x = 7; } |
12272 |
EOCP |
12273 |
set try |
12274 |
if eval $compile; then |
12275 |
val="$define" |
12276 |
echo "You have fpos64_t." |
12277 |
else |
12278 |
val="$undef" |
12279 |
echo "You do not have fpos64_t." |
12280 |
case "$fpossize" in |
12281 |
8) echo "(Your fpos_t is 64 bits, so you could use that.)" ;; |
12282 |
esac |
12283 |
fi |
12284 |
$rm -f try.* try |
12285 |
set d_fpos64_t |
12286 |
eval $setvar |
12287 |
|
12288 |
: see if frexpl exists |
12289 |
set frexpl d_frexpl |
12290 |
eval $inlibc |
12291 |
|
12292 |
: see if this is a sys/param system |
12293 |
set sys/param.h i_sysparam |
12294 |
eval $inhdr |
12295 |
|
12296 |
: see if this is a sys/mount.h system |
12297 |
set sys/mount.h i_sysmount |
12298 |
eval $inhdr |
12299 |
|
12300 |
|
12301 |
echo " " |
12302 |
echo "Checking to see if your system supports struct fs_data..." >&4 |
12303 |
set d_fs_data_s fs_data $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h |
12304 |
eval $hasstruct |
12305 |
case "$d_fs_data_s" in |
12306 |
"$define") echo "Yes, it does." ;; |
12307 |
*) echo "No, it doesn't." ;; |
12308 |
esac |
12309 |
|
12310 |
: see if fseeko exists |
12311 |
set fseeko d_fseeko |
12312 |
eval $inlibc |
12313 |
case "$longsize" in |
12314 |
8) echo "(Your long is 64 bits, so you could use fseek.)" ;; |
12315 |
esac |
12316 |
|
12317 |
: see if fsetpos exists |
12318 |
set fsetpos d_fsetpos |
12319 |
eval $inlibc |
12320 |
|
12321 |
|
12322 |
: see if fstatfs exists |
12323 |
set fstatfs d_fstatfs |
12324 |
eval $inlibc |
12325 |
|
12326 |
|
12327 |
: see if statvfs exists |
12328 |
set statvfs d_statvfs |
12329 |
eval $inlibc |
12330 |
|
12331 |
: see if fstatvfs exists |
12332 |
set fstatvfs d_fstatvfs |
12333 |
eval $inlibc |
12334 |
|
12335 |
|
12336 |
: see if fsync exists |
12337 |
set fsync d_fsync |
12338 |
eval $inlibc |
12339 |
|
12340 |
: see if ftello exists |
12341 |
set ftello d_ftello |
12342 |
eval $inlibc |
12343 |
case "$longsize" in |
12344 |
8) echo "(Your long is 64 bits, so you could use ftell.)" ;; |
12345 |
esac |
12346 |
|
12347 |
: see if getcwd exists |
12348 |
set getcwd d_getcwd |
12349 |
eval $inlibc |
12350 |
|
12351 |
: see if getespwnam exists |
12352 |
set getespwnam d_getespwnam |
12353 |
eval $inlibc |
12354 |
|
12355 |
|
12356 |
: see if getfsstat exists |
12357 |
set getfsstat d_getfsstat |
12358 |
eval $inlibc |
12359 |
|
12360 |
: see if getgrent exists |
12361 |
set getgrent d_getgrent |
12362 |
eval $inlibc |
12363 |
|
12364 |
: see if getgrent_r exists |
12365 |
set getgrent_r d_getgrent_r |
12366 |
eval $inlibc |
12367 |
case "$d_getgrent_r" in |
12368 |
"$define") |
12369 |
hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h" |
12370 |
case "$d_getgrent_r_proto:$usethreads" in |
12371 |
":define") d_getgrent_r_proto=define |
12372 |
set d_getgrent_r_proto getgrent_r $hdrs |
12373 |
eval $hasproto ;; |
12374 |
*) ;; |
12375 |
esac |
12376 |
case "$d_getgrent_r_proto" in |
12377 |
define) |
12378 |
case "$getgrent_r_proto" in |
12379 |
''|0) try='int getgrent_r(struct group*, char*, size_t, struct group**);' |
12380 |
./protochk "extern $try" $hdrs && getgrent_r_proto=I_SBWR ;; |
12381 |
esac |
12382 |
case "$getgrent_r_proto" in |
12383 |
''|0) try='int getgrent_r(struct group*, char*, int, struct group**);' |
12384 |
./protochk "extern $try" $hdrs && getgrent_r_proto=I_SBIR ;; |
12385 |
esac |
12386 |
case "$getgrent_r_proto" in |
12387 |
''|0) try='struct group* getgrent_r(struct group*, char*, size_t);' |
12388 |
./protochk "extern $try" $hdrs && getgrent_r_proto=S_SBW ;; |
12389 |
esac |
12390 |
case "$getgrent_r_proto" in |
12391 |
''|0) try='struct group* getgrent_r(struct group*, char*, int);' |
12392 |
./protochk "extern $try" $hdrs && getgrent_r_proto=S_SBI ;; |
12393 |
esac |
12394 |
case "$getgrent_r_proto" in |
12395 |
''|0) try='int getgrent_r(struct group*, char*, int);' |
12396 |
./protochk "extern $try" $hdrs && getgrent_r_proto=I_SBI ;; |
12397 |
esac |
12398 |
case "$getgrent_r_proto" in |
12399 |
''|0) try='int getgrent_r(struct group*, char*, int, FILE**);' |
12400 |
./protochk "extern $try" $hdrs && getgrent_r_proto=I_SBIH ;; |
12401 |
esac |
12402 |
case "$getgrent_r_proto" in |
12403 |
''|0) d_getgrent_r=undef |
12404 |
getgrent_r_proto=0 |
12405 |
echo "Disabling getgrent_r, cannot determine prototype." >&4 ;; |
12406 |
* ) case "$getgrent_r_proto" in |
12407 |
REENTRANT_PROTO*) ;; |
12408 |
*) getgrent_r_proto="REENTRANT_PROTO_$getgrent_r_proto" ;; |
12409 |
esac |
12410 |
echo "Prototype: $try" ;; |
12411 |
esac |
12412 |
;; |
12413 |
*) case "$usethreads" in |
12414 |
define) echo "getgrent_r has no prototype, not using it." >&4 ;; |
12415 |
esac |
12416 |
d_getgrent_r=undef |
12417 |
getgrent_r_proto=0 |
12418 |
;; |
12419 |
esac |
12420 |
;; |
12421 |
*) getgrent_r_proto=0 |
12422 |
;; |
12423 |
esac |
12424 |
|
12425 |
: see if getgrgid_r exists |
12426 |
set getgrgid_r d_getgrgid_r |
12427 |
eval $inlibc |
12428 |
case "$d_getgrgid_r" in |
12429 |
"$define") |
12430 |
hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h" |
12431 |
case "$d_getgrgid_r_proto:$usethreads" in |
12432 |
":define") d_getgrgid_r_proto=define |
12433 |
set d_getgrgid_r_proto getgrgid_r $hdrs |
12434 |
eval $hasproto ;; |
12435 |
*) ;; |
12436 |
esac |
12437 |
case "$d_getgrgid_r_proto" in |
12438 |
define) |
12439 |
case "$getgrgid_r_proto" in |
12440 |
''|0) try='int getgrgid_r(gid_t, struct group*, char*, size_t, struct group**);' |
12441 |
./protochk "extern $try" $hdrs && getgrgid_r_proto=I_TSBWR ;; |
12442 |
esac |
12443 |
case "$getgrgid_r_proto" in |
12444 |
''|0) try='int getgrgid_r(gid_t, struct group*, char*, int, struct group**);' |
12445 |
./protochk "extern $try" $hdrs && getgrgid_r_proto=I_TSBIR ;; |
12446 |
esac |
12447 |
case "$getgrgid_r_proto" in |
12448 |
''|0) try='int getgrgid_r(gid_t, struct group*, char*, int);' |
12449 |
./protochk "extern $try" $hdrs && getgrgid_r_proto=I_TSBI ;; |
12450 |
esac |
12451 |
case "$getgrgid_r_proto" in |
12452 |
''|0) try='struct group* getgrgid_r(gid_t, struct group*, char*, int);' |
12453 |
./protochk "extern $try" $hdrs && getgrgid_r_proto=S_TSBI ;; |
12454 |
esac |
12455 |
case "$getgrgid_r_proto" in |
12456 |
''|0) d_getgrgid_r=undef |
12457 |
getgrgid_r_proto=0 |
12458 |
echo "Disabling getgrgid_r, cannot determine prototype." >&4 ;; |
12459 |
* ) case "$getgrgid_r_proto" in |
12460 |
REENTRANT_PROTO*) ;; |
12461 |
*) getgrgid_r_proto="REENTRANT_PROTO_$getgrgid_r_proto" ;; |
12462 |
esac |
12463 |
echo "Prototype: $try" ;; |
12464 |
esac |
12465 |
;; |
12466 |
*) case "$usethreads" in |
12467 |
define) echo "getgrgid_r has no prototype, not using it." >&4 ;; |
12468 |
esac |
12469 |
d_getgrgid_r=undef |
12470 |
getgrgid_r_proto=0 |
12471 |
;; |
12472 |
esac |
12473 |
;; |
12474 |
*) getgrgid_r_proto=0 |
12475 |
;; |
12476 |
esac |
12477 |
|
12478 |
: see if getgrnam_r exists |
12479 |
set getgrnam_r d_getgrnam_r |
12480 |
eval $inlibc |
12481 |
case "$d_getgrnam_r" in |
12482 |
"$define") |
12483 |
hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h" |
12484 |
case "$d_getgrnam_r_proto:$usethreads" in |
12485 |
":define") d_getgrnam_r_proto=define |
12486 |
set d_getgrnam_r_proto getgrnam_r $hdrs |
12487 |
eval $hasproto ;; |
12488 |
*) ;; |
12489 |
esac |
12490 |
case "$d_getgrnam_r_proto" in |
12491 |
define) |
12492 |
case "$getgrnam_r_proto" in |
12493 |
''|0) try='int getgrnam_r(const char*, struct group*, char*, size_t, struct group**);' |
12494 |
./protochk "extern $try" $hdrs && getgrnam_r_proto=I_CSBWR ;; |
12495 |
esac |
12496 |
case "$getgrnam_r_proto" in |
12497 |
''|0) try='int getgrnam_r(const char*, struct group*, char*, int, struct group**);' |
12498 |
./protochk "extern $try" $hdrs && getgrnam_r_proto=I_CSBIR ;; |
12499 |
esac |
12500 |
case "$getgrnam_r_proto" in |
12501 |
''|0) try='struct group* getgrnam_r(const char*, char*, int);' |
12502 |
./protochk "extern $try" $hdrs && getgrnam_r_proto=S_CBI ;; |
12503 |
esac |
12504 |
case "$getgrnam_r_proto" in |
12505 |
''|0) try='int getgrnam_r(const char*, struct group*, char*, int);' |
12506 |
./protochk "extern $try" $hdrs && getgrnam_r_proto=I_CSBI ;; |
12507 |
esac |
12508 |
case "$getgrnam_r_proto" in |
12509 |
''|0) try='struct group* getgrnam_r(const char*, struct group*, char*, int);' |
12510 |
./protochk "extern $try" $hdrs && getgrnam_r_proto=S_CSBI ;; |
12511 |
esac |
12512 |
case "$getgrnam_r_proto" in |
12513 |
''|0) d_getgrnam_r=undef |
12514 |
getgrnam_r_proto=0 |
12515 |
echo "Disabling getgrnam_r, cannot determine prototype." >&4 ;; |
12516 |
* ) case "$getgrnam_r_proto" in |
12517 |
REENTRANT_PROTO*) ;; |
12518 |
*) getgrnam_r_proto="REENTRANT_PROTO_$getgrnam_r_proto" ;; |
12519 |
esac |
12520 |
echo "Prototype: $try" ;; |
12521 |
esac |
12522 |
;; |
12523 |
*) case "$usethreads" in |
12524 |
define) echo "getgrnam_r has no prototype, not using it." >&4 ;; |
12525 |
esac |
12526 |
d_getgrnam_r=undef |
12527 |
getgrnam_r_proto=0 |
12528 |
;; |
12529 |
esac |
12530 |
;; |
12531 |
*) getgrnam_r_proto=0 |
12532 |
;; |
12533 |
esac |
12534 |
|
12535 |
: see if gethostbyaddr exists |
12536 |
set gethostbyaddr d_gethbyaddr |
12537 |
eval $inlibc |
12538 |
|
12539 |
: see if gethostbyname exists |
12540 |
set gethostbyname d_gethbyname |
12541 |
eval $inlibc |
12542 |
|
12543 |
: see if gethostent exists |
12544 |
set gethostent d_gethent |
12545 |
eval $inlibc |
12546 |
|
12547 |
: see how we will look up host name |
12548 |
echo " " |
12549 |
call='' |
12550 |
if set gethostname val -f d_gethname; eval $csym; $val; then |
12551 |
echo 'gethostname() found.' >&4 |
12552 |
d_gethname="$define" |
12553 |
call=gethostname |
12554 |
fi |
12555 |
if set uname val -f d_uname; eval $csym; $val; then |
12556 |
if ./xenix; then |
12557 |
$cat <<'EOM' |
12558 |
uname() was found, but you're running xenix, and older versions of xenix |
12559 |
have a broken uname(). If you don't really know whether your xenix is old |
12560 |
enough to have a broken system call, use the default answer. |
12561 |
|
12562 |
EOM |
12563 |
dflt=y |
12564 |
case "$d_uname" in |
12565 |
"$define") dflt=n;; |
12566 |
esac |
12567 |
rp='Is your uname() broken?' |
12568 |
. ./myread |
12569 |
case "$ans" in |
12570 |
n*) d_uname="$define"; call=uname;; |
12571 |
esac |
12572 |
else |
12573 |
echo 'uname() found.' >&4 |
12574 |
d_uname="$define" |
12575 |
case "$call" in |
12576 |
'') call=uname ;; |
12577 |
esac |
12578 |
fi |
12579 |
fi |
12580 |
case "$d_gethname" in |
12581 |
'') d_gethname="$undef";; |
12582 |
esac |
12583 |
case "$d_uname" in |
12584 |
'') d_uname="$undef";; |
12585 |
esac |
12586 |
case "$d_uname$d_gethname" in |
12587 |
*define*) |
12588 |
dflt=n |
12589 |
cat <<EOM |
12590 |
|
12591 |
Every now and then someone has a $call() that lies about the hostname |
12592 |
but can't be fixed for political or economic reasons. If you wish, I can |
12593 |
pretend $call() isn't there and maybe compute hostname at run-time |
12594 |
thanks to the '$phostname' command. |
12595 |
|
12596 |
EOM |
12597 |
rp="Shall I ignore $call() from now on?" |
12598 |
. ./myread |
12599 |
case "$ans" in |
12600 |
y*) d_uname="$undef" d_gethname="$undef"; $echo $n "Okay...$c";; |
12601 |
esac;; |
12602 |
esac |
12603 |
case "$phostname" in |
12604 |
'') aphostname='';; |
12605 |
*) case "$aphostname" in |
12606 |
/*) ;; |
12607 |
*) set X $phostname |
12608 |
shift |
12609 |
file=$1 |
12610 |
shift |
12611 |
file=`./loc $file $file $pth` |
12612 |
aphostname=`echo $file $*` |
12613 |
;; |
12614 |
esac |
12615 |
;; |
12616 |
esac |
12617 |
case "$d_uname$d_gethname" in |
12618 |
*define*) ;; |
12619 |
*) |
12620 |
case "$phostname" in |
12621 |
'') |
12622 |
echo "There will be no way for $package to get your hostname." >&4;; |
12623 |
*) |
12624 |
echo "I'll use 'popen("'"'$aphostname'", "r")'"' to get your hostname." >&4 |
12625 |
;; |
12626 |
esac;; |
12627 |
esac |
12628 |
case "$d_phostname" in |
12629 |
'') d_phostname="$undef";; |
12630 |
esac |
12631 |
|
12632 |
: see if gethostbyaddr_r exists |
12633 |
set gethostbyaddr_r d_gethostbyaddr_r |
12634 |
eval $inlibc |
12635 |
case "$d_gethostbyaddr_r" in |
12636 |
"$define") |
12637 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
12638 |
case "$d_gethostbyaddr_r_proto:$usethreads" in |
12639 |
":define") d_gethostbyaddr_r_proto=define |
12640 |
set d_gethostbyaddr_r_proto gethostbyaddr_r $hdrs |
12641 |
eval $hasproto ;; |
12642 |
*) ;; |
12643 |
esac |
12644 |
case "$d_gethostbyaddr_r_proto" in |
12645 |
define) |
12646 |
case "$gethostbyaddr_r_proto" in |
12647 |
''|0) try='int gethostbyaddr_r(const char*, size_t, int, struct hostent*, char*, size_t, struct hostent**, int*);' |
12648 |
./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=I_CWISBWRE ;; |
12649 |
esac |
12650 |
case "$gethostbyaddr_r_proto" in |
12651 |
''|0) try='struct hostent* gethostbyaddr_r(const char*, size_t, int, struct hostent*, char*, size_t, int, int*);' |
12652 |
./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=S_CWISBWIE ;; |
12653 |
esac |
12654 |
case "$gethostbyaddr_r_proto" in |
12655 |
''|0) try='struct hostent* gethostbyaddr_r(const char*, size_t, int, struct hostent*, char*, int, int*);' |
12656 |
./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=S_CWISBIE ;; |
12657 |
esac |
12658 |
case "$gethostbyaddr_r_proto" in |
12659 |
''|0) try='struct hostent* gethostbyaddr_r(const void*, size_t, int, struct hostent*, char*, int, int*);' |
12660 |
./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=S_TWISBIE ;; |
12661 |
esac |
12662 |
case "$gethostbyaddr_r_proto" in |
12663 |
''|0) try='struct hostent* gethostbyaddr_r(const char*, int, int, struct hostent*, char*, int, int*);' |
12664 |
./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=S_CIISBIE ;; |
12665 |
esac |
12666 |
case "$gethostbyaddr_r_proto" in |
12667 |
''|0) try='struct hostent* gethostbyaddr_r(const char*, struct hostent*, char*, int, int*);' |
12668 |
./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=S_CSBIE ;; |
12669 |
esac |
12670 |
case "$gethostbyaddr_r_proto" in |
12671 |
''|0) try='struct hostent* gethostbyaddr_r(const void*, struct hostent*, char*, int, int*);' |
12672 |
./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=S_TSBIE ;; |
12673 |
esac |
12674 |
case "$gethostbyaddr_r_proto" in |
12675 |
''|0) try='int gethostbyaddr_r(const char*, size_t, int, struct hostent*, struct hostent_data*);' |
12676 |
./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=I_CWISD ;; |
12677 |
esac |
12678 |
case "$gethostbyaddr_r_proto" in |
12679 |
''|0) try='int gethostbyaddr_r(const char*, int, int, struct hostent*, struct hostent_data*);' |
12680 |
./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=I_CIISD ;; |
12681 |
esac |
12682 |
case "$gethostbyaddr_r_proto" in |
12683 |
''|0) try='int gethostbyaddr_r(const char*, int, int);' |
12684 |
./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=I_CII ;; |
12685 |
esac |
12686 |
case "$gethostbyaddr_r_proto" in |
12687 |
''|0) try='int gethostbyaddr_r(const void*, socklen_t, int, struct hostent*, char*, size_t, struct hostent**, int*);' |
12688 |
./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=I_TsISBWRE ;; |
12689 |
esac |
12690 |
case "$gethostbyaddr_r_proto" in |
12691 |
''|0) d_gethostbyaddr_r=undef |
12692 |
gethostbyaddr_r_proto=0 |
12693 |
echo "Disabling gethostbyaddr_r, cannot determine prototype." >&4 ;; |
12694 |
* ) case "$gethostbyaddr_r_proto" in |
12695 |
REENTRANT_PROTO*) ;; |
12696 |
*) gethostbyaddr_r_proto="REENTRANT_PROTO_$gethostbyaddr_r_proto" ;; |
12697 |
esac |
12698 |
echo "Prototype: $try" ;; |
12699 |
esac |
12700 |
;; |
12701 |
*) case "$usethreads" in |
12702 |
define) echo "gethostbyaddr_r has no prototype, not using it." >&4 ;; |
12703 |
esac |
12704 |
d_gethostbyaddr_r=undef |
12705 |
gethostbyaddr_r_proto=0 |
12706 |
;; |
12707 |
esac |
12708 |
;; |
12709 |
*) gethostbyaddr_r_proto=0 |
12710 |
;; |
12711 |
esac |
12712 |
|
12713 |
: see if gethostbyname_r exists |
12714 |
set gethostbyname_r d_gethostbyname_r |
12715 |
eval $inlibc |
12716 |
case "$d_gethostbyname_r" in |
12717 |
"$define") |
12718 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
12719 |
case "$d_gethostbyname_r_proto:$usethreads" in |
12720 |
":define") d_gethostbyname_r_proto=define |
12721 |
set d_gethostbyname_r_proto gethostbyname_r $hdrs |
12722 |
eval $hasproto ;; |
12723 |
*) ;; |
12724 |
esac |
12725 |
case "$d_gethostbyname_r_proto" in |
12726 |
define) |
12727 |
case "$gethostbyname_r_proto" in |
12728 |
''|0) try='int gethostbyname_r(const char*, struct hostent*, char*, size_t, struct hostent**, int*);' |
12729 |
./protochk "extern $try" $hdrs && gethostbyname_r_proto=I_CSBWRE ;; |
12730 |
esac |
12731 |
case "$gethostbyname_r_proto" in |
12732 |
''|0) try='struct hostent* gethostbyname_r(const char*, struct hostent*, char*, int, int*);' |
12733 |
./protochk "extern $try" $hdrs && gethostbyname_r_proto=S_CSBIE ;; |
12734 |
esac |
12735 |
case "$gethostbyname_r_proto" in |
12736 |
''|0) try='int gethostbyname_r(const char*, struct hostent*, struct hostent_data*);' |
12737 |
./protochk "extern $try" $hdrs && gethostbyname_r_proto=I_CSD ;; |
12738 |
esac |
12739 |
case "$gethostbyname_r_proto" in |
12740 |
''|0) d_gethostbyname_r=undef |
12741 |
gethostbyname_r_proto=0 |
12742 |
echo "Disabling gethostbyname_r, cannot determine prototype." >&4 ;; |
12743 |
* ) case "$gethostbyname_r_proto" in |
12744 |
REENTRANT_PROTO*) ;; |
12745 |
*) gethostbyname_r_proto="REENTRANT_PROTO_$gethostbyname_r_proto" ;; |
12746 |
esac |
12747 |
echo "Prototype: $try" ;; |
12748 |
esac |
12749 |
;; |
12750 |
*) case "$usethreads" in |
12751 |
define) echo "gethostbyname_r has no prototype, not using it." >&4 ;; |
12752 |
esac |
12753 |
d_gethostbyname_r=undef |
12754 |
gethostbyname_r_proto=0 |
12755 |
;; |
12756 |
esac |
12757 |
;; |
12758 |
*) gethostbyname_r_proto=0 |
12759 |
;; |
12760 |
esac |
12761 |
|
12762 |
: see if gethostent_r exists |
12763 |
set gethostent_r d_gethostent_r |
12764 |
eval $inlibc |
12765 |
case "$d_gethostent_r" in |
12766 |
"$define") |
12767 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
12768 |
case "$d_gethostent_r_proto:$usethreads" in |
12769 |
":define") d_gethostent_r_proto=define |
12770 |
set d_gethostent_r_proto gethostent_r $hdrs |
12771 |
eval $hasproto ;; |
12772 |
*) ;; |
12773 |
esac |
12774 |
case "$d_gethostent_r_proto" in |
12775 |
define) |
12776 |
case "$gethostent_r_proto" in |
12777 |
''|0) try='int gethostent_r(struct hostent*, char*, size_t, struct hostent**, int*);' |
12778 |
./protochk "extern $try" $hdrs && gethostent_r_proto=I_SBWRE ;; |
12779 |
esac |
12780 |
case "$gethostent_r_proto" in |
12781 |
''|0) try='int gethostent_r(struct hostent*, char*, int, int*);' |
12782 |
./protochk "extern $try" $hdrs && gethostent_r_proto=I_SBIE ;; |
12783 |
esac |
12784 |
case "$gethostent_r_proto" in |
12785 |
''|0) try='struct hostent* gethostent_r(struct hostent*, char*, int, int*);' |
12786 |
./protochk "extern $try" $hdrs && gethostent_r_proto=S_SBIE ;; |
12787 |
esac |
12788 |
case "$gethostent_r_proto" in |
12789 |
''|0) try='struct hostent* gethostent_r(struct hostent*, char*, int);' |
12790 |
./protochk "extern $try" $hdrs && gethostent_r_proto=S_SBI ;; |
12791 |
esac |
12792 |
case "$gethostent_r_proto" in |
12793 |
''|0) try='int gethostent_r(struct hostent*, char*, int);' |
12794 |
./protochk "extern $try" $hdrs && gethostent_r_proto=I_SBI ;; |
12795 |
esac |
12796 |
case "$gethostent_r_proto" in |
12797 |
''|0) try='int gethostent_r(struct hostent*, struct hostent_data*);' |
12798 |
./protochk "extern $try" $hdrs && gethostent_r_proto=I_SD ;; |
12799 |
esac |
12800 |
case "$gethostent_r_proto" in |
12801 |
''|0) d_gethostent_r=undef |
12802 |
gethostent_r_proto=0 |
12803 |
echo "Disabling gethostent_r, cannot determine prototype." >&4 ;; |
12804 |
* ) case "$gethostent_r_proto" in |
12805 |
REENTRANT_PROTO*) ;; |
12806 |
*) gethostent_r_proto="REENTRANT_PROTO_$gethostent_r_proto" ;; |
12807 |
esac |
12808 |
echo "Prototype: $try" ;; |
12809 |
esac |
12810 |
;; |
12811 |
*) case "$usethreads" in |
12812 |
define) echo "gethostent_r has no prototype, not using it." >&4 ;; |
12813 |
esac |
12814 |
d_gethostent_r=undef |
12815 |
gethostent_r_proto=0 |
12816 |
;; |
12817 |
esac |
12818 |
;; |
12819 |
*) gethostent_r_proto=0 |
12820 |
;; |
12821 |
esac |
12822 |
|
12823 |
: see if prototypes for various gethostxxx netdb.h functions are available |
12824 |
echo " " |
12825 |
set d_gethostprotos gethostent $i_netdb netdb.h |
12826 |
eval $hasproto |
12827 |
|
12828 |
: see if getitimer exists |
12829 |
set getitimer d_getitimer |
12830 |
eval $inlibc |
12831 |
|
12832 |
: see if getlogin exists |
12833 |
set getlogin d_getlogin |
12834 |
eval $inlibc |
12835 |
|
12836 |
: see if getlogin_r exists |
12837 |
set getlogin_r d_getlogin_r |
12838 |
eval $inlibc |
12839 |
case "$d_getlogin_r" in |
12840 |
"$define") |
12841 |
hdrs="$i_systypes sys/types.h define stdio.h $i_unistd unistd.h" |
12842 |
case "$d_getlogin_r_proto:$usethreads" in |
12843 |
":define") d_getlogin_r_proto=define |
12844 |
set d_getlogin_r_proto getlogin_r $hdrs |
12845 |
eval $hasproto ;; |
12846 |
*) ;; |
12847 |
esac |
12848 |
case "$d_getlogin_r_proto" in |
12849 |
define) |
12850 |
case "$getlogin_r_proto" in |
12851 |
''|0) try='int getlogin_r(char*, size_t);' |
12852 |
./protochk "extern $try" $hdrs && getlogin_r_proto=I_BW ;; |
12853 |
esac |
12854 |
case "$getlogin_r_proto" in |
12855 |
''|0) try='int getlogin_r(char*, int);' |
12856 |
./protochk "extern $try" $hdrs && getlogin_r_proto=I_BI ;; |
12857 |
esac |
12858 |
case "$getlogin_r_proto" in |
12859 |
''|0) try='char* getlogin_r(char*, size_t);' |
12860 |
./protochk "extern $try" $hdrs && getlogin_r_proto=B_BW ;; |
12861 |
esac |
12862 |
case "$getlogin_r_proto" in |
12863 |
''|0) try='char* getlogin_r(char*, int);' |
12864 |
./protochk "extern $try" $hdrs && getlogin_r_proto=B_BI ;; |
12865 |
esac |
12866 |
case "$getlogin_r_proto" in |
12867 |
''|0) d_getlogin_r=undef |
12868 |
getlogin_r_proto=0 |
12869 |
echo "Disabling getlogin_r, cannot determine prototype." >&4 ;; |
12870 |
* ) case "$getlogin_r_proto" in |
12871 |
REENTRANT_PROTO*) ;; |
12872 |
*) getlogin_r_proto="REENTRANT_PROTO_$getlogin_r_proto" ;; |
12873 |
esac |
12874 |
echo "Prototype: $try" ;; |
12875 |
esac |
12876 |
;; |
12877 |
*) case "$usethreads" in |
12878 |
define) echo "getlogin_r has no prototype, not using it." >&4 ;; |
12879 |
esac |
12880 |
d_getlogin_r=undef |
12881 |
getlogin_r_proto=0 |
12882 |
;; |
12883 |
esac |
12884 |
;; |
12885 |
*) getlogin_r_proto=0 |
12886 |
;; |
12887 |
esac |
12888 |
|
12889 |
: see if getmnt exists |
12890 |
set getmnt d_getmnt |
12891 |
eval $inlibc |
12892 |
|
12893 |
: see if getmntent exists |
12894 |
set getmntent d_getmntent |
12895 |
eval $inlibc |
12896 |
|
12897 |
: see if getnetbyaddr exists |
12898 |
set getnetbyaddr d_getnbyaddr |
12899 |
eval $inlibc |
12900 |
|
12901 |
: see if getnetbyname exists |
12902 |
set getnetbyname d_getnbyname |
12903 |
eval $inlibc |
12904 |
|
12905 |
: see if getnetent exists |
12906 |
set getnetent d_getnent |
12907 |
eval $inlibc |
12908 |
|
12909 |
: see if getnetbyaddr_r exists |
12910 |
set getnetbyaddr_r d_getnetbyaddr_r |
12911 |
eval $inlibc |
12912 |
case "$d_getnetbyaddr_r" in |
12913 |
"$define") |
12914 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
12915 |
case "$d_getnetbyaddr_r_proto:$usethreads" in |
12916 |
":define") d_getnetbyaddr_r_proto=define |
12917 |
set d_getnetbyaddr_r_proto getnetbyaddr_r $hdrs |
12918 |
eval $hasproto ;; |
12919 |
*) ;; |
12920 |
esac |
12921 |
case "$d_getnetbyaddr_r_proto" in |
12922 |
define) |
12923 |
case "$getnetbyaddr_r_proto" in |
12924 |
''|0) try='int getnetbyaddr_r(unsigned long, int, struct netent*, char*, size_t, struct netent**, int*);' |
12925 |
./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=I_UISBWRE ;; |
12926 |
esac |
12927 |
case "$getnetbyaddr_r_proto" in |
12928 |
''|0) try='int getnetbyaddr_r(long, int, struct netent*, char*, int);' |
12929 |
./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=I_LISBI ;; |
12930 |
esac |
12931 |
case "$getnetbyaddr_r_proto" in |
12932 |
''|0) try='struct netent* getnetbyaddr_r(in_addr_t, int, struct netent*, char*, int);' |
12933 |
./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=S_TISBI ;; |
12934 |
esac |
12935 |
case "$getnetbyaddr_r_proto" in |
12936 |
''|0) try='struct netent* getnetbyaddr_r(long, int, struct netent*, char*, int);' |
12937 |
./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=S_LISBI ;; |
12938 |
esac |
12939 |
case "$getnetbyaddr_r_proto" in |
12940 |
''|0) try='int getnetbyaddr_r(in_addr_t, int, struct netent*, struct netent_data*);' |
12941 |
./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=I_TISD ;; |
12942 |
esac |
12943 |
case "$getnetbyaddr_r_proto" in |
12944 |
''|0) try='int getnetbyaddr_r(long, int, struct netent*, struct netent_data*);' |
12945 |
./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=I_LISD ;; |
12946 |
esac |
12947 |
case "$getnetbyaddr_r_proto" in |
12948 |
''|0) try='int getnetbyaddr_r(int, int, struct netent*, struct netent_data*);' |
12949 |
./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=I_IISD ;; |
12950 |
esac |
12951 |
case "$getnetbyaddr_r_proto" in |
12952 |
''|0) try='int getnetbyaddr_r(uint32_t, int, struct netent*, char*, size_t, struct netent**, int*);' |
12953 |
./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=I_uISBWRE ;; |
12954 |
esac |
12955 |
case "$getnetbyaddr_r_proto" in |
12956 |
''|0) d_getnetbyaddr_r=undef |
12957 |
getnetbyaddr_r_proto=0 |
12958 |
echo "Disabling getnetbyaddr_r, cannot determine prototype." >&4 ;; |
12959 |
* ) case "$getnetbyaddr_r_proto" in |
12960 |
REENTRANT_PROTO*) ;; |
12961 |
*) getnetbyaddr_r_proto="REENTRANT_PROTO_$getnetbyaddr_r_proto" ;; |
12962 |
esac |
12963 |
echo "Prototype: $try" ;; |
12964 |
esac |
12965 |
;; |
12966 |
*) case "$usethreads" in |
12967 |
define) echo "getnetbyaddr_r has no prototype, not using it." >&4 ;; |
12968 |
esac |
12969 |
d_getnetbyaddr_r=undef |
12970 |
getnetbyaddr_r_proto=0 |
12971 |
;; |
12972 |
esac |
12973 |
;; |
12974 |
*) getnetbyaddr_r_proto=0 |
12975 |
;; |
12976 |
esac |
12977 |
|
12978 |
: see if getnetbyname_r exists |
12979 |
set getnetbyname_r d_getnetbyname_r |
12980 |
eval $inlibc |
12981 |
case "$d_getnetbyname_r" in |
12982 |
"$define") |
12983 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
12984 |
case "$d_getnetbyname_r_proto:$usethreads" in |
12985 |
":define") d_getnetbyname_r_proto=define |
12986 |
set d_getnetbyname_r_proto getnetbyname_r $hdrs |
12987 |
eval $hasproto ;; |
12988 |
*) ;; |
12989 |
esac |
12990 |
case "$d_getnetbyname_r_proto" in |
12991 |
define) |
12992 |
case "$getnetbyname_r_proto" in |
12993 |
''|0) try='int getnetbyname_r(const char*, struct netent*, char*, size_t, struct netent**, int*);' |
12994 |
./protochk "extern $try" $hdrs && getnetbyname_r_proto=I_CSBWRE ;; |
12995 |
esac |
12996 |
case "$getnetbyname_r_proto" in |
12997 |
''|0) try='int getnetbyname_r(const char*, struct netent*, char*, int);' |
12998 |
./protochk "extern $try" $hdrs && getnetbyname_r_proto=I_CSBI ;; |
12999 |
esac |
13000 |
case "$getnetbyname_r_proto" in |
13001 |
''|0) try='struct netent* getnetbyname_r(const char*, struct netent*, char*, int);' |
13002 |
./protochk "extern $try" $hdrs && getnetbyname_r_proto=S_CSBI ;; |
13003 |
esac |
13004 |
case "$getnetbyname_r_proto" in |
13005 |
''|0) try='int getnetbyname_r(const char*, struct netent*, struct netent_data*);' |
13006 |
./protochk "extern $try" $hdrs && getnetbyname_r_proto=I_CSD ;; |
13007 |
esac |
13008 |
case "$getnetbyname_r_proto" in |
13009 |
''|0) d_getnetbyname_r=undef |
13010 |
getnetbyname_r_proto=0 |
13011 |
echo "Disabling getnetbyname_r, cannot determine prototype." >&4 ;; |
13012 |
* ) case "$getnetbyname_r_proto" in |
13013 |
REENTRANT_PROTO*) ;; |
13014 |
*) getnetbyname_r_proto="REENTRANT_PROTO_$getnetbyname_r_proto" ;; |
13015 |
esac |
13016 |
echo "Prototype: $try" ;; |
13017 |
esac |
13018 |
;; |
13019 |
*) case "$usethreads" in |
13020 |
define) echo "getnetbyname_r has no prototype, not using it." >&4 ;; |
13021 |
esac |
13022 |
d_getnetbyname_r=undef |
13023 |
getnetbyname_r_proto=0 |
13024 |
;; |
13025 |
esac |
13026 |
;; |
13027 |
*) getnetbyname_r_proto=0 |
13028 |
;; |
13029 |
esac |
13030 |
|
13031 |
: see if getnetent_r exists |
13032 |
set getnetent_r d_getnetent_r |
13033 |
eval $inlibc |
13034 |
case "$d_getnetent_r" in |
13035 |
"$define") |
13036 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
13037 |
case "$d_getnetent_r_proto:$usethreads" in |
13038 |
":define") d_getnetent_r_proto=define |
13039 |
set d_getnetent_r_proto getnetent_r $hdrs |
13040 |
eval $hasproto ;; |
13041 |
*) ;; |
13042 |
esac |
13043 |
case "$d_getnetent_r_proto" in |
13044 |
define) |
13045 |
case "$getnetent_r_proto" in |
13046 |
''|0) try='int getnetent_r(struct netent*, char*, size_t, struct netent**, int*);' |
13047 |
./protochk "extern $try" $hdrs && getnetent_r_proto=I_SBWRE ;; |
13048 |
esac |
13049 |
case "$getnetent_r_proto" in |
13050 |
''|0) try='int getnetent_r(struct netent*, char*, int, int*);' |
13051 |
./protochk "extern $try" $hdrs && getnetent_r_proto=I_SBIE ;; |
13052 |
esac |
13053 |
case "$getnetent_r_proto" in |
13054 |
''|0) try='struct netent* getnetent_r(struct netent*, char*, int, int*);' |
13055 |
./protochk "extern $try" $hdrs && getnetent_r_proto=S_SBIE ;; |
13056 |
esac |
13057 |
case "$getnetent_r_proto" in |
13058 |
''|0) try='struct netent* getnetent_r(struct netent*, char*, int);' |
13059 |
./protochk "extern $try" $hdrs && getnetent_r_proto=S_SBI ;; |
13060 |
esac |
13061 |
case "$getnetent_r_proto" in |
13062 |
''|0) try='int getnetent_r(struct netent*, char*, int);' |
13063 |
./protochk "extern $try" $hdrs && getnetent_r_proto=I_SBI ;; |
13064 |
esac |
13065 |
case "$getnetent_r_proto" in |
13066 |
''|0) try='int getnetent_r(struct netent*, struct netent_data*);' |
13067 |
./protochk "extern $try" $hdrs && getnetent_r_proto=I_SD ;; |
13068 |
esac |
13069 |
case "$getnetent_r_proto" in |
13070 |
''|0) d_getnetent_r=undef |
13071 |
getnetent_r_proto=0 |
13072 |
echo "Disabling getnetent_r, cannot determine prototype." >&4 ;; |
13073 |
* ) case "$getnetent_r_proto" in |
13074 |
REENTRANT_PROTO*) ;; |
13075 |
*) getnetent_r_proto="REENTRANT_PROTO_$getnetent_r_proto" ;; |
13076 |
esac |
13077 |
echo "Prototype: $try" ;; |
13078 |
esac |
13079 |
;; |
13080 |
*) case "$usethreads" in |
13081 |
define) echo "getnetent_r has no prototype, not using it." >&4 ;; |
13082 |
esac |
13083 |
d_getnetent_r=undef |
13084 |
getnetent_r_proto=0 |
13085 |
;; |
13086 |
esac |
13087 |
;; |
13088 |
*) getnetent_r_proto=0 |
13089 |
;; |
13090 |
esac |
13091 |
|
13092 |
: see if prototypes for various getnetxxx netdb.h functions are available |
13093 |
echo " " |
13094 |
set d_getnetprotos getnetent $i_netdb netdb.h |
13095 |
eval $hasproto |
13096 |
|
13097 |
: see if getpagesize exists |
13098 |
set getpagesize d_getpagsz |
13099 |
eval $inlibc |
13100 |
|
13101 |
|
13102 |
: see if getprotobyname exists |
13103 |
set getprotobyname d_getpbyname |
13104 |
eval $inlibc |
13105 |
|
13106 |
: see if getprotobynumber exists |
13107 |
set getprotobynumber d_getpbynumber |
13108 |
eval $inlibc |
13109 |
|
13110 |
: see if getprotoent exists |
13111 |
set getprotoent d_getpent |
13112 |
eval $inlibc |
13113 |
|
13114 |
: see if getpgid exists |
13115 |
set getpgid d_getpgid |
13116 |
eval $inlibc |
13117 |
|
13118 |
: see if getpgrp2 exists |
13119 |
set getpgrp2 d_getpgrp2 |
13120 |
eval $inlibc |
13121 |
|
13122 |
: see if getppid exists |
13123 |
set getppid d_getppid |
13124 |
eval $inlibc |
13125 |
|
13126 |
: see if getpriority exists |
13127 |
set getpriority d_getprior |
13128 |
eval $inlibc |
13129 |
|
13130 |
: see if getprotobyname_r exists |
13131 |
set getprotobyname_r d_getprotobyname_r |
13132 |
eval $inlibc |
13133 |
case "$d_getprotobyname_r" in |
13134 |
"$define") |
13135 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
13136 |
case "$d_getprotobyname_r_proto:$usethreads" in |
13137 |
":define") d_getprotobyname_r_proto=define |
13138 |
set d_getprotobyname_r_proto getprotobyname_r $hdrs |
13139 |
eval $hasproto ;; |
13140 |
*) ;; |
13141 |
esac |
13142 |
case "$d_getprotobyname_r_proto" in |
13143 |
define) |
13144 |
case "$getprotobyname_r_proto" in |
13145 |
''|0) try='int getprotobyname_r(const char*, struct protoent*, char*, size_t, struct protoent**);' |
13146 |
./protochk "extern $try" $hdrs && getprotobyname_r_proto=I_CSBWR ;; |
13147 |
esac |
13148 |
case "$getprotobyname_r_proto" in |
13149 |
''|0) try='struct protoent* getprotobyname_r(const char*, struct protoent*, char*, int);' |
13150 |
./protochk "extern $try" $hdrs && getprotobyname_r_proto=S_CSBI ;; |
13151 |
esac |
13152 |
case "$getprotobyname_r_proto" in |
13153 |
''|0) try='int getprotobyname_r(const char*, struct protoent*, struct protoent_data*);' |
13154 |
./protochk "extern $try" $hdrs && getprotobyname_r_proto=I_CSD ;; |
13155 |
esac |
13156 |
case "$getprotobyname_r_proto" in |
13157 |
''|0) d_getprotobyname_r=undef |
13158 |
getprotobyname_r_proto=0 |
13159 |
echo "Disabling getprotobyname_r, cannot determine prototype." >&4 ;; |
13160 |
* ) case "$getprotobyname_r_proto" in |
13161 |
REENTRANT_PROTO*) ;; |
13162 |
*) getprotobyname_r_proto="REENTRANT_PROTO_$getprotobyname_r_proto" ;; |
13163 |
esac |
13164 |
echo "Prototype: $try" ;; |
13165 |
esac |
13166 |
;; |
13167 |
*) case "$usethreads" in |
13168 |
define) echo "getprotobyname_r has no prototype, not using it." >&4 ;; |
13169 |
esac |
13170 |
d_getprotobyname_r=undef |
13171 |
getprotobyname_r_proto=0 |
13172 |
;; |
13173 |
esac |
13174 |
;; |
13175 |
*) getprotobyname_r_proto=0 |
13176 |
;; |
13177 |
esac |
13178 |
|
13179 |
: see if getprotobynumber_r exists |
13180 |
set getprotobynumber_r d_getprotobynumber_r |
13181 |
eval $inlibc |
13182 |
case "$d_getprotobynumber_r" in |
13183 |
"$define") |
13184 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
13185 |
case "$d_getprotobynumber_r_proto:$usethreads" in |
13186 |
":define") d_getprotobynumber_r_proto=define |
13187 |
set d_getprotobynumber_r_proto getprotobynumber_r $hdrs |
13188 |
eval $hasproto ;; |
13189 |
*) ;; |
13190 |
esac |
13191 |
case "$d_getprotobynumber_r_proto" in |
13192 |
define) |
13193 |
case "$getprotobynumber_r_proto" in |
13194 |
''|0) try='int getprotobynumber_r(int, struct protoent*, char*, size_t, struct protoent**);' |
13195 |
./protochk "extern $try" $hdrs && getprotobynumber_r_proto=I_ISBWR ;; |
13196 |
esac |
13197 |
case "$getprotobynumber_r_proto" in |
13198 |
''|0) try='struct protoent* getprotobynumber_r(int, struct protoent*, char*, int);' |
13199 |
./protochk "extern $try" $hdrs && getprotobynumber_r_proto=S_ISBI ;; |
13200 |
esac |
13201 |
case "$getprotobynumber_r_proto" in |
13202 |
''|0) try='int getprotobynumber_r(int, struct protoent*, struct protoent_data*);' |
13203 |
./protochk "extern $try" $hdrs && getprotobynumber_r_proto=I_ISD ;; |
13204 |
esac |
13205 |
case "$getprotobynumber_r_proto" in |
13206 |
''|0) d_getprotobynumber_r=undef |
13207 |
getprotobynumber_r_proto=0 |
13208 |
echo "Disabling getprotobynumber_r, cannot determine prototype." >&4 ;; |
13209 |
* ) case "$getprotobynumber_r_proto" in |
13210 |
REENTRANT_PROTO*) ;; |
13211 |
*) getprotobynumber_r_proto="REENTRANT_PROTO_$getprotobynumber_r_proto" ;; |
13212 |
esac |
13213 |
echo "Prototype: $try" ;; |
13214 |
esac |
13215 |
;; |
13216 |
*) case "$usethreads" in |
13217 |
define) echo "getprotobynumber_r has no prototype, not using it." >&4 ;; |
13218 |
esac |
13219 |
d_getprotobynumber_r=undef |
13220 |
getprotobynumber_r_proto=0 |
13221 |
;; |
13222 |
esac |
13223 |
;; |
13224 |
*) getprotobynumber_r_proto=0 |
13225 |
;; |
13226 |
esac |
13227 |
|
13228 |
: see if getprotoent_r exists |
13229 |
set getprotoent_r d_getprotoent_r |
13230 |
eval $inlibc |
13231 |
case "$d_getprotoent_r" in |
13232 |
"$define") |
13233 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
13234 |
case "$d_getprotoent_r_proto:$usethreads" in |
13235 |
":define") d_getprotoent_r_proto=define |
13236 |
set d_getprotoent_r_proto getprotoent_r $hdrs |
13237 |
eval $hasproto ;; |
13238 |
*) ;; |
13239 |
esac |
13240 |
case "$d_getprotoent_r_proto" in |
13241 |
define) |
13242 |
case "$getprotoent_r_proto" in |
13243 |
''|0) try='int getprotoent_r(struct protoent*, char*, size_t, struct protoent**);' |
13244 |
./protochk "extern $try" $hdrs && getprotoent_r_proto=I_SBWR ;; |
13245 |
esac |
13246 |
case "$getprotoent_r_proto" in |
13247 |
''|0) try='int getprotoent_r(struct protoent*, char*, int);' |
13248 |
./protochk "extern $try" $hdrs && getprotoent_r_proto=I_SBI ;; |
13249 |
esac |
13250 |
case "$getprotoent_r_proto" in |
13251 |
''|0) try='struct protoent* getprotoent_r(struct protoent*, char*, int);' |
13252 |
./protochk "extern $try" $hdrs && getprotoent_r_proto=S_SBI ;; |
13253 |
esac |
13254 |
case "$getprotoent_r_proto" in |
13255 |
''|0) try='int getprotoent_r(struct protoent*, struct protoent_data*);' |
13256 |
./protochk "extern $try" $hdrs && getprotoent_r_proto=I_SD ;; |
13257 |
esac |
13258 |
case "$getprotoent_r_proto" in |
13259 |
''|0) d_getprotoent_r=undef |
13260 |
getprotoent_r_proto=0 |
13261 |
echo "Disabling getprotoent_r, cannot determine prototype." >&4 ;; |
13262 |
* ) case "$getprotoent_r_proto" in |
13263 |
REENTRANT_PROTO*) ;; |
13264 |
*) getprotoent_r_proto="REENTRANT_PROTO_$getprotoent_r_proto" ;; |
13265 |
esac |
13266 |
echo "Prototype: $try" ;; |
13267 |
esac |
13268 |
;; |
13269 |
*) case "$usethreads" in |
13270 |
define) echo "getprotoent_r has no prototype, not using it." >&4 ;; |
13271 |
esac |
13272 |
d_getprotoent_r=undef |
13273 |
getprotoent_r_proto=0 |
13274 |
;; |
13275 |
esac |
13276 |
;; |
13277 |
*) getprotoent_r_proto=0 |
13278 |
;; |
13279 |
esac |
13280 |
|
13281 |
: see if prototypes for various getprotoxxx netdb.h functions are available |
13282 |
echo " " |
13283 |
set d_getprotoprotos getprotoent $i_netdb netdb.h |
13284 |
eval $hasproto |
13285 |
|
13286 |
: see if getprpwnam exists |
13287 |
set getprpwnam d_getprpwnam |
13288 |
eval $inlibc |
13289 |
|
13290 |
: see if getpwent exists |
13291 |
set getpwent d_getpwent |
13292 |
eval $inlibc |
13293 |
|
13294 |
: see if getpwent_r exists |
13295 |
set getpwent_r d_getpwent_r |
13296 |
eval $inlibc |
13297 |
case "$d_getpwent_r" in |
13298 |
"$define") |
13299 |
hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h" |
13300 |
case "$d_getpwent_r_proto:$usethreads" in |
13301 |
":define") d_getpwent_r_proto=define |
13302 |
set d_getpwent_r_proto getpwent_r $hdrs |
13303 |
eval $hasproto ;; |
13304 |
*) ;; |
13305 |
esac |
13306 |
case "$d_getpwent_r_proto" in |
13307 |
define) |
13308 |
case "$getpwent_r_proto" in |
13309 |
''|0) try='int getpwent_r(struct passwd*, char*, size_t, struct passwd**);' |
13310 |
./protochk "extern $try" $hdrs && getpwent_r_proto=I_SBWR ;; |
13311 |
esac |
13312 |
case "$getpwent_r_proto" in |
13313 |
''|0) try='int getpwent_r(struct passwd*, char*, int, struct passwd**);' |
13314 |
./protochk "extern $try" $hdrs && getpwent_r_proto=I_SBIR ;; |
13315 |
esac |
13316 |
case "$getpwent_r_proto" in |
13317 |
''|0) try='struct passwd* getpwent_r(struct passwd*, char*, size_t);' |
13318 |
./protochk "extern $try" $hdrs && getpwent_r_proto=S_SBW ;; |
13319 |
esac |
13320 |
case "$getpwent_r_proto" in |
13321 |
''|0) try='struct passwd* getpwent_r(struct passwd*, char*, int);' |
13322 |
./protochk "extern $try" $hdrs && getpwent_r_proto=S_SBI ;; |
13323 |
esac |
13324 |
case "$getpwent_r_proto" in |
13325 |
''|0) try='int getpwent_r(struct passwd*, char*, int);' |
13326 |
./protochk "extern $try" $hdrs && getpwent_r_proto=I_SBI ;; |
13327 |
esac |
13328 |
case "$getpwent_r_proto" in |
13329 |
''|0) try='int getpwent_r(struct passwd*, char*, int, FILE**);' |
13330 |
./protochk "extern $try" $hdrs && getpwent_r_proto=I_SBIH ;; |
13331 |
esac |
13332 |
case "$getpwent_r_proto" in |
13333 |
''|0) d_getpwent_r=undef |
13334 |
getpwent_r_proto=0 |
13335 |
echo "Disabling getpwent_r, cannot determine prototype." >&4 ;; |
13336 |
* ) case "$getpwent_r_proto" in |
13337 |
REENTRANT_PROTO*) ;; |
13338 |
*) getpwent_r_proto="REENTRANT_PROTO_$getpwent_r_proto" ;; |
13339 |
esac |
13340 |
echo "Prototype: $try" ;; |
13341 |
esac |
13342 |
;; |
13343 |
*) case "$usethreads" in |
13344 |
define) echo "getpwent_r has no prototype, not using it." >&4 ;; |
13345 |
esac |
13346 |
d_getpwent_r=undef |
13347 |
getpwent_r_proto=0 |
13348 |
;; |
13349 |
esac |
13350 |
;; |
13351 |
*) getpwent_r_proto=0 |
13352 |
;; |
13353 |
esac |
13354 |
|
13355 |
: see if getpwnam_r exists |
13356 |
set getpwnam_r d_getpwnam_r |
13357 |
eval $inlibc |
13358 |
case "$d_getpwnam_r" in |
13359 |
"$define") |
13360 |
hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h" |
13361 |
case "$d_getpwnam_r_proto:$usethreads" in |
13362 |
":define") d_getpwnam_r_proto=define |
13363 |
set d_getpwnam_r_proto getpwnam_r $hdrs |
13364 |
eval $hasproto ;; |
13365 |
*) ;; |
13366 |
esac |
13367 |
case "$d_getpwnam_r_proto" in |
13368 |
define) |
13369 |
case "$getpwnam_r_proto" in |
13370 |
''|0) try='int getpwnam_r(const char*, struct passwd*, char*, size_t, struct passwd**);' |
13371 |
./protochk "extern $try" $hdrs && getpwnam_r_proto=I_CSBWR ;; |
13372 |
esac |
13373 |
case "$getpwnam_r_proto" in |
13374 |
''|0) try='int getpwnam_r(const char*, struct passwd*, char*, int, struct passwd**);' |
13375 |
./protochk "extern $try" $hdrs && getpwnam_r_proto=I_CSBIR ;; |
13376 |
esac |
13377 |
case "$getpwnam_r_proto" in |
13378 |
''|0) try='struct passwd* getpwnam_r(const char*, struct passwd*, char*, int);' |
13379 |
./protochk "extern $try" $hdrs && getpwnam_r_proto=S_CSBI ;; |
13380 |
esac |
13381 |
case "$getpwnam_r_proto" in |
13382 |
''|0) try='int getpwnam_r(const char*, struct passwd*, char*, int);' |
13383 |
./protochk "extern $try" $hdrs && getpwnam_r_proto=I_CSBI ;; |
13384 |
esac |
13385 |
case "$getpwnam_r_proto" in |
13386 |
''|0) d_getpwnam_r=undef |
13387 |
getpwnam_r_proto=0 |
13388 |
echo "Disabling getpwnam_r, cannot determine prototype." >&4 ;; |
13389 |
* ) case "$getpwnam_r_proto" in |
13390 |
REENTRANT_PROTO*) ;; |
13391 |
*) getpwnam_r_proto="REENTRANT_PROTO_$getpwnam_r_proto" ;; |
13392 |
esac |
13393 |
echo "Prototype: $try" ;; |
13394 |
esac |
13395 |
;; |
13396 |
*) case "$usethreads" in |
13397 |
define) echo "getpwnam_r has no prototype, not using it." >&4 ;; |
13398 |
esac |
13399 |
d_getpwnam_r=undef |
13400 |
getpwnam_r_proto=0 |
13401 |
;; |
13402 |
esac |
13403 |
;; |
13404 |
*) getpwnam_r_proto=0 |
13405 |
;; |
13406 |
esac |
13407 |
|
13408 |
: see if getpwuid_r exists |
13409 |
set getpwuid_r d_getpwuid_r |
13410 |
eval $inlibc |
13411 |
case "$d_getpwuid_r" in |
13412 |
"$define") |
13413 |
hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h" |
13414 |
case "$d_getpwuid_r_proto:$usethreads" in |
13415 |
":define") d_getpwuid_r_proto=define |
13416 |
set d_getpwuid_r_proto getpwuid_r $hdrs |
13417 |
eval $hasproto ;; |
13418 |
*) ;; |
13419 |
esac |
13420 |
case "$d_getpwuid_r_proto" in |
13421 |
define) |
13422 |
case "$getpwuid_r_proto" in |
13423 |
''|0) try='int getpwuid_r(uid_t, struct passwd*, char*, size_t, struct passwd**);' |
13424 |
./protochk "extern $try" $hdrs && getpwuid_r_proto=I_TSBWR ;; |
13425 |
esac |
13426 |
case "$getpwuid_r_proto" in |
13427 |
''|0) try='int getpwuid_r(uid_t, struct passwd*, char*, int, struct passwd**);' |
13428 |
./protochk "extern $try" $hdrs && getpwuid_r_proto=I_TSBIR ;; |
13429 |
esac |
13430 |
case "$getpwuid_r_proto" in |
13431 |
''|0) try='int getpwuid_r(uid_t, struct passwd*, char*, int);' |
13432 |
./protochk "extern $try" $hdrs && getpwuid_r_proto=I_TSBI ;; |
13433 |
esac |
13434 |
case "$getpwuid_r_proto" in |
13435 |
''|0) try='struct passwd* getpwuid_r(uid_t, struct passwd*, char*, int);' |
13436 |
./protochk "extern $try" $hdrs && getpwuid_r_proto=S_TSBI ;; |
13437 |
esac |
13438 |
case "$getpwuid_r_proto" in |
13439 |
''|0) d_getpwuid_r=undef |
13440 |
getpwuid_r_proto=0 |
13441 |
echo "Disabling getpwuid_r, cannot determine prototype." >&4 ;; |
13442 |
* ) case "$getpwuid_r_proto" in |
13443 |
REENTRANT_PROTO*) ;; |
13444 |
*) getpwuid_r_proto="REENTRANT_PROTO_$getpwuid_r_proto" ;; |
13445 |
esac |
13446 |
echo "Prototype: $try" ;; |
13447 |
esac |
13448 |
;; |
13449 |
*) case "$usethreads" in |
13450 |
define) echo "getpwuid_r has no prototype, not using it." >&4 ;; |
13451 |
esac |
13452 |
d_getpwuid_r=undef |
13453 |
getpwuid_r_proto=0 |
13454 |
;; |
13455 |
esac |
13456 |
;; |
13457 |
*) getpwuid_r_proto=0 |
13458 |
;; |
13459 |
esac |
13460 |
|
13461 |
|
13462 |
: see if getservbyname exists |
13463 |
set getservbyname d_getsbyname |
13464 |
eval $inlibc |
13465 |
|
13466 |
: see if getservbyport exists |
13467 |
set getservbyport d_getsbyport |
13468 |
eval $inlibc |
13469 |
|
13470 |
: see if getservent exists |
13471 |
set getservent d_getsent |
13472 |
eval $inlibc |
13473 |
|
13474 |
: see if getservbyname_r exists |
13475 |
set getservbyname_r d_getservbyname_r |
13476 |
eval $inlibc |
13477 |
case "$d_getservbyname_r" in |
13478 |
"$define") |
13479 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
13480 |
case "$d_getservbyname_r_proto:$usethreads" in |
13481 |
":define") d_getservbyname_r_proto=define |
13482 |
set d_getservbyname_r_proto getservbyname_r $hdrs |
13483 |
eval $hasproto ;; |
13484 |
*) ;; |
13485 |
esac |
13486 |
case "$d_getservbyname_r_proto" in |
13487 |
define) |
13488 |
case "$getservbyname_r_proto" in |
13489 |
''|0) try='int getservbyname_r(const char*, const char*, struct servent*, char*, size_t, struct servent**);' |
13490 |
./protochk "extern $try" $hdrs && getservbyname_r_proto=I_CCSBWR ;; |
13491 |
esac |
13492 |
case "$getservbyname_r_proto" in |
13493 |
''|0) try='struct servent* getservbyname_r(const char*, const char*, struct servent*, char*, int);' |
13494 |
./protochk "extern $try" $hdrs && getservbyname_r_proto=S_CCSBI ;; |
13495 |
esac |
13496 |
case "$getservbyname_r_proto" in |
13497 |
''|0) try='int getservbyname_r(const char*, const char*, struct servent*, struct servent_data*);' |
13498 |
./protochk "extern $try" $hdrs && getservbyname_r_proto=I_CCSD ;; |
13499 |
esac |
13500 |
case "$getservbyname_r_proto" in |
13501 |
''|0) d_getservbyname_r=undef |
13502 |
getservbyname_r_proto=0 |
13503 |
echo "Disabling getservbyname_r, cannot determine prototype." >&4 ;; |
13504 |
* ) case "$getservbyname_r_proto" in |
13505 |
REENTRANT_PROTO*) ;; |
13506 |
*) getservbyname_r_proto="REENTRANT_PROTO_$getservbyname_r_proto" ;; |
13507 |
esac |
13508 |
echo "Prototype: $try" ;; |
13509 |
esac |
13510 |
;; |
13511 |
*) case "$usethreads" in |
13512 |
define) echo "getservbyname_r has no prototype, not using it." >&4 ;; |
13513 |
esac |
13514 |
d_getservbyname_r=undef |
13515 |
getservbyname_r_proto=0 |
13516 |
;; |
13517 |
esac |
13518 |
;; |
13519 |
*) getservbyname_r_proto=0 |
13520 |
;; |
13521 |
esac |
13522 |
|
13523 |
: see if getservbyport_r exists |
13524 |
set getservbyport_r d_getservbyport_r |
13525 |
eval $inlibc |
13526 |
case "$d_getservbyport_r" in |
13527 |
"$define") |
13528 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
13529 |
case "$d_getservbyport_r_proto:$usethreads" in |
13530 |
":define") d_getservbyport_r_proto=define |
13531 |
set d_getservbyport_r_proto getservbyport_r $hdrs |
13532 |
eval $hasproto ;; |
13533 |
*) ;; |
13534 |
esac |
13535 |
case "$d_getservbyport_r_proto" in |
13536 |
define) |
13537 |
case "$getservbyport_r_proto" in |
13538 |
''|0) try='int getservbyport_r(int, const char*, struct servent*, char*, size_t, struct servent**);' |
13539 |
./protochk "extern $try" $hdrs && getservbyport_r_proto=I_ICSBWR ;; |
13540 |
esac |
13541 |
case "$getservbyport_r_proto" in |
13542 |
''|0) try='struct servent* getservbyport_r(int, const char*, struct servent*, char*, int);' |
13543 |
./protochk "extern $try" $hdrs && getservbyport_r_proto=S_ICSBI ;; |
13544 |
esac |
13545 |
case "$getservbyport_r_proto" in |
13546 |
''|0) try='int getservbyport_r(int, const char*, struct servent*, struct servent_data*);' |
13547 |
./protochk "extern $try" $hdrs && getservbyport_r_proto=I_ICSD ;; |
13548 |
esac |
13549 |
case "$getservbyport_r_proto" in |
13550 |
''|0) d_getservbyport_r=undef |
13551 |
getservbyport_r_proto=0 |
13552 |
echo "Disabling getservbyport_r, cannot determine prototype." >&4 ;; |
13553 |
* ) case "$getservbyport_r_proto" in |
13554 |
REENTRANT_PROTO*) ;; |
13555 |
*) getservbyport_r_proto="REENTRANT_PROTO_$getservbyport_r_proto" ;; |
13556 |
esac |
13557 |
echo "Prototype: $try" ;; |
13558 |
esac |
13559 |
;; |
13560 |
*) case "$usethreads" in |
13561 |
define) echo "getservbyport_r has no prototype, not using it." >&4 ;; |
13562 |
esac |
13563 |
d_getservbyport_r=undef |
13564 |
getservbyport_r_proto=0 |
13565 |
;; |
13566 |
esac |
13567 |
;; |
13568 |
*) getservbyport_r_proto=0 |
13569 |
;; |
13570 |
esac |
13571 |
|
13572 |
: see if getservent_r exists |
13573 |
set getservent_r d_getservent_r |
13574 |
eval $inlibc |
13575 |
case "$d_getservent_r" in |
13576 |
"$define") |
13577 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
13578 |
case "$d_getservent_r_proto:$usethreads" in |
13579 |
":define") d_getservent_r_proto=define |
13580 |
set d_getservent_r_proto getservent_r $hdrs |
13581 |
eval $hasproto ;; |
13582 |
*) ;; |
13583 |
esac |
13584 |
case "$d_getservent_r_proto" in |
13585 |
define) |
13586 |
case "$getservent_r_proto" in |
13587 |
''|0) try='int getservent_r(struct servent*, char*, size_t, struct servent**);' |
13588 |
./protochk "extern $try" $hdrs && getservent_r_proto=I_SBWR ;; |
13589 |
esac |
13590 |
case "$getservent_r_proto" in |
13591 |
''|0) try='int getservent_r(struct servent*, char*, int);' |
13592 |
./protochk "extern $try" $hdrs && getservent_r_proto=I_SBI ;; |
13593 |
esac |
13594 |
case "$getservent_r_proto" in |
13595 |
''|0) try='struct servent* getservent_r(struct servent*, char*, int);' |
13596 |
./protochk "extern $try" $hdrs && getservent_r_proto=S_SBI ;; |
13597 |
esac |
13598 |
case "$getservent_r_proto" in |
13599 |
''|0) try='int getservent_r(struct servent*, struct servent_data*);' |
13600 |
./protochk "extern $try" $hdrs && getservent_r_proto=I_SD ;; |
13601 |
esac |
13602 |
case "$getservent_r_proto" in |
13603 |
''|0) d_getservent_r=undef |
13604 |
getservent_r_proto=0 |
13605 |
echo "Disabling getservent_r, cannot determine prototype." >&4 ;; |
13606 |
* ) case "$getservent_r_proto" in |
13607 |
REENTRANT_PROTO*) ;; |
13608 |
*) getservent_r_proto="REENTRANT_PROTO_$getservent_r_proto" ;; |
13609 |
esac |
13610 |
echo "Prototype: $try" ;; |
13611 |
esac |
13612 |
;; |
13613 |
*) case "$usethreads" in |
13614 |
define) echo "getservent_r has no prototype, not using it." >&4 ;; |
13615 |
esac |
13616 |
d_getservent_r=undef |
13617 |
getservent_r_proto=0 |
13618 |
;; |
13619 |
esac |
13620 |
;; |
13621 |
*) getservent_r_proto=0 |
13622 |
;; |
13623 |
esac |
13624 |
|
13625 |
: see if prototypes for various getservxxx netdb.h functions are available |
13626 |
echo " " |
13627 |
set d_getservprotos getservent $i_netdb netdb.h |
13628 |
eval $hasproto |
13629 |
|
13630 |
: see if getspnam exists |
13631 |
set getspnam d_getspnam |
13632 |
eval $inlibc |
13633 |
|
13634 |
: see if this is a shadow.h system |
13635 |
set shadow.h i_shadow |
13636 |
eval $inhdr |
13637 |
|
13638 |
: see if getspnam_r exists |
13639 |
set getspnam_r d_getspnam_r |
13640 |
eval $inlibc |
13641 |
case "$d_getspnam_r" in |
13642 |
"$define") |
13643 |
hdrs="$i_systypes sys/types.h define stdio.h $i_shadow shadow.h" |
13644 |
case "$d_getspnam_r_proto:$usethreads" in |
13645 |
":define") d_getspnam_r_proto=define |
13646 |
set d_getspnam_r_proto getspnam_r $hdrs |
13647 |
eval $hasproto ;; |
13648 |
*) ;; |
13649 |
esac |
13650 |
case "$d_getspnam_r_proto" in |
13651 |
define) |
13652 |
case "$getspnam_r_proto" in |
13653 |
''|0) try='int getspnam_r(const char*, struct spwd*, char*, size_t, struct spwd**);' |
13654 |
./protochk "extern $try" $hdrs && getspnam_r_proto=I_CSBWR ;; |
13655 |
esac |
13656 |
case "$getspnam_r_proto" in |
13657 |
''|0) try='struct spwd* getspnam_r(const char*, struct spwd*, char*, int);' |
13658 |
./protochk "extern $try" $hdrs && getspnam_r_proto=S_CSBI ;; |
13659 |
esac |
13660 |
case "$getspnam_r_proto" in |
13661 |
''|0) d_getspnam_r=undef |
13662 |
getspnam_r_proto=0 |
13663 |
echo "Disabling getspnam_r, cannot determine prototype." >&4 ;; |
13664 |
* ) case "$getspnam_r_proto" in |
13665 |
REENTRANT_PROTO*) ;; |
13666 |
*) getspnam_r_proto="REENTRANT_PROTO_$getspnam_r_proto" ;; |
13667 |
esac |
13668 |
echo "Prototype: $try" ;; |
13669 |
esac |
13670 |
;; |
13671 |
*) case "$usethreads" in |
13672 |
define) echo "getspnam_r has no prototype, not using it." >&4 ;; |
13673 |
esac |
13674 |
d_getspnam_r=undef |
13675 |
getspnam_r_proto=0 |
13676 |
;; |
13677 |
esac |
13678 |
;; |
13679 |
*) getspnam_r_proto=0 |
13680 |
;; |
13681 |
esac |
13682 |
|
13683 |
: see if gettimeofday or ftime exists |
13684 |
set gettimeofday d_gettimeod |
13685 |
eval $inlibc |
13686 |
case "$d_gettimeod" in |
13687 |
"$undef") |
13688 |
set ftime d_ftime |
13689 |
eval $inlibc |
13690 |
;; |
13691 |
*) |
13692 |
val="$undef"; set d_ftime; eval $setvar |
13693 |
;; |
13694 |
esac |
13695 |
case "$d_gettimeod$d_ftime" in |
13696 |
"$undef$undef") |
13697 |
echo " " |
13698 |
echo 'No ftime() nor gettimeofday() -- timing may be less accurate.' >&4 |
13699 |
;; |
13700 |
esac |
13701 |
|
13702 |
: see if gmtime_r exists |
13703 |
set gmtime_r d_gmtime_r |
13704 |
eval $inlibc |
13705 |
case "$d_gmtime_r" in |
13706 |
"$define") |
13707 |
hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h" |
13708 |
case "$d_gmtime_r_proto:$usethreads" in |
13709 |
":define") d_gmtime_r_proto=define |
13710 |
set d_gmtime_r_proto gmtime_r $hdrs |
13711 |
eval $hasproto ;; |
13712 |
*) ;; |
13713 |
esac |
13714 |
case "$d_gmtime_r_proto" in |
13715 |
define) |
13716 |
case "$gmtime_r_proto" in |
13717 |
''|0) try='struct tm* gmtime_r(const time_t*, struct tm*);' |
13718 |
./protochk "extern $try" $hdrs && gmtime_r_proto=S_TS ;; |
13719 |
esac |
13720 |
case "$gmtime_r_proto" in |
13721 |
''|0) try='int gmtime_r(const time_t*, struct tm*);' |
13722 |
./protochk "extern $try" $hdrs && gmtime_r_proto=I_TS ;; |
13723 |
esac |
13724 |
case "$gmtime_r_proto" in |
13725 |
''|0) d_gmtime_r=undef |
13726 |
gmtime_r_proto=0 |
13727 |
echo "Disabling gmtime_r, cannot determine prototype." >&4 ;; |
13728 |
* ) case "$gmtime_r_proto" in |
13729 |
REENTRANT_PROTO*) ;; |
13730 |
*) gmtime_r_proto="REENTRANT_PROTO_$gmtime_r_proto" ;; |
13731 |
esac |
13732 |
echo "Prototype: $try" ;; |
13733 |
esac |
13734 |
;; |
13735 |
*) case "$usethreads" in |
13736 |
define) echo "gmtime_r has no prototype, not using it." >&4 ;; |
13737 |
esac |
13738 |
d_gmtime_r=undef |
13739 |
gmtime_r_proto=0 |
13740 |
;; |
13741 |
esac |
13742 |
;; |
13743 |
*) gmtime_r_proto=0 |
13744 |
;; |
13745 |
esac |
13746 |
|
13747 |
: see if hasmntopt exists |
13748 |
set hasmntopt d_hasmntopt |
13749 |
eval $inlibc |
13750 |
|
13751 |
: see if this is a netinet/in.h or sys/in.h system |
13752 |
set netinet/in.h i_niin sys/in.h i_sysin |
13753 |
eval $inhdr |
13754 |
|
13755 |
: see if arpa/inet.h has to be included |
13756 |
set arpa/inet.h i_arpainet |
13757 |
eval $inhdr |
13758 |
|
13759 |
: see if htonl --and friends-- exists |
13760 |
val='' |
13761 |
set htonl val |
13762 |
eval $inlibc |
13763 |
|
13764 |
: Maybe they are macros. |
13765 |
case "$val" in |
13766 |
$undef) |
13767 |
$cat >htonl.c <<EOM |
13768 |
#include <stdio.h> |
13769 |
#include <sys/types.h> |
13770 |
#$i_niin I_NETINET_IN |
13771 |
#$i_sysin I_SYS_IN |
13772 |
#$i_arpainet I_ARPA_INET |
13773 |
#ifdef I_NETINET_IN |
13774 |
#include <netinet/in.h> |
13775 |
#endif |
13776 |
#ifdef I_SYS_IN |
13777 |
#include <sys/in.h> |
13778 |
#endif |
13779 |
#ifdef I_ARPA_INET |
13780 |
#include <arpa/inet.h> |
13781 |
#endif |
13782 |
#ifdef htonl |
13783 |
printf("Defined as a macro."); |
13784 |
#endif |
13785 |
EOM |
13786 |
$cppstdin $cppflags $cppminus < htonl.c >htonl.E 2>/dev/null |
13787 |
if $contains 'Defined as a macro' htonl.E >/dev/null 2>&1; then |
13788 |
val="$define" |
13789 |
echo "But it seems to be defined as a macro." >&4 |
13790 |
fi |
13791 |
$rm -f htonl.? |
13792 |
;; |
13793 |
esac |
13794 |
set d_htonl |
13795 |
eval $setvar |
13796 |
|
13797 |
: see if ilogbl exists |
13798 |
set ilogbl d_ilogbl |
13799 |
eval $inlibc |
13800 |
|
13801 |
: index or strchr |
13802 |
echo " " |
13803 |
if set index val -f; eval $csym; $val; then |
13804 |
if set strchr val -f d_strchr; eval $csym; $val; then |
13805 |
if $contains strchr "$strings" >/dev/null 2>&1 ; then |
13806 |
val="$define" |
13807 |
vali="$undef" |
13808 |
echo "strchr() found." >&4 |
13809 |
else |
13810 |
val="$undef" |
13811 |
vali="$define" |
13812 |
echo "index() found." >&4 |
13813 |
fi |
13814 |
else |
13815 |
val="$undef" |
13816 |
vali="$define" |
13817 |
echo "index() found." >&4 |
13818 |
fi |
13819 |
else |
13820 |
if set strchr val -f d_strchr; eval $csym; $val; then |
13821 |
val="$define" |
13822 |
vali="$undef" |
13823 |
echo "strchr() found." >&4 |
13824 |
else |
13825 |
echo "No index() or strchr() found!" >&4 |
13826 |
val="$undef" |
13827 |
vali="$undef" |
13828 |
fi |
13829 |
fi |
13830 |
set d_strchr; eval $setvar |
13831 |
val="$vali" |
13832 |
set d_index; eval $setvar |
13833 |
|
13834 |
: check whether inet_aton exists |
13835 |
set inet_aton d_inetaton |
13836 |
eval $inlibc |
13837 |
|
13838 |
: Look for isascii |
13839 |
echo " " |
13840 |
$cat >isascii.c <<EOCP |
13841 |
#include <stdio.h> |
13842 |
#include <ctype.h> |
13843 |
#$i_stdlib I_STDLIB |
13844 |
#ifdef I_STDLIB |
13845 |
#include <stdlib.h> |
13846 |
#endif |
13847 |
int main() { |
13848 |
int c = 'A'; |
13849 |
if (isascii(c)) |
13850 |
exit(0); |
13851 |
else |
13852 |
exit(1); |
13853 |
} |
13854 |
EOCP |
13855 |
set isascii |
13856 |
if eval $compile; then |
13857 |
echo "isascii() found." >&4 |
13858 |
val="$define" |
13859 |
else |
13860 |
echo "isascii() NOT found." >&4 |
13861 |
val="$undef" |
13862 |
fi |
13863 |
set d_isascii |
13864 |
eval $setvar |
13865 |
$rm -f isascii* |
13866 |
|
13867 |
: see if isfinite exists |
13868 |
set isfinite d_isfinite |
13869 |
eval $inlibc |
13870 |
|
13871 |
: see if isinf exists |
13872 |
set isinf d_isinf |
13873 |
eval $inlibc |
13874 |
|
13875 |
: see if isnan exists |
13876 |
set isnan d_isnan |
13877 |
eval $inlibc |
13878 |
|
13879 |
: see if isnanl exists |
13880 |
set isnanl d_isnanl |
13881 |
eval $inlibc |
13882 |
|
13883 |
: see if killpg exists |
13884 |
set killpg d_killpg |
13885 |
eval $inlibc |
13886 |
|
13887 |
: see if lchown exists |
13888 |
echo " " |
13889 |
$cat > try.c <<'EOCP' |
13890 |
/* System header to define __stub macros and hopefully few prototypes, |
13891 |
which can conflict with char lchown(); below. */ |
13892 |
#include <assert.h> |
13893 |
/* Override any gcc2 internal prototype to avoid an error. */ |
13894 |
/* We use char because int might match the return type of a gcc2 |
13895 |
builtin and then its argument prototype would still apply. */ |
13896 |
char lchown(); |
13897 |
int main() { |
13898 |
/* The GNU C library defines this for functions which it implements |
13899 |
to always fail with ENOSYS. Some functions are actually named |
13900 |
something starting with __ and the normal name is an alias. */ |
13901 |
#if defined (__stub_lchown) || defined (__stub___lchown) |
13902 |
choke me |
13903 |
#else |
13904 |
lchown(); |
13905 |
#endif |
13906 |
; return 0; } |
13907 |
EOCP |
13908 |
set try |
13909 |
if eval $compile; then |
13910 |
$echo "lchown() found." >&4 |
13911 |
val="$define" |
13912 |
else |
13913 |
$echo "lchown() NOT found." >&4 |
13914 |
val="$undef" |
13915 |
fi |
13916 |
set d_lchown |
13917 |
eval $setvar |
13918 |
|
13919 |
: See if number of significant digits in a double precision number is known |
13920 |
echo " " |
13921 |
$cat >ldbl_dig.c <<EOM |
13922 |
#$i_limits I_LIMITS |
13923 |
#$i_float I_FLOAT |
13924 |
#ifdef I_LIMITS |
13925 |
#include <limits.h> |
13926 |
#endif |
13927 |
#ifdef I_FLOAT |
13928 |
#include <float.h> |
13929 |
#endif |
13930 |
#ifdef LDBL_DIG |
13931 |
printf("Contains LDBL_DIG"); |
13932 |
#endif |
13933 |
EOM |
13934 |
$cppstdin $cppflags $cppminus < ldbl_dig.c >ldbl_dig.E 2>/dev/null |
13935 |
if $contains 'LDBL_DIG' ldbl_dig.E >/dev/null 2>&1; then |
13936 |
echo "LDBL_DIG found." >&4 |
13937 |
val="$define" |
13938 |
else |
13939 |
echo "LDBL_DIG NOT found." >&4 |
13940 |
val="$undef" |
13941 |
fi |
13942 |
$rm -f ldbl_dig.? |
13943 |
set d_ldbl_dig |
13944 |
eval $setvar |
13945 |
|
13946 |
: see if this is a math.h system |
13947 |
set math.h i_math |
13948 |
eval $inhdr |
13949 |
|
13950 |
d_libm_lib_version="$undef" |
13951 |
case $i_math in |
13952 |
$define) |
13953 |
: check to see if math.h defines _LIB_VERSION |
13954 |
echo " " |
13955 |
echo "Checking to see if your libm supports _LIB_VERSION..." >&4 |
13956 |
$cat >try.c <<EOCP |
13957 |
#include <unistd.h> |
13958 |
#include <math.h> |
13959 |
int main (int argc, char *argv[]) |
13960 |
{ |
13961 |
printf ("%d\n", _LIB_VERSION); |
13962 |
return (0); |
13963 |
} /* main */ |
13964 |
EOCP |
13965 |
set try |
13966 |
if eval $compile; then |
13967 |
foo=`$run ./try` |
13968 |
echo "Yes, it does ($foo)" >&4 |
13969 |
d_libm_lib_version="$define" |
13970 |
else |
13971 |
echo "No, it does not (probably harmless)\n" >&4 |
13972 |
fi |
13973 |
$rm -f try.* try core core.try.* |
13974 |
;; |
13975 |
|
13976 |
esac |
13977 |
|
13978 |
: see if link exists |
13979 |
set link d_link |
13980 |
eval $inlibc |
13981 |
|
13982 |
: see if localtime_r exists |
13983 |
set localtime_r d_localtime_r |
13984 |
eval $inlibc |
13985 |
case "$d_localtime_r" in |
13986 |
"$define") |
13987 |
hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h" |
13988 |
case "$d_localtime_r_proto:$usethreads" in |
13989 |
":define") d_localtime_r_proto=define |
13990 |
set d_localtime_r_proto localtime_r $hdrs |
13991 |
eval $hasproto ;; |
13992 |
*) ;; |
13993 |
esac |
13994 |
case "$d_localtime_r_proto" in |
13995 |
define) |
13996 |
case "$localtime_r_proto" in |
13997 |
''|0) try='struct tm* localtime_r(const time_t*, struct tm*);' |
13998 |
./protochk "extern $try" $hdrs && localtime_r_proto=S_TS ;; |
13999 |
esac |
14000 |
case "$localtime_r_proto" in |
14001 |
''|0) try='int localtime_r(const time_t*, struct tm*);' |
14002 |
./protochk "extern $try" $hdrs && localtime_r_proto=I_TS ;; |
14003 |
esac |
14004 |
case "$localtime_r_proto" in |
14005 |
''|0) d_localtime_r=undef |
14006 |
localtime_r_proto=0 |
14007 |
echo "Disabling localtime_r, cannot determine prototype." >&4 ;; |
14008 |
* ) case "$localtime_r_proto" in |
14009 |
REENTRANT_PROTO*) ;; |
14010 |
*) localtime_r_proto="REENTRANT_PROTO_$localtime_r_proto" ;; |
14011 |
esac |
14012 |
echo "Prototype: $try" ;; |
14013 |
esac |
14014 |
;; |
14015 |
*) case "$usethreads" in |
14016 |
define) echo "localtime_r has no prototype, not using it." >&4 ;; |
14017 |
esac |
14018 |
d_localtime_r=undef |
14019 |
localtime_r_proto=0 |
14020 |
;; |
14021 |
esac |
14022 |
;; |
14023 |
*) localtime_r_proto=0 |
14024 |
;; |
14025 |
esac |
14026 |
|
14027 |
: see if localeconv exists |
14028 |
set localeconv d_locconv |
14029 |
eval $inlibc |
14030 |
|
14031 |
: see if lockf exists |
14032 |
set lockf d_lockf |
14033 |
eval $inlibc |
14034 |
|
14035 |
: see if prototype for lseek is available |
14036 |
echo " " |
14037 |
set d_lseekproto lseek $i_systypes sys/types.h $i_unistd unistd.h |
14038 |
eval $hasproto |
14039 |
|
14040 |
: see if lstat exists |
14041 |
set lstat d_lstat |
14042 |
eval $inlibc |
14043 |
|
14044 |
: see if madvise exists |
14045 |
set madvise d_madvise |
14046 |
eval $inlibc |
14047 |
|
14048 |
: see if mblen exists |
14049 |
set mblen d_mblen |
14050 |
eval $inlibc |
14051 |
|
14052 |
: see if mbstowcs exists |
14053 |
set mbstowcs d_mbstowcs |
14054 |
eval $inlibc |
14055 |
|
14056 |
: see if mbtowc exists |
14057 |
set mbtowc d_mbtowc |
14058 |
eval $inlibc |
14059 |
|
14060 |
: see if memchr exists |
14061 |
set memchr d_memchr |
14062 |
eval $inlibc |
14063 |
|
14064 |
: see if memcmp exists |
14065 |
set memcmp d_memcmp |
14066 |
eval $inlibc |
14067 |
|
14068 |
: see if memcpy exists |
14069 |
set memcpy d_memcpy |
14070 |
eval $inlibc |
14071 |
|
14072 |
: see if memmove exists |
14073 |
set memmove d_memmove |
14074 |
eval $inlibc |
14075 |
|
14076 |
: see if memset exists |
14077 |
set memset d_memset |
14078 |
eval $inlibc |
14079 |
|
14080 |
: see if mkdir exists |
14081 |
set mkdir d_mkdir |
14082 |
eval $inlibc |
14083 |
|
14084 |
: see if mkdtemp exists |
14085 |
set mkdtemp d_mkdtemp |
14086 |
eval $inlibc |
14087 |
|
14088 |
: see if mkfifo exists |
14089 |
set mkfifo d_mkfifo |
14090 |
eval $inlibc |
14091 |
|
14092 |
: see if mkstemp exists |
14093 |
set mkstemp d_mkstemp |
14094 |
eval $inlibc |
14095 |
|
14096 |
: see if mkstemps exists |
14097 |
set mkstemps d_mkstemps |
14098 |
eval $inlibc |
14099 |
|
14100 |
: see if mktime exists |
14101 |
set mktime d_mktime |
14102 |
eval $inlibc |
14103 |
|
14104 |
: see if this is a sys/mman.h system |
14105 |
set sys/mman.h i_sysmman |
14106 |
eval $inhdr |
14107 |
|
14108 |
: see if mmap exists |
14109 |
set mmap d_mmap |
14110 |
eval $inlibc |
14111 |
: see what shmat returns |
14112 |
: default to something harmless |
14113 |
mmaptype='void *' |
14114 |
case "$i_sysmman$d_mmap" in |
14115 |
"$define$define") |
14116 |
$cat >mmap.c <<'END' |
14117 |
#include <sys/mman.h> |
14118 |
void *mmap(); |
14119 |
END |
14120 |
if $cc $ccflags -c mmap.c >/dev/null 2>&1; then |
14121 |
mmaptype='void *' |
14122 |
else |
14123 |
mmaptype='caddr_t' |
14124 |
fi |
14125 |
echo "and it returns ($mmaptype)." >&4 |
14126 |
;; |
14127 |
esac |
14128 |
|
14129 |
|
14130 |
|
14131 |
: see if sqrtl exists |
14132 |
set sqrtl d_sqrtl |
14133 |
eval $inlibc |
14134 |
|
14135 |
: see if scalbnl exists |
14136 |
set scalbnl d_scalbnl |
14137 |
eval $inlibc |
14138 |
|
14139 |
: see if modfl exists |
14140 |
set modfl d_modfl |
14141 |
eval $inlibc |
14142 |
|
14143 |
: see if prototype for modfl is available |
14144 |
echo " " |
14145 |
set d_modflproto modfl $i_math math.h |
14146 |
eval $hasproto |
14147 |
|
14148 |
d_modfl_pow32_bug="$undef" |
14149 |
|
14150 |
case "$d_longdbl$d_modfl" in |
14151 |
$define$define) |
14152 |
$cat <<EOM |
14153 |
Checking to see whether your modfl() is okay for large values... |
14154 |
EOM |
14155 |
$cat >try.c <<EOCP |
14156 |
#include <math.h> |
14157 |
#include <stdio.h> |
14158 |
EOCP |
14159 |
if $test "X$d_modflproto" != "X$define"; then |
14160 |
$cat >>try.c <<EOCP |
14161 |
/* Sigh. many current glibcs provide the function, but do not prototype it. */ |
14162 |
long double modfl (long double, long double *); |
14163 |
EOCP |
14164 |
fi |
14165 |
$cat >>try.c <<EOCP |
14166 |
int main() { |
14167 |
long double nv = 4294967303.15; |
14168 |
long double v, w; |
14169 |
v = modfl(nv, &w); |
14170 |
#ifdef __GLIBC__ |
14171 |
printf("glibc"); |
14172 |
#endif |
14173 |
printf(" %"$sPRIfldbl" %"$sPRIfldbl" %"$sPRIfldbl"\n", nv, v, w); |
14174 |
return 0; |
14175 |
} |
14176 |
EOCP |
14177 |
case "$osname:$gccversion" in |
14178 |
aix:) saveccflags="$ccflags" |
14179 |
ccflags="$ccflags -qlongdouble" ;; # to avoid core dump |
14180 |
esac |
14181 |
set try |
14182 |
if eval $compile; then |
14183 |
foo=`$run ./try` |
14184 |
case "$foo" in |
14185 |
*" 4294967303.150000 1.150000 4294967302.000000") |
14186 |
echo >&4 "Your modfl() is broken for large values." |
14187 |
d_modfl_pow32_bug="$define" |
14188 |
case "$foo" in |
14189 |
glibc) echo >&4 "You should upgrade your glibc to at least 2.2.2 to get a fixed modfl()." |
14190 |
;; |
14191 |
esac |
14192 |
;; |
14193 |
*" 4294967303.150000 0.150000 4294967303.000000") |
14194 |
echo >&4 "Your modfl() seems okay for large values." |
14195 |
;; |
14196 |
*) echo >&4 "I don't understand your modfl() at all." |
14197 |
d_modfl="$undef" |
14198 |
;; |
14199 |
esac |
14200 |
$rm -f try.* try core core.try.* |
14201 |
else |
14202 |
echo "I cannot figure out whether your modfl() is okay, assuming it isn't." |
14203 |
d_modfl="$undef" |
14204 |
fi |
14205 |
case "$osname:$gccversion" in |
14206 |
aix:) ccflags="$saveccflags" ;; # restore |
14207 |
esac |
14208 |
;; |
14209 |
esac |
14210 |
|
14211 |
if $test "$uselongdouble" = "$define"; then |
14212 |
message="" |
14213 |
if $test "$d_sqrtl" != "$define"; then |
14214 |
message="$message sqrtl" |
14215 |
fi |
14216 |
if $test "$d_modfl" != "$define"; then |
14217 |
if $test "$d_aintl:$d_copysignl" = "$define:$define"; then |
14218 |
echo "You have both aintl and copysignl, so I can emulate modfl." |
14219 |
else |
14220 |
message="$message modfl" |
14221 |
fi |
14222 |
fi |
14223 |
if $test "$d_frexpl" != "$define"; then |
14224 |
if $test "$d_ilogbl:$d_scalbnl" = "$define:$define"; then |
14225 |
echo "You have both ilogbl and scalbnl, so I can emulate frexpl." |
14226 |
else |
14227 |
message="$message frexpl" |
14228 |
fi |
14229 |
fi |
14230 |
|
14231 |
if $test "$message" != ""; then |
14232 |
$cat <<EOM >&4 |
14233 |
|
14234 |
*** You requested the use of long doubles but you do not seem to have |
14235 |
*** the following mathematical functions needed for long double support: |
14236 |
*** $message |
14237 |
*** Please rerun Configure without -Duselongdouble and/or -Dusemorebits. |
14238 |
*** Cannot continue, aborting. |
14239 |
|
14240 |
EOM |
14241 |
|
14242 |
exit 1 |
14243 |
fi |
14244 |
fi |
14245 |
|
14246 |
: see if mprotect exists |
14247 |
set mprotect d_mprotect |
14248 |
eval $inlibc |
14249 |
|
14250 |
: see if msgctl exists |
14251 |
set msgctl d_msgctl |
14252 |
eval $inlibc |
14253 |
|
14254 |
: see if msgget exists |
14255 |
set msgget d_msgget |
14256 |
eval $inlibc |
14257 |
|
14258 |
: see if msgsnd exists |
14259 |
set msgsnd d_msgsnd |
14260 |
eval $inlibc |
14261 |
|
14262 |
: see if msgrcv exists |
14263 |
set msgrcv d_msgrcv |
14264 |
eval $inlibc |
14265 |
|
14266 |
: see how much of the 'msg*(2)' library is present. |
14267 |
h_msg=true |
14268 |
echo " " |
14269 |
case "$d_msgctl$d_msgget$d_msgsnd$d_msgrcv" in |
14270 |
*"$undef"*) h_msg=false;; |
14271 |
esac |
14272 |
case "$osname" in |
14273 |
freebsd) |
14274 |
case "`ipcs 2>&1`" in |
14275 |
"SVID messages"*"not configured"*) |
14276 |
echo "Your $osname does not have the msg*(2) configured." >&4 |
14277 |
h_msg=false |
14278 |
val="$undef" |
14279 |
set msgctl d_msgctl |
14280 |
eval $setvar |
14281 |
set msgget d_msgget |
14282 |
eval $setvar |
14283 |
set msgsnd d_msgsnd |
14284 |
eval $setvar |
14285 |
set msgrcv d_msgrcv |
14286 |
eval $setvar |
14287 |
;; |
14288 |
esac |
14289 |
;; |
14290 |
esac |
14291 |
: we could also check for sys/ipc.h ... |
14292 |
if $h_msg && $test `./findhdr sys/msg.h`; then |
14293 |
echo "You have the full msg*(2) library." >&4 |
14294 |
val="$define" |
14295 |
else |
14296 |
echo "You don't have the full msg*(2) library." >&4 |
14297 |
val="$undef" |
14298 |
fi |
14299 |
set d_msg |
14300 |
eval $setvar |
14301 |
|
14302 |
|
14303 |
echo " " |
14304 |
echo "Checking to see if your system supports struct msghdr..." >&4 |
14305 |
set d_msghdr_s msghdr $i_systypes sys/types.h $d_socket sys/socket.h $i_sysuio sys/uio.h |
14306 |
eval $hasstruct |
14307 |
case "$d_msghdr_s" in |
14308 |
"$define") echo "Yes, it does." ;; |
14309 |
*) echo "No, it doesn't." ;; |
14310 |
esac |
14311 |
|
14312 |
|
14313 |
: see if msync exists |
14314 |
set msync d_msync |
14315 |
eval $inlibc |
14316 |
|
14317 |
: see if munmap exists |
14318 |
set munmap d_munmap |
14319 |
eval $inlibc |
14320 |
|
14321 |
: see if nice exists |
14322 |
set nice d_nice |
14323 |
eval $inlibc |
14324 |
|
14325 |
: see if this is a langinfo.h system |
14326 |
set langinfo.h i_langinfo |
14327 |
eval $inhdr |
14328 |
|
14329 |
: see if nl_langinfo exists |
14330 |
set nl_langinfo d_nl_langinfo |
14331 |
eval $inlibc |
14332 |
|
14333 |
: check for length of character |
14334 |
echo " " |
14335 |
case "$charsize" in |
14336 |
'') |
14337 |
echo "Checking to see how big your characters are (hey, you never know)..." >&4 |
14338 |
$cat >try.c <<EOCP |
14339 |
#include <stdio.h> |
14340 |
#$i_stdlib I_STDLIB |
14341 |
#ifdef I_STDLIB |
14342 |
#include <stdlib.h> |
14343 |
#endif |
14344 |
int main() |
14345 |
{ |
14346 |
printf("%d\n", (int)sizeof(char)); |
14347 |
exit(0); |
14348 |
} |
14349 |
EOCP |
14350 |
set try |
14351 |
if eval $compile_ok; then |
14352 |
dflt=`$run ./try` |
14353 |
else |
14354 |
dflt='1' |
14355 |
echo "(I can't seem to compile the test program. Guessing...)" |
14356 |
fi |
14357 |
;; |
14358 |
*) |
14359 |
dflt="$charsize" |
14360 |
;; |
14361 |
esac |
14362 |
rp="What is the size of a character (in bytes)?" |
14363 |
. ./myread |
14364 |
charsize="$ans" |
14365 |
$rm -f try.c try |
14366 |
|
14367 |
: check for volatile keyword |
14368 |
echo " " |
14369 |
echo 'Checking to see if your C compiler knows about "volatile"...' >&4 |
14370 |
$cat >try.c <<'EOCP' |
14371 |
int main() |
14372 |
{ |
14373 |
typedef struct _goo_struct goo_struct; |
14374 |
goo_struct * volatile goo = ((goo_struct *)0); |
14375 |
struct _goo_struct { |
14376 |
long long_int; |
14377 |
int reg_int; |
14378 |
char char_var; |
14379 |
}; |
14380 |
typedef unsigned short foo_t; |
14381 |
char *volatile foo; |
14382 |
volatile int bar; |
14383 |
volatile foo_t blech; |
14384 |
foo = foo; |
14385 |
} |
14386 |
EOCP |
14387 |
if $cc -c $ccflags try.c >/dev/null 2>&1 ; then |
14388 |
val="$define" |
14389 |
echo "Yup, it does." |
14390 |
else |
14391 |
val="$undef" |
14392 |
echo "Nope, it doesn't." |
14393 |
fi |
14394 |
set d_volatile |
14395 |
eval $setvar |
14396 |
$rm -f try.* |
14397 |
|
14398 |
|
14399 |
echo " " |
14400 |
$echo "Choosing the C types to be used for Perl's internal types..." >&4 |
14401 |
|
14402 |
case "$use64bitint:$d_quad:$quadtype" in |
14403 |
define:define:?*) |
14404 |
ivtype="$quadtype" |
14405 |
uvtype="$uquadtype" |
14406 |
ivsize=8 |
14407 |
uvsize=8 |
14408 |
;; |
14409 |
*) ivtype="long" |
14410 |
uvtype="unsigned long" |
14411 |
ivsize=$longsize |
14412 |
uvsize=$longsize |
14413 |
;; |
14414 |
esac |
14415 |
|
14416 |
case "$uselongdouble:$d_longdbl" in |
14417 |
define:define) |
14418 |
nvtype="long double" |
14419 |
nvsize=$longdblsize |
14420 |
;; |
14421 |
*) nvtype=double |
14422 |
nvsize=$doublesize |
14423 |
;; |
14424 |
esac |
14425 |
|
14426 |
$echo "(IV will be "$ivtype", $ivsize bytes)" |
14427 |
$echo "(UV will be "$uvtype", $uvsize bytes)" |
14428 |
$echo "(NV will be "$nvtype", $nvsize bytes)" |
14429 |
|
14430 |
$cat >try.c <<EOCP |
14431 |
#$i_inttypes I_INTTYPES |
14432 |
#ifdef I_INTTYPES |
14433 |
#include <inttypes.h> |
14434 |
#endif |
14435 |
#include <stdio.h> |
14436 |
int main() { |
14437 |
#ifdef INT8 |
14438 |
int8_t i = INT8_MAX; |
14439 |
uint8_t u = UINT8_MAX; |
14440 |
printf("int8_t\n"); |
14441 |
#endif |
14442 |
#ifdef INT16 |
14443 |
int16_t i = INT16_MAX; |
14444 |
uint16_t i = UINT16_MAX; |
14445 |
printf("int16_t\n"); |
14446 |
#endif |
14447 |
#ifdef INT32 |
14448 |
int32_t i = INT32_MAX; |
14449 |
uint32_t u = UINT32_MAX; |
14450 |
printf("int32_t\n"); |
14451 |
#endif |
14452 |
} |
14453 |
EOCP |
14454 |
|
14455 |
case "$i8type" in |
14456 |
'') case "$charsize" in |
14457 |
1) i8type=char |
14458 |
u8type="unsigned char" |
14459 |
i8size=$charsize |
14460 |
u8size=$charsize |
14461 |
;; |
14462 |
esac |
14463 |
;; |
14464 |
esac |
14465 |
case "$i8type" in |
14466 |
'') set try -DINT8 |
14467 |
if eval $compile; then |
14468 |
case "`$run ./try`" in |
14469 |
int8_t) i8type=int8_t |
14470 |
u8type=uint8_t |
14471 |
i8size=1 |
14472 |
u8size=1 |
14473 |
;; |
14474 |
esac |
14475 |
fi |
14476 |
;; |
14477 |
esac |
14478 |
case "$i8type" in |
14479 |
'') if $test $charsize -ge 1; then |
14480 |
i8type=char |
14481 |
u8type="unsigned char" |
14482 |
i8size=$charsize |
14483 |
u8size=$charsize |
14484 |
fi |
14485 |
;; |
14486 |
esac |
14487 |
|
14488 |
case "$i16type" in |
14489 |
'') case "$shortsize" in |
14490 |
2) i16type=short |
14491 |
u16type="unsigned short" |
14492 |
i16size=$shortsize |
14493 |
u16size=$shortsize |
14494 |
;; |
14495 |
esac |
14496 |
;; |
14497 |
esac |
14498 |
case "$i16type" in |
14499 |
'') set try -DINT16 |
14500 |
if eval $compile; then |
14501 |
case "`$run ./try`" in |
14502 |
int16_t) |
14503 |
i16type=int16_t |
14504 |
u16type=uint16_t |
14505 |
i16size=2 |
14506 |
u16size=2 |
14507 |
;; |
14508 |
esac |
14509 |
fi |
14510 |
;; |
14511 |
esac |
14512 |
case "$i16type" in |
14513 |
'') if $test $shortsize -ge 2; then |
14514 |
i16type=short |
14515 |
u16type="unsigned short" |
14516 |
i16size=$shortsize |
14517 |
u16size=$shortsize |
14518 |
fi |
14519 |
;; |
14520 |
esac |
14521 |
|
14522 |
case "$i32type" in |
14523 |
'') case "$longsize" in |
14524 |
4) i32type=long |
14525 |
u32type="unsigned long" |
14526 |
i32size=$longsize |
14527 |
u32size=$longsize |
14528 |
;; |
14529 |
*) case "$intsize" in |
14530 |
4) i32type=int |
14531 |
u32type="unsigned int" |
14532 |
i32size=$intsize |
14533 |
u32size=$intsize |
14534 |
;; |
14535 |
esac |
14536 |
;; |
14537 |
esac |
14538 |
;; |
14539 |
esac |
14540 |
case "$i32type" in |
14541 |
'') set try -DINT32 |
14542 |
if eval $compile; then |
14543 |
case "`$run ./try`" in |
14544 |
int32_t) |
14545 |
i32type=int32_t |
14546 |
u32type=uint32_t |
14547 |
i32size=4 |
14548 |
u32size=4 |
14549 |
;; |
14550 |
esac |
14551 |
fi |
14552 |
;; |
14553 |
esac |
14554 |
case "$i32type" in |
14555 |
'') if $test $intsize -ge 4; then |
14556 |
i32type=int |
14557 |
u32type="unsigned int" |
14558 |
i32size=$intsize |
14559 |
u32size=$intsize |
14560 |
fi |
14561 |
;; |
14562 |
esac |
14563 |
|
14564 |
case "$i64type" in |
14565 |
'') case "$d_quad:$quadtype" in |
14566 |
define:?*) |
14567 |
i64type="$quadtype" |
14568 |
u64type="$uquadtype" |
14569 |
i64size=8 |
14570 |
u64size=8 |
14571 |
;; |
14572 |
esac |
14573 |
;; |
14574 |
esac |
14575 |
|
14576 |
$echo "Checking how many bits of your UVs your NVs can preserve..." >&4 |
14577 |
: volatile so that the compiler has to store it out to memory. |
14578 |
if test X"$d_volatile" = X"$define"; then |
14579 |
volatile=volatile |
14580 |
fi |
14581 |
$cat <<EOP >try.c |
14582 |
#include <stdio.h> |
14583 |
#$i_stdlib I_STDLIB |
14584 |
#ifdef I_STDLIB |
14585 |
#include <stdlib.h> |
14586 |
#endif |
14587 |
#include <sys/types.h> |
14588 |
#include <signal.h> |
14589 |
#ifdef SIGFPE |
14590 |
$volatile int bletched = 0; |
14591 |
$signal_t blech(s) int s; { bletched = 1; } |
14592 |
#endif |
14593 |
int main() { |
14594 |
$uvtype u = 0; |
14595 |
$nvtype d; |
14596 |
int n = 8 * $uvsize; |
14597 |
int i; |
14598 |
#ifdef SIGFPE |
14599 |
signal(SIGFPE, blech); |
14600 |
#endif |
14601 |
|
14602 |
for (i = 0; i < n; i++) { |
14603 |
u = u << 1 | ($uvtype)1; |
14604 |
d = ($nvtype)u; |
14605 |
if (($uvtype)d != u) |
14606 |
break; |
14607 |
if (d <= 0) |
14608 |
break; |
14609 |
d = ($nvtype)(u - 1); |
14610 |
if (($uvtype)d != (u - 1)) |
14611 |
break; |
14612 |
#ifdef SIGFPE |
14613 |
if (bletched) { |
14614 |
break; |
14615 |
#endif |
14616 |
} |
14617 |
} |
14618 |
printf("%d\n", ((i == n) ? -n : i)); |
14619 |
exit(0); |
14620 |
} |
14621 |
EOP |
14622 |
set try |
14623 |
|
14624 |
d_nv_preserves_uv="$undef" |
14625 |
if eval $compile; then |
14626 |
nv_preserves_uv_bits="`$run ./try`" |
14627 |
fi |
14628 |
case "$nv_preserves_uv_bits" in |
14629 |
\-[1-9]*) |
14630 |
nv_preserves_uv_bits=`expr 0 - $nv_preserves_uv_bits` |
14631 |
$echo "Your NVs can preserve all $nv_preserves_uv_bits bits of your UVs." 2>&1 |
14632 |
d_nv_preserves_uv="$define" |
14633 |
;; |
14634 |
[1-9]*) $echo "Your NVs can preserve only $nv_preserves_uv_bits bits of your UVs." 2>&1 |
14635 |
d_nv_preserves_uv="$undef" ;; |
14636 |
*) $echo "Can't figure out how many bits your NVs preserve." 2>&1 |
14637 |
nv_preserves_uv_bits="$undef" ;; |
14638 |
esac |
14639 |
|
14640 |
$rm -f try.* try |
14641 |
|
14642 |
|
14643 |
: check for off64_t |
14644 |
echo " " |
14645 |
echo "Checking to see if you have off64_t..." >&4 |
14646 |
$cat >try.c <<EOCP |
14647 |
#include <sys/types.h> |
14648 |
#include <unistd.h> |
14649 |
int main() { off64_t x = 7; } |
14650 |
EOCP |
14651 |
set try |
14652 |
if eval $compile; then |
14653 |
val="$define" |
14654 |
echo "You have off64_t." |
14655 |
else |
14656 |
val="$undef" |
14657 |
echo "You do not have off64_t." |
14658 |
case "$lseeksize" in |
14659 |
8) echo "(Your off_t is 64 bits, so you could use that.)" ;; |
14660 |
esac |
14661 |
fi |
14662 |
$rm -f try.* try |
14663 |
set d_off64_t |
14664 |
eval $setvar |
14665 |
|
14666 |
: how to create joinable pthreads |
14667 |
if test "X$usethreads" = "X$define" -a "X$i_pthread" = "X$define"; then |
14668 |
echo " " |
14669 |
echo "Checking what constant to use for creating joinable pthreads..." >&4 |
14670 |
$cat >try.c <<'EOCP' |
14671 |
#include <pthread.h> |
14672 |
int main() { |
14673 |
int detachstate = JOINABLE; |
14674 |
} |
14675 |
EOCP |
14676 |
set try -DJOINABLE=PTHREAD_CREATE_JOINABLE |
14677 |
if eval $compile; then |
14678 |
echo "You seem to use PTHREAD_CREATE_JOINABLE." >&4 |
14679 |
val="$undef" # Yes, undef. |
14680 |
set d_old_pthread_create_joinable |
14681 |
eval $setvar |
14682 |
val="" |
14683 |
set old_pthread_create_joinable |
14684 |
eval $setvar |
14685 |
else |
14686 |
set try -DJOINABLE=PTHREAD_CREATE_UNDETACHED |
14687 |
if eval $compile; then |
14688 |
echo "You seem to use PTHREAD_CREATE_UNDETACHED." >&4 |
14689 |
val="$define" |
14690 |
set d_old_pthread_create_joinable |
14691 |
eval $setvar |
14692 |
val=PTHREAD_CREATE_UNDETACHED |
14693 |
set old_pthread_create_joinable |
14694 |
eval $setvar |
14695 |
else |
14696 |
set try -DJOINABLE=__UNDETACHED |
14697 |
if eval $compile; then |
14698 |
echo "You seem to use __UNDETACHED." >&4 |
14699 |
val="$define" |
14700 |
set d_old_pthread_create_joinable |
14701 |
eval $setvar |
14702 |
val=__UNDETACHED |
14703 |
set old_pthread_create_joinable |
14704 |
eval $setvar |
14705 |
else |
14706 |
echo "Egads, nothing obvious found. Guessing that you use 0." >&4 |
14707 |
val="$define" |
14708 |
set d_old_pthread_create_joinable |
14709 |
eval $setvar |
14710 |
val=0 |
14711 |
set old_pthread_create_joinable |
14712 |
eval $setvar |
14713 |
fi |
14714 |
fi |
14715 |
fi |
14716 |
$rm -f try try.* |
14717 |
else |
14718 |
d_old_pthread_create_joinable="$undef" |
14719 |
old_pthread_create_joinable="" |
14720 |
fi |
14721 |
|
14722 |
: see if pause exists |
14723 |
set pause d_pause |
14724 |
eval $inlibc |
14725 |
|
14726 |
: see if pipe exists |
14727 |
set pipe d_pipe |
14728 |
eval $inlibc |
14729 |
|
14730 |
: see if poll exists |
14731 |
set poll d_poll |
14732 |
eval $inlibc |
14733 |
|
14734 |
: see if readlink exists |
14735 |
set readlink d_readlink |
14736 |
eval $inlibc |
14737 |
|
14738 |
echo " " |
14739 |
procselfexe='' |
14740 |
val="$undef" |
14741 |
case "$d_readlink" in |
14742 |
"$define") |
14743 |
if $issymlink /proc/self/exe ; then |
14744 |
$ls -l /proc/self/exe > reflect |
14745 |
if $contains /`basename $ls` reflect >/dev/null 2>&1; then |
14746 |
echo "You have Linux-like /proc/self/exe." |
14747 |
procselfexe='"/proc/self/exe"' |
14748 |
val="$define" |
14749 |
fi |
14750 |
fi |
14751 |
if $issymlink /proc/curproc/file ; then |
14752 |
$ls -l /proc/curproc/file > reflect |
14753 |
if $contains /`basename $ls` reflect >/dev/null 2>&1; then |
14754 |
echo "You have BSD-like /proc/curproc/file." |
14755 |
procselfexe='"/proc/curproc/file"' |
14756 |
val="$define" |
14757 |
fi |
14758 |
fi |
14759 |
;; |
14760 |
esac |
14761 |
$rm -f reflect |
14762 |
set d_procselfexe |
14763 |
eval $setvar |
14764 |
|
14765 |
: see whether the pthread_atfork exists |
14766 |
$cat >try.c <<EOP |
14767 |
#include <pthread.h> |
14768 |
#include <stdio.h> |
14769 |
int main() { |
14770 |
#ifdef PTHREAD_ATFORK |
14771 |
pthread_atfork(NULL,NULL,NULL); |
14772 |
#endif |
14773 |
} |
14774 |
EOP |
14775 |
|
14776 |
: see if pthread_atfork exists |
14777 |
set try -DPTHREAD_ATFORK |
14778 |
if eval $compile; then |
14779 |
val="$define" |
14780 |
else |
14781 |
val="$undef" |
14782 |
fi |
14783 |
case "$usethreads" in |
14784 |
$define) |
14785 |
case "$val" in |
14786 |
$define) echo 'pthread_atfork found.' >&4 ;; |
14787 |
*) echo 'pthread_atfork NOT found.' >&4 ;; |
14788 |
esac |
14789 |
esac |
14790 |
set d_pthread_atfork |
14791 |
eval $setvar |
14792 |
|
14793 |
: see if pthread_attr_setscope exists |
14794 |
set pthread_attr_setscope d_pthread_attr_setscope |
14795 |
eval $inlibc |
14796 |
|
14797 |
|
14798 |
: see whether the various POSIXish _yields exist |
14799 |
$cat >try.c <<EOP |
14800 |
#include <pthread.h> |
14801 |
#include <stdio.h> |
14802 |
int main() { |
14803 |
#ifdef SCHED_YIELD |
14804 |
sched_yield(); |
14805 |
#else |
14806 |
#ifdef PTHREAD_YIELD |
14807 |
pthread_yield(); |
14808 |
#else |
14809 |
#ifdef PTHREAD_YIELD_NULL |
14810 |
pthread_yield(NULL); |
14811 |
#endif |
14812 |
#endif |
14813 |
#endif |
14814 |
} |
14815 |
EOP |
14816 |
: see if sched_yield exists |
14817 |
set try -DSCHED_YIELD |
14818 |
if eval $compile; then |
14819 |
val="$define" |
14820 |
sched_yield='sched_yield()' |
14821 |
else |
14822 |
val="$undef" |
14823 |
fi |
14824 |
case "$usethreads" in |
14825 |
$define) |
14826 |
case "$val" in |
14827 |
$define) echo 'sched_yield() found.' >&4 ;; |
14828 |
*) echo 'sched_yield() NOT found.' >&4 ;; |
14829 |
esac |
14830 |
esac |
14831 |
set d_sched_yield |
14832 |
eval $setvar |
14833 |
|
14834 |
: see if pthread_yield exists |
14835 |
set try -DPTHREAD_YIELD |
14836 |
if eval $compile; then |
14837 |
val="$define" |
14838 |
case "$sched_yield" in |
14839 |
'') sched_yield='pthread_yield()' ;; |
14840 |
esac |
14841 |
else |
14842 |
set try -DPTHREAD_YIELD_NULL |
14843 |
if eval $compile; then |
14844 |
val="$define" |
14845 |
case "$sched_yield" in |
14846 |
'') sched_yield='pthread_yield(NULL)' ;; |
14847 |
esac |
14848 |
else |
14849 |
val="$undef" |
14850 |
fi |
14851 |
fi |
14852 |
case "$usethreads" in |
14853 |
$define) |
14854 |
case "$val" in |
14855 |
$define) echo 'pthread_yield() found.' >&4 ;; |
14856 |
*) echo 'pthread_yield() NOT found.' >&4 ;; |
14857 |
esac |
14858 |
;; |
14859 |
esac |
14860 |
set d_pthread_yield |
14861 |
eval $setvar |
14862 |
|
14863 |
case "$sched_yield" in |
14864 |
'') sched_yield=undef ;; |
14865 |
esac |
14866 |
|
14867 |
$rm -f try try.* |
14868 |
|
14869 |
: see if random_r exists |
14870 |
set random_r d_random_r |
14871 |
eval $inlibc |
14872 |
case "$d_random_r" in |
14873 |
"$define") |
14874 |
hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h" |
14875 |
case "$d_random_r_proto:$usethreads" in |
14876 |
":define") d_random_r_proto=define |
14877 |
set d_random_r_proto random_r $hdrs |
14878 |
eval $hasproto ;; |
14879 |
*) ;; |
14880 |
esac |
14881 |
case "$d_random_r_proto" in |
14882 |
define) |
14883 |
case "$random_r_proto" in |
14884 |
''|0) try='int random_r(int*, struct random_data*);' |
14885 |
./protochk "extern $try" $hdrs && random_r_proto=I_iS ;; |
14886 |
esac |
14887 |
case "$random_r_proto" in |
14888 |
''|0) try='int random_r(long*, struct random_data*);' |
14889 |
./protochk "extern $try" $hdrs && random_r_proto=I_lS ;; |
14890 |
esac |
14891 |
case "$random_r_proto" in |
14892 |
''|0) try='int random_r(struct random_data*, int32_t*);' |
14893 |
./protochk "extern $try" $hdrs && random_r_proto=I_St ;; |
14894 |
esac |
14895 |
case "$random_r_proto" in |
14896 |
''|0) d_random_r=undef |
14897 |
random_r_proto=0 |
14898 |
echo "Disabling random_r, cannot determine prototype." >&4 ;; |
14899 |
* ) case "$random_r_proto" in |
14900 |
REENTRANT_PROTO*) ;; |
14901 |
*) random_r_proto="REENTRANT_PROTO_$random_r_proto" ;; |
14902 |
esac |
14903 |
echo "Prototype: $try" ;; |
14904 |
esac |
14905 |
;; |
14906 |
*) case "$usethreads" in |
14907 |
define) echo "random_r has no prototype, not using it." >&4 ;; |
14908 |
esac |
14909 |
d_random_r=undef |
14910 |
random_r_proto=0 |
14911 |
;; |
14912 |
esac |
14913 |
;; |
14914 |
*) random_r_proto=0 |
14915 |
;; |
14916 |
esac |
14917 |
|
14918 |
: see if readdir and friends exist |
14919 |
set readdir d_readdir |
14920 |
eval $inlibc |
14921 |
set seekdir d_seekdir |
14922 |
eval $inlibc |
14923 |
set telldir d_telldir |
14924 |
eval $inlibc |
14925 |
set rewinddir d_rewinddir |
14926 |
eval $inlibc |
14927 |
|
14928 |
: see if readdir64_r exists |
14929 |
set readdir64_r d_readdir64_r |
14930 |
eval $inlibc |
14931 |
case "$d_readdir64_r" in |
14932 |
"$define") |
14933 |
hdrs="$i_systypes sys/types.h define stdio.h $i_dirent dirent.h" |
14934 |
case "$d_readdir64_r_proto:$usethreads" in |
14935 |
":define") d_readdir64_r_proto=define |
14936 |
set d_readdir64_r_proto readdir64_r $hdrs |
14937 |
eval $hasproto ;; |
14938 |
*) ;; |
14939 |
esac |
14940 |
case "$d_readdir64_r_proto" in |
14941 |
define) |
14942 |
case "$readdir64_r_proto" in |
14943 |
''|0) try='int readdir64_r(DIR*, struct dirent64*, struct dirent64**);' |
14944 |
./protochk "extern $try" $hdrs && readdir64_r_proto=I_TSR ;; |
14945 |
esac |
14946 |
case "$readdir64_r_proto" in |
14947 |
''|0) try='int readdir64_r(DIR*, struct dirent64*);' |
14948 |
./protochk "extern $try" $hdrs && readdir64_r_proto=I_TS ;; |
14949 |
esac |
14950 |
case "$readdir64_r_proto" in |
14951 |
''|0) d_readdir64_r=undef |
14952 |
readdir64_r_proto=0 |
14953 |
echo "Disabling readdir64_r, cannot determine prototype." >&4 ;; |
14954 |
* ) case "$readdir64_r_proto" in |
14955 |
REENTRANT_PROTO*) ;; |
14956 |
*) readdir64_r_proto="REENTRANT_PROTO_$readdir64_r_proto" ;; |
14957 |
esac |
14958 |
echo "Prototype: $try" ;; |
14959 |
esac |
14960 |
;; |
14961 |
*) case "$usethreads" in |
14962 |
define) echo "readdir64_r has no prototype, not using it." >&4 ;; |
14963 |
esac |
14964 |
d_readdir64_r=undef |
14965 |
readdir64_r_proto=0 |
14966 |
;; |
14967 |
esac |
14968 |
;; |
14969 |
*) readdir64_r_proto=0 |
14970 |
;; |
14971 |
esac |
14972 |
|
14973 |
: see if readdir_r exists |
14974 |
set readdir_r d_readdir_r |
14975 |
eval $inlibc |
14976 |
case "$d_readdir_r" in |
14977 |
"$define") |
14978 |
hdrs="$i_systypes sys/types.h define stdio.h $i_dirent dirent.h" |
14979 |
case "$d_readdir_r_proto:$usethreads" in |
14980 |
":define") d_readdir_r_proto=define |
14981 |
set d_readdir_r_proto readdir_r $hdrs |
14982 |
eval $hasproto ;; |
14983 |
*) ;; |
14984 |
esac |
14985 |
case "$d_readdir_r_proto" in |
14986 |
define) |
14987 |
case "$readdir_r_proto" in |
14988 |
''|0) try='int readdir_r(DIR*, struct dirent*, struct dirent**);' |
14989 |
./protochk "extern $try" $hdrs && readdir_r_proto=I_TSR ;; |
14990 |
esac |
14991 |
case "$readdir_r_proto" in |
14992 |
''|0) try='int readdir_r(DIR*, struct dirent*);' |
14993 |
./protochk "extern $try" $hdrs && readdir_r_proto=I_TS ;; |
14994 |
esac |
14995 |
case "$readdir_r_proto" in |
14996 |
''|0) d_readdir_r=undef |
14997 |
readdir_r_proto=0 |
14998 |
echo "Disabling readdir_r, cannot determine prototype." >&4 ;; |
14999 |
* ) case "$readdir_r_proto" in |
15000 |
REENTRANT_PROTO*) ;; |
15001 |
*) readdir_r_proto="REENTRANT_PROTO_$readdir_r_proto" ;; |
15002 |
esac |
15003 |
echo "Prototype: $try" ;; |
15004 |
esac |
15005 |
;; |
15006 |
*) case "$usethreads" in |
15007 |
define) echo "readdir_r has no prototype, not using it." >&4 ;; |
15008 |
esac |
15009 |
d_readdir_r=undef |
15010 |
readdir_r_proto=0 |
15011 |
;; |
15012 |
esac |
15013 |
;; |
15014 |
*) readdir_r_proto=0 |
15015 |
;; |
15016 |
esac |
15017 |
|
15018 |
: see if readv exists |
15019 |
set readv d_readv |
15020 |
eval $inlibc |
15021 |
|
15022 |
: see if recvmsg exists |
15023 |
set recvmsg d_recvmsg |
15024 |
eval $inlibc |
15025 |
|
15026 |
: see if rename exists |
15027 |
set rename d_rename |
15028 |
eval $inlibc |
15029 |
|
15030 |
: see if rmdir exists |
15031 |
set rmdir d_rmdir |
15032 |
eval $inlibc |
15033 |
|
15034 |
: see if memory.h is available. |
15035 |
val='' |
15036 |
set memory.h val |
15037 |
eval $inhdr |
15038 |
|
15039 |
: See if it conflicts with string.h |
15040 |
case "$val" in |
15041 |
$define) |
15042 |
case "$strings" in |
15043 |
'') ;; |
15044 |
*) |
15045 |
$cppstdin $cppflags $cppminus < $strings > mem.h |
15046 |
if $contains 'memcpy' mem.h >/dev/null 2>&1; then |
15047 |
echo " " |
15048 |
echo "We won't be including <memory.h>." |
15049 |
val="$undef" |
15050 |
fi |
15051 |
$rm -f mem.h |
15052 |
;; |
15053 |
esac |
15054 |
esac |
15055 |
set i_memory |
15056 |
eval $setvar |
15057 |
|
15058 |
: can bcopy handle overlapping blocks? |
15059 |
echo " " |
15060 |
val="$undef" |
15061 |
case "$d_memmove" in |
15062 |
"$define") echo "I'll use memmove() instead of bcopy() for overlapping copies." ;; |
15063 |
*) case "$d_bcopy" in |
15064 |
"$define") |
15065 |
echo "Checking to see if bcopy() can do overlapping copies..." >&4 |
15066 |
$cat >try.c <<EOCP |
15067 |
#$i_memory I_MEMORY |
15068 |
#$i_stdlib I_STDLIB |
15069 |
#$i_string I_STRING |
15070 |
#$i_unistd I_UNISTD |
15071 |
EOCP |
15072 |
$cat >>try.c <<'EOCP' |
15073 |
#include <stdio.h> |
15074 |
#ifdef I_MEMORY |
15075 |
# include <memory.h> |
15076 |
#endif |
15077 |
#ifdef I_STDLIB |
15078 |
# include <stdlib.h> |
15079 |
#endif |
15080 |
#ifdef I_STRING |
15081 |
# include <string.h> |
15082 |
#else |
15083 |
# include <strings.h> |
15084 |
#endif |
15085 |
#ifdef I_UNISTD |
15086 |
# include <unistd.h> /* Needed for NetBSD */ |
15087 |
#endif |
15088 |
int main() |
15089 |
{ |
15090 |
char buf[128], abc[128]; |
15091 |
char *b; |
15092 |
int len; |
15093 |
int off; |
15094 |
int align; |
15095 |
|
15096 |
/* Copy "abcde..." string to char abc[] so that gcc doesn't |
15097 |
try to store the string in read-only memory. */ |
15098 |
bcopy("abcdefghijklmnopqrstuvwxyz0123456789", abc, 36); |
15099 |
|
15100 |
for (align = 7; align >= 0; align--) { |
15101 |
for (len = 36; len; len--) { |
15102 |
b = buf+align; |
15103 |
bcopy(abc, b, len); |
15104 |
for (off = 1; off <= len; off++) { |
15105 |
bcopy(b, b+off, len); |
15106 |
bcopy(b+off, b, len); |
15107 |
if (bcmp(b, abc, len)) |
15108 |
exit(1); |
15109 |
} |
15110 |
} |
15111 |
} |
15112 |
exit(0); |
15113 |
} |
15114 |
EOCP |
15115 |
set try |
15116 |
if eval $compile_ok; then |
15117 |
if ./try 2>/dev/null; then |
15118 |
echo "Yes, it can." |
15119 |
val="$define" |
15120 |
else |
15121 |
echo "It can't, sorry." |
15122 |
fi |
15123 |
else |
15124 |
echo "(I can't compile the test program, so we'll assume not...)" |
15125 |
fi |
15126 |
;; |
15127 |
esac |
15128 |
$rm -f try.* try core |
15129 |
;; |
15130 |
esac |
15131 |
set d_safebcpy |
15132 |
eval $setvar |
15133 |
|
15134 |
: can memcpy handle overlapping blocks? |
15135 |
echo " " |
15136 |
val="$undef" |
15137 |
case "$d_memmove" in |
15138 |
"$define") echo "I'll use memmove() instead of memcpy() for overlapping copies." ;; |
15139 |
*) case "$d_memcpy" in |
15140 |
"$define") |
15141 |
echo "Checking to see if memcpy() can do overlapping copies..." >&4 |
15142 |
$cat >try.c <<EOCP |
15143 |
#$i_memory I_MEMORY |
15144 |
#$i_stdlib I_STDLIB |
15145 |
#$i_string I_STRING |
15146 |
#$i_unistd I_UNISTD |
15147 |
EOCP |
15148 |
$cat >>try.c <<'EOCP' |
15149 |
#include <stdio.h> |
15150 |
#ifdef I_MEMORY |
15151 |
# include <memory.h> |
15152 |
#endif |
15153 |
#ifdef I_STDLIB |
15154 |
# include <stdlib.h> |
15155 |
#endif |
15156 |
#ifdef I_STRING |
15157 |
# include <string.h> |
15158 |
#else |
15159 |
# include <strings.h> |
15160 |
#endif |
15161 |
#ifdef I_UNISTD |
15162 |
# include <unistd.h> /* Needed for NetBSD */ |
15163 |
#endif |
15164 |
int main() |
15165 |
{ |
15166 |
char buf[128], abc[128]; |
15167 |
char *b; |
15168 |
int len; |
15169 |
int off; |
15170 |
int align; |
15171 |
|
15172 |
/* Copy "abcde..." string to char abc[] so that gcc doesn't |
15173 |
try to store the string in read-only memory. */ |
15174 |
memcpy(abc, "abcdefghijklmnopqrstuvwxyz0123456789", 36); |
15175 |
|
15176 |
for (align = 7; align >= 0; align--) { |
15177 |
for (len = 36; len; len--) { |
15178 |
b = buf+align; |
15179 |
memcpy(b, abc, len); |
15180 |
for (off = 1; off <= len; off++) { |
15181 |
memcpy(b+off, b, len); |
15182 |
memcpy(b, b+off, len); |
15183 |
if (memcmp(b, abc, len)) |
15184 |
exit(1); |
15185 |
} |
15186 |
} |
15187 |
} |
15188 |
exit(0); |
15189 |
} |
15190 |
EOCP |
15191 |
set try |
15192 |
if eval $compile_ok; then |
15193 |
if ./try 2>/dev/null; then |
15194 |
echo "Yes, it can." |
15195 |
val="$define" |
15196 |
else |
15197 |
echo "It can't, sorry." |
15198 |
fi |
15199 |
else |
15200 |
echo "(I can't compile the test program, so we'll assume not...)" |
15201 |
fi |
15202 |
;; |
15203 |
esac |
15204 |
$rm -f try.* try core |
15205 |
;; |
15206 |
esac |
15207 |
set d_safemcpy |
15208 |
eval $setvar |
15209 |
|
15210 |
: can memcmp be trusted to compare relative magnitude? |
15211 |
val="$undef" |
15212 |
case "$d_memcmp" in |
15213 |
"$define") |
15214 |
echo " " |
15215 |
echo "Checking if your memcmp() can compare relative magnitude..." >&4 |
15216 |
$cat >try.c <<EOCP |
15217 |
#$i_memory I_MEMORY |
15218 |
#$i_stdlib I_STDLIB |
15219 |
#$i_string I_STRING |
15220 |
#$i_unistd I_UNISTD |
15221 |
EOCP |
15222 |
$cat >>try.c <<'EOCP' |
15223 |
#include <stdio.h> |
15224 |
#ifdef I_MEMORY |
15225 |
# include <memory.h> |
15226 |
#endif |
15227 |
#ifdef I_STDLIB |
15228 |
# include <stdlib.h> |
15229 |
#endif |
15230 |
#ifdef I_STRING |
15231 |
# include <string.h> |
15232 |
#else |
15233 |
# include <strings.h> |
15234 |
#endif |
15235 |
#ifdef I_UNISTD |
15236 |
# include <unistd.h> /* Needed for NetBSD */ |
15237 |
#endif |
15238 |
int main() |
15239 |
{ |
15240 |
char a = -1; |
15241 |
char b = 0; |
15242 |
if ((a < b) && memcmp(&a, &b, 1) < 0) |
15243 |
exit(1); |
15244 |
exit(0); |
15245 |
} |
15246 |
EOCP |
15247 |
set try |
15248 |
if eval $compile_ok; then |
15249 |
if $run ./try 2>/dev/null; then |
15250 |
echo "Yes, it can." |
15251 |
val="$define" |
15252 |
else |
15253 |
echo "No, it can't (it uses signed chars)." |
15254 |
fi |
15255 |
else |
15256 |
echo "(I can't compile the test program, so we'll assume not...)" |
15257 |
fi |
15258 |
;; |
15259 |
esac |
15260 |
$rm -f try.* try core |
15261 |
set d_sanemcmp |
15262 |
eval $setvar |
15263 |
|
15264 |
: see if prototype for sbrk is available |
15265 |
echo " " |
15266 |
set d_sbrkproto sbrk $i_unistd unistd.h |
15267 |
eval $hasproto |
15268 |
|
15269 |
: see if select exists |
15270 |
set select d_select |
15271 |
eval $inlibc |
15272 |
|
15273 |
: see if semctl exists |
15274 |
set semctl d_semctl |
15275 |
eval $inlibc |
15276 |
|
15277 |
: see if semget exists |
15278 |
set semget d_semget |
15279 |
eval $inlibc |
15280 |
|
15281 |
: see if semop exists |
15282 |
set semop d_semop |
15283 |
eval $inlibc |
15284 |
|
15285 |
: see how much of the 'sem*(2)' library is present. |
15286 |
h_sem=true |
15287 |
echo " " |
15288 |
case "$d_semctl$d_semget$d_semop" in |
15289 |
*"$undef"*) h_sem=false;; |
15290 |
esac |
15291 |
case "$osname" in |
15292 |
freebsd) |
15293 |
case "`ipcs 2>&1`" in |
15294 |
"SVID messages"*"not configured"*) |
15295 |
echo "Your $osname does not have the sem*(2) configured." >&4 |
15296 |
h_sem=false |
15297 |
val="$undef" |
15298 |
set semctl d_semctl |
15299 |
eval $setvar |
15300 |
set semget d_semget |
15301 |
eval $setvar |
15302 |
set semop d_semop |
15303 |
eval $setvar |
15304 |
;; |
15305 |
esac |
15306 |
;; |
15307 |
esac |
15308 |
: we could also check for sys/ipc.h ... |
15309 |
if $h_sem && $test `./findhdr sys/sem.h`; then |
15310 |
echo "You have the full sem*(2) library." >&4 |
15311 |
val="$define" |
15312 |
else |
15313 |
echo "You don't have the full sem*(2) library." >&4 |
15314 |
val="$undef" |
15315 |
fi |
15316 |
set d_sem |
15317 |
eval $setvar |
15318 |
|
15319 |
: see whether sys/sem.h defines union semun |
15320 |
echo " " |
15321 |
$cat > try.c <<'END' |
15322 |
#include <sys/types.h> |
15323 |
#include <sys/ipc.h> |
15324 |
#include <sys/sem.h> |
15325 |
int main () { union semun semun; semun.buf = 0; } |
15326 |
END |
15327 |
set try |
15328 |
if eval $compile; then |
15329 |
echo "You have union semun in <sys/sem.h>." >&4 |
15330 |
val="$define" |
15331 |
else |
15332 |
echo "You do not have union semun in <sys/sem.h>." >&4 |
15333 |
val="$undef" |
15334 |
fi |
15335 |
$rm -f try try.c |
15336 |
set d_union_semun |
15337 |
eval $setvar |
15338 |
|
15339 |
: see how to do semctl IPC_STAT |
15340 |
case "$d_sem" in |
15341 |
$define) |
15342 |
echo " " |
15343 |
$cat > try.h <<END |
15344 |
#ifndef S_IRUSR |
15345 |
# ifdef S_IREAD |
15346 |
# define S_IRUSR S_IREAD |
15347 |
# define S_IWUSR S_IWRITE |
15348 |
# define S_IXUSR S_IEXEC |
15349 |
# else |
15350 |
# define S_IRUSR 0400 |
15351 |
# define S_IWUSR 0200 |
15352 |
# define S_IXUSR 0100 |
15353 |
# endif |
15354 |
# define S_IRGRP (S_IRUSR>>3) |
15355 |
# define S_IWGRP (S_IWUSR>>3) |
15356 |
# define S_IXGRP (S_IXUSR>>3) |
15357 |
# define S_IROTH (S_IRUSR>>6) |
15358 |
# define S_IWOTH (S_IWUSR>>6) |
15359 |
# define S_IXOTH (S_IXUSR>>6) |
15360 |
#endif |
15361 |
#ifndef S_IRWXU |
15362 |
# define S_IRWXU (S_IRUSR|S_IWUSR|S_IXUSR) |
15363 |
# define S_IRWXG (S_IRGRP|S_IWGRP|S_IXGRP) |
15364 |
# define S_IRWXO (S_IROTH|S_IWOTH|S_IXOTH) |
15365 |
#endif |
15366 |
END |
15367 |
: see whether semctl IPC_STAT can use union semun |
15368 |
val="$undef" |
15369 |
case "$d_semctl_semun" in |
15370 |
'') |
15371 |
$cat > try.c <<END |
15372 |
#include <sys/types.h> |
15373 |
#include <sys/ipc.h> |
15374 |
#include <sys/sem.h> |
15375 |
#include <sys/stat.h> |
15376 |
#include <stdio.h> |
15377 |
#include <errno.h> |
15378 |
#include "try.h" |
15379 |
#ifndef errno |
15380 |
extern int errno; |
15381 |
#endif |
15382 |
#$d_union_semun HAS_UNION_SEMUN |
15383 |
int main() { |
15384 |
union semun |
15385 |
#ifndef HAS_UNION_SEMUN |
15386 |
{ |
15387 |
int val; |
15388 |
struct semid_ds *buf; |
15389 |
unsigned short *array; |
15390 |
} |
15391 |
#endif |
15392 |
arg; |
15393 |
int sem, st; |
15394 |
|
15395 |
#if defined(IPC_PRIVATE) && defined(S_IRWXU) && defined(S_IRWXG) && defined(S_IRWXO) && defined(IPC_CREAT) |
15396 |
sem = semget(IPC_PRIVATE, 1, S_IRWXU|S_IRWXG|S_IRWXO|IPC_CREAT); |
15397 |
if (sem > -1) { |
15398 |
struct semid_ds argbuf; |
15399 |
arg.buf = &argbuf; |
15400 |
# ifdef IPC_STAT |
15401 |
st = semctl(sem, 0, IPC_STAT, arg); |
15402 |
if (st == 0) |
15403 |
printf("semun\n"); |
15404 |
else |
15405 |
# endif /* IPC_STAT */ |
15406 |
printf("semctl IPC_STAT failed: errno = %d\n", errno); |
15407 |
# ifdef IPC_RMID |
15408 |
if (semctl(sem, 0, IPC_RMID, arg) != 0) |
15409 |
# endif /* IPC_RMID */ |
15410 |
printf("semctl IPC_RMID failed: errno = %d\n", errno); |
15411 |
} else |
15412 |
#endif /* IPC_PRIVATE && ... */ |
15413 |
printf("semget failed: errno = %d\n", errno); |
15414 |
return 0; |
15415 |
} |
15416 |
END |
15417 |
set try |
15418 |
if eval $compile; then |
15419 |
xxx=`$run ./try` |
15420 |
case "$xxx" in |
15421 |
semun) val="$define" ;; |
15422 |
esac |
15423 |
fi |
15424 |
$rm -f try try.c |
15425 |
;; |
15426 |
esac |
15427 |
set d_semctl_semun |
15428 |
eval $setvar |
15429 |
case "$d_semctl_semun" in |
15430 |
$define) |
15431 |
echo "You can use union semun for semctl IPC_STAT." >&4 |
15432 |
also='also' |
15433 |
;; |
15434 |
*) echo "You cannot use union semun for semctl IPC_STAT." >&4 |
15435 |
also='' |
15436 |
;; |
15437 |
esac |
15438 |
|
15439 |
: see whether semctl IPC_STAT can use struct semid_ds pointer |
15440 |
val="$undef" |
15441 |
case "$d_semctl_semid_ds" in |
15442 |
'') |
15443 |
$cat > try.c <<'END' |
15444 |
#include <sys/types.h> |
15445 |
#include <sys/ipc.h> |
15446 |
#include <sys/sem.h> |
15447 |
#include <sys/stat.h> |
15448 |
#include "try.h" |
15449 |
#include <stdio.h> |
15450 |
#include <errno.h> |
15451 |
#ifndef errno |
15452 |
extern int errno; |
15453 |
#endif |
15454 |
int main() { |
15455 |
struct semid_ds arg; |
15456 |
int sem, st; |
15457 |
|
15458 |
#if defined(IPC_PRIVATE) && defined(S_IRWXU) && defined(S_IRWXG) && defined(S_IRWXO) && defined(IPC_CREAT) |
15459 |
sem = semget(IPC_PRIVATE, 1, S_IRWXU|S_IRWXG|S_IRWXO|IPC_CREAT); |
15460 |
if (sem > -1) { |
15461 |
# ifdef IPC_STAT |
15462 |
st = semctl(sem, 0, IPC_STAT, &arg); |
15463 |
if (st == 0) |
15464 |
printf("semid_ds\n"); |
15465 |
else |
15466 |
# endif /* IPC_STAT */ |
15467 |
printf("semctl IPC_STAT failed: errno = %d\n", errno); |
15468 |
# ifdef IPC_RMID |
15469 |
if (semctl(sem, 0, IPC_RMID, &arg) != 0) |
15470 |
# endif /* IPC_RMID */ |
15471 |
printf("semctl IPC_RMID failed: errno = %d\n", errno); |
15472 |
} else |
15473 |
#endif /* IPC_PRIVATE && ... */ |
15474 |
printf("semget failed: errno = %d\n", errno); |
15475 |
|
15476 |
return 0; |
15477 |
} |
15478 |
END |
15479 |
set try |
15480 |
if eval $compile; then |
15481 |
xxx=`$run ./try` |
15482 |
case "$xxx" in |
15483 |
semid_ds) val="$define" ;; |
15484 |
esac |
15485 |
fi |
15486 |
$rm -f try try.c |
15487 |
;; |
15488 |
esac |
15489 |
set d_semctl_semid_ds |
15490 |
eval $setvar |
15491 |
case "$d_semctl_semid_ds" in |
15492 |
$define) |
15493 |
echo "You can $also use struct semid_ds* for semctl IPC_STAT." >&4 |
15494 |
;; |
15495 |
*) echo "You cannot use struct semid_ds* for semctl IPC_STAT." >&4 |
15496 |
;; |
15497 |
esac |
15498 |
$rm -f try.h |
15499 |
;; |
15500 |
*) val="$undef" |
15501 |
|
15502 |
# We do not have the full sem*(2) library, so assume we can not |
15503 |
# use either. |
15504 |
|
15505 |
set d_semctl_semun |
15506 |
eval $setvar |
15507 |
|
15508 |
set d_semctl_semid_ds |
15509 |
eval $setvar |
15510 |
;; |
15511 |
esac |
15512 |
|
15513 |
: see if sendmsg exists |
15514 |
set sendmsg d_sendmsg |
15515 |
eval $inlibc |
15516 |
|
15517 |
: see if setegid exists |
15518 |
set setegid d_setegid |
15519 |
eval $inlibc |
15520 |
|
15521 |
: see if seteuid exists |
15522 |
set seteuid d_seteuid |
15523 |
eval $inlibc |
15524 |
|
15525 |
: see if setgrent exists |
15526 |
set setgrent d_setgrent |
15527 |
eval $inlibc |
15528 |
|
15529 |
: see if setgrent_r exists |
15530 |
set setgrent_r d_setgrent_r |
15531 |
eval $inlibc |
15532 |
case "$d_setgrent_r" in |
15533 |
"$define") |
15534 |
hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h" |
15535 |
case "$d_setgrent_r_proto:$usethreads" in |
15536 |
":define") d_setgrent_r_proto=define |
15537 |
set d_setgrent_r_proto setgrent_r $hdrs |
15538 |
eval $hasproto ;; |
15539 |
*) ;; |
15540 |
esac |
15541 |
case "$d_setgrent_r_proto" in |
15542 |
define) |
15543 |
case "$setgrent_r_proto" in |
15544 |
''|0) try='int setgrent_r(FILE**);' |
15545 |
./protochk "extern $try" $hdrs && setgrent_r_proto=I_H ;; |
15546 |
esac |
15547 |
case "$setgrent_r_proto" in |
15548 |
''|0) try='void setgrent_r(FILE**);' |
15549 |
./protochk "extern $try" $hdrs && setgrent_r_proto=V_H ;; |
15550 |
esac |
15551 |
case "$setgrent_r_proto" in |
15552 |
''|0) d_setgrent_r=undef |
15553 |
setgrent_r_proto=0 |
15554 |
echo "Disabling setgrent_r, cannot determine prototype." >&4 ;; |
15555 |
* ) case "$setgrent_r_proto" in |
15556 |
REENTRANT_PROTO*) ;; |
15557 |
*) setgrent_r_proto="REENTRANT_PROTO_$setgrent_r_proto" ;; |
15558 |
esac |
15559 |
echo "Prototype: $try" ;; |
15560 |
esac |
15561 |
;; |
15562 |
*) case "$usethreads" in |
15563 |
define) echo "setgrent_r has no prototype, not using it." >&4 ;; |
15564 |
esac |
15565 |
d_setgrent_r=undef |
15566 |
setgrent_r_proto=0 |
15567 |
;; |
15568 |
esac |
15569 |
;; |
15570 |
*) setgrent_r_proto=0 |
15571 |
;; |
15572 |
esac |
15573 |
|
15574 |
: see if sethostent exists |
15575 |
set sethostent d_sethent |
15576 |
eval $inlibc |
15577 |
|
15578 |
: see if sethostent_r exists |
15579 |
set sethostent_r d_sethostent_r |
15580 |
eval $inlibc |
15581 |
case "$d_sethostent_r" in |
15582 |
"$define") |
15583 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
15584 |
case "$d_sethostent_r_proto:$usethreads" in |
15585 |
":define") d_sethostent_r_proto=define |
15586 |
set d_sethostent_r_proto sethostent_r $hdrs |
15587 |
eval $hasproto ;; |
15588 |
*) ;; |
15589 |
esac |
15590 |
case "$d_sethostent_r_proto" in |
15591 |
define) |
15592 |
case "$sethostent_r_proto" in |
15593 |
''|0) try='int sethostent_r(int, struct hostent_data*);' |
15594 |
./protochk "extern $try" $hdrs && sethostent_r_proto=I_ID ;; |
15595 |
esac |
15596 |
case "$sethostent_r_proto" in |
15597 |
''|0) try='void sethostent_r(int, struct hostent_data*);' |
15598 |
./protochk "extern $try" $hdrs && sethostent_r_proto=V_ID ;; |
15599 |
esac |
15600 |
case "$sethostent_r_proto" in |
15601 |
''|0) d_sethostent_r=undef |
15602 |
sethostent_r_proto=0 |
15603 |
echo "Disabling sethostent_r, cannot determine prototype." >&4 ;; |
15604 |
* ) case "$sethostent_r_proto" in |
15605 |
REENTRANT_PROTO*) ;; |
15606 |
*) sethostent_r_proto="REENTRANT_PROTO_$sethostent_r_proto" ;; |
15607 |
esac |
15608 |
echo "Prototype: $try" ;; |
15609 |
esac |
15610 |
;; |
15611 |
*) case "$usethreads" in |
15612 |
define) echo "sethostent_r has no prototype, not using it." >&4 ;; |
15613 |
esac |
15614 |
d_sethostent_r=undef |
15615 |
sethostent_r_proto=0 |
15616 |
;; |
15617 |
esac |
15618 |
;; |
15619 |
*) sethostent_r_proto=0 |
15620 |
;; |
15621 |
esac |
15622 |
|
15623 |
: see if setitimer exists |
15624 |
set setitimer d_setitimer |
15625 |
eval $inlibc |
15626 |
|
15627 |
: see if setlinebuf exists |
15628 |
set setlinebuf d_setlinebuf |
15629 |
eval $inlibc |
15630 |
|
15631 |
: see if setlocale exists |
15632 |
set setlocale d_setlocale |
15633 |
eval $inlibc |
15634 |
|
15635 |
: see if locale.h is available |
15636 |
set locale.h i_locale |
15637 |
eval $inhdr |
15638 |
|
15639 |
: see if setlocale_r exists |
15640 |
set setlocale_r d_setlocale_r |
15641 |
eval $inlibc |
15642 |
case "$d_setlocale_r" in |
15643 |
"$define") |
15644 |
hdrs="$i_systypes sys/types.h define stdio.h $i_locale locale.h" |
15645 |
case "$d_setlocale_r_proto:$usethreads" in |
15646 |
":define") d_setlocale_r_proto=define |
15647 |
set d_setlocale_r_proto setlocale_r $hdrs |
15648 |
eval $hasproto ;; |
15649 |
*) ;; |
15650 |
esac |
15651 |
case "$d_setlocale_r_proto" in |
15652 |
define) |
15653 |
case "$setlocale_r_proto" in |
15654 |
''|0) try='int setlocale_r(int, const char*, char*, int);' |
15655 |
./protochk "extern $try" $hdrs && setlocale_r_proto=I_ICBI ;; |
15656 |
esac |
15657 |
case "$setlocale_r_proto" in |
15658 |
''|0) d_setlocale_r=undef |
15659 |
setlocale_r_proto=0 |
15660 |
echo "Disabling setlocale_r, cannot determine prototype." >&4 ;; |
15661 |
* ) case "$setlocale_r_proto" in |
15662 |
REENTRANT_PROTO*) ;; |
15663 |
*) setlocale_r_proto="REENTRANT_PROTO_$setlocale_r_proto" ;; |
15664 |
esac |
15665 |
echo "Prototype: $try" ;; |
15666 |
esac |
15667 |
;; |
15668 |
*) case "$usethreads" in |
15669 |
define) echo "setlocale_r has no prototype, not using it." >&4 ;; |
15670 |
esac |
15671 |
d_setlocale_r=undef |
15672 |
setlocale_r_proto=0 |
15673 |
;; |
15674 |
esac |
15675 |
;; |
15676 |
*) setlocale_r_proto=0 |
15677 |
;; |
15678 |
esac |
15679 |
|
15680 |
: see if setnetent exists |
15681 |
set setnetent d_setnent |
15682 |
eval $inlibc |
15683 |
|
15684 |
: see if setnetent_r exists |
15685 |
set setnetent_r d_setnetent_r |
15686 |
eval $inlibc |
15687 |
case "$d_setnetent_r" in |
15688 |
"$define") |
15689 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
15690 |
case "$d_setnetent_r_proto:$usethreads" in |
15691 |
":define") d_setnetent_r_proto=define |
15692 |
set d_setnetent_r_proto setnetent_r $hdrs |
15693 |
eval $hasproto ;; |
15694 |
*) ;; |
15695 |
esac |
15696 |
case "$d_setnetent_r_proto" in |
15697 |
define) |
15698 |
case "$setnetent_r_proto" in |
15699 |
''|0) try='int setnetent_r(int, struct netent_data*);' |
15700 |
./protochk "extern $try" $hdrs && setnetent_r_proto=I_ID ;; |
15701 |
esac |
15702 |
case "$setnetent_r_proto" in |
15703 |
''|0) try='void setnetent_r(int, struct netent_data*);' |
15704 |
./protochk "extern $try" $hdrs && setnetent_r_proto=V_ID ;; |
15705 |
esac |
15706 |
case "$setnetent_r_proto" in |
15707 |
''|0) d_setnetent_r=undef |
15708 |
setnetent_r_proto=0 |
15709 |
echo "Disabling setnetent_r, cannot determine prototype." >&4 ;; |
15710 |
* ) case "$setnetent_r_proto" in |
15711 |
REENTRANT_PROTO*) ;; |
15712 |
*) setnetent_r_proto="REENTRANT_PROTO_$setnetent_r_proto" ;; |
15713 |
esac |
15714 |
echo "Prototype: $try" ;; |
15715 |
esac |
15716 |
;; |
15717 |
*) case "$usethreads" in |
15718 |
define) echo "setnetent_r has no prototype, not using it." >&4 ;; |
15719 |
esac |
15720 |
d_setnetent_r=undef |
15721 |
setnetent_r_proto=0 |
15722 |
;; |
15723 |
esac |
15724 |
;; |
15725 |
*) setnetent_r_proto=0 |
15726 |
;; |
15727 |
esac |
15728 |
|
15729 |
: see if setprotoent exists |
15730 |
set setprotoent d_setpent |
15731 |
eval $inlibc |
15732 |
|
15733 |
: see if setpgid exists |
15734 |
set setpgid d_setpgid |
15735 |
eval $inlibc |
15736 |
|
15737 |
: see if setpgrp2 exists |
15738 |
set setpgrp2 d_setpgrp2 |
15739 |
eval $inlibc |
15740 |
|
15741 |
: see if setpriority exists |
15742 |
set setpriority d_setprior |
15743 |
eval $inlibc |
15744 |
|
15745 |
: see if setproctitle exists |
15746 |
set setproctitle d_setproctitle |
15747 |
eval $inlibc |
15748 |
|
15749 |
: see if setprotoent_r exists |
15750 |
set setprotoent_r d_setprotoent_r |
15751 |
eval $inlibc |
15752 |
case "$d_setprotoent_r" in |
15753 |
"$define") |
15754 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
15755 |
case "$d_setprotoent_r_proto:$usethreads" in |
15756 |
":define") d_setprotoent_r_proto=define |
15757 |
set d_setprotoent_r_proto setprotoent_r $hdrs |
15758 |
eval $hasproto ;; |
15759 |
*) ;; |
15760 |
esac |
15761 |
case "$d_setprotoent_r_proto" in |
15762 |
define) |
15763 |
case "$setprotoent_r_proto" in |
15764 |
''|0) try='int setprotoent_r(int, struct protoent_data*);' |
15765 |
./protochk "extern $try" $hdrs && setprotoent_r_proto=I_ID ;; |
15766 |
esac |
15767 |
case "$setprotoent_r_proto" in |
15768 |
''|0) try='void setprotoent_r(int, struct protoent_data*);' |
15769 |
./protochk "extern $try" $hdrs && setprotoent_r_proto=V_ID ;; |
15770 |
esac |
15771 |
case "$setprotoent_r_proto" in |
15772 |
''|0) d_setprotoent_r=undef |
15773 |
setprotoent_r_proto=0 |
15774 |
echo "Disabling setprotoent_r, cannot determine prototype." >&4 ;; |
15775 |
* ) case "$setprotoent_r_proto" in |
15776 |
REENTRANT_PROTO*) ;; |
15777 |
*) setprotoent_r_proto="REENTRANT_PROTO_$setprotoent_r_proto" ;; |
15778 |
esac |
15779 |
echo "Prototype: $try" ;; |
15780 |
esac |
15781 |
;; |
15782 |
*) case "$usethreads" in |
15783 |
define) echo "setprotoent_r has no prototype, not using it." >&4 ;; |
15784 |
esac |
15785 |
d_setprotoent_r=undef |
15786 |
setprotoent_r_proto=0 |
15787 |
;; |
15788 |
esac |
15789 |
;; |
15790 |
*) setprotoent_r_proto=0 |
15791 |
;; |
15792 |
esac |
15793 |
|
15794 |
: see if setpwent exists |
15795 |
set setpwent d_setpwent |
15796 |
eval $inlibc |
15797 |
|
15798 |
: see if setpwent_r exists |
15799 |
set setpwent_r d_setpwent_r |
15800 |
eval $inlibc |
15801 |
case "$d_setpwent_r" in |
15802 |
"$define") |
15803 |
hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h" |
15804 |
case "$d_setpwent_r_proto:$usethreads" in |
15805 |
":define") d_setpwent_r_proto=define |
15806 |
set d_setpwent_r_proto setpwent_r $hdrs |
15807 |
eval $hasproto ;; |
15808 |
*) ;; |
15809 |
esac |
15810 |
case "$d_setpwent_r_proto" in |
15811 |
define) |
15812 |
case "$setpwent_r_proto" in |
15813 |
''|0) try='int setpwent_r(FILE**);' |
15814 |
./protochk "extern $try" $hdrs && setpwent_r_proto=I_H ;; |
15815 |
esac |
15816 |
case "$setpwent_r_proto" in |
15817 |
''|0) try='void setpwent_r(FILE**);' |
15818 |
./protochk "extern $try" $hdrs && setpwent_r_proto=V_H ;; |
15819 |
esac |
15820 |
case "$setpwent_r_proto" in |
15821 |
''|0) d_setpwent_r=undef |
15822 |
setpwent_r_proto=0 |
15823 |
echo "Disabling setpwent_r, cannot determine prototype." >&4 ;; |
15824 |
* ) case "$setpwent_r_proto" in |
15825 |
REENTRANT_PROTO*) ;; |
15826 |
*) setpwent_r_proto="REENTRANT_PROTO_$setpwent_r_proto" ;; |
15827 |
esac |
15828 |
echo "Prototype: $try" ;; |
15829 |
esac |
15830 |
;; |
15831 |
*) case "$usethreads" in |
15832 |
define) echo "setpwent_r has no prototype, not using it." >&4 ;; |
15833 |
esac |
15834 |
d_setpwent_r=undef |
15835 |
setpwent_r_proto=0 |
15836 |
;; |
15837 |
esac |
15838 |
;; |
15839 |
*) setpwent_r_proto=0 |
15840 |
;; |
15841 |
esac |
15842 |
|
15843 |
: see if setregid exists |
15844 |
set setregid d_setregid |
15845 |
eval $inlibc |
15846 |
set setresgid d_setresgid |
15847 |
eval $inlibc |
15848 |
|
15849 |
: see if setreuid exists |
15850 |
set setreuid d_setreuid |
15851 |
eval $inlibc |
15852 |
set setresuid d_setresuid |
15853 |
eval $inlibc |
15854 |
|
15855 |
: see if setrgid exists |
15856 |
set setrgid d_setrgid |
15857 |
eval $inlibc |
15858 |
|
15859 |
: see if setruid exists |
15860 |
set setruid d_setruid |
15861 |
eval $inlibc |
15862 |
|
15863 |
: see if setservent exists |
15864 |
set setservent d_setsent |
15865 |
eval $inlibc |
15866 |
|
15867 |
: see if setservent_r exists |
15868 |
set setservent_r d_setservent_r |
15869 |
eval $inlibc |
15870 |
case "$d_setservent_r" in |
15871 |
"$define") |
15872 |
hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" |
15873 |
case "$d_setservent_r_proto:$usethreads" in |
15874 |
":define") d_setservent_r_proto=define |
15875 |
set d_setservent_r_proto setservent_r $hdrs |
15876 |
eval $hasproto ;; |
15877 |
*) ;; |
15878 |
esac |
15879 |
case "$d_setservent_r_proto" in |
15880 |
define) |
15881 |
case "$setservent_r_proto" in |
15882 |
''|0) try='int setservent_r(int, struct servent_data*);' |
15883 |
./protochk "extern $try" $hdrs && setservent_r_proto=I_ID ;; |
15884 |
esac |
15885 |
case "$setservent_r_proto" in |
15886 |
''|0) try='void setservent_r(int, struct servent_data*);' |
15887 |
./protochk "extern $try" $hdrs && setservent_r_proto=V_ID ;; |
15888 |
esac |
15889 |
case "$setservent_r_proto" in |
15890 |
''|0) d_setservent_r=undef |
15891 |
setservent_r_proto=0 |
15892 |
echo "Disabling setservent_r, cannot determine prototype." >&4 ;; |
15893 |
* ) case "$setservent_r_proto" in |
15894 |
REENTRANT_PROTO*) ;; |
15895 |
*) setservent_r_proto="REENTRANT_PROTO_$setservent_r_proto" ;; |
15896 |
esac |
15897 |
echo "Prototype: $try" ;; |
15898 |
esac |
15899 |
;; |
15900 |
*) case "$usethreads" in |
15901 |
define) echo "setservent_r has no prototype, not using it." >&4 ;; |
15902 |
esac |
15903 |
d_setservent_r=undef |
15904 |
setservent_r_proto=0 |
15905 |
;; |
15906 |
esac |
15907 |
;; |
15908 |
*) setservent_r_proto=0 |
15909 |
;; |
15910 |
esac |
15911 |
|
15912 |
: see if setsid exists |
15913 |
set setsid d_setsid |
15914 |
eval $inlibc |
15915 |
|
15916 |
: see if setvbuf exists |
15917 |
set setvbuf d_setvbuf |
15918 |
eval $inlibc |
15919 |
|
15920 |
: see if sfio.h is available |
15921 |
set sfio.h i_sfio |
15922 |
eval $inhdr |
15923 |
|
15924 |
|
15925 |
: see if sfio library is available |
15926 |
case "$i_sfio" in |
15927 |
$define) |
15928 |
val='' |
15929 |
set sfreserve val |
15930 |
eval $inlibc |
15931 |
;; |
15932 |
*) |
15933 |
val="$undef" |
15934 |
;; |
15935 |
esac |
15936 |
: Ok, but do we want to use it. |
15937 |
case "$val" in |
15938 |
$define) |
15939 |
case "$usesfio" in |
15940 |
true|$define|[yY]*) dflt='y';; |
15941 |
*) dflt='n';; |
15942 |
esac |
15943 |
echo "$package can use the sfio library, but it is experimental." |
15944 |
case "$useperlio" in |
15945 |
"$undef") |
15946 |
echo "For sfio also the PerlIO abstraction layer is needed." |
15947 |
echo "Earlier you said you wouldn't want that." |
15948 |
;; |
15949 |
esac |
15950 |
rp="You seem to have sfio available, do you want to try using it?" |
15951 |
. ./myread |
15952 |
case "$ans" in |
15953 |
y|Y) echo "Ok, turning on both sfio and PerlIO, then." |
15954 |
useperlio="$define" |
15955 |
val="$define" |
15956 |
;; |
15957 |
*) echo "Ok, avoiding sfio this time. I'll use stdio instead." |
15958 |
val="$undef" |
15959 |
;; |
15960 |
esac |
15961 |
;; |
15962 |
*) case "$usesfio" in |
15963 |
true|$define|[yY]*) |
15964 |
echo "Sorry, cannot find sfio on this machine." >&4 |
15965 |
echo "Ignoring your setting of usesfio=$usesfio." >&4 |
15966 |
val="$undef" |
15967 |
;; |
15968 |
esac |
15969 |
;; |
15970 |
esac |
15971 |
set d_sfio |
15972 |
eval $setvar |
15973 |
case "$d_sfio" in |
15974 |
$define) usesfio='true';; |
15975 |
*) usesfio='false';; |
15976 |
esac |
15977 |
case "$d_sfio" in |
15978 |
$define) ;; |
15979 |
*) : Remove sfio from list of libraries to use |
15980 |
case "$libs" in |
15981 |
*-lsfio*) |
15982 |
echo "Removing unneeded -lsfio from library list" >&4 |
15983 |
set `echo X $libs | $sed -e 's/-lsfio / /' -e 's/-lsfio$//'` |
15984 |
shift |
15985 |
libs="$*" |
15986 |
echo "libs = $libs" >&4 |
15987 |
;; |
15988 |
esac |
15989 |
;; |
15990 |
esac |
15991 |
|
15992 |
|
15993 |
: see if shmctl exists |
15994 |
set shmctl d_shmctl |
15995 |
eval $inlibc |
15996 |
|
15997 |
: see if shmget exists |
15998 |
set shmget d_shmget |
15999 |
eval $inlibc |
16000 |
|
16001 |
: see if shmat exists |
16002 |
set shmat d_shmat |
16003 |
eval $inlibc |
16004 |
: see what shmat returns |
16005 |
case "$d_shmat" in |
16006 |
"$define") |
16007 |
$cat >shmat.c <<'END' |
16008 |
#include <sys/shm.h> |
16009 |
void *shmat(); |
16010 |
END |
16011 |
if $cc $ccflags -c shmat.c >/dev/null 2>&1; then |
16012 |
shmattype='void *' |
16013 |
else |
16014 |
shmattype='char *' |
16015 |
fi |
16016 |
echo "and it returns ($shmattype)." >&4 |
16017 |
: see if a prototype for shmat is available |
16018 |
xxx=`./findhdr sys/shm.h` |
16019 |
$cppstdin $cppflags $cppminus < $xxx > shmat.c 2>/dev/null |
16020 |
if $contains 'shmat.*(' shmat.c >/dev/null 2>&1; then |
16021 |
val="$define" |
16022 |
else |
16023 |
val="$undef" |
16024 |
fi |
16025 |
$rm -f shmat.[co] |
16026 |
;; |
16027 |
*) |
16028 |
val="$undef" |
16029 |
;; |
16030 |
esac |
16031 |
set d_shmatprototype |
16032 |
eval $setvar |
16033 |
|
16034 |
: see if shmdt exists |
16035 |
set shmdt d_shmdt |
16036 |
eval $inlibc |
16037 |
|
16038 |
: see how much of the 'shm*(2)' library is present. |
16039 |
h_shm=true |
16040 |
echo " " |
16041 |
case "$d_shmctl$d_shmget$d_shmat$d_shmdt" in |
16042 |
*"$undef"*) h_shm=false;; |
16043 |
esac |
16044 |
case "$osname" in |
16045 |
freebsd) |
16046 |
case "`ipcs 2>&1`" in |
16047 |
"SVID shared memory"*"not configured"*) |
16048 |
echo "Your $osname does not have the shm*(2) configured." >&4 |
16049 |
h_shm=false |
16050 |
val="$undef" |
16051 |
set shmctl d_shmctl |
16052 |
evat $setvar |
16053 |
set shmget d_shmget |
16054 |
evat $setvar |
16055 |
set shmat d_shmat |
16056 |
evat $setvar |
16057 |
set shmdt d_shmdt |
16058 |
evat $setvar |
16059 |
;; |
16060 |
esac |
16061 |
;; |
16062 |
esac |
16063 |
: we could also check for sys/ipc.h ... |
16064 |
if $h_shm && $test `./findhdr sys/shm.h`; then |
16065 |
echo "You have the full shm*(2) library." >&4 |
16066 |
val="$define" |
16067 |
else |
16068 |
echo "You don't have the full shm*(2) library." >&4 |
16069 |
val="$undef" |
16070 |
fi |
16071 |
set d_shm |
16072 |
eval $setvar |
16073 |
|
16074 |
echo " " |
16075 |
: see if we have sigaction |
16076 |
if set sigaction val -f d_sigaction; eval $csym; $val; then |
16077 |
echo 'sigaction() found.' >&4 |
16078 |
$cat > try.c <<EOP |
16079 |
#include <stdio.h> |
16080 |
#include <sys/types.h> |
16081 |
#include <signal.h> |
16082 |
#$i_stdlib I_STDLIB |
16083 |
#ifdef I_STDLIB |
16084 |
#include <stdlib.h> |
16085 |
#endif |
16086 |
int main() |
16087 |
{ |
16088 |
struct sigaction act, oact; |
16089 |
act.sa_flags = 0; |
16090 |
oact.sa_handler = 0; |
16091 |
/* so that act and oact are used */ |
16092 |
exit(act.sa_flags == 0 && oact.sa_handler == 0); |
16093 |
} |
16094 |
EOP |
16095 |
set try |
16096 |
if eval $compile_ok; then |
16097 |
val="$define" |
16098 |
else |
16099 |
echo "But you don't seem to have a useable struct sigaction." >&4 |
16100 |
val="$undef" |
16101 |
fi |
16102 |
else |
16103 |
echo 'sigaction NOT found.' >&4 |
16104 |
val="$undef" |
16105 |
fi |
16106 |
set d_sigaction; eval $setvar |
16107 |
$rm -f try try$_o try.c |
16108 |
|
16109 |
: see if sigprocmask exists |
16110 |
set sigprocmask d_sigprocmask |
16111 |
eval $inlibc |
16112 |
|
16113 |
: see if sigsetjmp exists |
16114 |
echo " " |
16115 |
case "$d_sigsetjmp" in |
16116 |
'') |
16117 |
$cat >try.c <<EOP |
16118 |
#include <setjmp.h> |
16119 |
#$i_stdlib I_STDLIB |
16120 |
#ifdef I_STDLIB |
16121 |
#include <stdlib.h> |
16122 |
#endif |
16123 |
sigjmp_buf env; |
16124 |
int set = 1; |
16125 |
int main() |
16126 |
{ |
16127 |
if (sigsetjmp(env,1)) |
16128 |
exit(set); |
16129 |
set = 0; |
16130 |
siglongjmp(env, 1); |
16131 |
exit(1); |
16132 |
} |
16133 |
EOP |
16134 |
set try |
16135 |
if eval $compile; then |
16136 |
if $run ./try >/dev/null 2>&1; then |
16137 |
echo "POSIX sigsetjmp found." >&4 |
16138 |
val="$define" |
16139 |
else |
16140 |
$cat >&4 <<EOM |
16141 |
Uh-Oh! You have POSIX sigsetjmp and siglongjmp, but they do not work properly!! |
16142 |
I'll ignore them. |
16143 |
EOM |
16144 |
val="$undef" |
16145 |
fi |
16146 |
else |
16147 |
echo "sigsetjmp not found." >&4 |
16148 |
val="$undef" |
16149 |
fi |
16150 |
;; |
16151 |
*) val="$d_sigsetjmp" |
16152 |
case "$d_sigsetjmp" in |
16153 |
$define) echo "POSIX sigsetjmp found." >&4;; |
16154 |
$undef) echo "sigsetjmp not found." >&4;; |
16155 |
esac |
16156 |
;; |
16157 |
esac |
16158 |
set d_sigsetjmp |
16159 |
eval $setvar |
16160 |
$rm -f try.c try |
16161 |
|
16162 |
: see if sockatmark exists |
16163 |
set sockatmark d_sockatmark |
16164 |
eval $inlibc |
16165 |
|
16166 |
: see if prototype for sockatmark is available |
16167 |
echo " " |
16168 |
set d_sockatmarkproto sockatmark $d_socket sys/socket.h |
16169 |
eval $hasproto |
16170 |
|
16171 |
: see if socks5_init exists |
16172 |
set socks5_init d_socks5_init |
16173 |
eval $inlibc |
16174 |
|
16175 |
: see if srand48_r exists |
16176 |
set srand48_r d_srand48_r |
16177 |
eval $inlibc |
16178 |
case "$d_srand48_r" in |
16179 |
"$define") |
16180 |
hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h" |
16181 |
case "$d_srand48_r_proto:$usethreads" in |
16182 |
":define") d_srand48_r_proto=define |
16183 |
set d_srand48_r_proto srand48_r $hdrs |
16184 |
eval $hasproto ;; |
16185 |
*) ;; |
16186 |
esac |
16187 |
case "$d_srand48_r_proto" in |
16188 |
define) |
16189 |
case "$srand48_r_proto" in |
16190 |
''|0) try='int srand48_r(long, struct drand48_data*);' |
16191 |
./protochk "extern $try" $hdrs && srand48_r_proto=I_LS ;; |
16192 |
esac |
16193 |
case "$srand48_r_proto" in |
16194 |
''|0) d_srand48_r=undef |
16195 |
srand48_r_proto=0 |
16196 |
echo "Disabling srand48_r, cannot determine prototype." >&4 ;; |
16197 |
* ) case "$srand48_r_proto" in |
16198 |
REENTRANT_PROTO*) ;; |
16199 |
*) srand48_r_proto="REENTRANT_PROTO_$srand48_r_proto" ;; |
16200 |
esac |
16201 |
echo "Prototype: $try" ;; |
16202 |
esac |
16203 |
;; |
16204 |
*) case "$usethreads" in |
16205 |
define) echo "srand48_r has no prototype, not using it." >&4 ;; |
16206 |
esac |
16207 |
d_srand48_r=undef |
16208 |
srand48_r_proto=0 |
16209 |
;; |
16210 |
esac |
16211 |
;; |
16212 |
*) srand48_r_proto=0 |
16213 |
;; |
16214 |
esac |
16215 |
|
16216 |
: see if srandom_r exists |
16217 |
set srandom_r d_srandom_r |
16218 |
eval $inlibc |
16219 |
case "$d_srandom_r" in |
16220 |
"$define") |
16221 |
hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h" |
16222 |
case "$d_srandom_r_proto:$usethreads" in |
16223 |
":define") d_srandom_r_proto=define |
16224 |
set d_srandom_r_proto srandom_r $hdrs |
16225 |
eval $hasproto ;; |
16226 |
*) ;; |
16227 |
esac |
16228 |
case "$d_srandom_r_proto" in |
16229 |
define) |
16230 |
case "$srandom_r_proto" in |
16231 |
''|0) try='int srandom_r(unsigned int, struct random_data*);' |
16232 |
./protochk "extern $try" $hdrs && srandom_r_proto=I_TS ;; |
16233 |
esac |
16234 |
case "$srandom_r_proto" in |
16235 |
''|0) d_srandom_r=undef |
16236 |
srandom_r_proto=0 |
16237 |
echo "Disabling srandom_r, cannot determine prototype." >&4 ;; |
16238 |
* ) case "$srandom_r_proto" in |
16239 |
REENTRANT_PROTO*) ;; |
16240 |
*) srandom_r_proto="REENTRANT_PROTO_$srandom_r_proto" ;; |
16241 |
esac |
16242 |
echo "Prototype: $try" ;; |
16243 |
esac |
16244 |
;; |
16245 |
*) case "$usethreads" in |
16246 |
define) echo "srandom_r has no prototype, not using it." >&4 ;; |
16247 |
esac |
16248 |
d_srandom_r=undef |
16249 |
srandom_r_proto=0 |
16250 |
;; |
16251 |
esac |
16252 |
;; |
16253 |
*) srandom_r_proto=0 |
16254 |
;; |
16255 |
esac |
16256 |
|
16257 |
: see if prototype for setresgid is available |
16258 |
echo " " |
16259 |
set d_sresgproto setresgid $i_unistd unistd.h |
16260 |
eval $hasproto |
16261 |
|
16262 |
: see if prototype for setresuid is available |
16263 |
echo " " |
16264 |
set d_sresuproto setresuid $i_unistd unistd.h |
16265 |
eval $hasproto |
16266 |
|
16267 |
: see if sys/stat.h is available |
16268 |
set sys/stat.h i_sysstat |
16269 |
eval $inhdr |
16270 |
|
16271 |
|
16272 |
: see if stat knows about block sizes |
16273 |
echo " " |
16274 |
echo "Checking to see if your struct stat has st_blocks field..." >&4 |
16275 |
set d_statblks stat st_blocks $i_sysstat sys/stat.h |
16276 |
eval $hasfield |
16277 |
|
16278 |
|
16279 |
: see if this is a sys/vfs.h system |
16280 |
set sys/vfs.h i_sysvfs |
16281 |
eval $inhdr |
16282 |
|
16283 |
|
16284 |
: see if this is a sys/statfs.h system |
16285 |
set sys/statfs.h i_sysstatfs |
16286 |
eval $inhdr |
16287 |
|
16288 |
|
16289 |
echo " " |
16290 |
echo "Checking to see if your system supports struct statfs..." >&4 |
16291 |
set d_statfs_s statfs $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h $i_sysvfs sys/vfs.h $i_sysstatfs sys/statfs.h |
16292 |
eval $hasstruct |
16293 |
case "$d_statfs_s" in |
16294 |
"$define") echo "Yes, it does." ;; |
16295 |
*) echo "No, it doesn't." ;; |
16296 |
esac |
16297 |
|
16298 |
|
16299 |
|
16300 |
: see if struct statfs knows about f_flags |
16301 |
case "$d_statfs_s" in |
16302 |
define) |
16303 |
echo " " |
16304 |
echo "Checking to see if your struct statfs has f_flags field..." >&4 |
16305 |
set d_statfs_f_flags statfs f_flags $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h $i_sysvfs sys/vfs.h $i_sysstatfs sys/statfs.h |
16306 |
eval $hasfield |
16307 |
;; |
16308 |
*) val="$undef" |
16309 |
set d_statfs_f_flags |
16310 |
eval $setvar |
16311 |
;; |
16312 |
esac |
16313 |
case "$d_statfs_f_flags" in |
16314 |
"$define") echo "Yes, it does." ;; |
16315 |
*) echo "No, it doesn't." ;; |
16316 |
esac |
16317 |
|
16318 |
$cat >&4 <<EOM |
16319 |
Checking how to access stdio streams by file descriptor number... |
16320 |
EOM |
16321 |
case "$stdio_stream_array" in |
16322 |
'') $cat >try.c <<EOCP |
16323 |
#include <stdio.h> |
16324 |
int main() { |
16325 |
if (&STDIO_STREAM_ARRAY[fileno(stdin)] == stdin) |
16326 |
printf("yes\n"); |
16327 |
} |
16328 |
EOCP |
16329 |
for s in _iob __iob __sF |
16330 |
do |
16331 |
set try -DSTDIO_STREAM_ARRAY=$s |
16332 |
if eval $compile; then |
16333 |
case "`$run ./try`" in |
16334 |
yes) stdio_stream_array=$s; break ;; |
16335 |
esac |
16336 |
fi |
16337 |
done |
16338 |
$rm -f try.* try$exe_ext |
16339 |
esac |
16340 |
case "$stdio_stream_array" in |
16341 |
'') $cat >&4 <<EOM |
16342 |
I can't figure out how to access stdio streams by file descriptor number. |
16343 |
EOM |
16344 |
d_stdio_stream_array="$undef" |
16345 |
;; |
16346 |
*) $cat >&4 <<EOM |
16347 |
You can access stdio streams by file descriptor number by the $stdio_stream_array array. |
16348 |
EOM |
16349 |
d_stdio_stream_array="$define" |
16350 |
;; |
16351 |
esac |
16352 |
|
16353 |
: see if strcoll exists |
16354 |
set strcoll d_strcoll |
16355 |
eval $inlibc |
16356 |
|
16357 |
: check for structure copying |
16358 |
echo " " |
16359 |
echo "Checking to see if your C compiler can copy structs..." >&4 |
16360 |
$cat >try.c <<'EOCP' |
16361 |
int main() |
16362 |
{ |
16363 |
struct blurfl { |
16364 |
int dyick; |
16365 |
} foo, bar; |
16366 |
|
16367 |
foo = bar; |
16368 |
} |
16369 |
EOCP |
16370 |
if $cc -c try.c >/dev/null 2>&1 ; then |
16371 |
val="$define" |
16372 |
echo "Yup, it can." |
16373 |
else |
16374 |
val="$undef" |
16375 |
echo "Nope, it can't." |
16376 |
fi |
16377 |
set d_strctcpy |
16378 |
eval $setvar |
16379 |
$rm -f try.* |
16380 |
|
16381 |
: see if strerror and/or sys_errlist[] exist |
16382 |
echo " " |
16383 |
if test "X$d_strerror" = X -o "X$d_syserrlst" = X; then |
16384 |
if set strerror val -f d_strerror; eval $csym; $val; then |
16385 |
echo 'strerror() found.' >&4 |
16386 |
d_strerror="$define" |
16387 |
d_strerrm='strerror(e)' |
16388 |
if set sys_errlist val -a d_syserrlst; eval $csym; $val; then |
16389 |
echo "(You also have sys_errlist[], so we could roll our own strerror.)" |
16390 |
d_syserrlst="$define" |
16391 |
else |
16392 |
echo "(Since you don't have sys_errlist[], sterror() is welcome.)" |
16393 |
d_syserrlst="$undef" |
16394 |
fi |
16395 |
elif xxx=`./findhdr string.h`; test "$xxx" || xxx=`./findhdr strings.h`; \ |
16396 |
$contains '#[ ]*define.*strerror' "$xxx" >/dev/null 2>&1; then |
16397 |
echo 'strerror() found in string header.' >&4 |
16398 |
d_strerror="$define" |
16399 |
d_strerrm='strerror(e)' |
16400 |
if set sys_errlist val -a d_syserrlst; eval $csym; $val; then |
16401 |
echo "(Most probably, strerror() uses sys_errlist[] for descriptions.)" |
16402 |
d_syserrlst="$define" |
16403 |
else |
16404 |
echo "(You don't appear to have any sys_errlist[], how can this be?)" |
16405 |
d_syserrlst="$undef" |
16406 |
fi |
16407 |
elif set sys_errlist val -a d_syserrlst; eval $csym; $val; then |
16408 |
echo "strerror() not found, but you have sys_errlist[] so we'll use that." >&4 |
16409 |
d_strerror="$undef" |
16410 |
d_syserrlst="$define" |
16411 |
d_strerrm='((e)<0||(e)>=sys_nerr?"unknown":sys_errlist[e])' |
16412 |
else |
16413 |
echo 'strerror() and sys_errlist[] NOT found.' >&4 |
16414 |
d_strerror="$undef" |
16415 |
d_syserrlst="$undef" |
16416 |
d_strerrm='"unknown"' |
16417 |
fi |
16418 |
fi |
16419 |
|
16420 |
: see if strerror_r exists |
16421 |
set strerror_r d_strerror_r |
16422 |
eval $inlibc |
16423 |
case "$d_strerror_r" in |
16424 |
"$define") |
16425 |
hdrs="$i_systypes sys/types.h define stdio.h $i_string string.h" |
16426 |
case "$d_strerror_r_proto:$usethreads" in |
16427 |
":define") d_strerror_r_proto=define |
16428 |
set d_strerror_r_proto strerror_r $hdrs |
16429 |
eval $hasproto ;; |
16430 |
*) ;; |
16431 |
esac |
16432 |
case "$d_strerror_r_proto" in |
16433 |
define) |
16434 |
case "$strerror_r_proto" in |
16435 |
''|0) try='int strerror_r(int, char*, size_t);' |
16436 |
./protochk "extern $try" $hdrs && strerror_r_proto=I_IBW ;; |
16437 |
esac |
16438 |
case "$strerror_r_proto" in |
16439 |
''|0) try='int strerror_r(int, char*, int);' |
16440 |
./protochk "extern $try" $hdrs && strerror_r_proto=I_IBI ;; |
16441 |
esac |
16442 |
case "$strerror_r_proto" in |
16443 |
''|0) try='char* strerror_r(int, char*, size_t);' |
16444 |
./protochk "extern $try" $hdrs && strerror_r_proto=B_IBW ;; |
16445 |
esac |
16446 |
case "$strerror_r_proto" in |
16447 |
''|0) d_strerror_r=undef |
16448 |
strerror_r_proto=0 |
16449 |
echo "Disabling strerror_r, cannot determine prototype." >&4 ;; |
16450 |
* ) case "$strerror_r_proto" in |
16451 |
REENTRANT_PROTO*) ;; |
16452 |
*) strerror_r_proto="REENTRANT_PROTO_$strerror_r_proto" ;; |
16453 |
esac |
16454 |
echo "Prototype: $try" ;; |
16455 |
esac |
16456 |
;; |
16457 |
*) case "$usethreads" in |
16458 |
define) echo "strerror_r has no prototype, not using it." >&4 ;; |
16459 |
esac |
16460 |
d_strerror_r=undef |
16461 |
strerror_r_proto=0 |
16462 |
;; |
16463 |
esac |
16464 |
;; |
16465 |
*) strerror_r_proto=0 |
16466 |
;; |
16467 |
esac |
16468 |
|
16469 |
: see if strftime exists |
16470 |
set strftime d_strftime |
16471 |
eval $inlibc |
16472 |
|
16473 |
: see if strlcat exists |
16474 |
set strlcat d_strlcat |
16475 |
eval $inlibc |
16476 |
|
16477 |
: see if strlcpy exists |
16478 |
set strlcpy d_strlcpy |
16479 |
eval $inlibc |
16480 |
|
16481 |
: see if strtod exists |
16482 |
set strtod d_strtod |
16483 |
eval $inlibc |
16484 |
|
16485 |
: see if strtol exists |
16486 |
set strtol d_strtol |
16487 |
eval $inlibc |
16488 |
|
16489 |
: see if strtold exists |
16490 |
set strtold d_strtold |
16491 |
eval $inlibc |
16492 |
|
16493 |
: see if strtoll exists |
16494 |
set strtoll d_strtoll |
16495 |
eval $inlibc |
16496 |
|
16497 |
case "$d_longlong-$d_strtoll" in |
16498 |
"$define-$define") |
16499 |
$cat <<EOM |
16500 |
Checking whether your strtoll() works okay... |
16501 |
EOM |
16502 |
$cat >try.c <<'EOCP' |
16503 |
#include <errno.h> |
16504 |
#ifdef __hpux |
16505 |
#define strtoll __strtoll |
16506 |
#endif |
16507 |
#ifdef __EMX__ |
16508 |
#define strtoll _strtoll |
16509 |
#endif |
16510 |
#include <stdio.h> |
16511 |
extern long long int strtoll(char *s, char **, int); |
16512 |
static int bad = 0; |
16513 |
int check(char *s, long long ell, int een) { |
16514 |
long long gll; |
16515 |
errno = 0; |
16516 |
gll = strtoll(s, 0, 10); |
16517 |
if (!((gll == ell) && (errno == een))) |
16518 |
bad++; |
16519 |
} |
16520 |
int main() { |
16521 |
check(" 1", 1LL, 0); |
16522 |
check(" 0", 0LL, 0); |
16523 |
check("-1", -1LL, 0); |
16524 |
check("-9223372036854775808", -9223372036854775808LL, 0); |
16525 |
check("-9223372036854775808", -9223372036854775808LL, 0); |
16526 |
check(" 9223372036854775807", 9223372036854775807LL, 0); |
16527 |
check("-9223372036854775808", -9223372036854775808LL, 0); |
16528 |
check(" 9223372036854775808", 9223372036854775807LL, ERANGE); |
16529 |
check("-9223372036854775809", -9223372036854775808LL, ERANGE); |
16530 |
if (!bad) |
16531 |
printf("ok\n"); |
16532 |
} |
16533 |
EOCP |
16534 |
set try |
16535 |
if eval $compile; then |
16536 |
yyy=`$run ./try` |
16537 |
case "$yyy" in |
16538 |
ok) echo "Your strtoll() seems to be working okay." ;; |
16539 |
*) cat <<EOM >&4 |
16540 |
Your strtoll() doesn't seem to be working okay. |
16541 |
EOM |
16542 |
d_strtoll="$undef" |
16543 |
;; |
16544 |
esac |
16545 |
else |
16546 |
echo "(I can't seem to compile the test program--assuming it doesn't)" |
16547 |
d_strtoll="$undef" |
16548 |
fi |
16549 |
;; |
16550 |
esac |
16551 |
|
16552 |
: see if strtoq exists |
16553 |
set strtoq d_strtoq |
16554 |
eval $inlibc |
16555 |
|
16556 |
: see if strtoul exists |
16557 |
set strtoul d_strtoul |
16558 |
eval $inlibc |
16559 |
|
16560 |
case "$d_strtoul" in |
16561 |
"$define") |
16562 |
$cat <<EOM |
16563 |
Checking whether your strtoul() works okay... |
16564 |
EOM |
16565 |
$cat >try.c <<'EOCP' |
16566 |
#include <errno.h> |
16567 |
#include <stdio.h> |
16568 |
extern unsigned long int strtoul(char *s, char **, int); |
16569 |
static int bad = 0; |
16570 |
void check(char *s, unsigned long eul, int een) { |
16571 |
unsigned long gul; |
16572 |
errno = 0; |
16573 |
gul = strtoul(s, 0, 10); |
16574 |
if (!((gul == eul) && (errno == een))) |
16575 |
bad++; |
16576 |
} |
16577 |
int main() { |
16578 |
check(" 1", 1L, 0); |
16579 |
check(" 0", 0L, 0); |
16580 |
EOCP |
16581 |
case "$longsize" in |
16582 |
8) |
16583 |
$cat >>try.c <<'EOCP' |
16584 |
check("18446744073709551615", 18446744073709551615UL, 0); |
16585 |
check("18446744073709551616", 18446744073709551615UL, ERANGE); |
16586 |
#if 0 /* strtoul() for /^-/ strings is undefined. */ |
16587 |
check("-1", 18446744073709551615UL, 0); |
16588 |
check("-18446744073709551614", 2, 0); |
16589 |
check("-18446744073709551615", 1, 0); |
16590 |
check("-18446744073709551616", 18446744073709551615UL, ERANGE); |
16591 |
check("-18446744073709551617", 18446744073709551615UL, ERANGE); |
16592 |
#endif |
16593 |
EOCP |
16594 |
;; |
16595 |
4) |
16596 |
$cat >>try.c <<'EOCP' |
16597 |
check("4294967295", 4294967295UL, 0); |
16598 |
check("4294967296", 4294967295UL, ERANGE); |
16599 |
#if 0 /* strtoul() for /^-/ strings is undefined. */ |
16600 |
check("-1", 4294967295UL, 0); |
16601 |
check("-4294967294", 2, 0); |
16602 |
check("-4294967295", 1, 0); |
16603 |
check("-4294967296", 4294967295UL, ERANGE); |
16604 |
check("-4294967297", 4294967295UL, ERANGE); |
16605 |
#endif |
16606 |
EOCP |
16607 |
;; |
16608 |
*) |
16609 |
: Should we write these tests to be more portable by sprintf-ing |
16610 |
: ~0 and then manipulating that char string as input for strtol? |
16611 |
;; |
16612 |
esac |
16613 |
$cat >>try.c <<'EOCP' |
16614 |
if (!bad) |
16615 |
printf("ok\n"); |
16616 |
return 0; |
16617 |
} |
16618 |
EOCP |
16619 |
set try |
16620 |
if eval $compile; then |
16621 |
case "`$run ./try`" in |
16622 |
ok) echo "Your strtoul() seems to be working okay." ;; |
16623 |
*) cat <<EOM >&4 |
16624 |
Your strtoul() doesn't seem to be working okay. |
16625 |
EOM |
16626 |
d_strtoul="$undef" |
16627 |
;; |
16628 |
esac |
16629 |
fi |
16630 |
;; |
16631 |
esac |
16632 |
|
16633 |
: see if strtoull exists |
16634 |
set strtoull d_strtoull |
16635 |
eval $inlibc |
16636 |
|
16637 |
case "$d_longlong-$d_strtoull" in |
16638 |
"$define-$define") |
16639 |
$cat <<EOM |
16640 |
Checking whether your strtoull() works okay... |
16641 |
EOM |
16642 |
$cat >try.c <<'EOCP' |
16643 |
#include <errno.h> |
16644 |
#ifdef __hpux |
16645 |
#define strtoull __strtoull |
16646 |
#endif |
16647 |
#include <stdio.h> |
16648 |
extern unsigned long long int strtoull(char *s, char **, int); |
16649 |
static int bad = 0; |
16650 |
int check(char *s, long long eull, int een) { |
16651 |
long long gull; |
16652 |
errno = 0; |
16653 |
gull = strtoull(s, 0, 10); |
16654 |
if (!((gull == eull) && (errno == een))) |
16655 |
bad++; |
16656 |
} |
16657 |
int main() { |
16658 |
check(" 1", 1LL, 0); |
16659 |
check(" 0", 0LL, 0); |
16660 |
check("18446744073709551615", 18446744073709551615ULL, 0); |
16661 |
check("18446744073709551616", 18446744073709551615ULL, ERANGE); |
16662 |
#if 0 /* strtoull() for /^-/ strings is undefined. */ |
16663 |
check("-1", 18446744073709551615ULL, 0); |
16664 |
check("-18446744073709551614", 2LL, 0); |
16665 |
check("-18446744073709551615", 1LL, 0); |
16666 |
check("-18446744073709551616", 18446744073709551615ULL, ERANGE); |
16667 |
check("-18446744073709551617", 18446744073709551615ULL, ERANGE); |
16668 |
#endif |
16669 |
if (!bad) |
16670 |
printf("ok\n"); |
16671 |
} |
16672 |
EOCP |
16673 |
set try |
16674 |
if eval $compile; then |
16675 |
case "`$run ./try`" in |
16676 |
ok) echo "Your strtoull() seems to be working okay." ;; |
16677 |
*) cat <<EOM >&4 |
16678 |
Your strtoull() doesn't seem to be working okay. |
16679 |
EOM |
16680 |
d_strtoull="$undef" |
16681 |
;; |
16682 |
esac |
16683 |
fi |
16684 |
;; |
16685 |
esac |
16686 |
|
16687 |
: see if strtouq exists |
16688 |
set strtouq d_strtouq |
16689 |
eval $inlibc |
16690 |
|
16691 |
case "$d_strtouq" in |
16692 |
"$define") |
16693 |
$cat <<EOM |
16694 |
Checking whether your strtouq() works okay... |
16695 |
EOM |
16696 |
$cat >try.c <<'EOCP' |
16697 |
#include <errno.h> |
16698 |
#include <stdio.h> |
16699 |
extern unsigned long long int strtouq(char *s, char **, int); |
16700 |
static int bad = 0; |
16701 |
void check(char *s, unsigned long long eull, int een) { |
16702 |
unsigned long long gull; |
16703 |
errno = 0; |
16704 |
gull = strtouq(s, 0, 10); |
16705 |
if (!((gull == eull) && (errno == een))) |
16706 |
bad++; |
16707 |
} |
16708 |
int main() { |
16709 |
check(" 1", 1LL, 0); |
16710 |
check(" 0", 0LL, 0); |
16711 |
check("18446744073709551615", 18446744073709551615ULL, 0); |
16712 |
check("18446744073709551616", 18446744073709551615ULL, ERANGE); |
16713 |
#if 0 /* strtouq() for /^-/ strings is undefined. */ |
16714 |
check("-1", 18446744073709551615ULL, 0); |
16715 |
check("-18446744073709551614", 2LL, 0); |
16716 |
check("-18446744073709551615", 1LL, 0); |
16717 |
check("-18446744073709551616", 18446744073709551615ULL, ERANGE); |
16718 |
check("-18446744073709551617", 18446744073709551615ULL, ERANGE); |
16719 |
#endif |
16720 |
if (!bad) |
16721 |
printf("ok\n"); |
16722 |
return 0; |
16723 |
} |
16724 |
EOCP |
16725 |
set try |
16726 |
if eval $compile; then |
16727 |
case "`$run ./try`" in |
16728 |
ok) echo "Your strtouq() seems to be working okay." ;; |
16729 |
*) cat <<EOM >&4 |
16730 |
Your strtouq() doesn't seem to be working okay. |
16731 |
EOM |
16732 |
d_strtouq="$undef" |
16733 |
;; |
16734 |
esac |
16735 |
fi |
16736 |
;; |
16737 |
esac |
16738 |
|
16739 |
: see if strxfrm exists |
16740 |
set strxfrm d_strxfrm |
16741 |
eval $inlibc |
16742 |
|
16743 |
: see if symlink exists |
16744 |
set symlink d_symlink |
16745 |
eval $inlibc |
16746 |
|
16747 |
: see if syscall exists |
16748 |
set syscall d_syscall |
16749 |
eval $inlibc |
16750 |
|
16751 |
: see if prototype for syscall is available |
16752 |
echo " " |
16753 |
set d_syscallproto syscall $i_unistd unistd.h |
16754 |
eval $hasproto |
16755 |
|
16756 |
: see if sysconf exists |
16757 |
set sysconf d_sysconf |
16758 |
eval $inlibc |
16759 |
|
16760 |
: see if system exists |
16761 |
set system d_system |
16762 |
eval $inlibc |
16763 |
|
16764 |
: see if tcgetpgrp exists |
16765 |
set tcgetpgrp d_tcgetpgrp |
16766 |
eval $inlibc |
16767 |
|
16768 |
: see if tcsetpgrp exists |
16769 |
set tcsetpgrp d_tcsetpgrp |
16770 |
eval $inlibc |
16771 |
|
16772 |
: see if prototype for telldir is available |
16773 |
echo " " |
16774 |
set d_telldirproto telldir $i_systypes sys/types.h $i_dirent dirent.h |
16775 |
eval $hasproto |
16776 |
|
16777 |
: see if time exists |
16778 |
echo " " |
16779 |
if test "X$d_time" = X -o X"$timetype" = X; then |
16780 |
if set time val -f d_time; eval $csym; $val; then |
16781 |
echo 'time() found.' >&4 |
16782 |
val="$define" |
16783 |
rp="What is the type returned by time() on this system?" |
16784 |
set time_t timetype long stdio.h sys/types.h |
16785 |
eval $typedef_ask |
16786 |
else |
16787 |
echo 'time() not found, hope that will do.' >&4 |
16788 |
val="$undef" |
16789 |
timetype='int'; |
16790 |
fi |
16791 |
set d_time |
16792 |
eval $setvar |
16793 |
fi |
16794 |
|
16795 |
: see if this is a sys/times.h system |
16796 |
set sys/times.h i_systimes |
16797 |
eval $inhdr |
16798 |
|
16799 |
: see if times exists |
16800 |
echo " " |
16801 |
if set times val -f d_times; eval $csym; $val; then |
16802 |
echo 'times() found.' >&4 |
16803 |
d_times="$define" |
16804 |
inc='' |
16805 |
case "$i_systimes" in |
16806 |
"$define") inc='sys/times.h';; |
16807 |
esac |
16808 |
rp="What is the type returned by times() on this system?" |
16809 |
set clock_t clocktype long stdio.h sys/types.h $inc |
16810 |
eval $typedef_ask |
16811 |
else |
16812 |
echo 'times() NOT found, hope that will do.' >&4 |
16813 |
d_times="$undef" |
16814 |
clocktype='int' |
16815 |
fi |
16816 |
|
16817 |
: see if tmpnam_r exists |
16818 |
set tmpnam_r d_tmpnam_r |
16819 |
eval $inlibc |
16820 |
case "$d_tmpnam_r" in |
16821 |
"$define") |
16822 |
hdrs="$i_systypes sys/types.h define stdio.h " |
16823 |
case "$d_tmpnam_r_proto:$usethreads" in |
16824 |
":define") d_tmpnam_r_proto=define |
16825 |
set d_tmpnam_r_proto tmpnam_r $hdrs |
16826 |
eval $hasproto ;; |
16827 |
*) ;; |
16828 |
esac |
16829 |
case "$d_tmpnam_r_proto" in |
16830 |
define) |
16831 |
case "$tmpnam_r_proto" in |
16832 |
''|0) try='char* tmpnam_r(char*);' |
16833 |
./protochk "extern $try" $hdrs && tmpnam_r_proto=B_B ;; |
16834 |
esac |
16835 |
case "$tmpnam_r_proto" in |
16836 |
''|0) d_tmpnam_r=undef |
16837 |
tmpnam_r_proto=0 |
16838 |
echo "Disabling tmpnam_r, cannot determine prototype." >&4 ;; |
16839 |
* ) case "$tmpnam_r_proto" in |
16840 |
REENTRANT_PROTO*) ;; |
16841 |
*) tmpnam_r_proto="REENTRANT_PROTO_$tmpnam_r_proto" ;; |
16842 |
esac |
16843 |
echo "Prototype: $try" ;; |
16844 |
esac |
16845 |
;; |
16846 |
*) case "$usethreads" in |
16847 |
define) echo "tmpnam_r has no prototype, not using it." >&4 ;; |
16848 |
esac |
16849 |
d_tmpnam_r=undef |
16850 |
tmpnam_r_proto=0 |
16851 |
;; |
16852 |
esac |
16853 |
;; |
16854 |
*) tmpnam_r_proto=0 |
16855 |
;; |
16856 |
esac |
16857 |
|
16858 |
: see if truncate exists |
16859 |
set truncate d_truncate |
16860 |
eval $inlibc |
16861 |
|
16862 |
: see if ttyname_r exists |
16863 |
set ttyname_r d_ttyname_r |
16864 |
eval $inlibc |
16865 |
case "$d_ttyname_r" in |
16866 |
"$define") |
16867 |
hdrs="$i_systypes sys/types.h define stdio.h $i_unistd unistd.h" |
16868 |
case "$d_ttyname_r_proto:$usethreads" in |
16869 |
":define") d_ttyname_r_proto=define |
16870 |
set d_ttyname_r_proto ttyname_r $hdrs |
16871 |
eval $hasproto ;; |
16872 |
*) ;; |
16873 |
esac |
16874 |
case "$d_ttyname_r_proto" in |
16875 |
define) |
16876 |
case "$ttyname_r_proto" in |
16877 |
''|0) try='int ttyname_r(int, char*, size_t);' |
16878 |
./protochk "extern $try" $hdrs && ttyname_r_proto=I_IBW ;; |
16879 |
esac |
16880 |
case "$ttyname_r_proto" in |
16881 |
''|0) try='int ttyname_r(int, char*, int);' |
16882 |
./protochk "extern $try" $hdrs && ttyname_r_proto=I_IBI ;; |
16883 |
esac |
16884 |
case "$ttyname_r_proto" in |
16885 |
''|0) try='char* ttyname_r(int, char*, int);' |
16886 |
./protochk "extern $try" $hdrs && ttyname_r_proto=B_IBI ;; |
16887 |
esac |
16888 |
case "$ttyname_r_proto" in |
16889 |
''|0) d_ttyname_r=undef |
16890 |
ttyname_r_proto=0 |
16891 |
echo "Disabling ttyname_r, cannot determine prototype." >&4 ;; |
16892 |
* ) case "$ttyname_r_proto" in |
16893 |
REENTRANT_PROTO*) ;; |
16894 |
*) ttyname_r_proto="REENTRANT_PROTO_$ttyname_r_proto" ;; |
16895 |
esac |
16896 |
echo "Prototype: $try" ;; |
16897 |
esac |
16898 |
;; |
16899 |
*) case "$usethreads" in |
16900 |
define) echo "ttyname_r has no prototype, not using it." >&4 ;; |
16901 |
esac |
16902 |
d_ttyname_r=undef |
16903 |
ttyname_r_proto=0 |
16904 |
;; |
16905 |
esac |
16906 |
;; |
16907 |
*) ttyname_r_proto=0 |
16908 |
;; |
16909 |
esac |
16910 |
|
16911 |
: see if tzname[] exists |
16912 |
echo " " |
16913 |
if set tzname val -a d_tzname; eval $csym; $val; then |
16914 |
val="$define" |
16915 |
echo 'tzname[] found.' >&4 |
16916 |
else |
16917 |
val="$undef" |
16918 |
echo 'tzname[] NOT found.' >&4 |
16919 |
fi |
16920 |
set d_tzname |
16921 |
eval $setvar |
16922 |
|
16923 |
case "$osname" in |
16924 |
next|rhapsody|darwin) multiarch="$define" ;; |
16925 |
esac |
16926 |
case "$multiarch" in |
16927 |
''|[nN]*) multiarch="$undef" ;; |
16928 |
esac |
16929 |
|
16930 |
: check for ordering of bytes in a UV |
16931 |
echo " " |
16932 |
case "$usecrosscompile$multiarch" in |
16933 |
*$define*) |
16934 |
$cat <<EOM |
16935 |
You seem to be either cross-compiling or doing a multiarchitecture build, |
16936 |
skipping the byteorder check. |
16937 |
|
16938 |
EOM |
16939 |
byteorder='ffff' |
16940 |
;; |
16941 |
*) |
16942 |
case "$byteorder" in |
16943 |
'') |
16944 |
$cat <<'EOM' |
16945 |
In the following, larger digits indicate more significance. A big-endian |
16946 |
machine like a Pyramid or a Motorola 680?0 chip will come out to 4321. A |
16947 |
little-endian machine like a Vax or an Intel 80?86 chip would be 1234. Other |
16948 |
machines may have weird orders like 3412. A Cray will report 87654321, |
16949 |
an Alpha will report 12345678. If the test program works the default is |
16950 |
probably right. |
16951 |
I'm now running the test program... |
16952 |
EOM |
16953 |
$cat >try.c <<EOCP |
16954 |
#include <stdio.h> |
16955 |
#$i_stdlib I_STDLIB |
16956 |
#ifdef I_STDLIB |
16957 |
#include <stdlib.h> |
16958 |
#endif |
16959 |
#include <sys/types.h> |
16960 |
typedef $uvtype UV; |
16961 |
int main() |
16962 |
{ |
16963 |
int i; |
16964 |
union { |
16965 |
UV l; |
16966 |
char c[$uvsize]; |
16967 |
} u; |
16968 |
|
16969 |
if ($uvsize > 4) |
16970 |
u.l = (((UV)0x08070605) << 32) | (UV)0x04030201; |
16971 |
else |
16972 |
u.l = (UV)0x04030201; |
16973 |
for (i = 0; i < $uvsize; i++) |
16974 |
printf("%c", u.c[i]+'0'); |
16975 |
printf("\n"); |
16976 |
exit(0); |
16977 |
} |
16978 |
EOCP |
16979 |
xxx_prompt=y |
16980 |
set try |
16981 |
if eval $compile && ./try > /dev/null; then |
16982 |
dflt=`$run ./try` |
16983 |
case "$dflt" in |
16984 |
[1-4][1-4][1-4][1-4]|12345678|87654321) |
16985 |
echo "(The test program ran ok.)" |
16986 |
echo "byteorder=$dflt" |
16987 |
xxx_prompt=n |
16988 |
;; |
16989 |
????|????????) echo "(The test program ran ok.)" ;; |
16990 |
*) echo "(The test program didn't run right for some reason.)" ;; |
16991 |
esac |
16992 |
else |
16993 |
dflt='4321' |
16994 |
cat <<'EOM' |
16995 |
(I can't seem to compile the test program. Guessing big-endian...) |
16996 |
EOM |
16997 |
fi |
16998 |
case "$xxx_prompt" in |
16999 |
y) |
17000 |
rp="What is the order of bytes in $uvtype?" |
17001 |
. ./myread |
17002 |
byteorder="$ans" |
17003 |
;; |
17004 |
*) byteorder=$dflt |
17005 |
;; |
17006 |
esac |
17007 |
;; |
17008 |
esac |
17009 |
$rm -f try.c try |
17010 |
;; |
17011 |
esac |
17012 |
|
17013 |
|
17014 |
$cat <<EOM |
17015 |
|
17016 |
Checking to see whether you can access character data unalignedly... |
17017 |
EOM |
17018 |
case "$d_u32align" in |
17019 |
'') $cat >try.c <<EOCP |
17020 |
#include <stdio.h> |
17021 |
#$i_stdlib I_STDLIB |
17022 |
#ifdef I_STDLIB |
17023 |
#include <stdlib.h> |
17024 |
#endif |
17025 |
#define U32 $u32type |
17026 |
#define BYTEORDER 0x$byteorder |
17027 |
#define U8 $u8type |
17028 |
#include <signal.h> |
17029 |
#ifdef SIGBUS |
17030 |
$signal_t bletch(s) int s; { exit(4); } |
17031 |
#endif |
17032 |
int main() { |
17033 |
#if BYTEORDER == 0x1234 || BYTEORDER == 0x4321 |
17034 |
U8 buf[8]; |
17035 |
U32 *up; |
17036 |
int i; |
17037 |
|
17038 |
if (sizeof(U32) != 4) { |
17039 |
printf("sizeof(U32) is not 4, but %d\n", sizeof(U32)); |
17040 |
exit(1); |
17041 |
} |
17042 |
|
17043 |
fflush(stdout); |
17044 |
|
17045 |
#ifdef SIGBUS |
17046 |
signal(SIGBUS, bletch); |
17047 |
#endif |
17048 |
|
17049 |
buf[0] = 0; |
17050 |
buf[1] = 0; |
17051 |
buf[2] = 0; |
17052 |
buf[3] = 1; |
17053 |
buf[4] = 0; |
17054 |
buf[5] = 0; |
17055 |
buf[6] = 0; |
17056 |
buf[7] = 1; |
17057 |
|
17058 |
for (i = 0; i < 4; i++) { |
17059 |
up = (U32*)(buf + i); |
17060 |
if (! ((*up == 1 << (8*i)) || /* big-endian */ |
17061 |
(*up == 1 << (8*(3-i))) /* little-endian */ |
17062 |
) |
17063 |
) |
17064 |
{ |
17065 |
printf("read failed (%x)\n", *up); |
17066 |
exit(2); |
17067 |
} |
17068 |
} |
17069 |
|
17070 |
/* write test */ |
17071 |
for (i = 0; i < 4; i++) { |
17072 |
up = (U32*)(buf + i); |
17073 |
*up = 0xBeef; |
17074 |
if (*up != 0xBeef) { |
17075 |
printf("write failed (%x)\n", *up); |
17076 |
exit(3); |
17077 |
} |
17078 |
} |
17079 |
|
17080 |
exit(0); |
17081 |
#else |
17082 |
printf("1\n"); |
17083 |
exit(1); |
17084 |
#endif |
17085 |
return 0; |
17086 |
} |
17087 |
EOCP |
17088 |
set try |
17089 |
if eval $compile_ok; then |
17090 |
echo "(Testing for character data alignment may crash the test. That's okay.)" >&4 |
17091 |
$run ./try 2>&1 >/dev/null |
17092 |
case "$?" in |
17093 |
0) cat >&4 <<EOM |
17094 |
You can access character data pretty unalignedly. |
17095 |
EOM |
17096 |
d_u32align="$undef" |
17097 |
;; |
17098 |
*) cat >&4 <<EOM |
17099 |
It seems that you must access character data in an aligned manner. |
17100 |
EOM |
17101 |
d_u32align="$define" |
17102 |
;; |
17103 |
esac |
17104 |
else |
17105 |
rp='Can you access character data at unaligned addresses?' |
17106 |
dflt='n' |
17107 |
. ./myread |
17108 |
case "$ans" in |
17109 |
[yY]*) d_u32align="$undef" ;; |
17110 |
*) d_u32align="$define" ;; |
17111 |
esac |
17112 |
fi |
17113 |
$rm -f core core.try.* try.core |
17114 |
;; |
17115 |
esac |
17116 |
|
17117 |
: see if ualarm exists |
17118 |
set ualarm d_ualarm |
17119 |
eval $inlibc |
17120 |
|
17121 |
: see if umask exists |
17122 |
set umask d_umask |
17123 |
eval $inlibc |
17124 |
|
17125 |
: see if unordered exists |
17126 |
set unordered d_unordered |
17127 |
eval $inlibc |
17128 |
|
17129 |
: see if usleep exists |
17130 |
set usleep d_usleep |
17131 |
eval $inlibc |
17132 |
|
17133 |
: see if prototype for usleep is available |
17134 |
echo " " |
17135 |
set d_usleepproto usleep $i_unistd unistd.h |
17136 |
eval $hasproto |
17137 |
|
17138 |
: see if ustat exists |
17139 |
set ustat d_ustat |
17140 |
eval $inlibc |
17141 |
|
17142 |
: backward compatibility for d_hvfork |
17143 |
if test X$d_hvfork != X; then |
17144 |
d_vfork="$d_hvfork" |
17145 |
d_hvfork='' |
17146 |
fi |
17147 |
: see if there is a vfork |
17148 |
val='' |
17149 |
set vfork val |
17150 |
eval $inlibc |
17151 |
|
17152 |
: Ok, but do we want to use it. vfork is reportedly unreliable in |
17153 |
: perl on Solaris 2.x, and probably elsewhere. |
17154 |
case "$val" in |
17155 |
$define) |
17156 |
echo " " |
17157 |
case "$usevfork" in |
17158 |
false) dflt='n';; |
17159 |
*) dflt='y';; |
17160 |
esac |
17161 |
cat <<'EOM' |
17162 |
|
17163 |
Perl can only use a vfork() that doesn't suffer from strict |
17164 |
restrictions on calling functions or modifying global data in |
17165 |
the child. For example, glibc-2.1 contains such a vfork() |
17166 |
that is unsuitable. If your system provides a proper fork() |
17167 |
call, chances are that you do NOT want perl to use vfork(). |
17168 |
|
17169 |
EOM |
17170 |
rp="Do you still want to use vfork()?" |
17171 |
. ./myread |
17172 |
case "$ans" in |
17173 |
y|Y) ;; |
17174 |
*) |
17175 |
echo "Ok, we won't use vfork()." |
17176 |
val="$undef" |
17177 |
;; |
17178 |
esac |
17179 |
;; |
17180 |
esac |
17181 |
set d_vfork |
17182 |
eval $setvar |
17183 |
case "$d_vfork" in |
17184 |
$define) usevfork='true';; |
17185 |
*) usevfork='false';; |
17186 |
esac |
17187 |
|
17188 |
: see if closedir exists |
17189 |
set closedir d_closedir |
17190 |
eval $inlibc |
17191 |
|
17192 |
case "$d_closedir" in |
17193 |
"$define") |
17194 |
echo " " |
17195 |
echo "Checking whether closedir() returns a status..." >&4 |
17196 |
cat > try.c <<EOM |
17197 |
#$i_dirent I_DIRENT /**/ |
17198 |
#$i_sysdir I_SYS_DIR /**/ |
17199 |
#$i_sysndir I_SYS_NDIR /**/ |
17200 |
#$i_systypes I_SYS_TYPES /**/ |
17201 |
|
17202 |
#if defined(I_SYS_TYPES) |
17203 |
#include <sys/types.h> |
17204 |
#endif |
17205 |
#if defined(I_DIRENT) |
17206 |
#include <dirent.h> |
17207 |
#if defined(NeXT) && defined(I_SYS_DIR) /* NeXT needs dirent + sys/dir.h */ |
17208 |
#include <sys/dir.h> |
17209 |
#endif |
17210 |
#else |
17211 |
#ifdef I_SYS_NDIR |
17212 |
#include <sys/ndir.h> |
17213 |
#else |
17214 |
#ifdef I_SYS_DIR |
17215 |
#ifdef hp9000s500 |
17216 |
#include <ndir.h> /* may be wrong in the future */ |
17217 |
#else |
17218 |
#include <sys/dir.h> |
17219 |
#endif |
17220 |
#endif |
17221 |
#endif |
17222 |
#endif |
17223 |
int main() { return closedir(opendir(".")); } |
17224 |
EOM |
17225 |
set try |
17226 |
if eval $compile_ok; then |
17227 |
if $run ./try > /dev/null 2>&1 ; then |
17228 |
echo "Yes, it does." |
17229 |
val="$undef" |
17230 |
else |
17231 |
echo "No, it doesn't." |
17232 |
val="$define" |
17233 |
fi |
17234 |
else |
17235 |
echo "(I can't seem to compile the test program--assuming it doesn't)" |
17236 |
val="$define" |
17237 |
fi |
17238 |
;; |
17239 |
*) |
17240 |
val="$undef"; |
17241 |
;; |
17242 |
esac |
17243 |
set d_void_closedir |
17244 |
eval $setvar |
17245 |
$rm -f try try.* |
17246 |
: see if there is a wait4 |
17247 |
set wait4 d_wait4 |
17248 |
eval $inlibc |
17249 |
|
17250 |
: see if waitpid exists |
17251 |
set waitpid d_waitpid |
17252 |
eval $inlibc |
17253 |
|
17254 |
: see if wcstombs exists |
17255 |
set wcstombs d_wcstombs |
17256 |
eval $inlibc |
17257 |
|
17258 |
: see if wctomb exists |
17259 |
set wctomb d_wctomb |
17260 |
eval $inlibc |
17261 |
|
17262 |
: see if writev exists |
17263 |
set writev d_writev |
17264 |
eval $inlibc |
17265 |
|
17266 |
: preserve RCS keywords in files with variable substitution, grrr |
17267 |
Date='$Date' |
17268 |
Id='$Id' |
17269 |
Log='$Log' |
17270 |
RCSfile='$RCSfile' |
17271 |
Revision='$Revision' |
17272 |
|
17273 |
: check for alignment requirements |
17274 |
echo " " |
17275 |
case "$usecrosscompile$multiarch" in |
17276 |
*$define*) |
17277 |
$cat <<EOM |
17278 |
You seem to be either cross-compiling or doing a multiarchitecture build, |
17279 |
skipping the memory alignment check. |
17280 |
|
17281 |
EOM |
17282 |
case "$alignbytes" in |
17283 |
'') alignbytes=8 ;; |
17284 |
esac |
17285 |
;; |
17286 |
*) |
17287 |
case "$alignbytes" in |
17288 |
'') echo "Checking alignment constraints..." >&4 |
17289 |
if $test "X$uselongdouble" = Xdefine -a "X$d_longdbl" = Xdefine; then |
17290 |
$cat >try.c <<'EOCP' |
17291 |
typedef long double NV; |
17292 |
EOCP |
17293 |
else |
17294 |
$cat >try.c <<'EOCP' |
17295 |
typedef double NV; |
17296 |
EOCP |
17297 |
fi |
17298 |
$cat >>try.c <<'EOCP' |
17299 |
#include <stdio.h> |
17300 |
struct foobar { |
17301 |
char foo; |
17302 |
NV bar; |
17303 |
} try_algn; |
17304 |
int main() |
17305 |
{ |
17306 |
printf("%d\n", (int)((char *)&try_algn.bar - (char *)&try_algn.foo)); |
17307 |
return(0); |
17308 |
} |
17309 |
EOCP |
17310 |
set try |
17311 |
if eval $compile_ok; then |
17312 |
dflt=`$run ./try` |
17313 |
else |
17314 |
dflt='8' |
17315 |
echo "(I can't seem to compile the test program...)" |
17316 |
fi |
17317 |
;; |
17318 |
*) dflt="$alignbytes" |
17319 |
;; |
17320 |
esac |
17321 |
rp="Doubles must be aligned on a how-many-byte boundary?" |
17322 |
. ./myread |
17323 |
alignbytes="$ans" |
17324 |
$rm -f try.c try |
17325 |
;; |
17326 |
esac |
17327 |
|
17328 |
|
17329 |
: set the base revision |
17330 |
baserev=5.0 |
17331 |
|
17332 |
: how do we concatenate cpp tokens here? |
17333 |
echo " " |
17334 |
echo "Checking to see how your cpp does stuff like concatenate tokens..." >&4 |
17335 |
$cat >cpp_stuff.c <<'EOCP' |
17336 |
#define RCAT(a,b)a/**/b |
17337 |
#define ACAT(a,b)a ## b |
17338 |
RCAT(Rei,ser) |
17339 |
ACAT(Cir,cus) |
17340 |
EOCP |
17341 |
$cppstdin $cppflags $cppminus <cpp_stuff.c >cpp_stuff.out 2>&1 |
17342 |
if $contains 'Circus' cpp_stuff.out >/dev/null 2>&1; then |
17343 |
echo "Oh! Smells like ANSI's been here." >&4 |
17344 |
echo "We can catify or stringify, separately or together!" |
17345 |
cpp_stuff=42 |
17346 |
elif $contains 'Reiser' cpp_stuff.out >/dev/null 2>&1; then |
17347 |
echo "Ah, yes! The good old days!" >&4 |
17348 |
echo "However, in the good old days we don't know how to stringify and" |
17349 |
echo "catify at the same time." |
17350 |
cpp_stuff=1 |
17351 |
else |
17352 |
$cat >&4 <<EOM |
17353 |
Hmm, I don't seem to be able to concatenate tokens with your cpp. |
17354 |
You're going to have to edit the values of CAT[2-5] in config.h... |
17355 |
EOM |
17356 |
cpp_stuff="/* Help! How do we handle cpp_stuff? */*/" |
17357 |
fi |
17358 |
$rm -f cpp_stuff.* |
17359 |
|
17360 |
: see if this is a db.h system |
17361 |
set db.h i_db |
17362 |
eval $inhdr |
17363 |
|
17364 |
case "$i_db" in |
17365 |
$define) |
17366 |
: Check db version. |
17367 |
echo " " |
17368 |
echo "Checking Berkeley DB version ..." >&4 |
17369 |
$cat >try.c <<EOCP |
17370 |
#$d_const HASCONST |
17371 |
#ifndef HASCONST |
17372 |
#define const |
17373 |
#endif |
17374 |
#include <sys/types.h> |
17375 |
#include <stdio.h> |
17376 |
#$i_stdlib I_STDLIB |
17377 |
#ifdef I_STDLIB |
17378 |
#include <stdlib.h> |
17379 |
#endif |
17380 |
#include <db.h> |
17381 |
int main(int argc, char *argv[]) |
17382 |
{ |
17383 |
#ifdef DB_VERSION_MAJOR /* DB version >= 2 */ |
17384 |
int Major, Minor, Patch ; |
17385 |
unsigned long Version ; |
17386 |
(void)db_version(&Major, &Minor, &Patch) ; |
17387 |
if (argc == 2) { |
17388 |
printf("%d %d %d %d %d %d\n", |
17389 |
DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH, |
17390 |
Major, Minor, Patch); |
17391 |
exit(0); |
17392 |
} |
17393 |
printf("You have Berkeley DB Version 2 or greater.\n"); |
17394 |
|
17395 |
printf("db.h is from Berkeley DB Version %d.%d.%d\n", |
17396 |
DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH); |
17397 |
printf("libdb is from Berkeley DB Version %d.%d.%d\n", |
17398 |
Major, Minor, Patch) ; |
17399 |
|
17400 |
/* check that db.h & libdb are compatible */ |
17401 |
if (DB_VERSION_MAJOR != Major || DB_VERSION_MINOR != Minor || DB_VERSION_PATCH != Patch) { |
17402 |
printf("db.h and libdb are incompatible.\n") ; |
17403 |
exit(3); |
17404 |
} |
17405 |
|
17406 |
printf("db.h and libdb are compatible.\n") ; |
17407 |
|
17408 |
Version = DB_VERSION_MAJOR * 1000000 + DB_VERSION_MINOR * 1000 |
17409 |
+ DB_VERSION_PATCH ; |
17410 |
|
17411 |
/* needs to be >= 2.3.4 */ |
17412 |
if (Version < 2003004) { |
17413 |
/* if (DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR == 0 && DB_VERSION_PATCH < 5) { */ |
17414 |
printf("Perl needs Berkeley DB 2.3.4 or greater.\n") ; |
17415 |
exit(2); |
17416 |
} |
17417 |
|
17418 |
exit(0); |
17419 |
#else |
17420 |
#if defined(_DB_H_) && defined(BTREEMAGIC) && defined(HASHMAGIC) |
17421 |
if (argc == 2) { |
17422 |
printf("1 0 0\n"); |
17423 |
exit(0); |
17424 |
} |
17425 |
printf("You have Berkeley DB Version 1.\n"); |
17426 |
exit(0); /* DB version < 2: the coast is clear. */ |
17427 |
#else |
17428 |
exit(1); /* <db.h> not Berkeley DB? */ |
17429 |
#endif |
17430 |
#endif |
17431 |
} |
17432 |
EOCP |
17433 |
set try |
17434 |
if eval $compile_ok && $run ./try; then |
17435 |
echo 'Looks OK.' >&4 |
17436 |
set `$run ./try 1` |
17437 |
db_version_major=$1 |
17438 |
db_version_minor=$2 |
17439 |
db_version_patch=$3 |
17440 |
else |
17441 |
echo "I can't use Berkeley DB with your <db.h>. I'll disable Berkeley DB." >&4 |
17442 |
i_db=$undef |
17443 |
case " $libs " in |
17444 |
*"-ldb "*) |
17445 |
: Remove db from list of libraries to use |
17446 |
echo "Removing unusable -ldb from library list" >&4 |
17447 |
set `echo X $libs | $sed -e 's/-ldb / /' -e 's/-ldb$//'` |
17448 |
shift |
17449 |
libs="$*" |
17450 |
echo "libs = $libs" >&4 |
17451 |
;; |
17452 |
esac |
17453 |
fi |
17454 |
$rm -f try.* |
17455 |
;; |
17456 |
esac |
17457 |
|
17458 |
case "$i_db" in |
17459 |
define) |
17460 |
: Check the return type needed for hash |
17461 |
echo " " |
17462 |
echo "Checking return type needed for hash for Berkeley DB ..." >&4 |
17463 |
$cat >try.c <<EOCP |
17464 |
#$d_const HASCONST |
17465 |
#ifndef HASCONST |
17466 |
#define const |
17467 |
#endif |
17468 |
#include <sys/types.h> |
17469 |
#include <db.h> |
17470 |
|
17471 |
#ifndef DB_VERSION_MAJOR |
17472 |
u_int32_t hash_cb (ptr, size) |
17473 |
const void *ptr; |
17474 |
size_t size; |
17475 |
{ |
17476 |
} |
17477 |
HASHINFO info; |
17478 |
int main() |
17479 |
{ |
17480 |
info.hash = hash_cb; |
17481 |
} |
17482 |
#endif |
17483 |
EOCP |
17484 |
if $cc $ccflags -c try.c >try.out 2>&1 ; then |
17485 |
if $contains warning try.out >>/dev/null 2>&1 ; then |
17486 |
db_hashtype='int' |
17487 |
else |
17488 |
db_hashtype='u_int32_t' |
17489 |
fi |
17490 |
else |
17491 |
: XXX Maybe we should just give up here. |
17492 |
db_hashtype=u_int32_t |
17493 |
$cat try.out >&4 |
17494 |
echo "Help: I can't seem to compile the db test program." >&4 |
17495 |
echo "Something's wrong, but I'll assume you use $db_hashtype." >&4 |
17496 |
fi |
17497 |
$rm -f try.* |
17498 |
echo "Your version of Berkeley DB uses $db_hashtype for hash." |
17499 |
;; |
17500 |
*) db_hashtype=u_int32_t |
17501 |
;; |
17502 |
esac |
17503 |
case "$i_db" in |
17504 |
define) |
17505 |
: Check the return type needed for prefix |
17506 |
echo " " |
17507 |
echo "Checking return type needed for prefix for Berkeley DB ..." >&4 |
17508 |
cat >try.c <<EOCP |
17509 |
#$d_const HASCONST |
17510 |
#ifndef HASCONST |
17511 |
#define const |
17512 |
#endif |
17513 |
#include <sys/types.h> |
17514 |
#include <db.h> |
17515 |
|
17516 |
#ifndef DB_VERSION_MAJOR |
17517 |
size_t prefix_cb (key1, key2) |
17518 |
const DBT *key1; |
17519 |
const DBT *key2; |
17520 |
{ |
17521 |
} |
17522 |
BTREEINFO info; |
17523 |
int main() |
17524 |
{ |
17525 |
info.prefix = prefix_cb; |
17526 |
} |
17527 |
#endif |
17528 |
EOCP |
17529 |
if $cc $ccflags -c try.c >try.out 2>&1 ; then |
17530 |
if $contains warning try.out >>/dev/null 2>&1 ; then |
17531 |
db_prefixtype='int' |
17532 |
else |
17533 |
db_prefixtype='size_t' |
17534 |
fi |
17535 |
else |
17536 |
db_prefixtype='size_t' |
17537 |
: XXX Maybe we should just give up here. |
17538 |
$cat try.out >&4 |
17539 |
echo "Help: I can't seem to compile the db test program." >&4 |
17540 |
echo "Something's wrong, but I'll assume you use $db_prefixtype." >&4 |
17541 |
fi |
17542 |
$rm -f try.* |
17543 |
echo "Your version of Berkeley DB uses $db_prefixtype for prefix." |
17544 |
;; |
17545 |
*) db_prefixtype='size_t' |
17546 |
;; |
17547 |
esac |
17548 |
|
17549 |
|
17550 |
: How can we generate normalized random numbers ? |
17551 |
echo " " |
17552 |
echo "Looking for a random number function..." >&4 |
17553 |
case "$randfunc" in |
17554 |
'') |
17555 |
if set drand48 val -f; eval $csym; $val; then |
17556 |
dflt="drand48" |
17557 |
echo "Good, found drand48()." >&4 |
17558 |
elif set random val -f; eval $csym; $val; then |
17559 |
dflt="random" |
17560 |
echo "OK, found random()." >&4 |
17561 |
else |
17562 |
dflt="rand" |
17563 |
echo "Yick, looks like I have to use rand()." >&4 |
17564 |
fi |
17565 |
echo " " |
17566 |
;; |
17567 |
*) |
17568 |
dflt="$randfunc" |
17569 |
;; |
17570 |
esac |
17571 |
cont=true |
17572 |
|
17573 |
case "$ccflags" in |
17574 |
*-Dmy_rand=*|*-Dmy_srand=*) |
17575 |
echo "Removing obsolete -Dmy_rand, -Dmy_srand, and -Drandbits from ccflags." >&4 |
17576 |
ccflags="`echo $ccflags | sed -e 's/-Dmy_rand=random/ /'`" |
17577 |
ccflags="`echo $ccflags | sed -e 's/-Dmy_srand=srandom/ /'`" |
17578 |
ccflags="`echo $ccflags | sed -e 's/-Drandbits=[0-9][0-9]*/ /'`" |
17579 |
;; |
17580 |
esac |
17581 |
|
17582 |
while $test "$cont"; do |
17583 |
rp="Use which function to generate random numbers?" |
17584 |
. ./myread |
17585 |
if $test "$ans" = "$dflt"; then |
17586 |
: null |
17587 |
else |
17588 |
randbits='' |
17589 |
fi |
17590 |
randfunc="$ans" |
17591 |
if set $ans val -f; eval $csym; $val; then |
17592 |
cont='' |
17593 |
else |
17594 |
dflt=y |
17595 |
rp="I cannot find function $ans. Use that name anyway?" |
17596 |
. ./myread |
17597 |
dflt=rand |
17598 |
case "$ans" in |
17599 |
[yY]*) cont='';; |
17600 |
esac |
17601 |
fi |
17602 |
case "$cont" in |
17603 |
'') |
17604 |
case "$randfunc" in |
17605 |
drand48) |
17606 |
drand01="drand48()" |
17607 |
seedfunc="srand48" |
17608 |
randbits=48 |
17609 |
randseedtype=long |
17610 |
;; |
17611 |
rand|random) |
17612 |
case "$randbits" in |
17613 |
'') |
17614 |
echo "Checking to see how many bits your $randfunc() function produces..." >&4 |
17615 |
$cat >try.c <<EOCP |
17616 |
#$i_unistd I_UNISTD |
17617 |
#$i_stdlib I_STDLIB |
17618 |
#include <stdio.h> |
17619 |
#ifdef I_UNISTD |
17620 |
# include <unistd.h> |
17621 |
#endif |
17622 |
#ifdef I_STDLIB |
17623 |
# include <stdlib.h> |
17624 |
#endif |
17625 |
int main() |
17626 |
{ |
17627 |
register int i; |
17628 |
register unsigned long tmp; |
17629 |
register unsigned long max = 0L; |
17630 |
|
17631 |
for (i = 1000; i; i--) { |
17632 |
tmp = (unsigned long) $randfunc(); |
17633 |
if (tmp > max) max = tmp; |
17634 |
} |
17635 |
for (i = 0; max; i++) |
17636 |
max /= 2; |
17637 |
printf("%d\n",i); |
17638 |
} |
17639 |
EOCP |
17640 |
set try |
17641 |
if eval $compile_ok; then |
17642 |
dflt=`try` |
17643 |
else |
17644 |
dflt='?' |
17645 |
echo "(I can't seem to compile the test program...)" |
17646 |
fi |
17647 |
;; |
17648 |
*) |
17649 |
dflt="$randbits" |
17650 |
;; |
17651 |
esac |
17652 |
rp="How many bits does your $randfunc() function produce?" |
17653 |
. ./myread |
17654 |
randbits="$ans" |
17655 |
$rm -f try.c try |
17656 |
drand01="($randfunc() / (double) ((unsigned long)1 << $randbits))" |
17657 |
seedfunc="s$randfunc" |
17658 |
randseedtype=unsigned |
17659 |
;; |
17660 |
*) |
17661 |
dflt="31" |
17662 |
rp="How many bits does your $randfunc() function produce?" |
17663 |
. ./myread |
17664 |
randbits="$ans" |
17665 |
seedfunc="s$randfunc" |
17666 |
drand01="($randfunc() / (double) ((unsigned long)1 << $randbits))" |
17667 |
if set $seedfunc val -f; eval $csym; $val; then |
17668 |
echo "(Using $seedfunc() to seed random generator)" |
17669 |
else |
17670 |
echo "(Warning: no $seedfunc() to seed random generator)" |
17671 |
seedfunc=rand |
17672 |
fi |
17673 |
randseedtype=unsigned |
17674 |
;; |
17675 |
esac |
17676 |
;; |
17677 |
esac |
17678 |
done |
17679 |
|
17680 |
echo " " |
17681 |
echo "Determining whether or not we are on an EBCDIC system..." >&4 |
17682 |
$cat >try.c <<'EOM' |
17683 |
int main() |
17684 |
{ |
17685 |
if ('M'==0xd4) return 0; |
17686 |
return 1; |
17687 |
} |
17688 |
EOM |
17689 |
|
17690 |
val=$undef |
17691 |
set try |
17692 |
if eval $compile_ok; then |
17693 |
if $run ./try; then |
17694 |
echo "You seem to speak EBCDIC." >&4 |
17695 |
val="$define" |
17696 |
else |
17697 |
echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF-8." >&4 |
17698 |
fi |
17699 |
else |
17700 |
echo "I'm unable to compile the test program." >&4 |
17701 |
echo "I'll assume ASCII or some ISO Latin. Or UTF8." >&4 |
17702 |
fi |
17703 |
$rm -f try try.* |
17704 |
set ebcdic |
17705 |
eval $setvar |
17706 |
|
17707 |
echo " " |
17708 |
$cat >&4 <<EOM |
17709 |
Checking how to flush all pending stdio output... |
17710 |
EOM |
17711 |
# I only know how to find the first 32 possibly open files on SunOS. |
17712 |
# See also hints/sunos_4_1.sh and util.c --AD |
17713 |
case "$osname" in |
17714 |
sunos) $echo '#define PERL_FFLUSH_ALL_FOPEN_MAX 32' > try.c ;; |
17715 |
esac |
17716 |
$cat >>try.c <<EOCP |
17717 |
#include <stdio.h> |
17718 |
#$i_stdlib I_STDLIB |
17719 |
#ifdef I_STDLIB |
17720 |
#include <stdlib.h> |
17721 |
#endif |
17722 |
#$i_unistd I_UNISTD |
17723 |
#ifdef I_UNISTD |
17724 |
# include <unistd.h> |
17725 |
#endif |
17726 |
#$d_sysconf HAS_SYSCONF |
17727 |
#$d_stdio_stream_array HAS_STDIO_STREAM_ARRAY |
17728 |
#ifdef HAS_STDIO_STREAM_ARRAY |
17729 |
# define STDIO_STREAM_ARRAY $stdio_stream_array |
17730 |
#endif |
17731 |
int main() { |
17732 |
FILE* p; |
17733 |
unlink("try.out"); |
17734 |
p = fopen("try.out", "w"); |
17735 |
#ifdef TRY_FPUTC |
17736 |
fputc('x', p); |
17737 |
#else |
17738 |
# ifdef TRY_FPRINTF |
17739 |
fprintf(p, "x"); |
17740 |
# endif |
17741 |
#endif |
17742 |
#ifdef TRY_FFLUSH_NULL |
17743 |
fflush(NULL); |
17744 |
#endif |
17745 |
#ifdef TRY_FFLUSH_ALL |
17746 |
{ |
17747 |
long open_max = -1; |
17748 |
# ifdef PERL_FFLUSH_ALL_FOPEN_MAX |
17749 |
open_max = PERL_FFLUSH_ALL_FOPEN_MAX; |
17750 |
# else |
17751 |
# if defined(HAS_SYSCONF) && defined(_SC_OPEN_MAX) |
17752 |
open_max = sysconf(_SC_OPEN_MAX); |
17753 |
# else |
17754 |
# ifdef FOPEN_MAX |
17755 |
open_max = FOPEN_MAX; |
17756 |
# else |
17757 |
# ifdef OPEN_MAX |
17758 |
open_max = OPEN_MAX; |
17759 |
# else |
17760 |
# ifdef _NFILE |
17761 |
open_max = _NFILE; |
17762 |
# endif |
17763 |
# endif |
17764 |
# endif |
17765 |
# endif |
17766 |
# endif |
17767 |
# ifdef HAS_STDIO_STREAM_ARRAY |
17768 |
if (open_max > 0) { |
17769 |
long i; |
17770 |
for (i = 0; i < open_max; i++) |
17771 |
if (STDIO_STREAM_ARRAY[i]._file >= 0 && |
17772 |
STDIO_STREAM_ARRAY[i]._file < open_max && |
17773 |
STDIO_STREAM_ARRAY[i]._flag) |
17774 |
fflush(&STDIO_STREAM_ARRAY[i]); |
17775 |
} |
17776 |
} |
17777 |
# endif |
17778 |
#endif |
17779 |
_exit(42); |
17780 |
} |
17781 |
EOCP |
17782 |
: first we have to find out how _not_ to flush |
17783 |
$to try.c |
17784 |
if $test "X$fflushNULL" = X -o "X$fflushall" = X; then |
17785 |
output='' |
17786 |
set try -DTRY_FPUTC |
17787 |
if eval $compile; then |
17788 |
$run ./try 2>/dev/null |
17789 |
code="$?" |
17790 |
$from try.out |
17791 |
if $test ! -s try.out -a "X$code" = X42; then |
17792 |
output=-DTRY_FPUTC |
17793 |
fi |
17794 |
fi |
17795 |
case "$output" in |
17796 |
'') |
17797 |
set try -DTRY_FPRINTF |
17798 |
if eval $compile; then |
17799 |
$run ./try 2>/dev/null |
17800 |
code="$?" |
17801 |
$from try.out |
17802 |
if $test ! -s try.out -a "X$code" = X42; then |
17803 |
output=-DTRY_FPRINTF |
17804 |
fi |
17805 |
fi |
17806 |
;; |
17807 |
esac |
17808 |
fi |
17809 |
: check for fflush NULL behaviour |
17810 |
case "$fflushNULL" in |
17811 |
'') set try -DTRY_FFLUSH_NULL $output |
17812 |
if eval $compile; then |
17813 |
$run ./try 2>/dev/null |
17814 |
code="$?" |
17815 |
$from try.out |
17816 |
if $test -s try.out -a "X$code" = X42; then |
17817 |
fflushNULL="`$cat try.out`" |
17818 |
else |
17819 |
if $test "X$code" != X42; then |
17820 |
$cat >&4 <<EOM |
17821 |
(If this test failed, don't worry, we'll try another method shortly.) |
17822 |
EOM |
17823 |
fi |
17824 |
fi |
17825 |
fi |
17826 |
$rm -f core try.core core.try.* |
17827 |
case "$fflushNULL" in |
17828 |
x) $cat >&4 <<EOM |
17829 |
Your fflush(NULL) works okay for output streams. |
17830 |
Let's see if it clobbers input pipes... |
17831 |
EOM |
17832 |
# As of mid-March 2000 all versions of Solaris appear to have a stdio |
17833 |
# bug that improperly flushes the input end of pipes. So we avoid the |
17834 |
# autoflush on fork/system/exec support for now. :-( |
17835 |
$cat >tryp.c <<EOCP |
17836 |
#include <stdio.h> |
17837 |
int |
17838 |
main(int argc, char **argv) |
17839 |
{ |
17840 |
char buf[1024]; |
17841 |
int i; |
17842 |
char *bp = buf; |
17843 |
while (1) { |
17844 |
while ((i = getc(stdin)) != -1 |
17845 |
&& (*bp++ = i) != '\n' |
17846 |
&& bp < &buf[1024]) |
17847 |
/* DO NOTHING */ ; |
17848 |
*bp = '\0'; |
17849 |
fprintf(stdout, "%s", buf); |
17850 |
fflush(NULL); |
17851 |
if (i == -1) |
17852 |
return 0; |
17853 |
bp = buf; |
17854 |
} |
17855 |
} |
17856 |
EOCP |
17857 |
fflushNULL="$define" |
17858 |
set tryp |
17859 |
if eval $compile; then |
17860 |
$rm -f tryp.out |
17861 |
$cat tryp.c | $run ./tryp 2>/dev/null > tryp.out |
17862 |
if cmp tryp.c tryp.out >/dev/null 2>&1; then |
17863 |
$cat >&4 <<EOM |
17864 |
fflush(NULL) seems to behave okay with input streams. |
17865 |
EOM |
17866 |
fflushNULL="$define" |
17867 |
else |
17868 |
$cat >&4 <<EOM |
17869 |
Ouch, fflush(NULL) clobbers input pipes! We will not use it. |
17870 |
EOM |
17871 |
fflushNULL="$undef" |
17872 |
fi |
17873 |
fi |
17874 |
$rm -f core tryp.c tryp.core core.tryp.* |
17875 |
;; |
17876 |
'') $cat >&4 <<EOM |
17877 |
Your fflush(NULL) isn't working (contrary to ANSI C). |
17878 |
EOM |
17879 |
fflushNULL="$undef" |
17880 |
;; |
17881 |
*) $cat >&4 <<EOM |
17882 |
Cannot figure out whether your fflush(NULL) works or not. |
17883 |
I'm assuming it doesn't (contrary to ANSI C). |
17884 |
EOM |
17885 |
fflushNULL="$undef" |
17886 |
;; |
17887 |
esac |
17888 |
;; |
17889 |
$define|true|[yY]*) |
17890 |
fflushNULL="$define" |
17891 |
;; |
17892 |
*) |
17893 |
fflushNULL="$undef" |
17894 |
;; |
17895 |
esac |
17896 |
: check explicit looping only if NULL did not work, and if the pipe |
17897 |
: bug does not show up on an explicit flush too |
17898 |
case "$fflushNULL" in |
17899 |
"$undef") |
17900 |
$cat >tryp.c <<EOCP |
17901 |
#include <stdio.h> |
17902 |
int |
17903 |
main(int argc, char **argv) |
17904 |
{ |
17905 |
char buf[1024]; |
17906 |
int i; |
17907 |
char *bp = buf; |
17908 |
while (1) { |
17909 |
while ((i = getc(stdin)) != -1 |
17910 |
&& (*bp++ = i) != '\n' |
17911 |
&& bp < &buf[1024]) |
17912 |
/* DO NOTHING */ ; |
17913 |
*bp = '\0'; |
17914 |
fprintf(stdout, "%s", buf); |
17915 |
fflush(stdin); |
17916 |
if (i == -1) |
17917 |
return 0; |
17918 |
bp = buf; |
17919 |
} |
17920 |
} |
17921 |
EOCP |
17922 |
set tryp |
17923 |
if eval $compile; then |
17924 |
$rm -f tryp.out |
17925 |
$cat tryp.c | $run ./tryp 2>/dev/null > tryp.out |
17926 |
if cmp tryp.c tryp.out >/dev/null 2>&1; then |
17927 |
$cat >&4 <<EOM |
17928 |
Good, at least fflush(stdin) seems to behave okay when stdin is a pipe. |
17929 |
EOM |
17930 |
: now check for fflushall behaviour |
17931 |
case "$fflushall" in |
17932 |
'') set try -DTRY_FFLUSH_ALL $output |
17933 |
if eval $compile; then |
17934 |
$cat >&4 <<EOM |
17935 |
(Now testing the other method--but note that this also may fail.) |
17936 |
EOM |
17937 |
$run ./try 2>/dev/null |
17938 |
code=$? |
17939 |
$from try.out |
17940 |
if $test -s try.out -a "X$code" = X42; then |
17941 |
fflushall="`$cat try.out`" |
17942 |
fi |
17943 |
fi |
17944 |
$rm -f core try.core core.try.* |
17945 |
case "$fflushall" in |
17946 |
x) $cat >&4 <<EOM |
17947 |
Whew. Flushing explicitly all the stdio streams works. |
17948 |
EOM |
17949 |
fflushall="$define" |
17950 |
;; |
17951 |
'') $cat >&4 <<EOM |
17952 |
Sigh. Flushing explicitly all the stdio streams doesn't work. |
17953 |
EOM |
17954 |
fflushall="$undef" |
17955 |
;; |
17956 |
*) $cat >&4 <<EOM |
17957 |
Cannot figure out whether flushing stdio streams explicitly works or not. |
17958 |
I'm assuming it doesn't. |
17959 |
EOM |
17960 |
fflushall="$undef" |
17961 |
;; |
17962 |
esac |
17963 |
;; |
17964 |
"$define"|true|[yY]*) |
17965 |
fflushall="$define" |
17966 |
;; |
17967 |
*) |
17968 |
fflushall="$undef" |
17969 |
;; |
17970 |
esac |
17971 |
else |
17972 |
$cat >&4 <<EOM |
17973 |
All is futile. Even fflush(stdin) clobbers input pipes! |
17974 |
EOM |
17975 |
fflushall="$undef" |
17976 |
fi |
17977 |
else |
17978 |
fflushall="$undef" |
17979 |
fi |
17980 |
$rm -f core tryp.c tryp.core core.tryp.* |
17981 |
;; |
17982 |
*) fflushall="$undef" |
17983 |
;; |
17984 |
esac |
17985 |
|
17986 |
case "$fflushNULL$fflushall" in |
17987 |
undefundef) |
17988 |
$cat <<EOM |
17989 |
OK, I give up. I cannot figure out how to flush pending stdio output. |
17990 |
We won't be flushing handles at all before fork/exec/popen. |
17991 |
EOM |
17992 |
;; |
17993 |
esac |
17994 |
$rm -f try.* try$exe_ext |
17995 |
|
17996 |
: Store the full pathname to the ar program for use in the C program |
17997 |
: Respect a hint or command line value for full_ar. |
17998 |
case "$full_ar" in |
17999 |
'') full_ar=$ar ;; |
18000 |
esac |
18001 |
|
18002 |
: Store the full pathname to the sed program for use in the C program |
18003 |
full_sed=$sed |
18004 |
|
18005 |
: see what type gids are declared as in the kernel |
18006 |
echo " " |
18007 |
echo "Looking for the type for group ids returned by getgid()." |
18008 |
set gid_t gidtype xxx stdio.h sys/types.h |
18009 |
eval $typedef |
18010 |
case "$gidtype" in |
18011 |
xxx) |
18012 |
xxx=`./findhdr sys/user.h` |
18013 |
set `grep 'groups\[NGROUPS\];' "$xxx" 2>/dev/null` unsigned short |
18014 |
case $1 in |
18015 |
unsigned) dflt="$1 $2" ;; |
18016 |
*) dflt="$1" ;; |
18017 |
esac |
18018 |
;; |
18019 |
*) dflt="$gidtype";; |
18020 |
esac |
18021 |
case "$gidtype" in |
18022 |
gid_t) echo "gid_t found." ;; |
18023 |
*) rp="What is the type for group ids returned by getgid()?" |
18024 |
. ./myread |
18025 |
gidtype="$ans" |
18026 |
;; |
18027 |
esac |
18028 |
|
18029 |
echo " " |
18030 |
case "$gidtype" in |
18031 |
*_t) zzz="$gidtype" ;; |
18032 |
*) zzz="gid" ;; |
18033 |
esac |
18034 |
echo "Checking the size of $zzz..." >&4 |
18035 |
cat > try.c <<EOCP |
18036 |
#include <sys/types.h> |
18037 |
#include <stdio.h> |
18038 |
#$i_stdlib I_STDLIB |
18039 |
#ifdef I_STDLIB |
18040 |
#include <stdlib.h> |
18041 |
#endif |
18042 |
int main() { |
18043 |
printf("%d\n", (int)sizeof($gidtype)); |
18044 |
exit(0); |
18045 |
} |
18046 |
EOCP |
18047 |
set try |
18048 |
if eval $compile_ok; then |
18049 |
yyy=`$run ./try` |
18050 |
case "$yyy" in |
18051 |
'') gidsize=4 |
18052 |
echo "(I can't execute the test program--guessing $gidsize.)" >&4 |
18053 |
;; |
18054 |
*) gidsize=$yyy |
18055 |
echo "Your $zzz is $gidsize bytes long." |
18056 |
;; |
18057 |
esac |
18058 |
else |
18059 |
gidsize=4 |
18060 |
echo "(I can't compile the test program--guessing $gidsize.)" >&4 |
18061 |
fi |
18062 |
|
18063 |
|
18064 |
echo " " |
18065 |
case "$gidtype" in |
18066 |
*_t) zzz="$gidtype" ;; |
18067 |
*) zzz="gid" ;; |
18068 |
esac |
18069 |
echo "Checking the sign of $zzz..." >&4 |
18070 |
cat > try.c <<EOCP |
18071 |
#include <sys/types.h> |
18072 |
#include <stdio.h> |
18073 |
int main() { |
18074 |
$gidtype foo = -1; |
18075 |
if (foo < 0) |
18076 |
printf("-1\n"); |
18077 |
else |
18078 |
printf("1\n"); |
18079 |
} |
18080 |
EOCP |
18081 |
set try |
18082 |
if eval $compile; then |
18083 |
yyy=`$run ./try` |
18084 |
case "$yyy" in |
18085 |
'') gidsign=1 |
18086 |
echo "(I can't execute the test program--guessing unsigned.)" >&4 |
18087 |
;; |
18088 |
*) gidsign=$yyy |
18089 |
case "$gidsign" in |
18090 |
1) echo "Your $zzz is unsigned." ;; |
18091 |
-1) echo "Your $zzz is signed." ;; |
18092 |
esac |
18093 |
;; |
18094 |
esac |
18095 |
else |
18096 |
gidsign=1 |
18097 |
echo "(I can't compile the test program--guessing unsigned.)" >&4 |
18098 |
fi |
18099 |
|
18100 |
|
18101 |
echo " " |
18102 |
|
18103 |
if $test X"$quadtype" != X; then |
18104 |
|
18105 |
echo "Checking how to print 64-bit integers..." >&4 |
18106 |
|
18107 |
if $test X"$sPRId64" = X -a X"$quadtype" = Xint; then |
18108 |
$cat >try.c <<'EOCP' |
18109 |
#include <sys/types.h> |
18110 |
#include <stdio.h> |
18111 |
int main() { |
18112 |
int q = 12345678901; |
18113 |
printf("%ld\n", q); |
18114 |
} |
18115 |
EOCP |
18116 |
set try |
18117 |
if eval $compile; then |
18118 |
yyy=`$run ./try` |
18119 |
case "$yyy" in |
18120 |
12345678901) |
18121 |
sPRId64='"d"'; sPRIi64='"i"'; sPRIu64='"u"'; |
18122 |
sPRIo64='"o"'; sPRIx64='"x"'; sPRIXU64='"X"'; |
18123 |
echo "We will use %d." |
18124 |
;; |
18125 |
esac |
18126 |
fi |
18127 |
fi |
18128 |
|
18129 |
if $test X"$sPRId64" = X -a X"$quadtype" = Xlong; then |
18130 |
$cat >try.c <<'EOCP' |
18131 |
#include <sys/types.h> |
18132 |
#include <stdio.h> |
18133 |
int main() { |
18134 |
long q = 12345678901; |
18135 |
printf("%ld\n", q); |
18136 |
} |
18137 |
EOCP |
18138 |
set try |
18139 |
if eval $compile; then |
18140 |
yyy=`$run ./try` |
18141 |
case "$yyy" in |
18142 |
12345678901) |
18143 |
sPRId64='"ld"'; sPRIi64='"li"'; sPRIu64='"lu"'; |
18144 |
sPRIo64='"lo"'; sPRIx64='"lx"'; sPRIXU64='"lX"'; |
18145 |
echo "We will use %ld." |
18146 |
;; |
18147 |
esac |
18148 |
fi |
18149 |
fi |
18150 |
|
18151 |
if $test X"$sPRId64" = X -a X"$i_inttypes" = X"$define" -a X"$quadtype" = Xint64_t; then |
18152 |
$cat >try.c <<'EOCP' |
18153 |
#include <sys/types.h> |
18154 |
#include <inttypes.h> |
18155 |
#include <stdio.h> |
18156 |
int main() { |
18157 |
int64_t q = 12345678901; |
18158 |
printf("%" PRId64 "\n", q); |
18159 |
} |
18160 |
EOCP |
18161 |
set try |
18162 |
if eval $compile; then |
18163 |
yyy=`$run ./try` |
18164 |
case "$yyy" in |
18165 |
12345678901) |
18166 |
sPRId64=PRId64; sPRIi64=PRIi64; sPRIu64=PRIu64; |
18167 |
sPRIo64=PRIo64; sPRIx64=PRIx64; sPRIXU64=PRIXU64; |
18168 |
echo "We will use the C9X style." |
18169 |
;; |
18170 |
esac |
18171 |
fi |
18172 |
fi |
18173 |
|
18174 |
if $test X"$sPRId64" = X -a X"$quadtype" != X; then |
18175 |
$cat >try.c <<EOCP |
18176 |
#include <sys/types.h> |
18177 |
#include <stdio.h> |
18178 |
int main() { |
18179 |
$quadtype q = 12345678901; |
18180 |
printf("%Ld\n", q); |
18181 |
} |
18182 |
EOCP |
18183 |
set try |
18184 |
if eval $compile; then |
18185 |
yyy=`$run ./try` |
18186 |
case "$yyy" in |
18187 |
12345678901) |
18188 |
sPRId64='"Ld"'; sPRIi64='"Li"'; sPRIu64='"Lu"'; |
18189 |
sPRIo64='"Lo"'; sPRIx64='"Lx"'; sPRIXU64='"LX"'; |
18190 |
echo "We will use %Ld." |
18191 |
;; |
18192 |
esac |
18193 |
fi |
18194 |
fi |
18195 |
|
18196 |
if $test X"$sPRId64" = X -a X"$quadtype" = X"long long"; then |
18197 |
$cat >try.c <<'EOCP' |
18198 |
#include <sys/types.h> |
18199 |
#include <stdio.h> |
18200 |
int main() { |
18201 |
long long q = 12345678901LL; /* AIX cc requires the LL suffix. */ |
18202 |
printf("%lld\n", q); |
18203 |
} |
18204 |
EOCP |
18205 |
set try |
18206 |
if eval $compile; then |
18207 |
yyy=`$run ./try` |
18208 |
case "$yyy" in |
18209 |
12345678901) |
18210 |
sPRId64='"lld"'; sPRIi64='"lli"'; sPRIu64='"llu"'; |
18211 |
sPRIo64='"llo"'; sPRIx64='"llx"'; sPRIXU64='"llX"'; |
18212 |
echo "We will use the %lld style." |
18213 |
;; |
18214 |
esac |
18215 |
fi |
18216 |
fi |
18217 |
|
18218 |
if $test X"$sPRId64" = X -a X"$quadtype" != X; then |
18219 |
$cat >try.c <<EOCP |
18220 |
#include <sys/types.h> |
18221 |
#include <stdio.h> |
18222 |
int main() { |
18223 |
$quadtype q = 12345678901; |
18224 |
printf("%qd\n", q); |
18225 |
} |
18226 |
EOCP |
18227 |
set try |
18228 |
if eval $compile; then |
18229 |
yyy=`$run ./try` |
18230 |
case "$yyy" in |
18231 |
12345678901) |
18232 |
sPRId64='"qd"'; sPRIi64='"qi"'; sPRIu64='"qu"'; |
18233 |
sPRIo64='"qo"'; sPRIx64='"qx"'; sPRIXU64='"qX"'; |
18234 |
echo "We will use %qd." |
18235 |
;; |
18236 |
esac |
18237 |
fi |
18238 |
fi |
18239 |
|
18240 |
if $test X"$sPRId64" = X; then |
18241 |
echo "Cannot figure out how to print 64-bit integers." >&4 |
18242 |
fi |
18243 |
|
18244 |
$rm -f try try.* |
18245 |
|
18246 |
fi |
18247 |
|
18248 |
case "$sPRId64" in |
18249 |
'') d_PRId64="$undef"; d_PRIi64="$undef"; d_PRIu64="$undef"; |
18250 |
d_PRIo64="$undef"; d_PRIx64="$undef"; d_PRIXU64="$undef"; |
18251 |
;; |
18252 |
*) d_PRId64="$define"; d_PRIi64="$define"; d_PRIu64="$define"; |
18253 |
d_PRIo64="$define"; d_PRIx64="$define"; d_PRIXU64="$define"; |
18254 |
;; |
18255 |
esac |
18256 |
|
18257 |
|
18258 |
echo " " |
18259 |
$echo "Checking the format strings to be used for Perl's internal types..." >&4 |
18260 |
|
18261 |
if $test X"$ivsize" = X8; then |
18262 |
ivdformat="$sPRId64" |
18263 |
uvuformat="$sPRIu64" |
18264 |
uvoformat="$sPRIo64" |
18265 |
uvxformat="$sPRIx64" |
18266 |
uvXUformat="$sPRIXU64" |
18267 |
else |
18268 |
if $test X"$ivsize" = X"$longsize"; then |
18269 |
ivdformat='"ld"' |
18270 |
uvuformat='"lu"' |
18271 |
uvoformat='"lo"' |
18272 |
uvxformat='"lx"' |
18273 |
uvXUformat='"lX"' |
18274 |
else |
18275 |
if $test X"$ivsize" = X"$intsize"; then |
18276 |
ivdformat='"d"' |
18277 |
uvuformat='"u"' |
18278 |
uvoformat='"o"' |
18279 |
uvxformat='"x"' |
18280 |
uvXUformat='"X"' |
18281 |
else |
18282 |
: far out |
18283 |
if $test X"$ivsize" = X"$shortsize"; then |
18284 |
ivdformat='"hd"' |
18285 |
uvuformat='"hu"' |
18286 |
uvoformat='"ho"' |
18287 |
uvxformat='"hx"' |
18288 |
uvXUformat='"hX"' |
18289 |
fi |
18290 |
fi |
18291 |
fi |
18292 |
fi |
18293 |
|
18294 |
if $test X"$uselongdouble" = X"$define" -a X"$d_longdbl" = X"$define" -a X"$d_PRIgldbl" = X"$define"; then |
18295 |
nveformat="$sPRIeldbl" |
18296 |
nvfformat="$sPRIfldbl" |
18297 |
nvgformat="$sPRIgldbl" |
18298 |
nvEUformat="$sPRIEUldbl" |
18299 |
nvFUformat="$sPRIFUldbl" |
18300 |
nvGUformat="$sPRIGUldbl" |
18301 |
else |
18302 |
nveformat='"e"' |
18303 |
nvfformat='"f"' |
18304 |
nvgformat='"g"' |
18305 |
nvEUformat='"E"' |
18306 |
nvFUformat='"F"' |
18307 |
nvGUformat='"G"' |
18308 |
fi |
18309 |
|
18310 |
case "$ivdformat" in |
18311 |
'') echo "$0: Fatal: failed to find format strings, cannot continue." >&4 |
18312 |
exit 1 |
18313 |
;; |
18314 |
esac |
18315 |
|
18316 |
|
18317 |
echo " " |
18318 |
$echo "Checking the format string to be used for gids..." >&4 |
18319 |
|
18320 |
case "$gidsign" in |
18321 |
-1) if $test X"$gidsize" = X"$ivsize"; then |
18322 |
gidformat="$ivdformat" |
18323 |
else |
18324 |
if $test X"$gidsize" = X"$longsize"; then |
18325 |
gidformat='"ld"' |
18326 |
else |
18327 |
if $test X"$gidsize" = X"$intsize"; then |
18328 |
gidformat='"d"' |
18329 |
else |
18330 |
if $test X"$gidsize" = X"$shortsize"; then |
18331 |
gidformat='"hd"' |
18332 |
fi |
18333 |
fi |
18334 |
fi |
18335 |
fi |
18336 |
;; |
18337 |
*) if $test X"$gidsize" = X"$uvsize"; then |
18338 |
gidformat="$uvuformat" |
18339 |
else |
18340 |
if $test X"$gidsize" = X"$longsize"; then |
18341 |
gidformat='"lu"' |
18342 |
else |
18343 |
if $test X"$gidsize" = X"$intsize"; then |
18344 |
gidformat='"u"' |
18345 |
else |
18346 |
if $test X"$gidsize" = X"$shortsize"; then |
18347 |
gidformat='"hu"' |
18348 |
fi |
18349 |
fi |
18350 |
fi |
18351 |
fi |
18352 |
;; |
18353 |
esac |
18354 |
|
18355 |
: see if getgroups exists |
18356 |
set getgroups d_getgrps |
18357 |
eval $inlibc |
18358 |
|
18359 |
: see if setgroups exists |
18360 |
set setgroups d_setgrps |
18361 |
eval $inlibc |
18362 |
|
18363 |
|
18364 |
: Find type of 2nd arg to 'getgroups()' and 'setgroups()' |
18365 |
echo " " |
18366 |
case "$d_getgrps$d_setgrps" in |
18367 |
*define*) |
18368 |
case "$groupstype" in |
18369 |
'') dflt="$gidtype" ;; |
18370 |
*) dflt="$groupstype" ;; |
18371 |
esac |
18372 |
$cat <<EOM |
18373 |
What type of pointer is the second argument to getgroups() and setgroups()? |
18374 |
Usually this is the same as group ids, $gidtype, but not always. |
18375 |
|
18376 |
EOM |
18377 |
rp='What type pointer is the second argument to getgroups() and setgroups()?' |
18378 |
. ./myread |
18379 |
groupstype="$ans" |
18380 |
;; |
18381 |
*) groupstype="$gidtype";; |
18382 |
esac |
18383 |
|
18384 |
echo " " |
18385 |
echo "Checking if your $make program sets \$(MAKE)..." >&4 |
18386 |
case "$make_set_make" in |
18387 |
'') |
18388 |
$sed 's/^X //' > testmake.mak << 'EOF' |
18389 |
Xall: |
18390 |
X @echo 'maketemp="$(MAKE)"' |
18391 |
EOF |
18392 |
case "`$make -f testmake.mak 2>/dev/null`" in |
18393 |
*maketemp=*) make_set_make='#' ;; |
18394 |
*) make_set_make="MAKE=$make" ;; |
18395 |
esac |
18396 |
$rm -f testmake.mak |
18397 |
;; |
18398 |
esac |
18399 |
case "$make_set_make" in |
18400 |
'#') echo "Yup, it does.";; |
18401 |
*) echo "Nope, it doesn't.";; |
18402 |
esac |
18403 |
|
18404 |
: see what type is used for mode_t |
18405 |
rp="What is the type used for file modes for system calls (e.g. fchmod())?" |
18406 |
set mode_t modetype int stdio.h sys/types.h |
18407 |
eval $typedef_ask |
18408 |
|
18409 |
: see if stdarg is available |
18410 |
echo " " |
18411 |
if $test `./findhdr stdarg.h`; then |
18412 |
echo "<stdarg.h> found." >&4 |
18413 |
valstd="$define" |
18414 |
else |
18415 |
echo "<stdarg.h> NOT found." >&4 |
18416 |
valstd="$undef" |
18417 |
fi |
18418 |
|
18419 |
: see if varags is available |
18420 |
echo " " |
18421 |
if $test `./findhdr varargs.h`; then |
18422 |
echo "<varargs.h> found." >&4 |
18423 |
else |
18424 |
echo "<varargs.h> NOT found, but that's ok (I hope)." >&4 |
18425 |
fi |
18426 |
|
18427 |
: set up the varargs testing programs |
18428 |
$cat > varargs.c <<EOP |
18429 |
#ifdef I_STDARG |
18430 |
#include <stdarg.h> |
18431 |
#endif |
18432 |
#ifdef I_VARARGS |
18433 |
#include <varargs.h> |
18434 |
#endif |
18435 |
|
18436 |
#ifdef I_STDARG |
18437 |
int f(char *p, ...) |
18438 |
#else |
18439 |
int f(va_alist) |
18440 |
va_dcl |
18441 |
#endif |
18442 |
{ |
18443 |
va_list ap; |
18444 |
#ifndef I_STDARG |
18445 |
char *p; |
18446 |
#endif |
18447 |
#ifdef I_STDARG |
18448 |
va_start(ap,p); |
18449 |
#else |
18450 |
va_start(ap); |
18451 |
p = va_arg(ap, char *); |
18452 |
#endif |
18453 |
va_end(ap); |
18454 |
} |
18455 |
EOP |
18456 |
$cat > varargs <<EOP |
18457 |
$startsh |
18458 |
if $cc -c $ccflags -D\$1 varargs.c >/dev/null 2>&1; then |
18459 |
echo "true" |
18460 |
else |
18461 |
echo "false" |
18462 |
fi |
18463 |
$rm -f varargs$_o |
18464 |
EOP |
18465 |
chmod +x varargs |
18466 |
|
18467 |
: now check which varargs header should be included |
18468 |
echo " " |
18469 |
i_varhdr='' |
18470 |
case "$valstd" in |
18471 |
"$define") |
18472 |
if `./varargs I_STDARG`; then |
18473 |
val='stdarg.h' |
18474 |
elif `./varargs I_VARARGS`; then |
18475 |
val='varargs.h' |
18476 |
fi |
18477 |
;; |
18478 |
*) |
18479 |
if `./varargs I_VARARGS`; then |
18480 |
val='varargs.h' |
18481 |
fi |
18482 |
;; |
18483 |
esac |
18484 |
case "$val" in |
18485 |
'') |
18486 |
echo "I could not find the definition for va_dcl... You have problems..." >&4 |
18487 |
val="$undef"; set i_stdarg; eval $setvar |
18488 |
val="$undef"; set i_varargs; eval $setvar |
18489 |
;; |
18490 |
*) |
18491 |
set i_varhdr |
18492 |
eval $setvar |
18493 |
case "$i_varhdr" in |
18494 |
stdarg.h) |
18495 |
val="$define"; set i_stdarg; eval $setvar |
18496 |
val="$undef"; set i_varargs; eval $setvar |
18497 |
;; |
18498 |
varargs.h) |
18499 |
val="$undef"; set i_stdarg; eval $setvar |
18500 |
val="$define"; set i_varargs; eval $setvar |
18501 |
;; |
18502 |
esac |
18503 |
echo "We'll include <$i_varhdr> to get va_dcl definition." >&4;; |
18504 |
esac |
18505 |
$rm -f varargs* |
18506 |
|
18507 |
: see if we need va_copy |
18508 |
echo " " |
18509 |
case "$i_stdarg" in |
18510 |
"$define") |
18511 |
$cat >try.c <<EOCP |
18512 |
#include <stdarg.h> |
18513 |
#include <stdio.h> |
18514 |
#$i_stdlib I_STDLIB |
18515 |
#ifdef I_STDLIB |
18516 |
#include <stdlib.h> |
18517 |
#endif |
18518 |
#include <signal.h> |
18519 |
|
18520 |
int |
18521 |
ivfprintf(FILE *f, const char *fmt, va_list *valp) |
18522 |
{ |
18523 |
return vfprintf(f, fmt, *valp); |
18524 |
} |
18525 |
|
18526 |
int |
18527 |
myvfprintf(FILE *f, const char *fmt, va_list val) |
18528 |
{ |
18529 |
return ivfprintf(f, fmt, &val); |
18530 |
} |
18531 |
|
18532 |
int |
18533 |
myprintf(char *fmt, ...) |
18534 |
{ |
18535 |
va_list val; |
18536 |
va_start(val, fmt); |
18537 |
return myvfprintf(stdout, fmt, val); |
18538 |
} |
18539 |
|
18540 |
int |
18541 |
main(int ac, char **av) |
18542 |
{ |
18543 |
signal(SIGSEGV, exit); |
18544 |
|
18545 |
myprintf("%s%cs all right, then\n", "that", '\''); |
18546 |
exit(0); |
18547 |
} |
18548 |
EOCP |
18549 |
set try |
18550 |
if eval $compile && $run ./try 2>&1 >/dev/null; then |
18551 |
case "`$run ./try`" in |
18552 |
"that's all right, then") |
18553 |
okay=yes |
18554 |
;; |
18555 |
esac |
18556 |
fi |
18557 |
case "$okay" in |
18558 |
yes) echo "It seems that you don't need va_copy()." >&4 |
18559 |
need_va_copy="$undef" |
18560 |
;; |
18561 |
*) echo "It seems that va_copy() or similar will be needed." >&4 |
18562 |
need_va_copy="$define" |
18563 |
;; |
18564 |
esac |
18565 |
$rm -f try.* core core.* *.core *.core.* |
18566 |
;; |
18567 |
*) echo "You don't have <stdarg.h>, not checking for va_copy()." >&4 |
18568 |
;; |
18569 |
esac |
18570 |
|
18571 |
: see what type is used for size_t |
18572 |
rp="What is the type used for the length parameter for string functions?" |
18573 |
set size_t sizetype 'unsigned int' stdio.h sys/types.h |
18574 |
eval $typedef_ask |
18575 |
|
18576 |
: check for type of arguments to gethostbyaddr. |
18577 |
if test "X$netdb_host_type" = X -o "X$netdb_hlen_type" = X; then |
18578 |
case "$d_gethbyaddr" in |
18579 |
$define) |
18580 |
$cat <<EOM |
18581 |
|
18582 |
Checking to see what type of arguments are accepted by gethostbyaddr(). |
18583 |
EOM |
18584 |
hdrs="$define sys/types.h |
18585 |
$d_socket sys/socket.h |
18586 |
$i_niin netinet/in.h |
18587 |
$i_netdb netdb.h |
18588 |
$i_unistd unistd.h" |
18589 |
: The first arg can 'char *' or 'void *' |
18590 |
: The second arg is some of integral type |
18591 |
for xxx in in_addr_t 'const void *' 'const char *' 'void *' 'char *'; do |
18592 |
for yyy in size_t long int; do |
18593 |
case "$netdb_host_type" in |
18594 |
'') try="extern struct hostent *gethostbyaddr($xxx, $yyy, int);" |
18595 |
if ./protochk "$try" $hdrs; then |
18596 |
echo "Your system accepts $xxx for the first arg." |
18597 |
echo "...and $yyy for the second arg." |
18598 |
netdb_host_type="$xxx" |
18599 |
netdb_hlen_type="$yyy" |
18600 |
fi |
18601 |
;; |
18602 |
esac |
18603 |
done |
18604 |
done |
18605 |
: In case none of those worked, prompt the user. |
18606 |
case "$netdb_host_type" in |
18607 |
'') rp='What is the type for the 1st argument to gethostbyaddr?' |
18608 |
dflt='char *' |
18609 |
. ./myread |
18610 |
netdb_host_type=$ans |
18611 |
rp='What is the type for the 2nd argument to gethostbyaddr?' |
18612 |
dflt="$sizetype" |
18613 |
. ./myread |
18614 |
netdb_hlen_type=$ans |
18615 |
;; |
18616 |
esac |
18617 |
;; |
18618 |
*) : no gethostbyaddr, so pick harmless defaults |
18619 |
netdb_host_type='char *' |
18620 |
netdb_hlen_type="$sizetype" |
18621 |
;; |
18622 |
esac |
18623 |
# Remove the "const" if needed. -- but then we'll have a |
18624 |
# prototype clash! |
18625 |
# netdb_host_type=`echo "$netdb_host_type" | sed 's/^const //'` |
18626 |
fi |
18627 |
|
18628 |
: check for type of argument to gethostbyname. |
18629 |
if test "X$netdb_name_type" = X ; then |
18630 |
case "$d_gethbyname" in |
18631 |
$define) |
18632 |
$cat <<EOM |
18633 |
|
18634 |
Checking to see what type of argument is accepted by gethostbyname(). |
18635 |
EOM |
18636 |
hdrs="$define sys/types.h |
18637 |
$d_socket sys/socket.h |
18638 |
$i_niin netinet/in.h |
18639 |
$i_netdb netdb.h |
18640 |
$i_unistd unistd.h" |
18641 |
for xxx in "const char *" "char *"; do |
18642 |
case "$netdb_name_type" in |
18643 |
'') try="extern struct hostent *gethostbyname($xxx);" |
18644 |
if ./protochk "$try" $hdrs; then |
18645 |
echo "Your system accepts $xxx." |
18646 |
netdb_name_type="$xxx" |
18647 |
fi |
18648 |
;; |
18649 |
esac |
18650 |
done |
18651 |
: In case none of those worked, prompt the user. |
18652 |
case "$netdb_name_type" in |
18653 |
'') rp='What is the type for the 1st argument to gethostbyname?' |
18654 |
dflt='char *' |
18655 |
. ./myread |
18656 |
netdb_name_type=$ans |
18657 |
;; |
18658 |
esac |
18659 |
;; |
18660 |
*) : no gethostbyname, so pick harmless default |
18661 |
netdb_name_type='char *' |
18662 |
;; |
18663 |
esac |
18664 |
fi |
18665 |
|
18666 |
: check for type of 1st argument to getnetbyaddr. |
18667 |
if test "X$netdb_net_type" = X ; then |
18668 |
case "$d_getnbyaddr" in |
18669 |
$define) |
18670 |
$cat <<EOM |
18671 |
|
18672 |
Checking to see what type of 1st argument is accepted by getnetbyaddr(). |
18673 |
EOM |
18674 |
hdrs="$define sys/types.h |
18675 |
$d_socket sys/socket.h |
18676 |
$i_niin netinet/in.h |
18677 |
$i_netdb netdb.h |
18678 |
$i_unistd unistd.h" |
18679 |
for xxx in in_addr_t "unsigned long" long "unsigned int" int; do |
18680 |
case "$netdb_net_type" in |
18681 |
'') try="extern struct netent *getnetbyaddr($xxx, int);" |
18682 |
if ./protochk "$try" $hdrs; then |
18683 |
echo "Your system accepts $xxx." |
18684 |
netdb_net_type="$xxx" |
18685 |
fi |
18686 |
;; |
18687 |
esac |
18688 |
done |
18689 |
: In case none of those worked, prompt the user. |
18690 |
case "$netdb_net_type" in |
18691 |
'') rp='What is the type for the 1st argument to getnetbyaddr?' |
18692 |
dflt='long' |
18693 |
. ./myread |
18694 |
netdb_net_type=$ans |
18695 |
;; |
18696 |
esac |
18697 |
;; |
18698 |
*) : no getnetbyaddr, so pick harmless default |
18699 |
netdb_net_type='long' |
18700 |
;; |
18701 |
esac |
18702 |
fi |
18703 |
: locate the preferred pager for this system |
18704 |
fn=f/ |
18705 |
case "$pager" in |
18706 |
'') |
18707 |
dflt='' |
18708 |
case "$pg" in |
18709 |
/*) dflt=$pg;; |
18710 |
[a-zA-Z]:/*) dflt=$pg;; |
18711 |
esac |
18712 |
case "$more" in |
18713 |
/*) dflt=$more;; |
18714 |
[a-zA-Z]:/*) dflt=$more;; |
18715 |
esac |
18716 |
case "$less" in |
18717 |
/*) dflt=$less;; |
18718 |
[a-zA-Z]:/*) dflt=$less;; |
18719 |
esac |
18720 |
case "$dflt" in |
18721 |
'') dflt=/usr/ucb/more;; |
18722 |
esac |
18723 |
;; |
18724 |
*) dflt="$pager" |
18725 |
: Instruct ./getfile to trust the hinted or previous pager value, |
18726 |
: even if it does not begin with a slash. For example, on os2, |
18727 |
: pager might be cmd /c more. See comments in UU/getfile. |
18728 |
fn="f/($pager)" |
18729 |
;; |
18730 |
esac |
18731 |
echo " " |
18732 |
rp='What pager is used on your system?' |
18733 |
. ./getfile |
18734 |
pager="$ans" |
18735 |
|
18736 |
: see what type pids are declared as in the kernel |
18737 |
rp="What is the type of process ids on this system?" |
18738 |
set pid_t pidtype int stdio.h sys/types.h |
18739 |
eval $typedef_ask |
18740 |
|
18741 |
: see if ar generates random libraries by itself |
18742 |
echo " " |
18743 |
echo "Checking how to generate random libraries on your machine..." >&4 |
18744 |
echo 'int bar1() { return bar2(); }' > bar1.c |
18745 |
echo 'int bar2() { return 2; }' > bar2.c |
18746 |
$cat > foo.c <<EOP |
18747 |
#$i_stdlib I_STDLIB |
18748 |
#ifdef I_STDLIB |
18749 |
#include <stdlib.h> |
18750 |
#endif |
18751 |
int main() { printf("%d\n", bar1()); exit(0); } |
18752 |
EOP |
18753 |
$cc $ccflags -c bar1.c >/dev/null 2>&1 |
18754 |
$cc $ccflags -c bar2.c >/dev/null 2>&1 |
18755 |
$cc $ccflags -c foo.c >/dev/null 2>&1 |
18756 |
$ar rc bar$_a bar2$_o bar1$_o >/dev/null 2>&1 |
18757 |
if $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 && |
18758 |
$run ./foobar >/dev/null 2>&1; then |
18759 |
echo "$ar appears to generate random libraries itself." |
18760 |
orderlib=false |
18761 |
ranlib=":" |
18762 |
elif $ar ts bar$_a >/dev/null 2>&1 && |
18763 |
$cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 && |
18764 |
$run ./foobar >/dev/null 2>&1; then |
18765 |
echo "a table of contents needs to be added with '$ar ts'." |
18766 |
orderlib=false |
18767 |
ranlib="$ar ts" |
18768 |
else |
18769 |
case "$ranlib" in |
18770 |
:) ranlib='';; |
18771 |
'') |
18772 |
ranlib=`./loc ranlib X /usr/bin /bin /usr/local/bin` |
18773 |
$test -f $ranlib || ranlib='' |
18774 |
;; |
18775 |
esac |
18776 |
if $test -n "$ranlib"; then |
18777 |
echo "your system has '$ranlib'; we'll use that." |
18778 |
orderlib=false |
18779 |
else |
18780 |
echo "your system doesn't seem to support random libraries" |
18781 |
echo "so we'll use lorder and tsort to order the libraries." |
18782 |
orderlib=true |
18783 |
ranlib=":" |
18784 |
fi |
18785 |
fi |
18786 |
$rm -f foo* bar* |
18787 |
|
18788 |
: check for type of arguments to select. |
18789 |
case "$selecttype" in |
18790 |
'') case "$d_select" in |
18791 |
$define) |
18792 |
echo " " |
18793 |
$cat <<EOM |
18794 |
Checking to see what type of arguments are accepted by select(). |
18795 |
EOM |
18796 |
hdrs="$define sys/types.h |
18797 |
$i_systime sys/time.h |
18798 |
$i_sysselct sys/select.h |
18799 |
$d_socket sys/socket.h" |
18800 |
: The first arg can be int, unsigned, or size_t |
18801 |
: The last arg may or may not be 'const' |
18802 |
val='' |
18803 |
: void pointer has been seen but using that |
18804 |
: breaks the selectminbits test |
18805 |
for xxx in 'fd_set *' 'int *'; do |
18806 |
for nfd in 'int' 'size_t' 'unsigned long' 'unsigned' ; do |
18807 |
for tmo in 'struct timeval *' 'const struct timeval *'; do |
18808 |
case "$val" in |
18809 |
'') try="extern select _(($nfd, $xxx, $xxx, $xxx, $tmo));" |
18810 |
if ./protochk "$try" $hdrs; then |
18811 |
echo "Your system accepts $xxx." |
18812 |
val="$xxx" |
18813 |
fi |
18814 |
;; |
18815 |
esac |
18816 |
done |
18817 |
done |
18818 |
done |
18819 |
case "$val" in |
18820 |
'') rp='What is the type for the 2nd, 3rd, and 4th arguments to select?' |
18821 |
case "$d_fd_set" in |
18822 |
$define) dflt="fd_set *" ;; |
18823 |
*) dflt="int *" ;; |
18824 |
esac |
18825 |
. ./myread |
18826 |
val=$ans |
18827 |
;; |
18828 |
esac |
18829 |
selecttype="$val" |
18830 |
;; |
18831 |
*) : no select, so pick a harmless default |
18832 |
selecttype='int *' |
18833 |
;; |
18834 |
esac |
18835 |
;; |
18836 |
esac |
18837 |
|
18838 |
: check for the select 'width' |
18839 |
case "$selectminbits" in |
18840 |
'') safebits=`expr $ptrsize \* 8` |
18841 |
case "$d_select" in |
18842 |
$define) |
18843 |
$cat <<EOM |
18844 |
|
18845 |
Checking to see on how many bits at a time your select() operates... |
18846 |
EOM |
18847 |
$cat >try.c <<EOCP |
18848 |
#include <sys/types.h> |
18849 |
#$i_time I_TIME |
18850 |
#$i_systime I_SYS_TIME |
18851 |
#$i_systimek I_SYS_TIME_KERNEL |
18852 |
#ifdef I_TIME |
18853 |
# include <time.h> |
18854 |
#endif |
18855 |
#ifdef I_SYS_TIME |
18856 |
# ifdef I_SYS_TIME_KERNEL |
18857 |
# define KERNEL |
18858 |
# endif |
18859 |
# include <sys/time.h> |
18860 |
# ifdef I_SYS_TIME_KERNEL |
18861 |
# undef KERNEL |
18862 |
# endif |
18863 |
#endif |
18864 |
#$i_sysselct I_SYS_SELECT |
18865 |
#ifdef I_SYS_SELECT |
18866 |
#include <sys/select.h> |
18867 |
#endif |
18868 |
#$d_socket HAS_SOCKET |
18869 |
#ifdef HAS_SOCKET |
18870 |
# include <sys/socket.h> /* Might include <sys/bsdtypes.h> */ |
18871 |
#endif |
18872 |
#include <stdio.h> |
18873 |
#$i_stdlib I_STDLIB |
18874 |
#ifdef I_STDLIB |
18875 |
#include <stdlib.h> |
18876 |
#endif |
18877 |
$selecttype b; |
18878 |
#define S sizeof(*(b)) |
18879 |
#define MINBITS 64 |
18880 |
#define NBYTES (S * 8 > MINBITS ? S : MINBITS/8) |
18881 |
#define NBITS (NBYTES * 8) |
18882 |
int main() { |
18883 |
char *s = malloc(NBYTES); |
18884 |
struct timeval t; |
18885 |
int i; |
18886 |
FILE* fp; |
18887 |
int fd; |
18888 |
|
18889 |
if (!s) |
18890 |
exit(1); |
18891 |
fclose(stdin); |
18892 |
fp = fopen("try.c", "r"); |
18893 |
if (fp == 0) |
18894 |
exit(2); |
18895 |
fd = fileno(fp); |
18896 |
if (fd < 0) |
18897 |
exit(3); |
18898 |
b = ($selecttype)s; |
18899 |
for (i = 0; i < NBITS; i++) |
18900 |
FD_SET(i, b); |
18901 |
t.tv_sec = 0; |
18902 |
t.tv_usec = 0; |
18903 |
select(fd + 1, b, 0, 0, &t); |
18904 |
for (i = NBITS - 1; i > fd && FD_ISSET(i, b); i--); |
18905 |
free(s); |
18906 |
printf("%d\n", i + 1); |
18907 |
return 0; |
18908 |
} |
18909 |
EOCP |
18910 |
set try |
18911 |
if eval $compile_ok; then |
18912 |
selectminbits=`$run ./try` |
18913 |
case "$selectminbits" in |
18914 |
'') cat >&4 <<EOM |
18915 |
Cannot figure out on how many bits at a time your select() operates. |
18916 |
I'll play safe and guess it is $safebits bits. |
18917 |
EOM |
18918 |
selectminbits=$safebits |
18919 |
bits="$safebits bits" |
18920 |
;; |
18921 |
1) bits="1 bit" ;; |
18922 |
*) bits="$selectminbits bits" ;; |
18923 |
esac |
18924 |
echo "Your select() operates on $bits at a time." >&4 |
18925 |
else |
18926 |
rp='What is the minimum number of bits your select() operates on?' |
18927 |
case "$byteorder" in |
18928 |
12345678) dflt=64 ;; |
18929 |
1234) dflt=32 ;; |
18930 |
*) dflt=1 ;; |
18931 |
esac |
18932 |
. ./myread |
18933 |
val=$ans |
18934 |
selectminbits="$val" |
18935 |
fi |
18936 |
$rm -f try.* try |
18937 |
;; |
18938 |
*) : no select, so pick a harmless default |
18939 |
selectminbits=$safebits |
18940 |
;; |
18941 |
esac |
18942 |
;; |
18943 |
esac |
18944 |
|
18945 |
: Trace out the files included by signal.h, then look for SIGxxx names. |
18946 |
: Remove SIGARRAYSIZE used by HPUX. |
18947 |
: Remove SIGSTKSIZE used by Linux. |
18948 |
: Remove SIGSTKSZ used by Posix. |
18949 |
: Remove SIGTYP void lines used by OS2. |
18950 |
: Some cpps, like os390, dont give the file name anywhere |
18951 |
if [ "X$fieldn" = X ]; then |
18952 |
: Just make some guesses. We check them later. |
18953 |
xxx='/usr/include/signal.h /usr/include/sys/signal.h' |
18954 |
else |
18955 |
xxx=`echo '#include <signal.h>' | |
18956 |
$cppstdin $cppminus $cppflags 2>/dev/null | |
18957 |
$grep '^[ ]*#.*include' | |
18958 |
$awk "{print \\$$fieldn}" | $sed 's!"!!g' | $sed 's!\\\\\\\\!/!g' | $sort | $uniq` |
18959 |
fi |
18960 |
: Check this list of files to be sure we have parsed the cpp output ok. |
18961 |
: This will also avoid potentially non-existent files, such |
18962 |
: as ../foo/bar.h |
18963 |
xxxfiles='' |
18964 |
for xx in $xxx /dev/null ; do |
18965 |
$test -f "$xx" && xxxfiles="$xxxfiles $xx" |
18966 |
done |
18967 |
: If we have found no files, at least try signal.h |
18968 |
case "$xxxfiles" in |
18969 |
'') xxxfiles=`./findhdr signal.h` ;; |
18970 |
esac |
18971 |
xxx=`awk ' |
18972 |
$1 ~ /^#define$/ && $2 ~ /^SIG[A-Z0-9]*$/ && $2 !~ /SIGARRAYSIZE/ && $2 !~ /SIGSTKSIZE/ && $2 !~ /SIGSTKSZ/ && $3 !~ /void/ { |
18973 |
print substr($2, 4, 20) |
18974 |
} |
18975 |
$1 == "#" && $2 ~ /^define$/ && $3 ~ /^SIG[A-Z0-9]*$/ && $3 !~ /SIGARRAYSIZE/ && $4 !~ /void/ { |
18976 |
print substr($3, 4, 20) |
18977 |
}' $xxxfiles` |
18978 |
: Append some common names just in case the awk scan failed. |
18979 |
xxx="$xxx ABRT ALRM BUS CANCEL CHLD CLD CONT DIL EMT FPE" |
18980 |
xxx="$xxx FREEZE HUP ILL INT IO IOT KILL LOST LWP PHONE" |
18981 |
xxx="$xxx PIPE POLL PROF PWR QUIT RTMAX RTMIN SEGV STKFLT STOP" |
18982 |
xxx="$xxx SYS TERM THAW TRAP TSTP TTIN TTOU URG USR1 USR2" |
18983 |
xxx="$xxx USR3 USR4 VTALRM WAITING WINCH WIND WINDOW XCPU XFSZ" |
18984 |
|
18985 |
: generate a few handy files for later |
18986 |
$cat > signal.c <<EOCP |
18987 |
#include <sys/types.h> |
18988 |
#include <signal.h> |
18989 |
#$i_stdlib I_STDLIB |
18990 |
#ifdef I_STDLIB |
18991 |
#include <stdlib.h> |
18992 |
#endif |
18993 |
#include <stdio.h> |
18994 |
int main() { |
18995 |
|
18996 |
/* Strange style to avoid deeply-nested #if/#else/#endif */ |
18997 |
#ifndef NSIG |
18998 |
# ifdef _NSIG |
18999 |
# define NSIG (_NSIG) |
19000 |
# endif |
19001 |
#endif |
19002 |
|
19003 |
#ifndef NSIG |
19004 |
# ifdef SIGMAX |
19005 |
# define NSIG (SIGMAX+1) |
19006 |
# endif |
19007 |
#endif |
19008 |
|
19009 |
#ifndef NSIG |
19010 |
# ifdef SIG_MAX |
19011 |
# define NSIG (SIG_MAX+1) |
19012 |
# endif |
19013 |
#endif |
19014 |
|
19015 |
#ifndef NSIG |
19016 |
# ifdef MAXSIG |
19017 |
# define NSIG (MAXSIG+1) |
19018 |
# endif |
19019 |
#endif |
19020 |
|
19021 |
#ifndef NSIG |
19022 |
# ifdef MAX_SIG |
19023 |
# define NSIG (MAX_SIG+1) |
19024 |
# endif |
19025 |
#endif |
19026 |
|
19027 |
#ifndef NSIG |
19028 |
# ifdef SIGARRAYSIZE |
19029 |
# define NSIG (SIGARRAYSIZE+1) /* Not sure of the +1 */ |
19030 |
# endif |
19031 |
#endif |
19032 |
|
19033 |
#ifndef NSIG |
19034 |
# ifdef _sys_nsig |
19035 |
# define NSIG (_sys_nsig) /* Solaris 2.5 */ |
19036 |
# endif |
19037 |
#endif |
19038 |
|
19039 |
/* Default to some arbitrary number that's big enough to get most |
19040 |
of the common signals. |
19041 |
*/ |
19042 |
#ifndef NSIG |
19043 |
# define NSIG 50 |
19044 |
#endif |
19045 |
|
19046 |
printf("NSIG %d\n", NSIG); |
19047 |
|
19048 |
#ifndef JUST_NSIG |
19049 |
|
19050 |
EOCP |
19051 |
|
19052 |
echo $xxx | $tr ' ' $trnl | $sort | $uniq | $awk ' |
19053 |
{ |
19054 |
printf "#ifdef SIG"; printf $1; printf "\n" |
19055 |
printf "printf(\""; printf $1; printf " %%d\\n\",SIG"; |
19056 |
printf $1; printf ");\n" |
19057 |
printf "#endif\n" |
19058 |
} |
19059 |
END { |
19060 |
printf "#endif /* JUST_NSIG */\n"; |
19061 |
printf "exit(0);\n}\n"; |
19062 |
} |
19063 |
' >>signal.c |
19064 |
$cat >signal.awk <<'EOP' |
19065 |
BEGIN { ndups = 0 } |
19066 |
$1 ~ /^NSIG$/ { nsig = $2 } |
19067 |
($1 !~ /^NSIG$/) && (NF == 2) && ($2 ~ /^[0-9][0-9]*$/) { |
19068 |
if ($2 > maxsig) { maxsig = $2 } |
19069 |
if (sig_name[$2]) { |
19070 |
dup_name[ndups] = $1 |
19071 |
dup_num[ndups] = $2 |
19072 |
ndups++ |
19073 |
} |
19074 |
else { |
19075 |
sig_name[$2] = $1 |
19076 |
sig_num[$2] = $2 |
19077 |
} |
19078 |
} |
19079 |
END { |
19080 |
if (nsig == 0) { |
19081 |
nsig = maxsig + 1 |
19082 |
} |
19083 |
printf("NSIG %d\n", nsig); |
19084 |
for (n = 1; n < nsig; n++) { |
19085 |
if (sig_name[n]) { |
19086 |
printf("%s %d\n", sig_name[n], sig_num[n]) |
19087 |
} |
19088 |
else { |
19089 |
printf("NUM%d %d\n", n, n) |
19090 |
} |
19091 |
} |
19092 |
for (n = 0; n < ndups; n++) { |
19093 |
printf("%s %d\n", dup_name[n], dup_num[n]) |
19094 |
} |
19095 |
} |
19096 |
EOP |
19097 |
$cat >signal_cmd <<EOS |
19098 |
$startsh |
19099 |
if $test -s signal.lst; then |
19100 |
echo "Using your existing signal.lst file" |
19101 |
exit 0 |
19102 |
fi |
19103 |
xxx="$xxx" |
19104 |
EOS |
19105 |
$cat >>signal_cmd <<'EOS' |
19106 |
|
19107 |
set signal |
19108 |
if eval $compile_ok; then |
19109 |
$run ./signal$_exe | ($sort -n -k 2 2>/dev/null || $sort -n +1) | $uniq | $awk -f signal.awk >signal.lst |
19110 |
else |
19111 |
echo "(I can't seem be able to compile the whole test program)" >&4 |
19112 |
echo "(I'll try it in little pieces.)" >&4 |
19113 |
set signal -DJUST_NSIG |
19114 |
if eval $compile_ok; then |
19115 |
$run ./signal$_exe > signal.nsg |
19116 |
$cat signal.nsg |
19117 |
else |
19118 |
echo "I can't seem to figure out how many signals you have." >&4 |
19119 |
echo "Guessing 50." >&4 |
19120 |
echo 'NSIG 50' > signal.nsg |
19121 |
fi |
19122 |
: Now look at all the signal names, one at a time. |
19123 |
for xx in `echo $xxx | $tr ' ' $trnl | $sort | $uniq`; do |
19124 |
$cat > signal.c <<EOCP |
19125 |
#include <sys/types.h> |
19126 |
#include <signal.h> |
19127 |
#include <stdio.h> |
19128 |
int main() { |
19129 |
printf("$xx %d\n", SIG${xx}); |
19130 |
return 0; |
19131 |
} |
19132 |
EOCP |
19133 |
set signal |
19134 |
if eval $compile; then |
19135 |
echo "SIG${xx} found." |
19136 |
$run ./signal$_exe >> signal.ls1 |
19137 |
else |
19138 |
echo "SIG${xx} NOT found." |
19139 |
fi |
19140 |
done |
19141 |
if $test -s signal.ls1; then |
19142 |
$cat signal.nsg signal.ls1 | |
19143 |
$sort -n | $uniq | $awk -f signal.awk >signal.lst |
19144 |
fi |
19145 |
|
19146 |
fi |
19147 |
if $test -s signal.lst; then |
19148 |
: |
19149 |
else |
19150 |
echo "(AAK! I can't compile the test programs -- Guessing)" >&4 |
19151 |
echo 'kill -l' >signal |
19152 |
set X `csh -f <signal` |
19153 |
$rm -f signal |
19154 |
shift |
19155 |
case $# in |
19156 |
0) set HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM;; |
19157 |
esac |
19158 |
echo $@ | $tr ' ' $trnl | \ |
19159 |
$awk '{ printf "%s %d\n", $1, ++s; } |
19160 |
END { printf "NSIG %d\n", ++s }' >signal.lst |
19161 |
fi |
19162 |
$rm -f signal.c signal$_exe signal$_o signal.nsg signal.ls1 |
19163 |
EOS |
19164 |
chmod a+x signal_cmd |
19165 |
$eunicefix signal_cmd |
19166 |
|
19167 |
: generate list of signal names |
19168 |
echo " " |
19169 |
case "$sig_name_init" in |
19170 |
'') doinit=yes ;; |
19171 |
*) case "$sig_num_init" in |
19172 |
''|*,*) doinit=yes ;; |
19173 |
esac ;; |
19174 |
esac |
19175 |
case "$doinit" in |
19176 |
yes) |
19177 |
echo "Generating a list of signal names and numbers..." >&4 |
19178 |
. ./signal_cmd |
19179 |
sig_count=`$awk '/^NSIG/ { printf "%d", $2 }' signal.lst` |
19180 |
sig_name=`$awk 'BEGIN { printf "ZERO " } |
19181 |
!/^NSIG/ { printf "%s ", $1 }' signal.lst` |
19182 |
sig_num=`$awk 'BEGIN { printf "0 " } |
19183 |
!/^NSIG/ { printf "%d ", $2 }' signal.lst` |
19184 |
sig_name_init=`$awk 'BEGIN { printf "\"ZERO\", " } |
19185 |
!/^NSIG/ { printf "\"%s\", ", $1 } |
19186 |
END { printf "0\n" }' signal.lst` |
19187 |
sig_num_init=`$awk 'BEGIN { printf "0, " } |
19188 |
!/^NSIG/ { printf "%d, ", $2} |
19189 |
END { printf "0\n"}' signal.lst` |
19190 |
;; |
19191 |
esac |
19192 |
echo "The following $sig_count signals are available:" |
19193 |
echo " " |
19194 |
echo $sig_name | $awk \ |
19195 |
'BEGIN { linelen = 0 } |
19196 |
{ |
19197 |
for (i = 1; i <= NF; i++) { |
19198 |
name = "SIG" $i " " |
19199 |
linelen = linelen + length(name) |
19200 |
if (linelen > 70) { |
19201 |
printf "\n" |
19202 |
linelen = length(name) |
19203 |
} |
19204 |
printf "%s", name |
19205 |
} |
19206 |
printf "\n" |
19207 |
}' |
19208 |
sig_size=`echo $sig_name | awk '{print NF}'` |
19209 |
$rm -f signal signal.c signal.awk signal.lst signal_cmd |
19210 |
|
19211 |
echo " " |
19212 |
case "$sizetype" in |
19213 |
*_t) zzz="$sizetype" ;; |
19214 |
*) zzz="filesize" ;; |
19215 |
esac |
19216 |
echo "Checking the size of $zzz..." >&4 |
19217 |
cat > try.c <<EOCP |
19218 |
#include <sys/types.h> |
19219 |
#include <stdio.h> |
19220 |
#$i_stdlib I_STDLIB |
19221 |
#ifdef I_STDLIB |
19222 |
#include <stdlib.h> |
19223 |
#endif |
19224 |
int main() { |
19225 |
printf("%d\n", (int)sizeof($sizetype)); |
19226 |
exit(0); |
19227 |
} |
19228 |
EOCP |
19229 |
set try |
19230 |
if eval $compile_ok; then |
19231 |
yyy=`$run ./try` |
19232 |
case "$yyy" in |
19233 |
'') sizesize=4 |
19234 |
echo "(I can't execute the test program--guessing $sizesize.)" >&4 |
19235 |
;; |
19236 |
*) sizesize=$yyy |
19237 |
echo "Your $zzz size is $sizesize bytes." |
19238 |
;; |
19239 |
esac |
19240 |
else |
19241 |
sizesize=4 |
19242 |
echo "(I can't compile the test program--guessing $sizesize.)" >&4 |
19243 |
fi |
19244 |
|
19245 |
|
19246 |
: check for socklen_t |
19247 |
echo " " |
19248 |
echo "Checking to see if you have socklen_t..." >&4 |
19249 |
$cat >try.c <<EOCP |
19250 |
#include <sys/types.h> |
19251 |
#$d_socket HAS_SOCKET |
19252 |
#ifdef HAS_SOCKET |
19253 |
#include <sys/socket.h> |
19254 |
#endif |
19255 |
int main() { socklen_t x = 16; } |
19256 |
EOCP |
19257 |
set try |
19258 |
if eval $compile; then |
19259 |
val="$define" |
19260 |
echo "You have socklen_t." |
19261 |
else |
19262 |
val="$undef" |
19263 |
echo "You do not have socklen_t." |
19264 |
case "$sizetype" in |
19265 |
size_t) echo "(You do have size_t, that might work. Some people are happy with just an int.)" ;; |
19266 |
esac |
19267 |
fi |
19268 |
$rm -f try try.* |
19269 |
set d_socklen_t |
19270 |
eval $setvar |
19271 |
|
19272 |
: see if this is a socks.h system |
19273 |
set socks.h i_socks |
19274 |
eval $inhdr |
19275 |
|
19276 |
: check for type of the size argument to socket calls |
19277 |
case "$d_socket" in |
19278 |
"$define") |
19279 |
$cat <<EOM |
19280 |
|
19281 |
Checking to see what type is the last argument of accept(). |
19282 |
EOM |
19283 |
yyy='' |
19284 |
case "$d_socklen_t" in |
19285 |
"$define") yyy="$yyy socklen_t" |
19286 |
esac |
19287 |
yyy="$yyy $sizetype int long unsigned" |
19288 |
for xxx in $yyy; do |
19289 |
case "$socksizetype" in |
19290 |
'') try="extern int accept(int, struct sockaddr *, $xxx *);" |
19291 |
case "$usesocks" in |
19292 |
"$define") |
19293 |
if ./protochk "$try" $i_systypes sys/types.h $d_socket sys/socket.h literal '#define INCLUDE_PROTOTYPES' $i_socks socks.h.; then |
19294 |
echo "Your system accepts '$xxx *' for the last argument of accept()." |
19295 |
socksizetype="$xxx" |
19296 |
fi |
19297 |
;; |
19298 |
*) if ./protochk "$try" $i_systypes sys/types.h $d_socket sys/socket.h; then |
19299 |
echo "Your system accepts '$xxx *' for the last argument of accept()." |
19300 |
socksizetype="$xxx" |
19301 |
fi |
19302 |
;; |
19303 |
esac |
19304 |
;; |
19305 |
esac |
19306 |
done |
19307 |
: In case none of those worked, prompt the user. |
19308 |
case "$socksizetype" in |
19309 |
'') rp='What is the type for socket address structure sizes?' |
19310 |
dflt='int' |
19311 |
. ./myread |
19312 |
socksizetype=$ans |
19313 |
;; |
19314 |
esac |
19315 |
;; |
19316 |
*) : no sockets, so pick relatively harmless default |
19317 |
socksizetype='int' |
19318 |
;; |
19319 |
esac |
19320 |
|
19321 |
: see what type is used for signed size_t |
19322 |
set ssize_t ssizetype int stdio.h sys/types.h |
19323 |
eval $typedef |
19324 |
dflt="$ssizetype" |
19325 |
$cat > try.c <<EOM |
19326 |
#include <stdio.h> |
19327 |
#$i_stdlib I_STDLIB |
19328 |
#ifdef I_STDLIB |
19329 |
#include <stdlib.h> |
19330 |
#endif |
19331 |
#include <sys/types.h> |
19332 |
#define Size_t $sizetype |
19333 |
#define SSize_t $dflt |
19334 |
int main() |
19335 |
{ |
19336 |
if (sizeof(Size_t) == sizeof(SSize_t)) |
19337 |
printf("$dflt\n"); |
19338 |
else if (sizeof(Size_t) == sizeof(int)) |
19339 |
printf("int\n"); |
19340 |
else |
19341 |
printf("long\n"); |
19342 |
exit(0); |
19343 |
} |
19344 |
EOM |
19345 |
echo " " |
19346 |
set try |
19347 |
if eval $compile_ok && $run ./try > /dev/null; then |
19348 |
ssizetype=`$run ./try` |
19349 |
echo "I'll be using $ssizetype for functions returning a byte count." >&4 |
19350 |
else |
19351 |
$cat >&4 <<EOM |
19352 |
Help! I can't compile and run the ssize_t test program: please enlighten me! |
19353 |
(This is probably a misconfiguration in your system or libraries, and |
19354 |
you really ought to fix it. Still, I'll try anyway.) |
19355 |
|
19356 |
I need a type that is the same size as $sizetype, but is guaranteed to |
19357 |
be signed. Common values are ssize_t, int and long. |
19358 |
|
19359 |
EOM |
19360 |
rp="What signed type is the same size as $sizetype?" |
19361 |
. ./myread |
19362 |
ssizetype="$ans" |
19363 |
fi |
19364 |
$rm -f try try.* |
19365 |
|
19366 |
: see what type of char stdio uses. |
19367 |
echo " " |
19368 |
echo '#include <stdio.h>' | $cppstdin $cppminus > stdioh |
19369 |
if $contains 'unsigned.*char.*_ptr;' stdioh >/dev/null 2>&1 ; then |
19370 |
echo "Your stdio uses unsigned chars." >&4 |
19371 |
stdchar="unsigned char" |
19372 |
else |
19373 |
echo "Your stdio uses signed chars." >&4 |
19374 |
stdchar="char" |
19375 |
fi |
19376 |
$rm -f stdioh |
19377 |
|
19378 |
|
19379 |
|
19380 |
: see what type uids are declared as in the kernel |
19381 |
echo " " |
19382 |
echo "Looking for the type for user ids returned by getuid()." |
19383 |
set uid_t uidtype xxx stdio.h sys/types.h |
19384 |
eval $typedef |
19385 |
case "$uidtype" in |
19386 |
xxx) |
19387 |
xxx=`./findhdr sys/user.h` |
19388 |
set `grep '_ruid;' "$xxx" 2>/dev/null` unsigned short |
19389 |
case $1 in |
19390 |
unsigned) dflt="$1 $2" ;; |
19391 |
*) dflt="$1" ;; |
19392 |
esac |
19393 |
;; |
19394 |
*) dflt="$uidtype";; |
19395 |
esac |
19396 |
case "$uidtype" in |
19397 |
uid_t) echo "uid_t found." ;; |
19398 |
*) rp="What is the type for user ids returned by getuid()?" |
19399 |
. ./myread |
19400 |
uidtype="$ans" |
19401 |
;; |
19402 |
esac |
19403 |
|
19404 |
echo " " |
19405 |
case "$uidtype" in |
19406 |
*_t) zzz="$uidtype" ;; |
19407 |
*) zzz="uid" ;; |
19408 |
esac |
19409 |
echo "Checking the size of $zzz..." >&4 |
19410 |
cat > try.c <<EOCP |
19411 |
#include <sys/types.h> |
19412 |
#include <stdio.h> |
19413 |
#$i_stdlib I_STDLIB |
19414 |
#ifdef I_STDLIB |
19415 |
#include <stdlib.h> |
19416 |
#endif |
19417 |
int main() { |
19418 |
printf("%d\n", (int)sizeof($uidtype)); |
19419 |
exit(0); |
19420 |
} |
19421 |
EOCP |
19422 |
set try |
19423 |
if eval $compile_ok; then |
19424 |
yyy=`$run ./try` |
19425 |
case "$yyy" in |
19426 |
'') uidsize=4 |
19427 |
echo "(I can't execute the test program--guessing $uidsize.)" >&4 |
19428 |
;; |
19429 |
*) uidsize=$yyy |
19430 |
echo "Your $zzz is $uidsize bytes long." |
19431 |
;; |
19432 |
esac |
19433 |
else |
19434 |
uidsize=4 |
19435 |
echo "(I can't compile the test program--guessing $uidsize.)" >&4 |
19436 |
fi |
19437 |
|
19438 |
echo " " |
19439 |
case "$uidtype" in |
19440 |
*_t) zzz="$uidtype" ;; |
19441 |
*) zzz="uid" ;; |
19442 |
esac |
19443 |
echo "Checking the sign of $zzz..." >&4 |
19444 |
cat > try.c <<EOCP |
19445 |
#include <sys/types.h> |
19446 |
#include <stdio.h> |
19447 |
int main() { |
19448 |
$uidtype foo = -1; |
19449 |
if (foo < 0) |
19450 |
printf("-1\n"); |
19451 |
else |
19452 |
printf("1\n"); |
19453 |
} |
19454 |
EOCP |
19455 |
set try |
19456 |
if eval $compile; then |
19457 |
yyy=`$run ./try` |
19458 |
case "$yyy" in |
19459 |
'') uidsign=1 |
19460 |
echo "(I can't execute the test program--guessing unsigned.)" >&4 |
19461 |
;; |
19462 |
*) uidsign=$yyy |
19463 |
case "$uidsign" in |
19464 |
1) echo "Your $zzz is unsigned." ;; |
19465 |
-1) echo "Your $zzz is signed." ;; |
19466 |
esac |
19467 |
;; |
19468 |
esac |
19469 |
else |
19470 |
uidsign=1 |
19471 |
echo "(I can't compile the test program--guessing unsigned.)" >&4 |
19472 |
fi |
19473 |
|
19474 |
|
19475 |
|
19476 |
echo " " |
19477 |
$echo "Checking the format string to be used for uids..." >&4 |
19478 |
|
19479 |
case "$uidsign" in |
19480 |
-1) if $test X"$uidsize" = X"$ivsize"; then |
19481 |
uidformat="$ivdformat" |
19482 |
else |
19483 |
if $test X"$uidsize" = X"$longsize"; then |
19484 |
uidformat='"ld"' |
19485 |
else |
19486 |
if $test X"$uidsize" = X"$intsize"; then |
19487 |
uidformat='"d"' |
19488 |
else |
19489 |
if $test X"$uidsize" = X"$shortsize"; then |
19490 |
uidformat='"hd"' |
19491 |
fi |
19492 |
fi |
19493 |
fi |
19494 |
fi |
19495 |
;; |
19496 |
*) if $test X"$uidsize" = X"$uvsize"; then |
19497 |
uidformat="$uvuformat" |
19498 |
else |
19499 |
if $test X"$uidsize" = X"$longsize"; then |
19500 |
uidformat='"lu"' |
19501 |
else |
19502 |
if $test X"$uidsize" = X"$intsize"; then |
19503 |
uidformat='"u"' |
19504 |
else |
19505 |
if $test X"$uidsize" = X"$shortsize"; then |
19506 |
uidformat='"hu"' |
19507 |
fi |
19508 |
fi |
19509 |
fi |
19510 |
fi |
19511 |
;; |
19512 |
esac |
19513 |
|
19514 |
|
19515 |
case "$usesitecustomize" in |
19516 |
$define|true|[Yy]*) |
19517 |
usesitecustomize="$define" |
19518 |
;; |
19519 |
*) |
19520 |
usesitecustomize="$undef" |
19521 |
;; |
19522 |
esac |
19523 |
|
19524 |
: determine compiler compiler |
19525 |
case "$yacc" in |
19526 |
'') |
19527 |
dflt=yacc;; |
19528 |
*) |
19529 |
dflt="$yacc";; |
19530 |
esac |
19531 |
echo " " |
19532 |
comp='yacc' |
19533 |
if $test -f "$byacc$_exe"; then |
19534 |
dflt="$byacc" |
19535 |
comp="byacc or $comp" |
19536 |
fi |
19537 |
if $test -f "$bison$_exe"; then |
19538 |
comp="$comp or bison -y" |
19539 |
fi |
19540 |
rp="Which compiler compiler ($comp) shall I use?" |
19541 |
. ./myread |
19542 |
yacc="$ans" |
19543 |
case "$yacc" in |
19544 |
*bis*) |
19545 |
case "$yacc" in |
19546 |
*-y*) ;; |
19547 |
*) |
19548 |
yacc="$yacc -y" |
19549 |
echo "(Adding -y option to bison to get yacc-compatible behaviour.)" |
19550 |
;; |
19551 |
esac |
19552 |
;; |
19553 |
esac |
19554 |
|
19555 |
: see if this is a fp.h system |
19556 |
set fp.h i_fp |
19557 |
eval $inhdr |
19558 |
|
19559 |
: see if this is a fp_class.h system |
19560 |
set fp_class.h i_fp_class |
19561 |
eval $inhdr |
19562 |
|
19563 |
: see if this is a ieeefp.h system |
19564 |
case "$i_ieeefp" in |
19565 |
'' ) set ieeefp.h i_ieeefp |
19566 |
eval $inhdr |
19567 |
;; |
19568 |
esac |
19569 |
|
19570 |
: see if this is a libutil.h system |
19571 |
set libutil.h i_libutil |
19572 |
eval $inhdr |
19573 |
|
19574 |
: see if mach cthreads are available |
19575 |
if test "X$usethreads" = "X$define"; then |
19576 |
set mach/cthreads.h i_machcthr |
19577 |
eval $inhdr |
19578 |
else |
19579 |
i_machcthr="$undef" |
19580 |
fi |
19581 |
|
19582 |
|
19583 |
|
19584 |
: see if this is a mntent.h system |
19585 |
set mntent.h i_mntent |
19586 |
eval $inhdr |
19587 |
|
19588 |
: see if ndbm.h is available |
19589 |
set ndbm.h t_ndbm |
19590 |
eval $inhdr |
19591 |
|
19592 |
case "$t_ndbm" in |
19593 |
$undef) |
19594 |
# Some Linux distributions such as RedHat 7.1 put the |
19595 |
# ndbm.h header in /usr/include/gdbm/ndbm.h. |
19596 |
if $test -f /usr/include/gdbm/ndbm.h; then |
19597 |
echo '<gdbm/ndbm.h> found.' |
19598 |
ccflags="$ccflags -I/usr/include/gdbm" |
19599 |
cppflags="$cppflags -I/usr/include/gdbm" |
19600 |
t_ndbm=$define |
19601 |
fi |
19602 |
;; |
19603 |
esac |
19604 |
|
19605 |
case "$t_ndbm" in |
19606 |
$define) |
19607 |
: see if dbm_open exists |
19608 |
set dbm_open d_dbm_open |
19609 |
eval $inlibc |
19610 |
case "$d_dbm_open" in |
19611 |
$undef) |
19612 |
t_ndbm="$undef" |
19613 |
echo "We won't be including <ndbm.h>" |
19614 |
;; |
19615 |
esac |
19616 |
;; |
19617 |
esac |
19618 |
val="$t_ndbm" |
19619 |
set i_ndbm |
19620 |
eval $setvar |
19621 |
|
19622 |
: see if net/errno.h is available |
19623 |
val='' |
19624 |
set net/errno.h val |
19625 |
eval $inhdr |
19626 |
|
19627 |
: Unfortunately, it causes problems on some systems. Arrgh. |
19628 |
case "$val" in |
19629 |
$define) |
19630 |
cat > try.c <<'EOM' |
19631 |
#include <stdio.h> |
19632 |
#include <errno.h> |
19633 |
#include <net/errno.h> |
19634 |
int func() |
19635 |
{ |
19636 |
return ENOTSOCK; |
19637 |
} |
19638 |
EOM |
19639 |
if $cc $ccflags -c try.c >/dev/null 2>&1; then |
19640 |
echo "We'll be including <net/errno.h>." >&4 |
19641 |
else |
19642 |
echo "We won't be including <net/errno.h>." >&4 |
19643 |
val="$undef" |
19644 |
fi |
19645 |
$rm -f try.* try |
19646 |
;; |
19647 |
esac |
19648 |
set i_neterrno |
19649 |
eval $setvar |
19650 |
|
19651 |
: see if netinet/tcp.h is available |
19652 |
set netinet/tcp.h i_netinettcp |
19653 |
eval $inhdr |
19654 |
|
19655 |
: see if this is a poll.h system |
19656 |
set poll.h i_poll |
19657 |
eval $inhdr |
19658 |
|
19659 |
: see if this is a prot.h system |
19660 |
set prot.h i_prot |
19661 |
eval $inhdr |
19662 |
|
19663 |
echo " " |
19664 |
$echo "Guessing which symbols your C compiler and preprocessor define..." >&4 |
19665 |
$cat <<'EOSH' > Cppsym.know |
19666 |
a29k ABI64 aegis AES_SOURCE AIX AIX32 AIX370 |
19667 |
AIX41 AIX42 AIX43 AIX_SOURCE aixpc ALL_SOURCE |
19668 |
alliant alpha am29000 AM29000 AMD64 amiga AMIGAOS AMIX |
19669 |
ansi ANSI_C_SOURCE apollo ardent ARM32 atarist att386 att3b |
19670 |
BeOS BIG_ENDIAN BIT_MSF bsd BSD bsd43 bsd4_2 bsd4_3 BSD4_3 bsd4_4 |
19671 |
BSD_4_3 BSD_4_4 BSD_NET2 BSD_TIME BSD_TYPES BSDCOMPAT bsdi |
19672 |
bull c cadmus clipper CMU COFF COMPILER_VERSION |
19673 |
concurrent convex cpu cray CRAY CRAYMPP ctix CX_UX |
19674 |
CYGWIN DGUX DGUX_SOURCE DJGPP dmert DOLPHIN DPX2 DSO |
19675 |
Dynix DynixPTX ELF encore EPI EXTENSIONS FAVOR_BSD |
19676 |
FILE_OFFSET_BITS FreeBSD GCC_NEW_VARARGS gcos gcx gimpel |
19677 |
GLIBC GLIBC_MINOR |
19678 |
GNU_SOURCE GNUC GNUC_MINOR GNU_LIBRARY GO32 gould GOULD_PN |
19679 |
H3050R H3050RX hbullx20 hcx host_mips |
19680 |
hp200 hp300 hp700 HP700 hp800 hp9000 |
19681 |
hp9000s200 hp9000s300 hp9000s400 hp9000s500 |
19682 |
hp9000s700 hp9000s800 hp9k8 hp_osf hppa hpux HPUX_SOURCE |
19683 |
i186 i286 i386 i486 i586 i686 i8086 i80960 i860 I960 |
19684 |
IA64 iAPX286 ibm ibm032 ibmesa IBMR2 ibmrt ILP32 ILP64 |
19685 |
INLINE_INTRINSICS INTRINSICS INT64 interdata is68k ksr1 |
19686 |
LANGUAGE_C LARGE_FILE_API LARGEFILE64_SOURCE |
19687 |
LARGEFILE_SOURCE LFS64_LARGEFILE LFS_LARGEFILE |
19688 |
Linux LITTLE_ENDIAN LONG64 LONG_DOUBLE LONG_LONG |
19689 |
LONGDOUBLE LONGLONG LP64 luna luna88k Lynx |
19690 |
M68000 m68k m88100 m88k M88KBCS_TARGET M_COFF |
19691 |
M_I186 M_I286 M_I386 M_I8086 M_I86 M_I86SM M_SYS3 |
19692 |
M_SYS5 M_SYSIII M_SYSV M_UNIX M_XENIX MACH machine MachTen |
19693 |
MATH_HAS_NO_SIDE_EFFECTS |
19694 |
mc300 mc500 mc68000 mc68010 mc68020 mc68030 mc68040 |
19695 |
mc68060 mc68k mc68k32 mc700 mc88000 mc88100 merlin |
19696 |
mert MiNT mips MIPS_FPSET MIPS_ISA MIPS_SIM MIPS_SZINT |
19697 |
MIPS_SZLONG MIPS_SZPTR MIPSEB MIPSEL MODERN_C motorola |
19698 |
mpeix MSDOS MTXINU MULTIMAX mvs MVS n16 ncl_el ncl_mr |
19699 |
NetBSD news1500 news1700 news1800 news1900 news3700 |
19700 |
news700 news800 news900 NeXT NLS nonstopux ns16000 ns32000 |
19701 |
ns32016 ns32332 ns32k nsc32000 |
19702 |
OCS88 OEMVS OpenBSD os OS2 OS390 osf OSF1 OSF_SOURCE |
19703 |
pa_risc PA_RISC1_1 PA_RISC2_0 PARAGON parisc |
19704 |
pc532 pdp11 PGC PIC plexus PORTAR posix |
19705 |
POSIX1B_SOURCE POSIX2_SOURCE POSIX4_SOURCE |
19706 |
POSIX_C_SOURCE POSIX_SOURCE POWER |
19707 |
PROTOTYPES PWB pyr QNX R3000 REENTRANT RES Rhapsody RISC6000 |
19708 |
riscix riscos RT S390 SA110 scs SCO sequent sgi SGI_SOURCE SH3 sinix |
19709 |
SIZE_INT SIZE_LONG SIZE_PTR SOCKET_SOURCE SOCKETS_SOURCE |
19710 |
sony sony_news sonyrisc sparc sparclite spectrum |
19711 |
stardent stdc STDC_EXT stratos sun sun3 sun386 |
19712 |
Sun386i svr3 svr4 SVR4_2 SVR4_SOURCE svr5 |
19713 |
SX system SYSTYPE_BSD SYSTYPE_BSD43 SYSTYPE_BSD44 |
19714 |
SYSTYPE_SVR4 SYSTYPE_SVR5 SYSTYPE_SYSV SYSV SYSV3 SYSV4 SYSV5 |
19715 |
sysV68 sysV88 Tek4132 Tek4300 titan |
19716 |
TM3200 TM5400 TM5600 |
19717 |
tower tower32 tower32_200 tower32_600 tower32_700 |
19718 |
tower32_800 tower32_850 tss |
19719 |
u370 u3b u3b2 u3b20 u3b200 u3b20d u3b5 |
19720 |
ultrix UMAXV UnicomPBB UnicomPBD UNICOS UNICOSMK |
19721 |
unix UNIX95 UNIX99 unixpc unos |
19722 |
USE_BSD USE_FILE_OFFSET64 USE_GNU USE_ISOC9X USE_LARGEFILE USE_LARGEFILE64 |
19723 |
USE_MISC USE_POSIX USE_POSIX199309 USE_POSIX199506 USE_POSIX2 |
19724 |
USE_REENTRANT USE_SVID USE_UNIX98 USE_XOPEN USE_XOPEN_EXTENDED |
19725 |
USGr4 USGr4_2 |
19726 |
Utek UTek UTS UWIN uxpm uxps vax venix VMESA vms xenix Xenix286 |
19727 |
XOPEN_SOURCE XOPEN_SOURCE_EXTENDED XPG2 XPG2_EXTENDED |
19728 |
XPG3 XPG3_EXTENDED XPG4 XPG4_EXTENDED |
19729 |
z8000 |
19730 |
EOSH |
19731 |
# Maybe put other stuff here too. |
19732 |
cat <<EOSH >>Cppsym.know |
19733 |
$osname |
19734 |
EOSH |
19735 |
./tr '[a-z]' '[A-Z]' < Cppsym.know > Cppsym.a |
19736 |
./tr '[A-Z]' '[a-z]' < Cppsym.know > Cppsym.b |
19737 |
$cat Cppsym.know > Cppsym.c |
19738 |
$cat Cppsym.a Cppsym.b Cppsym.c | $tr ' ' $trnl | $sort | $uniq > Cppsym.know |
19739 |
$rm -f Cppsym.a Cppsym.b Cppsym.c |
19740 |
cat <<EOSH > Cppsym |
19741 |
$startsh |
19742 |
if $test \$# -gt 0; then |
19743 |
echo \$* | $tr " " "$trnl" | ./Cppsym.try > Cppsym.got |
19744 |
if $test -s Cppsym.got; then |
19745 |
$rm -f Cppsym.got |
19746 |
exit 0 |
19747 |
fi |
19748 |
$rm -f Cppsym.got |
19749 |
exit 1 |
19750 |
else |
19751 |
$tr " " "$trnl" | ./Cppsym.try |
19752 |
exit 0 |
19753 |
fi |
19754 |
EOSH |
19755 |
chmod +x Cppsym |
19756 |
$eunicefix Cppsym |
19757 |
cat <<EOSH > Cppsym.try |
19758 |
$startsh |
19759 |
cat <<'EOCP' > try.c |
19760 |
#include <stdio.h> |
19761 |
int main() { |
19762 |
EOCP |
19763 |
$awk \\ |
19764 |
EOSH |
19765 |
cat <<'EOSH' >> Cppsym.try |
19766 |
'length($1) > 0 { |
19767 |
printf "#ifdef %s\n#if %s+0\nprintf(\"%s=%%ld\\n\", (long)%s);\n#else\nprintf(\"%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1 |
19768 |
printf "#ifdef _%s\n#if _%s+0\nprintf(\"_%s=%%ld\\n\", (long)_%s);\n#else\nprintf(\"_%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1 |
19769 |
printf "#ifdef __%s\n#if __%s+0\nprintf(\"__%s=%%ld\\n\", (long)__%s);\n#else\nprintf(\"__%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1 |
19770 |
printf "#ifdef __%s__\n#if __%s__+0\nprintf(\"__%s__=%%ld\\n\", (long)__%s__);\n#else\nprintf(\"__%s__\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1 |
19771 |
}' >> try.c |
19772 |
echo 'return 0;}' >> try.c |
19773 |
EOSH |
19774 |
cat <<EOSH >> Cppsym.try |
19775 |
ccflags="$ccflags" |
19776 |
case "$osname-$gccversion" in |
19777 |
irix-) ccflags="\$ccflags -woff 1178" ;; |
19778 |
os2-*) ccflags="\$ccflags -Zlinker /PM:VIO" ;; |
19779 |
esac |
19780 |
$cc -o try $optimize \$ccflags $ldflags try.c $libs && $run ./try |
19781 |
EOSH |
19782 |
chmod +x Cppsym.try |
19783 |
$eunicefix Cppsym.try |
19784 |
./Cppsym < Cppsym.know > Cppsym.true |
19785 |
: now check the C compiler for additional symbols |
19786 |
postprocess_cc_v='' |
19787 |
case "$osname" in |
19788 |
aix) postprocess_cc_v="|$tr , ' '" ;; |
19789 |
esac |
19790 |
$cat >ccsym <<EOS |
19791 |
$startsh |
19792 |
$cat >tmp.c <<EOF |
19793 |
extern int foo; |
19794 |
EOF |
19795 |
for i in \`$cc -v -c tmp.c 2>&1 $postprocess_cc_v\` |
19796 |
do |
19797 |
case "\$i" in |
19798 |
-D*) echo "\$i" | $sed 's/^-D//';; |
19799 |
-A*) $test "$gccversion" && echo "\$i" | $sed 's/^-A//' | $sed 's/\(.*\)(\(.*\))/\1=\2/';; |
19800 |
esac |
19801 |
done |
19802 |
$rm -f try.c |
19803 |
EOS |
19804 |
postprocess_cc_v='' |
19805 |
chmod +x ccsym |
19806 |
$eunicefix ccsym |
19807 |
./ccsym > ccsym1.raw |
19808 |
if $test -s ccsym1.raw; then |
19809 |
$sort ccsym1.raw | $uniq >ccsym.raw |
19810 |
else |
19811 |
mv ccsym1.raw ccsym.raw |
19812 |
fi |
19813 |
|
19814 |
$awk '/\=/ { print $0; next } |
19815 |
{ print $0"=1" }' ccsym.raw >ccsym.list |
19816 |
$awk '/\=/ { print $0; next } |
19817 |
{ print $0"=1" }' Cppsym.true >ccsym.true |
19818 |
$comm -13 ccsym.true ccsym.list >ccsym.own |
19819 |
$comm -12 ccsym.true ccsym.list >ccsym.com |
19820 |
$comm -23 ccsym.true ccsym.list >ccsym.cpp |
19821 |
also='' |
19822 |
if $test -z ccsym.raw; then |
19823 |
echo "Your C compiler doesn't seem to define any symbols!" >&4 |
19824 |
echo " " |
19825 |
echo "However, your C preprocessor defines the following symbols:" |
19826 |
$cat Cppsym.true |
19827 |
ccsymbols='' |
19828 |
cppsymbols=`$cat Cppsym.true` |
19829 |
cppsymbols=`echo $cppsymbols` |
19830 |
cppccsymbols="$cppsymbols" |
19831 |
else |
19832 |
if $test -s ccsym.com; then |
19833 |
echo "Your C compiler and pre-processor define these symbols:" |
19834 |
$sed -e 's/\(..*\)=.*/\1/' ccsym.com |
19835 |
also='also ' |
19836 |
symbols='ones' |
19837 |
cppccsymbols=`$cat ccsym.com` |
19838 |
cppccsymbols=`echo $cppccsymbols` |
19839 |
$test "$silent" || sleep 1 |
19840 |
fi |
19841 |
if $test -s ccsym.cpp; then |
19842 |
$test "$also" && echo " " |
19843 |
echo "Your C pre-processor ${also}defines the following symbols:" |
19844 |
$sed -e 's/\(..*\)=.*/\1/' ccsym.cpp |
19845 |
also='further ' |
19846 |
cppsymbols=`$cat ccsym.cpp` |
19847 |
cppsymbols=`echo $cppsymbols` |
19848 |
$test "$silent" || sleep 1 |
19849 |
fi |
19850 |
if $test -s ccsym.own; then |
19851 |
$test "$also" && echo " " |
19852 |
echo "Your C compiler ${also}defines the following cpp symbols:" |
19853 |
$sed -e 's/\(..*\)=1/\1/' ccsym.own |
19854 |
$sed -e 's/\(..*\)=.*/\1/' ccsym.own | $uniq >>Cppsym.true |
19855 |
ccsymbols=`$cat ccsym.own` |
19856 |
ccsymbols=`echo $ccsymbols` |
19857 |
$test "$silent" || sleep 1 |
19858 |
fi |
19859 |
fi |
19860 |
|
19861 |
: see if this is a termio system |
19862 |
val="$undef" |
19863 |
val2="$undef" |
19864 |
val3="$undef" |
19865 |
if $test `./findhdr termios.h`; then |
19866 |
set tcsetattr i_termios |
19867 |
eval $inlibc |
19868 |
val3="$i_termios" |
19869 |
fi |
19870 |
echo " " |
19871 |
case "$val3" in |
19872 |
"$define") echo "You have POSIX termios.h... good!" >&4;; |
19873 |
*) if ./Cppsym pyr; then |
19874 |
case "`/bin/universe`" in |
19875 |
ucb) if $test `./findhdr sgtty.h`; then |
19876 |
val2="$define" |
19877 |
echo "<sgtty.h> found." >&4 |
19878 |
else |
19879 |
echo "System is pyramid with BSD universe." |
19880 |
echo "<sgtty.h> not found--you could have problems." >&4 |
19881 |
fi;; |
19882 |
*) if $test `./findhdr termio.h`; then |
19883 |
val="$define" |
19884 |
echo "<termio.h> found." >&4 |
19885 |
else |
19886 |
echo "System is pyramid with USG universe." |
19887 |
echo "<termio.h> not found--you could have problems." >&4 |
19888 |
fi;; |
19889 |
esac |
19890 |
elif ./usg; then |
19891 |
if $test `./findhdr termio.h`; then |
19892 |
echo "<termio.h> found." >&4 |
19893 |
val="$define" |
19894 |
elif $test `./findhdr sgtty.h`; then |
19895 |
echo "<sgtty.h> found." >&4 |
19896 |
val2="$define" |
19897 |
else |
19898 |
echo "Neither <termio.h> nor <sgtty.h> found--you could have problems." >&4 |
19899 |
fi |
19900 |
else |
19901 |
if $test `./findhdr sgtty.h`; then |
19902 |
echo "<sgtty.h> found." >&4 |
19903 |
val2="$define" |
19904 |
elif $test `./findhdr termio.h`; then |
19905 |
echo "<termio.h> found." >&4 |
19906 |
val="$define" |
19907 |
else |
19908 |
echo "Neither <sgtty.h> nor <termio.h> found--you could have problems." >&4 |
19909 |
fi |
19910 |
fi;; |
19911 |
esac |
19912 |
set i_termio; eval $setvar |
19913 |
val=$val2; set i_sgtty; eval $setvar |
19914 |
val=$val3; set i_termios; eval $setvar |
19915 |
|
19916 |
: see if stddef is available |
19917 |
set stddef.h i_stddef |
19918 |
eval $inhdr |
19919 |
|
19920 |
: see if this is a sunmath.h system |
19921 |
set sunmath.h i_sunmath |
19922 |
eval $inhdr |
19923 |
|
19924 |
: see if sys/access.h is available |
19925 |
set sys/access.h i_sysaccess |
19926 |
eval $inhdr |
19927 |
|
19928 |
: see if ioctl defs are in sgtty, termio, sys/filio or sys/ioctl |
19929 |
set sys/filio.h i_sysfilio |
19930 |
eval $inhdr |
19931 |
echo " " |
19932 |
if $test `./findhdr sys/ioctl.h`; then |
19933 |
val="$define" |
19934 |
echo '<sys/ioctl.h> found.' >&4 |
19935 |
else |
19936 |
val="$undef" |
19937 |
if $test $i_sysfilio = "$define"; then |
19938 |
echo '<sys/ioctl.h> NOT found.' >&4 |
19939 |
else |
19940 |
$test $i_sgtty = "$define" && xxx="sgtty.h" |
19941 |
$test $i_termio = "$define" && xxx="termio.h" |
19942 |
$test $i_termios = "$define" && xxx="termios.h" |
19943 |
echo "No <sys/ioctl.h> found, assuming ioctl args are defined in <$xxx>." >&4 |
19944 |
fi |
19945 |
fi |
19946 |
set i_sysioctl |
19947 |
eval $setvar |
19948 |
|
19949 |
: see if socket ioctl defs are in sys/sockio.h |
19950 |
echo " " |
19951 |
xxx=`./findhdr sys/sockio.h` |
19952 |
if $test "$xxx"; then |
19953 |
if $contains SIOCATMARK $xxx >/dev/null 2>&1; then |
19954 |
val="$define" |
19955 |
echo "You have socket ioctls defined in <sys/sockio.h>." >&4 |
19956 |
else |
19957 |
val="$undef" |
19958 |
echo "No socket ioctls found in <sys/sockio.h>." >&4 |
19959 |
fi |
19960 |
else |
19961 |
val="$undef" |
19962 |
$cat <<EOM |
19963 |
<sys/sockio.h> not found, assuming socket ioctls are in <sys/ioctl.h>. |
19964 |
EOM |
19965 |
fi |
19966 |
set i_syssockio |
19967 |
eval $setvar |
19968 |
|
19969 |
|
19970 |
: see if this is a syslog.h system |
19971 |
set syslog.h i_syslog |
19972 |
eval $inhdr |
19973 |
|
19974 |
|
19975 |
: see if this is a sys/mode.h system |
19976 |
set sys/mode.h i_sysmode |
19977 |
eval $inhdr |
19978 |
|
19979 |
: see if sys/resource.h has to be included |
19980 |
set sys/resource.h i_sysresrc |
19981 |
eval $inhdr |
19982 |
|
19983 |
: see if sys/security.h is available |
19984 |
set sys/security.h i_syssecrt |
19985 |
eval $inhdr |
19986 |
|
19987 |
: see if this is a sys/statvfs.h system |
19988 |
set sys/statvfs.h i_sysstatvfs |
19989 |
eval $inhdr |
19990 |
|
19991 |
: see if this is a sys/un.h system |
19992 |
set sys/un.h i_sysun |
19993 |
eval $inhdr |
19994 |
|
19995 |
|
19996 |
: see if this is a sys/utsname.h system |
19997 |
set sys/utsname.h i_sysutsname |
19998 |
eval $inhdr |
19999 |
|
20000 |
: see if this is a syswait system |
20001 |
set sys/wait.h i_syswait |
20002 |
eval $inhdr |
20003 |
|
20004 |
: see if this is a ustat.h system |
20005 |
set ustat.h i_ustat |
20006 |
eval $inhdr |
20007 |
|
20008 |
: see if this is an utime system |
20009 |
set utime.h i_utime |
20010 |
eval $inhdr |
20011 |
|
20012 |
: see if this is a values.h system |
20013 |
set values.h i_values |
20014 |
eval $inhdr |
20015 |
|
20016 |
: see if this is a vfork system |
20017 |
case "$d_vfork" in |
20018 |
"$define") |
20019 |
set vfork.h i_vfork |
20020 |
eval $inhdr |
20021 |
;; |
20022 |
*) |
20023 |
i_vfork="$undef" |
20024 |
;; |
20025 |
esac |
20026 |
|
20027 |
: see if gdbm.h is available |
20028 |
set gdbm.h t_gdbm |
20029 |
eval $inhdr |
20030 |
case "$t_gdbm" in |
20031 |
$define) |
20032 |
: see if gdbm_open exists |
20033 |
set gdbm_open d_gdbm_open |
20034 |
eval $inlibc |
20035 |
case "$d_gdbm_open" in |
20036 |
$undef) |
20037 |
t_gdbm="$undef" |
20038 |
echo "We won't be including <gdbm.h>" |
20039 |
;; |
20040 |
esac |
20041 |
;; |
20042 |
esac |
20043 |
val="$t_gdbm" |
20044 |
set i_gdbm |
20045 |
eval $setvar |
20046 |
|
20047 |
echo " " |
20048 |
echo "Looking for extensions..." >&4 |
20049 |
: If we are using the old config.sh, known_extensions may contain |
20050 |
: old or inaccurate or duplicate values. |
20051 |
known_extensions='' |
20052 |
nonxs_extensions='' |
20053 |
: We do not use find because it might not be available. |
20054 |
: We do not just use MANIFEST because the user may have dropped |
20055 |
: some additional extensions into the source tree and expect them |
20056 |
: to be built. |
20057 |
|
20058 |
: Function to recursively find available extensions, ignoring DynaLoader |
20059 |
: NOTE: recursion limit of 10 to prevent runaway in case of symlink madness |
20060 |
find_extensions=' |
20061 |
for xxx in *; do |
20062 |
case "$xxx" in |
20063 |
DynaLoader|dynaload) ;; |
20064 |
*) |
20065 |
if $test -f $xxx/$xxx.xs; then |
20066 |
known_extensions="$known_extensions $1$xxx"; |
20067 |
elif $test -f $xxx/Makefile.PL; then |
20068 |
nonxs_extensions="$nonxs_extensions $1$xxx"; |
20069 |
else |
20070 |
if $test -d $xxx -a $# -lt 10; then |
20071 |
set $1$xxx/ $*; |
20072 |
cd "$xxx"; |
20073 |
eval $find_extensions; |
20074 |
cd ..; |
20075 |
shift; |
20076 |
fi; |
20077 |
fi |
20078 |
;; |
20079 |
esac; |
20080 |
done' |
20081 |
tdir=`pwd` |
20082 |
cd "$rsrc/ext" |
20083 |
set X |
20084 |
shift |
20085 |
eval $find_extensions |
20086 |
# Special case: Add in threads/shared since it is not picked up by the |
20087 |
# recursive find above (and adding in general recursive finding breaks |
20088 |
# SDBM_File/sdbm). A.D. 10/25/2001. |
20089 |
known_extensions="$known_extensions threads/shared" |
20090 |
set X $nonxs_extensions |
20091 |
shift |
20092 |
nonxs_extensions="$*" |
20093 |
set X $known_extensions |
20094 |
shift |
20095 |
known_extensions="$*" |
20096 |
cd "$tdir" |
20097 |
|
20098 |
: Now see which are supported on this system. |
20099 |
avail_ext='' |
20100 |
for xxx in $known_extensions ; do |
20101 |
case "$xxx" in |
20102 |
DB_File|db_file) |
20103 |
case "$i_db" in |
20104 |
$define) avail_ext="$avail_ext $xxx" ;; |
20105 |
esac |
20106 |
;; |
20107 |
GDBM_File|gdbm_fil) |
20108 |
case "$i_gdbm" in |
20109 |
$define) avail_ext="$avail_ext $xxx" ;; |
20110 |
esac |
20111 |
;; |
20112 |
I18N/Langinfo|i18n_lan) |
20113 |
case "$i_langinfo$d_nl_langinfo" in |
20114 |
$define$define) avail_ext="$avail_ext $xxx" ;; |
20115 |
esac |
20116 |
;; |
20117 |
NDBM_File|ndbm_fil) |
20118 |
case "$i_ndbm" in |
20119 |
$define) |
20120 |
case "$osname-$use64bitint" in |
20121 |
hpux-define) |
20122 |
case "$libs" in |
20123 |
*-lndbm*) avail_ext="$avail_ext $xxx" ;; |
20124 |
esac |
20125 |
;; |
20126 |
*) avail_ext="$avail_ext $xxx" ;; |
20127 |
esac |
20128 |
;; |
20129 |
esac |
20130 |
;; |
20131 |
ODBM_File|odbm_fil) |
20132 |
case "${i_dbm}${i_rpcsvcdbm}" in |
20133 |
*"${define}"*) |
20134 |
case "$osname-$use64bitint" in |
20135 |
hpux-define) |
20136 |
case "$libs" in |
20137 |
*-ldbm*) avail_ext="$avail_ext $xxx" ;; |
20138 |
esac |
20139 |
;; |
20140 |
*) avail_ext="$avail_ext $xxx" ;; |
20141 |
esac |
20142 |
;; |
20143 |
esac |
20144 |
;; |
20145 |
POSIX|posix) |
20146 |
case "$useposix" in |
20147 |
true|define|y) avail_ext="$avail_ext $xxx" ;; |
20148 |
esac |
20149 |
;; |
20150 |
Opcode|opcode) |
20151 |
case "$useopcode" in |
20152 |
true|define|y) avail_ext="$avail_ext $xxx" ;; |
20153 |
esac |
20154 |
;; |
20155 |
Socket|socket) |
20156 |
case "$d_socket" in |
20157 |
true|$define|y) |
20158 |
case "$osname" in |
20159 |
beos) ;; # not unless BONE |
20160 |
*) avail_ext="$avail_ext $xxx" ;; |
20161 |
esac |
20162 |
;; |
20163 |
esac |
20164 |
;; |
20165 |
Sys/Syslog|sys/syslog) |
20166 |
: XXX syslog requires socket |
20167 |
case "$d_socket" in |
20168 |
true|$define|y) avail_ext="$avail_ext $xxx" ;; |
20169 |
esac |
20170 |
;; |
20171 |
Thread|thread) |
20172 |
case "$usethreads" in |
20173 |
true|$define|y) |
20174 |
case "$useithreads" in |
20175 |
$undef|false|[nN]*) avail_ext="$avail_ext $xxx" ;; |
20176 |
esac |
20177 |
esac |
20178 |
;; |
20179 |
XS/APItest|xs/apitest) |
20180 |
# This is just for testing. Skip it unless we have dynamic loading. |
20181 |
|
20182 |
case "$usedl" in |
20183 |
$define) avail_ext="$avail_ext $xxx" ;; |
20184 |
esac |
20185 |
;; |
20186 |
XS/Typemap|xs/typemap) |
20187 |
# This is just for testing. Skip it unless we have dynamic loading. |
20188 |
case "$usedl" in |
20189 |
$define) avail_ext="$avail_ext $xxx" ;; |
20190 |
esac |
20191 |
;; |
20192 |
threads|threads/shared) |
20193 |
# threads and threads::shared are special cases. |
20194 |
# To stop people from asking "Perl 5.8.0 was supposed |
20195 |
# to have this new fancy threads implementation but my |
20196 |
# perl doesn't have it" and from people trying to |
20197 |
# (re)install the threads module using CPAN.pm and |
20198 |
# CPAN.pm then offering to reinstall Perl 5.8.0, |
20199 |
# the threads.pm and threads/shared.pm will always be |
20200 |
# there, croaking informatively ("you need to rebuild |
20201 |
# all of Perl with threads, sorry") when threads haven't |
20202 |
# been compiled in. |
20203 |
# --jhi |
20204 |
avail_ext="$avail_ext $xxx" |
20205 |
;; |
20206 |
IPC/SysV|ipc/sysv) |
20207 |
: XXX Do we need a useipcsysv variable here |
20208 |
case "${d_msg}${d_sem}${d_shm}" in |
20209 |
*"${define}"*) avail_ext="$avail_ext $xxx" ;; |
20210 |
esac |
20211 |
;; |
20212 |
*) avail_ext="$avail_ext $xxx" |
20213 |
;; |
20214 |
esac |
20215 |
done |
20216 |
|
20217 |
set X $avail_ext |
20218 |
shift |
20219 |
avail_ext="$*" |
20220 |
|
20221 |
case "$onlyextensions" in |
20222 |
'') ;; |
20223 |
*) keepextensions='' |
20224 |
echo "You have requested that only certains extensions be included..." >&4 |
20225 |
for i in $onlyextensions; do |
20226 |
case " $avail_ext " in |
20227 |
*" $i "*) |
20228 |
echo "Keeping extension $i." |
20229 |
keepextensions="$keepextensions $i" |
20230 |
;; |
20231 |
*) echo "Ignoring extension $i." ;; |
20232 |
esac |
20233 |
done |
20234 |
avail_ext="$keepextensions" |
20235 |
;; |
20236 |
esac |
20237 |
|
20238 |
case "$noextensions" in |
20239 |
'') ;; |
20240 |
*) keepextensions='' |
20241 |
echo "You have requested that certain extensions be ignored..." >&4 |
20242 |
for i in $avail_ext; do |
20243 |
case " $noextensions " in |
20244 |
*" $i "*) echo "Ignoring extension $i." ;; |
20245 |
*) echo "Keeping extension $i."; |
20246 |
keepextensions="$keepextensions $i" |
20247 |
;; |
20248 |
esac |
20249 |
done |
20250 |
avail_ext="$keepextensions" |
20251 |
;; |
20252 |
esac |
20253 |
|
20254 |
: Now see which nonxs extensions are supported on this system. |
20255 |
: For now assume all are. |
20256 |
nonxs_ext='' |
20257 |
for xxx in $nonxs_extensions ; do |
20258 |
case "$xxx" in |
20259 |
*) nonxs_ext="$nonxs_ext $xxx" |
20260 |
;; |
20261 |
esac |
20262 |
done |
20263 |
|
20264 |
set X $nonxs_ext |
20265 |
shift |
20266 |
nonxs_ext="$*" |
20267 |
|
20268 |
case $usedl in |
20269 |
$define) |
20270 |
$cat <<EOM |
20271 |
A number of extensions are supplied with $package. You may choose to |
20272 |
compile these extensions for dynamic loading (the default), compile |
20273 |
them into the $package executable (static loading), or not include |
20274 |
them at all. Answer "none" to include no extensions. |
20275 |
Note that DynaLoader is always built and need not be mentioned here. |
20276 |
|
20277 |
EOM |
20278 |
case "$dynamic_ext" in |
20279 |
'') |
20280 |
: Exclude those listed in static_ext |
20281 |
dflt='' |
20282 |
for xxx in $avail_ext; do |
20283 |
case " $static_ext " in |
20284 |
*" $xxx "*) ;; |
20285 |
*) dflt="$dflt $xxx" ;; |
20286 |
esac |
20287 |
done |
20288 |
set X $dflt |
20289 |
shift |
20290 |
dflt="$*" |
20291 |
;; |
20292 |
*) dflt="$dynamic_ext" |
20293 |
# Perhaps we are reusing an old out-of-date config.sh. |
20294 |
case "$hint" in |
20295 |
previous) |
20296 |
if test X"$dynamic_ext" != X"$avail_ext"; then |
20297 |
$cat <<EOM |
20298 |
NOTICE: Your previous config.sh list may be incorrect. |
20299 |
The extensions now available to you are |
20300 |
${avail_ext} |
20301 |
but the default list from your previous config.sh is |
20302 |
${dynamic_ext} |
20303 |
|
20304 |
EOM |
20305 |
fi |
20306 |
;; |
20307 |
esac |
20308 |
;; |
20309 |
esac |
20310 |
case "$dflt" in |
20311 |
'') dflt=none;; |
20312 |
esac |
20313 |
rp="What extensions do you wish to load dynamically?" |
20314 |
. ./myread |
20315 |
case "$ans" in |
20316 |
none) dynamic_ext=' ' ;; |
20317 |
*) dynamic_ext="$ans" ;; |
20318 |
esac |
20319 |
|
20320 |
case "$static_ext" in |
20321 |
'') |
20322 |
: Exclude those already listed in dynamic linking |
20323 |
dflt='' |
20324 |
for xxx in $avail_ext; do |
20325 |
case " $dynamic_ext " in |
20326 |
*" $xxx "*) ;; |
20327 |
*) dflt="$dflt $xxx" ;; |
20328 |
esac |
20329 |
done |
20330 |
set X $dflt |
20331 |
shift |
20332 |
dflt="$*" |
20333 |
;; |
20334 |
*) dflt="$static_ext" |
20335 |
;; |
20336 |
esac |
20337 |
|
20338 |
case "$dflt" in |
20339 |
'') dflt=none;; |
20340 |
esac |
20341 |
rp="What extensions do you wish to load statically?" |
20342 |
. ./myread |
20343 |
case "$ans" in |
20344 |
none) static_ext=' ' ;; |
20345 |
*) static_ext="$ans" ;; |
20346 |
esac |
20347 |
;; |
20348 |
*) |
20349 |
$cat <<EOM |
20350 |
A number of extensions are supplied with $package. Answer "none" |
20351 |
to include no extensions. |
20352 |
Note that DynaLoader is always built and need not be mentioned here. |
20353 |
|
20354 |
EOM |
20355 |
case "$static_ext" in |
20356 |
'') dflt="$avail_ext" ;; |
20357 |
*) dflt="$static_ext" |
20358 |
# Perhaps we are reusing an old out-of-date config.sh. |
20359 |
case "$hint" in |
20360 |
previous) |
20361 |
if test X"$static_ext" != X"$avail_ext"; then |
20362 |
$cat <<EOM |
20363 |
NOTICE: Your previous config.sh list may be incorrect. |
20364 |
The extensions now available to you are |
20365 |
${avail_ext} |
20366 |
but the default list from your previous config.sh is |
20367 |
${static_ext} |
20368 |
|
20369 |
EOM |
20370 |
fi |
20371 |
;; |
20372 |
esac |
20373 |
;; |
20374 |
esac |
20375 |
: Exclude those that are not xs extensions |
20376 |
case "$dflt" in |
20377 |
'') dflt=none;; |
20378 |
esac |
20379 |
rp="What extensions do you wish to include?" |
20380 |
. ./myread |
20381 |
case "$ans" in |
20382 |
none) static_ext=' ' ;; |
20383 |
*) static_ext="$ans" ;; |
20384 |
esac |
20385 |
;; |
20386 |
esac |
20387 |
# |
20388 |
# Encode is a special case. If we are building Encode as a static |
20389 |
# extension, we need to explicitly list its subextensions as well. |
20390 |
# For other nested extensions, this is handled automatically by |
20391 |
# the appropriate Makefile.PL. |
20392 |
case " $static_ext " in |
20393 |
*" Encode "*) # Add the subextensions of Encode |
20394 |
cd "$rsrc/ext" |
20395 |
for xxx in `ls Encode/*/Makefile.PL|awk -F/ '{print $2}'`; do |
20396 |
static_ext="$static_ext Encode/$xxx" |
20397 |
done |
20398 |
cd "$tdir" |
20399 |
;; |
20400 |
esac |
20401 |
|
20402 |
set X $dynamic_ext $static_ext $nonxs_ext |
20403 |
shift |
20404 |
extensions="$*" |
20405 |
|
20406 |
# Sanity check: We require an extension suitable for use with |
20407 |
# AnyDBM_File, as well as Fcntl and IO. (Failure to have these |
20408 |
# should show up as failures in the test suite, but it's helpful to |
20409 |
# catch them now.) The 'extensions' list is normally sorted |
20410 |
# alphabetically, so we need to accept either |
20411 |
# DB_File ... Fcntl ... IO .... |
20412 |
# or something like |
20413 |
# Fcntl ... NDBM_File ... IO .... |
20414 |
case " $extensions" in |
20415 |
*"_File "*" Fcntl "*" IO "*) ;; # DB_File |
20416 |
*" Fcntl "*"_File "*" IO "*) ;; # GDBM_File |
20417 |
*" Fcntl "*" IO "*"_File "*) ;; # NDBM_File |
20418 |
*) echo "WARNING: Extensions DB_File or *DBM_File, Fcntl, and IO not configured." >&4 |
20419 |
echo "WARNING: The Perl you are building will be quite crippled." >& 4 |
20420 |
;; |
20421 |
esac |
20422 |
|
20423 |
: Remove libraries needed only for extensions |
20424 |
: The appropriate ext/Foo/Makefile.PL will add them back in, if necessary. |
20425 |
: The exception is SunOS 4.x, which needs them. |
20426 |
case "${osname}X${osvers}" in |
20427 |
sunos*X4*) |
20428 |
perllibs="$libs" |
20429 |
;; |
20430 |
*) case "$usedl" in |
20431 |
$define|true|[yY]*) |
20432 |
set X `echo " $libs " | sed -e 's@ -lndbm @ @' -e 's@ -lgdbm @ @' -e 's@ -ldbm @ @' -e 's@ -ldb @ @'` |
20433 |
shift |
20434 |
perllibs="$*" |
20435 |
;; |
20436 |
*) perllibs="$libs" |
20437 |
;; |
20438 |
esac |
20439 |
;; |
20440 |
esac |
20441 |
|
20442 |
: Remove build directory name from cppstdin so it can be used from |
20443 |
: either the present location or the final installed location. |
20444 |
echo " " |
20445 |
: Get out of the UU directory to get correct path name. |
20446 |
cd .. |
20447 |
case "$cppstdin" in |
20448 |
`pwd`/cppstdin) |
20449 |
echo "Stripping down cppstdin path name" |
20450 |
cppstdin=cppstdin |
20451 |
;; |
20452 |
esac |
20453 |
cd UU |
20454 |
|
20455 |
: end of configuration questions |
20456 |
echo " " |
20457 |
echo "End of configuration questions." |
20458 |
echo " " |
20459 |
|
20460 |
: back to where it started |
20461 |
if test -d ../UU; then |
20462 |
cd .. |
20463 |
fi |
20464 |
|
20465 |
: configuration may be patched via a 'config.arch' file |
20466 |
if $test -f config.arch; then |
20467 |
echo "I see a config.arch file, loading it." |
20468 |
. ./config.arch |
20469 |
fi |
20470 |
|
20471 |
: configuration may be patched via a 'config.over' file |
20472 |
if $test -f config.over; then |
20473 |
echo " " |
20474 |
dflt=y |
20475 |
rp='I see a config.over file. Do you wish to load it?' |
20476 |
. UU/myread |
20477 |
case "$ans" in |
20478 |
n*) echo "OK, I'll ignore it.";; |
20479 |
*) . ./config.over |
20480 |
echo "Configuration override changes have been loaded." |
20481 |
;; |
20482 |
esac |
20483 |
fi |
20484 |
|
20485 |
: in case they want portability, strip down executable paths |
20486 |
case "$d_portable" in |
20487 |
"$define") |
20488 |
echo " " |
20489 |
echo "Stripping down executable paths..." >&4 |
20490 |
for file in $loclist $trylist; do |
20491 |
eval temp=\$$file |
20492 |
eval $file=`basename $temp` |
20493 |
done |
20494 |
;; |
20495 |
esac |
20496 |
|
20497 |
: create config.sh file |
20498 |
echo " " |
20499 |
echo "Creating config.sh..." >&4 |
20500 |
$spitshell <<EOT >config.sh |
20501 |
$startsh |
20502 |
# |
20503 |
# This file was produced by running the Configure script. It holds all the |
20504 |
# definitions figured out by Configure. Should you modify one of these values, |
20505 |
# do not forget to propagate your changes by running "Configure -der". You may |
20506 |
# instead choose to run each of the .SH files by yourself, or "Configure -S". |
20507 |
# |
20508 |
|
20509 |
# Package name : $package |
20510 |
# Source directory : $src |
20511 |
# Configuration time: $cf_time |
20512 |
# Configured by : $cf_by |
20513 |
# Target system : $myuname |
20514 |
|
20515 |
Author='$Author' |
20516 |
Date='$Date' |
20517 |
Header='$Header' |
20518 |
Id='$Id' |
20519 |
Locker='$Locker' |
20520 |
Log='$Log' |
20521 |
Mcc='$Mcc' |
20522 |
RCSfile='$RCSfile' |
20523 |
Revision='$Revision' |
20524 |
Source='$Source' |
20525 |
State='$State' |
20526 |
_a='$_a' |
20527 |
_exe='$_exe' |
20528 |
_o='$_o' |
20529 |
afs='$afs' |
20530 |
afsroot='$afsroot' |
20531 |
alignbytes='$alignbytes' |
20532 |
ansi2knr='$ansi2knr' |
20533 |
aphostname='$aphostname' |
20534 |
api_revision='$api_revision' |
20535 |
api_subversion='$api_subversion' |
20536 |
api_version='$api_version' |
20537 |
api_versionstring='$api_versionstring' |
20538 |
ar='$ar' |
20539 |
archlib='$archlib' |
20540 |
archlibexp='$archlibexp' |
20541 |
archname64='$archname64' |
20542 |
archname='$archname' |
20543 |
archobjs='$archobjs' |
20544 |
asctime_r_proto='$asctime_r_proto' |
20545 |
awk='$awk' |
20546 |
baserev='$baserev' |
20547 |
bash='$bash' |
20548 |
bin='$bin' |
20549 |
binexp='$binexp' |
20550 |
bison='$bison' |
20551 |
byacc='$byacc' |
20552 |
byteorder='$byteorder' |
20553 |
c='$c' |
20554 |
castflags='$castflags' |
20555 |
cat='$cat' |
20556 |
cc='$cc' |
20557 |
cccdlflags='$cccdlflags' |
20558 |
ccdlflags='$ccdlflags' |
20559 |
ccflags='$ccflags' |
20560 |
ccflags_uselargefiles='$ccflags_uselargefiles' |
20561 |
ccname='$ccname' |
20562 |
ccsymbols='$ccsymbols' |
20563 |
ccversion='$ccversion' |
20564 |
cf_by='$cf_by' |
20565 |
cf_email='$cf_email' |
20566 |
cf_time='$cf_time' |
20567 |
charsize='$charsize' |
20568 |
chgrp='$chgrp' |
20569 |
chmod='$chmod' |
20570 |
chown='$chown' |
20571 |
clocktype='$clocktype' |
20572 |
comm='$comm' |
20573 |
compress='$compress' |
20574 |
contains='$contains' |
20575 |
cp='$cp' |
20576 |
cpio='$cpio' |
20577 |
cpp='$cpp' |
20578 |
cpp_stuff='$cpp_stuff' |
20579 |
cppccsymbols='$cppccsymbols' |
20580 |
cppflags='$cppflags' |
20581 |
cpplast='$cpplast' |
20582 |
cppminus='$cppminus' |
20583 |
cpprun='$cpprun' |
20584 |
cppstdin='$cppstdin' |
20585 |
cppsymbols='$cppsymbols' |
20586 |
crypt_r_proto='$crypt_r_proto' |
20587 |
cryptlib='$cryptlib' |
20588 |
csh='$csh' |
20589 |
ctermid_r_proto='$ctermid_r_proto' |
20590 |
ctime_r_proto='$ctime_r_proto' |
20591 |
d_Gconvert='$d_Gconvert' |
20592 |
d_PRIEUldbl='$d_PRIEUldbl' |
20593 |
d_PRIFUldbl='$d_PRIFUldbl' |
20594 |
d_PRIGUldbl='$d_PRIGUldbl' |
20595 |
d_PRIXU64='$d_PRIXU64' |
20596 |
d_PRId64='$d_PRId64' |
20597 |
d_PRIeldbl='$d_PRIeldbl' |
20598 |
d_PRIfldbl='$d_PRIfldbl' |
20599 |
d_PRIgldbl='$d_PRIgldbl' |
20600 |
d_PRIi64='$d_PRIi64' |
20601 |
d_PRIo64='$d_PRIo64' |
20602 |
d_PRIu64='$d_PRIu64' |
20603 |
d_PRIx64='$d_PRIx64' |
20604 |
d_SCNfldbl='$d_SCNfldbl' |
20605 |
d__fwalk='$d__fwalk' |
20606 |
d_access='$d_access' |
20607 |
d_accessx='$d_accessx' |
20608 |
d_aintl='$d_aintl' |
20609 |
d_alarm='$d_alarm' |
20610 |
d_archlib='$d_archlib' |
20611 |
d_asctime_r='$d_asctime_r' |
20612 |
d_atolf='$d_atolf' |
20613 |
d_atoll='$d_atoll' |
20614 |
d_attribut='$d_attribut' |
20615 |
d_bcmp='$d_bcmp' |
20616 |
d_bcopy='$d_bcopy' |
20617 |
d_bsd='$d_bsd' |
20618 |
d_bsdgetpgrp='$d_bsdgetpgrp' |
20619 |
d_bsdsetpgrp='$d_bsdsetpgrp' |
20620 |
d_bzero='$d_bzero' |
20621 |
d_casti32='$d_casti32' |
20622 |
d_castneg='$d_castneg' |
20623 |
d_charvspr='$d_charvspr' |
20624 |
d_chown='$d_chown' |
20625 |
d_chroot='$d_chroot' |
20626 |
d_chsize='$d_chsize' |
20627 |
d_class='$d_class' |
20628 |
d_closedir='$d_closedir' |
20629 |
d_cmsghdr_s='$d_cmsghdr_s' |
20630 |
d_const='$d_const' |
20631 |
d_copysignl='$d_copysignl' |
20632 |
d_crypt='$d_crypt' |
20633 |
d_crypt_r='$d_crypt_r' |
20634 |
d_csh='$d_csh' |
20635 |
d_ctermid_r='$d_ctermid_r' |
20636 |
d_ctime_r='$d_ctime_r' |
20637 |
d_cuserid='$d_cuserid' |
20638 |
d_dbl_dig='$d_dbl_dig' |
20639 |
d_dbminitproto='$d_dbminitproto' |
20640 |
d_difftime='$d_difftime' |
20641 |
d_dirfd='$d_dirfd' |
20642 |
d_dirnamlen='$d_dirnamlen' |
20643 |
d_dlerror='$d_dlerror' |
20644 |
d_dlopen='$d_dlopen' |
20645 |
d_dlsymun='$d_dlsymun' |
20646 |
d_dosuid='$d_dosuid' |
20647 |
d_drand48_r='$d_drand48_r' |
20648 |
d_drand48proto='$d_drand48proto' |
20649 |
d_dup2='$d_dup2' |
20650 |
d_eaccess='$d_eaccess' |
20651 |
d_endgrent='$d_endgrent' |
20652 |
d_endgrent_r='$d_endgrent_r' |
20653 |
d_endhent='$d_endhent' |
20654 |
d_endhostent_r='$d_endhostent_r' |
20655 |
d_endnent='$d_endnent' |
20656 |
d_endnetent_r='$d_endnetent_r' |
20657 |
d_endpent='$d_endpent' |
20658 |
d_endprotoent_r='$d_endprotoent_r' |
20659 |
d_endpwent='$d_endpwent' |
20660 |
d_endpwent_r='$d_endpwent_r' |
20661 |
d_endsent='$d_endsent' |
20662 |
d_endservent_r='$d_endservent_r' |
20663 |
d_eofnblk='$d_eofnblk' |
20664 |
d_eunice='$d_eunice' |
20665 |
d_faststdio='$d_faststdio' |
20666 |
d_fchdir='$d_fchdir' |
20667 |
d_fchmod='$d_fchmod' |
20668 |
d_fchown='$d_fchown' |
20669 |
d_fcntl='$d_fcntl' |
20670 |
d_fcntl_can_lock='$d_fcntl_can_lock' |
20671 |
d_fd_macros='$d_fd_macros' |
20672 |
d_fd_set='$d_fd_set' |
20673 |
d_fds_bits='$d_fds_bits' |
20674 |
d_fgetpos='$d_fgetpos' |
20675 |
d_finite='$d_finite' |
20676 |
d_finitel='$d_finitel' |
20677 |
d_flexfnam='$d_flexfnam' |
20678 |
d_flock='$d_flock' |
20679 |
d_flockproto='$d_flockproto' |
20680 |
d_fork='$d_fork' |
20681 |
d_fp_class='$d_fp_class' |
20682 |
d_fpathconf='$d_fpathconf' |
20683 |
d_fpclass='$d_fpclass' |
20684 |
d_fpclassify='$d_fpclassify' |
20685 |
d_fpclassl='$d_fpclassl' |
20686 |
d_fpos64_t='$d_fpos64_t' |
20687 |
d_frexpl='$d_frexpl' |
20688 |
d_fs_data_s='$d_fs_data_s' |
20689 |
d_fseeko='$d_fseeko' |
20690 |
d_fsetpos='$d_fsetpos' |
20691 |
d_fstatfs='$d_fstatfs' |
20692 |
d_fstatvfs='$d_fstatvfs' |
20693 |
d_fsync='$d_fsync' |
20694 |
d_ftello='$d_ftello' |
20695 |
d_ftime='$d_ftime' |
20696 |
d_getcwd='$d_getcwd' |
20697 |
d_getespwnam='$d_getespwnam' |
20698 |
d_getfsstat='$d_getfsstat' |
20699 |
d_getgrent='$d_getgrent' |
20700 |
d_getgrent_r='$d_getgrent_r' |
20701 |
d_getgrgid_r='$d_getgrgid_r' |
20702 |
d_getgrnam_r='$d_getgrnam_r' |
20703 |
d_getgrps='$d_getgrps' |
20704 |
d_gethbyaddr='$d_gethbyaddr' |
20705 |
d_gethbyname='$d_gethbyname' |
20706 |
d_gethent='$d_gethent' |
20707 |
d_gethname='$d_gethname' |
20708 |
d_gethostbyaddr_r='$d_gethostbyaddr_r' |
20709 |
d_gethostbyname_r='$d_gethostbyname_r' |
20710 |
d_gethostent_r='$d_gethostent_r' |
20711 |
d_gethostprotos='$d_gethostprotos' |
20712 |
d_getitimer='$d_getitimer' |
20713 |
d_getlogin='$d_getlogin' |
20714 |
d_getlogin_r='$d_getlogin_r' |
20715 |
d_getmnt='$d_getmnt' |
20716 |
d_getmntent='$d_getmntent' |
20717 |
d_getnbyaddr='$d_getnbyaddr' |
20718 |
d_getnbyname='$d_getnbyname' |
20719 |
d_getnent='$d_getnent' |
20720 |
d_getnetbyaddr_r='$d_getnetbyaddr_r' |
20721 |
d_getnetbyname_r='$d_getnetbyname_r' |
20722 |
d_getnetent_r='$d_getnetent_r' |
20723 |
d_getnetprotos='$d_getnetprotos' |
20724 |
d_getpagsz='$d_getpagsz' |
20725 |
d_getpbyname='$d_getpbyname' |
20726 |
d_getpbynumber='$d_getpbynumber' |
20727 |
d_getpent='$d_getpent' |
20728 |
d_getpgid='$d_getpgid' |
20729 |
d_getpgrp2='$d_getpgrp2' |
20730 |
d_getpgrp='$d_getpgrp' |
20731 |
d_getppid='$d_getppid' |
20732 |
d_getprior='$d_getprior' |
20733 |
d_getprotobyname_r='$d_getprotobyname_r' |
20734 |
d_getprotobynumber_r='$d_getprotobynumber_r' |
20735 |
d_getprotoent_r='$d_getprotoent_r' |
20736 |
d_getprotoprotos='$d_getprotoprotos' |
20737 |
d_getprpwnam='$d_getprpwnam' |
20738 |
d_getpwent='$d_getpwent' |
20739 |
d_getpwent_r='$d_getpwent_r' |
20740 |
d_getpwnam_r='$d_getpwnam_r' |
20741 |
d_getpwuid_r='$d_getpwuid_r' |
20742 |
d_getsbyname='$d_getsbyname' |
20743 |
d_getsbyport='$d_getsbyport' |
20744 |
d_getsent='$d_getsent' |
20745 |
d_getservbyname_r='$d_getservbyname_r' |
20746 |
d_getservbyport_r='$d_getservbyport_r' |
20747 |
d_getservent_r='$d_getservent_r' |
20748 |
d_getservprotos='$d_getservprotos' |
20749 |
d_getspnam='$d_getspnam' |
20750 |
d_getspnam_r='$d_getspnam_r' |
20751 |
d_gettimeod='$d_gettimeod' |
20752 |
d_gmtime_r='$d_gmtime_r' |
20753 |
d_gnulibc='$d_gnulibc' |
20754 |
d_grpasswd='$d_grpasswd' |
20755 |
d_hasmntopt='$d_hasmntopt' |
20756 |
d_htonl='$d_htonl' |
20757 |
d_ilogbl='$d_ilogbl' |
20758 |
d_index='$d_index' |
20759 |
d_inetaton='$d_inetaton' |
20760 |
d_int64_t='$d_int64_t' |
20761 |
d_isascii='$d_isascii' |
20762 |
d_isfinite='$d_isfinite' |
20763 |
d_isinf='$d_isinf' |
20764 |
d_isnan='$d_isnan' |
20765 |
d_isnanl='$d_isnanl' |
20766 |
d_killpg='$d_killpg' |
20767 |
d_lchown='$d_lchown' |
20768 |
d_ldbl_dig='$d_ldbl_dig' |
20769 |
d_libm_lib_version='$d_libm_lib_version' |
20770 |
d_link='$d_link' |
20771 |
d_localtime_r='$d_localtime_r' |
20772 |
d_locconv='$d_locconv' |
20773 |
d_lockf='$d_lockf' |
20774 |
d_longdbl='$d_longdbl' |
20775 |
d_longlong='$d_longlong' |
20776 |
d_lseekproto='$d_lseekproto' |
20777 |
d_lstat='$d_lstat' |
20778 |
d_madvise='$d_madvise' |
20779 |
d_mblen='$d_mblen' |
20780 |
d_mbstowcs='$d_mbstowcs' |
20781 |
d_mbtowc='$d_mbtowc' |
20782 |
d_memchr='$d_memchr' |
20783 |
d_memcmp='$d_memcmp' |
20784 |
d_memcpy='$d_memcpy' |
20785 |
d_memmove='$d_memmove' |
20786 |
d_memset='$d_memset' |
20787 |
d_mkdir='$d_mkdir' |
20788 |
d_mkdtemp='$d_mkdtemp' |
20789 |
d_mkfifo='$d_mkfifo' |
20790 |
d_mkstemp='$d_mkstemp' |
20791 |
d_mkstemps='$d_mkstemps' |
20792 |
d_mktime='$d_mktime' |
20793 |
d_mmap='$d_mmap' |
20794 |
d_modfl='$d_modfl' |
20795 |
d_modfl_pow32_bug='$d_modfl_pow32_bug' |
20796 |
d_modflproto='$d_modflproto' |
20797 |
d_mprotect='$d_mprotect' |
20798 |
d_msg='$d_msg' |
20799 |
d_msg_ctrunc='$d_msg_ctrunc' |
20800 |
d_msg_dontroute='$d_msg_dontroute' |
20801 |
d_msg_oob='$d_msg_oob' |
20802 |
d_msg_peek='$d_msg_peek' |
20803 |
d_msg_proxy='$d_msg_proxy' |
20804 |
d_msgctl='$d_msgctl' |
20805 |
d_msgget='$d_msgget' |
20806 |
d_msghdr_s='$d_msghdr_s' |
20807 |
d_msgrcv='$d_msgrcv' |
20808 |
d_msgsnd='$d_msgsnd' |
20809 |
d_msync='$d_msync' |
20810 |
d_munmap='$d_munmap' |
20811 |
d_mymalloc='$d_mymalloc' |
20812 |
d_nice='$d_nice' |
20813 |
d_nl_langinfo='$d_nl_langinfo' |
20814 |
d_nv_preserves_uv='$d_nv_preserves_uv' |
20815 |
d_off64_t='$d_off64_t' |
20816 |
d_old_pthread_create_joinable='$d_old_pthread_create_joinable' |
20817 |
d_oldpthreads='$d_oldpthreads' |
20818 |
d_oldsock='$d_oldsock' |
20819 |
d_open3='$d_open3' |
20820 |
d_pathconf='$d_pathconf' |
20821 |
d_pause='$d_pause' |
20822 |
d_perl_otherlibdirs='$d_perl_otherlibdirs' |
20823 |
d_phostname='$d_phostname' |
20824 |
d_pipe='$d_pipe' |
20825 |
d_poll='$d_poll' |
20826 |
d_portable='$d_portable' |
20827 |
d_procselfexe='$d_procselfexe' |
20828 |
d_pthread_atfork='$d_pthread_atfork' |
20829 |
d_pthread_attr_setscope='$d_pthread_attr_setscope' |
20830 |
d_pthread_yield='$d_pthread_yield' |
20831 |
d_pwage='$d_pwage' |
20832 |
d_pwchange='$d_pwchange' |
20833 |
d_pwclass='$d_pwclass' |
20834 |
d_pwcomment='$d_pwcomment' |
20835 |
d_pwexpire='$d_pwexpire' |
20836 |
d_pwgecos='$d_pwgecos' |
20837 |
d_pwpasswd='$d_pwpasswd' |
20838 |
d_pwquota='$d_pwquota' |
20839 |
d_qgcvt='$d_qgcvt' |
20840 |
d_quad='$d_quad' |
20841 |
d_random_r='$d_random_r' |
20842 |
d_readdir64_r='$d_readdir64_r' |
20843 |
d_readdir='$d_readdir' |
20844 |
d_readdir_r='$d_readdir_r' |
20845 |
d_readlink='$d_readlink' |
20846 |
d_readv='$d_readv' |
20847 |
d_recvmsg='$d_recvmsg' |
20848 |
d_rename='$d_rename' |
20849 |
d_rewinddir='$d_rewinddir' |
20850 |
d_rmdir='$d_rmdir' |
20851 |
d_safebcpy='$d_safebcpy' |
20852 |
d_safemcpy='$d_safemcpy' |
20853 |
d_sanemcmp='$d_sanemcmp' |
20854 |
d_sbrkproto='$d_sbrkproto' |
20855 |
d_scalbnl='$d_scalbnl' |
20856 |
d_sched_yield='$d_sched_yield' |
20857 |
d_scm_rights='$d_scm_rights' |
20858 |
d_seekdir='$d_seekdir' |
20859 |
d_select='$d_select' |
20860 |
d_sem='$d_sem' |
20861 |
d_semctl='$d_semctl' |
20862 |
d_semctl_semid_ds='$d_semctl_semid_ds' |
20863 |
d_semctl_semun='$d_semctl_semun' |
20864 |
d_semget='$d_semget' |
20865 |
d_semop='$d_semop' |
20866 |
d_sendmsg='$d_sendmsg' |
20867 |
d_setegid='$d_setegid' |
20868 |
d_seteuid='$d_seteuid' |
20869 |
d_setgrent='$d_setgrent' |
20870 |
d_setgrent_r='$d_setgrent_r' |
20871 |
d_setgrps='$d_setgrps' |
20872 |
d_sethent='$d_sethent' |
20873 |
d_sethostent_r='$d_sethostent_r' |
20874 |
d_setitimer='$d_setitimer' |
20875 |
d_setlinebuf='$d_setlinebuf' |
20876 |
d_setlocale='$d_setlocale' |
20877 |
d_setlocale_r='$d_setlocale_r' |
20878 |
d_setnent='$d_setnent' |
20879 |
d_setnetent_r='$d_setnetent_r' |
20880 |
d_setpent='$d_setpent' |
20881 |
d_setpgid='$d_setpgid' |
20882 |
d_setpgrp2='$d_setpgrp2' |
20883 |
d_setpgrp='$d_setpgrp' |
20884 |
d_setprior='$d_setprior' |
20885 |
d_setproctitle='$d_setproctitle' |
20886 |
d_setprotoent_r='$d_setprotoent_r' |
20887 |
d_setpwent='$d_setpwent' |
20888 |
d_setpwent_r='$d_setpwent_r' |
20889 |
d_setregid='$d_setregid' |
20890 |
d_setresgid='$d_setresgid' |
20891 |
d_setresuid='$d_setresuid' |
20892 |
d_setreuid='$d_setreuid' |
20893 |
d_setrgid='$d_setrgid' |
20894 |
d_setruid='$d_setruid' |
20895 |
d_setsent='$d_setsent' |
20896 |
d_setservent_r='$d_setservent_r' |
20897 |
d_setsid='$d_setsid' |
20898 |
d_setvbuf='$d_setvbuf' |
20899 |
d_sfio='$d_sfio' |
20900 |
d_shm='$d_shm' |
20901 |
d_shmat='$d_shmat' |
20902 |
d_shmatprototype='$d_shmatprototype' |
20903 |
d_shmctl='$d_shmctl' |
20904 |
d_shmdt='$d_shmdt' |
20905 |
d_shmget='$d_shmget' |
20906 |
d_sigaction='$d_sigaction' |
20907 |
d_sigprocmask='$d_sigprocmask' |
20908 |
d_sigsetjmp='$d_sigsetjmp' |
20909 |
d_sockatmark='$d_sockatmark' |
20910 |
d_sockatmarkproto='$d_sockatmarkproto' |
20911 |
d_socket='$d_socket' |
20912 |
d_socklen_t='$d_socklen_t' |
20913 |
d_sockpair='$d_sockpair' |
20914 |
d_socks5_init='$d_socks5_init' |
20915 |
d_sqrtl='$d_sqrtl' |
20916 |
d_srand48_r='$d_srand48_r' |
20917 |
d_srandom_r='$d_srandom_r' |
20918 |
d_sresgproto='$d_sresgproto' |
20919 |
d_sresuproto='$d_sresuproto' |
20920 |
d_statblks='$d_statblks' |
20921 |
d_statfs_f_flags='$d_statfs_f_flags' |
20922 |
d_statfs_s='$d_statfs_s' |
20923 |
d_statvfs='$d_statvfs' |
20924 |
d_stdio_cnt_lval='$d_stdio_cnt_lval' |
20925 |
d_stdio_ptr_lval='$d_stdio_ptr_lval' |
20926 |
d_stdio_ptr_lval_nochange_cnt='$d_stdio_ptr_lval_nochange_cnt' |
20927 |
d_stdio_ptr_lval_sets_cnt='$d_stdio_ptr_lval_sets_cnt' |
20928 |
d_stdio_stream_array='$d_stdio_stream_array' |
20929 |
d_stdiobase='$d_stdiobase' |
20930 |
d_stdstdio='$d_stdstdio' |
20931 |
d_strchr='$d_strchr' |
20932 |
d_strcoll='$d_strcoll' |
20933 |
d_strctcpy='$d_strctcpy' |
20934 |
d_strerrm='$d_strerrm' |
20935 |
d_strerror='$d_strerror' |
20936 |
d_strerror_r='$d_strerror_r' |
20937 |
d_strftime='$d_strftime' |
20938 |
d_strlcat='$d_strlcat' |
20939 |
d_strlcpy='$d_strlcpy' |
20940 |
d_strtod='$d_strtod' |
20941 |
d_strtol='$d_strtol' |
20942 |
d_strtold='$d_strtold' |
20943 |
d_strtoll='$d_strtoll' |
20944 |
d_strtoq='$d_strtoq' |
20945 |
d_strtoul='$d_strtoul' |
20946 |
d_strtoull='$d_strtoull' |
20947 |
d_strtouq='$d_strtouq' |
20948 |
d_strxfrm='$d_strxfrm' |
20949 |
d_suidsafe='$d_suidsafe' |
20950 |
d_symlink='$d_symlink' |
20951 |
d_syscall='$d_syscall' |
20952 |
d_syscallproto='$d_syscallproto' |
20953 |
d_sysconf='$d_sysconf' |
20954 |
d_sysernlst='$d_sysernlst' |
20955 |
d_syserrlst='$d_syserrlst' |
20956 |
d_system='$d_system' |
20957 |
d_tcgetpgrp='$d_tcgetpgrp' |
20958 |
d_tcsetpgrp='$d_tcsetpgrp' |
20959 |
d_telldir='$d_telldir' |
20960 |
d_telldirproto='$d_telldirproto' |
20961 |
d_time='$d_time' |
20962 |
d_times='$d_times' |
20963 |
d_tm_tm_gmtoff='$d_tm_tm_gmtoff' |
20964 |
d_tm_tm_zone='$d_tm_tm_zone' |
20965 |
d_tmpnam_r='$d_tmpnam_r' |
20966 |
d_truncate='$d_truncate' |
20967 |
d_ttyname_r='$d_ttyname_r' |
20968 |
d_tzname='$d_tzname' |
20969 |
d_u32align='$d_u32align' |
20970 |
d_ualarm='$d_ualarm' |
20971 |
d_umask='$d_umask' |
20972 |
d_uname='$d_uname' |
20973 |
d_union_semun='$d_union_semun' |
20974 |
d_unordered='$d_unordered' |
20975 |
d_usleep='$d_usleep' |
20976 |
d_usleepproto='$d_usleepproto' |
20977 |
d_ustat='$d_ustat' |
20978 |
d_vendorarch='$d_vendorarch' |
20979 |
d_vendorbin='$d_vendorbin' |
20980 |
d_vendorlib='$d_vendorlib' |
20981 |
d_vendorscript='$d_vendorscript' |
20982 |
d_vfork='$d_vfork' |
20983 |
d_void_closedir='$d_void_closedir' |
20984 |
d_voidsig='$d_voidsig' |
20985 |
d_voidtty='$d_voidtty' |
20986 |
d_volatile='$d_volatile' |
20987 |
d_vprintf='$d_vprintf' |
20988 |
d_wait4='$d_wait4' |
20989 |
d_waitpid='$d_waitpid' |
20990 |
d_wcstombs='$d_wcstombs' |
20991 |
d_wctomb='$d_wctomb' |
20992 |
d_writev='$d_writev' |
20993 |
d_xenix='$d_xenix' |
20994 |
date='$date' |
20995 |
db_hashtype='$db_hashtype' |
20996 |
db_prefixtype='$db_prefixtype' |
20997 |
db_version_major='$db_version_major' |
20998 |
db_version_minor='$db_version_minor' |
20999 |
db_version_patch='$db_version_patch' |
21000 |
defvoidused='$defvoidused' |
21001 |
direntrytype='$direntrytype' |
21002 |
dlext='$dlext' |
21003 |
dlsrc='$dlsrc' |
21004 |
doublesize='$doublesize' |
21005 |
drand01='$drand01' |
21006 |
drand48_r_proto='$drand48_r_proto' |
21007 |
dynamic_ext='$dynamic_ext' |
21008 |
eagain='$eagain' |
21009 |
ebcdic='$ebcdic' |
21010 |
echo='$echo' |
21011 |
egrep='$egrep' |
21012 |
emacs='$emacs' |
21013 |
endgrent_r_proto='$endgrent_r_proto' |
21014 |
endhostent_r_proto='$endhostent_r_proto' |
21015 |
endnetent_r_proto='$endnetent_r_proto' |
21016 |
endprotoent_r_proto='$endprotoent_r_proto' |
21017 |
endpwent_r_proto='$endpwent_r_proto' |
21018 |
endservent_r_proto='$endservent_r_proto' |
21019 |
eunicefix='$eunicefix' |
21020 |
exe_ext='$exe_ext' |
21021 |
expr='$expr' |
21022 |
extensions='$extensions' |
21023 |
extras='$extras' |
21024 |
fflushNULL='$fflushNULL' |
21025 |
fflushall='$fflushall' |
21026 |
find='$find' |
21027 |
firstmakefile='$firstmakefile' |
21028 |
flex='$flex' |
21029 |
fpossize='$fpossize' |
21030 |
fpostype='$fpostype' |
21031 |
freetype='$freetype' |
21032 |
from='$from' |
21033 |
full_ar='$full_ar' |
21034 |
full_csh='$full_csh' |
21035 |
full_sed='$full_sed' |
21036 |
gccansipedantic='$gccansipedantic' |
21037 |
gccosandvers='$gccosandvers' |
21038 |
gccversion='$gccversion' |
21039 |
getgrent_r_proto='$getgrent_r_proto' |
21040 |
getgrgid_r_proto='$getgrgid_r_proto' |
21041 |
getgrnam_r_proto='$getgrnam_r_proto' |
21042 |
gethostbyaddr_r_proto='$gethostbyaddr_r_proto' |
21043 |
gethostbyname_r_proto='$gethostbyname_r_proto' |
21044 |
gethostent_r_proto='$gethostent_r_proto' |
21045 |
getlogin_r_proto='$getlogin_r_proto' |
21046 |
getnetbyaddr_r_proto='$getnetbyaddr_r_proto' |
21047 |
getnetbyname_r_proto='$getnetbyname_r_proto' |
21048 |
getnetent_r_proto='$getnetent_r_proto' |
21049 |
getprotobyname_r_proto='$getprotobyname_r_proto' |
21050 |
getprotobynumber_r_proto='$getprotobynumber_r_proto' |
21051 |
getprotoent_r_proto='$getprotoent_r_proto' |
21052 |
getpwent_r_proto='$getpwent_r_proto' |
21053 |
getpwnam_r_proto='$getpwnam_r_proto' |
21054 |
getpwuid_r_proto='$getpwuid_r_proto' |
21055 |
getservbyname_r_proto='$getservbyname_r_proto' |
21056 |
getservbyport_r_proto='$getservbyport_r_proto' |
21057 |
getservent_r_proto='$getservent_r_proto' |
21058 |
getspnam_r_proto='$getspnam_r_proto' |
21059 |
gidformat='$gidformat' |
21060 |
gidsign='$gidsign' |
21061 |
gidsize='$gidsize' |
21062 |
gidtype='$gidtype' |
21063 |
glibpth='$glibpth' |
21064 |
gmake='$gmake' |
21065 |
gmtime_r_proto='$gmtime_r_proto' |
21066 |
gnulibc_version='$gnulibc_version' |
21067 |
grep='$grep' |
21068 |
groupcat='$groupcat' |
21069 |
groupstype='$groupstype' |
21070 |
gzip='$gzip' |
21071 |
h_fcntl='$h_fcntl' |
21072 |
h_sysfile='$h_sysfile' |
21073 |
hint='$hint' |
21074 |
hostcat='$hostcat' |
21075 |
html1dir='$html1dir' |
21076 |
html1direxp='$html1direxp' |
21077 |
html3dir='$html3dir' |
21078 |
html3direxp='$html3direxp' |
21079 |
i16size='$i16size' |
21080 |
i16type='$i16type' |
21081 |
i32size='$i32size' |
21082 |
i32type='$i32type' |
21083 |
i64size='$i64size' |
21084 |
i64type='$i64type' |
21085 |
i8size='$i8size' |
21086 |
i8type='$i8type' |
21087 |
i_arpainet='$i_arpainet' |
21088 |
i_bsdioctl='$i_bsdioctl' |
21089 |
i_crypt='$i_crypt' |
21090 |
i_db='$i_db' |
21091 |
i_dbm='$i_dbm' |
21092 |
i_dirent='$i_dirent' |
21093 |
i_dld='$i_dld' |
21094 |
i_dlfcn='$i_dlfcn' |
21095 |
i_fcntl='$i_fcntl' |
21096 |
i_float='$i_float' |
21097 |
i_fp='$i_fp' |
21098 |
i_fp_class='$i_fp_class' |
21099 |
i_gdbm='$i_gdbm' |
21100 |
i_grp='$i_grp' |
21101 |
i_ieeefp='$i_ieeefp' |
21102 |
i_inttypes='$i_inttypes' |
21103 |
i_langinfo='$i_langinfo' |
21104 |
i_libutil='$i_libutil' |
21105 |
i_limits='$i_limits' |
21106 |
i_locale='$i_locale' |
21107 |
i_machcthr='$i_machcthr' |
21108 |
i_malloc='$i_malloc' |
21109 |
i_math='$i_math' |
21110 |
i_memory='$i_memory' |
21111 |
i_mntent='$i_mntent' |
21112 |
i_ndbm='$i_ndbm' |
21113 |
i_netdb='$i_netdb' |
21114 |
i_neterrno='$i_neterrno' |
21115 |
i_netinettcp='$i_netinettcp' |
21116 |
i_niin='$i_niin' |
21117 |
i_poll='$i_poll' |
21118 |
i_prot='$i_prot' |
21119 |
i_pthread='$i_pthread' |
21120 |
i_pwd='$i_pwd' |
21121 |
i_rpcsvcdbm='$i_rpcsvcdbm' |
21122 |
i_sfio='$i_sfio' |
21123 |
i_sgtty='$i_sgtty' |
21124 |
i_shadow='$i_shadow' |
21125 |
i_socks='$i_socks' |
21126 |
i_stdarg='$i_stdarg' |
21127 |
i_stddef='$i_stddef' |
21128 |
i_stdlib='$i_stdlib' |
21129 |
i_string='$i_string' |
21130 |
i_sunmath='$i_sunmath' |
21131 |
i_sysaccess='$i_sysaccess' |
21132 |
i_sysdir='$i_sysdir' |
21133 |
i_sysfile='$i_sysfile' |
21134 |
i_sysfilio='$i_sysfilio' |
21135 |
i_sysin='$i_sysin' |
21136 |
i_sysioctl='$i_sysioctl' |
21137 |
i_syslog='$i_syslog' |
21138 |
i_sysmman='$i_sysmman' |
21139 |
i_sysmode='$i_sysmode' |
21140 |
i_sysmount='$i_sysmount' |
21141 |
i_sysndir='$i_sysndir' |
21142 |
i_sysparam='$i_sysparam' |
21143 |
i_sysresrc='$i_sysresrc' |
21144 |
i_syssecrt='$i_syssecrt' |
21145 |
i_sysselct='$i_sysselct' |
21146 |
i_syssockio='$i_syssockio' |
21147 |
i_sysstat='$i_sysstat' |
21148 |
i_sysstatfs='$i_sysstatfs' |
21149 |
i_sysstatvfs='$i_sysstatvfs' |
21150 |
i_systime='$i_systime' |
21151 |
i_systimek='$i_systimek' |
21152 |
i_systimes='$i_systimes' |
21153 |
i_systypes='$i_systypes' |
21154 |
i_sysuio='$i_sysuio' |
21155 |
i_sysun='$i_sysun' |
21156 |
i_sysutsname='$i_sysutsname' |
21157 |
i_sysvfs='$i_sysvfs' |
21158 |
i_syswait='$i_syswait' |
21159 |
i_termio='$i_termio' |
21160 |
i_termios='$i_termios' |
21161 |
i_time='$i_time' |
21162 |
i_unistd='$i_unistd' |
21163 |
i_ustat='$i_ustat' |
21164 |
i_utime='$i_utime' |
21165 |
i_values='$i_values' |
21166 |
i_varargs='$i_varargs' |
21167 |
i_varhdr='$i_varhdr' |
21168 |
i_vfork='$i_vfork' |
21169 |
ignore_versioned_solibs='$ignore_versioned_solibs' |
21170 |
inc_version_list='$inc_version_list' |
21171 |
inc_version_list_init='$inc_version_list_init' |
21172 |
incpath='$incpath' |
21173 |
inews='$inews' |
21174 |
installarchlib='$installarchlib' |
21175 |
installbin='$installbin' |
21176 |
installhtml1dir='$installhtml1dir' |
21177 |
installhtml3dir='$installhtml3dir' |
21178 |
installman1dir='$installman1dir' |
21179 |
installman3dir='$installman3dir' |
21180 |
installprefix='$installprefix' |
21181 |
installprefixexp='$installprefixexp' |
21182 |
installprivlib='$installprivlib' |
21183 |
installscript='$installscript' |
21184 |
installsitearch='$installsitearch' |
21185 |
installsitebin='$installsitebin' |
21186 |
installsitehtml1dir='$installsitehtml1dir' |
21187 |
installsitehtml3dir='$installsitehtml3dir' |
21188 |
installsitelib='$installsitelib' |
21189 |
installsiteman1dir='$installsiteman1dir' |
21190 |
installsiteman3dir='$installsiteman3dir' |
21191 |
installsitescript='$installsitescript' |
21192 |
installstyle='$installstyle' |
21193 |
installusrbinperl='$installusrbinperl' |
21194 |
installvendorarch='$installvendorarch' |
21195 |
installvendorbin='$installvendorbin' |
21196 |
installvendorhtml1dir='$installvendorhtml1dir' |
21197 |
installvendorhtml3dir='$installvendorhtml3dir' |
21198 |
installvendorlib='$installvendorlib' |
21199 |
installvendorman1dir='$installvendorman1dir' |
21200 |
installvendorman3dir='$installvendorman3dir' |
21201 |
installvendorscript='$installvendorscript' |
21202 |
intsize='$intsize' |
21203 |
issymlink='$issymlink' |
21204 |
ivdformat='$ivdformat' |
21205 |
ivsize='$ivsize' |
21206 |
ivtype='$ivtype' |
21207 |
known_extensions='$known_extensions' |
21208 |
ksh='$ksh' |
21209 |
ld='$ld' |
21210 |
lddlflags='$lddlflags' |
21211 |
ldflags='$ldflags' |
21212 |
ldflags_uselargefiles='$ldflags_uselargefiles' |
21213 |
ldlibpthname='$ldlibpthname' |
21214 |
less='$less' |
21215 |
lib_ext='$lib_ext' |
21216 |
libc='$libc' |
21217 |
libperl='$libperl' |
21218 |
libpth='$libpth' |
21219 |
libs='$libs' |
21220 |
libsdirs='$libsdirs' |
21221 |
libsfiles='$libsfiles' |
21222 |
libsfound='$libsfound' |
21223 |
libspath='$libspath' |
21224 |
libswanted='$libswanted' |
21225 |
libswanted_uselargefiles='$libswanted_uselargefiles' |
21226 |
line='$line' |
21227 |
lint='$lint' |
21228 |
lkflags='$lkflags' |
21229 |
ln='$ln' |
21230 |
lns='$lns' |
21231 |
localtime_r_proto='$localtime_r_proto' |
21232 |
locincpth='$locincpth' |
21233 |
loclibpth='$loclibpth' |
21234 |
longdblsize='$longdblsize' |
21235 |
longlongsize='$longlongsize' |
21236 |
longsize='$longsize' |
21237 |
lp='$lp' |
21238 |
lpr='$lpr' |
21239 |
ls='$ls' |
21240 |
lseeksize='$lseeksize' |
21241 |
lseektype='$lseektype' |
21242 |
mail='$mail' |
21243 |
mailx='$mailx' |
21244 |
make='$make' |
21245 |
make_set_make='$make_set_make' |
21246 |
mallocobj='$mallocobj' |
21247 |
mallocsrc='$mallocsrc' |
21248 |
malloctype='$malloctype' |
21249 |
man1dir='$man1dir' |
21250 |
man1direxp='$man1direxp' |
21251 |
man1ext='$man1ext' |
21252 |
man3dir='$man3dir' |
21253 |
man3direxp='$man3direxp' |
21254 |
man3ext='$man3ext' |
21255 |
mips_type='$mips_type' |
21256 |
mistrustnm='$mistrustnm' |
21257 |
mkdir='$mkdir' |
21258 |
mmaptype='$mmaptype' |
21259 |
modetype='$modetype' |
21260 |
more='$more' |
21261 |
multiarch='$multiarch' |
21262 |
mv='$mv' |
21263 |
myarchname='$myarchname' |
21264 |
mydomain='$mydomain' |
21265 |
myhostname='$myhostname' |
21266 |
myuname='$myuname' |
21267 |
n='$n' |
21268 |
need_va_copy='$need_va_copy' |
21269 |
netdb_hlen_type='$netdb_hlen_type' |
21270 |
netdb_host_type='$netdb_host_type' |
21271 |
netdb_name_type='$netdb_name_type' |
21272 |
netdb_net_type='$netdb_net_type' |
21273 |
nm='$nm' |
21274 |
nm_opt='$nm_opt' |
21275 |
nm_so_opt='$nm_so_opt' |
21276 |
nonxs_ext='$nonxs_ext' |
21277 |
nroff='$nroff' |
21278 |
nvEUformat='$nvEUformat' |
21279 |
nvFUformat='$nvFUformat' |
21280 |
nvGUformat='$nvGUformat' |
21281 |
nv_preserves_uv_bits='$nv_preserves_uv_bits' |
21282 |
nveformat='$nveformat' |
21283 |
nvfformat='$nvfformat' |
21284 |
nvgformat='$nvgformat' |
21285 |
nvsize='$nvsize' |
21286 |
nvtype='$nvtype' |
21287 |
o_nonblock='$o_nonblock' |
21288 |
obj_ext='$obj_ext' |
21289 |
old_pthread_create_joinable='$old_pthread_create_joinable' |
21290 |
optimize='$optimize' |
21291 |
orderlib='$orderlib' |
21292 |
osname='$osname' |
21293 |
osvers='$osvers' |
21294 |
otherlibdirs='$otherlibdirs' |
21295 |
package='$package' |
21296 |
pager='$pager' |
21297 |
passcat='$passcat' |
21298 |
patchlevel='$patchlevel' |
21299 |
path_sep='$path_sep' |
21300 |
perl5='$perl5' |
21301 |
perl='$perl' |
21302 |
perl_patchlevel='$perl_patchlevel' |
21303 |
perladmin='$perladmin' |
21304 |
perllibs='$perllibs' |
21305 |
perlpath='$perlpath' |
21306 |
pg='$pg' |
21307 |
phostname='$phostname' |
21308 |
pidtype='$pidtype' |
21309 |
plibpth='$plibpth' |
21310 |
pmake='$pmake' |
21311 |
pr='$pr' |
21312 |
prefix='$prefix' |
21313 |
prefixexp='$prefixexp' |
21314 |
privlib='$privlib' |
21315 |
privlibexp='$privlibexp' |
21316 |
procselfexe='$procselfexe' |
21317 |
prototype='$prototype' |
21318 |
ptrsize='$ptrsize' |
21319 |
quadkind='$quadkind' |
21320 |
quadtype='$quadtype' |
21321 |
randbits='$randbits' |
21322 |
randfunc='$randfunc' |
21323 |
random_r_proto='$random_r_proto' |
21324 |
randseedtype='$randseedtype' |
21325 |
ranlib='$ranlib' |
21326 |
rd_nodata='$rd_nodata' |
21327 |
readdir64_r_proto='$readdir64_r_proto' |
21328 |
readdir_r_proto='$readdir_r_proto' |
21329 |
revision='$revision' |
21330 |
rm='$rm' |
21331 |
rmail='$rmail' |
21332 |
run='$run' |
21333 |
runnm='$runnm' |
21334 |
sPRIEUldbl='$sPRIEUldbl' |
21335 |
sPRIFUldbl='$sPRIFUldbl' |
21336 |
sPRIGUldbl='$sPRIGUldbl' |
21337 |
sPRIXU64='$sPRIXU64' |
21338 |
sPRId64='$sPRId64' |
21339 |
sPRIeldbl='$sPRIeldbl' |
21340 |
sPRIfldbl='$sPRIfldbl' |
21341 |
sPRIgldbl='$sPRIgldbl' |
21342 |
sPRIi64='$sPRIi64' |
21343 |
sPRIo64='$sPRIo64' |
21344 |
sPRIu64='$sPRIu64' |
21345 |
sPRIx64='$sPRIx64' |
21346 |
sSCNfldbl='$sSCNfldbl' |
21347 |
sched_yield='$sched_yield' |
21348 |
scriptdir='$scriptdir' |
21349 |
scriptdirexp='$scriptdirexp' |
21350 |
sed='$sed' |
21351 |
seedfunc='$seedfunc' |
21352 |
selectminbits='$selectminbits' |
21353 |
selecttype='$selecttype' |
21354 |
sendmail='$sendmail' |
21355 |
setgrent_r_proto='$setgrent_r_proto' |
21356 |
sethostent_r_proto='$sethostent_r_proto' |
21357 |
setlocale_r_proto='$setlocale_r_proto' |
21358 |
setnetent_r_proto='$setnetent_r_proto' |
21359 |
setprotoent_r_proto='$setprotoent_r_proto' |
21360 |
setpwent_r_proto='$setpwent_r_proto' |
21361 |
setservent_r_proto='$setservent_r_proto' |
21362 |
sh='$sh' |
21363 |
shar='$shar' |
21364 |
sharpbang='$sharpbang' |
21365 |
shmattype='$shmattype' |
21366 |
shortsize='$shortsize' |
21367 |
shrpenv='$shrpenv' |
21368 |
shsharp='$shsharp' |
21369 |
sig_count='$sig_count' |
21370 |
sig_name='$sig_name' |
21371 |
sig_name_init='$sig_name_init' |
21372 |
sig_num='$sig_num' |
21373 |
sig_num_init='$sig_num_init' |
21374 |
sig_size='$sig_size' |
21375 |
signal_t='$signal_t' |
21376 |
sitearch='$sitearch' |
21377 |
sitearchexp='$sitearchexp' |
21378 |
sitebin='$sitebin' |
21379 |
sitebinexp='$sitebinexp' |
21380 |
sitehtml1dir='$sitehtml1dir' |
21381 |
sitehtml1direxp='$sitehtml1direxp' |
21382 |
sitehtml3dir='$sitehtml3dir' |
21383 |
sitehtml3direxp='$sitehtml3direxp' |
21384 |
sitelib='$sitelib' |
21385 |
sitelib_stem='$sitelib_stem' |
21386 |
sitelibexp='$sitelibexp' |
21387 |
siteman1dir='$siteman1dir' |
21388 |
siteman1direxp='$siteman1direxp' |
21389 |
siteman3dir='$siteman3dir' |
21390 |
siteman3direxp='$siteman3direxp' |
21391 |
siteprefix='$siteprefix' |
21392 |
siteprefixexp='$siteprefixexp' |
21393 |
sitescript='$sitescript' |
21394 |
sitescriptexp='$sitescriptexp' |
21395 |
sizesize='$sizesize' |
21396 |
sizetype='$sizetype' |
21397 |
sleep='$sleep' |
21398 |
smail='$smail' |
21399 |
so='$so' |
21400 |
sockethdr='$sockethdr' |
21401 |
socketlib='$socketlib' |
21402 |
socksizetype='$socksizetype' |
21403 |
sort='$sort' |
21404 |
spackage='$spackage' |
21405 |
spitshell='$spitshell' |
21406 |
srand48_r_proto='$srand48_r_proto' |
21407 |
srandom_r_proto='$srandom_r_proto' |
21408 |
src='$src' |
21409 |
ssizetype='$ssizetype' |
21410 |
startperl='$startperl' |
21411 |
startsh='$startsh' |
21412 |
static_ext='$static_ext' |
21413 |
stdchar='$stdchar' |
21414 |
stdio_base='$stdio_base' |
21415 |
stdio_bufsiz='$stdio_bufsiz' |
21416 |
stdio_cnt='$stdio_cnt' |
21417 |
stdio_filbuf='$stdio_filbuf' |
21418 |
stdio_ptr='$stdio_ptr' |
21419 |
stdio_stream_array='$stdio_stream_array' |
21420 |
strerror_r_proto='$strerror_r_proto' |
21421 |
strings='$strings' |
21422 |
submit='$submit' |
21423 |
subversion='$subversion' |
21424 |
sysman='$sysman' |
21425 |
tail='$tail' |
21426 |
tar='$tar' |
21427 |
targetarch='$targetarch' |
21428 |
tbl='$tbl' |
21429 |
tee='$tee' |
21430 |
test='$test' |
21431 |
timeincl='$timeincl' |
21432 |
timetype='$timetype' |
21433 |
tmpnam_r_proto='$tmpnam_r_proto' |
21434 |
to='$to' |
21435 |
touch='$touch' |
21436 |
tr='$tr' |
21437 |
trnl='$trnl' |
21438 |
troff='$troff' |
21439 |
ttyname_r_proto='$ttyname_r_proto' |
21440 |
u16size='$u16size' |
21441 |
u16type='$u16type' |
21442 |
u32size='$u32size' |
21443 |
u32type='$u32type' |
21444 |
u64size='$u64size' |
21445 |
u64type='$u64type' |
21446 |
u8size='$u8size' |
21447 |
u8type='$u8type' |
21448 |
uidformat='$uidformat' |
21449 |
uidsign='$uidsign' |
21450 |
uidsize='$uidsize' |
21451 |
uidtype='$uidtype' |
21452 |
uname='$uname' |
21453 |
uniq='$uniq' |
21454 |
uquadtype='$uquadtype' |
21455 |
use5005threads='$use5005threads' |
21456 |
use64bitall='$use64bitall' |
21457 |
use64bitint='$use64bitint' |
21458 |
usecrosscompile='$usecrosscompile' |
21459 |
usedl='$usedl' |
21460 |
usefaststdio='$usefaststdio' |
21461 |
useithreads='$useithreads' |
21462 |
uselargefiles='$uselargefiles' |
21463 |
uselongdouble='$uselongdouble' |
21464 |
usemallocwrap='$usemallocwrap' |
21465 |
usemorebits='$usemorebits' |
21466 |
usemultiplicity='$usemultiplicity' |
21467 |
usemymalloc='$usemymalloc' |
21468 |
usenm='$usenm' |
21469 |
useopcode='$useopcode' |
21470 |
useperlio='$useperlio' |
21471 |
useposix='$useposix' |
21472 |
usereentrant='$usereentrant' |
21473 |
usesfio='$usesfio' |
21474 |
useshrplib='$useshrplib' |
21475 |
usesitecustomize='$usesitecustomize' |
21476 |
usesocks='$usesocks' |
21477 |
usethreads='$usethreads' |
21478 |
usevendorprefix='$usevendorprefix' |
21479 |
usevfork='$usevfork' |
21480 |
usrinc='$usrinc' |
21481 |
uuname='$uuname' |
21482 |
uvXUformat='$uvXUformat' |
21483 |
uvoformat='$uvoformat' |
21484 |
uvsize='$uvsize' |
21485 |
uvtype='$uvtype' |
21486 |
uvuformat='$uvuformat' |
21487 |
uvxformat='$uvxformat' |
21488 |
vendorarch='$vendorarch' |
21489 |
vendorarchexp='$vendorarchexp' |
21490 |
vendorbin='$vendorbin' |
21491 |
vendorbinexp='$vendorbinexp' |
21492 |
vendorhtml1dir='$vendorhtml1dir' |
21493 |
vendorhtml1direxp='$vendorhtml1direxp' |
21494 |
vendorhtml3dir='$vendorhtml3dir' |
21495 |
vendorhtml3direxp='$vendorhtml3direxp' |
21496 |
vendorlib='$vendorlib' |
21497 |
vendorlib_stem='$vendorlib_stem' |
21498 |
vendorlibexp='$vendorlibexp' |
21499 |
vendorman1dir='$vendorman1dir' |
21500 |
vendorman1direxp='$vendorman1direxp' |
21501 |
vendorman3dir='$vendorman3dir' |
21502 |
vendorman3direxp='$vendorman3direxp' |
21503 |
vendorprefix='$vendorprefix' |
21504 |
vendorprefixexp='$vendorprefixexp' |
21505 |
vendorscript='$vendorscript' |
21506 |
vendorscriptexp='$vendorscriptexp' |
21507 |
version='$version' |
21508 |
version_patchlevel_string='$version_patchlevel_string' |
21509 |
versiononly='$versiononly' |
21510 |
vi='$vi' |
21511 |
voidflags='$voidflags' |
21512 |
xlibpth='$xlibpth' |
21513 |
yacc='$yacc' |
21514 |
yaccflags='$yaccflags' |
21515 |
zcat='$zcat' |
21516 |
zip='$zip' |
21517 |
EOT |
21518 |
|
21519 |
: Add in command line options if available |
21520 |
$test -f UU/cmdline.opt && $cat UU/cmdline.opt >> config.sh |
21521 |
|
21522 |
: add special variables |
21523 |
$test -f $src/patchlevel.h && \ |
21524 |
awk '/^#define[ ]+PERL_/ {printf "%s=%s\n",$2,$3}' $src/patchlevel.h >>config.sh |
21525 |
echo "PERL_PATCHLEVEL=$perl_patchlevel" >>config.sh |
21526 |
echo "PERL_CONFIG_SH=true" >>config.sh |
21527 |
|
21528 |
: propagate old symbols |
21529 |
if $test -f UU/config.sh; then |
21530 |
<UU/config.sh $sort | $uniq >UU/oldconfig.sh |
21531 |
sed -n 's/^\([a-zA-Z_0-9]*\)=.*/\1/p' config.sh config.sh UU/oldconfig.sh |\ |
21532 |
$sort | $uniq -u >UU/oldsyms |
21533 |
set X `cat UU/oldsyms` |
21534 |
shift |
21535 |
case $# in |
21536 |
0) ;; |
21537 |
*) |
21538 |
cat <<EOM |
21539 |
Hmm...You had some extra variables I don't know about...I'll try to keep 'em... |
21540 |
EOM |
21541 |
echo "# Variables propagated from previous config.sh file." >>config.sh |
21542 |
for sym in `cat UU/oldsyms`; do |
21543 |
echo " Propagating $hint variable "'$'"$sym..." |
21544 |
eval 'tmp="$'"${sym}"'"' |
21545 |
echo "$tmp" | \ |
21546 |
sed -e "s/'/'\"'\"'/g" -e "s/^/$sym='/" -e "s/$/'/" >>config.sh |
21547 |
done |
21548 |
;; |
21549 |
esac |
21550 |
fi |
21551 |
|
21552 |
: Finish up by extracting the .SH files |
21553 |
case "$alldone" in |
21554 |
exit) |
21555 |
$rm -rf UU |
21556 |
echo "Extraction done." |
21557 |
exit 0 |
21558 |
;; |
21559 |
cont) |
21560 |
;; |
21561 |
'') |
21562 |
dflt='' |
21563 |
nostick=true |
21564 |
$cat <<EOM |
21565 |
|
21566 |
If you'd like to make any changes to the config.sh file before I begin |
21567 |
to configure things, do it as a shell escape now (e.g. !vi config.sh). |
21568 |
|
21569 |
EOM |
21570 |
rp="Press return or use a shell escape to edit config.sh:" |
21571 |
. UU/myread |
21572 |
nostick='' |
21573 |
case "$ans" in |
21574 |
'') ;; |
21575 |
*) : in case they cannot read |
21576 |
sh 1>&4 -c "$ans";; |
21577 |
esac |
21578 |
;; |
21579 |
esac |
21580 |
|
21581 |
: if this fails, just run all the .SH files by hand |
21582 |
. ./config.sh |
21583 |
|
21584 |
echo " " |
21585 |
exec 1>&4 |
21586 |
pwd=`pwd` |
21587 |
. ./UU/extract |
21588 |
cd "$pwd" |
21589 |
|
21590 |
if $contains '^depend:' [Mm]akefile >/dev/null 2>&1; then |
21591 |
dflt=y |
21592 |
case "$silent" in |
21593 |
true) ;; |
21594 |
*) |
21595 |
$cat <<EOM |
21596 |
|
21597 |
Now you need to generate make dependencies by running "$make depend". |
21598 |
You might prefer to run it in background: "$make depend > makedepend.out &" |
21599 |
It can take a while, so you might not want to run it right now. |
21600 |
|
21601 |
EOM |
21602 |
;; |
21603 |
esac |
21604 |
rp="Run $make depend now?" |
21605 |
. UU/myread |
21606 |
case "$ans" in |
21607 |
y*) |
21608 |
$make depend && echo "Now you must run '$make'." |
21609 |
;; |
21610 |
*) |
21611 |
echo "You must run '$make depend' then '$make'." |
21612 |
;; |
21613 |
esac |
21614 |
elif test -f [Mm]akefile; then |
21615 |
echo " " |
21616 |
echo "Now you must run a $make." |
21617 |
else |
21618 |
echo "Configure done." |
21619 |
fi |
21620 |
|
21621 |
if $test -f Policy.sh; then |
21622 |
$cat <<EOM |
21623 |
|
21624 |
If you compile $package on a different machine or from a different object |
21625 |
directory, copy the Policy.sh file from this object directory to the |
21626 |
new one before you run Configure -- this will help you with most of |
21627 |
the policy defaults. |
21628 |
|
21629 |
EOM |
21630 |
fi |
21631 |
if $test -f config.msg; then |
21632 |
echo "Hmm. I also noted the following information while running:" |
21633 |
echo " " |
21634 |
$cat config.msg >&4 |
21635 |
$rm -f config.msg |
21636 |
fi |
21637 |
$rm -f kit*isdone ark*isdone |
21638 |
$rm -rf UU |
21639 |
|
21640 |
: End of Configure |
21641 |
|