#! /bin/sh # # If these # comments don't work, trim them. Don't worry about any other # shell scripts, Configure will trim # comments from them for you. # # (If you are trying to port this package to a machine without sh, I would # suggest you cut out the prototypical config.h from the end of Configure # and edit it to reflect your system. Some packages may include samples # of config.h for certain machines, so you might look for one of those.) # # $Header: Head.U,v 2.0 88/06/28 23:13:13 lwall Locked $ # # Yes, you may rip this off to use in other distribution packages. # (Note: this Configure script was generated automatically. Rather than # working with this copy of Configure, you may wish to get metaconfig.) : sanity checks PATH=".:/bin:/usr/bin:/usr/local/bin:/usr/ucb:/usr/local:/usr/lbin:/etc:/usr/new:/usr/new/bin:/usr/nbin:$PATH" export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh $0; kill $$) if test ! -t 0; then echo "Say 'sh Configure', not 'sh /dev/null 2>&1 && \ echo "(I see you are using the Korn shell. Some ksh's blow up on Configure," && \ echo "especially on exotic machines. If yours does, try the Bourne shell instead.)" if test ! -d ../UU; then if test ! -d UU; then mkdir UU fi cd UU fi case "$1" in -d) shift; fastread='yes';; esac Log='' Header='' contains='' cppstdin='' cppminus='' d_getopt='' d_memcpy='' d_mkdir='' d_rename='' d_symlink='' d_whoami='' n='' c='' orderlib='' ranlib='' package='' pager='' prefshell='' startsh='' d_eunice='' define='' eunicefix='' build_dir='' source_dir='' loclist='' expr='' sed='' echo='' cat='' rm='' mv='' cp='' tail='' tr='' mkdir='' sort='' uniq='' grep='' trylist='' test='' inews='' ispell='' egrep='' more='' pg='' Mcc='' vi='' mailx='' mail='' cpp='' perl='' emacs='' ls='' rmail='' sendmail='' shar='' smail='' submit='' tbl='' troff='' nroff='' uname='' uuname='' line='' chgrp='' chmod='' lint='' sleep='' pr='' tar='' ln='' lpr='' lp='' touch='' make='' date='' csh='' pmake='' mips='' col='' pack='' bld='' compress='' execmail='' libswanted='' bin='' installbin='' c_date='' d_ascii='' d_broke_ctype='' d_broke_fflush='' d_calendar='' calendar='' d_chown_neg1='' d_content='' d_crypt='' cryptlib='' d_cuserid='' d_disphost='' d_domname='' d_usegetdom='' d_errlst='' d_flock='' d_dotlock='' d_fcntlock='' lock_dir='' has_flock='' has_fcntl='' d_fsync='' d_ftruncate='' d_gethname='' d_douname='' d_host_comp='' ign_hname='' d_index='' d_internet='' d_ispell='' ispell_path='' ispell_options='' d_locale='' d_nl_types='' d_msgcat='' d_usenls='' d_mboxedit='' d_mime='' defcharset='' defdispcharset='' d_mmdf='' d_newauto='' d_noaddfrom='' d_usedomain='' d_noxheader='' d_pidcheck='' d_ptem='' d_putenv='' d_remlock='' maxattempts='' d_setegid='' d_setgid='' d_savegrpmboxid='' mailermode='' d_sigvec='' d_sigvectr='' d_sigset='' d_sighold='' d_sigprocmask='' d_sigblock='' d_sigaction='' d_statuschg='' d_strcspn='' d_strspn='' d_strpbrk='' d_strerror='' d_strftime='' d_strings='' d_pwdinsys='' strings='' includepath='' d_strstr='' d_strtok='' d_subshell='' d_tempnam='' tempnamo='' tempnamc='' d_termio='' d_termios='' d_useembed='' d_utimbuf='' d_vfork='' defbatsub='' defeditor='' editoropts='' hostname='' phostname='' mydomain='' autohostname='' i_memory='' i_stdarg='' i_stdlib='' i_time='' i_systime='' d_systimekernel='' i_unistd='' i_utime='' i_sysutime='' lib='' installlib='' libc='' linepr='' maildir='' mailer='' mailgrp='' mansrc='' catmansrc='' manext='' manext_choice='' catmanext='' catmanext_choice='' packed='' manroff='' manroffopts='' suffix='' packer='' models='' split='' small='' medium='' large='' huge='' optimize='' ccflags='' cppflags='' ldflags='' cc='' libs='' nametype='' d_passnames='' d_berknames='' d_usgnames='' passcat='' rmttape='' roff='' roffopts='' sigtype='' spitshell='' shsharp='' sharpbang='' termlib='' tmpdir='' tzname_handling='' xencf='' xenlf='' d_xenix='' d_bsd='' CONFIG='' : set package name package=elm2.5 # Revision 1.2 1995/06/30 14:56:06 wfp5p # Alpha 5 # # Revision 1.1.1.1 1995/04/19 20:38:26 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:54 wfp5p # Elm 2 # echo " " echo "Beginning of configuration questions for $package kit." : Eunice requires " " instead of "", can you believe it echo " " define='define' undef='undef' : change the next line if compiling for Xenix/286 on Xenix/386 xlibpth='/usr/lib/386 /lib/386 /lib' libpth='/usr/lib /usr/ccs/lib /usr/local/lib /usr/lib/large /lib '$xlibpth' /lib/large /usr/lib/small /lib/small' smallmach='pdp11 i8086 z8000 i80286 iAPX286' rmlist='kit[1-9]isdone kit[1-9][0-9]isdone' trap 'echo " "; rm -f $rmlist; exit 1' 1 2 3 : We must find out about Eunice early eunicefix=':' if test -f /etc/unixtovms; then eunicefix=/etc/unixtovms fi if test -f /etc/unixtovms.exe; then eunicefix=/etc/unixtovms.exe fi : See if the sources are somewhere other than where we are doing the build. build_dir=`cd .. ; pwd` source_dir="$build_dir" if test ! -f $source_dir/MANIFEST ; then # Most shells leave the full pathname to the script in $0 # so we should be able to use that to locate the sources. echo "I do not see the source files here." source_dir=`dirname $0` case "$source_dir" in /*) ;; *) source_dir=`cd $source_dir ; pwd` ;; esac if test ! -f $source_dir/MANIFEST ; then echo "You are missing some or all of the source distribution." echo "Please reload the software and try again." exit 1 fi echo "Aha! I found them." echo " build directory = $build_dir" echo " source directory = $source_dir" fi : Now test for existence of everything in MANIFEST echo "First let's make sure your kit is complete. Checking..." awk '$1 !~ /PACKINGLIST/ {print $1}' $source_dir/MANIFEST | split -100 rm -f missing for filelist in x??; do (cd $source_dir; ls `cat $build_dir/UU/$filelist` >/dev/null 2>>$build_dir/UU/missing) done if test -s missing; then cat missing kill $$ fi echo "Looks good..." : Do one time items..... cd $source_dir for file in OneTime.PL* ; do if test -f "$file" ; then echo "Executing patch cleanup script $file . . ." . ./$file fi done cd $build_dir/UU d_newshome="/usr/NeWS" defvoidused=7 attrlist="mc68000 sun gcos unix ibm gimpel interdata tss os mert pyr" attrlist="$attrlist vax pdp11 i8086 z8000 u3b2 u3b5 u3b20 u3b200" attrlist="$attrlist hpux hp9000s300 hp9000s500 hp9000s800" attrlist="$attrlist ns32000 ns16000 iAPX286 mc300 mc500 mc700 sparc" attrlist="$attrlist nsc32000 sinix xenix venix posix ansi M_XENIX" attrlist="$attrlist $mc68k __STDC__ UTS M_I8086 M_I186 M_I286 M_I386" attrlist="$attrlist i186 __m88k__ m88k DGUX __DGUX__ NeXT _AIX ultrix" pth="/bin /usr/bin /usr/ucb /sbin /usr/sbin /usr/local /usr/local/bin /usr/lbin" pth="$pth /usr/5bin /vol/local/bin /etc /usr/bsd /usr/lib /usr/ccs/lib /usr/ccs/bin /lib" pth="$pth /usr/local/lib /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/bin /bsd4.3/usr/ucb" pth="$pth /usr/convex /usr/mmdf/bin /usr/mmdf/lib /usr/lib/mail" pth="$pth ${BSDBASE-/bsd}/usr/ucb ${BSDBASE-/bsd}/bin ${BSDBASE-/bsd}/usr/bin" # Revision 1.1.1.1 1995/04/19 20:38:26 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:54 wfp5p # Elm 2 # : check for out bin directory if test ! -d ../bin; then echo "Making bin directory" mkdir ../bin else echo "Found bin directory" fi libswanted="intl nls" attrlist="$attrlist sgi" : some greps do not return status, grrr. echo "grimblepritz" >grimble if grep blurfldyick grimble >/dev/null 2>&1 ; then contains=contains elif grep grimblepritz grimble >/dev/null 2>&1 ; then contains=grep else contains=contains fi rm -f grimble : the following should work in any shell case "$contains" in contains*) echo " " echo "AGH! Grep doesn't return a status. Attempting remedial action." cat >contains <<'EOSS' grep "$1" "$2" >.greptmp && cat .greptmp && test -s .greptmp EOSS chmod +x contains esac # Revision 1.1.1.1 1995/04/19 20:38:28 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:55 wfp5p # Elm 2 # : see if sh knows # comments echo " " echo "Checking your sh to see if it knows about # comments..." if sh -c '#' >/dev/null 2>&1 ; then echo "Your sh handles # comments correctly." shsharp=true spitshell=cat echo " " echo "Okay, let's see if #! works on this system..." e=/bin/echo; test -f $e || e=/usr/bin/echo echo "#!$e hi" > try $eunicefix try chmod +x try ./try > today if $contains hi today >/dev/null 2>&1; then echo "It does." sharpbang='#!' else echo "#! $e hi" > try $eunicefix try chmod +x try ./try > today if test -s today; then echo "It does." sharpbang='#! ' else echo "It doesn't." sharpbang=': use ' fi fi else echo "Your sh doesn't grok # comments--I will strip them later on." shsharp=false echo "exec grep -v '^#'" >spitshell chmod +x spitshell $eunicefix spitshell spitshell=`pwd`/spitshell echo "I presume that if # doesn't work, #! won't work either!" sharpbang=': use ' fi : figure out how to guarantee sh startup echo " " echo "Checking out how to guarantee sh startup..." startsh=$sharpbang'/bin/sh' echo "Let's see if '$startsh' works..." cat >try <.echotmp if $contains c .echotmp >/dev/null 2>&1 ; then echo "...using -n." n='-n' c='' else cat <<'EOM' ...using \c EOM n='' c='\c' fi echo $n "Type carriage return to continue. Your cursor should be here-->$c" read ans rm -f .echotmp : now set up to do reads with possible shell escape and default assignment cat <myread case "\$fastread" in yes) ans=''; echo " " ;; *) ans='!';; esac while expr "X\$ans" : "X!" >/dev/null; do read ans case "\$ans" in !) sh echo " " echo $n "\$rp $c" ;; !*) set \`expr "X\$ans" : "X!\(.*\)\$"\` sh -c "\$*" echo " " echo $n "\$rp $c" ;; esac done rp='Your answer:' case "\$ans" in '') ans="\$dflt";; esac EOSC # Revision 1.1.1.1 1995/04/19 20:38:26 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:53 wfp5p # Elm 2 # : general instructions cat <loc $startsh case \$# in 0) exit 1;; esac thing=\$1 shift dflt=\$1 shift for dir in \$*; do case "\$thing" in .) if test -d \$dir/\$thing; then echo \$dir exit 0 fi ;; *) if test -f \$dir/\$thing; then echo \$dir/\$thing exit 0 elif test -f \$dir/\$thing.exe; then : on Eunice apparently echo \$dir/\$thing exit 0 fi ;; esac done echo \$dflt exit 1 EOSC chmod +x loc $eunicefix loc loclist=" cat chgrp chmod cp echo expr grep ln ls mv rm sed sleep touch tr " trylist=" Mcc compress cpp date emacs execmail ispell line lint lp lpr mips more nroff pack pg pr rmail sendmail shar smail submit tar tbl test troff uname uuname vi " for file in $loclist; do xxx=`loc $file $file $pth` eval $file=$xxx eval _$file=$xxx case "$xxx" in /*) echo $file is in $xxx. ;; *) echo "I don't know where $file is. I hope it's in everyone's PATH." ;; esac done echo " " echo "Don't worry if any of the following aren't found..." ans=offhand for file in $trylist; do xxx=`loc $file $file $pth` eval $file=$xxx eval _$file=$xxx case "$xxx" in /*) echo $file is in $xxx. ;; *) echo "I don't see $file out there, $ans." ans=either ;; esac done case "$egrep" in egrep) echo "Substituting grep for egrep." egrep=$grep ;; esac case "$test" in test) echo "Hopefully test is built into your sh." ;; /bin/test) if sh -c "PATH= test true" >/dev/null 2>&1; then echo "Using the test built into your sh." test=test fi ;; *) test=test ;; esac case "$echo" in echo) echo "Hopefully echo is built into your sh." ;; /bin/echo) echo " " echo "Checking compatibility between /bin/echo and builtin echo (if any)..." $echo $n "hi there$c" >foo1 echo $n "hi there$c" >foo2 if cmp foo1 foo2 >/dev/null 2>&1; then echo "They are compatible. In fact, they may be identical." else case "$n" in '-n') n='' c='\c' ans='\c' ;; *) n='-n' c='' ans='-n' ;; esac cat <foo if test `echo abc | tr a-z A-Z` = Abc ; then if $test "$uname_os" = "AIX" ; then echo "Looks like an AIX system, but we'll see.." echo exit 0 >bsd echo exit 1 >usg echo exit 1 >v7 else echo "Looks kind of like a USG system, but we'll see..." echo exit 1 >bsd echo exit 0 >usg echo exit 1 >v7 fi elif $contains SIGTSTP foo >/dev/null 2>&1 ; then if $test "(" "$uname_os" = "SunOS" -a "$uname_rel" = "4.1" ")" ; then echo "Looks like SunOs 4.1, a USG system, but we'll see..." echo exit 1 >bsd echo exit 0 >usg echo exit 1 >v7 elif $test "$uname_os" = "OSF1" ; then echo "Looks like an OSF/1 system, but we'll see.." echo exit 1 >bsd echo exit 1 >usg echo exit 1 >v7 elif $test "$uname_os" = "HP-UX" ; then echo "Looks like an HP-UX system, but we'll see.." echo exit 1 >bsd echo exit 0 >usg echo exit 1 >v7 else echo "Looks kind of like a BSD system, but we'll see..." echo exit 0 >bsd echo exit 0 >usg echo exit 1 >v7 fi else echo "Looks kind of like a version 7 system, but we'll see..." echo exit 1 >bsd echo exit 1 >usg echo exit 0 >v7 fi case "$eunicefix" in *unixtovms*) cat <<'EOI' There is, however, a strange, musty smell in the air that reminds me of something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit. EOI echo "exit 0" >eunice d_eunice="$define" ;; *) echo " " echo "Congratulations. You aren't running Eunice." d_eunice="$undef" echo "exit 1" >eunice ;; esac if test -f /xenix; then echo "Actually, this looks more like a XENIX system..." echo "exit 0" >xenix else echo " " echo "It's not Xenix..." echo "exit 1" >xenix fi chmod +x xenix $eunicefix xenix if test -f /venix; then echo "Actually, this looks more like a VENIX system..." echo "exit 0" >venix else echo " " if xenix; then : null else echo "Nor is it Venix..." fi echo "exit 1" >venix fi chmod +x bsd usg v7 eunice venix $eunicefix bsd usg v7 eunice venix rm -rf foo rmlist="$rmlist bsd usg v7 eunice venix xenix" # Revision 1.2 1995/06/12 20:30:51 wfp5p # Made the Ultrix fflush check automatic # Changed gcc options # # Revision 1.1.1.1 1995/04/19 20:38:28 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:54 wfp5p # Elm 2 # : find out how to find out full name echo " " case "$d_berknames" in "$define") dflt=y;; "$undef") dflt=n;; *) if bsd; then dflt=y elif xenix; then dflt=y else dflt=n fi ;; esac echo "Does your /etc/passwd file keep full names in Berkeley/V7 format (name first" $echo $n "thing after ':' in GCOS field)? [$dflt] $c" rp="Berkeley/V7 format full name? [$dflt]" . myread case "$ans" in y*) d_passnames="$define" d_berknames="$define" d_usgnames="$undef" nametype=bsd ;; *) echo " " case "$d_usgnames" in "$define") dflt=y;; "$undef") dflt=n;; *) if usg; then dflt=y else dflt=n fi ;; esac echo "Does your passwd file keep full names in USG format (name sandwiched" $echo $n "between a '-' and a '(')? [$dflt] $c" rp="USG format full name? [$dflt]" . myread case "$ans" in n*) echo "Full name will be taken from ~/.fullname" d_passnames="$undef" d_berknames="$undef" d_usgnames="$undef" nametype=other ;; *) d_passnames="$define" d_berknames="$undef" d_usgnames="$define" nametype=usg ;; esac ;; esac : see if we have to deal with yellow pages, if so, put sun : library first, as the yp password routines must override : the c library ones if $test -d /usr/etc/yp || $test -d /etc/yp; then if $test "$passcat" = "ypcat passwd"; then dflt=y elif $contains '^\+:' /etc/passwd >/dev/null; then dflt=y else dflt=n fi rp="Are you getting the passwd file via yellow pages? [$dflt]" $echo $n "$rp $c" . myread case "$ans" in y*) passcat='ypcat passwd' case "$libswanted" in '') libswanted='sun c_s';; *) libswanted=`$echo "$libswanted" | $sed -e 's/sun //g'` libswanted="sun $libswanted";; esac ;; *) passcat='cat /etc/passwd';; esac else passcat='cat /etc/passwd' fi : set up shell script to do ~ expansion cat >filexp <&2 exit 1 fi case "\$1" in */*) echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\` ;; *) echo \$dir ;; esac fi ;; *) echo \$1 ;; esac EOSS chmod +x filexp $eunicefix filexp # Revision 1.1.1.1 1995/04/19 20:38:28 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:55 wfp5p # Elm 2 # # determine text processor to use, default to troff if found. case "$roff" in '') if $test -n "$troff"; then dflt="$troff" else dflt=$nroff fi ;; *) dflt="$roff";; esac $cat <pdp11.c <<'EOP' main() { #ifdef pdp11 exit(0); #else exit(1); #endif } EOP cc -o pdp11 pdp11.c >/dev/null 2>&1 if pdp11 2>/dev/null; then dflt='unsplit split' else ans=`loc . X /lib/small /lib/large /usr/lib/small /usr/lib/large /lib/medium /usr/lib/medium /lib/huge` case "$ans" in X) dflt='none';; *) if $test -d /lib/small || $test -d /usr/lib/small; then dflt='small' else dflt='' fi if $test -d /lib/medium || $test -d /usr/lib/medium; then dflt="$dflt medium" fi if $test -d /lib/large || $test -d /usr/lib/large; then dflt="$dflt large" fi if $test -d /lib/huge || $test -d /usr/lib/huge; then dflt="$dflt huge" fi esac fi ;; *) dflt="$models" ;; esac if $test -z "$xencf" ; then $cat </dev/null 2>&1 || \ $contains '\-i' $mansrc/man1/cc.1 >/dev/null 2>&1; then dflt='-i' else dflt='none' fi ;; *) dflt="$split";; esac rp="What flag indicates separate I and D space? [$dflt]" $echo $n "$rp $c" . myread case "$ans" in none) ans='';; esac split="$ans" unsplit='' ;; *large*|*small*|*medium*|*huge*) case "$models" in *large*) case "$large" in '') dflt='-Ml';; *) dflt="$large";; esac rp="What flag indicates large model? [$dflt]" $echo $n "$rp $c" . myread case "$ans" in none) ans=''; esac large="$ans" ;; *) large='';; esac case "$models" in *huge*) case "$huge" in '') dflt='-Mh';; *) dflt="$huge";; esac rp="What flag indicates huge model? [$dflt]" $echo $n "$rp $c" . myread case "$ans" in none) ans=''; esac huge="$ans" ;; *) huge="$large";; esac case "$models" in *medium*) case "$medium" in '') dflt='-Mm';; *) dflt="$medium";; esac rp="What flag indicates medium model? [$dflt]" $echo $n "$rp $c" . myread case "$ans" in none) ans=''; esac medium="$ans" ;; *) medium="$large";; esac case "$models" in *small*) case "$small" in '') dflt='none';; *) dflt="$small";; esac rp="What flag indicates small model? [$dflt]" $echo $n "$rp $c" . myread case "$ans" in none) ans=''; esac small="$ans" ;; *) small='';; esac ;; *) echo "Unrecognized memory models--you may have to edit Makefile.SH" ;; esac fi : see if we need a special compiler echo " " if usg; then case "$cc" in '') case "$Mcc" in /*) dflt='Mcc' ;; *) case "$large" in -M*) dflt='cc' ;; *) if $contains '\-M' $mansrc/cc.1 >/dev/null 2>&1 ; then dflt='cc -M' else dflt='cc' fi ;; esac ;; esac ;; *) dflt="$cc";; esac $cat <<'EOM' On some systems the default C compiler will not resolve multiple global references that happen to have the same name. On some such systems the "Mcc" command may be used to force these to be resolved. On other systems a "cc -M" command is required. (Note that the -M flag on other systems indicates a memory model to use!) If you have the Gnu C compiler, you might wish to use that instead. EOM $echo $n "What command will force resolution on this system? [$dflt] $c" rp="Command to resolve multiple refs? [$dflt]" . myread cc="$ans" else case "$cc" in '') dflt=cc;; *) dflt="$cc";; esac rp="Use which C compiler? [$dflt]" $echo $n "$rp $c" . myread cc="$ans" fi case "$cc" in gcc*) cpp=`loc gcc-cpp $cpp $pth`;; esac : determine optimize, if desired, or use for debug flag also case "$optimize" in ' ') dflt="none" ;; '') dflt="-O"; ;; *) dflt="$optimize" ;; esac cat </dev/null >libc.tmp $sed -n -e 's/^.* [ATDS] *[_.]*//p' -e 's/^.* [ATDS] //p' libc.list if $contains '^printf$' libc.list >/dev/null 2>&1; then echo done elif $sed -n -e 's/^__*//' -e 's/^\([a-zA-Z_0-9$]*\).*xtern.*/\1/p' \ libc.list; \ $contains '^printf$' libc.list >/dev/null 2>&1; then echo done elif $sed -n -e '/|UNDEF/d' -e '/FUNC..GL/s/^.*|__*//p' libc.list; \ $contains '^printf$' libc.list >/dev/null 2>&1; then echo done elif $sed -n -e 's/^.* D __*//p' -e 's/^.* D //p' libc.list; \ $contains '^printf$' libc.list >/dev/null 2>&1; then echo done elif $sed -n -e 's/^_//' -e 's/^\([a-zA-Z_0-9]*\).*xtern.*text.*/\1/p' \ libc.list; \ $contains '^printf$' libc.list >/dev/null 2>&1; then echo done elif $grep '|' libc.list $contains '^printf$' libc.list >/dev/null 2>&1; then echo done elif $sed -n -e 's/^.*|FUNC |GLOB .*|//p' -e 's/^.*|FUNC |WEAK .*|//p' \ libc.list; \ $contains '^printf$' libc.list >/dev/null 2>&1; then echo done else nm -p $* 2>/dev/null >libc.tmp $sed -n -e 's/^.* [ATW] *_[_.]*//p' -e 's/^.* [ATW] //p' libc.list if $contains '^printf$' libc.list >/dev/null 2>&1; then nm_opts='-p' echo "done" else echo " " echo "nm didn't seem to work right." echo "Trying ar instead..." if ar t $libc > libc.tmp; then for thisname in $libnames; do ar t $thisname >>libc.tmp done $sed -e 's/\.o$//' < libc.tmp > libc.list echo "Ok." else echo "ar didn't seem to work right." echo "Maybe this is a Cray...trying bld instead..." if $bld t $libc > /dev/null && bld t $libc | $sed -e 's/.*\///' -e 's/\.o:.*$//' > libc.list; then for thisname in $libnames; do bld t $libnames | \ $sed -e 's/.*\///' -e 's/\.o:.*$//' >>libc.list ar t $thisname >>libc.tmp done echo "Ok." else echo "bld didn't seem to work right either. Desperation time." echo "We'll use strings and hope this returns something useful." if strings $libc > libc.list; then echo "Yes; that seems to have worked." else echo "That didn't work either. Giving up." exit 1 fi fi fi fi fi : old version inlibc='echo " "; if $contains "^$1\$" libc.list >/dev/null 2>&1; then echo "$1() found"; eval "$2=$define"; else echo "$1() not found"; eval "$2=$undef"; fi' : : new version : : inlibc='echo " "; td=$define; tu=$undef; : if $contains "^$1\$" libc.list >/dev/null 2>&1; : then echo "$1() found"; : eval "case \"\$$2\" in undef) . whoa; esac"; eval "$2=\$td"; : else echo "$1() not found"; : eval "case \"\$$2\" in define) . whoa; esac"; eval "$2=\$tu"; fi' : : rmlist="$rmlist libc.tmp libc.list" : : see how we invoke the C preprocessor echo " " echo "Now, how can we feed standard input to your C preprocessor..." cat <<'EOT' >testcpp.c #define ABC abc #define XYZ xyz ABC.XYZ EOT echo 'Maybe "'"$cc"' -E" will work...' $cc -E testcpp.out 2>&1 : try to force gcc preprocessor if that is the compiler they are using case $? in 0) cppstdin="$cc -E";; *) case "$cc" in *gcc*) cd .. echo 'Trying (cat >/tmp/$$.c; '"$cc"' -E /tmp/$$.c; rm /tmp/$$.c)' echo 'cat >/tmp/$$.c; '"$cc"' -E /tmp/$$.c; rm /tmp/$$.c' >cppstdin chmod 755 cppstdin cppstdin=`pwd`/cppstdin cppminus=''; cd UU $cppstdin testcpp.out 2>&1 ;; esac ;; esac if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then echo "Yup, it does." cppstdin="$cc -E" cppminus=''; else echo 'Nope, maybe "'$cpp'" will work...' $cpp testcpp.out 2>&1 if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then echo "Yup, it does." cppstdin="$cpp" cppminus=''; else echo 'No such luck...maybe "'$cpp' -" will work...' $cpp - testcpp.out 2>&1 if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then echo "It works!" cppstdin="$cpp" cppminus='-'; else echo 'Nixed again...maybe "'"$cc"' -E -" will work...' $cc -E - testcpp.out 2>&1 if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then echo "Hooray, it works! I was beginning to wonder." cppstdin="$cc -E" cppminus='-'; else echo 'Nope...maybe "'"$cc"' -P" will work...' $cc -P testcpp.out 2>&1 if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then echo "Yup, that does." cppstdin="$cc -P" cppminus=''; else echo 'Nope...maybe "'"$cc"' -P -" will work...' $cc -P - testcpp.out 2>&1 if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then echo "Yup, that does." cppstdin="$cc -P" cppminus='-'; else echo 'Hmm...perhaps you already told me...' case "$cppstdin" in '') ;; *) $cppstdin $cppminus testcpp.out 2>&1;; esac if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then echo "Hooray, you did! I was beginning to wonder." else echo 'Uh-uh. Time to get fancy...' cd .. echo 'Trying (cat >/tmp/$$.c; '"$cc"' -E /tmp/$$.c; rm /tmp/$$.c)' echo 'cat >/tmp/$$.c; '"$cc"' -E /tmp/$$.c; rm /tmp/$$.c' >cppstdin chmod 755 cppstdin cppstdin=`pwd`/cppstdin cppminus=''; cd UU $cppstdin testcpp.out 2>&1 if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then echo "Eureka!." else dflt=blurfl $echo $n "No dice. I can't find a C preprocessor. Name one: $c" rp='Name a C preprocessor:' . myread cppstdin="$ans" $cppstdin testcpp.out 2>&1 if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then echo "OK, that will do." else echo "Sorry, I can't get that to work. Go find one." exit 1 fi fi fi fi fi fi fi fi fi rm -f testcpp.c testcpp.out # Revision 1.1.1.1 1995/04/19 20:38:26 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:54 wfp5p # Elm 2 # : get C preprocessor symbols handy echo " " echo $attrlist | $tr ' ' '\012' >Cppsym.know $cat <Cppsym $startsh case "\$1" in -l) list=true shift ;; esac unknown='' case "\$list\$#" in 1|2) for sym do if $contains "^\$1$" Cppsym.true >/dev/null 2>&1; then exit 0 elif $contains "^\$1$" Cppsym.know >/dev/null 2>&1; then : else unknown="\$unknown \$sym" fi done set X \$unknown shift ;; esac case \$# in 0) exit 1;; esac echo \$* | $tr ' ' '\012' | $sed -e 's/\(.*\)/\\ #ifdef \1\\ exit 0; _ _ _ _\1\\ \1\\ #endif\\ /' >/tmp/Cppsym\$\$ echo exit 1 >>/tmp/Cppsym\$\$ $cppstdin $cppminus /tmp/Cppsym2\$\$ case "\$list" in true) awk 'NF > 5 {print substr(\$6,2,100)}' Cppsym.true cat Cppsym.true rmlist="$rmlist Cppsym Cppsym.know Cppsym.true" # Revision 1.1.1.1 1995/04/19 20:38:26 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:56 wfp5p # Elm 2 # : check for broken toupper/tolower $echo ' ' case "$d_broke_ctype" in "$define") ;; "$undef") ;; *) $echo "Testing your \"ctype\" conversion routines..." d_broke_ctype="$define" $cat >try.c <<'EOF' #include #include #define my_tolower(c) (isupper(c) ? (c) - 'A' + 'a' : (c)) #define my_toupper(c) (islower(c) ? (c) - 'a' + 'A' : (c)) main() { int i; for (i = 1 ; i <= 0x7F ; ++i) { if (my_tolower(i) != tolower(i) || my_toupper(i) != toupper(i)) exit(1); } exit(0); } EOF $cc $ccflags -o try try.c >/dev/null 2>&1 \ && ./try >/dev/null 2>&1 && d_broke_ctype="$undef" rm -f try.c try.o try core ;; esac case "$d_broke_ctype" in "$define") $echo "Using our own \"ctype\" conversions." ;; "$undef") $echo "Using standard system \"ctype\" conversions." ;; esac : check for broken fflush $echo ' ' case "$d_broke_fflush" in "$define") ;; "$undef") ;; *) $echo "Testing your \"fflush\" routine..." d_broke_fflush="$define" $cat >try.c <<'EOF' #include main() { FILE *fp; fp=fopen("/dev/null","r"); fflush(fp); return ferror(fp); } EOF $cc $ccflags -o try try.c >/dev/null 2>&1 \ && ./try >/dev/null 2>&1 && d_broke_fflush="$undef" rm -f try.c try.o try core ;; esac case "$d_broke_fflush" in "$define") $echo "Your fflush is broken. Adding -DULTRIX_FFLUSH_BUG." cflags="$cflags -DULTRIX_FFLUSH_BUG" ;; "$undef") $echo "Looks good." ;; esac # Revision 1.1.1.1 1995/04/19 20:38:26 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:53 wfp5p # Elm 2 # : see if chown can take -1 for mantaining the user/group unchanged echo " " case "$d_chown_neg1" in undef) dflt=n;; *) dflt=y;; esac $cat </dev/null 2>&1; then echo 'crypt() found.' d_crypt="$define" cryptlib='' else cryptlib=`loc Slibcrypt.a "" $xlibpth` if $test -z "$cryptlib"; then cryptlib=`loc Mlibcrypt.a "" $xlibpth` else cryptlib=-lcrypt fi if $test -z "$cryptlib"; then cryptlib=`loc Llibcrypt.a "" $xlibpth` else cryptlib=-lcrypt fi if $test -z "$cryptlib"; then cryptlib=`loc libcrypt.a "" $libpth` else cryptlib=-lcrypt fi # # now try for international versions? # if $test -z "$cryptlib"; then cryptlib=`loc Slibcrypt_i.a "" $libpth` if $test -z "$cryptlib"; then cryptlib=`loc Mlibcrypt_i.a "" $libpth` else cryptlib=-lcrypt_i fi if $test -z "$cryptlib"; then cryptlib=`loc Llibcrypt_i.a "" $libpth` else cryptlib=-lcrypt_i fi if $test -z "$cryptlib"; then cryptlib=`loc libcrypt_i.a "" $libpth` else cryptlib=-lcrypt_i fi fi if $test -z "$cryptlib"; then echo 'crypt() not found.' d_crypt="$undef" else d_crypt="$define" fi fi # Revision 1.1.1.1 1995/04/19 20:38:26 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:54 wfp5p # Elm 2 # : check for cuserid function set cuserid d_cuserid eval $inlibc # Revision 1.1.1.1 1995/04/19 20:38:26 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:54 wfp5p # Elm 2 # : determine if the host name should be displayed on the index page case "$d_disphost" in "$define") dflt=y;; "$undef") dflt=n;; *) dflt=n;; esac $cat </dev/null 2>&1; then echo 'flock() found.' if $contains EWOULDBLOCK /usr/include/errno.h > /dev/null 2>&1; then has_flock="$define" echo 'flock locking available.' elif $contains EWOULDBLOCK /usr/include/sys/errno.h > /dev/null 2>&1; then has_flock="$define" echo 'flock locking available.' else has_flock="$undef" echo 'flock locking not available.' d_flock="$undef" fi else has_flock="$undef" d_flock="$undef" fi if $contains F_SETLK /usr/include/sys/fcntl.h >/dev/null 2>&1; then echo 'F_SETLK found, fcntl locking available' has_fcntl="$define" elif $contains F_SETLK /usr/include/sys/fcntlcom.h >/dev/null 2>&1; then echo 'F_SETLK found, fcntl locking available' has_fcntl="$define" elif $contains F_SETLK /usr/include/sys/file.h >/dev/null 2>&1; then echo 'F_SETLK found, fcntl locking available' has_fcntl="$define" elif $contains F_SETLK /usr/include/fcntl.h >/dev/null 2>&1; then echo 'F_SETLK found, fcntl locking available' has_fcntl="$define" elif $contains F_SETLK /usr/include/fcntlbits.h >/dev/null 2>&1; then echo 'F_SETLK found, fcntl locking available' has_fcntl="$define" elif $contains F_SETLK /usr/include/bits/fcntl.h >/dev/null 2>&1; then echo 'F_SETLK found, fcntl locking available' has_fcntl="$define" else echo 'F_SETLK not found, fcntl locking not available' has_fcntl="$undef" d_fcntlock="$undef" fi if $test "$has_flock" = "$define" -o "$has_fcntl" = "$define"; then $cat <&1` ; then hostname=$ans phostname=hostname else if xenix; then echo 'Oh, dear. Maybe "/etc/systemid" is the key...' if ans=`cat /etc/systemid 2>&1` ; then hostname=$ans phostname='cat /etc/systemid' echo "Whadyaknow. Xenix always was a bit strange..." else echo 'No, maybe "uuname -l" will work...' if ans=`sh -c '$uuname -l' 2>&1` ; then hostname=$ans phostname='$uuname -l' else echo 'Strange. Maybe "uname -n" will work...' if ans=`sh -c '$uname -n' 2>&1` ; then hostname=$ans phostname='$uname -n' else echo 'Oh well, maybe I can mine it out of whoami.h...' if ans=`sh -c $contains' sysname /usr/include/whoami.h' 2>&1` ; then hostname=`echo "$ans" | $sed 's/^.*"\(.*\)"/\1/'` phostname="sed -n -e '"'/sysname/s/^.*\"\\(.*\\)\"/\1/{'"' -e p -e q -e '}' &1` ; then hostname=$ans phostname="$uuname -l" else echo 'Strange. Maybe "uname -n" will work...' if $test -n "$uname" && ans=`sh -c "$uname -n" 2>&1` ; then hostname=$ans phostname="$uname -n" else if ans=`cat /etc/systemid 2>&1` ; then hostname=$ans phostname='cat /etc/systemid' echo "Well, I'll use the systemid file anyway..." else echo 'Oh well, maybe I can mine it out of whoami.h...' if ans=`sh -c $contains' sysname /usr/include/whoami.h' 2>&1` ; then hostname=`echo "$ans" | $sed 's/^.*"\(.*\)"/\1/'` phostname="sed -n -e '"'/sysname/s/^.*\"\\(.*\\)\"/\1/{'"' -e p -e q -e '}' /dev/null 2>&1 ; then echo "gethostname() found." d_gethname="$define" ans=gethostname elif xenix; then if $test -n "$uname"; then u_name=`$uname -n` else u_name= fi if $test -n "$line"; then if $test -r /etc/systemid; then s_name=`$line < /etc/systemid` else s_name= fi else s_name= fi if $test -n "$u_name"; then if $test "$u_name" = "$s_name"; then cat </dev/null 2>&1 ; then echo "uname() found." d_douname="$define" ans=uname fi else cat </dev/null 2>&1 ; then echo "uname() found." d_douname="$define" ans=uname fi case "$d_douname$d_gethname" in *define*) case "$ign_hname" in '') case "$d_host_comp" in "$define") dflt=y;; *) dflt=n;; esac;; y) dflt=y;; *) dflt=n;; esac cat </dev/null 2>&1 ; then echo "errlst object found, will attempt to use systems" echo "sys_nerr and sys_errlist" dflt=y elif $contains '^sys_errlist$' libc.list >/dev/null 2>&1 ; then echo "sys_errlist found, will attempt to use systems" echo "sys_nerr and sys_errlist" dflt=y else echo "neither errlst object nor sys_errlist found, $package will use its own" dflt=n fi;; esac cat </dev/null 2>&1 ; then if $contains '^strchr$' libc.list >/dev/null 2>&1 ; then if $contains strchr "$strings" >/dev/null 2>&1 ; then if $contains index "$strings" >/dev/null 2>&1 ; then # has index, strchr, and index and strchr in strings.h echo "Your system has both index() and strchr(). Shall I use" rp="index() rather than strchr()? [$dflt]" $echo $n "$rp $c" . myread case "$ans" in n*) d_index="$define" ;; *) d_index="$undef" ;; esac else # has index, strchr, and strchr in strings.h d_index="$define" echo "strchr() found." fi else # has index, strchr, and no strchr in strings.h d_index="$undef" echo "index() found." fi else # has only index, no strchr, strings.h is a moot point d_index="$undef" echo "index() found." fi else if $contains '^strchr$' libc.list >/dev/null 2>&1 ; then d_index="$define" echo "strchr() found." else echo "No index() or strchr() found!" d_index="$undef" fi fi # Revision 1.1.1.1 1995/04/19 20:38:27 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:54 wfp5p # Elm 2 # case "$d_mmdf" in "$define") dflt=y;; "$undef") dflt=n;; *) if $test -f "$submit"; then dflt=y else dflt=n fi ;; esac $cat <try.c <<'EOCP' main() { int pid, status0, status9; if ((pid = fork()) == 0) { sleep(30); exit(1); } status0 = kill(pid, 0); status9 = kill(pid, 9); exit(status0 == status9); } EOCP if $cc try.c -o try >/dev/null 2>&1 ; then if try >/dev/null 2>&1 ; then echo "Your system does not support kill(pid, 0)..." d_pidcheck="$undef" else d_pidcheck="$define" echo "Your system supports kill(pid, 0)..." fi else echo "Your system does not support kill(pid, 0)..." d_pidcheck="$undef" fi $rm -f try.c try.o try ;; esac : see if /usr/include/sys/ptem.h exists, making it a possible System V/386 d_ptem="$undef" if usg ; then echo " " echo "Checking to see if your system has sys/ptem.h..." if $test -f /usr/include/sys/ptem.h ; then echo "Yep, it does..." if "$contains" "struct winsize" /usr/include/sys/ptem.h >/dev/null 2>&1 ; then d_ptem="$define" echo " and it has the needed structure." fi fi fi # Revision 1.1.1.1 1995/04/19 20:38:27 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:55 wfp5p # Elm 2 # : see if there is a putenv set putenv d_putenv eval $inlibc # Revision 1.2 1995/05/30 18:15:57 wfp5p # Change to Configure to work correctly in "fastread" mode. # # Revision 1.1.1.1 1995/04/19 20:38:27 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:54 wfp5p # Elm 2 # : get remove at last flag and number of lock attempts $cat </dev/null 2>&1; then echo "sigaction() found." d_sigaction="$define" d_sigset="$undef" d_sigvec="$undef" d_sigvectr="$undef" else d_sigaction="$undef" : see if sigvector exists -- since sigvec will match the substring if $contains sigvector libc.list >/dev/null 2>&1; then echo 'sigvector() found--you must be running HP-UX.' d_sigvectr="$define" d_sigvec="$define" else : try the original name d_sigvectr="$undef" if $contains sigvec libc.list >/dev/null 2>&1; then echo 'sigvec() found.' d_sigvec="$define" else case "$d_sigset" in "$define") echo 'sigvec() not found';; *) echo 'sigvec() not found--race conditions with signals may occur.';; esac d_sigvec="$undef" fi fi fi : see if sigprocmask exists -- POSIX has highest priority in match echo " " if $contains sigprocmask libc.list >/dev/null 2>&1; then echo 'sigprocmask() found.' d_sigprocmask="$define" d_sigblock="$undef" d_sighold="$undef" else d_sigprocmask="$undef" : see if sigblock exists if $contains sigblock libc.list >/dev/null 2>&1; then echo 'sigblock() found.' d_sigblock="$define" d_sighold="$undef" else : see if sighold exists d_sigblock="$undef" if $contains sighold libc.list >/dev/null 2>&1; then echo 'sighold() found.' d_sighold="$define" else echo 'No signal masking functions found.' d_sighold="$undef" fi fi fi case "$d_statuschg" in "$define") dflt=y;; "$undef") dflt=n;; *) dflt=n;; esac $cat < /dev/null 2>&1; then echo "getdomainname() found" d_domname=$define; elif $contains "^getdomnm\$" libc.list > /dev/null 2>&1; then echo "getdomainname() found" d_domname=$define; else echo "getdomainname() not found" d_domname=$undef fi case "$d_domname" in "$define") cat <, or both. I'm now running the test program... EOM $cat >try.c <<'EOCP' #ifdef I_TIME #include #endif #ifdef I_SYSTIME #ifdef SYSTIMEKERNEL #define KERNEL #endif #include #endif main() { struct tm foo; #ifdef S_TIMEVAL struct timeval bar; #endif if (foo.tm_sec == foo.tm_sec) exit(0); #ifdef S_TIMEVAL if (bar.tv_sec == bar.tv_sec) exit(0); #endif exit(1); } EOCP flags='' for s_timeval in '-DS_TIMEVAL' ''; do for d_systimekernel in '' '-DSYSTIMEKERNEL'; do for i_time in '-DI_TIME' ''; do for i_systime in '-DI_SYSTIME' ''; do case "$flags" in '') echo "Trying $i_time $i_systime $d_systimekernel $s_timeval" if $cc $ccflags $i_time $i_systime $d_systimekernel $s_timeval \ try.c -o try >/dev/null 2>&1 ; then set X $i_time $i_systime $d_systimekernel $s_timeval shift flags="$*" echo "Succeeded with $flags" fi ;; esac done done done done case "$flags" in *SYSTIMEKERNEL*) d_systimekernel="$define";; *) d_systimekernel="$undef";; esac case "$flags" in *I_TIME*) i_time="$define";; *) i_time="$undef";; esac case "$flags" in *I_SYSTIME*) i_systime="$define";; *) i_systime="$undef";; esac $rm -f try.c try : see if utime.h is in includepath echo " " i_utime=`loc utime.h "" /usr/include $includepath` if $test -n "$i_utime"; then echo "Found " i_utime="$define" i_sysutime="$undef" else i_sysutime=`loc sys/utime.h "" /usr/include $includepath` if $test -n "$i_sysutime"; then echo "Found " i_utime="$undef" i_sysutime="$define" else echo "Did not find or " i_utime="$undef" i_sysutime="$undef" fi fi # Revision 1.1.1.1 1995/04/19 20:38:27 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:54 wfp5p # Elm 2 # : check for utimbuf structure echo " " case "$d_utimbuf" in "$define") ;; "$undef") ;; *) : Pyramid passes the att compile test but still needs the definition if Cppsym pyr ; then if $test "`/bin/universe`" = "att" ; then d_utimbuf="$undef" echo "I will use my 'utimbuf' structure..." else d_utimbuf="$define" echo "You have the 'utimbuf' structure..." fi else if $test "$d_utimbuf" != "$define"; then echo "Checking to see if struct utimbuf exists." $cat >try.c <<'EOCP' #include #include #include #include #define far /* to keep Xenix from complaining */ #if (defined(BSD) || !defined(apollo)) # include #endif #ifdef I_TIME # include #endif #ifdef I_SYSTIME # include #endif #ifdef BSD # include #endif #ifdef I_UTIME # include #endif #ifdef I_SYSUTIME # include #endif main() { struct utimbuf test; test.actime = 0; exit(1); } EOCP cflags=$ccflags if $test "$i_utime" = "$define"; then cflags="$cflags -DI_UTIME" fi if $test "$i_sysutime" = "$define"; then cflags="$cflags -DI_SYSUTIME" fi if $test "$i_time" = "$define"; then cflags="$cflags -DI_TIME" fi if $test "$i_systime" = "$define"; then cflags="$cflags -DI_SYSTIME" fi if $test "$d_bsd" = "$define"; then cflags="$cflags -DBSD" fi if $cc $cflags try.c -o try >/dev/null 2>&1 ; then d_utimbuf="$define" echo "You have the 'utimbuf' structure..." else echo "I will use my 'utimbuf' structure..." d_utimbuf="$undef" fi $rm -f try.c try.o try fi fi ;; esac # Revision 1.1.1.1 1995/04/19 20:38:27 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:55 wfp5p # Elm 2 # : see if there is a vfork if Cppsym sgi ; then d_vfork="$undef" else set vfork d_vfork eval $inlibc fi : see if memory.h is in includepath echo " " i_memory=`loc memory.h "" /usr/include $includepath` if $test -n "$i_memory"; then echo "Found " i_memory="$define" else echo "Did not find " i_memory="$undef" fi : see if stdarg.h is in includepath echo " " i_stdarg=`loc stdarg.h "" /usr/include $includepath` if $test -n "$i_stdarg"; then echo "Found " i_stdarg="$define" else echo "Did not find " i_stdarg="$undef" fi : see if stdlib.h is in includepath echo " " i_stdlib=`loc stdlib.h "" /usr/include $includepath` if $test -n "$i_stdlib"; then echo "Found " i_stdlib="$define" else echo "Did not find " i_stdlib="$undef" fi : see if unistd.h is in includepath echo " " i_unistd=`loc unistd.h "" /usr/include $includepath` if $test -n "$i_unistd"; then echo "Found " i_unistd="$define" else echo "Did not find " i_unistd="$undef" fi # Revision 1.2 1996/10/28 16:57:58 wfp5p # Beta 1 # # Revision 1.1.1.1 1995/04/19 20:38:28 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:54 wfp5p # Elm 2 # : see if signal is declared as pointer to function returning int or void echo " " $cppstdin $cppflags < /usr/include/signal.h >$$.tmp if $contains 'void.*[^s]signal' $$.tmp >/dev/null 2>&1 ; then echo "You have void (*signal())() instead of int." sigtype="void" elif $contains 'int.*[^sg]signal' $$.tmp >/dev/null 2>&1 ; then echo "You have int (*signal())() instead of void." sigtype="int" elif $contains 'extern[ ]*[(\*]*signal' $$.tmp >/dev/null 2>&1 ; then echo "You have int (*signal())() instead of void." sigtype="int" elif $contains 'sigfunc_t.*[^s]signal' $$.tmp >/dev/null 2>&1 ; then echo "You have sigfunc_t (*signal())() instead of int." sigtype="sigfunc_t" elif $test -n "$sigtype"; then echo $n "As you already told me, signal handlers return $sigtype" else echo "I can't determine whether signal handlers return void or int..." echo "I'm assuming they return void like ANSI and POSIX want." echo "If not, you will have to change sigtype to match the typedef" echo "used by the signal handlers. Change it config.sh at the edit " echo "question at the end of Configure." sigtype="void" fi rm -f $$.tmp : preserve RCS keywords in files with variable substitution, grrr Log='$Log' Header='$Header' # Revision 1.1.1.1 1995/04/19 20:38:27 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:55 wfp5p # Elm 2 # : get default batch subject $cat </dev/null 2>&1; then echo "ar appears to generate random libraries itself." orderlib=false ranlib=":" else if test -f /usr/bin/ranlib; then ranlib=/usr/bin/ranlib elif test -f /bin/ranlib; then ranlib=/bin/ranlib fi if test -n "$ranlib"; then echo "your system has $ranlib; we'll use that." orderlib=false else echo "your system doesn't seem to support random libraries" echo "so we'll use lorder and tsort to order the libraries." orderlib=true ranlib=":" fi fi # Revision 1.1.1.1 1995/04/19 20:38:28 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:55 wfp5p # Elm 2 # : determine the name of the tape device rmttape=`loc rct0 "" /dev` if $test -z "$rmttape"; then rmttape=`loc rmt0 "" /dev` fi if $test -z "$rmttape"; then rmttape=`loc rtp0 "unknown-remote-tape-unit" /dev` fi echo "remote tape drive is $rmttape" echo " " # Revision 1.1 1995/09/29 17:58:46 wfp5p # These were missing from rcs... # : locate the termlib routines echo " " case "$termlib" in '') echo "Looking for your termlib routines..." cat >try.c << 'EOF' #include char tbuf[1024]; main() { /* return codes: -1 == error, 0 == unknown term, 1 == ok */ exit(tgetent(tbuf, "vt100") >= 0 ? 0 : 1); } EOF for dflt in -lcurses -ltermlib -ltermcap none ; do case "$dflt" in none) $echo "I cannot seem to find your termlib routines." break ;; esac echo "Trying $dflt..." $cc $ccflags -o try try.c $dflt >/dev/null 2>&1 if $test $? -eq 0 -a -f try ; then if ./try >/dev/null 2>&1 ; then $echo "That seems to work." break fi fi done rm -f try.c try.o try ;; *) dflt="$termlib" ;; esac echo " " echo "Enter the name of the library that contains your termlib routines." echo "Either \"-lfoo\" or \"/lib/foo.a\" format is OK." echo "Enter \"none\" if no special library needs to be loaded." echo " " rp="Where is the library with your termlib routines? [$dflt]" echo $n "$rp $c" . myread case "$ans" in '') ans="$dflt" ;; esac case "$ans" in none) termlib= ;; *) termlib="$ans" ;; esac # Revision 1.1.1.1 1995/04/19 20:38:28 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:56 wfp5p # Elm 2 # : determine where temporary files should go case "$tmpdir" in '') dflt=`loc . "." "/tmp /usr/tmp"` ;; *) dflt="$tmpdir" ;; esac if $test -d "$tmpdir" -a "$tmpdir" != ""; then $echo " " $echo "Temporary files will be put in the $tmpdir directory" else cont=true while $test "$cont" ; do $echo " " rp="Where do you want to put the temporary files? [$dflt]" $echo $n "$rp $c" . myread tmpdir="$ans" tmpdir=`filexp $tmpdir` if $test -d "$tmpdir" -a "$tmpdir" != ""; then cont='' else if $test "$fastread" = yes; then dflt=y else dflt=n fi rp="Directory $tmpdir doesn't exist. Use that name anyway? [$dflt]" $echo $n "$rp $c" . myread dflt='' case "$ans" in y*) cont='';; esac fi done fi # Revision 1.3 1995/09/29 17:40:33 wfp5p # Alpha 8 (Chip's big changes) # # Revision 1.2 1995/06/30 14:56:07 wfp5p # Alpha 5 # # Revision 1.1.1.1 1995/04/19 20:38:28 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:53 wfp5p # Elm 2 # : figure out timezone handling cp $source_dir/lib/get_tz.c try.c 2>/dev/null \ || $echo "Oh no! I cannot find the \"lib/get_tz.c\" file." cat >elm_defs.h < #include EOF $echo " " dflt_handling=$tzname_handling tzname_handling= if $test -f try.c ; then $echo "Figuring out how to get timezone names." for tzname_handling in DFLT TM_NAME TM_ZONE TZNAME TIMEZONE ERROR ; do case "$tzname_handling" in DFLT) $test "$dflt_handling" = "" && continue tzname_handling=$dflt_handling ;; ERROR) tzname_handling= break ;; $dflt_handling) : avoid doing default twice continue ;; esac $echo "Trying -DTZNAME_USE_$tzname_handling" $cc -D_CONFIGURE -DTZNAME_USE_$tzname_handling $ccflags \ try.c -o try >/dev/null 2>&1 if $test $? -eq 0 && ./try >try.out 2>&1 ; then $echo "Alright! That seems to have worked." break fi done fi if $test "$tzname_handling" = "" ; then $echo "I cannot figure out how to get timezone names." if $test "$dflt_handling" != "" ; then tzname_handling="$dflt_handling" $echo "You said \"$tzname_handling\" worked last time so I'll use that." else tzname_handling=UNKNOWN $echo "You will have to set \"tzname_handling\" manually." fi fi $rm -f elm_defs.h try.c try.o try try.out # Revision 1.3 1995/07/18 18:59:39 wfp5p # Alpha 6 # # Revision 1.2 1995/06/30 14:56:05 wfp5p # Alpha 5 # # Revision 1.1.1.1 1995/04/19 20:38:26 wfp5p # Initial import of elm 2.4 PL0 as base for elm 2.5. # # Revision 1.1.1.1 1995/04/13 19:38:54 wfp5p # Elm 2 # : the "config.over" file can be used to patch configuration changes if test -f ../config.over ; then echo " " echo "I have found a \"config.over\" file." dflt=y rp="Do you want to load the \"config.over\" file? [$dflt]" $echo $n "$rp $c" . myread case "$ans" in n*) echo "OK, I'll ignore it." ;; *) . ../config.over echo "Configuration override changes have been loaded from config.over." ;; esac fi : clean up one time files for file in OneTime.PL* ; do if test -f "$file" ; then echo "Removing patch cleanup script $file . . ." rm -f $file fi done echo " " echo "End of configuration questions." echo " " : create config.sh file echo " " if test -d ../UU; then cd .. fi echo "Creating config.sh..." $spitshell <config.sh $startsh # config.sh # This file was produced by running the Configure script. Log='$Log' Header='$Header' contains='$contains' cppstdin='$cppstdin' cppminus='$cppminus' d_getopt='$d_getopt' d_memcpy='$d_memcpy' d_mkdir='$d_mkdir' d_rename='$d_rename' d_symlink='$d_symlink' d_whoami='$d_whoami' n='$n' c='$c' orderlib='$orderlib' ranlib='$ranlib' package='$package' pager='$pager' prefshell='$prefshell' startsh='$startsh' d_eunice='$d_eunice' define='$define' eunicefix='$eunicefix' build_dir='$build_dir' source_dir='$source_dir' loclist='$loclist' expr='$expr' sed='$sed' echo='$echo' cat='$cat' rm='$rm' mv='$mv' cp='$cp' tail='$tail' tr='$tr' mkdir='$mkdir' sort='$sort' uniq='$uniq' grep='$grep' trylist='$trylist' test='$test' inews='$inews' ispell='$ispell' egrep='$egrep' more='$more' pg='$pg' Mcc='$Mcc' vi='$vi' mailx='$mailx' mail='$mail' cpp='$cpp' perl='$perl' emacs='$emacs' ls='$ls' rmail='$rmail' sendmail='$sendmail' shar='$shar' smail='$smail' submit='$submit' tbl='$tbl' troff='$troff' nroff='$nroff' uname='$uname' uuname='$uuname' line='$line' chgrp='$chgrp' chmod='$chmod' lint='$lint' sleep='$sleep' pr='$pr' tar='$tar' ln='$ln' lpr='$lpr' lp='$lp' touch='$touch' make='$make' date='$date' csh='$csh' pmake='$pmake' mips='$mips' col='$col' pack='$pack' bld='$bld' compress='$compress' execmail='$execmail' libswanted='$libswanted' bin='$bin' installbin='$installbin' c_date='$c_date' d_ascii='$d_ascii' d_broke_ctype='$d_broke_ctype' d_broke_fflush='$d_broke_fflush' d_calendar='$d_calendar' calendar='$calendar' d_chown_neg1='$d_chown_neg1' d_content='$d_content' d_crypt='$d_crypt' cryptlib='$cryptlib' d_cuserid='$d_cuserid' d_disphost='$d_disphost' d_domname='$d_domname' d_usegetdom='$d_usegetdom' d_errlst='$d_errlst' d_flock='$d_flock' d_dotlock='$d_dotlock' d_fcntlock='$d_fcntlock' lock_dir='$lock_dir' has_flock='$has_flock' has_fcntl='$has_fcntl' d_fsync='$d_fsync' d_ftruncate='$d_ftruncate' d_gethname='$d_gethname' d_douname='$d_douname' d_host_comp='$d_host_comp' ign_hname='$ign_hname' d_index='$d_index' d_internet='$d_internet' d_ispell='$d_ispell' ispell_path='$ispell_path' ispell_options='$ispell_options' d_locale='$d_locale' d_nl_types='$d_nl_types' d_msgcat='$d_msgcat' d_usenls='$d_usenls' d_mboxedit='$d_mboxedit' d_mime='$d_mime' defcharset='$defcharset' defdispcharset='$defdispcharset' d_mmdf='$d_mmdf' d_newauto='$d_newauto' d_noaddfrom='$d_noaddfrom' d_usedomain='$d_usedomain' d_noxheader='$d_noxheader' d_pidcheck='$d_pidcheck' d_ptem='$d_ptem' d_putenv='$d_putenv' d_remlock='$d_remlock' maxattempts='$maxattempts' d_setegid='$d_setegid' d_setgid='$d_setgid' d_savegrpmboxid='$d_savegrpmboxid' mailermode='$mailermode' d_sigvec='$d_sigvec' d_sigvectr='$d_sigvectr' d_sigset='$d_sigset' d_sighold='$d_sighold' d_sigprocmask='$d_sigprocmask' d_sigblock='$d_sigblock' d_sigaction='$d_sigaction' d_statuschg='$d_statuschg' d_strcspn='$d_strcspn' d_strspn='$d_strspn' d_strpbrk='$d_strpbrk' d_strerror='$d_strerror' d_strftime='$d_strftime' d_strings='$d_strings' d_pwdinsys='$d_pwdinsys' strings='$strings' includepath='$includepath' d_strstr='$d_strstr' d_strtok='$d_strtok' d_subshell='$d_subshell' d_tempnam='$d_tempnam' tempnamo='$tempnamo' tempnamc='$tempnamc' d_termio='$d_termio' d_termios='$d_termios' d_useembed='$d_useembed' d_utimbuf='$d_utimbuf' d_vfork='$d_vfork' defbatsub='$defbatsub' defeditor='$defeditor' editoropts='$editoropts' hostname='$hostname' phostname='$phostname' mydomain='$mydomain' autohostname='$autohostname' i_memory='$i_memory' i_stdarg='$i_stdarg' i_stdlib='$i_stdlib' i_time='$i_time' i_systime='$i_systime' d_systimekernel='$d_systimekernel' i_unistd='$i_unistd' i_utime='$i_utime' i_sysutime='$i_sysutime' lib='$lib' installlib='$installlib' libc='$libc' linepr='$linepr' maildir='$maildir' mailer='$mailer' mailgrp='$mailgrp' mansrc='$mansrc' catmansrc='$catmansrc' manext='$manext' manext_choice='$manext_choice' catmanext='$catmanext' catmanext_choice='$catmanext_choice' packed='$packed' manroff='$manroff' manroffopts='$manroffopts' suffix='$suffix' packer='$packer' models='$models' split='$split' small='$small' medium='$medium' large='$large' huge='$huge' optimize='$optimize' ccflags='$ccflags' cppflags='$cppflags' ldflags='$ldflags' cc='$cc' libs='$libs' nametype='$nametype' d_passnames='$d_passnames' d_berknames='$d_berknames' d_usgnames='$d_usgnames' passcat='$passcat' rmttape='$rmttape' roff='$roff' roffopts='$roffopts' sigtype='$sigtype' spitshell='$spitshell' shsharp='$shsharp' sharpbang='$sharpbang' termlib='$termlib' tmpdir='$tmpdir' tzname_handling='$tzname_handling' xencf='$xencf' xenlf='$xenlf' d_xenix='$d_xenix' d_bsd='$d_bsd' CONFIG=true EOT # Revision 1.2 1995/07/18 18:59:40 wfp5p # Alpha 6 # # Revision 1.1 1995/06/30 14:56:05 wfp5p # Alpha 5 # CONFIG=true echo " " dflt='' fastread='' echo "If you didn't make any mistakes, then just type a carriage return here." rp="If you need to edit config.sh, do it as a shell escape here:" $echo $n "$rp $c" . UU/myread case "$ans" in '') ;; *) : in case they cannot read eval $ans;; esac : if this fails, just run all the .SH files by hand . ./config.sh if test "$source_dir" != "$build_dir" ; then echo " " echo "Setting up directories for build..." for dir in doc hdrs lib src utils ; do if $test ! -d $dir ; then echo "Creating directory $dir" mkdir $dir fi done test -f Configure && rm -f Configure cat <Configure $startsh exec $0 \${1+\$@} EOT fi echo " " echo "Doing variable substitutions on .SH files..." set x `awk '{print $1}' <$source_dir/MANIFEST | $grep '\.SH'` shift case $# in 0) set x *.SH; shift;; esac for file in $*; do sh $source_dir/$file ; done if test -f config.h.SH; then if test ! -f config.h; then : oops, they left it out of MANIFEST, probably, so do it anyway. . config.h.SH fi fi if $contains '^depend:' Makefile >/dev/null 2>&1; then dflt=n $cat < makedepend.out &" It can take a while, so you might not want to run it right now. EOM rp="Run make depend now? [$dflt]" $echo $n "$rp $c" . UU/myread case "$ans" in y*) make depend && echo "Now you must run a make." ;; *) echo "You must run 'make depend' then 'make'." ;; esac elif test -f Makefile; then echo " " echo "Now you must run a make." else echo "Done." fi $rm -f kit*isdone : the following is currently useless cd UU && $rm -f $rmlist : since this removes it all anyway cd .. && $rm -rf UU : end of Configure