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