This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl 5.003_01: [changes beteween cumulative patches and tarball release]
[perl5.git] / Configure
CommitLineData
2304df62
AD
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 so you may fetch it yourself from your nearest
18# archive site. Check with Archie if you don't know where that can be.)
19#
20
8e07c86e 21# $Id: Head.U,v 3.0.1.8 1995/07/25 13:40:02 ram Exp $
2304df62 22#
a5f75d66 23# Generated on Wed Feb 21 14:26:18 EST 1996 [metaconfig 3.0 PL60]
2304df62
AD
24
25cat >/tmp/c1$$ <<EOF
26ARGGGHHHH!!!!!
27
28SCO csh still thinks true is false. Write to SCO today and tell them that next
29year Configure ought to "rm /bin/csh" unless they fix their blasted shell. :-)
30
31(Actually, Configure ought to just patch csh in place. Hmm. Hmmmmm. All
32we'd have to do is go in and swap the && and || tokens, wherever they are.)
33
34[End of diatribe. We now return you to your regularly scheduled programming...]
35EOF
36cat >/tmp/c2$$ <<EOF
37
38OOPS! You naughty creature! You didn't run Configure with sh!
39I will attempt to remedy the situation by running sh for you...
40EOF
41
42true || cat /tmp/c1$$ /tmp/c2$$
43true || exec sh $0 $argv:q
44
45(exit $?0) || cat /tmp/c2$$
46(exit $?0) || exec sh $0 $argv:q
47rm -f /tmp/c1$$ /tmp/c2$$
48
a0d0e21e
LW
49: compute my invocation name
50me=$0
51case "$0" in
52*/*)
53 me=`echo $0 | sed -e 's!.*/\(.*\)!\1!' 2>/dev/null`
54 test "$me" || me=$0
55 ;;
56esac
57
8e07c86e
AD
58: Proper PATH separator
59p_=:
60: On OS/2 this directory should exist if this is not floppy only system :-]
61if test -d c:/.; then
62 p_=\;
63 PATH=`cmd /c "echo %PATH%" | tr '\\\\' / `
64 OS2_SHELL=`cmd /c "echo %OS2_SHELL%" | tr '\\\\' / | tr '[A-Z]' '[a-z]'`
65fi
a0d0e21e
LW
66
67: Proper PATH setting
68paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
16d20bd9 69paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin"
232e078e 70paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
16d20bd9 71paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
232e078e
AD
72paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
73paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /usr/ccs/bin"
74paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
75paths="$paths /sbin /usr/sbin /usr/libexec"
a0d0e21e
LW
76
77for p in $paths
78do
8e07c86e
AD
79 case "$p_$PATH$p_" in
80 *$p_$p$p_*) ;;
81 *) test -d $p && PATH=$PATH$p_$p ;;
a0d0e21e
LW
82 esac
83done
84
8e07c86e 85PATH=.$p_$PATH
2304df62
AD
86export PATH
87
a0d0e21e 88: Sanity checks
2304df62 89if test ! -t 0; then
a0d0e21e 90 echo "Say 'sh $me', not 'sh <$me'"
2304df62
AD
91 exit 1
92fi
93
94: On HP-UX, large Configure scripts may exercise a bug in /bin/sh
95if test -f /hp-ux -a -f /bin/ksh; then
96 if (PATH=.; alias -x) >/dev/null 2>&1; then
97 : already under /bin/ksh
98 else
99 cat <<'EOM'
100(Feeding myself to ksh to avoid nasty sh bug in "here document" expansion.)
101EOM
ecfc5424 102 unset ENV
2304df62
AD
103 exec /bin/ksh $0 "$@"
104 fi
105else
106 : Warn them if they use ksh on other systems
107 (PATH=.; alias -x) >/dev/null 2>&1 && \
a0d0e21e
LW
108 cat <<EOM
109(I see you are using the Korn shell. Some ksh's blow up on $me,
2304df62
AD
110especially on exotic machines. If yours does, try the Bourne shell instead.)
111EOM
112fi
113
114: Configure runs within the UU subdirectory
115test -d UU || mkdir UU
8e07c86e 116cd UU && rm -f ./*
2304df62 117
a0d0e21e 118dynamic_ext=''
2304df62 119extensions=''
a0d0e21e
LW
120known_extensions=''
121static_ext=''
122useposix=''
2c7991dc 123usesafe=''
ecfc5424 124d_bsd=''
40a7a20a 125d_eunice=''
2304df62
AD
126d_xenix=''
127eunicefix=''
128Mcc=''
129awk=''
130bash=''
131bison=''
132byacc=''
133cat=''
134chgrp=''
135chmod=''
136chown=''
ecfc5424 137comm=''
2304df62
AD
138compress=''
139cp=''
140cpio=''
141cpp=''
142csh=''
143date=''
144echo=''
145egrep=''
146emacs=''
147expr=''
148find=''
149flex=''
150gcc=''
151grep=''
152inews=''
153ksh=''
154less=''
155line=''
156lint=''
157ln=''
158lp=''
159lpr=''
160ls=''
161mail=''
162mailx=''
163make=''
164mkdir=''
165more=''
166mv=''
167nroff=''
168perl=''
169pg=''
170pmake=''
171pr=''
172rm=''
173rmail=''
174sed=''
175sendmail=''
176sh=''
177shar=''
178sleep=''
179smail=''
180sort=''
181submit=''
182tail=''
183tar=''
184tbl=''
185test=''
186touch=''
187tr=''
188troff=''
189uname=''
190uniq=''
191uuname=''
192vi=''
193zcat=''
1aef975c 194full_sed=''
a0d0e21e 195libswanted=''
2304df62
AD
196hint=''
197myuname=''
85e6fe83
LW
198osname=''
199osvers=''
2304df62
AD
200Author=''
201Date=''
202Header=''
203Id=''
204Locker=''
205Log=''
206RCSfile=''
207Revision=''
208Source=''
209State=''
4633a7c4
LW
210ar=''
211archobjs=''
212exe_ext=''
213firstmakefile=''
214lib_ext=''
215obj_ext=''
216path_sep=''
2304df62 217afs=''
a0d0e21e
LW
218alignbytes=''
219archlib=''
220archlibexp=''
a0d0e21e
LW
221d_archlib=''
222installarchlib=''
40000a8c
AD
223archname=''
224myarchname=''
ecfc5424 225baserev=''
2304df62
AD
226bin=''
227binexp=''
228installbin=''
229byteorder=''
230cc=''
231gccversion=''
232ccflags=''
233cppflags=''
a78b0d02 234mab=''
2304df62
AD
235ldflags=''
236lkflags=''
8e07c86e 237locincpth=''
2304df62 238optimize=''
8e07c86e 239cf_email=''
2304df62
AD
240cf_by=''
241cf_time=''
242contains=''
a0d0e21e 243cpp_stuff=''
2304df62
AD
244cpplast=''
245cppminus=''
246cpprun=''
247cppstdin=''
248d_access=''
a0d0e21e 249d_alarm=''
ecfc5424 250d_attribut=''
2304df62
AD
251d_bcmp=''
252d_bcopy=''
253d_bzero=''
254d_casti32=''
255castflags=''
256d_castneg=''
a0d0e21e
LW
257d_chown=''
258d_chroot=''
2304df62 259d_chsize=''
a0d0e21e
LW
260d_closedir=''
261d_void_closedir=''
2304df62
AD
262d_const=''
263cryptlib=''
264d_crypt=''
265d_csh=''
1aef975c 266full_csh=''
a0d0e21e
LW
267d_cuserid=''
268d_dbl_dig=''
269d_difftime=''
270d_dlerror=''
271d_dlopen=''
272d_dlsymun=''
2304df62 273d_dosuid=''
a0d0e21e 274d_suidsafe=''
2304df62
AD
275d_dup2=''
276d_fchmod=''
277d_fchown=''
278d_fcntl=''
a0d0e21e
LW
279d_fd_macros=''
280d_fd_set=''
281d_fds_bits=''
282d_fgetpos=''
2304df62
AD
283d_flexfnam=''
284d_flock=''
a0d0e21e
LW
285d_fork=''
286d_fsetpos=''
287d_Gconvert=''
2304df62
AD
288d_getgrps=''
289d_gethent=''
290aphostname=''
291d_gethname=''
292d_phostname=''
293d_uname=''
a0d0e21e 294d_getlogin=''
2304df62
AD
295d_getpgrp2=''
296d_getpgrp=''
a0d0e21e 297d_getppid=''
2304df62
AD
298d_getprior=''
299d_htonl=''
300d_isascii=''
301d_killpg=''
302d_link=''
a0d0e21e
LW
303d_locconv=''
304d_lockf=''
2304df62 305d_lstat=''
a0d0e21e
LW
306d_mblen=''
307d_mbstowcs=''
308d_mbtowc=''
2304df62
AD
309d_memcmp=''
310d_memcpy=''
311d_memmove=''
312d_memset=''
313d_mkdir=''
a0d0e21e
LW
314d_mkfifo=''
315d_mktime=''
2304df62
AD
316d_msg=''
317d_msgctl=''
318d_msgget=''
319d_msgrcv=''
320d_msgsnd=''
a0d0e21e 321d_nice=''
2304df62 322d_open3=''
a0d0e21e
LW
323d_fpathconf=''
324d_pathconf=''
325d_pause=''
326d_pipe=''
8e07c86e 327d_poll=''
2304df62
AD
328d_portable=''
329d_readdir=''
85e6fe83
LW
330d_rewinddir=''
331d_seekdir=''
332d_telldir=''
a0d0e21e 333d_readlink=''
2304df62
AD
334d_rename=''
335d_rmdir=''
336d_safebcpy=''
337d_safemcpy=''
338d_select=''
339d_sem=''
340d_semctl=''
341d_semget=''
342d_semop=''
343d_setegid=''
344d_seteuid=''
a0d0e21e 345d_setlinebuf=''
2304df62
AD
346d_setlocale=''
347d_setpgid=''
348d_setpgrp2=''
349d_bsdpgrp=''
350d_setpgrp=''
351d_setprior=''
352d_setregid=''
353d_setresgid=''
354d_setresuid=''
355d_setreuid=''
356d_setrgid=''
357d_setruid=''
358d_setsid=''
359d_shm=''
360d_shmat=''
a0d0e21e
LW
361d_shmatprototype=''
362shmattype=''
2304df62
AD
363d_shmctl=''
364d_shmdt=''
365d_shmget=''
a5f75d66 366d_sigsetjmp=''
2c7991dc
PP
367d_sigaction=''
368d_sigintrp=''
369d_sigvec=''
370d_sigvectr=''
2304df62
AD
371d_oldsock=''
372d_socket=''
373d_sockpair=''
374sockethdr=''
375socketlib=''
376d_statblks=''
c2960299
AD
377d_stdio_cnt_lval=''
378d_stdio_ptr_lval=''
16d20bd9 379d_stdiobase=''
2304df62 380d_stdstdio=''
16d20bd9
AD
381stdio_base=''
382stdio_bufsiz=''
383stdio_cnt=''
384stdio_ptr=''
2304df62
AD
385d_index=''
386d_strchr=''
a0d0e21e 387d_strcoll=''
2304df62
AD
388d_strctcpy=''
389d_strerrm=''
390d_strerror=''
391d_sysernlst=''
392d_syserrlst=''
a0d0e21e 393d_strxfrm=''
2304df62
AD
394d_symlink=''
395d_syscall=''
a0d0e21e 396d_sysconf=''
2304df62 397d_system=''
a0d0e21e
LW
398d_tcgetpgrp=''
399d_tcsetpgrp=''
85e6fe83
LW
400d_time=''
401timetype=''
2304df62
AD
402clocktype=''
403d_times=''
404d_truncate=''
a0d0e21e
LW
405d_tzname=''
406d_umask=''
2304df62 407d_vfork=''
a0d0e21e 408usevfork=''
2304df62
AD
409d_voidsig=''
410signal_t=''
411d_volatile=''
412d_charvspr=''
413d_vprintf=''
414d_wait4=''
415d_waitpid=''
a0d0e21e
LW
416d_wcstombs=''
417d_wctomb=''
418dlext=''
85e6fe83
LW
419cccdlflags=''
420ccdlflags=''
ecfc5424 421d_shrplib=''
2304df62 422dlsrc=''
232e078e 423ld=''
85e6fe83 424lddlflags=''
ecfc5424 425shrpdir=''
2304df62 426usedl=''
a0d0e21e 427fpostype=''
2304df62
AD
428gidtype=''
429groupstype=''
430h_fcntl=''
431h_sysfile=''
ecfc5424
AD
432db_hashtype=''
433db_prefixtype=''
a0d0e21e 434i_db=''
2304df62 435i_dbm=''
8e07c86e 436i_rpcsvcdbm=''
2304df62 437d_dirnamlen=''
a0d0e21e 438direntrytype=''
2304df62 439i_dirent=''
a0d0e21e 440i_dld=''
2304df62
AD
441i_dlfcn=''
442i_fcntl=''
a0d0e21e 443i_float=''
2304df62
AD
444i_gdbm=''
445i_grp=''
a0d0e21e 446i_limits=''
4633a7c4 447i_locale=''
a0d0e21e
LW
448i_malloc=''
449i_math=''
85e6fe83 450i_memory=''
2304df62 451i_ndbm=''
85e6fe83 452i_neterrno=''
2304df62
AD
453i_niin=''
454i_sysin=''
455d_pwage=''
456d_pwchange=''
457d_pwclass=''
458d_pwcomment=''
459d_pwexpire=''
460d_pwquota=''
461i_pwd=''
2304df62 462i_stddef=''
a0d0e21e 463i_stdlib=''
2304df62
AD
464i_string=''
465strings=''
466i_sysdir=''
467i_sysfile=''
468d_voidtty=''
469i_bsdioctl=''
a0d0e21e 470i_sysfilio=''
2304df62
AD
471i_sysioctl=''
472i_syssockio=''
473i_sysndir=''
a0d0e21e 474i_sysparam=''
2304df62 475i_sysselct=''
1aef975c 476i_sysstat=''
a0d0e21e 477i_systimes=''
fed7345c 478i_systypes=''
25f94b33 479i_sysun=''
2304df62
AD
480i_sgtty=''
481i_termio=''
482i_termios=''
483i_systime=''
484i_systimek=''
485i_time=''
486timeincl=''
85e6fe83 487i_unistd=''
2304df62 488i_utime=''
a0d0e21e 489i_stdarg=''
2304df62
AD
490i_varargs=''
491i_varhdr=''
492i_vfork=''
493intsize=''
2304df62 494libc=''
a0d0e21e 495glibpth=''
2304df62 496libpth=''
8e07c86e 497loclibpth=''
2304df62
AD
498plibpth=''
499xlibpth=''
500libs=''
85e6fe83
LW
501lns=''
502lseektype=''
503d_mymalloc=''
94b6baf5 504freetype=''
2304df62
AD
505mallocobj=''
506mallocsrc=''
507malloctype=''
508usemymalloc=''
16d20bd9
AD
509installman1dir=''
510man1dir=''
511man1direxp=''
512man1ext=''
513installman3dir=''
514man3dir=''
515man3direxp=''
516man3ext=''
2304df62
AD
517huge=''
518large=''
519medium=''
520models=''
521small=''
522split=''
a0d0e21e 523modetype=''
2304df62
AD
524mydomain=''
525myhostname=''
526phostname=''
527c=''
528n=''
8e07c86e
AD
529d_eofnblk=''
530eagain=''
531o_nonblock=''
532rd_nodata=''
2304df62
AD
533groupcat=''
534hostcat=''
535passcat=''
4633a7c4
LW
536d_oldarchlib=''
537oldarchlib=''
538oldarchlibexp=''
85e6fe83
LW
539orderlib=''
540ranlib=''
2304df62
AD
541package=''
542spackage=''
2c7991dc 543pager=''
ecfc5424 544patchlevel=''
8e07c86e 545perladmin=''
4633a7c4 546perlpath=''
a0d0e21e 547prefix=''
1aef975c 548prefixexp=''
2304df62
AD
549installprivlib=''
550privlib=''
551privlibexp=''
552prototype=''
553randbits=''
554installscript=''
555scriptdir=''
556scriptdirexp=''
a0d0e21e 557selecttype=''
2304df62 558sig_name=''
8e07c86e 559sig_num=''
4633a7c4
LW
560installsitearch=''
561sitearch=''
562sitearchexp=''
25f94b33
AD
563installsitelib=''
564sitelib=''
565sitelibexp=''
a0d0e21e
LW
566sizetype=''
567so=''
2304df62
AD
568sharpbang=''
569shsharp=''
570spitshell=''
a0d0e21e 571ssizetype=''
4633a7c4 572startperl=''
2304df62
AD
573startsh=''
574stdchar=''
f55a7265 575subversion=''
2304df62
AD
576sysman=''
577uidtype=''
578nm_opt=''
40a7a20a 579nm_so_opt=''
2304df62
AD
580runnm=''
581usenm=''
582incpath=''
583mips=''
584mips_type=''
585usrinc=''
586defvoidused=''
587voidflags=''
2304df62
AD
588CONFIG=''
589
ecfc5424
AD
590define='define'
591undef='undef'
592smallmach='pdp11 i8086 z8000 i80286 iAPX286'
593rmlist=''
594
595: We must find out about Eunice early
596eunicefix=':'
597if test -f /etc/unixtovms; then
598 eunicefix=/etc/unixtovms
599fi
600if test -f /etc/unixtovms.exe; then
601 eunicefix=/etc/unixtovms.exe
602fi
603
604: list of known cpp symbols, sorted alphabetically
605al="AMIX BIT_MSF BSD BSD4_3 BSD_NET2 CMU CRAY DGUX DOLPHIN DPX2"
606al="$al GO32 GOULD_PN HP700 I386 I80960 I960 Lynx M68000 M68K MACH"
607al="$al MIPSEB MIPSEL MSDOS MTXINU MULTIMAX MVS"
608al="$al M_COFF M_I186 M_I286 M_I386 M_I8086 M_I86 M_I86SM"
609al="$al M_SYS3 M_SYS5 M_SYSIII M_SYSV M_UNIX M_XENIX"
610al="$al NeXT OCS88 OSF1 PARISC PC532 PORTAR POSIX"
611al="$al PWB R3000 RES RISC6000 RT Sun386i SVR3 SVR4"
612al="$al SYSTYPE_BSD SYSTYPE_SVR4 SYSTYPE_SYSV Tek4132 Tek4300"
613al="$al UMAXV USGr4 USGr4_2 UTEK UTS UTek UnicomPBB UnicomPBD Utek"
614al="$al VMS Xenix286"
615al="$al _AIX _AIX32 _AIX370 _AM29000 _COFF _CRAY _CX_UX _EPI"
616al="$al _IBMESA _IBMR2 _M88K _M88KBCS_TARGET"
617al="$al _MIPSEB _MIPSEL _M_COFF _M_I86 _M_I86SM _M_SYS3"
618al="$al _M_SYS5 _M_SYSIII _M_SYSV _M_UNIX _M_XENIX _NLS _PGC_ _R3000"
619al="$al _SYSTYPE_BSD _SYSTYPE_BSD43 _SYSTYPE_SVR4"
620al="$al _SYSTYPE_SYSV _SYSV3 _U370 _UNICOS"
621al="$al __386BSD__ __BIG_ENDIAN __BIG_ENDIAN__ __BSD_4_4__"
622al="$al __DGUX__ __DPX2__ __H3050R __H3050RX"
623al="$al __LITTLE_ENDIAN __LITTLE_ENDIAN__ __MACH__"
624al="$al __MIPSEB __MIPSEB__ __MIPSEL __MIPSEL__"
625al="$al __Next__ __OSF1__ __PARAGON__ __PGC__ __PWB __STDC__"
626al="$al __SVR4_2__ __UMAXV__"
627al="$al ____386BSD____ __alpha __alpha__ __amiga"
628al="$al __bsd4_2 __bsd4_2__ __bsdi__ __convex__"
629al="$al __host_mips__"
630al="$al __hp9000s200 __hp9000s300 __hp9000s400 __hp9000s500"
631al="$al __hp9000s500 __hp9000s700 __hp9000s800"
632al="$al __hppa __hpux __hp_osf __i286 __i286__ __i386 __i386__"
633al="$al __i486 __i486__ __i860 __i860__ __ibmesa __ksr1__ __linux__"
634al="$al __m68k __m68k__ __m88100__ __m88k __m88k__"
635al="$al __mc68000 __mc68000__ __mc68020 __mc68020__"
636al="$al __mc68030 __mc68030__ __mc68040 __mc68040__"
637al="$al __mc88100 __mc88100__ __mips __mips__"
638al="$al __motorola__ __osf__ __pa_risc __sparc__ __stdc__"
639al="$al __sun __sun__ __svr3__ __svr4__ __ultrix __ultrix__"
640al="$al __unix __unix__ __uxpm__ __uxps__ __vax __vax__"
641al="$al _host_mips _mips _unix"
642al="$al a29k aegis aix aixpc alliant alpha am29000 amiga ansi ardent"
643al="$al apollo ardent att386 att3b"
644al="$al bsd bsd43 bsd4_2 bsd4_3 bsd4_4 bsdi bull"
645al="$al cadmus clipper concurrent convex cray ctix"
646al="$al dmert encore gcos gcx gimpel gould"
647al="$al hbullx20 hcx host_mips hp200 hp300 hp700 hp800"
648al="$al hp9000 hp9000s300 hp9000s400 hp9000s500"
649al="$al hp9000s700 hp9000s800 hp9k8 hppa hpux"
650al="$al i186 i286 i386 i486 i8086"
651al="$al i80960 i860 iAPX286 ibm ibm032 ibmrt interdata is68k"
652al="$al ksr1 linux luna luna88k m68k m88100 m88k"
653al="$al mc300 mc500 mc68000 mc68010 mc68020 mc68030"
654al="$al mc68040 mc68060 mc68k mc68k32 mc700"
655al="$al mc88000 mc88100 merlin mert mips mvs n16"
656al="$al ncl_el ncl_mr"
657al="$al news1500 news1700 news1800 news1900 news3700"
658al="$al news700 news800 news900 ns16000 ns32000"
659al="$al ns32016 ns32332 ns32k nsc32000 os osf"
660al="$al parisc pc532 pdp11 plexus posix pyr"
661al="$al riscix riscos scs sequent sgi sinix sony sony_news"
662al="$al sonyrisc sparc sparclite spectrum stardent stratos"
663al="$al sun sun3 sun386 svr4 sysV68 sysV88"
664al="$al titan tower tower32 tower32_200 tower32_600 tower32_700"
665al="$al tower32_800 tower32_850 tss u370 u3b u3b2 u3b20 u3b200"
666al="$al u3b20d u3b5 ultrix unix unixpc unos vax venix vms"
667al="$al xenix z8000"
668
ecfc5424
AD
669groupstype=''
670i_whoami=''
8e07c86e
AD
671: default library list
672libswanted=''
673: set useposix=false in your hint file to disable the POSIX extension.
674useposix=true
2c7991dc
PP
675: set usesafe=false in your hint if you want to skip the Safe extension.
676usesafe=true
40a7a20a 677: Define several unixisms. These can be used in hint files.
25f94b33
AD
678exe_ext=''
679: Extra object files, if any, needed on this platform.
680archobjs=''
8e07c86e 681: Possible local include directories to search.
25f94b33 682: Set locincpth to "" in a hint file to defeat local include searches.
8e07c86e
AD
683locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
684locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
685:
686: no include file wanted by default
687inclwanted=''
688
ecfc5424
AD
689: change the next line if compiling for Xenix/286 on Xenix/386
690xlibpth='/usr/lib/386 /lib/386'
691
8e07c86e
AD
692: Possible local library directories to search.
693loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
694loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
695
ecfc5424 696: general looking path for locating libraries
8e07c86e
AD
697glibpth="/lib/pa1.1 /usr/shlib /usr/lib/large /lib /usr/lib"
698glibpth="$glibpth $xlibpth /lib/large /usr/lib/small /lib/small"
699glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/shlib"
ecfc5424
AD
700
701: Private path used by Configure to find libraries. Its value
702: is prepended to libpth. This variable takes care of special
703: machines, like the mips. Usually, it should be empty.
704plibpth=''
705
ecfc5424
AD
706: full support for void wanted by default
707defvoidused=15
708
ecfc5424
AD
709: List of libraries we want.
710libswanted='net socket inet nsl nm ndbm gdbm dbm db malloc dl'
711libswanted="$libswanted dld ld sun m c cposix posix ndir dir crypt"
712libswanted="$libswanted ucb bsd BSD PW x"
1aef975c 713: We probably want to search /usr/shlib before most other libraries.
94b6baf5 714: This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
ecfc5424
AD
715glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
716glibpth="/usr/shlib $glibpth"
717: Do not use vfork unless overridden by a hint file.
718usevfork=false
719
2304df62
AD
720: script used to extract .SH files with variable substitutions
721cat >extract <<'EOS'
722CONFIG=true
723echo "Doing variable substitutions on .SH files..."
724if test -f MANIFEST; then
a0d0e21e
LW
725 shlist=`awk '{print $1}' <MANIFEST | grep '\.SH'`
726 : Pick up possible extension manifests.
727 for dir in ext/* ; do
728 if test -f $dir/MANIFEST; then
729 xxx=`awk '{print $1}' < $dir/MANIFEST |
730 sed -n "/\.SH$/ s@^@$dir/@p"`
731 shlist="$shlist $xxx"
732 fi
733 done
734 set x $shlist
2304df62
AD
735else
736 echo "(Looking for .SH files under the current directory.)"
737 set x `find . -name "*.SH" -print`
738fi
739shift
740case $# in
7410) set x *.SH; shift;;
742esac
743if test ! -f $1; then
744 shift
745fi
746for file in $*; do
747 case "$file" in
748 */*)
749 dir=`expr X$file : 'X\(.*\)/'`
750 file=`expr X$file : 'X.*/\(.*\)'`
751 (cd $dir && . ./$file)
752 ;;
753 *)
754 . ./$file
755 ;;
756 esac
757done
758if test -f config_h.SH; then
759 if test ! -f config.h; then
760 : oops, they left it out of MANIFEST, probably, so do it anyway.
761 . ./config_h.SH
762 fi
763fi
764EOS
765
766: produce awk script to parse command line options
767cat >options.awk <<'EOF'
768BEGIN {
16d20bd9 769 optstr = "dD:eEf:hKOrsSU:V"; # getopt-style specification
2304df62
AD
770
771 len = length(optstr);
772 for (i = 1; i <= len; i++) {
773 c = substr(optstr, i, 1);
774 if (i < len) a = substr(optstr, i + 1, 1); else a = "";
775 if (a == ":") {
776 arg[c] = 1;
777 i++;
778 }
779 opt[c] = 1;
780 }
781}
782{
783 expect = 0;
784 str = $0;
785 if (substr(str, 1, 1) != "-") {
786 printf("'%s'\n", str);
787 next;
788 }
789 len = length($0);
790 for (i = 2; i <= len; i++) {
791 c = substr(str, i, 1);
792 if (!opt[c]) {
793 printf("-%s\n", substr(str, i));
794 next;
795 }
796 printf("-%s\n", c);
797 if (arg[c]) {
798 if (i < len)
799 printf("'%s'\n", substr(str, i + 1));
800 else
801 expect = 1;
802 next;
803 }
804 }
805}
806END {
807 if (expect)
808 print "?";
809}
810EOF
811
812: process the command line options
4633a7c4
LW
813set X `for arg in "$@"; do echo "X$arg"; done |
814 sed -e s/X// | awk -f options.awk`
2304df62
AD
815eval "set $*"
816shift
817rm -f options.awk
818
819: set up default values
820fastread=''
821reuseval=false
822config_sh=''
823alldone=''
824error=''
825silent=''
826extractsh=''
ecfc5424 827override=''
16d20bd9 828knowitall=''
1aef975c 829rm -f optdef.sh
2304df62
AD
830
831: option parsing
832while test $# -gt 0; do
833 case "$1" in
834 -d) shift; fastread=yes;;
835 -e) shift; alldone=cont;;
836 -f)
837 shift
838 cd ..
839 if test -r "$1"; then
840 config_sh="$1"
841 else
a0d0e21e 842 echo "$me: cannot read config file $1." >&2
2304df62
AD
843 error=true
844 fi
845 cd UU
846 shift;;
847 -h) shift; error=true;;
848 -r) shift; reuseval=true;;
849 -s) shift; silent=true;;
850 -E) shift; alldone=exit;;
16d20bd9 851 -K) shift; knowitall=true;;
ecfc5424 852 -O) shift; override=true;;
2304df62 853 -S) shift; extractsh=true;;
a0d0e21e
LW
854 -D)
855 shift
856 case "$1" in
857 *=)
858 echo "$me: use '-U symbol=', not '-D symbol='." >&2
859 echo "$me: ignoring -D $1" >&2
860 ;;
ecfc5424 861 *=*) echo "$1" | \
1aef975c
AD
862 sed -e "s/'/'\"'\"'/g" -e "s/=\(.*\)/='\1'/" >> optdef.sh;;
863 *) echo "$1='define'" >> optdef.sh;;
a0d0e21e
LW
864 esac
865 shift
866 ;;
867 -U)
868 shift
869 case "$1" in
1aef975c 870 *=) echo "$1" >> optdef.sh;;
a0d0e21e
LW
871 *=*)
872 echo "$me: use '-D symbol=val', not '-U symbol=val'." >&2
873 echo "$me: ignoring -U $1" >&2
874 ;;
1aef975c 875 *) echo "$1='undef'" >> optdef.sh;;
a0d0e21e
LW
876 esac
877 shift
878 ;;
2c7991dc 879 -V) echo "$me generated by metaconfig 3.0 PL60." >&2
2304df62
AD
880 exit 0;;
881 --) break;;
a0d0e21e 882 -*) echo "$me: unknown option $1" >&2; shift; error=true;;
2304df62
AD
883 *) break;;
884 esac
885done
886
887case "$error" in
888true)
889 cat >&2 <<EOM
16d20bd9 890Usage: $me [-dehrEKOSV] [-f config.sh] [-D symbol] [-D symbol=value]
a0d0e21e 891 [-U symbol] [-U symbol=]
2304df62
AD
892 -d : use defaults for all answers.
893 -e : go on without questioning past the production of config.sh.
894 -f : specify an alternate default configuration file.
895 -h : print this help message and exit (with an error status).
896 -r : reuse C symbols value if possible (skips costly nm extraction).
897 -s : silent mode, only echoes questions and essential information.
a0d0e21e
LW
898 -D : define symbol to have some value:
899 -D symbol symbol gets the value 'define'
900 -D symbol=value symbol gets the value 'value'
2304df62 901 -E : stop at the end of questions, after having produced config.sh.
16d20bd9 902 -K : do not use unless you know what you are doing.
ecfc5424 903 -O : let -D and -U override definitions from loaded configuration file.
2304df62 904 -S : perform variable substitutions on all .SH files (can mix with -f)
a0d0e21e
LW
905 -U : undefine symbol:
906 -U symbol symbol gets the value 'undef'
907 -U symbol= symbol gets completely empty
2304df62
AD
908 -V : print version number and exit (with a zero status).
909EOM
910 exit 1
911 ;;
912esac
913
914exec 4>&1
915case "$silent" in
916true) exec 1>/dev/null;;
917esac
918
ecfc5424 919: run the defines and the undefines, if any, but leave the file out there...
1aef975c
AD
920touch optdef.sh
921. ./optdef.sh
a0d0e21e 922
2304df62
AD
923case "$extractsh" in
924true)
925 case "$config_sh" in
926 '') config_sh='config.sh'; config='./config.sh';;
927 /*) config="$config_sh";;
928 *) config="./$config_sh";;
929 esac
930 echo " "
931 echo "Fetching answers from $config_sh..."
932 cd ..
933 . $config
1aef975c 934 test "$override" && . ./optdef.sh
2304df62
AD
935 echo " "
936 . ./UU/extract
937 rm -rf UU
938 echo "Done."
939 exit 0
940 ;;
941esac
942
943: set package name
85e6fe83 944package=perl5
1aef975c
AD
945first=`echo $package | sed -e 's/^\(.\).*/\1/'`
946last=`echo $package | sed -e 's/^.\(.*\)/\1/'`
947case "`echo AbyZ | tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
948ABYZ) spackage=`echo $first | tr '[:lower:]' '[:upper:]'`$last;;
949*) spackage=`echo $first | tr '[a-z]' '[A-Z]'`$last;;
950esac
2304df62
AD
951
952: Eunice requires " " instead of "", can you believe it
953echo " "
954: Here we go...
955echo "Beginning of configuration questions for $package."
956
1aef975c 957trap 'echo " "; test -d ../UU && rm -rf X $rmlist; exit 1' 1 2 3 15
2304df62 958
2304df62
AD
959: Some greps do not return status, grrr.
960echo "grimblepritz" >grimble
961if grep blurfldyick grimble >/dev/null 2>&1 ; then
962 contains=contains
963elif grep grimblepritz grimble >/dev/null 2>&1 ; then
964 contains=grep
965else
966 contains=contains
967fi
968rm -f grimble
969: the following should work in any shell
970case "$contains" in
971contains*)
972 echo " "
973 echo "AGH! Grep doesn't return a status. Attempting remedial action."
974 cat >contains <<'EOSS'
975grep "$1" "$2" >.greptmp && cat .greptmp && test -s .greptmp
976EOSS
977chmod +x contains
978esac
979
980: first determine how to suppress newline on echo command
981echo " "
982echo "Checking echo to see how to suppress newlines..."
983(echo "hi there\c" ; echo " ") >.echotmp
984if $contains c .echotmp >/dev/null 2>&1 ; then
985 echo "...using -n."
986 n='-n'
987 c=''
988else
989 cat <<'EOM'
990...using \c
991EOM
992 n=''
993 c='\c'
994fi
995echo $n "The star should be here-->$c"
996echo '*'
997rm -f .echotmp
998
999: Now test for existence of everything in MANIFEST
1000echo " "
1001if test -f ../MANIFEST; then
1002 echo "First let's make sure your kit is complete. Checking..." >&4
1003 awk '$1 !~ /PACK[A-Z]+/ {print $1}' ../MANIFEST | split -50
1004 rm -f missing
1005 for filelist in x??; do
1006 (cd ..; ls `cat UU/$filelist` >/dev/null 2>>UU/missing)
1007 done
1008 if test -s missing; then
1009 cat missing >&4
1010 cat >&4 <<'EOM'
1011
1012THIS PACKAGE SEEMS TO BE INCOMPLETE.
1013
1014You have the option of continuing the configuration process, despite the
1015distinct possibility that your kit is damaged, by typing 'y'es. If you
1016do, don't blame me if something goes wrong. I advise you to type 'n'o
a5f75d66 1017and contact the author (doughera@lafcol.lafayette.edu).
2304df62
AD
1018
1019EOM
1020 echo $n "Continue? [n] $c" >&4
1021 read ans
1022 case "$ans" in
1023 y*)
1024 echo "Continuing..." >&4
1025 rm -f missing
1026 ;;
1027 *)
1028 echo "ABORTING..." >&4
1029 kill $$
1030 ;;
1031 esac
1032 else
1033 echo "Looks good..." >&4
1034 fi
1035else
1036 echo "There is no MANIFEST file. I hope your kit is complete !"
1037fi
1038rm -f missing x??
1039
1040: compute the number of columns on the terminal for proper question formatting
1041case "$COLUMNS" in
1042'') COLUMNS='80';;
1043esac
1044
1045: set up the echo used in my read
1046myecho="case \"\$xxxm\" in
1047'') echo $n \"\$rp $c\" >&4;;
1048*) case \"\$rp\" in
1049 '') echo $n \"[\$xxxm] $c\";;
1050 *)
1051 if test \`echo \"\$rp [\$xxxm] \" | wc -c\` -ge $COLUMNS; then
1052 echo \"\$rp\" >&4
1053 echo $n \"[\$xxxm] $c\" >&4
1054 else
1055 echo $n \"\$rp [\$xxxm] $c\" >&4
1056 fi
1057 ;;
1058 esac;;
1059esac"
1060
1061: now set up to do reads with possible shell escape and default assignment
1062cat <<EOSC >myread
1063xxxm=\$dflt
1064$myecho
1065ans='!'
1066case "\$fastread" in
1067yes) case "\$dflt" in
1068 '') ;;
1069 *) ans='';
1070 case "\$silent-\$rp" in
1071 true-) ;;
1072 *) echo " " >&4;;
1073 esac;;
1074 esac;;
1075*) case "\$silent" in
1076 true) case "\$rp" in
1077 '') ans='';;
1078 esac;;
1079 esac;;
1080esac
1081while expr "X\$ans" : "X!" >/dev/null; do
1082 read answ
1083 set x \$xxxm
1084 shift
1085 aok=''; eval "ans=\"\$answ\"" && aok=y
1086 case "\$answ" in
1087 "\$ans")
1088 case "\$ans" in
ecfc5424
AD
1089 \\&*)
1090 set x \`expr "X\$ans" : "X&\(.*\)\$"\`
1091 shift
1092 case "\$1" in
1093 -d)
1094 fastread=yes
40a7a20a 1095 echo "(OK, I'll run with -d after this question.)" >&4
ecfc5424
AD
1096 ;;
1097 -*)
40a7a20a 1098 echo "*** Sorry, \$1 not supported yet." >&4
ecfc5424
AD
1099 ;;
1100 esac
1101 $myecho
1102 ans=!
1103 ;;
2304df62
AD
1104 "!")
1105 sh 1>&4
1106 echo " "
1107 $myecho
1108 ;;
1109 !*)
1110 set x \`expr "X\$ans" : "X!\(.*\)\$"\`
1111 shift
1112 sh 1>&4 -c "\$*"
1113 echo " "
1114 $myecho
1115 ;;
1116 esac;;
1117 *)
1118 case "\$aok" in
1119 y)
1120 echo "*** Substitution done -- please confirm."
1121 xxxm="\$ans"
1122 ans=\`echo $n "\$ans$c" | tr '\012' ' '\`
1123 xxxm="\$ans"
1124 ans=!
1125 ;;
1126 *)
1127 echo "*** Error -- try again."
1128 ans=!
1129 ;;
1130 esac
1131 $myecho
1132 ;;
1133 esac
1134 case "\$ans\$xxxm\$nostick" in
1135 '')
1136 ans=!
1137 $myecho
1138 ;;
1139 esac
1140done
1141case "\$ans" in
1142'') ans="\$xxxm";;
1143esac
1144EOSC
1145
1146: create .config dir to save info across Configure sessions
1147test -d ../.config || mkdir ../.config
1148cat >../.config/README <<EOF
1149This directory created by Configure to save information that should
1150persist across sessions.
1151
1152You may safely delete it if you wish.
1153EOF
1154
1155: general instructions
1156needman=true
1157firsttime=true
1158user=`( (logname) 2>/dev/null || whoami) 2>&1`
1159if $contains "^$user\$" ../.config/instruct >/dev/null 2>&1; then
1160 firsttime=false
1161 echo " "
1162 rp='Would you like to see the instructions?'
1163 dflt=n
1164 . ./myread
1165 case "$ans" in
1166 [yY]*) ;;
1167 *) needman=false;;
1168 esac
1169fi
1170if $needman; then
1171 cat <<EOH
1172
1173This installation shell script will examine your system and ask you questions
a0d0e21e 1174to determine how the perl5 package should be installed. If you get
2304df62
AD
1175stuck on a question, you may use a ! shell escape to start a subshell or
1176execute a command. Many of the questions will have default answers in square
1177brackets; typing carriage return will give you the default.
1178
1179On some of the questions which ask for file or directory names you are allowed
1180to use the ~name construct to specify the login directory belonging to "name",
1181even if you don't have a shell which knows about that. Questions where this is
1182allowed will be marked "(~name ok)".
1183
1184EOH
1185 rp=''
1186 dflt='Type carriage return to continue'
1187 . ./myread
1188 cat <<'EOH'
1189
1190The prompter used in this script allows you to use shell variables and
1191backticks in your answers. You may use $1, $2, etc... to refer to the words
1192in the default answer, as if the default line was a set of arguments given to a
1193script shell. This means you may also use $* to repeat the whole default line,
1194so you do not have to re-type everything to add something to the default.
1195
1196Everytime there is a substitution, you will have to confirm. If there is an
1197error (e.g. an unmatched backtick), the default answer will remain unchanged
1198and you will be prompted again.
1199
1200If you are in a hurry, you may run 'Configure -d'. This will bypass nearly all
1201the questions and use the computed defaults (or the previous answers if there
1202was already a config.sh file). Type 'Configure -h' for a list of options.
ecfc5424
AD
1203You may also start interactively and then answer '& -d' at any prompt to turn
1204on the non-interactive behaviour for the remaining of the execution.
2304df62
AD
1205
1206EOH
1207 . ./myread
1208 cat <<EOH
1209
1210Much effort has been expended to ensure that this shell script will run on any
1211Unix system. If despite that it blows up on yours, your best bet is to edit
40000a8c
AD
1212Configure and run it again. If you can't run Configure for some reason,
1213you'll have to generate a config.sh file by hand. Whatever problems you
a5f75d66 1214have, let me (doughera@lafcol.lafayette.edu) know how I blew it.
2304df62
AD
1215
1216This installation script affects things in two ways:
1217
12181) it may do direct variable substitutions on some of the files included
1219 in this kit.
12202) it builds a config.h file for inclusion in C programs. You may edit
1221 any of these files as the need arises after running this script.
1222
1223If you make a mistake on a question, there is no easy way to back up to it
1224currently. The easiest thing to do is to edit config.sh and rerun all the SH
1225files. Configure will offer to let you do this before it runs the SH files.
1226
1227EOH
1228 dflt='Type carriage return to continue'
1229 . ./myread
1230 case "$firsttime" in
1231 true) echo $user >>../.config/instruct;;
1232 esac
1233fi
1234
1235: see if sh knows # comments
1236echo " "
1237echo "Checking your sh to see if it knows about # comments..." >&4
ecfc5424 1238if `sh -c '#' >/dev/null 2>&1`; then
2304df62
AD
1239 echo "Your sh handles # comments correctly."
1240 shsharp=true
1241 spitshell=cat
1242 echo " "
1243 echo "Okay, let's see if #! works on this system..."
a0d0e21e 1244 xcat=/bin/cat
ecfc5424 1245 test -f $xcat || xcat=/usr/bin/cat
a0d0e21e 1246 echo "#!$xcat" >try
2304df62
AD
1247 $eunicefix try
1248 chmod +x try
1249 ./try > today
1250 if test -s today; then
1251 echo "It does."
1252 sharpbang='#!'
1253 else
a0d0e21e 1254 echo "#! $xcat" > try
2304df62
AD
1255 $eunicefix try
1256 chmod +x try
1257 ./try > today
1258 if test -s today; then
1259 echo "It does."
1260 sharpbang='#! '
1261 else
1262 echo "It's just a comment."
1263 sharpbang=': use '
1264 fi
1265 fi
1266else
1267 echo "Your sh doesn't grok # comments--I will strip them later on."
1268 shsharp=false
a0d0e21e 1269 cd ..
2304df62
AD
1270 echo "exec grep -v '^[ ]*#'" >spitshell
1271 chmod +x spitshell
1272 $eunicefix spitshell
1273 spitshell=`pwd`/spitshell
a0d0e21e 1274 cd UU
2304df62
AD
1275 echo "I presume that if # doesn't work, #! won't work either!"
1276 sharpbang=': use '
1277fi
1278rm -f try today
1279
1280: figure out how to guarantee sh startup
1281echo " "
1282echo "Checking out how to guarantee sh startup..." >&4
1283case "$SYSTYPE" in
1284*bsd*|sys5*) startsh=$sharpbang"/$SYSTYPE/bin/sh";;
1285*) startsh=$sharpbang'/bin/sh';;
1286esac
1287echo "Let's see if '$startsh' works..."
1288cat >try <<EOSS
1289$startsh
1290set abc
1291test "$?abc" != 1
1292EOSS
1293
1294chmod +x try
1295$eunicefix try
1296if ./try; then
1297 echo "Yup, it does."
1298else
1299echo "Nope. You may have to fix up the shell scripts to make sure sh runs them."
1300fi
1301rm -f try
1302
1303: find out where common programs are
1304echo " "
1305echo "Locating common programs..." >&4
1306cat <<EOSC >loc
1307$startsh
1308case \$# in
13090) exit 1;;
1310esac
1311thing=\$1
1312shift
1313dflt=\$1
1314shift
1315for dir in \$*; do
1316 case "\$thing" in
1317 .)
1318 if test -d \$dir/\$thing; then
1319 echo \$dir
1320 exit 0
1321 fi
1322 ;;
1323 *)
a0d0e21e 1324 for thisthing in \$dir/\$thing; do
ecfc5424 1325 : just loop through to pick last item
a0d0e21e 1326 done
25f94b33 1327 if test -f \$thisthing; then
a0d0e21e 1328 echo \$thisthing
2304df62
AD
1329 exit 0
1330 elif test -f \$dir/\$thing.exe; then
1331 : on Eunice apparently
1332 echo \$dir/\$thing
1333 exit 0
1334 fi
1335 ;;
1336 esac
1337done
1338echo \$dflt
1339exit 1
1340EOSC
1341chmod +x loc
1342$eunicefix loc
1343loclist="
1344awk
1345cat
ecfc5424 1346comm
2304df62
AD
1347cp
1348echo
1349expr
a0d0e21e 1350find
2304df62 1351grep
85e6fe83 1352ln
a0d0e21e 1353ls
2304df62 1354mkdir
2304df62
AD
1355rm
1356sed
1357sort
85e6fe83 1358touch
2304df62
AD
1359tr
1360uniq
1361"
1362trylist="
1363Mcc
2304df62
AD
1364byacc
1365cpp
1366csh
1367date
1368egrep
2c7991dc 1369less
2304df62 1370line
2c7991dc 1371more
2304df62
AD
1372nroff
1373perl
2c7991dc 1374pg
40a7a20a 1375sendmail
2304df62
AD
1376test
1377uname
1378"
8e07c86e 1379pth=`echo $PATH | sed -e "s/$p_/ /g"`
2304df62
AD
1380pth="$pth /lib /usr/lib"
1381for file in $loclist; do
1382 xxx=`./loc $file $file $pth`
1383 eval $file=$xxx
1384 eval _$file=$xxx
1385 case "$xxx" in
1386 /*)
1387 echo $file is in $xxx.
1388 ;;
8e07c86e
AD
1389 ?:[\\/]*)
1390 echo $file is in $xxx.
1391 ;;
2304df62 1392 *)
25f94b33
AD
1393 echo "I don't know where '$file' is, and my life depends on it." >&4
1394 echo "Go find a public domain implementation or fix your PATH setting!" >&4
4633a7c4 1395 exit 1
2304df62
AD
1396 ;;
1397 esac
1398done
1399echo " "
1400echo "Don't worry if any of the following aren't found..."
1401say=offhand
1402for file in $trylist; do
1403 xxx=`./loc $file $file $pth`
1404 eval $file=$xxx
1405 eval _$file=$xxx
1406 case "$xxx" in
1407 /*)
1408 echo $file is in $xxx.
1409 ;;
8e07c86e
AD
1410 ?:[\\/]*)
1411 echo $file is in $xxx.
1412 ;;
2304df62
AD
1413 *)
1414 echo "I don't see $file out there, $say."
1415 say=either
1416 ;;
1417 esac
1418done
1419case "$egrep" in
1420egrep)
1421 echo "Substituting grep for egrep."
1422 egrep=$grep
1423 ;;
1424esac
1425case "$test" in
1426test)
1427 echo "Hopefully test is built into your sh."
1428 ;;
1429*)
ecfc5424 1430 if `sh -c "PATH= test true" >/dev/null 2>&1`; then
2304df62
AD
1431 echo "Using the test built into your sh."
1432 test=test
1433 _test=test
1434 fi
1435 ;;
1436esac
1437case "$echo" in
1438echo)
1439 echo "Hopefully echo is built into your sh."
1440 ;;
1441'') ;;
1442*)
1443 echo " "
1444echo "Checking compatibility between $echo and builtin echo (if any)..." >&4
1445 $echo $n "hi there$c" >foo1
1446 echo $n "hi there$c" >foo2
1447 if cmp foo1 foo2 >/dev/null 2>&1; then
1448 echo "They are compatible. In fact, they may be identical."
1449 else
1450 case "$n" in
1451 '-n') n='' c='\c';;
1452 *) n='-n' c='';;
1453 esac
1454 cat <<FOO
1455They are not compatible! You are probably running ksh on a non-USG system.
1456I'll have to use $echo instead of the builtin, since Bourne shell doesn't
1457have echo built in and we may have to run some Bourne shell scripts. That
1458means I'll have to use '$n$c' to suppress newlines now. Life is ridiculous.
1459
1460FOO
1461 $echo $n "The star should be here-->$c"
1462 $echo "*"
1463 fi
1464 $rm -f foo1 foo2
1465 ;;
1466esac
1467
a0d0e21e
LW
1468: determine whether symbolic links are supported
1469echo " "
1470$touch blurfl
1471if $ln -s blurfl sym > /dev/null 2>&1 ; then
1472 echo "Symbolic links are supported." >&4
1473 lns="$ln -s"
1474else
1475 echo "Symbolic links are NOT supported." >&4
1476 lns="$ln"
1477fi
1478$rm -f blurfl sym
1479
ecfc5424
AD
1480: see whether [:lower:] and [:upper:] are supported character classes
1481echo " "
1482up='[A-Z]'
1483low='[a-z]'
1484case "`echo AbyZ | $tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
1485ABYZ)
1486 echo "Good, your tr supports [:lower:] and [:upper:] to convert case." >&4
1487 up='[:upper:]'
1488 low='[:lower:]'
1489 ;;
1490*)
1491 echo "Your tr only supports [a-z] and [A-Z] to convert case." >&4
1492 ;;
1493esac
1494: set up the translation script tr, must be called with ./tr of course
1495cat >tr <<EOSC
1496$startsh
1497case "\$1\$2" in
1498'[A-Z][a-z]') exec $tr '$up' '$low';;
1499'[a-z][A-Z]') exec $tr '$low' '$up';;
1500esac
1501exec $tr "\$@"
1502EOSC
1503chmod +x tr
1504$eunicefix tr
1505
2304df62
AD
1506: Try to determine whether config.sh was made on this system
1507case "$config_sh" in
1508'')
1509myuname=`( ($uname -a) 2>/dev/null || hostname) 2>&1`
a0d0e21e 1510myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e 's/\///g' | \
ecfc5424 1511 ./tr '[A-Z]' '[a-z]' | tr '\012' ' '`
1aef975c 1512newmyuname="$myuname"
2304df62 1513dflt=n
16d20bd9
AD
1514case "$knowitall" in
1515'')
1516 if test -f ../config.sh; then
1517 if $contains myuname= ../config.sh >/dev/null 2>&1; then
1518 eval "`grep myuname= ../config.sh`"
1519 fi
1520 if test "X$myuname" = "X$newmyuname"; then
1521 dflt=y
1522 fi
2304df62 1523 fi
16d20bd9
AD
1524 ;;
1525*) dflt=y;;
1526esac
2304df62
AD
1527
1528: Get old answers from old config file if Configure was run on the
1529: same system, otherwise use the hints.
1530hint=default
1531cd ..
1532if test -f config.sh; then
16d20bd9
AD
1533 echo " "
1534 rp="I see a config.sh file. Shall I use it to set the defaults?"
2304df62
AD
1535 . UU/myread
1536 case "$ans" in
1537 n*|N*) echo "OK, I'll ignore it."; mv config.sh config.sh.old;;
1538 *) echo "Fetching default answers from your old config.sh file..." >&4
ecfc5424
AD
1539 tmp_n="$n"
1540 tmp_c="$c"
2304df62
AD
1541 . ./config.sh
1542 cp config.sh UU
ecfc5424
AD
1543 n="$tmp_n"
1544 c="$tmp_c"
2304df62
AD
1545 hint=previous
1546 ;;
1547 esac
1548fi
1549if test ! -f config.sh; then
1550 $cat <<EOM
1551
1552First time through, eh? I have some defaults handy for the following systems:
1553
1554EOM
1555 cd hints; ls -C *.sh | $sed 's/\.sh/ /g' >&4
1556 dflt=''
1557 : Half the following guesses are probably wrong... If you have better
a5f75d66 1558 : tests or hints, please send them to doughera@lafcol.lafayette.edu
2304df62 1559 : The metaconfig authors would also appreciate a copy...
a0d0e21e 1560 $test -f /irix && osname=irix
85e6fe83
LW
1561 $test -f /xenix && osname=sco_xenix
1562 $test -f /dynix && osname=dynix
1563 $test -f /dnix && osname=dnix
a0d0e21e 1564 $test -f /unicos && osname=unicos && osvers=`$uname -r`
85e6fe83 1565 $test -f /bin/mips && /bin/mips && osname=mips
ecfc5424
AD
1566 $test -d /NextApps && set X `hostinfo | grep 'NeXT Mach.*:' | \
1567 $sed -e 's/://' -e 's/\./_/'` && osname=next && osvers=$4
a0d0e21e
LW
1568 $test -d /usr/apollo/bin && osname=apollo
1569 $test -f /etc/saf/_sactab && osname=svr4
85e6fe83 1570 $test -d /usr/include/minix && osname=minix
4633a7c4
LW
1571 if $test -d /MachTen; then
1572 osname=machten
1573 if $test -x /sbin/version; then
1574 osvers=`/sbin/version | $awk '{print $2}' |
1575 $sed -e 's/[A-Za-z]$//'`
1576 elif $test -x /usr/etc/version; then
1577 osvers=`/usr/etc/version | $awk '{print $2}' |
1578 $sed -e 's/[A-Za-z]$//'`
1579 else
1580 osvers="$2.$3"
1581 fi
1582 fi
2304df62
AD
1583 if $test -f $uname; then
1584 set X $myuname
1585 shift
1586
2304df62 1587 case "$5" in
85e6fe83 1588 fps*) osname=fps ;;
2304df62
AD
1589 mips*)
1590 case "$4" in
85e6fe83
LW
1591 umips) osname=umips ;;
1592 *) osname=mips ;;
2304df62 1593 esac;;
85e6fe83
LW
1594 [23]100) osname=mips ;;
1595 next*) osname=next ;;
1596 news*) osname=news ;;
ecfc5424
AD
1597 i386*)
1598 if $test -f /etc/kconfig; then
1599 osname=isc
a0d0e21e
LW
1600 if test "$lns" = "ln -s"; then
1601 osvers=4
1602 elif $contains _SYSV3 /usr/include/stdio.h > /dev/null 2>&1 ; then
1603 osvers=3
2304df62 1604 elif $contains _POSIX_SOURCE /usr/include/stdio.h > /dev/null 2>&1 ; then
a0d0e21e 1605 osvers=2
ecfc5424
AD
1606 fi
1607 fi
1608 ;;
2304df62
AD
1609 esac
1610
1611 case "$1" in
a0d0e21e
LW
1612 aix) osname=aix
1613 tmp=`( (oslevel) 2>/dev/null || echo "not found") 2>&1`
1614 case "$tmp" in
1aef975c 1615 'not found') osvers="$4"."$3" ;;
a0d0e21e
LW
1616 '<3240'|'<>3240') osvers=3.2.0 ;;
1617 '=3240'|'>3240'|'<3250'|'<>3250') osvers=3.2.4 ;;
1618 '=3250'|'>3250') osvers=3.2.5 ;;
1aef975c 1619 *) osvers=$tmp;;
a0d0e21e
LW
1620 esac
1621 ;;
1622 dnix) osname=dnix
1623 osvers="$3"
1624 ;;
1625 domainos) osname=apollo
1626 osvers="$3"
1627 ;;
1628 dgux) osname=dgux
1629 osvers="$3"
1630 ;;
1631 freebsd) osname=freebsd
1632 osvers="$3" ;;
1633 genix) osname=genix ;;
1634 hp*) osname=hpux
1635 case "$3" in
1636 *.08.*) osvers=9 ;;
1637 *.09.*) osvers=9 ;;
1638 *.10.*) osvers=10 ;;
ecfc5424 1639 *) osvers="$3" ;;
a0d0e21e
LW
1640 esac
1641 ;;
a78b0d02 1642 irix*) osname=irix
a0d0e21e
LW
1643 case "$3" in
1644 4*) osvers=4 ;;
1645 5*) osvers=5 ;;
ecfc5424 1646 *) osvers="$3" ;;
a0d0e21e
LW
1647 esac
1648 ;;
1649 linux) osname=linux
1650 case "$3" in
1651 1*) osvers=1 ;;
1652 *) osvers="$3" ;;
1653 esac
1654 ;;
1655 netbsd*) osname=netbsd
ecfc5424
AD
1656 osvers="$3"
1657 ;;
a0d0e21e
LW
1658 bsd386) osname=bsd386
1659 osvers=`$uname -r`
1660 ;;
1661 next*) osname=next ;;
1662 solaris) osname=solaris
1663 case "$3" in
1664 5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;;
ecfc5424 1665 *) osvers="$3" ;;
a0d0e21e
LW
1666 esac
1667 ;;
85e6fe83
LW
1668 sunos) osname=sunos
1669 case "$3" in
85e6fe83
LW
1670 5*) osname=solaris
1671 osvers=`echo $3 | $sed 's/^5/2/g'` ;;
a0d0e21e 1672 *) osvers="$3" ;;
2304df62
AD
1673 esac
1674 ;;
a0d0e21e 1675 titanos) osname=titanos
85e6fe83 1676 case "$3" in
a0d0e21e
LW
1677 1*) osvers=1 ;;
1678 2*) osvers=2 ;;
1679 3*) osvers=3 ;;
1680 4*) osvers=4 ;;
ecfc5424 1681 *) osvers="$3" ;;
2304df62
AD
1682 esac
1683 ;;
85e6fe83 1684 ultrix) osname=ultrix
ecfc5424 1685 osvers="$3"
2304df62 1686 ;;
85e6fe83 1687 osf1) case "$5" in
fed7345c
AD
1688 alpha)
1689 osname=dec_osf
1690 osvers=`echo "$3" | sed 's/^[vt]//'`
ecfc5424
AD
1691 ;;
1692 hp*) osname=hp_osf1 ;;
1693 mips) osname=mips_osf1 ;;
85e6fe83
LW
1694 esac
1695 ;;
a0d0e21e
LW
1696 uts) osname=uts
1697 osvers="$3"
1698 ;;
85e6fe83 1699 $2) case "$osname" in
2304df62 1700 *isc*) ;;
a0d0e21e
LW
1701 *freebsd*) ;;
1702 svr*)
1703 : svr4.x or possibly later
1704 case "svr$3" in
1705 ${osname}*)
1706 osname=svr$3
1707 osvers=$4
1708 ;;
1709 esac
1710 case "$osname" in
1711 svr4.0)
1712 : Check for ESIX
1713 if test -f /stand/boot ; then
1714 eval `grep '^INITPROG=[a-z/0-9]*$' /stand/boot`
ecfc5424
AD
1715 if test -n "$INITPROG" -a -f "$INITPROG"; then
1716 isesix=`strings -a $INITPROG|grep 'ESIX SYSTEM V/386 Release 4.0'`
1717 if test -n "$isesix"; then
a0d0e21e
LW
1718 osname=esix4
1719 fi
1720 fi
1721 fi
1722 ;;
1723 esac
1724 ;;
2304df62 1725 *) if test -f /etc/systemid; then
a0d0e21e
LW
1726 osname=sco
1727 set `echo $3 | $sed 's/\./ /g'` $4
2304df62 1728 if $test -f sco_$1_$2_$3.sh; then
85e6fe83 1729 osvers=$1.$2.$3
2304df62 1730 elif $test -f sco_$1_$2.sh; then
85e6fe83 1731 osvers=$1.$2
2304df62 1732 elif $test -f sco_$1.sh; then
85e6fe83 1733 osvers=$1
2304df62 1734 fi
a0d0e21e
LW
1735 else
1736 case "$osname" in
1737 '') : Still unknown. Probably a generic Sys V.
1738 osname="sysv"
1739 osvers="$3"
1740 ;;
1741 esac
2304df62
AD
1742 fi
1743 ;;
1744 esac
1745 ;;
a0d0e21e
LW
1746 *) case "$osname" in
1747 '') : Still unknown. Probably a generic BSD.
1748 osname="$1"
1749 osvers="$3"
1750 ;;
1751 esac
1752 ;;
2304df62
AD
1753 esac
1754 else
1755 if test -f /vmunix -a -f news_os.sh; then
ecfc5424 1756 (what /vmunix | ../UU/tr '[A-Z]' '[a-z]') > ../UU/kernel.what 2>&1
2304df62 1757 if $contains news-os ../UU/kernel.what >/dev/null 2>&1; then
85e6fe83 1758 osname=news_os
2304df62
AD
1759 fi
1760 $rm -f ../UU/kernel.what
8e07c86e
AD
1761 elif test -d c:/.; then
1762 set X $myuname
1763 osname=os2
1764 osvers="$5"
2304df62
AD
1765 fi
1766 fi
85e6fe83 1767
a0d0e21e
LW
1768 : Now look for a hint file osname_osvers, unless one has been
1769 : specified already.
1770 case "$hintfile" in
1771 ''|' ')
ecfc5424 1772 file=`echo "${osname}_${osvers}" | $sed -e 's@\.@_@g' -e 's@_$@@'`
a0d0e21e 1773 : Also try without trailing minor version numbers.
ecfc5424
AD
1774 xfile=`echo $file | $sed -e 's@_[^_]*$@@'`
1775 xxfile=`echo $xfile | $sed -e 's@_[^_]*$@@'`
1776 xxxfile=`echo $xxfile | $sed -e 's@_[^_]*$@@'`
1777 xxxxfile=`echo $xxxfile | $sed -e 's@_[^_]*$@@'`
a0d0e21e
LW
1778 case "$file" in
1779 '') dflt=none ;;
1780 *) case "$osvers" in
1781 '') dflt=$file
1782 ;;
1783 *) if $test -f $file.sh ; then
1784 dflt=$file
1785 elif $test -f $xfile.sh ; then
1786 dflt=$xfile
1787 elif $test -f $xxfile.sh ; then
1788 dflt=$xxfile
1789 elif $test -f $xxxfile.sh ; then
1790 dflt=$xxxfile
1791 elif $test -f $xxxxfile.sh ; then
1792 dflt=$xxxxfile
1793 elif $test -f "${osname}.sh" ; then
1794 dflt="${osname}"
1795 else
1796 dflt=none
1797 fi
1798 ;;
1799 esac
85e6fe83
LW
1800 ;;
1801 esac
1802 ;;
a0d0e21e 1803 *)
ecfc5424 1804 dflt=`echo $hintfile | $sed 's/\.sh$//'`
a0d0e21e 1805 ;;
2304df62 1806 esac
1aef975c 1807
2304df62
AD
1808 $cat <<EOM
1809
1810You may give one or more space-separated answers, or "none" if appropriate.
1811If your OS version has no hints, DO NOT give a wrong version -- say "none".
1812
1813EOM
1814 rp="Which of these apply, if any?"
1815 . ../UU/myread
85e6fe83
LW
1816 tans=$ans
1817 for file in $tans; do
2304df62
AD
1818 if $test -f $file.sh; then
1819 . ./$file.sh
1820 $cat $file.sh >> ../UU/config.sh
85e6fe83 1821 elif $test X$tans = X -o X$tans = Xnone ; then
2304df62
AD
1822 : nothing
1823 else
85e6fe83
LW
1824 : Give one chance to correct a possible typo.
1825 echo "$file.sh does not exist"
1826 dflt=$file
1827 rp="hint to use instead?"
1828 . ../UU/myread
1829 for file in $ans; do
1830 if $test -f "$file.sh"; then
1831 . ./$file.sh
1832 $cat $file.sh >> ../UU/config.sh
1833 elif $test X$ans = X -o X$ans = Xnone ; then
1834 : nothing
1835 else
1836 echo "$file.sh does not exist -- ignored."
1837 fi
1838 done
2304df62
AD
1839 fi
1840 done
85e6fe83 1841
2304df62 1842 hint=recommended
85e6fe83
LW
1843 : Remember our hint file for later.
1844 if $test -f "$file.sh" ; then
a0d0e21e 1845 hintfile="$file"
85e6fe83 1846 else
a0d0e21e 1847 hintfile=''
85e6fe83
LW
1848 fi
1849
2304df62
AD
1850 cd ..
1851fi
1852cd UU
1853;;
1854*)
1855 echo " "
1856 echo "Fetching default answers from $config_sh..." >&4
ecfc5424
AD
1857 tmp_n="$n"
1858 tmp_c="$c"
2304df62
AD
1859 cd ..
1860 cp $config_sh config.sh 2>/dev/null
a78b0d02 1861 chmod +w config.sh
2304df62
AD
1862 . ./config.sh
1863 cd UU
1864 cp ../config.sh .
ecfc5424
AD
1865 n="$tmp_n"
1866 c="$tmp_c"
2304df62
AD
1867 hint=previous
1868 ;;
1869esac
1aef975c
AD
1870test "$override" && . ./optdef.sh
1871myuname="$newmyuname"
2304df62
AD
1872
1873: Restore computed paths
1874for file in $loclist $trylist; do
1875 eval $file="\$_$file"
1876done
1877
85e6fe83 1878cat << EOM
a0d0e21e 1879
85e6fe83 1880Configure uses the operating system name and version to set some defaults.
ecfc5424
AD
1881The default value is probably right if the name rings a bell. Otherwise,
1882since spelling matters for me, either accept the default or answer "none"
1883to leave it blank.
a0d0e21e 1884
85e6fe83 1885EOM
85e6fe83 1886case "$osname" in
a0d0e21e 1887 ''|' ')
85e6fe83 1888 case "$hintfile" in
a0d0e21e 1889 ''|' '|none) dflt=none ;;
ecfc5424 1890 *) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/_.*$//'` ;;
85e6fe83
LW
1891 esac
1892 ;;
1893 *) dflt="$osname" ;;
1894esac
1895rp="Operating system name?"
1896. ./myread
1897case "$ans" in
ecfc5424
AD
1898none) osname='' ;;
1899*) osname=`echo "$ans" | $sed -e 's/[ ][ ]*/_/g' | ./tr '[A-Z]' '[a-z]'`;;
85e6fe83 1900esac
2304df62
AD
1901: who configured the system
1902cf_time=`$date 2>&1`
a0d0e21e
LW
1903(logname > .temp) >/dev/null 2>&1
1904$test -s .temp || (whoami > .temp) >/dev/null 2>&1
1905$test -s .temp || echo unknown > .temp
1906cf_by=`$cat .temp`
1907$rm -f .temp
2304df62 1908
4633a7c4 1909: determine the architecture name
2304df62 1910echo " "
4633a7c4
LW
1911if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then
1912 tarch=`arch`"-$osname"
1913elif xxx=`./loc uname blurfl $pth`; $test -f "$xxx" ; then
1914 if uname -m > tmparch 2>&1 ; then
1915 tarch=`$sed -e 's/ /_/g' -e 's/$/'"-$osname/" tmparch`
1916 else
1917 tarch="$osname"
1918 fi
1919 $rm -f tmparch
1920else
1921 tarch="$osname"
1922fi
1923case "$myarchname" in
1924''|"$tarch") ;;
1925*)
1926 echo "(Your architecture name used to be $myarchname.)"
1927 archname=''
2304df62
AD
1928 ;;
1929esac
4633a7c4
LW
1930case "$archname" in
1931'') dflt="$tarch";;
1932*) dflt="$archname";;
1933esac
1934rp='What is your architecture name'
1935. ./myread
1936archname="$ans"
1937myarchname="$tarch"
1938
1939: is AFS running?
1940echo " "
1941if test -d /afs; then
1942 echo "AFS may be running... I'll be extra cautious then..." >&4
1943 afs=true
2304df62 1944else
4633a7c4
LW
1945 echo "AFS does not seem to be running..." >&4
1946 afs=false
2304df62
AD
1947fi
1948
4633a7c4
LW
1949: decide how portable to be. Allow command line overrides.
1950case "$d_portable" in
1951"$undef") ;;
1952*) d_portable="$define" ;;
2304df62 1953esac
2304df62 1954
4633a7c4
LW
1955: set up shell script to do ~ expansion
1956cat >filexp <<EOSS
1957$startsh
1958: expand filename
1959case "\$1" in
1960 ~/*|~)
1961 echo \$1 | $sed "s|~|\${HOME-\$LOGDIR}|"
2304df62 1962 ;;
4633a7c4
LW
1963 ~*)
1964 if $test -f /bin/csh; then
1965 /bin/csh -f -c "glob \$1"
1966 failed=\$?
1967 echo ""
1968 exit \$failed
1969 else
1970 name=\`$expr x\$1 : '..\([^/]*\)'\`
1971 dir=\`$sed -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}' </etc/passwd\`
1972 if $test ! -d "\$dir"; then
1973 me=\`basename \$0\`
1974 echo "\$me: can't locate home directory for: \$name" >&2
1975 exit 1
1976 fi
1977 case "\$1" in
1978 */*)
1979 echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\`
1980 ;;
1981 *)
1982 echo \$dir
1983 ;;
2304df62 1984 esac
4633a7c4 1985 fi
2304df62
AD
1986 ;;
1987*)
4633a7c4 1988 echo \$1
2304df62
AD
1989 ;;
1990esac
4633a7c4
LW
1991EOSS
1992chmod +x filexp
1993$eunicefix filexp
2304df62
AD
1994
1995: now set up to get a file name
1996cat <<'EOSC' >getfile
1997tilde=''
1998fullpath=''
1999already=''
2000skip=''
2001none_ok=''
2002exp_file=''
a0d0e21e 2003nopath_ok=''
2304df62
AD
2004orig_rp="$rp"
2005orig_dflt="$dflt"
2006
2007case "$fn" in
ecfc5424
AD
2008*\(*)
2009 expr $fn : '.*(\(.*\)).*' | tr ',' '\012' >getfile.ok
2010 fn=`echo $fn | sed 's/(.*)//'`
2011 ;;
2012esac
2013
2014case "$fn" in
a0d0e21e
LW
2015*:*)
2016 loc_file=`expr $fn : '.*:\(.*\)'`
2017 fn=`expr $fn : '\(.*\):.*'`
2018 ;;
2019esac
2020
2021case "$fn" in
2304df62
AD
2022*~*) tilde=true;;
2023esac
2024case "$fn" in
2025*/*) fullpath=true;;
2026esac
2027case "$fn" in
2028*+*) skip=true;;
2029esac
2030case "$fn" in
2031*n*) none_ok=true;;
2032esac
2033case "$fn" in
2034*e*) exp_file=true;;
2035esac
a0d0e21e
LW
2036case "$fn" in
2037*p*) nopath_ok=true;;
2038esac
2304df62
AD
2039
2040case "$fn" in
2041*f*) type='File';;
2042*d*) type='Directory';;
a0d0e21e 2043*l*) type='Locate';;
2304df62
AD
2044esac
2045
2046what="$type"
2047case "$what" in
2048Locate) what='File';;
2049esac
2050
2051case "$exp_file" in
2052'')
2053 case "$d_portable" in
2054 "$define") ;;
2055 *) exp_file=true;;
2056 esac
2057 ;;
2058esac
2059
2060cd ..
2061while test "$type"; do
2062 redo=''
2063 rp="$orig_rp"
2064 dflt="$orig_dflt"
2065 case "$tilde" in
2066 true) rp="$rp (~name ok)";;
2067 esac
2068 . UU/myread
ecfc5424
AD
2069 if test -f UU/getfile.ok && \
2070 $contains "^$ans\$" UU/getfile.ok >/dev/null 2>&1
2071 then
2072 value="$ans"
2073 ansexp="$ans"
2074 break
2075 fi
2304df62
AD
2076 case "$ans" in
2077 none)
2078 value=''
2079 ansexp=''
2080 case "$none_ok" in
2081 true) type='';;
2082 esac
2083 ;;
2084 *)
2085 case "$tilde" in
2086 '') value="$ans"
2087 ansexp="$ans";;
2088 *)
2089 value=`UU/filexp $ans`
2090 case $? in
2091 0)
2092 if test "$ans" != "$value"; then
ecfc5424 2093 echo "(That expands to $value on this system.)"
2304df62
AD
2094 fi
2095 ;;
2096 *) value="$ans";;
2097 esac
2098 ansexp="$value"
2099 case "$exp_file" in
2100 '') value="$ans";;
2101 esac
2102 ;;
2103 esac
2104 case "$fullpath" in
2105 true)
2106 case "$ansexp" in
2107 /*) value="$ansexp" ;;
2108 *)
2109 redo=true
2110 case "$already" in
2111 true)
2112 echo "I shall only accept a full path name, as in /bin/ls." >&4
2113 echo "Use a ! shell escape if you wish to check pathnames." >&4
2114 ;;
2115 *)
2116 echo "Please give a full path name, starting with slash." >&4
2117 case "$tilde" in
2118 true)
2119 echo "Note that using ~name is ok provided it expands well." >&4
2120 already=true
2121 ;;
2122 esac
2123 esac
2124 ;;
2125 esac
2126 ;;
2127 esac
2128 case "$redo" in
2129 '')
2130 case "$type" in
2131 File)
2132 if test -f "$ansexp"; then
2133 type=''
2134 elif test -r "$ansexp" || (test -h "$ansexp") >/dev/null 2>&1
2135 then
2136 echo "($value is not a plain file, but that's ok.)"
2137 type=''
2138 fi
2139 ;;
2140 Directory)
2141 if test -d "$ansexp"; then
2142 type=''
2143 fi
2144 ;;
2145 Locate)
40000a8c 2146 if test -d "$ansexp"; then
a0d0e21e
LW
2147 echo "(Looking for $loc_file in directory $value.)"
2148 value="$value/$loc_file"
40000a8c 2149 ansexp="$ansexp/$loc_file"
2304df62 2150 fi
40000a8c 2151 if test -f "$ansexp"; then
2304df62
AD
2152 type=''
2153 fi
a0d0e21e
LW
2154 case "$nopath_ok" in
2155 true) case "$value" in
2156 */*) ;;
2157 *) echo "Assuming $value will be in people's path."
2158 type=''
2159 ;;
2160 esac
2161 ;;
2162 esac
2304df62
AD
2163 ;;
2164 esac
2165
2166 case "$skip" in
2167 true) type='';
2168 esac
2169
2170 case "$type" in
2171 '') ;;
2172 *)
2173 if test "$fastread" = yes; then
2174 dflt=y
2175 else
2176 dflt=n
2177 fi
2178 rp="$what $value doesn't exist. Use that name anyway?"
2179 . UU/myread
2180 dflt=''
2181 case "$ans" in
2182 y*) type='';;
2183 *) echo " ";;
2184 esac
2185 ;;
2186 esac
2187 ;;
2188 esac
2189 ;;
2190 esac
2191done
2192cd UU
2193ans="$value"
2194rp="$orig_rp"
2195dflt="$orig_dflt"
ecfc5424 2196rm -f getfile.ok
2304df62
AD
2197EOSC
2198
4633a7c4
LW
2199: determine root of directory hierarchy where package will be installed.
2200case "$prefix" in
2201'')
2202 dflt=`./loc . /usr/local /usr/local /local /opt /usr`
8e07c86e 2203 ;;
4633a7c4
LW
2204*)
2205 dflt="$prefix"
8e07c86e
AD
2206 ;;
2207esac
4633a7c4 2208$cat <<EOM
2304df62 2209
4633a7c4
LW
2210By default, $package will be installed in $dflt/bin, manual
2211pages under $dflt/man, etc..., i.e. with $dflt as prefix for
2212all installation directories. Typically set to /usr/local, but you
2213may choose /usr if you wish to install $package among your system
2214binaries. If you wish to have binaries under /bin but manual pages
2215under /usr/local/man, that's ok: you will be prompted separately
2216for each of the installation directories, the prefix being only used
2217to set the defaults.
8e07c86e
AD
2218
2219EOM
2220fn=d~
2221rp='Installation prefix to use?'
2222. ./getfile
2223oldprefix=''
2224case "$prefix" in
a0d0e21e 2225'') ;;
8e07c86e
AD
2226*)
2227 case "$ans" in
2228 "$prefix") ;;
2229 *) oldprefix="$prefix";;
2230 esac
2231 ;;
a0d0e21e 2232esac
8e07c86e
AD
2233prefix="$ans"
2234prefixexp="$ansexp"
a0d0e21e 2235
8e07c86e
AD
2236: set the prefixit variable, to compute a suitable default value
2237prefixit='case "$3" in
2238""|none)
2239 case "$oldprefix" in
2240 "") eval "$1=\"\$$2\"";;
2241 *)
2242 case "$3" in
2243 "") eval "$1=";;
2244 none)
2245 eval "tp=\"\$$2\"";
2246 case "$tp" in
2247 ""|" ") eval "$1=\"\$$2\"";;
2248 *) eval "$1=";;
2249 esac;;
2250 esac;;
2251 esac;;
2252*)
2253 eval "tp=\"$oldprefix-\$$2-\""; eval "tp=\"$tp\"";
2254 case "$tp" in
2255 --|/*--|\~*--) eval "$1=\"$prefix/$3\"";;
2256 /*-$oldprefix/*|\~*-$oldprefix/*)
2257 eval "$1=\`echo \$$2 | sed \"s,^$oldprefix,$prefix,\"\`";;
2258 *) eval "$1=\"\$$2\"";;
2259 esac;;
2260esac'
a0d0e21e 2261
4633a7c4
LW
2262: determine where private library files go
2263: Usual default is /usr/local/lib/perl5. Also allow things like
2264: /opt/perl/lib, since /opt/perl/lib/perl5 would be redundant.
2265case "$prefix" in
2266*perl*) set dflt privlib lib ;;
2267*) set dflt privlib lib/$package ;;
2268esac
8e07c86e 2269eval $prefixit
4633a7c4
LW
2270$cat <<EOM
2271
2272There are some auxiliary files for $package that need to be put into a
2273private library directory that is accessible by everyone.
2274
2275EOM
2276fn=d~+
2277rp='Pathname where the private library files will reside?'
8e07c86e 2278. ./getfile
4633a7c4
LW
2279if $test "X$privlibexp" != "X$ansexp"; then
2280 installprivlib=''
8e07c86e 2281fi
4633a7c4
LW
2282privlib="$ans"
2283privlibexp="$ansexp"
8e07c86e
AD
2284if $afs; then
2285 $cat <<EOM
2304df62 2286
8e07c86e 2287Since you are running AFS, I need to distinguish the directory in which
4633a7c4 2288private files reside from the directory in which they are installed (and from
8e07c86e 2289which they are presumably copied to the former directory by occult means).
a0d0e21e 2290
8e07c86e 2291EOM
4633a7c4
LW
2292 case "$installprivlib" in
2293 '') dflt=`echo $privlibexp | sed 's#^/afs/#/afs/.#'`;;
2294 *) dflt="$installprivlib";;
8e07c86e
AD
2295 esac
2296 fn=de~
4633a7c4 2297 rp='Where will private files be installed?'
8e07c86e 2298 . ./getfile
4633a7c4 2299 installprivlib="$ans"
8e07c86e 2300else
4633a7c4
LW
2301 installprivlib="$privlibexp"
2302fi
2303
2304: set the base revision
2305baserev=5.0
2306
2307: get the patchlevel
2308echo " "
2309echo "Getting the current patchlevel..." >&4
2310if $test -r ../patchlevel.h;then
2311 patchlevel=`awk '/PATCHLEVEL/ {print $3}' < ../patchlevel.h`
f55a7265 2312 subversion=`awk '/SUBVERSION/ {print $3}' < ../patchlevel.h`
4633a7c4
LW
2313else
2314 patchlevel=0
f55a7265 2315 subversion=0
8e07c86e 2316fi
f55a7265 2317echo "(You have $package $baserev PL$patchlevel sub$subversion.)"
2304df62 2318
8e07c86e
AD
2319: set the prefixup variable, to restore leading tilda escape
2320prefixup='case "$prefixexp" in
2321"$prefix") ;;
2322*) eval "$1=\`echo \$$1 | sed \"s,^$prefixexp,$prefix,\"\`";;
2323esac'
2324
4633a7c4
LW
2325: determine where public architecture dependent libraries go
2326set archlib archlib
8e07c86e 2327eval $prefixit
4633a7c4 2328case "$archlib" in
8e07c86e 2329'')
4633a7c4
LW
2330 case "$privlib" in
2331 '')
2332 dflt=`./loc . "." $prefixexp/lib /usr/local/lib /usr/lib /lib`
2333 set dflt
2334 eval $prefixup
2335 ;;
a78b0d02
PP
2336 *) version=`LC_ALL=C;export LC_ALL;\
2337 echo $baserev $patchlevel $subversion | \
f55a7265 2338 $awk '{print $1 + $2/1000.0 + $3/100000.0}'`
4633a7c4
LW
2339 dflt="$privlib/$archname/$version"
2340 ;;
2341 esac
8e07c86e 2342 ;;
4633a7c4 2343*) dflt="$archlib";;
8e07c86e 2344esac
4633a7c4
LW
2345cat <<EOM
2346
2347$spackage contains architecture-dependent library files. If you are
2348sharing libraries in a heterogeneous environment, you might store
2349these files in a separate location. Otherwise, you can just include
2350them with the rest of the public library files.
2351
8e07c86e 2352EOM
4633a7c4
LW
2353fn=d+~
2354rp='Where do you want to put the public architecture-dependent libraries?'
8e07c86e 2355. ./getfile
4633a7c4
LW
2356archlib="$ans"
2357archlibexp="$ansexp"
2358
8e07c86e
AD
2359if $afs; then
2360 $cat <<EOM
2361
2362Since you are running AFS, I need to distinguish the directory in which
4633a7c4 2363private files reside from the directory in which they are installed (and from
8e07c86e
AD
2364which they are presumably copied to the former directory by occult means).
2365
2366EOM
4633a7c4
LW
2367 case "$installarchlib" in
2368 '') dflt=`echo $archlibexp | sed 's#^/afs/#/afs/.#'`;;
2369 *) dflt="$installarchlib";;
8e07c86e
AD
2370 esac
2371 fn=de~
4633a7c4 2372 rp='Where will architecture-dependent library files be installed?'
8e07c86e 2373 . ./getfile
4633a7c4 2374 installarchlib="$ans"
8e07c86e 2375else
4633a7c4
LW
2376 installarchlib="$archlibexp"
2377fi
2378if $test X"$archlib" = X"$privlib"; then
2379 d_archlib="$undef"
2380else
2381 d_archlib="$define"
8e07c86e
AD
2382fi
2383
40a7a20a
PP
2384: set up the script used to warn in case of inconsistency
2385cat <<'EOSC' >whoa
2386dflt=y
2387echo " "
2388echo "*** WHOA THERE!!! ***" >&4
2389echo " The $hint value for \$$var on this machine was \"$was\"!" >&4
2390rp=" Keep the $hint value?"
2391. ./myread
2392case "$ans" in
2393y) td=$was; tu=$was;;
2394esac
2395EOSC
2396
2397: function used to set $1 to $val
2398setvar='var=$1; eval "was=\$$1"; td=$define; tu=$undef;
2399case "$val$was" in
2400$define$undef) . ./whoa; eval "$var=\$td";;
2401$undef$define) . ./whoa; eval "$var=\$tu";;
2402*) eval "$var=$val";;
2403esac'
2404
2405: make some quick guesses about what we are up against
2406echo " "
2407$echo $n "Hmm... $c"
2408echo exit 1 >bsd
2409echo exit 1 >usg
2410echo exit 1 >v7
2411echo exit 1 >osf1
2412echo exit 1 >eunice
2413echo exit 1 >xenix
2414echo exit 1 >venix
2415d_bsd="$undef"
2416$cat /usr/include/signal.h /usr/include/sys/signal.h >foo 2>/dev/null
2417if test -f /osf_boot || $contains 'OSF/1' /usr/include/ctype.h >/dev/null 2>&1
2418then
2419 echo "Looks kind of like an OSF/1 system, but we'll see..."
2420 echo exit 0 >osf1
2421elif test `echo abc | tr a-z A-Z` = Abc ; then
2422 xxx=`./loc addbib blurfl $pth`
2423 if $test -f $xxx; then
2424 echo "Looks kind of like a USG system with BSD features, but we'll see..."
2425 echo exit 0 >bsd
2426 echo exit 0 >usg
2427 else
2428 if $contains SIGTSTP foo >/dev/null 2>&1 ; then
2429 echo "Looks kind of like an extended USG system, but we'll see..."
2430 else
2431 echo "Looks kind of like a USG system, but we'll see..."
2432 fi
2433 echo exit 0 >usg
2434 fi
2435elif $contains SIGTSTP foo >/dev/null 2>&1 ; then
2436 echo "Looks kind of like a BSD system, but we'll see..."
2437 d_bsd="$define"
2438 echo exit 0 >bsd
2439else
2440 echo "Looks kind of like a Version 7 system, but we'll see..."
2441 echo exit 0 >v7
2442fi
2443case "$eunicefix" in
2444*unixtovms*)
2445 $cat <<'EOI'
2446There is, however, a strange, musty smell in the air that reminds me of
2447something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit.
2448EOI
2449 echo exit 0 >eunice
2450 d_eunice="$define"
2451: it so happens the Eunice I know will not run shell scripts in Unix format
2452 ;;
2453*)
2454 echo " "
2455 echo "Congratulations. You aren't running Eunice."
2456 d_eunice="$undef"
2457 ;;
2458esac
2459if test -f /xenix; then
2460 echo "Actually, this looks more like a XENIX system..."
2461 echo exit 0 >xenix
2462 d_xenix="$define"
2463else
2464 echo " "
2465 echo "It's not Xenix..."
2466 d_xenix="$undef"
2467fi
2468chmod +x xenix
2469$eunicefix xenix
2470if test -f /venix; then
2471 echo "Actually, this looks more like a VENIX system..."
2472 echo exit 0 >venix
2473else
2474 echo " "
2475 if ./xenix; then
2476 : null
2477 else
2478 echo "Nor is it Venix..."
2479 fi
2480fi
2481chmod +x bsd usg v7 osf1 eunice xenix venix
2482$eunicefix bsd usg v7 osf1 eunice xenix venix
2483$rm -f foo
2484
2485: see if setuid scripts can be secure
2486$cat <<EOM
2487
2488Some kernels have a bug that prevents setuid #! scripts from being
2489secure. Some sites have disabled setuid #! scripts because of this.
2490
2491First let's decide if your kernel supports secure setuid #! scripts.
2492(If setuid #! scripts would be secure but have been disabled anyway,
2493don't say that they are secure if asked.)
2494
2495EOM
2496
2497val="$undef"
2498if $test -d /dev/fd; then
2499 echo "#!$ls" >reflect
2500 chmod +x,u+s reflect
2501 ./reflect >flect 2>&1
2502 if $contains "/dev/fd" flect >/dev/null; then
2503 echo "Congratulations, your kernel has secure setuid scripts!" >&4
2504 val="$define"
2505 else
2506 $cat <<EOM
2507If you are not sure if they are secure, I can check but I'll need a
2508username and password different from the one you are using right now.
2509If you don't have such a username or don't want me to test, simply
2510enter 'none'.
2511
2512EOM
2513 rp='Other username to test security of setuid scripts with?'
2514 dflt='none'
2515 . ./myread
2516 case "$ans" in
2517 n|none)
2518 case "$d_suidsafe" in
2519 '') echo "I'll assume setuid scripts are *not* secure." >&4
2520 dflt=n;;
2521 "$undef")
2522 echo "Well, the $hint value is *not* secure." >&4
2523 dflt=n;;
2524 *) echo "Well, the $hint value *is* secure." >&4
2525 dflt=y;;
2526 esac
2527 ;;
2528 *)
2529 $rm -f reflect flect
2530 echo "#!$ls" >reflect
2531 chmod +x,u+s reflect
2532 echo >flect
2533 chmod a+w flect
2534 echo '"su" will (probably) prompt you for '"$ans's password."
2535 su $ans -c './reflect >flect'
2536 if $contains "/dev/fd" flect >/dev/null; then
2537 echo "Okay, it looks like setuid scripts are secure." >&4
2538 dflt=y
2539 else
2540 echo "I don't think setuid scripts are secure." >&4
2541 dflt=n
2542 fi
2543 ;;
2544 esac
2545 rp='Does your kernel have *secure* setuid scripts?'
2546 . ./myread
2547 case "$ans" in
2548 [yY]*) val="$define";;
2549 *) val="$undef";;
2550 esac
2551 fi
2552else
2553 echo "I don't think setuid scripts are secure (no /dev/fd directory)." >&4
2554 val="$undef"
2555fi
2556set d_suidsafe
2557eval $setvar
2558
2559$rm -f reflect flect
2560
2561: now see if they want to do setuid emulation
2562echo " "
2563val="$undef"
2564case "$d_suidsafe" in
2565"$define")
2566 val="$undef"
2567 echo "No need to emulate SUID scripts since they are secure here." >& 4
2568 ;;
2569*)
2570 $cat <<EOM
2571Some systems have disabled setuid scripts, especially systems where
2572setuid scripts cannot be secure. On systems where setuid scripts have
2573been disabled, the setuid/setgid bits on scripts are currently
2574useless. It is possible for $package to detect those bits and emulate
2575setuid/setgid in a secure fashion. This emulation will only work if
2576setuid scripts have been disabled in your kernel.
2577
2578EOM
2579 case "$d_dosuid" in
2580 "$define") dflt=y ;;
2581 *) dflt=n ;;
2582 esac
2583 rp="Do you want to do setuid/setgid emulation?"
2584 . ./myread
2585 case "$ans" in
2586 [yY]*) val="$define";;
2587 *) val="$undef";;
2588 esac
2589 ;;
2590esac
2591set d_dosuid
2592eval $setvar
2593
37120919
AD
2594: determine where site specific libraries go.
2595set sitelib sitelib
2596eval $prefixit
2597case "$sitelib" in
2598'') dflt="$privlib/site_perl" ;;
2599*) dflt="$sitelib" ;;
2600esac
2601$cat <<EOM
2602
2603The installation process will also create a directory for
2604site-specific extensions and modules. Some users find it convenient
2605to place all local files in this directory rather than in the main
2606distribution directory.
2607
2608EOM
2609fn=d~+
2610rp='Pathname for the site-specific library files?'
2611. ./getfile
2612if $test "X$sitelibexp" != "X$ansexp"; then
2613 installsitelib=''
2614fi
2615sitelib="$ans"
2616sitelibexp="$ansexp"
2617if $afs; then
2618 $cat <<EOM
2619
2620Since you are running AFS, I need to distinguish the directory in which
2621private files reside from the directory in which they are installed (and from
2622which they are presumably copied to the former directory by occult means).
2623
2624EOM
2625 case "$installsitelib" in
2626 '') dflt=`echo $sitelibexp | sed 's#^/afs/#/afs/.#'`;;
2627 *) dflt="$installsitelib";;
2628 esac
2629 fn=de~
2630 rp='Where will private files be installed?'
2631 . ./getfile
2632 installsitelib="$ans"
2633else
2634 installsitelib="$sitelibexp"
2635fi
4633a7c4 2636
37120919
AD
2637: determine where site specific architecture-dependent libraries go.
2638xxx=`echo $sitelib/$archname | sed 's!^$prefix!!'`
2639: xxx is usuually lib/site_perl/archname.
2640set sitearch sitearch none
8e07c86e 2641eval $prefixit
37120919
AD
2642case "$sitearch" in
2643'') dflt="$sitelib/$archname" ;;
2644*) dflt="$sitearch" ;;
2645esac
8e07c86e
AD
2646$cat <<EOM
2647
4633a7c4
LW
2648The installation process will also create a directory for
2649architecture-dependent site-specific extensions and modules.
8e07c86e
AD
2650
2651EOM
4633a7c4
LW
2652fn=nd~+
2653rp='Pathname for the site-specific architecture-dependent library files?'
8e07c86e 2654. ./getfile
4633a7c4
LW
2655if $test "X$sitearchexp" != "X$ansexp"; then
2656 installsitearch=''
8e07c86e 2657fi
4633a7c4
LW
2658sitearch="$ans"
2659sitearchexp="$ansexp"
8e07c86e
AD
2660if $afs; then
2661 $cat <<EOM
2662
2663Since you are running AFS, I need to distinguish the directory in which
2664private files reside from the directory in which they are installed (and from
2665which they are presumably copied to the former directory by occult means).
2666
2667EOM
4633a7c4
LW
2668 case "$installsitearch" in
2669 '') dflt=`echo $sitearchexp | sed 's#^/afs/#/afs/.#'`;;
2670 *) dflt="$installsitearch";;
8e07c86e
AD
2671 esac
2672 fn=de~
2673 rp='Where will private files be installed?'
2674 . ./getfile
4633a7c4 2675 installsitearch="$ans"
8e07c86e 2676else
4633a7c4 2677 installsitearch="$sitearchexp"
8e07c86e
AD
2678fi
2679
4633a7c4
LW
2680: determine where old public architecture dependent libraries might be
2681case "$oldarchlib" in
2682'') case "$privlib" in
2683 '') ;;
2684 *) dflt="$privlib/$archname"
8e07c86e 2685 ;;
8e07c86e
AD
2686 esac
2687 ;;
4633a7c4
LW
2688*) dflt="$oldarchlib"
2689 ;;
8e07c86e 2690esac
4633a7c4
LW
2691if $test ! -d "$dflt/auto"; then
2692 dflt=none
2693fi
8e07c86e
AD
2694cat <<EOM
2695
40a7a20a 2696In 5.001, Perl stored architecture-dependent library files in a library
4633a7c4
LW
2697with a name such as $privlib/$archname,
2698and this directory contained files from the standard extensions and
2699files from any additional extensions you might have added. Starting
2700with version 5.002, all the architecture-dependent standard extensions
2701will go into $archlib,
2702while locally-added extensions will go into
2703$sitearch.
2704
2705If you wish Perl to continue to search the old architecture-dependent
2706library for your local extensions, give the path to that directory.
2707If you do not wish to use your old architecture-dependent library
2708files, answer 'none'.
8e07c86e
AD
2709
2710EOM
4633a7c4
LW
2711fn=dn~
2712rp='Directory for your old 5.001 architecture-dependent libraries?'
8e07c86e 2713. ./getfile
4633a7c4
LW
2714oldarchlib="$ans"
2715oldarchlibexp="$ansexp"
2716case "$oldarchlib" in
2717''|' ') val="$undef" ;;
2718*) val="$define" ;;
2719esac
2720set d_oldarchlib
2721eval $setvar
8e07c86e 2722
4633a7c4
LW
2723: determine where public executables go
2724echo " "
2725set dflt bin bin
2726eval $prefixit
2727fn=d~
2728rp='Pathname where the public executables will reside?'
2729. ./getfile
2730if $test "X$ansexp" != "X$binexp"; then
2731 installbin=''
2732fi
2733bin="$ans"
2734binexp="$ansexp"
8e07c86e
AD
2735if $afs; then
2736 $cat <<EOM
2737
2738Since you are running AFS, I need to distinguish the directory in which
4633a7c4 2739executables reside from the directory in which they are installed (and from
8e07c86e
AD
2740which they are presumably copied to the former directory by occult means).
2741
2742EOM
4633a7c4
LW
2743 case "$installbin" in
2744 '') dflt=`echo $binexp | sed 's#^/afs/#/afs/.#'`;;
2745 *) dflt="$installbin";;
8e07c86e
AD
2746 esac
2747 fn=de~
4633a7c4 2748 rp='Where will public executables be installed?'
8e07c86e 2749 . ./getfile
4633a7c4 2750 installbin="$ans"
8e07c86e 2751else
4633a7c4 2752 installbin="$binexp"
8e07c86e
AD
2753fi
2754
2c7991dc
PP
2755: determine where manual pages are on this system
2756echo " "
2757case "$sysman" in
2758'')
2759 syspath='/usr/man/man1 /usr/man/mann /usr/man/manl /usr/man/local/man1'
2760 syspath="$syspath /usr/man/u_man/man1 /usr/share/man/man1"
2761 syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
2762 syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
2763 syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
2764 sysman=`./loc . /usr/man/man1 $syspath`
2765 ;;
2766esac
2767if $test -d "$sysman"; then
2768 echo "System manual is in $sysman." >&4
2769else
2770 echo "Could not find manual pages in source form." >&4
2771fi
2772
8e07c86e
AD
2773: determine where manual pages go
2774set man1dir man1dir none
2775eval $prefixit
2776$cat <<EOM
2777
2778$spackage has manual pages available in source form.
2779EOM
2780case "$nroff" in
2781nroff)
2782 echo "However, you don't have nroff, so they're probably useless to you."
2783 case "$man1dir" in
2784 '') man1dir="none";;
2785 esac;;
2786esac
2787echo "If you don't want the manual sources installed, answer 'none'."
2788case "$man1dir" in
2c7991dc
PP
2789' ') dflt=none
2790 ;;
8e07c86e 2791'')
25f94b33
AD
2792 lookpath="$prefixexp/man/man1 $prefixexp/man/l_man/man1"
2793 lookpath="$lookpath $prefixexp/man/p_man/man1"
2794 lookpath="$lookpath $prefixexp/man/u_man/man1"
2c7991dc 2795 lookpath="$lookpath $prefixexp/man/man.1"
25f94b33
AD
2796 : If prefix contains 'perl' then we want to keep the man pages
2797 : under the prefix directory. Otherwise, look in a variety of
2798 : other possible places. This is debatable, but probably a
2c7991dc
PP
2799 : good compromise. Well, apparently not.
2800 : Experience has shown people expect man1dir to be under prefix,
2801 : so we now always put it there. Users who want other behavior
2802 : can answer interactively or use a command line option.
2803 : Does user have System V-style man paths.
2804 case "$sysman" in
2805 */?_man*) dflt=`./loc . $prefixexp/l_man/man1 $lookpath` ;;
2806 *) dflt=`./loc . $prefixexp/man/man1 $lookpath` ;;
25f94b33 2807 esac
8e07c86e
AD
2808 set dflt
2809 eval $prefixup
2810 ;;
8e07c86e
AD
2811*) dflt="$man1dir"
2812 ;;
2813esac
2814echo " "
4633a7c4 2815fn=dn+~
8e07c86e
AD
2816rp="Where do the main $spackage manual pages (source) go?"
2817. ./getfile
25f94b33 2818if $test "X$man1direxp" != "X$ansexp"; then
8e07c86e
AD
2819 installman1dir=''
2820fi
2821man1dir="$ans"
2822man1direxp="$ansexp"
2823case "$man1dir" in
2824'') man1dir=' '
2825 installman1dir='';;
2826esac
2827if $afs; then
2828 $cat <<EOM
2829
2830Since you are running AFS, I need to distinguish the directory in which
2831manual pages reside from the directory in which they are installed (and from
2832which they are presumably copied to the former directory by occult means).
2833
2834EOM
2835 case "$installman1dir" in
2836 '') dflt=`echo $man1direxp | sed 's#^/afs/#/afs/.#'`;;
2837 *) dflt="$installman1dir";;
2838 esac
2839 fn=de~
2840 rp='Where will man pages be installed?'
2841 . ./getfile
2842 installman1dir="$ans"
2843else
2844 installman1dir="$man1direxp"
2845fi
2846
2847: What suffix to use on installed man pages
2848
2849case "$man1dir" in
2850' ')
2851 man1ext='0'
2852 ;;
2853*)
2854 rp="What suffix should be used for the main $spackage man pages?"
2c7991dc
PP
2855 case "$man1ext" in
2856 '') case "$man1dir" in
2857 *1) dflt=1 ;;
2858 *1p) dflt=1p ;;
2859 *1pm) dflt=1pm ;;
2860 *l) dflt=l;;
2861 *n) dflt=n;;
2862 *o) dflt=o;;
2863 *p) dflt=p;;
2864 *C) dflt=C;;
2865 *L) dflt=L;;
2866 *L1) dflt=L1;;
2867 *) dflt=1;;
2868 esac
2869 ;;
2870 *) dflt="$man1ext";;
8e07c86e
AD
2871 esac
2872 . ./myread
2873 man1ext="$ans"
2874 ;;
2875esac
2876
8e07c86e
AD
2877: see if we can have long filenames
2878echo " "
2879rmlist="$rmlist /tmp/cf$$"
2880$test -d /tmp/cf$$ || mkdir /tmp/cf$$
2881first=123456789abcdef
2882second=/tmp/cf$$/$first
2883$rm -f $first $second
2884if (echo hi >$first) 2>/dev/null; then
2885 if $test -f 123456789abcde; then
2886 echo 'You cannot have filenames longer than 14 characters. Sigh.' >&4
2887 val="$undef"
2888 else
2889 if (echo hi >$second) 2>/dev/null; then
2890 if $test -f /tmp/cf$$/123456789abcde; then
2891 $cat <<'EOM'
2892That's peculiar... You can have filenames longer than 14 characters, but only
2893on some of the filesystems. Maybe you are using NFS. Anyway, to avoid problems
2894I shall consider your system cannot support long filenames at all.
2895EOM
2896 val="$undef"
2897 else
2898 echo 'You can have filenames longer than 14 characters.' >&4
2899 val="$define"
2900 fi
2901 else
2902 $cat <<'EOM'
2903How confusing! Some of your filesystems are sane enough to allow filenames
2904longer than 14 characters but some others like /tmp can't even think about them.
2905So, for now on, I shall assume your kernel does not allow them at all.
2906EOM
2907 val="$undef"
2908 fi
2909 fi
2910else
2911 $cat <<'EOM'
2912You can't have filenames longer than 14 chars. You can't even think about them!
2913EOM
2914 val="$undef"
2915fi
2916set d_flexfnam
2917eval $setvar
2918$rm -rf /tmp/cf$$ 123456789abcde*
2919
2920: determine where library module manual pages go
2921set man3dir man3dir none
2922eval $prefixit
2923$cat <<EOM
2924
2925$spackage has manual pages for many of the library modules.
2926EOM
2927
2928case "$nroff" in
2929nroff)
2930 $cat <<'EOM'
2931However, you don't have nroff, so they're probably useless to you.
2932You can use the supplied perldoc script instead.
2933EOM
2934 case "$man3dir" in
2935 '') man3dir="none";;
2936 esac;;
2937esac
2938
2939case "$d_flexfnam" in
2940undef)
2941 $cat <<'EOM'
2942However, your system can't handle the long file names like File::Basename.3.
2943You can use the supplied perldoc script instead.
2944EOM
2945 case "$man3dir" in
2946 '') man3dir="none";;
2947 esac;;
2948esac
2949
2950echo "If you don't want the manual sources installed, answer 'none'."
4633a7c4
LW
2951: We dont use /usr/local/man/man3 because some man programs will
2952: only show the /usr/local/man/man3 contents, and not the system ones,
2953: thus man less will show the perl module less.pm, but not the system
2954: less command. We might also conflict with TCL man pages.
2955: However, something like /opt/perl/man/man3 is fine.
8e07c86e 2956case "$man3dir" in
4633a7c4 2957'') case "$prefix" in
2c7991dc
PP
2958 *perl*) dflt=`echo $man1dir |
2959 $sed -e 's/man1/man3/g' -e 's/man\.1/man\.3/g'` ;;
4633a7c4
LW
2960 *) dflt="$privlib/man/man3" ;;
2961 esac
2962 ;;
8e07c86e
AD
2963' ') dflt=none;;
2964*) dflt="$man3dir" ;;
2965esac
2966echo " "
2967
4633a7c4 2968fn=dn+~
8e07c86e
AD
2969rp="Where do the $spackage library man pages (source) go?"
2970. ./getfile
2971if test "X$man3direxp" != "X$ansexp"; then
2972 installman3dir=''
2973fi
2974
2975man3dir="$ans"
2976man3direxp="$ansexp"
2977case "$man3dir" in
2978'') man3dir=' '
2979 installman3dir='';;
2980esac
2981if $afs; then
2982 $cat <<EOM
2983
2984Since you are running AFS, I need to distinguish the directory in which
2985manual pages reside from the directory in which they are installed (and from
2986which they are presumably copied to the former directory by occult means).
2987
2988EOM
2989 case "$installman3dir" in
2990 '') dflt=`echo $man3direxp | sed 's#^/afs/#/afs/.#'`;;
2991 *) dflt="$installman3dir";;
2992 esac
2993 fn=de~
2994 rp='Where will man pages be installed?'
2995 . ./getfile
2996 installman3dir="$ans"
2997else
2998 installman3dir="$man3direxp"
2999fi
3000
3001: What suffix to use on installed man pages
3002
3003case "$man3dir" in
3004' ')
3005 man3ext='0'
3006 ;;
3007*)
3008 rp="What suffix should be used for the $spackage library man pages?"
2c7991dc
PP
3009 case "$man3ext" in
3010 '') case "$man3dir" in
3011 *3) dflt=3 ;;
3012 *3p) dflt=3p ;;
3013 *3pm) dflt=3pm ;;
3014 *l) dflt=l;;
3015 *n) dflt=n;;
3016 *o) dflt=o;;
3017 *p) dflt=p;;
3018 *C) dflt=C;;
3019 *L) dflt=L;;
3020 *L3) dflt=L3;;
3021 *) dflt=3;;
3022 esac
3023 ;;
3024 *) dflt="$man3ext";;
8e07c86e
AD
3025 esac
3026 . ./myread
3027 man3ext="$ans"
3028 ;;
3029esac
3030
4633a7c4
LW
3031: see what memory models we can support
3032case "$models" in
3033'')
3034 $cat >pdp11.c <<'EOP'
3035main() {
3036#ifdef pdp11
3037 exit(0);
3038#else
3039 exit(1);
3040#endif
3041}
3042EOP
3043 cc -o pdp11 pdp11.c >/dev/null 2>&1
3044 if ./pdp11 2>/dev/null; then
3045 dflt='unsplit split'
3046 else
3047 tans=`./loc . X /lib/small /lib/large /usr/lib/small /usr/lib/large /lib/medium /usr/lib/medium /lib/huge`
3048 case "$tans" in
3049 X) dflt='none';;
3050 *) if $test -d /lib/small || $test -d /usr/lib/small; then
3051 dflt='small'
3052 else
3053 dflt=''
3054 fi
3055 if $test -d /lib/medium || $test -d /usr/lib/medium; then
3056 dflt="$dflt medium"
3057 fi
3058 if $test -d /lib/large || $test -d /usr/lib/large; then
3059 dflt="$dflt large"
3060 fi
3061 if $test -d /lib/huge || $test -d /usr/lib/huge; then
3062 dflt="$dflt huge"
3063 fi
3064 esac
3065 fi;;
3066*) dflt="$models";;
8e07c86e 3067esac
4633a7c4
LW
3068$cat <<EOM
3069
3070Some systems have different model sizes. On most systems they are called
3071small, medium, large, and huge. On the PDP11 they are called unsplit and
3072split. If your system doesn't support different memory models, say "none".
3073If you wish to force everything to one memory model, say "none" here and
3074put the appropriate flags later when it asks you for other cc and ld flags.
3075Venix systems may wish to put "none" and let the compiler figure things out.
3076(In the following question multiple model names should be space separated.)
8e07c86e 3077
4633a7c4
LW
3078EOM
3079rp="Which memory models are supported?"
8e07c86e 3080. ./myread
4633a7c4 3081models="$ans"
8e07c86e 3082
4633a7c4
LW
3083case "$models" in
3084none)
3085 small=''
3086 medium=''
3087 large=''
3088 huge=''
3089 unsplit=''
3090 split=''
3091 ;;
3092*split)
3093 case "$split" in
3094 '') if $contains '\-i' $sysman/ld.1 >/dev/null 2>&1 || \
3095 $contains '\-i' $sysman/cc.1 >/dev/null 2>&1; then
3096 dflt='-i'
3097 else
3098 dflt='none'
3099 fi;;
3100 *) dflt="$split";;
8e07c86e 3101 esac
4633a7c4
LW
3102 rp="What flag indicates separate I and D space?"
3103 . ./myread
3104 tans="$ans"
3105 case "$tans" in
3106 none) tans='';;
8e07c86e 3107 esac
4633a7c4
LW
3108 split="$tans"
3109 unsplit='';;
3110*large*|*small*|*medium*|*huge*)
3111 case "$models" in
3112 *large*)
3113 case "$large" in
3114 '') dflt='-Ml';;
3115 *) dflt="$large";;
3116 esac
3117 rp="What flag indicates large model?"
3118 . ./myread
3119 tans="$ans"
3120 case "$tans" in
3121 none) tans='';
3122 esac
3123 large="$tans";;
3124 *) large='';;
8e07c86e 3125 esac
4633a7c4
LW
3126 case "$models" in
3127 *huge*) case "$huge" in
3128 '') dflt='-Mh';;
3129 *) dflt="$huge";;
3130 esac
3131 rp="What flag indicates huge model?"
3132 . ./myread
3133 tans="$ans"
3134 case "$tans" in
3135 none) tans='';
3136 esac
3137 huge="$tans";;
3138 *) huge="$large";;
3139 esac
3140 case "$models" in
3141 *medium*) case "$medium" in
3142 '') dflt='-Mm';;
3143 *) dflt="$medium";;
3144 esac
3145 rp="What flag indicates medium model?"
3146 . ./myread
3147 tans="$ans"
3148 case "$tans" in
3149 none) tans='';
3150 esac
3151 medium="$tans";;
3152 *) medium="$large";;
3153 esac
3154 case "$models" in
3155 *small*) case "$small" in
3156 '') dflt='none';;
3157 *) dflt="$small";;
3158 esac
3159 rp="What flag indicates small model?"
3160 . ./myread
3161 tans="$ans"
3162 case "$tans" in
3163 none) tans='';
3164 esac
3165 small="$tans";;
3166 *) small='';;
3167 esac
3168 ;;
3169*)
3170 echo "Unrecognized memory models--you may have to edit Makefile.SH" >&4
8e07c86e
AD
3171 ;;
3172esac
3173
2c7991dc 3174: see if we need a special compiler
16d20bd9 3175echo " "
4633a7c4
LW
3176if ./usg; then
3177 case "$cc" in
3178 '') case "$Mcc" in
3179 /*) dflt='Mcc';;
3180 *) case "$large" in
3181 -M*) dflt='cc';;
3182 *) if $contains '\-M' $sysman/cc.1 >/dev/null 2>&1 ; then
3183 if $contains '\-M' $sysman/cpp.1 >/dev/null 2>&1; then
3184 dflt='cc'
3185 else
3186 dflt='cc -M'
3187 fi
3188 else
3189 dflt='cc'
3190 fi;;
3191 esac;;
3192 esac;;
3193 *) dflt="$cc";;
3194 esac
3195 $cat <<'EOM'
3196On some systems the default C compiler will not resolve multiple global
3197references that happen to have the same name. On some such systems the "Mcc"
3198command may be used to force these to be resolved. On other systems a "cc -M"
3199command is required. (Note that the -M flag on other systems indicates a
3200memory model to use!) If you have the Gnu C compiler, you might wish to use
3201that instead.
16d20bd9
AD
3202
3203EOM
4633a7c4
LW
3204 rp="What command will force resolution on this system?"
3205 . ./myread
3206 cc="$ans"
16d20bd9 3207else
4633a7c4
LW
3208 case "$cc" in
3209 '') dflt=cc;;
3210 *) dflt="$cc";;
3211 esac
3212 rp="Use which C compiler?"
3213 . ./myread
3214 cc="$ans"
16d20bd9 3215fi
4633a7c4
LW
3216echo " "
3217echo "Checking for GNU cc in disguise and/or its version number..." >&4
3218$cat >gccvers.c <<EOM
3219#include <stdio.h>
3220int main() {
3221#ifdef __GNUC__
3222#ifdef __VERSION__
3223 printf("%s\n", __VERSION__);
3224#else
3225 printf("%s\n", "1");
3226#endif
3227#endif
3228 exit(0);
3229}
3230EOM
3231if $cc -o gccvers gccvers.c >/dev/null 2>&1; then
3232 gccversion=`./gccvers`
3233 case "$gccversion" in
3234 '') echo "You are not using GNU cc." ;;
3235 *) echo "You are using GNU cc $gccversion." ;;
16d20bd9 3236 esac
4633a7c4 3237else
16d20bd9 3238 echo " "
4633a7c4
LW
3239 echo "*** WHOA THERE!!! ***" >&4
3240 echo " Your C compiler \"$cc\" doesn't seem to be working!" >&4
3241 case "$knowitall" in
3242 '')
3243 echo " You'd better start hunting for one and let me know about it." >&4
16d20bd9
AD
3244 exit 1
3245 ;;
3246 esac
4633a7c4
LW
3247fi
3248$rm -f gccvers*
3249case "$gccversion" in
32501*) cpp=`./loc gcc-cpp $cpp $pth` ;;
16d20bd9 3251esac
16d20bd9 3252
4633a7c4 3253: What should the include directory be ?
2304df62 3254echo " "
4633a7c4
LW
3255$echo $n "Hmm... $c"
3256dflt='/usr/include'
3257incpath=''
3258mips_type=''
3259if $test -f /bin/mips && /bin/mips; then
3260 echo "Looks like a MIPS system..."
3261 $cat >usr.c <<'EOCP'
3262#ifdef SYSTYPE_BSD43
3263/bsd43
3264#endif
3265EOCP
3266 if $cc -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then
3267 dflt='/bsd43/usr/include'
3268 incpath='/bsd43'
3269 mips_type='BSD 4.3'
2304df62 3270 else
4633a7c4 3271 mips_type='System V'
2304df62 3272 fi
4633a7c4
LW
3273 $rm -f usr.c usr.out
3274 echo "and you're compiling with the $mips_type compiler and libraries."
3275 xxx_prompt=y
3276 echo "exit 0" >mips
3277else
2c7991dc
PP
3278 echo "Doesn't look like a MIPS system."
3279 xxx_prompt=n
3280 echo "exit 1" >mips
3281fi
3282chmod +x mips
3283$eunicefix mips
3284echo " "
3285case "$usrinc" in
3286'') ;;
3287*) dflt="$usrinc";;
3288esac
3289case "$xxx_prompt" in
3290y) fn=d/
3291 rp='Where are the include files you want to use?'
3292 . ./getfile
3293 usrinc="$ans"
3294 ;;
3295*) usrinc="$dflt"
3296 ;;
3297esac
3298
3299: see if we have to deal with yellow pages, now NIS.
3300if $test -d /usr/etc/yp || $test -d /etc/yp; then
3301 if $test -f /usr/etc/nibindd; then
3302 echo " "
3303 echo "I'm fairly confident you're on a NeXT."
3304 echo " "
3305 rp='Do you get the hosts file via NetInfo?'
3306 dflt=y
3307 case "$hostcat" in
3308 nidump*) ;;
3309 '') ;;
3310 *) dflt=n;;
3311 esac
3312 . ./myread
3313 case "$ans" in
3314 y*) hostcat='nidump hosts .';;
3315 *) case "$hostcat" in
3316 nidump*) hostcat='';;
3317 esac
3318 ;;
3319 esac
3320 fi
3321 case "$hostcat" in
3322 nidump*) ;;
3323 *)
3324 case "$hostcat" in
3325 *ypcat*) dflt=y;;
3326 '') if $contains '^\+' /etc/passwd >/dev/null 2>&1; then
3327 dflt=y
3328 else
3329 dflt=n
3330 fi;;
3331 *) dflt=n;;
3332 esac
3333 echo " "
3334 rp='Are you getting the hosts file via yellow pages?'
3335 . ./myread
3336 case "$ans" in
3337 y*) hostcat='ypcat hosts';;
3338 *) hostcat='cat /etc/hosts';;
3339 esac
3340 ;;
3341 esac
3342fi
3343
3344: now get the host name
3345echo " "
3346echo "Figuring out host name..." >&4
3347case "$myhostname" in
3348'') cont=true
3349 echo 'Maybe "hostname" will work...'
3350 if tans=`sh -c hostname 2>&1` ; then
3351 myhostname=$tans
3352 phostname=hostname
3353 cont=''
3354 fi
3355 ;;
3356*) cont='';;
3357esac
3358if $test "$cont"; then
3359 if ./xenix; then
3360 echo 'Oh, dear. Maybe "/etc/systemid" is the key...'
3361 if tans=`cat /etc/systemid 2>&1` ; then
3362 myhostname=$tans
3363 phostname='cat /etc/systemid'
3364 echo "Whadyaknow. Xenix always was a bit strange..."
3365 cont=''
3366 fi
3367 elif $test -r /etc/systemid; then
3368 echo "(What is a non-Xenix system doing with /etc/systemid?)"
3369 fi
3370fi
3371if $test "$cont"; then
3372 echo 'No, maybe "uuname -l" will work...'
3373 if tans=`sh -c 'uuname -l' 2>&1` ; then
3374 myhostname=$tans
3375 phostname='uuname -l'
3376 else
3377 echo 'Strange. Maybe "uname -n" will work...'
3378 if tans=`sh -c 'uname -n' 2>&1` ; then
3379 myhostname=$tans
3380 phostname='uname -n'
3381 else
3382 echo 'Oh well, maybe I can mine it out of whoami.h...'
3383 if tans=`sh -c $contains' sysname $usrinc/whoami.h' 2>&1` ; then
3384 myhostname=`echo "$tans" | $sed 's/^.*"\(.*\)"/\1/'`
3385 phostname="sed -n -e '"'/sysname/s/^.*\"\\(.*\\)\"/\1/{'"' -e p -e q -e '}' <$usrinc/whoami.h"
3386 else
3387 case "$myhostname" in
3388 '') echo "Does this machine have an identity crisis or something?"
3389 phostname='';;
3390 *)
3391 echo "Well, you said $myhostname before..."
3392 phostname='echo $myhostname';;
3393 esac
3394 fi
3395 fi
3396 fi
3397fi
3398: you do not want to know about this
3399set $myhostname
3400myhostname=$1
3401
3402: verify guess
3403if $test "$myhostname" ; then
3404 dflt=y
3405 rp='Your host name appears to be "'$myhostname'".'" Right?"
3406 . ./myread
3407 case "$ans" in
3408 y*) ;;
3409 *) myhostname='';;
3410 esac
3411fi
3412
3413: bad guess or no guess
3414while $test "X$myhostname" = X ; do
3415 dflt=''
3416 rp="Please type the (one word) name of your host:"
3417 . ./myread
3418 myhostname="$ans"
3419done
3420
3421: translate upper to lower if necessary
3422case "$myhostname" in
3423*[A-Z]*)
3424 echo "(Normalizing case in your host name)"
3425 myhostname=`echo $myhostname | ./tr '[A-Z]' '[a-z]'`
3426 ;;
3427esac
3428
3429case "$myhostname" in
3430*.*)
3431 dflt=`expr "X$myhostname" : "X[^.]*\(\..*\)"`
3432 myhostname=`expr "X$myhostname" : "X\([^.]*\)\."`
3433 echo "(Trimming domain name from host name--host name is now $myhostname)"
3434 ;;
3435*) case "$mydomain" in
3436 '')
3437 {
3438 : If we use NIS, try ypmatch.
3439 : Is there some reason why this was not done before?
3440 test "X$hostcat" = "Xypcat hosts" &&
3441 ypmatch "$myhostname" hosts 2>/dev/null |\
3442 $sed -e 's/[ ]*#.*//; s/$/ /' > hosts && \
3443 $test -s hosts
3444 } || {
3445 : Extract only the relevant hosts, reducing file size,
3446 : remove comments, insert trailing space for later use.
3447 $hostcat | $sed -n -e "s/[ ]*#.*//; s/\$/ /
3448 /[ ]$myhostname[ . ]/p" > hosts
3449 }
3450 tmp_re="[ . ]"
3451 $test x`$awk "/[0-9].*[ ]$myhostname$tmp_re/ { sum++ }
3452 END { print sum }" hosts` = x1 || tmp_re="[ ]"
3453 dflt=.`$awk "/[0-9].*[ ]$myhostname$tmp_re/ {for(i=2; i<=NF;i++) print \\\$i}" \
3454 hosts | $sort | $uniq | \
3455 $sed -n -e "s/$myhostname\.\([-a-zA-Z0-9_.]\)/\1/p"`
3456 case `$echo X$dflt` in
3457 X*\ *) echo "(Several hosts in /etc/hosts matched hostname)"
3458 dflt=.
3459 ;;
3460 .) echo "(You do not have fully-qualified names in /etc/hosts)"
3461 ;;
3462 esac
3463 case "$dflt" in
3464 .)
3465 tans=`./loc resolv.conf X /etc /usr/etc`
3466 if $test -f "$tans"; then
3467 echo "(Attempting domain name extraction from $tans)"
3468 : Why was there an Egrep here, when Sed works?
3469 dflt=.`$sed -n -e 's/^domain[ ]*\(.*\)/\1/p' $tans \
3470 | ./tr '[A-Z]' '[a-z]' 2>/dev/null`
3471 fi
3472 ;;
3473 esac
3474 case "$dflt" in
3475 .) echo "(No help from resolv.conf either -- attempting clever guess)"
3476 dflt=.`sh -c domainname 2>/dev/null`
3477 case "$dflt" in
3478 '') dflt='.';;
3479 .nis.*|.yp.*|.main.*) dflt=`echo $dflt | $sed -e 's/^\.[^.]*//'`;;
3480 esac
3481 ;;
3482 esac
3483 case "$dflt" in
3484 .) echo "(Lost all hope -- silly guess then)"
3485 dflt='.uucp'
3486 ;;
3487 esac
3488 $rm -f hosts
3489 ;;
3490 *) dflt="$mydomain";;
3491 esac;;
3492esac
3493echo " "
3494rp="What is your domain name?"
3495. ./myread
3496tans="$ans"
3497case "$ans" in
3498'') ;;
3499.*) ;;
3500*) tans=".$tans";;
3501esac
3502mydomain="$tans"
3503
3504: translate upper to lower if necessary
3505case "$mydomain" in
3506*[A-Z]*)
3507 echo "(Normalizing case in your domain name)"
3508 mydomain=`echo $mydomain | ./tr '[A-Z]' '[a-z]'`
3509 ;;
3510esac
3511
3512: a little sanity check here
3513case "$phostname" in
3514'') ;;
3515*)
3516 case `$phostname | ./tr '[A-Z]' '[a-z]'` in
3517 $myhostname$mydomain|$myhostname) ;;
3518 *)
3519 case "$phostname" in
3520 sed*)
3521 echo "(That doesn't agree with your whoami.h file, by the way.)"
3522 ;;
3523 *)
3524 echo "(That doesn't agree with your $phostname command, by the way.)"
3525 ;;
3526 esac
3527 ;;
3528 esac
3529 ;;
3530esac
3531
3532$cat <<EOM
3533
3534I need to get your e-mail address in Internet format if possible, i.e.
3535something like user@host.domain. Please answer accurately since I have
3536no easy means to double check it. The default value provided below
3537is most probably close to the reality but may not be valid from outside
3538your organization...
3539
3540EOM
3541cont=x
3542while test "$cont"; do
3543 case "$cf_email" in
3544 '') dflt="$cf_by@$myhostname$mydomain";;
3545 *) dflt="$cf_email";;
3546 esac
3547 rp='What is your e-mail address?'
3548 . ./myread
3549 cf_email="$ans"
3550 case "$cf_email" in
3551 *@*.*) cont='' ;;
3552 *)
3553 rp='Address does not look like an Internet one. Use it anyway?'
3554 case "$fastread" in
3555 yes) dflt=y ;;
3556 *) dflt=n ;;
3557 esac
3558 . ./myread
3559 case "$ans" in
3560 y*) cont='' ;;
3561 *) echo " " ;;
3562 esac
3563 ;;
3564 esac
3565done
3566
3567$cat <<EOM
3568
3569If you or somebody else will be maintaining perl at your site, please
3570fill in the correct e-mail address here so that they may be contacted
3571if necessary. Currently, the "perlbug" program included with perl
3572will send mail to this address in addition to perlbug@perl.com. You may
3573enter "none" for no administrator.
3574
3575EOM
3576case "$perladmin" in
3577'') dflt="$cf_email";;
3578*) dflt="$perladmin";;
3579esac
3580rp='Perl administrator e-mail address'
3581. ./myread
3582perladmin="$ans"
3583
3584: determine where public executable scripts go
3585set scriptdir scriptdir
3586eval $prefixit
3587case "$scriptdir" in
3588'')
3589 dflt="$bin"
3590 : guess some guesses
3591 $test -d /usr/share/scripts && dflt=/usr/share/scripts
3592 $test -d /usr/share/bin && dflt=/usr/share/bin
3593 $test -d /usr/local/script && dflt=/usr/local/script
3594 $test -d $prefixexp/script && dflt=$prefixexp/script
3595 set dflt
3596 eval $prefixup
3597 ;;
3598*) dflt="$scriptdir"
3599 ;;
3600esac
3601$cat <<EOM
3602
3603Some installations have a separate directory just for executable scripts so
3604that they can mount it across multiple architectures but keep the scripts in
3605one spot. You might, for example, have a subdirectory of /usr/share for this.
3606Or you might just lump your scripts in with all your other executables.
3607
3608EOM
3609fn=d~
3610rp='Where do you keep publicly executable scripts?'
3611. ./getfile
3612if $test "X$ansexp" != "X$scriptdirexp"; then
3613 installscript=''
3614fi
3615scriptdir="$ans"
3616scriptdirexp="$ansexp"
3617if $afs; then
3618 $cat <<EOM
3619
3620Since you are running AFS, I need to distinguish the directory in which
3621scripts reside from the directory in which they are installed (and from
3622which they are presumably copied to the former directory by occult means).
3623
3624EOM
3625 case "$installscript" in
3626 '') dflt=`echo $scriptdirexp | sed 's#^/afs/#/afs/.#'`;;
3627 *) dflt="$installscript";;
3628 esac
3629 fn=de~
3630 rp='Where will public scripts be installed?'
3631 . ./getfile
3632 installscript="$ans"
3633else
3634 installscript="$scriptdirexp"
4633a7c4 3635fi
2c7991dc
PP
3636
3637: determine perl absolute location
3638case "$perlpath" in
3639'') perlpath=$binexp/perl ;;
2304df62 3640esac
2c7991dc
PP
3641
3642: figure out how to guarantee perl startup
3643case "$startperl" in
3644'')
3645 case "$sharpbang" in
3646 *!)
3647 $cat <<EOH
3648
3649I can use the #! construct to start perl on your system. This will
3650make startup of perl scripts faster, but may cause problems if you
3651want to share those scripts and perl is not in a standard place
3652($perlpath) on all your platforms. The alternative is to force
3653a shell by starting the script with a single ':' character.
3654
3655EOH
3656 dflt=$perlpath
3657 rp='What shall I put after the #! to start up perl ("none" to not use #!)?'
3658 . ./myread
3659 case "$ans" in
3660 none) startperl=": # use perl";;
3661 *) startperl="#!$ans";;
3662 esac
3663 ;;
3664 *) startperl=": # use perl"
3665 ;;
3666 esac
2304df62
AD
3667 ;;
3668esac
2c7991dc 3669echo "I'll use $startperl to start perl scripts."
2304df62 3670
4633a7c4 3671: see how we invoke the C preprocessor
2304df62 3672echo " "
4633a7c4
LW
3673echo "Now, how can we feed standard input to your C preprocessor..." >&4
3674cat <<'EOT' >testcpp.c
3675#define ABC abc
3676#define XYZ xyz
3677ABC.XYZ
3678EOT
3679cd ..
3680echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin
3681chmod 755 cppstdin
3682wrapper=`pwd`/cppstdin
3683ok='false'
3684cd UU
3685
3686if $test "X$cppstdin" != "X" && \
3687 $cppstdin $cppminus <testcpp.c >testcpp.out 2>&1 && \
3688 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3689then
3690 echo "You used to use $cppstdin $cppminus so we'll use that again."
3691 case "$cpprun" in
3692 '') echo "But let's see if we can live without a wrapper..." ;;
3693 *)
3694 if $cpprun $cpplast <testcpp.c >testcpp.out 2>&1 && \
3695 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3696 then
3697 echo "(And we'll use $cpprun $cpplast to preprocess directly.)"
3698 ok='true'
a0d0e21e 3699 else
4633a7c4 3700 echo "(However, $cpprun $cpplast does not work, let's see...)"
2304df62 3701 fi
2304df62 3702 ;;
2304df62 3703 esac
4633a7c4
LW
3704else
3705 case "$cppstdin" in
3706 '') ;;
3707 *)
3708 echo "Good old $cppstdin $cppminus does not seem to be of any help..."
3709 ;;
3710 esac
3711fi
3712
3713if $ok; then
3714 : nothing
3715elif echo 'Maybe "'"$cc"' -E" will work...'; \
3716 $cc -E <testcpp.c >testcpp.out 2>&1; \
3717 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3718 echo "Yup, it does."
3719 x_cpp="$cc -E"
3720 x_minus='';
3721elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \
3722 $cc -E - <testcpp.c >testcpp.out 2>&1; \
3723 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3724 echo "Yup, it does."
3725 x_cpp="$cc -E"
3726 x_minus='-';
3727elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \
3728 $cc -P <testcpp.c >testcpp.out 2>&1; \
3729 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3730 echo "Yipee, that works!"
3731 x_cpp="$cc -P"
3732 x_minus='';
3733elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \
3734 $cc -P - <testcpp.c >testcpp.out 2>&1; \
3735 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3736 echo "At long last!"
3737 x_cpp="$cc -P"
3738 x_minus='-';
3739elif echo 'No such luck, maybe "'$cpp'" will work...'; \
3740 $cpp <testcpp.c >testcpp.out 2>&1; \
3741 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3742 echo "It works!"
3743 x_cpp="$cpp"
3744 x_minus='';
3745elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \
3746 $cpp - <testcpp.c >testcpp.out 2>&1; \
3747 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3748 echo "Hooray, it works! I was beginning to wonder."
3749 x_cpp="$cpp"
3750 x_minus='-';
3751elif echo 'Uh-uh. Time to get fancy. Trying a wrapper...'; \
3752 $wrapper <testcpp.c >testcpp.out 2>&1; \
3753 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3754 x_cpp="$wrapper"
3755 x_minus=''
3756 echo "Eureka!"
3757else
3758 dflt=''
3759 rp="No dice. I can't find a C preprocessor. Name one:"
3760 . ./myread
3761 x_cpp="$ans"
3762 x_minus=''
3763 $x_cpp <testcpp.c >testcpp.out 2>&1
3764 if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3765 echo "OK, that will do." >&4
3766 else
3767echo "Sorry, I can't get that to work. Go find one and rerun Configure." >&4
3768 exit 1
3769 fi
3770fi
3771
3772case "$ok" in
3773false)
3774 cppstdin="$x_cpp"
3775 cppminus="$x_minus"
3776 cpprun="$x_cpp"
3777 cpplast="$x_minus"
3778 set X $x_cpp
3779 shift
3780 case "$1" in
3781 "$cpp")
3782 echo "Perhaps can we force $cc -E using a wrapper..."
3783 if $wrapper <testcpp.c >testcpp.out 2>&1; \
3784 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3785 then
3786 echo "Yup, we can."
3787 cppstdin="$wrapper"
3788 cppminus='';
3789 else
3790 echo "Nope, we'll have to live without it..."
3791 fi
3792 ;;
3793 esac
3794 case "$cpprun" in
3795 "$wrapper")
3796 cpprun=''
3797 cpplast=''
3798 ;;
3799 esac
3800 ;;
3801esac
3802
3803case "$cppstdin" in
3804"$wrapper") ;;
3805*) $rm -f $wrapper;;
3806esac
3807$rm -f testcpp.c testcpp.out
3808
3809: Set private lib path
3810case "$plibpth" in
3811'') if ./mips; then
3812 plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
3813 fi;;
3814esac
3815case "$libpth" in
3816' ') dlist='';;
3817'') dlist="$loclibpth $plibpth $glibpth";;
3818*) dlist="$libpth";;
3819esac
3820
3821: Now check and see which directories actually exist, avoiding duplicates
3822libpth=''
3823for xxx in $dlist
3824do
3825 if $test -d $xxx; then
3826 case " $libpth " in
3827 *" $xxx "*) ;;
3828 *) libpth="$libpth $xxx";;
3829 esac
3830 fi
3831done
3832$cat <<'EOM'
3833
3834Some systems have incompatible or broken versions of libraries. Among
3835the directories listed in the question below, please remove any you
3836know not to be holding relevant libraries, and add any that are needed.
3837Say "none" for none.
3838
3839EOM
3840case "$libpth" in
3841'') dflt='none';;
3842*)
3843 set X $libpth
3844 shift
3845 dflt=${1+"$@"}
3846 ;;
3847esac
3848rp="Directories to use for library searches?"
3849. ./myread
3850case "$ans" in
3851none) libpth=' ';;
3852*) libpth="$ans";;
3853esac
3854
3855: determine optimize, if desired, or use for debug flag also
3856case "$optimize" in
3857' ') dflt='none';;
3858'') dflt='-O';;
3859*) dflt="$optimize";;
3860esac
3861$cat <<EOH
3862
3863Some C compilers have problems with their optimizers, by default, $package
3864compiles with the -O flag to use the optimizer. Alternately, you might want
3865to use the symbolic debugger, which uses the -g flag (on traditional Unix
3866systems). Either flag can be specified here. To use neither flag, specify
3867the word "none".
3868
3869EOH
3870rp="What optimizer/debugger flag should be used?"
3871. ./myread
3872optimize="$ans"
3873case "$optimize" in
3874'none') optimize=" ";;
3875esac
3876
3877dflt=''
25f94b33
AD
3878: We will not override a previous value, but we might want to
3879: augment a hint file
3880case "$hint" in
3881none|recommended)
4633a7c4
LW
3882 case "$gccversion" in
3883 1*) dflt='-fpcc-struct-return' ;;
3884 esac
3885 case "$optimize" in
3886 *-g*) dflt="$dflt -DDEBUGGING";;
3887 esac
3888 case "$gccversion" in
3889 2*) if test -d /etc/conf/kconfig.d &&
3890 $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
3891 then
3892 dflt="$dflt -posix"
3893 fi
3894 ;;
3895 esac
3896 ;;
3897esac
3898
3899case "$mips_type" in
3900*BSD*|'') inclwanted="$locincpth $usrinc";;
3901*) inclwanted="$locincpth $inclwanted $usrinc/bsd";;
3902esac
3903for thisincl in $inclwanted; do
3904 if $test -d $thisincl; then
3905 if $test x$thisincl != x$usrinc; then
3906 case "$dflt" in
3907 *$thisincl*);;
3908 *) dflt="$dflt -I$thisincl";;
3909 esac
3910 fi
3911 fi
3912done
3913
3914inctest='if $contains $2 $usrinc/$1 >/dev/null 2>&1; then
3915 xxx=true;
3916elif $contains $2 $usrinc/sys/$1 >/dev/null 2>&1; then
3917 xxx=true;
3918else
3919 xxx=false;
3920fi;
3921if $xxx; then
3922 case "$dflt" in
3923 *$2*);;
3924 *) dflt="$dflt -D$2";;
3925 esac;
3926fi'
3927
3928if ./osf1; then
3929 set signal.h __LANGUAGE_C__; eval $inctest
3930else
3931 set signal.h LANGUAGE_C; eval $inctest
3932fi
3933set signal.h NO_PROTOTYPE; eval $inctest
3934set signal.h _NO_PROTO; eval $inctest
3935
25f94b33
AD
3936case "$hint" in
3937none|recommended) dflt="$ccflags $dflt" ;;
4633a7c4
LW
3938*) dflt="$ccflags";;
3939esac
25f94b33
AD
3940
3941case "$dflt" in
3942''|' ') dflt=none;;
3943esac
4633a7c4
LW
3944$cat <<EOH
3945
3946Your C compiler may want other flags. For this question you should include
3947-I/whatever and -DWHATEVER flags and any other flags used by the C compiler,
3948but you should NOT include libraries or ld flags like -lwhatever. If you
3949want $package to honor its debug switch, you should include -DDEBUGGING here.
3950Your C compiler might also need additional flags, such as -D_POSIX_SOURCE,
3951-DHIDEMYMALLOC or -DCRIPPLED_CC.
3952
3953To use no flags, specify the word "none".
3954
3955EOH
3956set X $dflt
3957shift
3958dflt=${1+"$@"}
3959rp="Any additional cc flags?"
3960. ./myread
3961case "$ans" in
3962none) ccflags='';;
3963*) ccflags="$ans";;
3964esac
3965
3966: the following weeds options from ccflags that are of no interest to cpp
3967cppflags="$ccflags"
3968case "$gccversion" in
39691*) cppflags="$cppflags -D__GNUC__"
3970esac
3971case "$mips_type" in
3972'');;
3973*BSD*) cppflags="$cppflags -DSYSTYPE_BSD43";;
3974esac
3975case "$cppflags" in
3976'');;
3977*)
3978 echo " "
3979 echo "Let me guess what the preprocessor flags are..." >&4
3980 set X $cppflags
3981 shift
3982 cppflags=''
3983 $cat >cpp.c <<'EOM'
3984#define BLURFL foo
3985
3986BLURFL xx LFRULB
3987EOM
3988 previous=''
3989 for flag in $*
3990 do
3991 case "$flag" in
3992 -*) ftry="$flag";;
3993 *) ftry="$previous $flag";;
3994 esac
3995 if $cppstdin -DLFRULB=bar $ftry $cppminus <cpp.c \
3996 >cpp1.out 2>/dev/null && \
3997 $cpprun -DLFRULB=bar $ftry $cpplast <cpp.c \
3998 >cpp2.out 2>/dev/null && \
3999 $contains 'foo.*xx.*bar' cpp1.out >/dev/null 2>&1 && \
4000 $contains 'foo.*xx.*bar' cpp2.out >/dev/null 2>&1
4001 then
4002 cppflags="$cppflags $ftry"
4003 previous=''
4004 else
4005 previous="$flag"
4006 fi
4007 done
4008 set X $cppflags
4009 shift
4010 cppflags=${1+"$@"}
4011 case "$cppflags" in
4012 *-*) echo "They appear to be: $cppflags";;
4013 esac
4014 $rm -f cpp.c cpp?.out
4015 ;;
4016esac
4017
4018: flags used in final linking phase
4019
4020case "$ldflags" in
4021'') if ./venix; then
4022 dflt='-i -z'
4023 else
4024 dflt=''
4025 fi
4026 case "$ccflags" in
4027 *-posix*) dflt="$dflt -posix" ;;
4028 esac
4029 ;;
4030*) dflt="$ldflags";;
4031esac
4032
4033: Try to guess additional flags to pick up local libraries.
4034for thislibdir in $libpth; do
4035 case " $loclibpth " in
4036 *" $thislibdir "*)
4037 case "$dflt " in
25f94b33 4038 *"-L$thislibdir "*) ;;
4633a7c4
LW
4039 *) dflt="$dflt -L$thislibdir" ;;
4040 esac
4041 ;;
4042 esac
4043done
4044
4045case "$dflt" in
4046'') dflt='none' ;;
4047esac
4048
4049$cat <<EOH
4050
4051Your C linker may need flags. For this question you should
4052include -L/whatever and any other flags used by the C linker, but you
4053should NOT include libraries like -lwhatever.
4054
4055Make sure you include the appropriate -L/path flags if your C linker
4056does not normally search all of the directories you specified above,
4057namely
4058 $libpth
4059To use no flags, specify the word "none".
4060
4061EOH
4062
4063rp="Any additional ld flags (NOT including libraries)?"
4064. ./myread
4065case "$ans" in
4066none) ldflags='';;
4067*) ldflags="$ans";;
4068esac
4069rmlist="$rmlist pdp11"
4070
4071: coherency check
4072echo " "
4073echo "Checking your choice of C compiler and flags for coherency..." >&4
4074set X $cc $optimize $ccflags $ldflags try.c -o try
4075shift
4076$cat >try.msg <<EOM
4077I've tried to compile and run a simple program with:
4078
4079 $*
4080 ./try
4081
4082and I got the following output:
4083
4084EOM
4085$cat > try.c <<'EOF'
4086#include <stdio.h>
4087main() { exit(0); }
4088EOF
4089dflt=y
4090if sh -c "$cc $optimize $ccflags try.c -o try $ldflags" >>try.msg 2>&1; then
4091 if sh -c './try' >>try.msg 2>&1; then
4092 dflt=n
4093 else
4094 echo "The program compiled OK, but exited with status $?." >>try.msg
4095 rp="You have a problem. Shall I abort Configure"
4096 dflt=y
4097 fi
4098else
4099 echo "I can't compile the test program." >>try.msg
4100 rp="You have a BIG problem. Shall I abort Configure"
4101 dflt=y
4102fi
4103case "$dflt" in
4104y)
4105 $cat try.msg
4106 case "$knowitall" in
4107 '')
4108 echo "(The supplied flags might be incorrect with this C compiler.)"
4109 ;;
4110 *) dflt=n;;
4111 esac
4112 echo " "
4113 . ./myread
4114 case "$ans" in
4115 n*|N*) ;;
4116 *) echo "Ok. Stopping Configure." >&4
4117 exit 1
4118 ;;
4119 esac
4120 ;;
4121n) echo "OK, that should do.";;
4122esac
4123$rm -f try try.* core
4124
4125: compute shared library extension
4126case "$so" in
4127'')
4128 if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then
4129 dflt='sl'
4130 else
4131 dflt='so'
4132 fi
4133 ;;
4134*) dflt="$so";;
4135esac
4136$cat <<EOM
4137
4138On some systems, shared libraries may be available. Answer 'none' if
4139you want to suppress searching of shared libraries for the remaining
4140of this configuration.
4141
4142EOM
4143rp='What is the file extension used for shared libraries?'
4144. ./myread
4145so="$ans"
4146
4147: Looking for optional libraries
4148echo " "
4149echo "Checking for optional libraries..." >&4
4150case "$libs" in
4151' '|'') dflt='';;
4152*) dflt="$libs";;
4153esac
4154case "$libswanted" in
4155'') libswanted='c_s';;
4156esac
4157for thislib in $libswanted; do
4158
4159 if xxx=`./loc lib$thislib.$so.[0-9]'*' X $libpth`; $test -f "$xxx"; then
4160 echo "Found -l$thislib (shared)."
4161 case " $dflt " in
4162 *"-l$thislib "*);;
4163 *) dflt="$dflt -l$thislib";;
4164 esac
4165 elif xxx=`./loc lib$thislib.$so X $libpth` ; $test -f "$xxx"; then
4166 echo "Found -l$thislib (shared)."
4167 case " $dflt " in
4168 *"-l$thislib "*);;
4169 *) dflt="$dflt -l$thislib";;
4170 esac
4171 elif xxx=`./loc lib$thislib.a X $libpth`; $test -f "$xxx"; then
4172 echo "Found -l$thislib."
4173 case " $dflt " in
4174 *"-l$thislib "*);;
4175 *) dflt="$dflt -l$thislib";;
4176 esac
4177 elif xxx=`./loc $thislib.a X $libpth`; $test -f "$xxx"; then
4178 echo "Found -l$thislib."
4179 case " $dflt " in
4180 *"-l$thislib "*);;
4181 *) dflt="$dflt -l$thislib";;
4182 esac
4183 elif xxx=`./loc lib${thislib}_s.a X $libpth`; $test -f "$xxx"; then
4184 echo "Found -l${thislib}_s."
4185 case " $dflt " in
4186 *"-l$thislib "*);;
4187 *) dflt="$dflt -l${thislib}_s";;
4188 esac
4189 elif xxx=`./loc Slib$thislib.a X $xlibpth`; $test -f "$xxx"; then
4190 echo "Found -l$thislib."
4191 case " $dflt " in
4192 *"-l$thislib "*);;
4193 *) dflt="$dflt -l$thislib";;
4194 esac
4195 else
4196 echo "No -l$thislib."
4197 fi
4198done
4199set X $dflt
4200shift
4201dflt="$*"
4202case "$libs" in
4203'') dflt="$dflt";;
4204*) dflt="$libs";;
4205esac
4206case "$dflt" in
4207' '|'') dflt='none';;
4208esac
4209
4210$cat <<EOM
4211
4212Some versions of Unix support shared libraries, which make executables smaller
4213but make load time slightly longer.
4214
4215On some systems, mostly newer Unix System V's, the shared library is included
4216by putting the option "-lc_s" as the last thing on the cc command line when
4217linking. Other systems use shared libraries by default. There may be other
4218libraries needed to compile $package on your machine as well. If your system
4219needs the "-lc_s" option, include it here. Include any other special libraries
4220here as well. Say "none" for none.
4221EOM
4222
4223echo " "
4224rp="Any additional libraries?"
4225. ./myread
4226case "$ans" in
4227none) libs=' ';;
4228*) libs="$ans";;
4229esac
4230
4231: see if nm is to be used to determine whether a symbol is defined or not
4232case "$usenm" in
4233'')
4234 dflt=`egrep 'inlibc|csym' ../Configure | wc -l 2>/dev/null`
4235