This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Passing -R in ldflags makes now it to appear in the default
[perl5.git] / Configure
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 Sun Aug 27 18:14:56 EET DST 2000 [metaconfig 3.0 PL70]
24 # (with additional metaconfig patches by perlbug@perl.com)
25
26 cat >/tmp/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 >/tmp/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 /tmp/c1$$ /tmp/c2$$
44 true || exec sh $0 $argv:q
45
46 (exit $?0) || cat /tmp/c2$$
47 (exit $?0) || exec sh $0 $argv:q
48 rm -f /tmp/c1$$ /tmp/c2$$
49
50 : compute my invocation name
51 me=$0
52 case "$0" in
53 */*)
54         me=`echo $0 | sed -e 's!.*/\(.*\)!\1!' 2>/dev/null`
55         test "$me" || me=$0
56         ;;
57 esac
58
59 : Proper separator for the PATH environment variable
60 p_=:
61 : On OS/2 this directory should exist if this is not floppy only system :-]
62 if test -d c:/. ; then
63     if test -n "$OS2_SHELL"; then
64                 p_=\;
65                 PATH=`cmd /c "echo %PATH%" | tr '\\\\' / `
66                 OS2_SHELL=`cmd /c "echo %OS2_SHELL%" | tr '\\\\' / | tr '[A-Z]' '[a-z]'`
67         elif test -n "$DJGPP"; then
68                 p_=\;
69         fi
70 fi
71
72 : Proper PATH setting
73 paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
74 paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin"
75 paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
76 paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
77 paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
78 paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /usr/ccs/bin"
79 paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
80 paths="$paths /sbin /usr/sbin /usr/libexec"
81
82 for p in $paths
83 do
84         case "$p_$PATH$p_" in
85         *$p_$p$p_*) ;;
86         *) test -d $p && PATH=$PATH$p_$p ;;
87         esac
88 done
89
90 PATH=.$p_$PATH
91 export PATH
92
93 : shall we be using ksh?
94 inksh=''
95 needksh=''
96 avoidksh=''
97 newsh=/bin/ksh
98 changesh=''
99 if (PATH=.; alias -x) >/dev/null 2>&1; then
100                 inksh=true
101 fi
102 if test -f /hp-ux -a -f /bin/ksh; then
103         needksh='to avoid sh bug in "here document" expansion'
104 fi
105 if test -d /usr/lpp -a -f /usr/bin/bsh -a -f /usr/bin/uname; then
106         if test X`/usr/bin/uname -v` = X4; then
107                 avoidksh="to avoid AIX 4's /bin/sh"
108                 newsh=/usr/bin/bsh
109         fi
110 fi
111 if test -f /osf_boot -a -f /usr/sbin/setld; then
112         if test X`/usr/bin/uname -s` = XOSF1; then
113                 avoidksh="to avoid Digital UNIX' ksh"
114                 newsh=/bin/sh
115                 unset BIN_SH # if this is 'xpg4' sh will start up ksh
116         fi
117 fi
118 case "$inksh/$needksh" in
119 /[a-z]*)
120                 ENV=''
121                 changesh=true
122                 reason="$needksh"
123         ;;
124 esac
125 case "$inksh/$avoidksh" in
126 true/[a-z]*)
127         changesh=true
128         reason="$avoidksh"
129         ;;
130 esac
131 case "$inksh/$needksh-$avoidksh-" in
132 true/--)
133                 cat <<EOM
134 (I see you are using the Korn shell.  Some ksh's blow up on $me,
135 mainly on older exotic systems.  If yours does, try the Bourne shell instead.)
136 EOM
137         ;;
138 esac
139 case "$changesh" in
140 true)
141         echo "(Feeding myself to $newsh $reason.)"
142         case "$0" in
143         Configure|*/Configure) exec $newsh $0 "$@";;
144         *) exec $newsh Configure "$@";;
145         esac
146         ;;
147 esac
148
149 : if needed set CDPATH to a harmless value that is not chatty
150 : avoid bash 2.02 problems with empty CDPATH.
151 case "$CDPATH" in
152 '')     ;;
153 *)      case "$SHELL" in
154         *bash*) CDPATH='.' ;;
155         *)              CDPATH='' ;;
156         esac
157         ;;
158 esac
159 : Configure runs within the UU subdirectory
160 test -d UU || mkdir UU
161 cd UU && rm -f ./*
162
163 ccsymbols=''
164 cppccsymbols=''
165 cppsymbols=''
166 dynamic_ext=''
167 extensions=''
168 known_extensions=''
169 nonxs_ext=''
170 static_ext=''
171 useopcode=''
172 useposix=''
173 d_bsd=''
174 d_eunice=''
175 d_xenix=''
176 eunicefix=''
177 Mcc=''
178 ar=''
179 awk=''
180 bash=''
181 bison=''
182 byacc=''
183 cat=''
184 chgrp=''
185 chmod=''
186 chown=''
187 comm=''
188 compress=''
189 cp=''
190 cpio=''
191 cpp=''
192 csh=''
193 date=''
194 echo=''
195 egrep=''
196 emacs=''
197 expr=''
198 find=''
199 flex=''
200 grep=''
201 gzip=''
202 inews=''
203 ksh=''
204 less=''
205 line=''
206 lint=''
207 ln=''
208 lp=''
209 lpr=''
210 ls=''
211 mail=''
212 mailx=''
213 make=''
214 mkdir=''
215 more=''
216 mv=''
217 nm=''
218 nroff=''
219 perl=''
220 pg=''
221 pmake=''
222 pr=''
223 rm=''
224 rmail=''
225 sed=''
226 sendmail=''
227 shar=''
228 sleep=''
229 smail=''
230 sort=''
231 submit=''
232 tail=''
233 tar=''
234 tbl=''
235 tee=''
236 test=''
237 touch=''
238 tr=''
239 troff=''
240 uname=''
241 uniq=''
242 uuname=''
243 vi=''
244 zcat=''
245 zip=''
246 full_ar=''
247 full_sed=''
248 libswanted=''
249 hint=''
250 myuname=''
251 osname=''
252 osvers=''
253 Author=''
254 Date=''
255 Header=''
256 Id=''
257 Locker=''
258 Log=''
259 RCSfile=''
260 Revision=''
261 Source=''
262 State=''
263 _a=''
264 _exe=''
265 _o=''
266 archobjs=''
267 exe_ext=''
268 firstmakefile=''
269 lib_ext=''
270 obj_ext=''
271 path_sep=''
272 afs=''
273 alignbytes=''
274 ansi2knr=''
275 archlib=''
276 archlibexp=''
277 d_archlib=''
278 installarchlib=''
279 archname=''
280 myarchname=''
281 d_atolf=''
282 d_atoll=''
283 baserev=''
284 bin=''
285 binexp=''
286 installbin=''
287 bincompat5005=''
288 d_bincompat5005=''
289 byteorder=''
290 cc=''
291 ccflags=''
292 cppflags=''
293 ldflags=''
294 lkflags=''
295 locincpth=''
296 optimize=''
297 cf_email=''
298 cf_by=''
299 cf_time=''
300 charsize=''
301 contains=''
302 cpp_stuff=''
303 cpplast=''
304 cppminus=''
305 cpprun=''
306 cppstdin=''
307 crosscompile=''
308 d_access=''
309 d_accessx=''
310 d_alarm=''
311 d_attribut=''
312 d_bcmp=''
313 d_bcopy=''
314 d_bzero=''
315 d_casti32=''
316 castflags=''
317 d_castneg=''
318 d_chown=''
319 d_chroot=''
320 d_chsize=''
321 d_closedir=''
322 d_void_closedir=''
323 d_const=''
324 cryptlib=''
325 d_crypt=''
326 d_csh=''
327 full_csh=''
328 d_cuserid=''
329 d_dbl_dig=''
330 d_difftime=''
331 d_dlerror=''
332 d_dlopen=''
333 d_dlsymun=''
334 d_dosuid=''
335 d_suidsafe=''
336 d_drand48proto=''
337 d_dup2=''
338 d_eaccess=''
339 d_endgrent=''
340 d_endhent=''
341 d_endnent=''
342 d_endpent=''
343 d_endpwent=''
344 d_endsent=''
345 d_fchmod=''
346 d_fchown=''
347 d_fcntl=''
348 d_fd_macros=''
349 d_fd_set=''
350 d_fds_bits=''
351 d_fgetpos=''
352 d_flexfnam=''
353 d_flock=''
354 d_fork=''
355 d_fpos64_t=''
356 d_frexpl=''
357 d_fs_data_s=''
358 d_fseeko=''
359 d_fsetpos=''
360 d_fstatfs=''
361 d_ftello=''
362 d_ftime=''
363 d_gettimeod=''
364 d_Gconvert=''
365 d_getcwd=''
366 d_getespwnam=''
367 d_getfsstat=''
368 d_getgrent=''
369 d_getgrps=''
370 d_gethbyaddr=''
371 d_gethbyname=''
372 d_gethent=''
373 aphostname=''
374 d_gethname=''
375 d_phostname=''
376 d_uname=''
377 d_gethostprotos=''
378 d_getlogin=''
379 d_getmnt=''
380 d_getmntent=''
381 d_getnbyaddr=''
382 d_getnbyname=''
383 d_getnent=''
384 d_getnetprotos=''
385 d_getpent=''
386 d_getpgid=''
387 d_getpgrp2=''
388 d_bsdgetpgrp=''
389 d_getpgrp=''
390 d_getppid=''
391 d_getprior=''
392 d_getpbyname=''
393 d_getpbynumber=''
394 d_getprotoprotos=''
395 d_getprpwnam=''
396 d_getpwent=''
397 d_getsent=''
398 d_getservprotos=''
399 d_getspnam=''
400 d_getsbyname=''
401 d_getsbyport=''
402 d_gnulibc=''
403 d_hasmntopt=''
404 d_htonl=''
405 d_iconv=''
406 d_inetaton=''
407 d_int64_t=''
408 d_isascii=''
409 d_isnan=''
410 d_isnanl=''
411 d_killpg=''
412 d_lchown=''
413 d_ldbl_dig=''
414 d_link=''
415 d_locconv=''
416 d_lockf=''
417 d_longdbl=''
418 longdblsize=''
419 d_longlong=''
420 longlongsize=''
421 d_lseekproto=''
422 d_lstat=''
423 d_madvise=''
424 d_mblen=''
425 d_mbstowcs=''
426 d_mbtowc=''
427 d_memchr=''
428 d_memcmp=''
429 d_memcpy=''
430 d_memmove=''
431 d_memset=''
432 d_mkdir=''
433 d_mkdtemp=''
434 d_mkfifo=''
435 d_mkstemp=''
436 d_mkstemps=''
437 d_mktime=''
438 d_mmap=''
439 mmaptype=''
440 d_modfl=''
441 d_mprotect=''
442 d_msg=''
443 d_msgctl=''
444 d_msgget=''
445 d_msgrcv=''
446 d_msgsnd=''
447 d_msync=''
448 d_munmap=''
449 d_nice=''
450 d_off64_t=''
451 d_open3=''
452 d_fpathconf=''
453 d_pathconf=''
454 d_pause=''
455 d_pipe=''
456 d_poll=''
457 d_portable=''
458 d_old_pthread_create_joinable=''
459 old_pthread_create_joinable=''
460 d_pthread_yield=''
461 d_sched_yield=''
462 sched_yield=''
463 d_qgcvt=''
464 d_readdir=''
465 d_rewinddir=''
466 d_seekdir=''
467 d_telldir=''
468 d_readlink=''
469 d_rename=''
470 d_rmdir=''
471 d_safebcpy=''
472 d_safemcpy=''
473 d_sanemcmp=''
474 d_select=''
475 d_sem=''
476 d_semctl=''
477 d_semget=''
478 d_semop=''
479 d_setegid=''
480 d_seteuid=''
481 d_setgrent=''
482 d_setgrps=''
483 d_sethent=''
484 d_setlinebuf=''
485 d_setlocale=''
486 d_setnent=''
487 d_setpent=''
488 d_setpgid=''
489 d_setpgrp2=''
490 d_bsdsetpgrp=''
491 d_setpgrp=''
492 d_setprior=''
493 d_setproctitle=''
494 d_setpwent=''
495 d_setregid=''
496 d_setresgid=''
497 d_setresuid=''
498 d_setreuid=''
499 d_setrgid=''
500 d_setruid=''
501 d_setsent=''
502 d_setsid=''
503 d_setvbuf=''
504 d_sfio=''
505 usesfio=''
506 d_shm=''
507 d_shmat=''
508 d_shmatprototype=''
509 shmattype=''
510 d_shmctl=''
511 d_shmdt=''
512 d_shmget=''
513 d_sigaction=''
514 d_sigsetjmp=''
515 d_msg_ctrunc=''
516 d_msg_dontroute=''
517 d_msg_oob=''
518 d_msg_peek=''
519 d_msg_proxy=''
520 d_oldsock=''
521 d_scm_rights=''
522 d_socket=''
523 d_sockpair=''
524 sockethdr=''
525 socketlib=''
526 d_socklen_t=''
527 d_socks5_init=''
528 d_sqrtl=''
529 d_statblks=''
530 d_statfs_f_flags=''
531 d_statfs_s=''
532 d_fstatvfs=''
533 d_statvfs=''
534 d_stdio_cnt_lval=''
535 d_stdio_ptr_lval=''
536 d_stdiobase=''
537 d_stdstdio=''
538 stdio_base=''
539 stdio_bufsiz=''
540 stdio_cnt=''
541 stdio_filbuf=''
542 stdio_ptr=''
543 d_index=''
544 d_strchr=''
545 d_strcoll=''
546 d_strctcpy=''
547 d_strerrm=''
548 d_strerror=''
549 d_sysernlst=''
550 d_syserrlst=''
551 d_strtod=''
552 d_strtol=''
553 d_strtold=''
554 d_strtoll=''
555 d_strtoul=''
556 d_strtoull=''
557 d_strtouq=''
558 d_strxfrm=''
559 d_symlink=''
560 d_syscall=''
561 d_sysconf=''
562 d_system=''
563 d_tcgetpgrp=''
564 d_tcsetpgrp=''
565 d_telldirproto=''
566 d_time=''
567 timetype=''
568 clocktype=''
569 d_times=''
570 d_truncate=''
571 d_tzname=''
572 d_umask=''
573 d_semctl_semid_ds=''
574 d_semctl_semun=''
575 d_union_semun=''
576 d_ustat=''
577 d_vfork=''
578 usevfork=''
579 d_voidsig=''
580 signal_t=''
581 d_volatile=''
582 d_charvspr=''
583 d_vprintf=''
584 d_wait4=''
585 d_waitpid=''
586 d_wcstombs=''
587 d_wctomb=''
588 dlext=''
589 cccdlflags=''
590 ccdlflags=''
591 dlsrc=''
592 ld=''
593 lddlflags=''
594 usedl=''
595 doublesize=''
596 ebcdic=''
597 fflushNULL=''
598 fflushall=''
599 fpossize=''
600 fpostype=''
601 gccosandvers=''
602 gccversion=''
603 gidformat=''
604 gidsign=''
605 gidsize=''
606 gidtype=''
607 groupstype=''
608 h_fcntl=''
609 h_sysfile=''
610 i_arpainet=''
611 db_hashtype=''
612 db_prefixtype=''
613 i_db=''
614 i_dbm=''
615 i_rpcsvcdbm=''
616 d_dirnamlen=''
617 direntrytype=''
618 i_dirent=''
619 i_dld=''
620 i_dlfcn=''
621 i_fcntl=''
622 i_float=''
623 i_gdbm=''
624 d_grpasswd=''
625 i_grp=''
626 i_iconv=''
627 i_ieeefp=''
628 i_inttypes=''
629 i_libutil=''
630 i_limits=''
631 i_locale=''
632 i_machcthr=''
633 i_malloc=''
634 i_math=''
635 i_memory=''
636 i_mntent=''
637 i_ndbm=''
638 i_netdb=''
639 i_neterrno=''
640 i_netinettcp=''
641 i_niin=''
642 i_sysin=''
643 i_poll=''
644 i_prot=''
645 i_pthread=''
646 d_pwage=''
647 d_pwchange=''
648 d_pwclass=''
649 d_pwcomment=''
650 d_pwexpire=''
651 d_pwgecos=''
652 d_pwpasswd=''
653 d_pwquota=''
654 i_pwd=''
655 i_sfio=''
656 i_shadow=''
657 i_socks=''
658 i_stddef=''
659 i_stdlib=''
660 i_string=''
661 strings=''
662 i_sunmath=''
663 i_sysaccess=''
664 i_sysdir=''
665 i_sysfile=''
666 d_voidtty=''
667 i_bsdioctl=''
668 i_sysfilio=''
669 i_sysioctl=''
670 i_syssockio=''
671 i_syslog=''
672 i_sysmman=''
673 i_sysmode=''
674 i_sysmount=''
675 i_sysndir=''
676 i_sysparam=''
677 i_sysresrc=''
678 i_syssecrt=''
679 i_sysselct=''
680 i_sysstat=''
681 i_sysstatfs=''
682 i_sysstatvfs=''
683 i_systimes=''
684 i_systypes=''
685 i_sysuio=''
686 i_sysun=''
687 i_sysutsname=''
688 i_sysvfs=''
689 i_syswait=''
690 i_sgtty=''
691 i_termio=''
692 i_termios=''
693 i_systime=''
694 i_systimek=''
695 i_time=''
696 timeincl=''
697 i_unistd=''
698 i_ustat=''
699 i_utime=''
700 i_values=''
701 i_stdarg=''
702 i_varargs=''
703 i_varhdr=''
704 i_vfork=''
705 inc_version_list=''
706 inc_version_list_init=''
707 installprefix=''
708 installprefixexp=''
709 installstyle=''
710 installusrbinperl=''
711 intsize=''
712 longsize=''
713 shortsize=''
714 libc=''
715 ldlibpthname=''
716 libperl=''
717 shrpenv=''
718 useshrplib=''
719 glibpth=''
720 libpth=''
721 loclibpth=''
722 plibpth=''
723 xlibpth=''
724 ignore_versioned_solibs=''
725 libs=''
726 libsdirs=''
727 libsfiles=''
728 libsfound=''
729 libspath=''
730 lns=''
731 d_PRIEldbl=''
732 d_PRIFldbl=''
733 d_PRIGldbl=''
734 d_PRIeldbl=''
735 d_PRIfldbl=''
736 d_PRIgldbl=''
737 sPRIEldbl=''
738 sPRIFldbl=''
739 sPRIGldbl=''
740 sPRIeldbl=''
741 sPRIfldbl=''
742 sPRIgldbl=''
743 lseeksize=''
744 lseektype=''
745 make_set_make=''
746 d_mymalloc=''
747 freetype=''
748 mallocobj=''
749 mallocsrc=''
750 malloctype=''
751 usemymalloc=''
752 installman1dir=''
753 man1dir=''
754 man1direxp=''
755 man1ext=''
756 installman3dir=''
757 man3dir=''
758 man3direxp=''
759 man3ext=''
760 huge=''
761 large=''
762 medium=''
763 models=''
764 small=''
765 split=''
766 modetype=''
767 multiarch=''
768 mydomain=''
769 myhostname=''
770 phostname=''
771 c=''
772 n=''
773 d_eofnblk=''
774 eagain=''
775 o_nonblock=''
776 rd_nodata=''
777 netdb_hlen_type=''
778 netdb_host_type=''
779 netdb_name_type=''
780 netdb_net_type=''
781 groupcat=''
782 hostcat=''
783 passcat=''
784 orderlib=''
785 ranlib=''
786 d_perl_otherlibdirs=''
787 otherlibdirs=''
788 package=''
789 spackage=''
790 pager=''
791 api_revision=''
792 api_subversion=''
793 api_version=''
794 api_versionstring=''
795 patchlevel=''
796 revision=''
797 subversion=''
798 version=''
799 perl5=''
800 perladmin=''
801 perlpath=''
802 d_nv_preserves_uv=''
803 d_nv_preserves_uv_bits=''
804 i16size=''
805 i16type=''
806 i32size=''
807 i32type=''
808 i64size=''
809 i64type=''
810 i8size=''
811 i8type=''
812 ivsize=''
813 ivtype=''
814 nvsize=''
815 nvtype=''
816 u16size=''
817 u16type=''
818 u32size=''
819 u32type=''
820 u64size=''
821 u64type=''
822 u8size=''
823 u8type=''
824 uvsize=''
825 uvtype=''
826 ivdformat=''
827 nvEformat=''
828 nvFformat=''
829 nvGformat=''
830 nveformat=''
831 nvfformat=''
832 nvgformat=''
833 uvXformat=''
834 uvoformat=''
835 uvuformat=''
836 uvxformat=''
837 pidtype=''
838 prefix=''
839 prefixexp=''
840 installprivlib=''
841 privlib=''
842 privlibexp=''
843 prototype=''
844 ptrsize=''
845 d_PRIX64=''
846 d_PRId64=''
847 d_PRIi64=''
848 d_PRIo64=''
849 d_PRIu64=''
850 d_PRIx64=''
851 sPRIX64=''
852 sPRId64=''
853 sPRIi64=''
854 sPRIo64=''
855 sPRIu64=''
856 sPRIx64=''
857 d_quad=''
858 quadkind=''
859 quadtype=''
860 uquadtype=''
861 drand01=''
862 randbits=''
863 randfunc=''
864 randseedtype=''
865 seedfunc=''
866 installscript=''
867 scriptdir=''
868 scriptdirexp=''
869 selectminbits=''
870 selecttype=''
871 sh=''
872 sig_count=''
873 sig_name=''
874 sig_name_init=''
875 sig_num=''
876 sig_num_init=''
877 installsitearch=''
878 sitearch=''
879 sitearchexp=''
880 installsitebin=''
881 sitebin=''
882 sitebinexp=''
883 installsitelib=''
884 sitelib=''
885 sitelib_stem=''
886 sitelibexp=''
887 siteprefix=''
888 siteprefixexp=''
889 sizesize=''
890 sizetype=''
891 so=''
892 socksizetype=''
893 sharpbang=''
894 shsharp=''
895 spitshell=''
896 src=''
897 ssizetype=''
898 startperl=''
899 startsh=''
900 stdchar=''
901 d_stdio_stream_array=''
902 stdio_stream_array=''
903 sysman=''
904 trnl=''
905 uidformat=''
906 uidsign=''
907 uidsize=''
908 uidtype=''
909 archname64=''
910 use64bitall=''
911 use64bitint=''
912 ccflags_uselargefiles=''
913 ldflags_uselargefiles=''
914 libswanted_uselargefiles=''
915 uselargefiles=''
916 uselongdouble=''
917 usemorebits=''
918 usemultiplicity=''
919 nm_opt=''
920 nm_so_opt=''
921 runnm=''
922 usenm=''
923 useperlio=''
924 usesocks=''
925 d_oldpthreads=''
926 use5005threads=''
927 useithreads=''
928 usethreads=''
929 incpath=''
930 mips_type=''
931 usrinc=''
932 d_vendorarch=''
933 installvendorarch=''
934 vendorarch=''
935 vendorarchexp=''
936 d_vendorbin=''
937 installvendorbin=''
938 vendorbin=''
939 vendorbinexp=''
940 d_vendorlib=''
941 installvendorlib=''
942 vendorlib=''
943 vendorlib_stem=''
944 vendorlibexp=''
945 usevendorprefix=''
946 vendorprefix=''
947 vendorprefixexp=''
948 defvoidused=''
949 voidflags=''
950 pm_apiversion=''
951 xs_apiversion=''
952 CONFIG=''
953
954 define='define'
955 undef='undef'
956 smallmach='pdp11 i8086 z8000 i80286 iAPX286'
957 rmlist=''
958
959 : We must find out about Eunice early
960 eunicefix=':'
961 if test -f /etc/unixtovms; then
962         eunicefix=/etc/unixtovms
963 fi
964 if test -f /etc/unixtovms.exe; then
965         eunicefix=/etc/unixtovms.exe
966 fi
967
968 i_whoami=''
969 : set useposix=false in your hint file to disable the POSIX extension.
970 useposix=true
971 : set useopcode=false in your hint file to disable the Opcode extension.
972 useopcode=true
973 : Trailing extension.  Override this in a hint file, if needed.
974 _exe=''
975 : Extra object files, if any, needed on this platform.
976 archobjs=''
977 : Possible local include directories to search.
978 : Set locincpth to "" in a hint file to defeat local include searches.
979 locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
980 locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
981 :
982 : no include file wanted by default
983 inclwanted=''
984
985 groupstype=''
986 : change the next line if compiling for Xenix/286 on Xenix/386
987 xlibpth='/usr/lib/386 /lib/386'
988 : Possible local library directories to search.
989 loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
990 loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
991
992 : general looking path for locating libraries
993 glibpth="/usr/lib/large /lib /usr/lib $xlibpth"
994 glibpth="$glibpth /lib/large /usr/lib/small /lib/small"
995 glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
996 test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
997 test -f /shlib/libc.so     && glibpth="/shlib $glibpth"
998
999 : Private path used by Configure to find libraries.  Its value
1000 : is prepended to libpth. This variable takes care of special
1001 : machines, like the mips.  Usually, it should be empty.
1002 plibpth=''
1003
1004 : default library list
1005 libswanted=''
1006 : some systems want to use only the non-versioned libso:s
1007 ignore_versioned_solibs=''
1008 ccflags_uselargefiles=''
1009 ldflags_uselargefiles=''
1010 libswanted_uselargefiles=''
1011 : set usemultiplicity on the Configure command line to enable multiplicity.
1012 : set usesocks on the Configure command line to enable socks.
1013 : set usethreads on the Configure command line to enable threads.
1014 : full support for void wanted by default
1015 defvoidused=15
1016
1017 : List of libraries we want.
1018 : If anyone needs -lnet, put it in a hint file.
1019 libswanted='sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl'
1020 libswanted="$libswanted dld ld sun m c cposix posix"
1021 libswanted="$libswanted ndir dir crypt sec"
1022 libswanted="$libswanted ucb bsd BSD PW x iconv util"
1023 : We probably want to search /usr/shlib before most other libraries.
1024 : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
1025 glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
1026 glibpth="/usr/shlib $glibpth"
1027 : Do not use vfork unless overridden by a hint file.
1028 usevfork=false
1029
1030 : Find the basic shell for Bourne shell scripts
1031 case "$sh" in
1032 '')
1033         case "$SYSTYPE" in
1034         *bsd*|sys5*) xxx="/$SYSTYPE/bin/sh";;
1035         *) xxx='/bin/sh';;
1036         esac
1037         if test -f "$xxx"; then
1038                 sh="$xxx"
1039         else
1040                 : Build up a list and do a single loop so we can 'break' out.
1041                 pth=`echo $PATH | sed -e "s/$p_/ /g"`
1042                 for xxx in sh bash ksh pdksh ash; do
1043                         for p in $pth; do
1044                                 try="$try ${p}/${xxx}"
1045                         done
1046                 done
1047                 for xxx in $try; do
1048                         if test -f "$xxx"; then
1049                                 sh="$xxx";
1050                                 break
1051                         elif test -f "$xxx.exe"; then
1052                                 sh="$xxx";
1053                                 break
1054                         fi
1055                 done
1056         fi
1057         ;;
1058 esac
1059
1060 case "$sh" in
1061 '')     cat <<EOM >&2
1062 $me:  Fatal Error:  I can't find a Bourne Shell anywhere.  
1063
1064 Usually it's in /bin/sh.  How did you even get this far?
1065 Please contact me (Perl Maintainers) at perlbug@perl.com and 
1066 we'll try to straighten this all out.
1067 EOM
1068         exit 1
1069         ;;
1070 esac
1071
1072 : see if sh knows # comments
1073 if `$sh -c '#' >/dev/null 2>&1`; then
1074         shsharp=true
1075         spitshell=cat
1076         xcat=/bin/cat
1077         test -f $xcat || xcat=/usr/bin/cat
1078         echo "#!$xcat" >try
1079         $eunicefix try
1080         chmod +x try
1081         ./try > today
1082         if test -s today; then
1083                 sharpbang='#!'
1084         else
1085                 echo "#! $xcat" > try
1086                 $eunicefix try
1087                 chmod +x try
1088                 ./try > today
1089                 if test -s today; then
1090                         sharpbang='#! '
1091                 else
1092                         sharpbang=': use '
1093                 fi
1094         fi
1095 else
1096         echo " "
1097         echo "Your $sh doesn't grok # comments--I will strip them later on."
1098         shsharp=false
1099         cd ..
1100         echo "exec grep -v '^[  ]*#'" >spitshell
1101         chmod +x spitshell
1102         $eunicefix spitshell
1103         spitshell=`pwd`/spitshell
1104         cd UU
1105         echo "I presume that if # doesn't work, #! won't work either!"
1106         sharpbang=': use '
1107 fi
1108 rm -f try today
1109
1110 : figure out how to guarantee sh startup
1111 case "$startsh" in
1112 '') startsh=${sharpbang}${sh} ;;
1113 *)
1114 esac
1115 cat >try <<EOSS
1116 $startsh
1117 set abc
1118 test "$?abc" != 1
1119 EOSS
1120
1121 chmod +x try
1122 $eunicefix try
1123 if ./try; then
1124         : echo "Yup, it does."
1125 else
1126         echo "Hmm... '$startsh' does not guarantee sh startup..."
1127         echo "You may have to fix up the shell scripts to make sure $sh runs them."
1128 fi
1129 rm -f try
1130
1131
1132 : Save command line options in file UU/cmdline.opt for later use in
1133 : generating config.sh.
1134 cat > cmdline.opt <<EOSH
1135 # Configure command line arguments.
1136 config_arg0='$0'
1137 config_args='$*'
1138 config_argc=$#
1139 EOSH
1140 argn=1
1141 for arg in "$@"; do
1142         cat >>cmdline.opt <<EOSH
1143 config_arg$argn='$arg'
1144 EOSH
1145         argn=`expr $argn + 1`
1146 done
1147
1148 : produce awk script to parse command line options
1149 cat >options.awk <<'EOF'
1150 BEGIN {
1151         optstr = "A:dD:eEf:hKOrsSU:V";  # getopt-style specification
1152
1153         len = length(optstr);
1154         for (i = 1; i <= len; i++) {
1155                 c = substr(optstr, i, 1);
1156                 if (i < len) a = substr(optstr, i + 1, 1); else a = "";
1157                 if (a == ":") {
1158                         arg[c] = 1;
1159                         i++;
1160                 }
1161                 opt[c] = 1;
1162         }
1163 }
1164 {
1165         expect = 0;
1166         str = $0;
1167         if (substr(str, 1, 1) != "-") {
1168                 printf("'%s'\n", str);
1169                 next;
1170         }
1171         len = length($0);
1172         for (i = 2; i <= len; i++) {
1173                 c = substr(str, i, 1);
1174                 if (!opt[c]) {
1175                         printf("-%s\n", substr(str, i));
1176                         next;
1177                 }
1178                 printf("-%s\n", c);
1179                 if (arg[c]) {
1180                         if (i < len)
1181                                 printf("'%s'\n", substr(str, i + 1));
1182                         else
1183                                 expect = 1;
1184                         next;
1185                 }
1186         }
1187 }
1188 END {
1189         if (expect)
1190                 print "?";
1191 }
1192 EOF
1193
1194 : process the command line options
1195 set X `for arg in "$@"; do echo "X$arg"; done |
1196         sed -e s/X// | awk -f options.awk`
1197 eval "set $*"
1198 shift
1199 rm -f options.awk
1200
1201 : set up default values
1202 fastread=''
1203 reuseval=false
1204 config_sh=''
1205 alldone=''
1206 error=''
1207 silent=''
1208 extractsh=''
1209 override=''
1210 knowitall=''
1211 rm -f optdef.sh posthint.sh
1212 cat >optdef.sh <<EOS
1213 $startsh
1214 EOS
1215
1216
1217 : option parsing
1218 while test $# -gt 0; do
1219         case "$1" in
1220         -d) shift; fastread=yes;;
1221         -e) shift; alldone=cont;;
1222         -f)
1223                 shift
1224                 cd ..
1225                 if test -r "$1"; then
1226                         config_sh="$1"
1227                 else
1228                         echo "$me: cannot read config file $1." >&2
1229                         error=true
1230                 fi
1231                 cd UU
1232                 shift;;
1233         -h) shift; error=true;;
1234         -r) shift; reuseval=true;;
1235         -s) shift; silent=true; realsilent=true;;
1236         -E) shift; alldone=exit;;
1237         -K) shift; knowitall=true;;
1238         -O) shift; override=true;;
1239         -S) shift; silent=true; extractsh=true;;
1240         -D)
1241                 shift
1242                 case "$1" in
1243                 *=)
1244                         echo "$me: use '-U symbol=', not '-D symbol='." >&2
1245                         echo "$me: ignoring -D $1" >&2
1246                         ;;
1247                 *=*) echo "$1" | \
1248                                 sed -e "s/'/'\"'\"'/g" -e "s/=\(.*\)/='\1'/" >> optdef.sh;;
1249                 *) echo "$1='define'" >> optdef.sh;;
1250                 esac
1251                 shift
1252                 ;;
1253         -U)
1254                 shift
1255                 case "$1" in
1256                 *=) echo "$1" >> optdef.sh;;
1257                 *=*)
1258                         echo "$me: use '-D symbol=val', not '-U symbol=val'." >&2
1259                         echo "$me: ignoring -U $1" >&2
1260                         ;;
1261                 *) echo "$1='undef'" >> optdef.sh;;
1262                 esac
1263                 shift
1264                 ;;
1265         -A)
1266             shift
1267             xxx=''
1268             yyy="$1"
1269             zzz=''
1270             uuu=undef
1271             case "$yyy" in
1272             *=*) zzz=`echo $yyy|sed 's!=.*!!'`
1273                  case "$zzz" in
1274                  *:*) zzz='' ;;
1275                  *)   xxx=append
1276                       zzz=" "`echo $yyy|sed 's!^[^=]*=!!'` 
1277                       yyy=`echo $yyy|sed 's!=.*!!'` ;;
1278                  esac
1279                  ;;
1280             esac
1281             case "$xxx" in
1282             '')  case "$yyy" in
1283                  *:*) xxx=`echo $yyy|sed 's!:.*!!'`
1284                       yyy=`echo $yyy|sed 's!^[^:]*:!!'`
1285                       zzz=`echo $yyy|sed 's!^[^=]*=!!'`
1286                       yyy=`echo $yyy|sed 's!=.*!!'` ;;
1287                  *)   xxx=`echo $yyy|sed 's!:.*!!'`
1288                       yyy=`echo $yyy|sed 's!^[^:]*:!!'` ;;
1289                  esac
1290                  ;;       
1291             esac
1292             case "$xxx" in
1293             append)
1294                 echo "$yyy=\"\${$yyy}$zzz\""    >> posthint.sh ;;
1295             clear)
1296                 echo "$yyy=''"                  >> posthint.sh ;;
1297             define)
1298                 case "$zzz" in
1299                 '') zzz=define ;;
1300                 esac
1301                 echo "$yyy='$zzz'"              >> posthint.sh ;;
1302             eval)
1303                 echo "eval \"$yyy=$zzz\""       >> posthint.sh ;;
1304             prepend)
1305                 echo "$yyy=\"$zzz\${$yyy}\""    >> posthint.sh ;;
1306             undef)
1307                 case "$zzz" in
1308                 '') zzz="$uuu" ;;
1309                 esac
1310                 echo "$yyy=$zzz"                >> posthint.sh ;;
1311             *)  echo "$me: unknown -A command '$xxx', ignoring -A $1" >&2 ;;
1312             esac
1313             shift
1314             ;;
1315         -V) echo "$me generated by metaconfig 3.0 PL70." >&2
1316             exit 0;;
1317         --) break;;
1318         -*) echo "$me: unknown option $1" >&2; shift; error=true;;
1319         *) break;;
1320         esac
1321 done
1322
1323 case "$error" in
1324 true)
1325         cat >&2 <<EOM
1326 Usage: $me [-dehrsEKOSV] [-f config.sh] [-D symbol] [-D symbol=value]
1327                  [-U symbol] [-U symbol=] [-A command:symbol...]
1328   -d : use defaults for all answers.
1329   -e : go on without questioning past the production of config.sh.
1330   -f : specify an alternate default configuration file.
1331   -h : print this help message and exit (with an error status).
1332   -r : reuse C symbols value if possible (skips costly nm extraction).
1333   -s : silent mode, only echoes questions and essential information.
1334   -D : define symbol to have some value:
1335          -D symbol         symbol gets the value 'define'
1336          -D symbol=value   symbol gets the value 'value'
1337   -E : stop at the end of questions, after having produced config.sh.
1338   -K : do not use unless you know what you are doing.
1339   -O : let -D and -U override definitions from loaded configuration file.
1340   -S : perform variable substitutions on all .SH files (can mix with -f)
1341   -U : undefine symbol:
1342          -U symbol    symbol gets the value 'undef'
1343          -U symbol=   symbol gets completely empty
1344   -A : manipulate symbol after the platform specific hints have been applied:
1345          -A symbol=value                append " "value to symbol
1346          -A append:symbol=value         append value to symbol
1347          -A define:symbol=value         define symbol to have value
1348          -A clear:symbol                define symbol to be ''
1349          -A define:symbol               define symbol to be 'define'
1350          -A eval:symbol=value           define symbol to be eval of value
1351          -A prepend:symbol=value        prepend value to symbol
1352          -A undef:symbol                define symbol to be 'undef'
1353          -A undef:symbol=               define symbol to be ''
1354   -V : print version number and exit (with a zero status).
1355 EOM
1356         exit 1
1357         ;;
1358 esac
1359
1360 : Sanity checks
1361 case "$fastread$alldone" in
1362 yescont|yesexit) ;;
1363 *)
1364         case "$extractsh" in
1365         true) ;;
1366         *)
1367                 if test ! -t 0; then
1368                         echo "Say 'sh Configure', not 'sh <Configure'"
1369                         exit 1
1370                 fi
1371                 ;;
1372         esac
1373         ;;
1374 esac
1375
1376 exec 4>&1
1377 case "$silent" in
1378 true) exec 1>/dev/null;;
1379 esac
1380
1381 : run the defines and the undefines, if any, but leave the file out there...
1382 touch optdef.sh
1383 . ./optdef.sh
1384 : create the posthint manipulation script and leave the file out there...
1385 touch posthint.sh
1386
1387 : set package name
1388 package=perl5
1389 first=`echo $package | sed -e 's/^\(.\).*/\1/'`
1390 last=`echo $package | sed -e 's/^.\(.*\)/\1/'`
1391 case "`echo AbyZ | tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
1392 ABYZ) spackage=`echo $first | tr '[:lower:]' '[:upper:]'`$last;;
1393 *) spackage=`echo $first | tr '[a-z]' '[A-Z]'`$last;;
1394 esac
1395
1396 : Some greps do not return status, grrr.
1397 echo "grimblepritz" >grimble
1398 if grep blurfldyick grimble >/dev/null 2>&1 ; then
1399         contains=contains
1400 elif grep grimblepritz grimble >/dev/null 2>&1 ; then
1401         contains=grep
1402 else
1403         contains=contains
1404 fi
1405 rm -f grimble
1406 : the following should work in any shell
1407 case "$contains" in
1408 contains*)
1409         echo " "
1410         echo "AGH!  Grep doesn't return a status.  Attempting remedial action."
1411         cat >contains <<'EOSS'
1412 grep "$1" "$2" >.greptmp && cat .greptmp && test -s .greptmp
1413 EOSS
1414 chmod +x contains
1415 esac
1416
1417 : Find the path to the source tree
1418 case "$src" in
1419 '') case "$0" in
1420     */*) src=`echo $0 | sed -e 's%/[^/][^/]*$%%'`
1421          case "$src" in
1422          /*)    ;;
1423          *)     src=`cd ../$src && pwd` ;;
1424          esac
1425          ;;
1426     *)   src='.';;
1427     esac;;
1428 esac
1429 case "$src" in
1430 '')     src=/
1431         rsrc=/
1432         ;;
1433 /*) rsrc="$src";;
1434 *) rsrc="../$src";;
1435 esac
1436 if test -f $rsrc/Configure && \
1437         $contains "^package=$package$" $rsrc/Configure >/dev/null 2>&1
1438 then
1439    : found it, so we are ok.
1440 else
1441         rsrc=''
1442         for src in . .. ../.. ../../.. ../../../..; do
1443                 if test -f ../$src/Configure && \
1444                         $contains "^package=$package$" ../$src/Configure >/dev/null 2>&1
1445                 then
1446                         rsrc=../$src
1447                         break
1448                 fi
1449         done
1450 fi
1451 case "$rsrc" in
1452 '')
1453         cat <<EOM >&4
1454
1455 Sorry, I can't seem to locate the source dir for $package.  Please start
1456 Configure with an explicit path -- i.e. /some/path/Configure.
1457
1458 EOM
1459         exit 1
1460         ;;
1461 ../.)   rsrc='..';;
1462 *)
1463         echo " "
1464         echo "Sources for $package found in \"$src\"." >&4
1465         ;;
1466 esac
1467
1468 : script used to extract .SH files with variable substitutions
1469 cat >extract <<'EOS'
1470 CONFIGDOTSH=true
1471 echo "Doing variable substitutions on .SH files..."
1472 if test -f $src/MANIFEST; then
1473         set x `awk '{print $1}' <$src/MANIFEST | grep '\.SH$'`
1474 else
1475         echo "(Looking for .SH files under the source directory.)"
1476         set x `(cd $src; find . -name "*.SH" -print)`
1477 fi
1478 shift
1479 case $# in
1480 0) set x `(cd $src; echo *.SH)`; shift;;
1481 esac
1482 if test ! -f $src/$1; then
1483         shift
1484 fi
1485 mkdir_p='
1486 name=$1;
1487 create="";
1488 while test $name; do
1489         if test ! -d "$name"; then
1490                 create="$name $create";
1491                 name=`echo $name | sed -e "s|^[^/]*$||"`;
1492                 name=`echo $name | sed -e "s|\(.*\)/.*|\1|"`;
1493         else
1494                 name="";
1495         fi;
1496 done;
1497 for file in $create; do
1498         mkdir $file;
1499 done
1500 '
1501 for file in $*; do
1502         case "$src" in
1503         ".")
1504                 case "$file" in
1505                 */*)
1506                         dir=`expr X$file : 'X\(.*\)/'`
1507                         file=`expr X$file : 'X.*/\(.*\)'`
1508                         (cd $dir && . ./$file)
1509                         ;;
1510                 *)
1511                         . ./$file
1512                         ;;
1513                 esac
1514                 ;;
1515         *)
1516                 case "$file" in
1517                 */*)
1518                         dir=`expr X$file : 'X\(.*\)/'`
1519                         file=`expr X$file : 'X.*/\(.*\)'`
1520                         (set x $dir; shift; eval $mkdir_p)
1521                         sh <$src/$dir/$file
1522                         ;;
1523                 *)
1524                         sh <$src/$file
1525                         ;;
1526                 esac
1527                 ;;
1528         esac
1529 done
1530 if test -f $src/config_h.SH; then
1531         if test ! -f config.h; then
1532         : oops, they left it out of MANIFEST, probably, so do it anyway.
1533         . $src/config_h.SH
1534         fi
1535 fi
1536 EOS
1537
1538 : extract files and exit if asked to do so
1539 case "$extractsh" in
1540 true)
1541         case "$realsilent" in
1542         true) ;;
1543         *) exec 1>&4;;
1544         esac
1545         case "$config_sh" in
1546         '') config_sh='config.sh';;
1547         esac
1548         echo " "
1549         echo "Fetching answers from $config_sh..."
1550         cd ..
1551         . $config_sh
1552         test "$override" && . ./optdef.sh
1553         echo " "
1554         . UU/extract
1555         rm -rf UU
1556         echo "Done."
1557         exit 0
1558         ;;
1559 esac
1560
1561 : Eunice requires " " instead of "", can you believe it
1562 echo " "
1563 : Here we go...
1564 echo "Beginning of configuration questions for $package."
1565
1566 trap 'echo " "; test -d ../UU && rm -rf X $rmlist; exit 1' 1 2 3 15
1567
1568 : first determine how to suppress newline on echo command
1569 echo " "
1570 echo "Checking echo to see how to suppress newlines..."
1571 (echo "hi there\c" ; echo " ") >.echotmp
1572 if $contains c .echotmp >/dev/null 2>&1 ; then
1573         echo "...using -n."
1574         n='-n'
1575         c=''
1576 else
1577         cat <<'EOM'
1578 ...using \c
1579 EOM
1580         n=''
1581         c='\c'
1582 fi
1583 echo $n "The star should be here-->$c"
1584 echo '*'
1585 rm -f .echotmp
1586
1587 : Now test for existence of everything in MANIFEST
1588 echo " "
1589 if test -f $rsrc/MANIFEST; then
1590         echo "First let's make sure your kit is complete.  Checking..." >&4
1591         awk '$1 !~ /PACK[A-Z]+/ {print $1}' $rsrc/MANIFEST | split -50
1592         rm -f missing
1593         tmppwd=`pwd`
1594         for filelist in x??; do
1595                 (cd $rsrc; ls `cat $tmppwd/$filelist` >/dev/null 2>>$tmppwd/missing)
1596         done
1597         if test -s missing; then
1598                 cat missing >&4
1599                 cat >&4 <<'EOM'
1600
1601 THIS PACKAGE SEEMS TO BE INCOMPLETE.
1602
1603 You have the option of continuing the configuration process, despite the
1604 distinct possibility that your kit is damaged, by typing 'y'es.  If you
1605 do, don't blame me if something goes wrong.  I advise you to type 'n'o
1606 and contact the author (perlbug@perl.com).
1607
1608 EOM
1609                 echo $n "Continue? [n] $c" >&4
1610                 read ans
1611                 case "$ans" in
1612                 y*)
1613                         echo "Continuing..." >&4
1614                         rm -f missing
1615                         ;;
1616                 *)
1617                         echo "ABORTING..." >&4
1618                         kill $$
1619                         ;;
1620                 esac
1621         else
1622                 echo "Looks good..."
1623         fi
1624 else
1625         echo "There is no MANIFEST file.  I hope your kit is complete !"
1626 fi
1627 rm -f missing x??
1628
1629 echo " "
1630 : Find the appropriate value for a newline for tr
1631 if test -n "$DJGPP"; then
1632        trnl='\012'
1633 fi
1634 if test X"$trnl" = X; then
1635         case "`echo foo|tr '\n' x 2>/dev/null`" in
1636         foox) trnl='\n' ;;
1637         esac
1638 fi
1639 if test X"$trnl" = X; then
1640         case "`echo foo|tr '\012' x 2>/dev/null`" in
1641         foox) trnl='\012' ;;
1642         esac
1643 fi
1644 if test X"$trnl" = X; then
1645         cat <<EOM >&2
1646
1647 $me: Fatal Error: cannot figure out how to translate newlines with 'tr'.
1648
1649 EOM
1650         exit 1
1651 fi
1652
1653 : compute the number of columns on the terminal for proper question formatting
1654 case "$COLUMNS" in
1655 '') COLUMNS='80';;
1656 esac
1657
1658 : set up the echo used in my read
1659 myecho="case \"\$xxxm\" in
1660 '') echo $n \"\$rp $c\" >&4;;
1661 *) case \"\$rp\" in
1662         '') echo $n \"[\$xxxm] $c\";;
1663         *)
1664                 if test \`echo \"\$rp [\$xxxm]  \" | wc -c\` -ge $COLUMNS; then
1665                         echo \"\$rp\" >&4
1666                         echo $n \"[\$xxxm] $c\" >&4
1667                 else
1668                         echo $n \"\$rp [\$xxxm] $c\" >&4
1669                 fi
1670                 ;;
1671         esac;;
1672 esac"
1673
1674 : now set up to do reads with possible shell escape and default assignment
1675 cat <<EOSC >myread
1676 $startsh
1677 xxxm=\$dflt
1678 $myecho
1679 ans='!'
1680 case "\$fastread" in
1681 yes) case "\$dflt" in
1682         '') ;;
1683         *) ans='';
1684                 case "\$silent-\$rp" in
1685                 true-) ;;
1686                 *) echo " " >&4;;
1687                 esac;;
1688         esac;;
1689 *) case "\$silent" in
1690         true) case "\$rp" in
1691                 '') ans='';;
1692                 esac;;
1693         esac;;
1694 esac
1695 while expr "X\$ans" : "X!" >/dev/null; do
1696         read answ
1697         set x \$xxxm
1698         shift
1699         aok=''; eval "ans=\\"\$answ\\"" && aok=y
1700         case  "\$answ" in
1701         "!")
1702                 sh 1>&4
1703                 echo " "
1704                 $myecho
1705                 ;;
1706         !*)
1707                 set x \`expr "X\$ans" : "X!\(.*\)\$"\`
1708                 shift
1709                 sh 1>&4 -c "\$*"
1710                 echo " "
1711                 $myecho
1712                 ;;
1713         "\$ans")
1714                 case "\$ans" in
1715                 \\&*)
1716                         set x \`expr "X\$ans" : "X&\(.*\)\$"\`
1717                         shift
1718                         case "\$1" in
1719                         -d)
1720                                 fastread=yes
1721                                 echo "(OK, I'll run with -d after this question.)" >&4
1722                                 ;;
1723                         -*)
1724                                 echo "*** Sorry, \$1 not supported yet." >&4
1725                                 ;;
1726                         esac
1727                         $myecho
1728                         ans=!
1729                         ;;
1730                 esac;;
1731         *)
1732                 case "\$aok" in
1733                 y)
1734                         echo "*** Substitution done -- please confirm."
1735                         xxxm="\$ans"
1736                         ans=\`echo $n "\$ans$c" | tr '$trnl' ' '\`
1737                         xxxm="\$ans"
1738                         ans=!
1739                         ;;
1740                 *)
1741                         echo "*** Error -- try again."
1742                         ans=!
1743                         ;;
1744                 esac
1745                 $myecho
1746                 ;;
1747         esac
1748         case "\$ans\$xxxm\$nostick" in
1749         '')
1750                 ans=!
1751                 $myecho
1752                 ;;
1753         esac
1754 done
1755 case "\$ans" in
1756 '') ans="\$xxxm";;
1757 esac
1758 EOSC
1759
1760 : create .config dir to save info across Configure sessions
1761 test -d ../.config || mkdir ../.config
1762 cat >../.config/README <<EOF
1763 This directory created by Configure to save information that should
1764 persist across sessions for $package.
1765
1766 You may safely delete it if you wish.
1767 EOF
1768
1769 xpatchlevel=`awk '/define[      ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h`
1770 case "$usedevel" in
1771 $define|true|[yY]*) ;;
1772 *) case "$xpatchlevel" in
1773    *[13579])
1774         cat >&4 <<EOH
1775 *** WHOA THERE!!! ***
1776
1777     This is an UNSTABLE DEVELOPMENT release.
1778     (The patchlevel, $xpatchlevel, is odd--as opposed to even,
1779      and that signifies a development release.  If you want a
1780      maintenance release, you want an even-numbered release.)
1781
1782     Do ***NOT*** install this into production use.
1783     Data corruption and crashes are possible.
1784
1785     It is most seriously suggested that you do not continue any further
1786     unless you want to help in developing and debugging Perl.
1787
1788 EOH
1789         rp='Do you really want to continue?'
1790         dflt='n'
1791         . ./myread
1792         case "$ans" in
1793         [yY]) echo >&4 "Okay, continuing." ;;
1794         *) echo >&4 "Okay, bye."
1795            exit 1
1796            ;;
1797         esac
1798         ;;
1799     esac
1800     ;;
1801 esac
1802
1803 : general instructions
1804 needman=true
1805 firsttime=true
1806 user=`(logname) 2>/dev/null`
1807 case "$user" in
1808 '') user=`whoami 2>&1`;;
1809 esac
1810 if $contains "^$user\$" ../.config/instruct >/dev/null 2>&1; then
1811         firsttime=false
1812         echo " "
1813         rp='Would you like to see the instructions?'
1814         dflt=n
1815         . ./myread
1816         case "$ans" in
1817         [yY]*) ;;
1818         *) needman=false;;
1819         esac
1820 fi
1821 if $needman; then
1822         cat <<EOH
1823
1824 This installation shell script will examine your system and ask you questions
1825 to determine how the perl5 package should be installed. If you get
1826 stuck on a question, you may use a ! shell escape to start a subshell or
1827 execute a command.  Many of the questions will have default answers in square
1828 brackets; typing carriage return will give you the default.
1829
1830 On some of the questions which ask for file or directory names you are allowed
1831 to use the ~name construct to specify the login directory belonging to "name",
1832 even if you don't have a shell which knows about that.  Questions where this is
1833 allowed will be marked "(~name ok)".
1834
1835 EOH
1836         rp=''
1837         dflt='Type carriage return to continue'
1838         . ./myread
1839         cat <<'EOH'
1840
1841 The prompter used in this script allows you to use shell variables and
1842 backticks in your answers.  You may use $1, $2, etc...  to refer to the words
1843 in the default answer, as if the default line was a set of arguments given to a
1844 script shell.  This means you may also use $* to repeat the whole default line,
1845 so you do not have to re-type everything to add something to the default.
1846
1847 Everytime there is a substitution, you will have to confirm.  If there is an
1848 error (e.g. an unmatched backtick), the default answer will remain unchanged
1849 and you will be prompted again.
1850
1851 If you are in a hurry, you may run 'Configure -d'.  This will bypass nearly all
1852 the questions and use the computed defaults (or the previous answers if there
1853 was already a config.sh file). Type 'Configure -h' for a list of options.
1854 You may also start interactively and then answer '& -d' at any prompt to turn
1855 on the non-interactive behaviour for the remainder of the execution.
1856
1857 EOH
1858         . ./myread
1859         cat <<EOH
1860
1861 Much effort has been expended to ensure that this shell script will run on any
1862 Unix system.  If despite that it blows up on yours, your best bet is to edit
1863 Configure and run it again.  If you can't run Configure for some reason,
1864 you'll have to generate a config.sh file by hand.  Whatever problems you
1865 have, let me (perlbug@perl.com) know how I blew it.
1866
1867 This installation script affects things in two ways:
1868
1869 1) it may do direct variable substitutions on some of the files included
1870    in this kit.
1871 2) it builds a config.h file for inclusion in C programs.  You may edit
1872    any of these files as the need arises after running this script.
1873
1874 If you make a mistake on a question, there is no easy way to back up to it
1875 currently.  The easiest thing to do is to edit config.sh and rerun all the SH
1876 files.  Configure will offer to let you do this before it runs the SH files.
1877
1878 EOH
1879         dflt='Type carriage return to continue'
1880         . ./myread
1881         case "$firsttime" in
1882         true) echo $user >>../.config/instruct;;
1883         esac
1884 fi
1885
1886 : find out where common programs are
1887 echo " "
1888 echo "Locating common programs..." >&4
1889 cat <<EOSC >loc
1890 $startsh
1891 case \$# in
1892 0) exit 1;;
1893 esac
1894 thing=\$1
1895 shift
1896 dflt=\$1
1897 shift
1898 for dir in \$*; do
1899         case "\$thing" in
1900         .)
1901         if test -d \$dir/\$thing; then
1902                 echo \$dir
1903                 exit 0
1904         fi
1905         ;;
1906         *)
1907         for thisthing in \$dir/\$thing; do
1908                 : just loop through to pick last item
1909         done
1910         if test -f \$thisthing; then
1911                 echo \$thisthing
1912                 exit 0
1913         elif test -f \$dir/\$thing.exe; then
1914                 if test -n "$DJGPP"; then
1915                         echo \$dir/\$thing.exe
1916                 else
1917                         : on Eunice apparently
1918                         echo \$dir/\$thing
1919                 fi
1920                 exit 0
1921         fi
1922         ;;
1923         esac
1924 done
1925 echo \$dflt
1926 exit 1
1927 EOSC
1928 chmod +x loc
1929 $eunicefix loc
1930 loclist="
1931 awk
1932 cat
1933 comm
1934 cp
1935 echo
1936 expr
1937 grep
1938 ls
1939 make
1940 mkdir
1941 rm
1942 sed
1943 sort
1944 touch
1945 tr
1946 uniq
1947 "
1948 trylist="
1949 Mcc
1950 ar
1951 byacc
1952 cpp
1953 csh
1954 date
1955 egrep
1956 gzip
1957 less
1958 ln
1959 more
1960 nm
1961 nroff
1962 pg
1963 test
1964 uname
1965 zip
1966 "
1967 pth=`echo $PATH | sed -e "s/$p_/ /g"`
1968 pth="$pth /lib /usr/lib"
1969 for file in $loclist; do
1970         eval xxx=\$$file
1971         case "$xxx" in
1972         /*|?:[\\/]*)
1973                 if test -f "$xxx"; then
1974                         : ok
1975                 else
1976                         echo "WARNING: no $xxx -- ignoring your setting for $file." >&4
1977                         xxx=`./loc $file $file $pth`
1978                 fi
1979                 ;;
1980         '') xxx=`./loc $file $file $pth`;;
1981         *) xxx=`./loc $xxx $xxx $pth`;;
1982         esac
1983         eval $file=$xxx
1984         eval _$file=$xxx
1985         case "$xxx" in
1986         /*)
1987                 echo $file is in $xxx.
1988                 ;;
1989         ?:[\\/]*)
1990                 echo $file is in $xxx.
1991                 ;;
1992         *)
1993                 echo "I don't know where '$file' is, and my life depends on it." >&4
1994                 echo "Go find a public domain implementation or fix your PATH setting!" >&4
1995                 exit 1
1996                 ;;
1997         esac
1998 done
1999 echo " "
2000 echo "Don't worry if any of the following aren't found..."
2001 say=offhand
2002 for file in $trylist; do
2003         eval xxx=\$$file
2004         case "$xxx" in
2005         /*|?:[\\/]*)
2006                 if test -f "$xxx"; then
2007                         : ok
2008                 else
2009                         echo "WARNING: no $xxx -- ignoring your setting for $file." >&4
2010                         xxx=`./loc $file $file $pth`
2011                 fi
2012                 ;;
2013         '') xxx=`./loc $file $file $pth`;;
2014         *) xxx=`./loc $xxx $xxx $pth`;;
2015         esac
2016         eval $file=$xxx
2017         eval _$file=$xxx
2018         case "$xxx" in
2019         /*)
2020                 echo $file is in $xxx.
2021                 ;;
2022         ?:[\\/]*)
2023                 echo $file is in $xxx.
2024                 ;;
2025         *)
2026                 echo "I don't see $file out there, $say."
2027                 say=either
2028                 ;;
2029         esac
2030 done
2031 case "$egrep" in
2032 egrep)
2033         echo "Substituting grep for egrep."
2034         egrep=$grep
2035         ;;
2036 esac
2037 case "$ln" in
2038 ln)
2039         echo "Substituting cp for ln."
2040         ln=$cp
2041         ;;
2042 esac
2043 case "$test" in
2044 test)
2045         echo "Hopefully test is built into your sh."
2046         ;;
2047 *)
2048         if `sh -c "PATH= test true" >/dev/null 2>&1`; then
2049                 echo "Using the test built into your sh."
2050                 test=test
2051                 _test=test
2052         fi
2053         ;;
2054 esac
2055 case "$echo" in
2056 echo)
2057         echo "Hopefully echo is built into your sh."
2058         ;;
2059 '') ;;
2060 *)
2061         echo " "
2062 echo "Checking compatibility between $echo and builtin echo (if any)..." >&4
2063         $echo $n "hi there$c" >foo1
2064         echo $n "hi there$c" >foo2
2065         if cmp foo1 foo2 >/dev/null 2>&1; then
2066                 echo "They are compatible.  In fact, they may be identical."
2067         else
2068                 case "$n" in
2069                 '-n') n='' c='\c';;
2070                 *) n='-n' c='';;
2071                 esac
2072                 cat <<FOO
2073 They are not compatible!  You are probably running ksh on a non-USG system.
2074 I'll have to use $echo instead of the builtin, since Bourne shell doesn't
2075 have echo built in and we may have to run some Bourne shell scripts.  That
2076 means I'll have to use '$n$c' to suppress newlines now.  Life is ridiculous.
2077
2078 FOO
2079                 $echo $n "The star should be here-->$c"
2080                 $echo "*"
2081         fi
2082         $rm -f foo1 foo2
2083         ;;
2084 esac
2085
2086 cat <<EOS >checkcc
2087 $startsh
2088 EOS
2089 cat <<'EOSC' >>checkcc
2090 case "$cc" in
2091 '') ;;
2092 *)  $rm -f try try.*
2093     $cat >try.c <<EOM
2094 int main(int argc, char *argv[]) {
2095   return 0;
2096 }
2097 EOM
2098     if $cc -o try try.c; then
2099        :
2100     else
2101         echo "Uh-oh, the C compiler '$cc' doesn't seem to be working." >&4
2102         despair=yes
2103         trygcc=yes
2104         case "$cc" in
2105         *gcc*) trygcc=no ;;
2106         esac
2107         case "`$cc -v -c try.c 2>&1`" in
2108         *gcc*) trygcc=no ;;
2109         esac
2110         if $test X"$trygcc" = Xyes; then
2111             if gcc -o try -c try.c; then
2112                 echo " "
2113                 echo "You seem to have a working gcc, though." >&4
2114                 rp="Would you like to use it?"
2115                 dflt=y
2116                 if $test -f myread; then
2117                     . ./myread
2118                 else
2119                     if $test -f UU/myread; then
2120                         . ./UU/myread
2121                     else
2122                         echo "Cannot find myread, sorry.  Aborting." >&2
2123                         exit 1
2124                     fi
2125                 fi  
2126                 case "$ans" in
2127                 [yY]*) cc=gcc; ccflags=''; despair=no ;;
2128                 esac
2129             fi
2130         fi
2131         if $test X"$despair" = Xyes; then
2132             echo "You need to find a working C compiler." >&4
2133             echo "I cannot continue any further, aborting." >&4
2134             exit 1
2135         fi
2136     fi
2137     $rm -f try try.*
2138     ;;
2139 esac
2140 EOSC
2141
2142 : determine whether symbolic links are supported
2143 echo " "
2144 $touch blurfl
2145 if $ln -s blurfl sym > /dev/null 2>&1 ; then
2146         echo "Symbolic links are supported." >&4
2147         lns="$ln -s"
2148 else
2149         echo "Symbolic links are NOT supported." >&4
2150         lns="$ln"
2151 fi
2152 $rm -f blurfl sym
2153
2154 : see whether [:lower:] and [:upper:] are supported character classes
2155 echo " "
2156 case "`echo AbyZ | $tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
2157 ABYZ)
2158         echo "Good, your tr supports [:lower:] and [:upper:] to convert case." >&4
2159         up='[:upper:]'
2160         low='[:lower:]'
2161         ;;
2162 *)      # There is a discontinuity in EBCDIC between 'I' and 'J'
2163         # (0xc9 and 0xd1), therefore that is a nice testing point.
2164         if test "X$up" = X -o "X$low" = X; then
2165             case "`echo IJ | $tr '[I-J]' '[i-j]' 2>/dev/null`" in
2166             ij) up='[A-Z]'
2167                 low='[a-z]'
2168                 ;;
2169             esac
2170         fi
2171         if test "X$up" = X -o "X$low" = X; then
2172             case "`echo IJ | $tr I-J i-j 2>/dev/null`" in
2173             ij) up='A-Z'
2174                 low='a-z'
2175                 ;;
2176             esac
2177         fi
2178         if test "X$up" = X -o "X$low" = X; then
2179             case "`echo IJ | od -x 2>/dev/null`" in
2180             *C9D1*|*c9d1*)
2181                 echo "Hey, this might be EBCDIC." >&4
2182                 if test "X$up" = X -o "X$low" = X; then
2183                     case "`echo IJ | $tr '[A-IJ-RS-Z]' '[a-ij-rs-z]' 2>/dev/null`" in
2184                     ij) up='[A-IJ-RS-Z]'
2185                         low='[a-ij-rs-z]'
2186                         ;;
2187                     esac
2188                 fi
2189                 if test "X$up" = X -o "X$low" = X; then
2190                     case "`echo IJ | $tr A-IJ-RS-Z a-ij-rs-z 2>/dev/null`" in
2191                     ij) up='A-IJ-RS-Z'
2192                         low='a-ij-rs-z'
2193                         ;;
2194                     esac
2195                 fi
2196                 ;;
2197             esac
2198         fi
2199 esac
2200 case "`echo IJ | $tr \"$up\" \"$low\" 2>/dev/null`" in
2201 ij)
2202     echo "Using $up and $low to convert case." >&4
2203     ;;
2204 *)
2205     echo "I don't know how to translate letters from upper to lower case." >&4
2206     echo "Your tr is not acting any way I know of." >&4
2207     exit 1
2208     ;;
2209 esac
2210 : set up the translation script tr, must be called with ./tr of course
2211 cat >tr <<EOSC
2212 $startsh
2213 case "\$1\$2" in
2214 '[A-Z][a-z]') exec $tr '$up' '$low';;
2215 '[a-z][A-Z]') exec $tr '$low' '$up';;
2216 esac
2217 exec $tr "\$@"
2218 EOSC
2219 chmod +x tr
2220 $eunicefix tr
2221
2222 : Try to determine whether config.sh was made on this system
2223 case "$config_sh" in
2224 '')
2225 myuname=`$uname -a 2>/dev/null`
2226 $test -z "$myuname" && myuname=`hostname 2>/dev/null`
2227 # tr '[A-Z]' '[a-z]' would not work in EBCDIC
2228 # because the A-Z/a-z are not consecutive.
2229 myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e 's/\///g' | \
2230         ./tr '[A-Z]' '[a-z]' | $tr $trnl ' '`
2231 newmyuname="$myuname"
2232 dflt=n
2233 case "$knowitall" in
2234 '')
2235         if test -f ../config.sh; then
2236                 if $contains myuname= ../config.sh >/dev/null 2>&1; then
2237                         eval "`grep myuname= ../config.sh`"
2238                 fi
2239                 if test "X$myuname" = "X$newmyuname"; then
2240                         dflt=y
2241                 fi
2242         fi
2243         ;;
2244 *) dflt=y;;
2245 esac
2246
2247 : Get old answers from old config file if Configure was run on the
2248 : same system, otherwise use the hints.
2249 hint=default
2250 cd ..
2251 if test -f config.sh; then
2252         echo " "
2253         rp="I see a config.sh file.  Shall I use it to set the defaults?"
2254         . UU/myread
2255         case "$ans" in
2256         n*|N*) echo "OK, I'll ignore it."; mv config.sh config.sh.old;;
2257         *)  echo "Fetching default answers from your old config.sh file..." >&4
2258                 tmp_n="$n"
2259                 tmp_c="$c"
2260                 tmp_sh="$sh"
2261                 . ./config.sh
2262                 cp config.sh UU
2263                 n="$tmp_n"
2264                 c="$tmp_c"
2265                 : Older versions did not always set $sh.  Catch re-use of such
2266                 : an old config.sh.
2267                 case "$sh" in
2268                 '') sh="$tmp_sh" ;;
2269                 esac
2270                 hint=previous
2271                 ;;
2272         esac
2273 fi
2274 . ./UU/checkcc
2275 if test ! -f config.sh; then
2276         $cat <<EOM
2277
2278 First time through, eh?  I have some defaults handy for some systems
2279 that need some extra help getting the Configure answers right:
2280
2281 EOM
2282         (cd $src/hints; ls -C *.sh) | $sed 's/\.sh/   /g' >&4
2283         dflt=''
2284         : Half the following guesses are probably wrong... If you have better
2285         : tests or hints, please send them to perlbug@perl.com
2286         : The metaconfig authors would also appreciate a copy...
2287         $test -f /irix && osname=irix
2288         $test -f /xenix && osname=sco_xenix
2289         $test -f /dynix && osname=dynix
2290         $test -f /dnix && osname=dnix
2291         $test -f /lynx.os && osname=lynxos
2292         $test -f /unicos && osname=unicos && osvers=`$uname -r`
2293         $test -f /unicosmk && osname=unicosmk && osvers=`$uname -r`
2294         $test -f /unicosmk.ar && osname=unicosmk && osvers=`$uname -r`
2295         $test -f /bin/mips && /bin/mips && osname=mips
2296         $test -d /NextApps && set X `hostinfo | grep 'NeXT Mach.*:' | \
2297                 $sed -e 's/://' -e 's/\./_/'` && osname=next && osvers=$4
2298         $test -d /usr/apollo/bin && osname=apollo
2299         $test -f /etc/saf/_sactab && osname=svr4
2300         $test -d /usr/include/minix && osname=minix
2301         if $test -d /MachTen -o -d /MachTen_Folder; then
2302                 osname=machten
2303                 if $test -x /sbin/version; then
2304                         osvers=`/sbin/version | $awk '{print $2}' |
2305                         $sed -e 's/[A-Za-z]$//'`
2306                 elif $test -x /usr/etc/version; then
2307                         osvers=`/usr/etc/version | $awk '{print $2}' |
2308                         $sed -e 's/[A-Za-z]$//'`
2309                 else
2310                         osvers="$2.$3"
2311                 fi
2312         fi
2313
2314         $test -f /sys/posix.dll &&
2315                 $test -f /usr/bin/what &&
2316                 set X `/usr/bin/what /sys/posix.dll` &&
2317                 $test "$3" = UWIN &&
2318                 osname=uwin &&
2319                 osvers="$5"
2320
2321         if $test -f $uname; then
2322                 set X $myuname
2323                 shift
2324
2325                 case "$5" in
2326                 fps*) osname=fps ;;
2327                 mips*)
2328                         case "$4" in
2329                         umips) osname=umips ;;
2330                         *) osname=mips ;;
2331                         esac;;
2332                 [23]100) osname=mips ;;
2333                 next*) osname=next ;;
2334                 i386*)
2335                         tmp=`/bin/uname -X 2>/dev/null|awk '/3\.2v[45]/{ print $(NF) }'`
2336                         if $test "$tmp" != "" -a "$3" = "3.2" -a -f '/etc/systemid'; then
2337                                 osname='sco'
2338                                 osvers=$tmp
2339                         elif $test -f /etc/kconfig; then
2340                                 osname=isc
2341                                 if test "$lns" = "$ln -s"; then
2342                                         osvers=4
2343                                 elif $contains _SYSV3 /usr/include/stdio.h > /dev/null 2>&1 ; then
2344                                         osvers=3
2345                                 elif $contains _POSIX_SOURCE /usr/include/stdio.h > /dev/null 2>&1 ; then
2346                                         osvers=2
2347                                 fi
2348                         fi
2349                         tmp=''
2350                         ;;
2351                 pc*)
2352                         if test -n "$DJGPP"; then
2353                                 osname=dos
2354                                 osvers=djgpp
2355                         fi
2356                         ;;
2357                 esac
2358
2359                 case "$1" in
2360                 aix) osname=aix
2361                         tmp=`( (oslevel) 2>/dev/null || echo "not found") 2>&1`
2362                         case "$tmp" in
2363                         'not found') osvers="$4"."$3" ;;
2364                         '<3240'|'<>3240') osvers=3.2.0 ;;
2365                         '=3240'|'>3240'|'<3250'|'<>3250') osvers=3.2.4 ;;
2366                         '=3250'|'>3250') osvers=3.2.5 ;;
2367                         *) osvers=$tmp;;
2368                         esac
2369                         ;;
2370                 bsd386) osname=bsd386
2371                         osvers=`$uname -r`
2372                         ;;
2373                 cygwin*) osname=cygwin
2374                         osvers="$3"
2375                         ;;
2376                 *dc.osx) osname=dcosx
2377                         osvers="$3"
2378                         ;;
2379                 dnix) osname=dnix
2380                         osvers="$3"
2381                         ;;
2382                 domainos) osname=apollo
2383                         osvers="$3"
2384                         ;;
2385                 dgux) osname=dgux 
2386                         osvers="$3"
2387                         ;;
2388                 dynixptx*) osname=dynixptx
2389                         osvers=`echo "$4"|sed 's/^v//'`
2390                         ;;
2391                 freebsd) osname=freebsd 
2392                         osvers="$3" ;;
2393                 genix) osname=genix ;;
2394                 hp*) osname=hpux 
2395                         osvers=`echo "$3" | $sed 's,.*\.\([0-9]*\.[0-9]*\),\1,'`
2396                         ;;
2397                 irix*) osname=irix
2398                         case "$3" in
2399                         4*) osvers=4 ;;
2400                         5*) osvers=5 ;;
2401                         *)      osvers="$3" ;;
2402                         esac
2403                         ;;
2404                 linux) osname=linux
2405                         case "$3" in
2406                         *)      osvers="$3" ;;
2407                         esac
2408                         ;;
2409                 MiNT) osname=mint
2410                         ;;
2411                 netbsd*) osname=netbsd
2412                         osvers="$3"
2413                         ;;
2414                 news-os) osvers="$3"
2415                         case "$3" in
2416                         4*) osname=newsos4 ;;
2417                         *) osname=newsos ;;
2418                         esac
2419                         ;;
2420                 next*) osname=next ;;
2421                 POSIX-BC | posix-bc ) osname=posix-bc
2422                         osvers="$3"
2423                         ;;
2424                 powerux | power_ux | powermax_os | powermaxos | \
2425                 powerunix | power_unix) osname=powerux
2426                         osvers="$3"
2427                         ;;
2428                 qnx) osname=qnx
2429                         osvers="$4"
2430                         ;;
2431                 solaris) osname=solaris
2432                         case "$3" in
2433                         5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;;
2434                         *)      osvers="$3" ;;
2435                         esac
2436                         ;;
2437                 sunos) osname=sunos
2438                         case "$3" in
2439                         5*) osname=solaris
2440                                 osvers=`echo $3 | $sed 's/^5/2/g'` ;;
2441                         *)      osvers="$3" ;;
2442                         esac
2443                         ;;
2444                 titanos) osname=titanos
2445                         case "$3" in
2446                         1*) osvers=1 ;;
2447                         2*) osvers=2 ;;
2448                         3*) osvers=3 ;;
2449                         4*) osvers=4 ;;
2450                         *)      osvers="$3" ;;
2451                         esac
2452                         ;;
2453                 ultrix) osname=ultrix
2454                         osvers="$3"
2455                         ;;
2456                 osf1|mls+)      case "$5" in
2457                                 alpha)
2458                                         osname=dec_osf
2459                                         osvers=`sizer -v | awk '{print $3}' |  tr '[A-Z]' '[a-z]' | sed 's/^[xvt]//'`
2460                                         case "$osvers" in
2461                                         [1-9].[0-9]*) ;;
2462                                         *) osvers=`echo "$3" | sed 's/^[xvt]//'` ;;
2463                                         esac
2464                                         ;;
2465                         hp*)    osname=hp_osf1  ;;
2466                         mips)   osname=mips_osf1 ;;
2467                         esac
2468                         ;;
2469                 unixware) osname=svr5
2470                         osvers="$4"
2471                         ;;
2472                 uts) osname=uts
2473                         osvers="$3"
2474                         ;;
2475                 $2) case "$osname" in
2476                         *isc*) ;;
2477                         *freebsd*) ;;
2478                         svr*)
2479                                 : svr4.x or possibly later
2480                                 case "svr$3" in 
2481                                 ${osname}*)
2482                                         osname=svr$3
2483                                         osvers=$4
2484                                         ;;
2485                                 esac
2486                                 case "$osname" in
2487                                 svr4.0)
2488                                         : Check for ESIX
2489                                         if test -f /stand/boot ; then
2490                                                 eval `grep '^INITPROG=[a-z/0-9]*$' /stand/boot`
2491                                                 if test -n "$INITPROG" -a -f "$INITPROG"; then
2492                         isesix=`strings -a $INITPROG|grep 'ESIX SYSTEM V/386 Release 4.0'`
2493                                                         if test -n "$isesix"; then
2494                                                                 osname=esix4
2495                                                         fi
2496                                                 fi
2497                                         fi
2498                                         ;;
2499                                 esac
2500                                 ;;
2501                         *)      if test -f /etc/systemid; then
2502                                         osname=sco
2503                                         set `echo $3 | $sed 's/\./ /g'` $4
2504                                         if $test -f $src/hints/sco_$1_$2_$3.sh; then
2505                                                 osvers=$1.$2.$3
2506                                         elif $test -f $src/hints/sco_$1_$2.sh; then
2507                                                 osvers=$1.$2
2508                                         elif $test -f $src/hints/sco_$1.sh; then
2509                                                 osvers=$1
2510                                         fi
2511                                 else
2512                                         case "$osname" in
2513                                         '') : Still unknown.  Probably a generic Sys V.
2514                                                 osname="sysv"
2515                                                 osvers="$3"
2516                                                 ;;
2517                                         esac
2518                                 fi
2519                                 ;;
2520                         esac
2521                         ;;
2522                 *)      case "$osname" in
2523                         '') : Still unknown.  Probably a generic BSD.
2524                                 osname="$1"
2525                                 osvers="$3"
2526                                 ;;
2527                         esac
2528                         ;;
2529                 esac
2530         else
2531                 if test -f /vmunix -a -f $src/hints/news_os.sh; then
2532                         (what /vmunix | UU/tr '[A-Z]' '[a-z]') > UU/kernel.what 2>&1
2533                         if $contains news-os UU/kernel.what >/dev/null 2>&1; then
2534                                 osname=news_os
2535                         fi
2536                         $rm -f UU/kernel.what
2537                 elif test -d c:/.; then
2538                         set X $myuname
2539                         osname=os2
2540                         osvers="$5"
2541                 fi
2542         fi
2543         
2544         : Now look for a hint file osname_osvers, unless one has been
2545         : specified already.
2546         case "$hintfile" in
2547         ''|' ')
2548                 file=`echo "${osname}_${osvers}" | $sed -e 's%\.%_%g' -e 's%_$%%'`
2549                 : Also try without trailing minor version numbers.
2550                 xfile=`echo $file | $sed -e 's%_[^_]*$%%'`
2551                 xxfile=`echo $xfile | $sed -e 's%_[^_]*$%%'`
2552                 xxxfile=`echo $xxfile | $sed -e 's%_[^_]*$%%'`
2553                 xxxxfile=`echo $xxxfile | $sed -e 's%_[^_]*$%%'`
2554                 case "$file" in
2555                 '') dflt=none ;;
2556                 *)  case "$osvers" in
2557                         '') dflt=$file
2558                                 ;;
2559                         *)  if $test -f $src/hints/$file.sh ; then
2560                                         dflt=$file
2561                                 elif $test -f $src/hints/$xfile.sh ; then
2562                                         dflt=$xfile
2563                                 elif $test -f $src/hints/$xxfile.sh ; then
2564                                         dflt=$xxfile
2565                                 elif $test -f $src/hints/$xxxfile.sh ; then
2566                                         dflt=$xxxfile
2567                                 elif $test -f $src/hints/$xxxxfile.sh ; then
2568                                         dflt=$xxxxfile
2569                                 elif $test -f "$src/hints/${osname}.sh" ; then
2570                                         dflt="${osname}"
2571                                 else
2572                                         dflt=none
2573                                 fi
2574                                 ;;
2575                         esac
2576                         ;;
2577                 esac
2578                 if $test -f Policy.sh ; then
2579                         case "$dflt" in
2580                         *Policy*) ;;
2581                         none) dflt="Policy" ;;
2582                         *) dflt="Policy $dflt" ;;
2583                         esac
2584                 fi
2585                 ;;
2586         *)
2587                 dflt=`echo $hintfile | $sed 's/\.sh$//'`
2588                 ;;
2589         esac
2590
2591         if $test -f Policy.sh ; then
2592                 $cat <<EOM
2593
2594 There's also a Policy hint file available, which should make the
2595 site-specific (policy) questions easier to answer.
2596 EOM
2597
2598         fi
2599
2600         $cat <<EOM
2601
2602 You may give one or more space-separated answers, or "none" if appropriate.
2603 A well-behaved OS will have no hints, so answering "none" or just "Policy"
2604 is a good thing.  DO NOT give a wrong version or a wrong OS.
2605
2606 EOM
2607
2608         rp="Which of these apply, if any?"
2609         . UU/myread
2610         tans=$ans
2611         for file in $tans; do
2612                 if $test X$file = XPolicy -a -f Policy.sh; then
2613                         . Policy.sh
2614                         $cat Policy.sh >> UU/config.sh
2615                 elif $test -f $src/hints/$file.sh; then
2616                         . $src/hints/$file.sh
2617                         $cat $src/hints/$file.sh >> UU/config.sh
2618                 elif $test X$tans = X -o X$tans = Xnone ; then
2619                         : nothing
2620                 else
2621                         : Give one chance to correct a possible typo.
2622                         echo "$file.sh does not exist"
2623                         dflt=$file
2624                         rp="hint to use instead?"
2625                         . UU/myread
2626                         for file in $ans; do
2627                                 if $test -f "$src/hints/$file.sh"; then
2628                                         . $src/hints/$file.sh
2629                                         $cat $src/hints/$file.sh >> UU/config.sh
2630                                 elif $test X$ans = X -o X$ans = Xnone ; then
2631                                         : nothing
2632                                 else
2633                                         echo "$file.sh does not exist -- ignored."
2634                                 fi
2635                         done
2636                 fi
2637         done
2638
2639         hint=recommended
2640         : Remember our hint file for later.
2641         if $test -f "$src/hints/$file.sh" ; then
2642                 hintfile="$file"
2643         else
2644                 hintfile=''
2645         fi
2646 fi
2647 cd UU
2648 ;;
2649 *)
2650         echo " "
2651         echo "Fetching default answers from $config_sh..." >&4
2652         tmp_n="$n"
2653         tmp_c="$c"
2654         cd ..
2655         cp $config_sh config.sh 2>/dev/null
2656         chmod +w config.sh
2657         . ./config.sh
2658         cd UU
2659         cp ../config.sh .
2660         n="$tmp_n"
2661         c="$tmp_c"
2662         hint=previous
2663         ;;
2664 esac
2665 test "$override" && . ./optdef.sh
2666 myuname="$newmyuname"
2667
2668 : Restore computed paths
2669 for file in $loclist $trylist; do
2670         eval $file="\$_$file"
2671 done
2672
2673 cat << EOM
2674
2675 Configure uses the operating system name and version to set some defaults.
2676 The default value is probably right if the name rings a bell. Otherwise,
2677 since spelling matters for me, either accept the default or answer "none"
2678 to leave it blank.
2679
2680 EOM
2681 case "$osname" in
2682         ''|' ')
2683                 case "$hintfile" in
2684                 ''|' '|none) dflt=none ;;
2685                 *)  dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/_.*$//'` ;;
2686                 esac
2687                 ;;
2688         *) dflt="$osname" ;;
2689 esac
2690 rp="Operating system name?"
2691 . ./myread
2692 case "$ans" in
2693 none)  osname='' ;;
2694 *) osname=`echo "$ans" | $sed -e 's/[   ][      ]*/_/g' | ./tr '[A-Z]' '[a-z]'`;;
2695 esac
2696 echo " "
2697 case "$osvers" in
2698         ''|' ')
2699                 case "$hintfile" in
2700                 ''|' '|none) dflt=none ;;
2701                 *)      dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/^[^_]*//'`
2702                         dflt=`echo $dflt | $sed -e 's/^_//' -e 's/_/./g'`
2703                         case "$dflt" in
2704                         ''|' ') dflt=none ;;
2705                         esac
2706                         ;;
2707                 esac
2708                 ;;
2709         *) dflt="$osvers" ;;
2710 esac
2711 rp="Operating system version?"
2712 . ./myread
2713 case "$ans" in
2714 none)  osvers='' ;;
2715 *) osvers="$ans" ;;
2716 esac
2717
2718
2719 . ./posthint.sh
2720
2721 : who configured the system
2722 cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1`
2723 cf_by=`(logname) 2>/dev/null`
2724 case "$cf_by" in
2725 "")
2726         cf_by=`(whoami) 2>/dev/null`
2727         case "$cf_by" in
2728         "") cf_by=unknown ;;
2729         esac ;;
2730 esac
2731
2732 : set up the script used to warn in case of inconsistency
2733 cat <<EOS >whoa
2734 $startsh
2735 EOS
2736 cat <<'EOSC' >>whoa
2737 dflt=y
2738 echo " "
2739 echo "*** WHOA THERE!!! ***" >&4
2740 echo "    The $hint value for \$$var on this machine was \"$was\"!" >&4
2741 rp="    Keep the $hint value?"
2742 . ./myread
2743 case "$ans" in
2744 y) td=$was; tu=$was;;
2745 esac
2746 EOSC
2747
2748 : function used to set $1 to $val
2749 setvar='var=$1; eval "was=\$$1"; td=$define; tu=$undef;
2750 case "$val$was" in
2751 $define$undef) . ./whoa; eval "$var=\$td";;
2752 $undef$define) . ./whoa; eval "$var=\$tu";;
2753 *) eval "$var=$val";;
2754 esac'
2755
2756 case "$usethreads" in
2757 $define|true|[yY]*)     dflt='y';;
2758 *) dflt='n';;
2759 esac
2760 cat <<EOM
2761
2762 Perl can be built to take advantage of threads on some systems.
2763 To do so, Configure can be run with -Dusethreads.
2764
2765 Note that threading is a highly experimental feature, and
2766 some known race conditions still remain.  If you choose to try
2767 it, be very sure to not actually deploy it for production
2768 purposes.  README.threads has more details, and is required
2769 reading if you enable threads.
2770
2771 If this doesn't make any sense to you, just accept the default '$dflt'.
2772 EOM
2773 rp='Build a threading Perl?'
2774 . ./myread
2775 case "$ans" in
2776 y|Y)    val="$define" ;;
2777 *)      val="$undef" ;;
2778 esac
2779 set usethreads
2780 eval $setvar
2781
2782 case "$usethreads" in
2783 $define)
2784         $cat <<EOM
2785
2786 As of 5.5.640, Perl has two different internal threading implementations,
2787 the 5.005 version (5005threads) and an interpreter-based version
2788 (ithreads) that has one interpreter per thread.  Both are very 
2789 experimental.  This arrangement exists to help developers work out
2790 which one is better.
2791
2792 If you're a casual user, you probably don't want interpreter-threads
2793 at this time.  There doesn't yet exist a way to create threads from
2794 within Perl in this model, i.e., "use Thread;" will NOT work.
2795 EOM
2796         : Default to ithreads unless overridden on command line or with
2797         : old config.sh
2798         dflt='y'
2799         case "$use5005threads" in
2800                 $define|true|[yY]*) dflt='n';;
2801         esac
2802         case "$useithreads" in
2803                 $undef|false|[nN]*) dflt='n';;
2804         esac
2805         rp='Use interpreter-based ithreads?'
2806         . ./myread
2807         case "$ans" in
2808         y|Y)    val="$define" ;;
2809         *)      val="$undef" ;;
2810         esac
2811         set useithreads
2812         eval $setvar
2813         : Now set use5005threads to the opposite value.
2814         case "$useithreads" in
2815         $define) val="$undef" ;;
2816         *) val="$define" ;;
2817         esac
2818         set use5005threads
2819         eval $setvar
2820         ;;
2821 *)
2822         useithreads="$undef"
2823         use5005threads="$undef"
2824         ;;
2825 esac
2826
2827 case "$d_oldpthreads" in
2828 '')     : Configure tests would be welcome here.  For now, assume undef.
2829         val="$undef" ;;
2830 *)      val="$d_oldpthreads" ;;
2831 esac
2832 set d_oldpthreads
2833 eval $setvar
2834
2835
2836 case "$usethreads" in
2837 "$define"|true|[yY]*)
2838 : Look for a hint-file generated 'call-back-unit'.  If the
2839 : user has specified that a threading perl is to be built,
2840 : we may need to set or change some other defaults.
2841         if $test -f usethreads.cbu; then
2842                 echo "Your platform has some specific hints for threaded builds, using them..."
2843                 . ./usethreads.cbu
2844         else
2845                 $cat <<EOM
2846 (Your platform doesn't have any specific hints for threaded builds.
2847  Assuming POSIX threads, then.)
2848 EOM
2849         fi
2850         ;;
2851 esac
2852
2853 cat <<EOM
2854
2855 Perl can be built so that multiple Perl interpreters can coexist
2856 within the same Perl executable.
2857 EOM
2858
2859 case "$useithreads" in
2860 $define)
2861         cat <<EOM
2862 This multiple interpreter support is required for interpreter-based threads.
2863 EOM
2864         val="$define"
2865         ;;
2866 *)      case "$usemultiplicity" in
2867         $define|true|[yY]*)     dflt='y';;
2868         *) dflt='n';;
2869         esac
2870         echo " "
2871         echo "If this doesn't make any sense to you, just accept the default '$dflt'."
2872         rp='Build Perl for multiplicity?'
2873         . ./myread
2874         case "$ans" in
2875         y|Y)    val="$define" ;;
2876         *)      val="$undef" ;;
2877         esac
2878         ;;
2879 esac
2880 set usemultiplicity
2881 eval $setvar
2882
2883 : determine where manual pages are on this system
2884 echo " "
2885 case "$sysman" in
2886 '') 
2887         syspath='/usr/man/man1 /usr/man/mann /usr/man/manl /usr/man/local/man1'
2888         syspath="$syspath /usr/man/u_man/man1 /usr/share/man/man1"
2889         syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
2890         syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
2891         syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
2892         sysman=`./loc . /usr/man/man1 $syspath`
2893         ;;
2894 esac
2895 if $test -d "$sysman"; then
2896         echo "System manual is in $sysman." >&4
2897 else
2898         echo "Could not find manual pages in source form." >&4
2899 fi
2900
2901 : see what memory models we can support
2902 case "$models" in
2903 '')
2904         $cat >pdp11.c <<'EOP'
2905 int main() {
2906 #ifdef pdp11
2907         exit(0);
2908 #else
2909         exit(1);
2910 #endif
2911 }
2912 EOP
2913         case "$cc" in
2914         '') modelcc="$cc" ;;
2915         *) modelcc="cc" ;;
2916         esac
2917         ( $modelcc -o pdp11 pdp11.c ) >/dev/null 2>&1
2918         if $test -f pdp11 && ./pdp11 2>/dev/null; then
2919                 dflt='unsplit split'
2920         else
2921                 tans=`./loc . X /lib/small /lib/large /usr/lib/small /usr/lib/large /lib/medium /usr/lib/medium /lib/huge`
2922                 case "$tans" in
2923                 X) dflt='none';;
2924                 *) if $test -d /lib/small || $test -d /usr/lib/small; then
2925                                 dflt='small'
2926                         else
2927                                 dflt=''
2928                         fi
2929                         if $test -d /lib/medium || $test -d /usr/lib/medium; then
2930                                 dflt="$dflt medium"
2931                         fi
2932                         if $test -d /lib/large || $test -d /usr/lib/large; then
2933                                 dflt="$dflt large"
2934                         fi
2935                         if $test -d /lib/huge || $test -d /usr/lib/huge; then
2936                                 dflt="$dflt huge"
2937                         fi
2938                 esac
2939         fi;;
2940 *) dflt="$models";;
2941 esac
2942 $cat <<EOM
2943  
2944 Some systems have different model sizes.  On most systems they are called
2945 small, medium, large, and huge.  On the PDP11 they are called unsplit and
2946 split.  If your system doesn't support different memory models, say "none".
2947 If you wish to force everything to one memory model, say "none" here and
2948 put the appropriate flags later when it asks you for other cc and ld flags.
2949 Venix systems may wish to put "none" and let the compiler figure things out.
2950 (In the following question multiple model names should be space separated.)
2951
2952 The default for most systems is "none".
2953
2954 EOM
2955 rp="Which memory models are supported?"
2956 . ./myread
2957 models="$ans"
2958
2959 case "$models" in
2960 none)
2961         small=''
2962         medium=''
2963         large=''
2964         huge=''
2965         unsplit=''
2966         split=''
2967         ;;
2968 *split)
2969         case "$split" in
2970         '') if $contains '\-i' $sysman/ld.1 >/dev/null 2>&1 || \
2971                          $contains '\-i' $sysman/cc.1 >/dev/null 2>&1; then
2972                         dflt='-i'
2973                 else
2974                         dflt='none'
2975                 fi;;
2976         *) dflt="$split";;
2977         esac
2978         rp="What flag indicates separate I and D space?"
2979         . ./myread
2980         tans="$ans"
2981         case "$tans" in
2982         none) tans='';;
2983         esac
2984         split="$tans"
2985         unsplit='';;
2986 *large*|*small*|*medium*|*huge*)
2987         case "$models" in
2988         *large*)
2989                 case "$large" in
2990                 '') dflt='-Ml';;
2991                 *) dflt="$large";;
2992                 esac
2993         rp="What flag indicates large model?"
2994         . ./myread
2995         tans="$ans"
2996         case "$tans" in
2997         none) tans='';
2998         esac
2999         large="$tans";;
3000         *) large='';;
3001         esac
3002         case "$models" in
3003         *huge*) case "$huge" in
3004                 '') dflt='-Mh';;
3005                 *) dflt="$huge";;
3006                 esac
3007                 rp="What flag indicates huge model?"
3008                 . ./myread
3009                 tans="$ans"
3010                 case "$tans" in
3011                 none) tans='';
3012                 esac
3013                 huge="$tans";;
3014         *) huge="$large";;
3015         esac
3016         case "$models" in
3017         *medium*) case "$medium" in
3018                 '') dflt='-Mm';;
3019                 *) dflt="$medium";;
3020                 esac
3021                 rp="What flag indicates medium model?"
3022                 . ./myread
3023                 tans="$ans"
3024                 case "$tans" in
3025                 none) tans='';
3026                 esac
3027                 medium="$tans";;
3028         *) medium="$large";;
3029         esac
3030         case "$models" in
3031         *small*) case "$small" in
3032                 '') dflt='none';;
3033                 *) dflt="$small";;
3034                 esac
3035                 rp="What flag indicates small model?"
3036                 . ./myread
3037                 tans="$ans"
3038                 case "$tans" in
3039                 none) tans='';
3040                 esac
3041                 small="$tans";;
3042         *) small='';;
3043         esac
3044         ;;
3045 *)
3046         echo "Unrecognized memory models--you may have to edit Makefile.SH" >&4
3047         ;;
3048 esac
3049 $rm -f pdp11.* pdp11
3050
3051 : make some quick guesses about what we are up against
3052 echo " "
3053 $echo $n "Hmm...  $c"
3054 echo exit 1 >bsd
3055 echo exit 1 >usg
3056 echo exit 1 >v7
3057 echo exit 1 >osf1
3058 echo exit 1 >eunice
3059 echo exit 1 >xenix
3060 echo exit 1 >venix
3061 echo exit 1 >os2
3062 d_bsd="$undef"
3063 $cat /usr/include/signal.h /usr/include/sys/signal.h >foo 2>/dev/null
3064 if test -f /osf_boot || $contains 'OSF/1' /usr/include/ctype.h >/dev/null 2>&1
3065 then
3066         echo "Looks kind of like an OSF/1 system, but we'll see..."
3067         echo exit 0 >osf1
3068 elif test `echo abc | tr a-z A-Z` = Abc ; then
3069         xxx=`./loc addbib blurfl $pth`
3070         if $test -f $xxx; then
3071         echo "Looks kind of like a USG system with BSD features, but we'll see..."
3072                 echo exit 0 >bsd
3073                 echo exit 0 >usg
3074         else
3075                 if $contains SIGTSTP foo >/dev/null 2>&1 ; then
3076                         echo "Looks kind of like an extended USG system, but we'll see..."
3077                 else
3078                         echo "Looks kind of like a USG system, but we'll see..."
3079                 fi
3080                 echo exit 0 >usg
3081         fi
3082 elif $contains SIGTSTP foo >/dev/null 2>&1 ; then
3083         echo "Looks kind of like a BSD system, but we'll see..."
3084         d_bsd="$define"
3085         echo exit 0 >bsd
3086 else
3087         echo "Looks kind of like a Version 7 system, but we'll see..."
3088         echo exit 0 >v7
3089 fi
3090 case "$eunicefix" in
3091 *unixtovms*)
3092         $cat <<'EOI'
3093 There is, however, a strange, musty smell in the air that reminds me of
3094 something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit.
3095 EOI
3096         echo exit 0 >eunice
3097         d_eunice="$define"
3098 : it so happens the Eunice I know will not run shell scripts in Unix format
3099         ;;
3100 *)
3101         echo " "
3102         echo "Congratulations.  You aren't running Eunice."
3103         d_eunice="$undef"
3104         ;;
3105 esac
3106 : Detect OS2.  The p_ variable is set above in the Head.U unit.
3107 case "$p_" in
3108 :) ;;
3109 *)
3110         $cat <<'EOI'
3111 I have the feeling something is not exactly right, however...don't tell me...
3112 lemme think...does HAL ring a bell?...no, of course, you're only running OS/2!
3113 EOI
3114         echo exit 0 >os2
3115         ;;
3116 esac
3117 if test -f /xenix; then
3118         echo "Actually, this looks more like a XENIX system..."
3119         echo exit 0 >xenix
3120         d_xenix="$define"
3121 else
3122         echo " "
3123         echo "It's not Xenix..."
3124         d_xenix="$undef"
3125 fi
3126 chmod +x xenix
3127 $eunicefix xenix
3128 if test -f /venix; then
3129         echo "Actually, this looks more like a VENIX system..."
3130         echo exit 0 >venix
3131 else
3132         echo " "
3133         if ./xenix; then
3134                 : null
3135         else
3136                 echo "Nor is it Venix..."
3137         fi
3138 fi
3139 chmod +x bsd usg v7 osf1 eunice xenix venix os2
3140 $eunicefix bsd usg v7 osf1 eunice xenix venix os2
3141 $rm -f foo
3142
3143 : see if we need a special compiler
3144 echo " "
3145 if ./usg; then
3146         case "$cc" in
3147         '') case "$Mcc" in
3148                 /*) dflt='Mcc';;
3149                 *) case "$large" in
3150                         -M*) dflt='cc';;
3151                         *)      if $contains '\-M' $sysman/cc.1 >/dev/null 2>&1 ; then
3152                                         if $contains '\-M' $sysman/cpp.1 >/dev/null 2>&1; then
3153                                                 dflt='cc'
3154                                         else
3155                                                 dflt='cc -M'
3156                                         fi
3157                                 else
3158                                         dflt='cc'
3159                                 fi;;
3160                         esac;;
3161                 esac;;
3162         *)  dflt="$cc";;
3163         esac
3164         case "$dflt" in
3165         *M*)    $cat <<'EOM'
3166 On some older systems the default C compiler will not resolve multiple global
3167 references that happen to have the same name.  On some such systems the "Mcc"
3168 command may be used to force these to be resolved.  On other systems a "cc -M"
3169 command is required.  (Note that the -M flag on other systems indicates a
3170 memory model to use!) If you have the Gnu C compiler, you might wish to use
3171 that instead.
3172
3173 EOM
3174         ;;
3175         esac
3176         rp="Use which C compiler?"
3177         . ./myread
3178         cc="$ans"
3179 else
3180         case "$cc" in
3181         '') dflt=cc;;
3182         *) dflt="$cc";;
3183         esac
3184         rp="Use which C compiler?"
3185         . ./myread
3186         cc="$ans"
3187 fi
3188 : Look for a hint-file generated 'call-back-unit'.  Now that the
3189 : user has specified the compiler, we may need to set or change some
3190 : other defaults.
3191 if $test -f cc.cbu; then
3192     . ./cc.cbu
3193 fi
3194 . ./checkcc
3195
3196 echo " "
3197 echo "Checking for GNU cc in disguise and/or its version number..." >&4
3198 $cat >gccvers.c <<EOM
3199 #include <stdio.h>
3200 int main() {
3201 #ifdef __GNUC__
3202 #ifdef __VERSION__
3203         printf("%s\n", __VERSION__);
3204 #else
3205         printf("%s\n", "1");
3206 #endif
3207 #endif
3208         exit(0);
3209 }
3210 EOM
3211 if $cc $ldflags -o gccvers gccvers.c; then
3212         gccversion=`./gccvers`
3213         case "$gccversion" in
3214         '') echo "You are not using GNU cc." ;;
3215         *)  echo "You are using GNU cc $gccversion."
3216             ;;
3217         esac
3218 else
3219         echo " "
3220         echo "*** WHOA THERE!!! ***" >&4
3221         echo "    Your C compiler \"$cc\" doesn't seem to be working!" >&4
3222         case "$knowitall" in
3223         '')
3224         echo "    You'd better start hunting for one and let me know about it." >&4
3225                 exit 1
3226                 ;;
3227         esac
3228 fi
3229 $rm -f gccvers*
3230 case "$gccversion" in
3231 1*) cpp=`./loc gcc-cpp $cpp $pth` ;;
3232 esac
3233 case "$gccversion" in
3234 '') gccosandvers='' ;;
3235 *) gccshortvers=`echo "$gccversion"|sed 's/ .*//'`
3236    gccosandvers=`$cc -v 2>&1|grep '/specs$'|sed "s!.*/[^-/]*-[^-/]*-\([^-/]*\)/$gccshortvers/specs!\1!"`
3237    gccshortvers=''
3238    case "$gccosandvers" in
3239    $osname) gccosandvers='' ;; # linux gccs seem to have no linux osvers, grr
3240    $osname$osvers) ;; # looking good
3241    $osname*) cat <<EOM >&4
3242
3243 *** WHOA THERE!!! ***
3244
3245     Your gcc has not been compiled for the exact release of
3246     your operating system ($gccosandvers versus $osname$osvers).
3247
3248     In general it is a good idea to keep gcc synchronized with
3249     the operating system because otherwise serious problems
3250     may ensue when trying to compile software, like Perl.
3251
3252     I'm trying to be optimistic here, though, and will continue.
3253     If later during the configuration and build icky compilation
3254     problems appear (headerfile conflicts being the most common
3255     manifestation), I suggest reinstalling the gcc to match
3256     your operating system release.
3257
3258 EOM
3259       ;;
3260    *) gccosandvers='' ;; # failed to parse, better be silent
3261    esac
3262    ;;
3263 esac
3264
3265
3266
3267
3268 : see how we invoke the C preprocessor
3269 echo " "
3270 echo "Now, how can we feed standard input to your C preprocessor..." >&4
3271 cat <<'EOT' >testcpp.c
3272 #define ABC abc
3273 #define XYZ xyz
3274 ABC.XYZ
3275 EOT
3276 cd ..
3277 if test ! -f cppstdin; then
3278         if test "X$osname" = "Xaix" -a "X$gccversion" = X; then
3279                 # AIX cc -E doesn't show the absolute headerfile
3280                 # locations but we'll cheat by using the -M flag.
3281                 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
3282         else
3283                 echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin
3284         fi
3285 else
3286         echo "Keeping your $hint cppstdin wrapper."
3287 fi
3288 chmod 755 cppstdin
3289 wrapper=`pwd`/cppstdin
3290 ok='false'
3291 cd UU
3292
3293 if $test "X$cppstdin" != "X" && \
3294         $cppstdin $cppminus <testcpp.c >testcpp.out 2>&1 && \
3295         $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3296 then
3297         echo "You used to use $cppstdin $cppminus so we'll use that again."
3298         case "$cpprun" in
3299         '') echo "But let's see if we can live without a wrapper..." ;;
3300         *)
3301                 if $cpprun $cpplast <testcpp.c >testcpp.out 2>&1 && \
3302                         $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3303                 then
3304                         echo "(And we'll use $cpprun $cpplast to preprocess directly.)"
3305                         ok='true'
3306                 else
3307                         echo "(However, $cpprun $cpplast does not work, let's see...)"
3308                 fi
3309                 ;;
3310         esac
3311 else
3312         case "$cppstdin" in
3313         '') ;;
3314         *)
3315                 echo "Good old $cppstdin $cppminus does not seem to be of any help..."
3316                 ;;
3317         esac
3318 fi
3319
3320 if $ok; then
3321         : nothing
3322 elif echo 'Maybe "'"$cc"' -E" will work...'; \
3323         $cc -E <testcpp.c >testcpp.out 2>&1; \
3324         $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3325         echo "Yup, it does."
3326         x_cpp="$cc -E"
3327         x_minus='';
3328 elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \
3329         $cc -E - <testcpp.c >testcpp.out 2>&1; \
3330         $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3331         echo "Yup, it does."
3332         x_cpp="$cc -E"
3333         x_minus='-';
3334 elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \
3335         $cc -P <testcpp.c >testcpp.out 2>&1; \
3336         $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3337         echo "Yipee, that works!"
3338         x_cpp="$cc -P"
3339         x_minus='';
3340 elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \
3341         $cc -P - <testcpp.c >testcpp.out 2>&1; \
3342         $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3343         echo "At long last!"
3344         x_cpp="$cc -P"
3345         x_minus='-';
3346 elif echo 'No such luck, maybe "'$cpp'" will work...'; \
3347         $cpp <testcpp.c >testcpp.out 2>&1; \
3348         $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3349         echo "It works!"
3350         x_cpp="$cpp"
3351         x_minus='';
3352 elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \
3353         $cpp - <testcpp.c >testcpp.out 2>&1; \
3354         $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3355         echo "Hooray, it works!  I was beginning to wonder."
3356         x_cpp="$cpp"
3357         x_minus='-';
3358 elif echo 'Uh-uh.  Time to get fancy.  Trying a wrapper...'; \
3359         $wrapper <testcpp.c >testcpp.out 2>&1; \
3360         $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3361         x_cpp="$wrapper"
3362         x_minus=''
3363         echo "Eureka!"
3364 else
3365         dflt=''
3366         rp="No dice.  I can't find a C preprocessor.  Name one:"
3367         . ./myread
3368         x_cpp="$ans"
3369         x_minus=''
3370         $x_cpp <testcpp.c >testcpp.out 2>&1
3371         if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3372                 echo "OK, that will do." >&4
3373         else
3374 echo "Sorry, I can't get that to work.  Go find one and rerun Configure." >&4
3375                 exit 1
3376         fi
3377 fi
3378
3379 case "$ok" in
3380 false)
3381         cppstdin="$x_cpp"
3382         cppminus="$x_minus"
3383         cpprun="$x_cpp"
3384         cpplast="$x_minus"
3385         set X $x_cpp
3386         shift
3387         case "$1" in
3388         "$cpp")
3389                 echo "Perhaps can we force $cc -E using a wrapper..."
3390                 if $wrapper <testcpp.c >testcpp.out 2>&1; \
3391                         $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3392                 then
3393                         echo "Yup, we can."
3394                         cppstdin="$wrapper"
3395                         cppminus='';
3396                 else
3397                         echo "Nope, we'll have to live without it..."
3398                 fi
3399                 ;;
3400         esac
3401         case "$cpprun" in
3402         "$wrapper")
3403                 cpprun=''
3404                 cpplast=''
3405                 ;;
3406         esac
3407         ;;
3408 esac
3409
3410 case "$cppstdin" in
3411 "$wrapper"|'cppstdin') ;;
3412 *) $rm -f $wrapper;;
3413 esac
3414 $rm -f testcpp.c testcpp.out
3415
3416 : decide how portable to be.  Allow command line overrides.
3417 case "$d_portable" in
3418 "$undef") ;;
3419 *)      d_portable="$define" ;;
3420 esac
3421
3422 : set up shell script to do ~ expansion
3423 cat >filexp <<EOSS
3424 $startsh
3425 : expand filename
3426 case "\$1" in
3427  ~/*|~)
3428         echo \$1 | $sed "s|~|\${HOME-\$LOGDIR}|"
3429         ;;
3430  ~*)
3431         if $test -f /bin/csh; then
3432                 /bin/csh -f -c "glob \$1"
3433                 failed=\$?
3434                 echo ""
3435                 exit \$failed
3436         else
3437                 name=\`$expr x\$1 : '..\([^/]*\)'\`
3438                 dir=\`$sed -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}' </etc/passwd\`
3439                 if $test ! -d "\$dir"; then
3440                         me=\`basename \$0\`
3441                         echo "\$me: can't locate home directory for: \$name" >&2
3442                         exit 1
3443                 fi
3444                 case "\$1" in
3445                 */*)
3446                         echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\`
3447                         ;;
3448                 *)
3449                         echo \$dir
3450                         ;;
3451                 esac
3452         fi
3453         ;;
3454 *)
3455         echo \$1
3456         ;;
3457 esac
3458 EOSS
3459 chmod +x filexp
3460 $eunicefix filexp
3461
3462 : now set up to get a file name
3463 cat <<EOS >getfile
3464 $startsh
3465 EOS
3466 cat <<'EOSC' >>getfile
3467 tilde=''
3468 fullpath=''
3469 already=''
3470 skip=''
3471 none_ok=''
3472 exp_file=''
3473 nopath_ok=''
3474 orig_rp="$rp"
3475 orig_dflt="$dflt"
3476 case "$gfpth" in
3477 '') gfpth='.' ;;
3478 esac
3479
3480 case "$fn" in
3481 *\(*)
3482         expr $fn : '.*(\(.*\)).*' | tr ',' $trnl >getfile.ok
3483         fn=`echo $fn | sed 's/(.*)//'`
3484         ;;
3485 esac
3486
3487 case "$fn" in
3488 *:*)
3489         loc_file=`expr $fn : '.*:\(.*\)'`
3490         fn=`expr $fn : '\(.*\):.*'`
3491         ;;
3492 esac
3493
3494 case "$fn" in
3495 *~*) tilde=true;;
3496 esac
3497 case "$fn" in
3498 */*) fullpath=true;;
3499 esac
3500 case "$fn" in
3501 *+*) skip=true;;
3502 esac
3503 case "$fn" in
3504 *n*) none_ok=true;;
3505 esac
3506 case "$fn" in
3507 *e*) exp_file=true;;
3508 esac
3509 case "$fn" in
3510 *p*) nopath_ok=true;;
3511 esac
3512
3513 case "$fn" in
3514 *f*) type='File';;
3515 *d*) type='Directory';;
3516 *l*) type='Locate';;
3517 esac
3518
3519 what="$type"
3520 case "$what" in
3521 Locate) what='File';;
3522 esac
3523
3524 case "$exp_file" in
3525 '')
3526         case "$d_portable" in
3527         "$define") ;;
3528         *) exp_file=true;;
3529         esac
3530         ;;
3531 esac
3532
3533 cd ..
3534 while test "$type"; do
3535         redo=''
3536         rp="$orig_rp"
3537         dflt="$orig_dflt"
3538         case "$tilde" in
3539         true) rp="$rp (~name ok)";;
3540         esac
3541         . UU/myread
3542         if test -f UU/getfile.ok && \
3543                 $contains "^$ans\$" UU/getfile.ok >/dev/null 2>&1
3544         then
3545                 value="$ans"
3546                 ansexp="$ans"
3547                 break
3548         fi
3549         case "$ans" in
3550         none)
3551                 value=''
3552                 ansexp=''
3553                 case "$none_ok" in
3554                 true) type='';;
3555                 esac
3556                 ;;
3557         *)
3558                 case "$tilde" in
3559                 '') value="$ans"
3560                         ansexp="$ans";;
3561                 *)
3562                         value=`UU/filexp $ans`
3563                         case $? in
3564                         0)
3565                                 if test "$ans" != "$value"; then
3566                                         echo "(That expands to $value on this system.)"
3567                                 fi
3568                                 ;;
3569                         *) value="$ans";;
3570                         esac
3571                         ansexp="$value"
3572                         case "$exp_file" in
3573                         '') value="$ans";;
3574                         esac
3575                         ;;
3576                 esac
3577                 case "$fullpath" in
3578                 true)
3579                         case "$ansexp" in
3580                         /*) value="$ansexp" ;;
3581                         [a-zA-Z]:/*) value="$ansexp" ;;
3582                         *)
3583                                 redo=true
3584                                 case "$already" in
3585                                 true)
3586                                 echo "I shall only accept a full path name, as in /bin/ls." >&4
3587                                 echo "Use a ! shell escape if you wish to check pathnames." >&4
3588                                         ;;
3589                                 *)
3590                                 echo "Please give a full path name, starting with slash." >&4
3591                                         case "$tilde" in
3592                                         true)
3593                                 echo "Note that using ~name is ok provided it expands well." >&4
3594                                                 already=true
3595                                                 ;;
3596                                         esac
3597                                 esac
3598                                 ;;
3599                         esac
3600                         ;;
3601                 esac
3602                 case "$redo" in
3603                 '')
3604                         case "$type" in
3605                         File)
3606                                 for fp in $gfpth; do
3607                                         if test "X$fp" = X.; then
3608                                             pf="$ansexp"
3609                                         else    
3610                                             pf="$fp/$ansexp"
3611                                         fi
3612                                         if test -f "$pf"; then
3613                                                 type=''
3614                                         elif test -r "$pf" || (test -h "$pf") >/dev/null 2>&1
3615                                         then
3616                                                 echo "($value is not a plain file, but that's ok.)"
3617                                                 type=''
3618                                         fi
3619                                         if test X"$type" = X; then
3620                                             value="$pf"
3621                                             break
3622                                         fi
3623                                 done
3624                                 ;;
3625                         Directory)
3626                                 for fp in $gfpth; do
3627                                         if test "X$fp" = X.; then
3628                                             dir="$ans"
3629                                             direxp="$ansexp"
3630                                         else    
3631                                             dir="$fp/$ansexp"
3632                                             direxp="$fp/$ansexp"
3633                                         fi
3634                                         if test -d "$direxp"; then
3635                                                 type=''
3636                                                 value="$dir"
3637                                                 break
3638                                         fi
3639                                 done
3640                                 ;;
3641                         Locate)
3642                                 if test -d "$ansexp"; then
3643                                         echo "(Looking for $loc_file in directory $value.)"
3644                                         value="$value/$loc_file"
3645                                         ansexp="$ansexp/$loc_file"
3646                                 fi
3647                                 if test -f "$ansexp"; then
3648                                         type=''
3649                                 fi
3650                                 case "$nopath_ok" in
3651                                 true)   case "$value" in
3652                                         */*) ;;
3653                                         *)      echo "Assuming $value will be in people's path."
3654                                                 type=''
3655                                                 ;;
3656                                         esac
3657                                         ;;
3658                                 esac
3659                                 ;;
3660                         esac
3661
3662                         case "$skip" in
3663                         true) type='';
3664                         esac
3665
3666                         case "$type" in
3667                         '') ;;
3668                         *)
3669                                 if test "$fastread" = yes; then
3670                                         dflt=y
3671                                 else
3672                                         dflt=n
3673                                 fi
3674                                 rp="$what $value doesn't exist.  Use that name anyway?"
3675                                 . UU/myread
3676                                 dflt=''
3677                                 case "$ans" in
3678                                 y*) type='';;
3679                                 *) echo " ";;
3680                                 esac
3681                                 ;;
3682                         esac
3683                         ;;
3684                 esac
3685                 ;;
3686         esac
3687 done
3688 cd UU
3689 ans="$value"
3690 rp="$orig_rp"
3691 dflt="$orig_dflt"
3692 rm -f getfile.ok
3693 test "X$gfpthkeep" != Xy && gfpth=""
3694 EOSC
3695
3696 : What should the include directory be ?
3697 echo " "
3698 $echo $n "Hmm...  $c"
3699 dflt='/usr/include'
3700 incpath=''
3701 mips_type=''
3702 if $test -f /bin/mips && /bin/mips; then
3703         echo "Looks like a MIPS system..."
3704         $cat >usr.c <<'EOCP'
3705 #ifdef SYSTYPE_BSD43
3706 /bsd43
3707 #endif
3708 EOCP
3709         if cc -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then
3710                 dflt='/bsd43/usr/include'
3711                 incpath='/bsd43'
3712                 mips_type='BSD 4.3'
3713         else
3714                 mips_type='System V'
3715         fi
3716         $rm -f usr.c usr.out
3717         echo "and you're compiling with the $mips_type compiler and libraries."
3718         xxx_prompt=y
3719         echo "exit 0" >mips
3720 else
3721         echo "Doesn't look like a MIPS system."
3722         xxx_prompt=n
3723         echo "exit 1" >mips
3724 fi
3725 chmod +x mips
3726 $eunicefix mips
3727 case "$usrinc" in
3728 '') ;;
3729 *) dflt="$usrinc";;
3730 esac
3731 case "$xxx_prompt" in
3732 y)      fn=d/
3733         echo " "
3734         rp='Where are the include files you want to use?'
3735         . ./getfile
3736         usrinc="$ans"
3737         ;;
3738 *)      usrinc="$dflt"
3739         ;;
3740 esac
3741
3742 : Set private lib path
3743 case "$plibpth" in
3744 '') if ./mips; then
3745                 plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
3746         fi;;
3747 esac
3748 case "$libpth" in
3749 ' ') dlist='';;
3750 '') dlist="$loclibpth $plibpth $glibpth";;
3751 *) dlist="$libpth";;
3752 esac
3753
3754 : Now check and see which directories actually exist, avoiding duplicates
3755 libpth=''
3756 for xxx in $dlist
3757 do
3758     if $test -d $xxx; then
3759                 case " $libpth " in
3760                 *" $xxx "*) ;;
3761                 *) libpth="$libpth $xxx";;
3762                 esac
3763     fi
3764 done
3765 $cat <<'EOM'
3766
3767 Some systems have incompatible or broken versions of libraries.  Among
3768 the directories listed in the question below, please remove any you
3769 know not to be holding relevant libraries, and add any that are needed.
3770 Say "none" for none.
3771
3772 EOM
3773 case "$libpth" in
3774 '') dflt='none';;
3775 *)
3776         set X $libpth
3777         shift
3778         dflt=${1+"$@"}
3779         ;;
3780 esac
3781 rp="Directories to use for library searches?"
3782 . ./myread
3783 case "$ans" in
3784 none) libpth=' ';;
3785 *) libpth="$ans";;
3786 esac
3787
3788 : compute shared library extension
3789 case "$so" in
3790 '')
3791         if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then
3792                 dflt='sl'
3793         else
3794                 dflt='so'
3795         fi
3796         ;;
3797 *) dflt="$so";;
3798 esac
3799 $cat <<EOM
3800
3801 On some systems, shared libraries may be available.  Answer 'none' if
3802 you want to suppress searching of shared libraries for the remainder
3803 of this configuration.
3804
3805 EOM
3806 rp='What is the file extension used for shared libraries?'
3807 . ./myread
3808 so="$ans"
3809
3810 : Define several unixisms.
3811 : Hints files or command line option can be used to override them.
3812 : The convoluted testing is in case hints files set either the old
3813 : or the new name.
3814 case "$_exe" in
3815 '')     case "$exe_ext" in
3816     '') ;;
3817         *)      _exe="$exe_ext" ;;
3818         esac
3819         ;;
3820 esac
3821 case "$_a" in
3822 '')     case "$lib_ext" in
3823     '') _a='.a';;
3824         *)      _a="$lib_ext" ;;
3825         esac
3826         ;;
3827 esac
3828 case "$_o" in
3829 '') case "$obj_ext" in
3830         '')     _o='.o';;
3831         *)      _o="$obj_ext";;
3832         esac
3833         ;;
3834 esac
3835 case "$p_" in
3836 '') case "$path_sep" in
3837         '')     p_=':';;
3838         *)      p_="$path_sep";;
3839         esac
3840         ;;
3841 esac
3842 exe_ext=$_exe
3843 lib_ext=$_a
3844 obj_ext=$_o
3845 path_sep=$p_
3846
3847 : Which makefile gets called first.  This is used by make depend.
3848 case "$firstmakefile" in
3849 '') firstmakefile='makefile';;
3850 esac
3851
3852 case "$usesocks" in
3853 $define|true|[yY]*)     dflt='y';;
3854 *) dflt='n';;
3855 esac
3856 cat <<EOM
3857
3858 Perl can be built to use the SOCKS proxy protocol library.  To do so,
3859 Configure must be run with -Dusesocks.
3860
3861 If this doesn't make any sense to you, just accept the default '$dflt'.
3862 EOM
3863 rp='Build Perl for SOCKS?'
3864 . ./myread
3865 case "$ans" in
3866 y|Y)    val="$define" ;;     
3867 *)      val="$undef" ;;
3868 esac
3869 set usesocks
3870 eval $setvar
3871
3872 : Looking for optional libraries
3873 echo " "
3874 echo "Checking for optional libraries..." >&4
3875 case "$libs" in
3876 ' '|'') dflt='';;
3877 *) dflt="$libs";;
3878 esac
3879 case "$libswanted" in
3880 '') libswanted='c_s';;
3881 esac
3882 case "$usesocks" in
3883 "$define") libswanted="$libswanted socks5 socks5_sh" ;;
3884 esac
3885 libsfound=''
3886 libsfiles=''
3887 libsdirs=''
3888 libspath=''
3889 for thisdir in $libpth $xlibpth; do
3890   test -d $thisdir && libspath="$libspath $thisdir"
3891 done
3892 for thislib in $libswanted; do
3893         for thisdir in $libspath; do
3894             xxx=''
3895             if $test ! -f "$xxx" -a "X$ignore_versioned_solibs" = "X"; then
3896                 xxx=`ls $thisdir/lib$thislib.$so.[0-9] 2>/dev/null|tail -1`
3897                 $test -f "$xxx" && eval $libscheck
3898                 $test -f "$xxx" && libstyle=shared
3899             fi
3900             if test ! -f "$xxx"; then
3901                 xxx=$thisdir/lib$thislib.$so
3902                 $test -f "$xxx" && eval $libscheck
3903                 $test -f "$xxx" && libstyle=shared
3904             fi  
3905             if test ! -f "$xxx"; then
3906                 xxx=$thisdir/lib$thislib$_a
3907                 $test -f "$xxx" && eval $libscheck
3908                 $test -f "$xxx" && libstyle=static
3909             fi
3910             if test ! -f "$xxx"; then
3911                 xxx=$thisdir/$thislib$_a
3912                 $test -f "$xxx" && eval $libscheck
3913                 $test -f "$xxx" && libstyle=static
3914             fi
3915             if test ! -f "$xxx"; then
3916                 xxx=$thisdir/lib${thislib}_s$_a
3917                 $test -f "$xxx" && eval $libscheck
3918                 $test -f "$xxx" && libstyle=static
3919                 $test -f "$xxx" && thislib=${thislib}_s
3920             fi
3921             if test ! -f "$xxx"; then
3922                 xxx=$thisdir/Slib$thislib$_a
3923                 $test -f "$xxx" && eval $libscheck
3924                 $test -f "$xxx" && libstyle=static
3925             fi
3926             if $test -f "$xxx"; then
3927                 case "$libstyle" in
3928                 shared) echo "Found -l$thislib (shared)." ;;
3929                 static) echo "Found -l$thislib." ;;
3930                 *)      echo "Found -l$thislib ($libstyle)." ;;
3931                 esac
3932                 case " $dflt " in
3933                 *"-l$thislib "*);;
3934                 *) dflt="$dflt -l$thislib"
3935                    libsfound="$libsfound $xxx"
3936                    yyy=`basename $xxx`
3937                    libsfiles="$libsfiles $yyy"
3938                    yyy=`echo $xxx|$sed -e "s%/$yyy\\$%%"`
3939                    case " $libsdirs " in
3940                    *" $yyy "*) ;;
3941                    *) libsdirs="$libsdirs $yyy" ;;
3942                    esac
3943                    ;;
3944                 esac
3945                 break
3946             fi  
3947         done
3948         if $test ! -f "$xxx"; then
3949             echo "No -l$thislib."
3950         fi
3951 done
3952 set X $dflt
3953 shift
3954 dflt="$*"
3955 case "$libs" in
3956 '') dflt="$dflt";;
3957 *) dflt="$libs";;
3958 esac
3959 case "$dflt" in
3960 ' '|'') dflt='none';;
3961 esac
3962
3963 $cat <<EOM
3964
3965 In order to compile $package on your machine, a number of libraries
3966 are usually needed.  Include any other special libraries here as well.
3967 Say "none" for none.  The default list is almost always right.
3968 EOM
3969
3970 echo " "
3971 rp="What libraries to use?"
3972 . ./myread
3973 case "$ans" in
3974 none) libs=' ';;
3975 *) libs="$ans";;
3976 esac
3977
3978 : determine optimization, if desired, or use for debug flag also
3979 case "$optimize" in
3980 ' '|$undef) dflt='none';;
3981 '') dflt='-O';;
3982 *) dflt="$optimize";;
3983 esac
3984 $cat <<EOH
3985
3986 By default, $package compiles with the -O flag to use the optimizer.
3987 Alternately, you might want to use the symbolic debugger, which uses
3988 the -g flag (on traditional Unix systems).  Either flag can be
3989 specified here.  To use neither flag, specify the word "none".
3990
3991 EOH
3992 rp="What optimizer/debugger flag should be used?"
3993 . ./myread
3994 optimize="$ans"
3995 case "$optimize" in
3996 'none') optimize=" ";;
3997 esac
3998
3999 dflt=''
4000 : We will not override a previous value, but we might want to
4001 : augment a hint file
4002 case "$hint" in
4003 default|recommended)
4004         case "$gccversion" in
4005         1*) dflt='-fpcc-struct-return' ;;
4006         esac
4007         case "$optimize" in
4008         *-g*) dflt="$dflt -DDEBUGGING";;
4009         esac
4010         case "$gccversion" in
4011         2*) if test -d /etc/conf/kconfig.d &&
4012                         $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
4013                 then
4014                         dflt="$dflt -posix"
4015                 fi
4016                 ;;
4017         esac
4018         case "$gccversion" in
4019         1*) ;;
4020         2.[0-8]*) ;;
4021         ?*)     echo " "
4022                 echo "Checking if your compiler accepts -fno-strict-aliasing" 2>&1
4023                 echo 'int main(void) { return 0; }' > gcctest.c
4024                 if $cc -O2 -fno-strict-aliasing -o gcctest gcctest.c; then
4025                         echo "Yes, it does." 2>&1
4026                         case "$ccflags" in
4027                         *strict-aliasing*) 
4028                                 echo "Leaving current flags $ccflags alone." 2>&1
4029                                 ;;
4030                         *) dflt="$dflt -fno-strict-aliasing" ;;
4031                         esac
4032                 else
4033                         echo "Nope, it doesn't, but that's ok." 2>&1
4034                 fi
4035                 ;;
4036         esac
4037         ;;
4038 esac
4039
4040 case "$mips_type" in
4041 *BSD*|'') inclwanted="$locincpth $usrinc";;
4042 *) inclwanted="$locincpth $inclwanted $usrinc/bsd";;
4043 esac
4044 for thisincl in $inclwanted; do
4045         if $test -d $thisincl; then
4046                 if $test x$thisincl != x$usrinc; then
4047                         case "$dflt" in
4048                         *$thisincl*);;
4049                         *) dflt="$dflt -I$thisincl";;
4050                         esac
4051                 fi
4052         fi
4053 done
4054
4055 inctest='if $contains $2 $usrinc/$1 >/dev/null 2>&1; then
4056         xxx=true;
4057 elif $contains $2 $usrinc/sys/$1 >/dev/null 2>&1; then
4058         xxx=true;
4059 else
4060         xxx=false;
4061 fi;
4062 if $xxx; then
4063         case "$dflt" in
4064         *$2*);;
4065         *) dflt="$dflt -D$2";;
4066         esac;
4067 fi'
4068
4069 set signal.h LANGUAGE_C; eval $inctest
4070
4071 case "$usesocks" in
4072 $define)
4073         ccflags="$ccflags -DSOCKS"
4074         ;;
4075 esac
4076
4077 case "$hint" in
4078 default|recommended) dflt="$ccflags $dflt" ;;
4079 *) dflt="$ccflags";;
4080 esac
4081
4082 case "$dflt" in
4083 ''|' ') dflt=none;;
4084 esac
4085 $cat <<EOH
4086
4087 Your C compiler may want other flags.  For this question you should include
4088 -I/whatever and -DWHATEVER flags and any other flags used by the C compiler,
4089 but you should NOT include libraries or ld flags like -lwhatever.  If you
4090 want $package to honor its debug switch, you should include -DDEBUGGING here.
4091 Your C compiler might also need additional flags, such as -D_POSIX_SOURCE.
4092
4093 To use no flags, specify the word "none".
4094
4095 EOH
4096 set X $dflt
4097 shift
4098 dflt=${1+"$@"}
4099 rp="Any additional cc flags?"
4100 . ./myread
4101 case "$ans" in
4102 none) ccflags='';;
4103 *) ccflags="$ans";;
4104 esac
4105
4106 : the following weeds options from ccflags that are of no interest to cpp
4107 cppflags="$ccflags"
4108 case "$gccversion" in
4109 1*) cppflags="$cppflags -D__GNUC__"
4110 esac
4111 case "$mips_type" in
4112 '');;
4113 *BSD*) cppflags="$cppflags -DSYSTYPE_BSD43";;
4114 esac
4115 case "$cppflags" in
4116 '');;
4117 *)
4118         echo " "
4119         echo "Let me guess what the preprocessor flags are..." >&4
4120         set X $cppflags
4121         shift
4122         cppflags=''
4123         $cat >cpp.c <<'EOM'
4124 #define BLURFL foo
4125
4126 BLURFL xx LFRULB
4127 EOM
4128         previous=''
4129         for flag in $*
4130         do
4131                 case "$flag" in
4132                 -*) ftry="$flag";;
4133                 *) ftry="$previous $flag";;
4134                 esac
4135                 if $cppstdin -DLFRULB=bar $cppflags $ftry $cppminus <cpp.c \
4136                         >cpp1.out 2>/dev/null && \
4137                         $cpprun -DLFRULB=bar $cppflags $ftry $cpplast <cpp.c \
4138                         >cpp2.out 2>/dev/null && \
4139                         $contains 'foo.*xx.*bar' cpp1.out >/dev/null 2>&1 && \
4140                         $contains 'foo.*xx.*bar' cpp2.out >/dev/null 2>&1
4141                 then
4142                         cppflags="$cppflags $ftry"
4143                         previous=''
4144                 else
4145                         previous="$flag"
4146                 fi
4147         done
4148         set X $cppflags
4149         shift
4150         cppflags=${1+"$@"}
4151         case "$cppflags" in
4152         *-*)  echo "They appear to be: $cppflags";;
4153         esac
4154         $rm -f cpp.c cpp?.out
4155         ;;
4156 esac
4157
4158 : flags used in final linking phase
4159 case "$ldflags" in
4160 '') if ./venix; then
4161                 dflt='-i -z'
4162         else
4163                 dflt=''
4164         fi
4165         case "$ccflags" in
4166         *-posix*) dflt="$dflt -posix" ;;
4167         esac
4168         ;;
4169 *) dflt="$ldflags";;
4170 esac
4171
4172 : Try to guess additional flags to pick up local libraries.
4173 for thislibdir in $libpth; do
4174         case " $loclibpth " in
4175         *" $thislibdir "*)
4176                 case "$dflt " in 
4177                 *"-L$thislibdir "*) ;;
4178                 *)  dflt="$dflt -L$thislibdir" ;;
4179                 esac
4180                 ;;
4181         esac
4182 done
4183
4184 case "$dflt" in
4185 '') dflt='none' ;;
4186 esac
4187
4188 $cat <<EOH
4189
4190 Your C linker may need flags.  For this question you should
4191 include -L/whatever and any other flags used by the C linker, but you
4192 should NOT include libraries like -lwhatever.
4193
4194 Make sure you include the appropriate -L/path flags if your C linker
4195 does not normally search all of the directories you specified above,
4196 namely
4197         $libpth
4198 To use no flags, specify the word "none".
4199
4200 EOH
4201
4202 rp="Any additional ld flags (NOT including libraries)?"
4203 . ./myread
4204 case "$ans" in
4205 none) ldflags='';;
4206 *) ldflags="$ans";;
4207 esac
4208 rmlist="$rmlist pdp11"
4209
4210 : coherency check
4211 echo " "
4212 echo "Checking your choice of C compiler and flags for coherency..." >&4
4213 $cat > try.c <<'EOF'
4214 #include <stdio.h>
4215 int main() { printf("Ok\n"); exit(0); }
4216 EOF
4217 set X $cc $optimize $ccflags -o try $ldflags try.c $libs
4218 shift
4219 $cat >try.msg <<'EOM'
4220 I've tried to compile and run the following simple program:
4221
4222 EOM
4223 $cat try.c >> try.msg
4224
4225 $cat >> try.msg <<EOM
4226
4227 I used the command:
4228
4229         $*
4230         ./try
4231
4232 and I got the following output:
4233
4234 EOM
4235 dflt=y
4236 if sh -c "$cc $optimize $ccflags -o try $ldflags try.c $libs" >>try.msg 2>&1; then
4237         if sh -c './try' >>try.msg 2>&1; then
4238                 xxx=`./try`
4239                 case "$xxx" in
4240                 "Ok") dflt=n ;;
4241                 *)      echo 'The program compiled OK, but produced no output.' >> try.msg
4242                         case " $libs " in
4243                         *" -lsfio "*)
4244                                 cat >> try.msg <<'EOQS'
4245 If $libs contains -lsfio, and sfio is mis-configured, then it
4246 sometimes (apparently) runs and exits with a 0 status, but with no
4247 output!  It may have to do with sfio's use of _exit vs. exit.
4248
4249 EOQS
4250                                 rp="You have a big problem.  Shall I abort Configure"
4251                                 dflt=y
4252                                 ;;
4253                         esac
4254                         ;;
4255                 esac
4256         else
4257                 echo "The program compiled OK, but exited with status $?." >>try.msg
4258                 rp="You have a problem.  Shall I abort Configure"
4259                 dflt=y
4260         fi
4261 else
4262         echo "I can't compile the test program." >>try.msg
4263         rp="You have a BIG problem.  Shall I abort Configure"
4264         dflt=y
4265 fi
4266 case "$dflt" in
4267 y)
4268         $cat try.msg >&4
4269         case "$knowitall" in
4270         '')
4271                 echo "(The supplied flags or libraries might be incorrect.)"
4272                 ;;
4273         *) dflt=n;;
4274         esac
4275         echo " "
4276         . ./myread
4277         case "$ans" in
4278         n*|N*) ;;
4279         *)      echo "Ok.  Stopping Configure." >&4
4280                 exit 1
4281                 ;;
4282         esac
4283         ;;
4284 n) echo "OK, that should do.";;
4285 esac
4286 $rm -f try try.* core
4287
4288 : define an is-a-typedef? function
4289 typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
4290 case "$inclist" in
4291 "") inclist="sys/types.h";;
4292 esac;
4293 eval "varval=\$$var";
4294 case "$varval" in
4295 "")
4296         $rm -f temp.c;
4297         for inc in $inclist; do
4298                 echo "#include <$inc>" >>temp.c;
4299         done;
4300         echo "#ifdef $type" >> temp.c;
4301         echo "printf(\"We have $type\");" >> temp.c;
4302         echo "#endif" >> temp.c;
4303         $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
4304         if $contains $type temp.E >/dev/null 2>&1; then
4305                 eval "$var=\$type";
4306         else
4307                 eval "$var=\$def";
4308         fi;
4309         $rm -f temp.?;;
4310 *) eval "$var=\$varval";;
4311 esac'
4312
4313 : define an is-a-typedef? function that prompts if the type is not available.
4314 typedef_ask='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
4315 case "$inclist" in
4316 "") inclist="sys/types.h";;
4317 esac;
4318 eval "varval=\$$var";
4319 case "$varval" in
4320 "")
4321         $rm -f temp.c;
4322         for inc in $inclist; do
4323                 echo "#include <$inc>" >>temp.c;
4324         done;
4325         echo "#ifdef $type" >> temp.c;
4326         echo "printf(\"We have $type\");" >> temp.c;
4327         echo "#endif" >> temp.c;
4328         $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
4329         echo " " ;
4330         echo "$rp" | $sed -e "s/What is/Looking for/" -e "s/?/./";
4331         if $contains $type temp.E >/dev/null 2>&1; then
4332                 echo "$type found." >&4;
4333                 eval "$var=\$type";
4334         else
4335                 echo "$type NOT found." >&4;
4336                 dflt="$def";
4337                 . ./myread ;
4338                 eval "$var=\$ans";
4339         fi;
4340         $rm -f temp.?;;
4341 *) eval "$var=\$varval";;
4342 esac'
4343
4344 : define a shorthand compile call
4345 compile='
4346 mc_file=$1;
4347 shift;
4348 $cc $optimize $ccflags $ldflags -o ${mc_file} $* ${mc_file}.c $libs > /dev/null 2>&1;'
4349 : define a shorthand compile call for compilations that should be ok.
4350 compile_ok='
4351 mc_file=$1;
4352 shift;
4353 $cc $optimize $ccflags $ldflags -o ${mc_file} $* ${mc_file}.c $libs;'
4354
4355 : check for lengths of integral types
4356 echo " "
4357 case "$intsize" in
4358 '')
4359         echo "Checking to see how big your integers are..." >&4
4360         $cat >intsize.c <<'EOCP'
4361 #include <stdio.h>
4362 int main()
4363 {
4364         printf("intsize=%d;\n", (int)sizeof(int));
4365         printf("longsize=%d;\n", (int)sizeof(long));
4366         printf("shortsize=%d;\n", (int)sizeof(short));
4367         exit(0);
4368 }
4369 EOCP
4370         set intsize
4371         if eval $compile_ok && ./intsize > /dev/null; then
4372                 eval `./intsize`
4373                 echo "Your integers are $intsize bytes long."
4374                 echo "Your long integers are $longsize bytes long."
4375                 echo "Your short integers are $shortsize bytes long."
4376         else
4377                 $cat >&4 <<EOM
4378 !
4379 Help! I can't compile and run the intsize test program: please enlighten me!
4380 (This is probably a misconfiguration in your system or libraries, and
4381 you really ought to fix it.  Still, I'll try anyway.)
4382 !
4383 EOM
4384                 dflt=4
4385                 rp="What is the size of an integer (in bytes)?"
4386                 . ./myread
4387                 intsize="$ans"
4388                 dflt=$intsize
4389                 rp="What is the size of a long integer (in bytes)?"
4390                 . ./myread
4391                 longsize="$ans"
4392                 dflt=2
4393                 rp="What is the size of a short integer (in bytes)?"
4394                 . ./myread
4395                 shortsize="$ans"
4396         fi
4397         ;;
4398 esac
4399 $rm -f intsize intsize.*
4400
4401 : see what type lseek is declared as in the kernel
4402 rp="What is the type used for lseek's offset on this system?"
4403 set off_t lseektype long stdio.h sys/types.h
4404 eval $typedef_ask
4405
4406 echo " "
4407 echo "Checking to see how big your file offsets are..." >&4
4408 $cat >try.c <<EOCP
4409 #include <sys/types.h>
4410 #include <stdio.h>
4411 int main()
4412 {
4413     printf("%d\n", (int)sizeof($lseektype));
4414     return(0); 
4415 }
4416 EOCP
4417 set try
4418 if eval $compile_ok; then
4419         lseeksize=`./try`
4420         echo "Your file offsets are $lseeksize bytes long."
4421 else
4422         dflt=$longsize
4423         echo " "
4424         echo "(I can't seem to compile the test program.  Guessing...)"
4425         rp="What is the size of your file offsets (in bytes)?"
4426         . ./myread
4427         lseeksize="$ans"
4428 fi
4429 $rm -f try.c try
4430
4431 : see what type file positions are declared as in the library
4432 rp="What is the type for file position used by fsetpos()?"
4433 set fpos_t fpostype long stdio.h sys/types.h
4434 eval $typedef_ask
4435
4436 echo " "
4437 case "$fpostype" in
4438 *_t) zzz="$fpostype"    ;;
4439 *)   zzz="fpos_t"       ;;
4440 esac
4441 echo "Checking the size of $zzz..." >&4 
4442 cat > try.c <<EOCP
4443 #include <sys/types.h>
4444 #include <stdio.h>
4445 int main() {
4446     printf("%d\n", (int)sizeof($fpostype));
4447     exit(0);
4448 }
4449 EOCP
4450 set try
4451 if eval $compile_ok; then
4452         yyy=`./try`
4453         case "$yyy" in
4454         '')     fpossize=4
4455                 echo "(I can't execute the test program--guessing $fpossize.)" >&4
4456                 ;;
4457         *)      fpossize=$yyy
4458                 echo "Your $zzz is $fpossize bytes long."
4459                 ;;
4460         esac
4461 else
4462         dflt="$longsize"
4463         echo " " >&4
4464         echo "(I can't compile the test program.  Guessing...)" >&4
4465         rp="What is the size of your file positions (in bytes)?"
4466         . ./myread
4467         fpossize="$ans"
4468 fi
4469
4470
4471
4472 # Backward compatibility (uselfs is deprecated).
4473 case "$uselfs" in
4474 "$define"|true|[yY]*)
4475         cat <<EOM >&4
4476
4477 *** Configure -Duselfs is deprecated, using -Duselargefiles instead.
4478 EOM
4479         uselargefiles="$define"
4480         ;;
4481 esac                          
4482
4483 case "$lseeksize:$fpossize" in
4484 8:8) cat <<EOM
4485
4486 You can have files larger than 2 gigabytes.
4487 EOM
4488    val="$define" ;;
4489 *)    case "$uselargefiles" in
4490    "$undef"|false|[nN]*) dflt='n' ;;
4491    *)   dflt='y' ;;
4492    esac
4493    cat <<EOM
4494
4495 Perl can be built to understand large files (files larger than 2 gigabytes)
4496 on some systems.  To do so, Configure can be run with -Duselargefiles.
4497
4498 If this doesn't make any sense to you, just accept the default '$dflt'.
4499 EOM
4500    rp='Try to understand large files, if available?'
4501    . ./myread
4502    case "$ans" in
4503    y|Y)         val="$define" ;;
4504    *)           val="$undef"  ;;
4505    esac
4506    ;;
4507 esac
4508 set uselargefiles
4509 eval $setvar
4510 case "$uselargefiles" in
4511 "$define")
4512 : Look for a hint-file generated 'call-back-unit'.  If the
4513 : user has specified that a large files perl is to be built,
4514 : we may need to set or change some other defaults.
4515         if $test -f uselargefiles.cbu; then
4516                 echo "Your platform has some specific hints for large file builds, using them..."
4517                 . ./uselargefiles.cbu
4518                 echo " "
4519                 echo "Rechecking to see how big your file offsets are..." >&4
4520                 $cat >try.c <<EOCP
4521 #include <sys/types.h>
4522 #include <stdio.h>
4523 int main()
4524 {
4525     printf("%d\n", (int)sizeof($lseektype));
4526     return(0); 
4527 }
4528 EOCP
4529                 set try
4530                 if eval $compile_ok; then
4531                         lseeksize=`./try`
4532                         $echo "Your file offsets are now $lseeksize bytes long."
4533                 else
4534                         dflt="$lseeksize"
4535                         echo " "
4536                         echo "(I can't seem to compile the test program.  Guessing...)"
4537                         rp="What is the size of your file offsets (in bytes)?"
4538                         . ./myread
4539                         lseeksize="$ans"
4540                 fi
4541                 case "$fpostype" in
4542                 *_t) zzz="$fpostype"    ;;
4543                 *)   zzz="fpos_t"       ;;
4544                 esac
4545                 $echo $n "Rechecking the size of $zzz...$c" >&4 
4546                 $cat > try.c <<EOCP
4547 #include <sys/types.h>
4548 #include <stdio.h>
4549 int main() {
4550     printf("%d\n", (int)sizeof($fpostype));
4551     exit(0);
4552 }
4553 EOCP
4554                 set try
4555                 if eval $compile_ok; then
4556                         yyy=`./try`
4557                         dflt="$lseeksize"
4558                         case "$yyy" in
4559                         '')     echo " "
4560                                 echo "(I can't execute the test program--guessing $fpossize.)" >&4
4561                                 ;;
4562                         *)      fpossize=$yyy
4563                                 echo " $fpossize bytes." >&4
4564                                 ;;
4565                         esac
4566                 else
4567                         dflt="$fpossize"
4568                         echo " "
4569                         echo "(I can't compile the test program.  Guessing...)" >&4
4570                         rp="What is the size of your file positions (in bytes)?"
4571                         . ./myread
4572                         fpossize="$ans"
4573                 fi
4574                 $rm -f try.c try
4575         fi
4576         ;;
4577 esac
4578
4579
4580 case "$usemorebits" in
4581 "$define"|true|[yY]*)
4582         use64bitint="$define"
4583         uselongdouble="$define"
4584         usemorebits="$define"
4585         ;;
4586 *)      usemorebits="$undef"
4587         ;;
4588 esac
4589
4590
4591 case "$uselonglong" in
4592 "$define"|true|[yY]*)
4593         cat <<EOM >&4
4594
4595 *** Configure -Duselonglong is deprecated, using -Duse64bitint instead.
4596 EOM
4597         use64bitint="$define"
4598         ;;
4599 esac                          
4600 case "$use64bits" in
4601 "$define"|true|[yY]*)
4602         cat <<EOM >&4
4603
4604 *** Configure -Duse64bits is deprecated, using -Duse64bitint instead.
4605 EOM
4606         use64bitint="$define"
4607         ;;
4608 esac                          
4609 case "$use64bitints" in
4610 "$define"|true|[yY]*)
4611         cat <<EOM >&4
4612
4613 *** There is no Configure -Duse64bitints, using -Duse64bitint instead.
4614 EOM
4615         use64bitint="$define"
4616         ;;
4617 esac                          
4618 case "$use64bitsint" in
4619 "$define"|true|[yY]*)
4620         cat <<EOM >&4
4621
4622 *** There is no Configure -Duse64bitsint, using -Duse64bitint instead.
4623 EOM
4624         use64bitint="$define"
4625         ;;
4626 esac                          
4627 case "$uselonglongs" in
4628 "$define"|true|[yY]*)
4629         cat <<EOM >&4
4630
4631 *** There is no Configure -Duselonglongs, using -Duse64bitint instead.
4632 EOM
4633         use64bitint="$define"
4634         ;;
4635 esac                          
4636 case "$use64bitsall" in
4637 "$define"|true|[yY]*)
4638         cat <<EOM >&4
4639
4640 *** There is no Configure -Duse64bitsall, using -Duse64bitall instead.
4641 EOM
4642         use64bitall="$define"
4643         ;;
4644 esac                          
4645
4646 case "$ccflags" in
4647 *-DUSE_LONG_LONG*|*-DUSE_64_BIT_INT*|*-DUSE_64_BIT_ALL*) use64bitint="$define";;
4648 esac
4649 case "$use64bitall" in
4650 "$define"|true|[yY]*) use64bitint="$define" ;;
4651 esac
4652
4653 case "$longsize" in
4654 8) cat <<EOM
4655
4656 You have natively 64-bit long integers.
4657 EOM
4658    val="$define"
4659    ;;
4660 *) case "$use64bitint" in
4661    "$define"|true|[yY]*) dflt='y';;
4662    *) dflt='n';;
4663    esac
4664    cat <<EOM
4665
4666 Perl can be built to take advantage of 64-bit integer types
4667 on some systems.  To do so, Configure can be run with -Duse64bitint.
4668 Choosing this option will most probably introduce binary incompatibilities.
4669
4670 If this doesn't make any sense to you, just accept the default '$dflt'.
4671 EOM
4672    rp='Try to use 64-bit integers, if available?'
4673    . ./myread
4674    case "$ans" in
4675    [yY]*) val="$define" ;;
4676    *)     val="$undef"  ;;
4677    esac
4678    ;;
4679 esac
4680 set use64bitint
4681 eval $setvar
4682
4683 case "$use64bitall" in
4684 "$define"|true|[yY]*) dflt='y' ;;
4685 *) case "$longsize" in
4686    8) dflt='y' ;;
4687    *) dflt='n' ;;
4688    esac
4689    ;;
4690 esac    
4691 cat <<EOM
4692
4693 You may also choose to try maximal 64-bitness.  It means using as much
4694 64-bitness as possible on the platform.  This in turn means even more
4695 binary incompatibilities.  On the other hand, your platform may not
4696 have any more 64-bitness available than what you already have chosen.
4697
4698 If this doesn't make any sense to you, just accept the default '$dflt'.
4699 EOM
4700 rp='Try to use maximal 64-bit support, if available?'
4701 . ./myread
4702 case "$ans" in
4703 [yY]*) val="$define" ;;
4704 *)     val="$undef"  ;;
4705 esac
4706 set use64bitall
4707 eval $setvar
4708 case "$use64bitall" in
4709 "$define")
4710         case "$use64bitint" in
4711         "$undef")
4712                 cat <<EOM
4713
4714 Since you have chosen a maximally 64-bit build, I'm also turning on
4715 the use of 64-bit integers.
4716 EOM
4717                 use64bitint="$define" ;;
4718         esac
4719         ;;
4720 esac
4721
4722 case "$use64bitint" in
4723 "$define"|true|[yY]*)
4724 : Look for a hint-file generated 'call-back-unit'.  If the
4725 : user has specified that a 64-bit perl is to be built,
4726 : we may need to set or change some other defaults.
4727         if $test -f use64bitint.cbu; then
4728                 echo "Your platform has some specific hints for 64-bit integers, using them..."
4729                 . ./use64bitint.cbu
4730         fi
4731         case "$longsize" in
4732         4) case "$archname64" in
4733            '') archname64=64int ;;
4734            esac
4735            ;;
4736         esac
4737         ;;
4738 esac
4739
4740 case "$use64bitall" in
4741 "$define"|true|[yY]*)
4742 : Look for a hint-file generated 'call-back-unit'.  If the
4743 : user has specified that a maximally 64-bit perl is to be built,
4744 : we may need to set or change some other defaults.
4745         if $test -f use64bitall.cbu; then
4746                 echo "Your platform has some specific hints for 64-bit builds, using them..."
4747                 . ./use64bitall.cbu
4748         fi
4749         case "$longsize" in
4750         4) case "$archname64" in
4751            ''|64int) archname64=64all ;;
4752            esac
4753            ;;
4754         esac
4755         ;;
4756 esac
4757
4758 : determine the architecture name
4759 echo " "
4760 if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then
4761         tarch=`arch`"-$osname"
4762 elif xxx=`./loc uname blurfl $pth`; $test -f "$xxx" ; then
4763         if uname -m > tmparch 2>&1 ; then
4764                 tarch=`$sed -e 's/ *$//' -e 's/ /_/g' \
4765                         -e 's/$/'"-$osname/" tmparch`
4766         else
4767                 tarch="$osname"
4768         fi
4769         $rm -f tmparch
4770 else
4771         tarch="$osname"
4772 fi
4773 case "$myarchname" in
4774 ''|"$tarch") ;;
4775 *)
4776         echo "(Your architecture name used to be $myarchname.)"
4777         archname=''
4778         ;;
4779 esac
4780 myarchname="$tarch"
4781 case "$archname" in
4782 '') dflt="$tarch";;
4783 *) dflt="$archname";;
4784 esac
4785 rp='What is your architecture name'
4786 . ./myread
4787 archname="$ans"
4788 case "$usethreads" in
4789 $define)
4790         echo "Threads selected." >&4
4791         case "$archname" in