#! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh 'Configure' <<'END_OF_FILE' X#! /bin/sh X# X# If these # comments don't work, trim them. Don't worry about any other X# shell scripts, Configure will trim # comments from them for you. X# X# (If you are trying to port this package to a machine without sh, X# I would suggest you have a look at the prototypical config_h.SH file X# and edit it to reflect your system. Some packages may include samples X# of config.h for certain machines, so you might look for one of those.) X# X# Yes, you may rip this off to use in other distribution packages. This X# script belongs to the public domain and cannot be copyrighted. X# X# (Note: this Configure script was generated automatically. Rather than X# working with this copy of Configure, you may wish to get metaconfig. X# The dist-3.0 package (which contains metaconfig) was posted in X# comp.sources.misc and is available on CPAN under authors/id/RAM so X# you may fetch it yourself from your nearest archive site.) X# X X# $Id$ X# X# Generated on Sat Feb 12 13:14:26 PST 2000 [metaconfig 3.0 PL70b-1] X# (with additional metaconfig patches by bll@gentoo.com) X Xcat >/tmp/c1$$ </tmp/c2$$ </dev/null` X test "$me" || me=$0 X ;; Xesac X X: Proper separator for the PATH environment variable Xp_=: X: On OS/2 this directory should exist if this is not floppy only system :-] Xif test -d c:/. ; then X if test -n "$OS2_SHELL"; then X p_=\; X PATH=`cmd /c "echo %PATH%" | tr '\\\\' / ` X OS2_SHELL=`cmd /c "echo %OS2_SHELL%" | tr '\\\\' / | tr '[A-Z]' '[a-z]'` X elif test -n "$DJGPP"; then X p_=\; X fi Xfi X X: Proper PATH setting Xpaths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin' Xpaths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin" Xpaths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin" Xpaths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin" Xpaths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb" Xpaths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /usr/ccs/bin" Xpaths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib" Xpaths="$paths /sbin /usr/sbin /usr/libexec" X Xfor p in $paths Xdo X case "$p_$PATH$p_" in X *$p_$p$p_*) ;; X *) test -d $p && PATH=$PATH$p_$p ;; X esac Xdone X XPATH=.$p_$PATH Xexport PATH X X: shall we be using ksh? Xinksh='' Xneedksh='' Xavoidksh='' Xnewsh=/bin/ksh Xchangesh='' Xif (PATH=.; alias -x) >/dev/null 2>&1; then X inksh=true Xfi Xif test -f /hp-ux -a -f /bin/ksh; then X needksh='to avoid sh bug in "here document" expansion' Xfi Xif test -d /usr/lpp -a -f /usr/bin/bsh -a -f /usr/bin/uname; then X if test X`/usr/bin/uname -v` = X4; then X avoidksh="to avoid AIX 4's /bin/sh" X newsh=/usr/bin/bsh X fi Xfi Xcase "$inksh/$needksh" in X/[a-z]*) X ENV='' X changesh=true X reason="$needksh" X ;; Xesac Xcase "$inksh/$avoidksh" in Xtrue/[a-z]*) X changesh=true X reason="$avoidksh" X ;; Xesac Xcase "$inksh/$needksh-$avoidksh-" in Xtrue/--) X cat <&2 X$me: Fatal Error: I can't find a Bourne Shell anywhere. X XUsually it's in /bin/sh. How did you even get this far? XPlease contact me (Brad Lanam) at bll@gentoo.com and Xwe'll try to straighten this all out. XEOM X exit 1 X ;; Xesac X X: see if sh knows # comments Xif `$sh -c '#' >/dev/null 2>&1`; then X shsharp=true X spitshell=cat X xcat=/bin/cat X test -f $xcat || xcat=/usr/bin/cat X echo "#!$xcat" >try X $eunicefix try X chmod +x try X ./try > today X if test -s today; then X sharpbang='#!' X else X echo "#! $xcat" > try X $eunicefix try X chmod +x try X ./try > today X if test -s today; then X sharpbang='#! ' X else X sharpbang=': use ' X fi X fi Xelse X echo " " X echo "Your $sh doesn't grok # comments--I will strip them later on." X shsharp=false X cd .. X echo "exec grep -v '^[ ]*#'" >spitshell X chmod +x spitshell X $eunicefix spitshell X spitshell=`pwd`/spitshell X cd UU X echo "I presume that if # doesn't work, #! won't work either!" X sharpbang=': use ' Xfi Xrm -f try today X X: figure out how to guarantee sh startup Xcase "$startsh" in X'') startsh=${sharpbang}${sh} ;; X*) Xesac Xcat >try < cmdline.opt <>cmdline.opt <options.awk <<'EOF' XBEGIN { X optstr = "dD:eEf:hKOrsSU:V"; # getopt-style specification X X len = length(optstr); X for (i = 1; i <= len; i++) { X c = substr(optstr, i, 1); X if (i < len) a = substr(optstr, i + 1, 1); else a = ""; X if (a == ":") { X arg[c] = 1; X i++; X } X opt[c] = 1; X } X} X{ X expect = 0; X str = $0; X if (substr(str, 1, 1) != "-") { X printf("'%s'\n", str); X next; X } X len = length($0); X for (i = 2; i <= len; i++) { X c = substr(str, i, 1); X if (!opt[c]) { X printf("-%s\n", substr(str, i)); X next; X } X printf("-%s\n", c); X if (arg[c]) { X if (i < len) X printf("'%s'\n", substr(str, i + 1)); X else X expect = 1; X next; X } X } X} XEND { X if (expect) X print "?"; X} XEOF X X: process the command line options Xset X `for arg in "$@"; do echo "X$arg"; done | X sed -e s/X// | awk -f options.awk` Xeval "set $*" Xshift Xrm -f options.awk X X: set up default values Xfastread='' Xreuseval=false Xconfig_sh='' Xalldone='' Xerror='' Xsilent='' Xextractsh='' Xoverride='' Xknowitall='' Xrm -f optdef.sh Xcat >optdef.sh <&2 X error=true X fi X cd UU X shift;; X -h) shift; error=true;; X -r) shift; reuseval=true;; X -s) shift; silent=true; realsilent=true;; X -E) shift; alldone=exit;; X -K) shift; knowitall=true;; X -O) shift; override=true;; X -S) shift; silent=true; extractsh=true;; X -D) X shift X case "$1" in X *=) X echo "$me: use '-U symbol=', not '-D symbol='." >&2 X echo "$me: ignoring -D $1" >&2 X ;; X *=*) echo "$1" | \ X sed -e "s/'/'\"'\"'/g" -e "s/=\(.*\)/='\1'/" >> optdef.sh;; X *) echo "$1='define'" >> optdef.sh;; X esac X shift X ;; X -U) X shift X case "$1" in X *=) echo "$1" >> optdef.sh;; X *=*) X echo "$me: use '-D symbol=val', not '-U symbol=val'." >&2 X echo "$me: ignoring -U $1" >&2 X ;; X *) echo "$1='undef'" >> optdef.sh;; X esac X shift X ;; X -V) echo "$me generated by metaconfig 3.0 PL70b-1." >&2 X exit 0;; X --) break;; X -*) echo "$me: unknown option $1" >&2; shift; error=true;; X *) break;; X esac Xdone X Xcase "$error" in Xtrue) X cat >&2 <&1 Xcase "$silent" in Xtrue) exec 1>/dev/null;; Xesac X X: run the defines and the undefines, if any, but leave the file out there... Xtouch optdef.sh X. ./optdef.sh X X: set package name Xpackage=di Xfirst=`echo $package | sed -e 's/^\(.\).*/\1/'` Xlast=`echo $package | sed -e 's/^.\(.*\)/\1/'` Xcase "`echo AbyZ | tr '[:lower:]' '[:upper:]' 2>/dev/null`" in XABYZ) spackage=`echo $first | tr '[:lower:]' '[:upper:]'`$last;; X*) spackage=`echo $first | tr '[a-z]' '[A-Z]'`$last;; Xesac X X: Some greps do not return status, grrr. Xecho "grimblepritz" >grimble Xif grep blurfldyick grimble >/dev/null 2>&1 ; then X contains=contains Xelif grep grimblepritz grimble >/dev/null 2>&1 ; then X contains=grep Xelse X contains=contains Xfi Xrm -f grimble X: the following should work in any shell Xcase "$contains" in Xcontains*) X echo " " X echo "AGH! Grep doesn't return a status. Attempting remedial action." X cat >contains <<'EOSS' Xgrep "$1" "$2" >.greptmp && cat .greptmp && test -s .greptmp XEOSS Xchmod +x contains Xesac X X: Find the path to the source tree Xcase "$src" in X'') case "$0" in X */*) src=`echo $0 | sed -e 's%/[^/][^/]*$%%'`;; X *) src='.';; X esac;; Xesac Xcase "$src" in X'') src=/ X rsrc=/ X ;; X/*) rsrc="$src";; X*) rsrc="../$src";; Xesac Xif test -f $rsrc/Configure && \ X $contains "^package=$package$" $rsrc/Configure >/dev/null 2>&1 Xthen X : found it, so we are ok. Xelse X rsrc='' X for src in . .. ../.. ../../.. ../../../..; do X if test -f ../$src/Configure && \ X $contains "^package=$package$" ../$src/Configure >/dev/null 2>&1 X then X rsrc=../$src X break X fi X done Xfi Xcase "$rsrc" in X'') X cat <&4 X XSorry, I can't seem to locate the source dir for $package. Please start XConfigure with an explicit path -- i.e. /some/path/Configure. X XEOM X exit 1 X ;; X../.) rsrc='..';; X*) X echo " " X echo "Sources for $package found in \"$src\"." >&4 X ;; Xesac X X: script used to extract .SH files with variable substitutions Xcat >extract <<'EOS' XCONFIG=true Xecho "Doing variable substitutions on .SH files..." Xif test -f $src/MANIFEST; then X set x `awk '{print $1}' <$src/MANIFEST | grep '\.SH'` Xelse X echo "(Looking for .SH files under the source directory.)" X set x `(cd $src; find . -name "*.SH" -print)` Xfi Xshift Xcase $# in X0) set x `(cd $src; echo *.SH)`; shift;; Xesac Xif test ! -f $src/$1; then X shift Xfi Xmkdir_p=' Xname=$1; Xcreate=""; Xwhile test $name; do X if test ! -d "$name"; then X create="$name $create"; X name=`echo $name | sed -e "s|^[^/]*$||"`; X name=`echo $name | sed -e "s|\(.*\)/.*|\1|"`; X else X name=""; X fi; Xdone; Xfor file in $create; do X mkdir $file; Xdone X' Xfor file in $*; do X case "$src" in X ".") X case "$file" in X */*) X dir=`expr X$file : 'X\(.*\)/'` X file=`expr X$file : 'X.*/\(.*\)'` X (cd $dir && . ./$file) X ;; X *) X . ./$file X ;; X esac X ;; X *) X case "$file" in X */*) X dir=`expr X$file : 'X\(.*\)/'` X file=`expr X$file : 'X.*/\(.*\)'` X (set x $dir; shift; eval $mkdir_p) X sh <$src/$dir/$file X ;; X *) X sh <$src/$file X ;; X esac X ;; X esac Xdone Xif test -f $src/config_h.SH; then X if test ! -f config.h; then X : oops, they left it out of MANIFEST, probably, so do it anyway. X . $src/config_h.SH X fi Xfi XEOS X X: extract files and exit if asked to do so Xcase "$extractsh" in Xtrue) X case "$realsilent" in X true) ;; X *) exec 1>&4;; X esac X case "$config_sh" in X '') config_sh='config.sh';; X esac X echo " " X echo "Fetching answers from $config_sh..." X cd .. X . $config_sh X test "$override" && . ./optdef.sh X echo " " X . UU/extract X rm -rf UU X echo "Done." X exit 0 X ;; Xesac X X: Eunice requires " " instead of "", can you believe it Xecho " " X: Here we go... Xecho "Beginning of configuration questions for $package." X Xtrap 'echo " "; test -d ../UU && rm -rf X $rmlist; exit 1' 1 2 3 15 X X: first determine how to suppress newline on echo command Xecho " " Xecho "Checking echo to see how to suppress newlines..." X(echo "hi there\c" ; echo " ") >.echotmp Xif $contains c .echotmp >/dev/null 2>&1 ; then X echo "...using -n." X n='-n' X c='' Xelse X cat <<'EOM' X...using \c XEOM X n='' X c='\c' Xfi Xecho $n "The star should be here-->$c" Xecho '*' Xrm -f .echotmp X X: Now test for existence of everything in MANIFEST Xecho " " Xif test -f $rsrc/MANIFEST; then X echo "First let's make sure your kit is complete. Checking..." >&4 X awk '$1 !~ /PACK[A-Z]+/ {print $1}' $rsrc/MANIFEST | split -50 X rm -f missing X tmppwd=`pwd` X for filelist in x??; do X (cd $rsrc; ls `cat $tmppwd/$filelist` >/dev/null 2>>$tmppwd/missing) X done X if test -s missing; then X cat missing >&4 X cat >&4 <<'EOM' X XTHIS PACKAGE SEEMS TO BE INCOMPLETE. X XYou have the option of continuing the configuration process, despite the Xdistinct possibility that your kit is damaged, by typing 'y'es. If you Xdo, don't blame me if something goes wrong. I advise you to type 'n'o Xand contact the author (bll@gentoo.com). X XEOM X echo $n "Continue? [n] $c" >&4 X read ans X case "$ans" in X y*) X echo "Continuing..." >&4 X rm -f missing X ;; X *) X echo "ABORTING..." >&4 X kill $$ X ;; X esac X else X echo "Looks good..." X fi Xelse X echo "There is no MANIFEST file. I hope your kit is complete !" Xfi Xrm -f missing x?? X X: compute the number of columns on the terminal for proper question formatting Xcase "$COLUMNS" in X'') COLUMNS='80';; Xesac X X: set up the echo used in my read Xmyecho="case \"\$xxxm\" in X'') echo $n \"\$rp $c\" >&4;; X*) case \"\$rp\" in X '') echo $n \"[\$xxxm] $c\";; X *) X if test \`echo \"\$rp [\$xxxm] \" | wc -c\` -ge $COLUMNS; then X echo \"\$rp\" >&4 X echo $n \"[\$xxxm] $c\" >&4 X else X echo $n \"\$rp [\$xxxm] $c\" >&4 X fi X ;; X esac;; Xesac" X X: now set up to do reads with possible shell escape and default assignment Xcat <myread X$startsh Xxxxm=\$dflt X$myecho Xans='!' Xcase "\$fastread" in Xyes) case "\$dflt" in X '') ;; X *) ans=''; X case "\$silent-\$rp" in X true-) ;; X *) echo " " >&4;; X esac;; X esac;; X*) case "\$silent" in X true) case "\$rp" in X '') ans='';; X esac;; X esac;; Xesac Xwhile expr "X\$ans" : "X!" >/dev/null; do X read answ X set x \$xxxm X shift X aok=''; eval "ans=\\"\$answ\\"" && aok=y X case "\$answ" in X "!") X sh 1>&4 X echo " " X $myecho X ;; X !*) X set x \`expr "X\$ans" : "X!\(.*\)\$"\` X shift X sh 1>&4 -c "\$*" X echo " " X $myecho X ;; X "\$ans") X case "\$ans" in X \\&*) X set x \`expr "X\$ans" : "X&\(.*\)\$"\` X shift X case "\$1" in X -d) X fastread=yes X echo "(OK, I'll run with -d after this question.)" >&4 X ;; X -*) X echo "*** Sorry, \$1 not supported yet." >&4 X ;; X esac X $myecho X ans=! X ;; X esac;; X *) X case "\$aok" in X y) X echo "*** Substitution done -- please confirm." X xxxm="\$ans" X ans=\`echo $n "\$ans$c" | tr '\012' ' '\` X xxxm="\$ans" X ans=! X ;; X *) X echo "*** Error -- try again." X ans=! X ;; X esac X $myecho X ;; X esac X case "\$ans\$xxxm\$nostick" in X '') X ans=! X $myecho X ;; X esac Xdone Xcase "\$ans" in X'') ans="\$xxxm";; Xesac XEOSC X X: create .config dir to save info across Configure sessions Xtest -d ../.config || mkdir ../.config Xcat >../.config/README </dev/null` Xcase "$user" in X'') user=`whoami 2>&1`;; Xesac Xif $contains "^$user\$" ../.config/instruct >/dev/null 2>&1; then X firsttime=false X echo " " X rp='Would you like to see the instructions?' X dflt=n X . ./myread X case "$ans" in X [yY]*) ;; X *) needman=false;; X esac Xfi Xif $needman; then X cat <>../.config/instruct;; X esac Xfi X X: find out where common programs are Xecho " " Xecho "Locating common programs..." >&4 Xcat <loc X$startsh Xcase \$# in X0) exit 1;; Xesac Xthing=\$1 Xshift Xdflt=\$1 Xshift Xfor dir in \$*; do X case "\$thing" in X .) X if test -d \$dir/\$thing; then X echo \$dir X exit 0 X fi X ;; X *) X for thisthing in \$dir/\$thing; do X : just loop through to pick last item X done X if test -f \$thisthing; then X echo \$thisthing X exit 0 X elif test -f \$dir/\$thing.exe; then X if test -n "$DJGPP"; then X echo \$dir/\$thing.exe X else X : on Eunice apparently X echo \$dir/\$thing X fi X exit 0 X fi X ;; X esac Xdone Xecho \$dflt Xexit 1 XEOSC Xchmod +x loc X$eunicefix loc Xloclist=" Xawk Xcat Xchgrp Xchmod Xchown Xcp Xecho Xexpr Xgrep Xmake Xmv Xrm Xsed Xtouch Xtr X" Xtrylist=" XMcc Xar Xcpp Xdate Xegrep Xln Xnm Xnroff Xtest Xuname X" Xpth=`echo $PATH | sed -e "s/$p_/ /g"` Xpth="$pth /lib /usr/lib" Xfor file in $loclist; do X eval xxx=\$$file X case "$xxx" in X /*|?:[\\/]*) X if test -f "$xxx"; then X : ok X else X echo "WARNING: no $xxx -- ignoring your setting for $file." >&4 X xxx=`./loc $file $file $pth` X fi X ;; X '') xxx=`./loc $file $file $pth`;; X *) xxx=`./loc $xxx $xxx $pth`;; X esac X eval $file=$xxx X eval _$file=$xxx X case "$xxx" in X /*) X echo $file is in $xxx. X ;; X ?:[\\/]*) X echo $file is in $xxx. X ;; X *) X echo "I don't know where '$file' is, and my life depends on it." >&4 X echo "Go find a public domain implementation or fix your PATH setting!" >&4 X exit 1 X ;; X esac Xdone Xecho " " Xecho "Don't worry if any of the following aren't found..." Xsay=offhand Xfor file in $trylist; do X eval xxx=\$$file X case "$xxx" in X /*|?:[\\/]*) X if test -f "$xxx"; then X : ok X else X echo "WARNING: no $xxx -- ignoring your setting for $file." >&4 X xxx=`./loc $file $file $pth` X fi X ;; X '') xxx=`./loc $file $file $pth`;; X *) xxx=`./loc $xxx $xxx $pth`;; X esac X eval $file=$xxx X eval _$file=$xxx X case "$xxx" in X /*) X echo $file is in $xxx. X ;; X ?:[\\/]*) X echo $file is in $xxx. X ;; X *) X echo "I don't see $file out there, $say." X say=either X ;; X esac Xdone Xcase "$egrep" in Xegrep) X echo "Substituting grep for egrep." X egrep=$grep X ;; Xesac Xcase "$ln" in Xln) X echo "Substituting cp for ln." X ln=$cp X ;; Xesac Xcase "$test" in Xtest) X echo "Hopefully test is built into your sh." X ;; X*) X if `sh -c "PATH= test true" >/dev/null 2>&1`; then X echo "Using the test built into your sh." X test=test X _test=test X fi X ;; Xesac Xcase "$echo" in Xecho) X echo "Hopefully echo is built into your sh." X ;; X'') ;; X*) X echo " " Xecho "Checking compatibility between $echo and builtin echo (if any)..." >&4 X $echo $n "hi there$c" >foo1 X echo $n "hi there$c" >foo2 X if cmp foo1 foo2 >/dev/null 2>&1; then X echo "They are compatible. In fact, they may be identical." X else X case "$n" in X '-n') n='' c='\c';; X *) n='-n' c='';; X esac X cat <$c" X $echo "*" X fi X $rm -f foo1 foo2 X ;; Xesac X X: determine whether symbolic links are supported Xecho " " X$touch blurfl Xif $ln -s blurfl sym > /dev/null 2>&1 ; then X echo "Symbolic links are supported." >&4 X lns="$ln -s" Xelse X echo "Symbolic links are NOT supported." >&4 X lns="$ln" Xfi X$rm -f blurfl sym X X: see whether [:lower:] and [:upper:] are supported character classes Xecho " " Xup='[A-Z]' Xlow='[a-z]' Xcase "`echo AbyZ | $tr '[:lower:]' '[:upper:]' 2>/dev/null`" in XABYZ) X echo "Good, your tr supports [:lower:] and [:upper:] to convert case." >&4 X up='[:upper:]' X low='[:lower:]' X ;; X*) X echo "Your tr only supports [a-z] and [A-Z] to convert case." >&4 X ;; Xesac X: set up the translation script tr, must be called with ./tr of course Xcat >tr </dev/null || hostname) 2>&1` Xmyuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e 's/\///g' | \ X ./tr '[A-Z]' '[a-z]' | tr '\012' ' '` Xnewmyuname="$myuname" Xdflt=n Xcase "$knowitall" in X'') X if test -f ../config.sh; then X if $contains myuname= ../config.sh >/dev/null 2>&1; then X eval "`grep myuname= ../config.sh`" X fi X if test "X$myuname" = "X$newmyuname"; then X dflt=y X fi X fi X ;; X*) dflt=y;; Xesac X X: Get old answers from old config file if Configure was run on the X: same system, otherwise use the hints. Xhint=default Xcd .. Xif test -f config.sh; then X echo " " X rp="I see a config.sh file. Shall I use it to set the defaults?" X . UU/myread X case "$ans" in X n*|N*) echo "OK, I'll ignore it."; mv config.sh config.sh.old;; X *) echo "Fetching default answers from your old config.sh file..." >&4 X tmp_n="$n" X tmp_c="$c" X tmp_sh="$sh" X . ./config.sh X cp config.sh UU X n="$tmp_n" X c="$tmp_c" X : Older versions did not always set $sh. Catch re-use of such X : an old config.sh. X case "$sh" in X '') sh="$tmp_sh" ;; X esac X hint=previous X ;; X esac Xfi Xif test ! -f config.sh; then X $cat <&4 X dflt='' X : Half the following guesses are probably wrong... If you have better X : tests or hints, please send them to bll@gentoo.com X : The metaconfig authors would also appreciate a copy... X $test -f /irix && osname=irix X $test -f /xenix && osname=sco_xenix X $test -f /dynix && osname=dynix X $test -f /dnix && osname=dnix X $test -f /lynx.os && osname=lynxos X $test -f /unicos && osname=unicos && osvers=`$uname -r` X $test -f /unicosmk.ar && osname=unicosmk && osvers=`$uname -r` X $test -f /bin/mips && /bin/mips && osname=mips X $test -d /NextApps && set X `hostinfo | grep 'NeXT Mach.*:' | \ X $sed -e 's/://' -e 's/\./_/'` && osname=next && osvers=$4 X $test -d /usr/apollo/bin && osname=apollo X $test -f /etc/saf/_sactab && osname=svr4 X $test -d /usr/include/minix && osname=minix X if $test -d /MachTen; then X osname=machten X if $test -x /sbin/version; then X osvers=`/sbin/version | $awk '{print $2}' | X $sed -e 's/[A-Za-z]$//'` X elif $test -x /usr/etc/version; then X osvers=`/usr/etc/version | $awk '{print $2}' | X $sed -e 's/[A-Za-z]$//'` X else X osvers="$2.$3" X fi X fi X if $test -f $uname; then X set X $myuname X shift X X case "$5" in X fps*) osname=fps ;; X mips*) X case "$4" in X umips) osname=umips ;; X *) osname=mips ;; X esac;; X [23]100) osname=mips ;; X next*) osname=next ;; X i386*) X if $test -f /etc/kconfig; then X osname=isc X if test "$lns" = "ln -s"; then X osvers=4 X elif $contains _SYSV3 /usr/include/stdio.h > /dev/null 2>&1 ; then X osvers=3 X elif $contains _POSIX_SOURCE /usr/include/stdio.h > /dev/null 2>&1 ; then X osvers=2 X fi X fi X ;; X pc*) X if test -n "$DJGPP"; then X osname=dos X osvers=djgpp X fi X ;; X esac X X case "$1" in X aix) osname=aix X tmp=`( (oslevel) 2>/dev/null || echo "not found") 2>&1` X case "$tmp" in X 'not found') osvers="$4"."$3" ;; X '<3240'|'<>3240') osvers=3.2.0 ;; X '=3240'|'>3240'|'<3250'|'<>3250') osvers=3.2.4 ;; X '=3250'|'>3250') osvers=3.2.5 ;; X *) osvers=$tmp;; X esac X ;; X *dc.osx) osname=dcosx X osvers="$3" X ;; X dnix) osname=dnix X osvers="$3" X ;; X domainos) osname=apollo X osvers="$3" X ;; X dgux) osname=dgux X osvers="$3" X ;; X dynixptx*) osname=dynixptx X osvers="$3" X ;; X freebsd) osname=freebsd X osvers="$3" ;; X genix) osname=genix ;; X hp*) osname=hpux X osvers=`echo "$3" | $sed 's,.*\.\([0-9]*\.[0-9]*\),\1,'` X ;; X irix*) osname=irix X case "$3" in X 4*) osvers=4 ;; X 5*) osvers=5 ;; X *) osvers="$3" ;; X esac X ;; X linux) osname=linux X case "$3" in X *) osvers="$3" ;; X esac X ;; X netbsd*) osname=netbsd X osvers="$3" X ;; X news-os) osvers="$3" X case "$3" in X 4*) osname=newsos4 ;; X *) osname=newsos ;; X esac X ;; X bsd386) osname=bsd386 X osvers=`$uname -r` X ;; X powerux | power_ux | powermax_os | powermaxos | \ X powerunix | power_unix) osname=powerux X osvers="$3" X ;; X next*) osname=next ;; X solaris) osname=solaris X case "$3" in X 5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;; X *) osvers="$3" ;; X esac X ;; X sunos) osname=sunos X case "$3" in X 5*) osname=solaris X osvers=`echo $3 | $sed 's/^5/2/g'` ;; X *) osvers="$3" ;; X esac X ;; X titanos) osname=titanos X case "$3" in X 1*) osvers=1 ;; X 2*) osvers=2 ;; X 3*) osvers=3 ;; X 4*) osvers=4 ;; X *) osvers="$3" ;; X esac X ;; X ultrix) osname=ultrix X osvers="$3" X ;; X osf1|mls+) case "$5" in X alpha) X osname=dec_osf X osvers=`echo "$3" | sed 's/^[xvt]//'` X ;; X hp*) osname=hp_osf1 ;; X mips) osname=mips_osf1 ;; X esac X ;; X uts) osname=uts X osvers="$3" X ;; X qnx) osname=qnx X osvers="$4" X ;; X beos) osname=beos X osvers="$3" X ;; X $2) case "$osname" in X *isc*) ;; X *freebsd*) ;; X svr*) X : svr4.x or possibly later X case "svr$3" in X ${osname}*) X osname=svr$3 X osvers=$4 X ;; X esac X case "$osname" in X svr4.0) X : Check for ESIX X if test -f /stand/boot ; then X eval `grep '^INITPROG=[a-z/0-9]*$' /stand/boot` X if test -n "$INITPROG" -a -f "$INITPROG"; then X isesix=`strings -a $INITPROG|grep 'ESIX SYSTEM V/386 Release 4.0'` X if test -n "$isesix"; then X osname=esix4 X fi X fi X fi X ;; X esac X ;; X *) if test -f /etc/systemid; then X osname=sco X set `echo $3 | $sed 's/\./ /g'` $4 X if $test -f $src/hints/sco_$1_$2_$3.sh; then X osvers=$1.$2.$3 X elif $test -f $src/hints/sco_$1_$2.sh; then X osvers=$1.$2 X elif $test -f $src/hints/sco_$1.sh; then X osvers=$1 X fi X else X case "$osname" in X '') : Still unknown. Probably a generic Sys V. X osname="sysv" X osvers="$3" X ;; X esac X fi X ;; X esac X ;; X *) case "$osname" in X '') : Still unknown. Probably a generic BSD. X osname="$1" X osvers="$3" X ;; X esac X ;; X esac X else X if test -f /vmunix -a -f $src/hints/news_os.sh; then X (what /vmunix | UU/tr '[A-Z]' '[a-z]') > UU/kernel.what 2>&1 X if $contains news-os UU/kernel.what >/dev/null 2>&1; then X osname=news_os X fi X $rm -f UU/kernel.what X elif test -d c:/.; then X set X $myuname X osname=os2 X osvers="$5" X fi X fi X X : Now look for a hint file osname_osvers, unless one has been X : specified already. X case "$hintfile" in X ''|' ') X file=`echo "${osname}_${osvers}" | $sed -e 's@\.@_@g' -e 's@_$@@'` X : Also try without trailing minor version numbers. X xfile=`echo $file | $sed -e 's@_[^_]*$@@'` X xxfile=`echo $xfile | $sed -e 's@_[^_]*$@@'` X xxxfile=`echo $xxfile | $sed -e 's@_[^_]*$@@'` X xxxxfile=`echo $xxxfile | $sed -e 's@_[^_]*$@@'` X case "$file" in X '') dflt=none ;; X *) case "$osvers" in X '') dflt=$file X ;; X *) if $test -f $src/hints/$file.sh ; then X dflt=$file X elif $test -f $src/hints/$xfile.sh ; then X dflt=$xfile X elif $test -f $src/hints/$xxfile.sh ; then X dflt=$xxfile X elif $test -f $src/hints/$xxxfile.sh ; then X dflt=$xxxfile X elif $test -f $src/hints/$xxxxfile.sh ; then X dflt=$xxxxfile X elif $test -f "$src/hints/${osname}.sh" ; then X dflt="${osname}" X else X dflt=none X fi X ;; X esac X ;; X esac X if $test -f Policy.sh ; then X case "$dflt" in X *Policy*) ;; X none) dflt="Policy" ;; X *) dflt="Policy $dflt" ;; X esac X fi X ;; X *) X dflt=`echo $hintfile | $sed 's/\.sh$//'` X ;; X esac X X if $test -f Policy.sh ; then X $cat <> UU/config.sh X elif $test -f $src/hints/$file.sh; then X . $src/hints/$file.sh X $cat $src/hints/$file.sh >> UU/config.sh X elif $test X$tans = X -o X$tans = Xnone ; then X : nothing X else X : Give one chance to correct a possible typo. X echo "$file.sh does not exist" X dflt=$file X rp="hint to use instead?" X . UU/myread X for file in $ans; do X if $test -f "$src/hints/$file.sh"; then X . $src/hints/$file.sh X $cat $src/hints/$file.sh >> UU/config.sh X elif $test X$ans = X -o X$ans = Xnone ; then X : nothing X else X echo "$file.sh does not exist -- ignored." X fi X done X fi X done X X hint=recommended X : Remember our hint file for later. X if $test -f "$src/hints/$file.sh" ; then X hintfile="$file" X else X hintfile='' X fi Xfi Xcd UU X;; X*) X echo " " X echo "Fetching default answers from $config_sh..." >&4 X tmp_n="$n" X tmp_c="$c" X cd .. X cp $config_sh config.sh 2>/dev/null X chmod +w config.sh X . ./config.sh X cd UU X cp ../config.sh . X n="$tmp_n" X c="$tmp_c" X hint=previous X ;; Xesac Xtest "$override" && . ./optdef.sh Xmyuname="$newmyuname" X X: Restore computed paths Xfor file in $loclist $trylist; do X eval $file="\$_$file" Xdone X Xcat << EOM X XConfigure uses the operating system name and version to set some defaults. XThe default value is probably right if the name rings a bell. Otherwise, Xsince spelling matters for me, either accept the default or answer "none" Xto leave it blank. X XEOM Xcase "$osname" in X ''|' ') X case "$hintfile" in X ''|' '|none) dflt=none ;; X *) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/_.*$//'` ;; X esac X ;; X *) dflt="$osname" ;; Xesac Xrp="Operating system name?" X. ./myread Xcase "$ans" in Xnone) osname='' ;; X*) osname=`echo "$ans" | $sed -e 's/[ ][ ]*/_/g' | ./tr '[A-Z]' '[a-z]'`;; Xesac X: who configured the system Xcf_time=`LC_ALL=C; export LC_ALL; $date 2>&1` Xcf_by=`(logname) 2>/dev/null` Xcase "$cf_by" in X"") X cf_by=`(whoami) 2>/dev/null` X case "$cf_by" in X "") cf_by=unknown ;; X esac ;; Xesac X X: is AFS running? Xecho " " Xcase "$afs" in X$define|true) afs=true ;; X$undef|false) afs=false ;; X*) if test -d /afs; then X afs=true X else X afs=false X fi X ;; Xesac Xif $afs; then X echo "AFS may be running... I'll be extra cautious then..." >&4 Xelse X echo "AFS does not seem to be running..." >&4 Xfi X X: determine where manual pages are on this system Xecho " " Xcase "$sysman" in X'') X syspath='/usr/man/man1 /usr/man/mann /usr/man/manl /usr/man/local/man1' X syspath="$syspath /usr/man/u_man/man1 /usr/share/man/man1" X syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1" X syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1" X syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1" X sysman=`./loc . /usr/man/man1 $syspath` X ;; Xesac Xif $test -d "$sysman"; then X echo "System manual is in $sysman." >&4 Xelse X echo "Could not find manual pages in source form." >&4 Xfi X X: decide how portable to be Xcase "$d_portable" in X"$define") dflt=y;; X*) dflt=n;; Xesac X$cat <<'EOH' X XI can set things up so that your shell scripts and binaries are more portable, Xat what may be a noticable cost in performance. In particular, if you Xask to be portable, the following happens: X X 1) Shell scripts will rely on the PATH variable rather than using X the paths derived above. X 2) ~username interpretations will be done at run time rather than X by Configure. X XEOH Xrp="Do you expect to run these scripts and binaries on multiple machines?" X. ./myread Xcase "$ans" in X y*) d_portable="$define" X ;; X *) d_portable="$undef" ;; Xesac X X: set up shell script to do ~ expansion Xcat >filexp <&2 X exit 1 X fi X case "\$1" in X */*) X echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\` X ;; X *) X echo \$dir X ;; X esac X fi X ;; X*) X echo \$1 X ;; Xesac XEOSS Xchmod +x filexp X$eunicefix filexp X X: now set up to get a file name Xcat <getfile X$startsh XEOS Xcat <<'EOSC' >>getfile Xtilde='' Xfullpath='' Xalready='' Xskip='' Xnone_ok='' Xexp_file='' Xnopath_ok='' Xorig_rp="$rp" Xorig_dflt="$dflt" X Xcase "$fn" in X*\(*) X expr $fn : '.*(\(.*\)).*' | tr ',' '\012' >getfile.ok X fn=`echo $fn | sed 's/(.*)//'` X ;; Xesac X Xcase "$fn" in X*:*) X loc_file=`expr $fn : '.*:\(.*\)'` X fn=`expr $fn : '\(.*\):.*'` X ;; Xesac X Xcase "$fn" in X*~*) tilde=true;; Xesac Xcase "$fn" in X*/*) fullpath=true;; Xesac Xcase "$fn" in X*+*) skip=true;; Xesac Xcase "$fn" in X*n*) none_ok=true;; Xesac Xcase "$fn" in X*e*) exp_file=true;; Xesac Xcase "$fn" in X*p*) nopath_ok=true;; Xesac X Xcase "$fn" in X*f*) type='File';; X*d*) type='Directory';; X*l*) type='Locate';; Xesac X Xwhat="$type" Xcase "$what" in XLocate) what='File';; Xesac X Xcase "$exp_file" in X'') X case "$d_portable" in X "$define") ;; X *) exp_file=true;; X esac X ;; Xesac X Xcd .. Xwhile test "$type"; do X redo='' X rp="$orig_rp" X dflt="$orig_dflt" X case "$tilde" in X true) rp="$rp (~name ok)";; X esac X . UU/myread X if test -f UU/getfile.ok && \ X $contains "^$ans\$" UU/getfile.ok >/dev/null 2>&1 X then X value="$ans" X ansexp="$ans" X break X fi X case "$ans" in X none) X value='' X ansexp='' X case "$none_ok" in X true) type='';; X esac X ;; X *) X case "$tilde" in X '') value="$ans" X ansexp="$ans";; X *) X value=`UU/filexp $ans` X case $? in X 0) X if test "$ans" != "$value"; then X echo "(That expands to $value on this system.)" X fi X ;; X *) value="$ans";; X esac X ansexp="$value" X case "$exp_file" in X '') value="$ans";; X esac X ;; X esac X case "$fullpath" in X true) X case "$ansexp" in X /*) value="$ansexp" ;; X *) X redo=true X case "$already" in X true) X echo "I shall only accept a full path name, as in /bin/ls." >&4 X echo "Use a ! shell escape if you wish to check pathnames." >&4 X ;; X *) X echo "Please give a full path name, starting with slash." >&4 X case "$tilde" in X true) X echo "Note that using ~name is ok provided it expands well." >&4 X already=true X ;; X esac X esac X ;; X esac X ;; X esac X case "$redo" in X '') X case "$type" in X File) X if test -f "$ansexp"; then X type='' X elif test -r "$ansexp" || (test -h "$ansexp") >/dev/null 2>&1 X then X echo "($value is not a plain file, but that's ok.)" X type='' X fi X ;; X Directory) X if test -d "$ansexp"; then X type='' X fi X ;; X Locate) X if test -d "$ansexp"; then X echo "(Looking for $loc_file in directory $value.)" X value="$value/$loc_file" X ansexp="$ansexp/$loc_file" X fi X if test -f "$ansexp"; then X type='' X fi X case "$nopath_ok" in X true) case "$value" in X */*) ;; X *) echo "Assuming $value will be in people's path." X type='' X ;; X esac X ;; X esac X ;; X esac X X case "$skip" in X true) type=''; X esac X X case "$type" in X '') ;; X *) X if test "$fastread" = yes; then X dflt=y X else X dflt=n X fi X rp="$what $value doesn't exist. Use that name anyway?" X . UU/myread X dflt='' X case "$ans" in X y*) type='';; X *) echo " ";; X esac X ;; X esac X ;; X esac X ;; X esac Xdone Xcd UU Xans="$value" Xrp="$orig_rp" Xdflt="$orig_dflt" Xrm -f getfile.ok XEOSC X X: determine root of directory hierarchy where package will be installed. Xcase "$prefix" in X'') X dflt=`./loc . /usr/local /usr/local /local /opt /usr` X ;; X*) X dflt="$prefix" X ;; Xesac X$cat <whoa X$startsh XEOS Xcat <<'EOSC' >>whoa Xdflt=y Xecho " " Xecho "*** WHOA THERE!!! ***" >&4 Xecho " The $hint value for \$$var on this machine was \"$was\"!" >&4 Xrp=" Keep the $hint value?" X. ./myread Xcase "$ans" in Xy) td=$was; tu=$was;; Xesac XEOSC X X: function used to set $1 to $val Xsetvar='var=$1; eval "was=\$$1"; td=$define; tu=$undef; Xcase "$val$was" in X$define$undef) . ./whoa; eval "$var=\$td";; X$undef$define) . ./whoa; eval "$var=\$tu";; X*) eval "$var=$val";; Xesac' X X Xset valtemp Xvaltemp="$d_64bit_statfs_flds" Xcase $valtemp in X '') valtemp="$undef" ;; Xesac X Xval=$valtemp Xset d_64bit_statfs_flds Xeval $setvar X: make some quick guesses about what we are up against Xecho " " X$echo $n "Hmm... $c" Xecho exit 1 >bsd Xecho exit 1 >usg Xecho exit 1 >v7 Xecho exit 1 >osf1 Xecho exit 1 >eunice Xecho exit 1 >xenix Xecho exit 1 >venix Xecho exit 1 >os2 Xd_bsd="$undef" X$cat /usr/include/signal.h /usr/include/sys/signal.h >foo 2>/dev/null Xif test -f /osf_boot || $contains 'OSF/1' /usr/include/ctype.h >/dev/null 2>&1 Xthen X echo "Looks kind of like an OSF/1 system, but we'll see..." X echo exit 0 >osf1 Xelif test `echo abc | tr a-z A-Z` = Abc ; then X xxx=`./loc addbib blurfl $pth` X if $test -f $xxx; then X echo "Looks kind of like a USG system with BSD features, but we'll see..." X echo exit 0 >bsd X echo exit 0 >usg X else X if $contains SIGTSTP foo >/dev/null 2>&1 ; then X echo "Looks kind of like an extended USG system, but we'll see..." X else X echo "Looks kind of like a USG system, but we'll see..." X fi X echo exit 0 >usg X fi Xelif $contains SIGTSTP foo >/dev/null 2>&1 ; then X echo "Looks kind of like a BSD system, but we'll see..." X d_bsd="$define" X echo exit 0 >bsd Xelse X echo "Looks kind of like a Version 7 system, but we'll see..." X echo exit 0 >v7 Xfi Xcase "$eunicefix" in X*unixtovms*) X $cat <<'EOI' XThere is, however, a strange, musty smell in the air that reminds me of Xsomething...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit. XEOI X echo exit 0 >eunice X d_eunice="$define" X: it so happens the Eunice I know will not run shell scripts in Unix format X ;; X*) X echo " " X echo "Congratulations. You aren't running Eunice." X d_eunice="$undef" X ;; Xesac X: Detect OS2. The p_ variable is set above in the Head.U unit. Xcase "$p_" in X:) ;; X*) X $cat <<'EOI' XI have the feeling something is not exactly right, however...don't tell me... Xlemme think...does HAL ring a bell?...no, of course, you're only running OS/2! XEOI X echo exit 0 >os2 X ;; Xesac Xif test -f /xenix; then X echo "Actually, this looks more like a XENIX system..." X echo exit 0 >xenix X d_xenix="$define" Xelse X echo " " X echo "It's not Xenix..." X d_xenix="$undef" Xfi Xchmod +x xenix X$eunicefix xenix Xif test -f /venix; then X echo "Actually, this looks more like a VENIX system..." X echo exit 0 >venix Xelse X echo " " X if ./xenix; then X : null X else X echo "Nor is it Venix..." X fi Xfi Xchmod +x bsd usg v7 osf1 eunice xenix venix os2 X$eunicefix bsd usg v7 osf1 eunice xenix venix os2 X$rm -f foo X X: see if we need a special compiler Xecho " " Xif ./usg; then X case "$cc" in X '') case "$Mcc" in X /*) dflt='Mcc';; X *) case "$large" in X -M*) dflt='cc';; X *) if $contains '\-M' $sysman/cc.1 >/dev/null 2>&1 ; then X if $contains '\-M' $sysman/cpp.1 >/dev/null 2>&1; then X dflt='cc' X else X dflt='cc -M' X fi X else X dflt='cc' X fi;; X esac;; X esac;; X *) dflt="$cc";; X esac X case "$dflt" in X *M*) $cat <<'EOM' XOn some older systems the default C compiler will not resolve multiple global Xreferences that happen to have the same name. On some such systems the "Mcc" Xcommand may be used to force these to be resolved. On other systems a "cc -M" Xcommand is required. (Note that the -M flag on other systems indicates a Xmemory model to use!) If you have the Gnu C compiler, you might wish to use Xthat instead. X XEOM X ;; X esac X rp="Use which C compiler?" X . ./myread X cc="$ans" Xelse X case "$cc" in X '') dflt=cc;; X *) dflt="$cc";; X esac X rp="Use which C compiler?" X . ./myread X cc="$ans" Xfi X: Look for a hint-file generated 'call-back-unit'. Now that the X: user has specified the compiler, we may need to set or change some X: other defaults. Xif $test -f cc.cbu; then X . ./cc.cbu Xfi Xecho " " Xecho "Checking for GNU cc in disguise and/or its version number..." >&4 X$cat >gccvers.c < Xint main() { X#ifdef __GNUC__ X#ifdef __VERSION__ X printf("%s\n", __VERSION__); X#else X printf("%s\n", "1"); X#endif X#endif X exit(0); X} XEOM Xif $cc -o gccvers gccvers.c >/dev/null 2>&1; then X gccversion=`./gccvers` X case "$gccversion" in X '') echo "You are not using GNU cc." ;; X *) echo "You are using GNU cc $gccversion." ;; X esac Xelse X echo " " X echo "*** WHOA THERE!!! ***" >&4 X echo " Your C compiler \"$cc\" doesn't seem to be working!" >&4 X case "$knowitall" in X '') X echo " You'd better start hunting for one and let me know about it." >&4 X exit 1 X ;; X esac Xfi X$rm -f gccvers* Xcase "$gccversion" in X1*) cpp=`./loc gcc-cpp $cpp $pth` ;; Xesac X X: What should the include directory be ? Xecho " " X$echo $n "Hmm... $c" Xdflt='/usr/include' Xincpath='' Xmips_type='' Xif $test -f /bin/mips && /bin/mips; then X echo "Looks like a MIPS system..." X $cat >usr.c <<'EOCP' X#ifdef SYSTYPE_BSD43 X/bsd43 X#endif XEOCP X if $cc -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then X dflt='/bsd43/usr/include' X incpath='/bsd43' X mips_type='BSD 4.3' X else X mips_type='System V' X fi X $rm -f usr.c usr.out X echo "and you're compiling with the $mips_type compiler and libraries." X xxx_prompt=y X echo "exit 0" >mips Xelse X echo "Doesn't look like a MIPS system." X xxx_prompt=n X echo "exit 1" >mips Xfi Xchmod +x mips X$eunicefix mips Xcase "$usrinc" in X'') ;; X*) dflt="$usrinc";; Xesac Xcase "$xxx_prompt" in Xy) fn=d/ X echo " " X rp='Where are the include files you want to use?' X . ./getfile X usrinc="$ans" X ;; X*) usrinc="$dflt" X ;; Xesac X X: Set private lib path Xcase "$plibpth" in X'') if ./mips; then X plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib" X fi;; Xesac Xcase "$libpth" in X' ') dlist='';; X'') dlist="$loclibpth $plibpth $glibpth";; X*) dlist="$libpth";; Xesac X X: Now check and see which directories actually exist, avoiding duplicates Xlibpth='' Xfor xxx in $dlist Xdo X if $test -d $xxx; then X case " $libpth " in X *" $xxx "*) ;; X *) libpth="$libpth $xxx";; X esac X fi Xdone X$cat <<'EOM' X XSome systems have incompatible or broken versions of libraries. Among Xthe directories listed in the question below, please remove any you Xknow not to be holding relevant libraries, and add any that are needed. XSay "none" for none. X XEOM Xcase "$libpth" in X'') dflt='none';; X*) X set X $libpth X shift X dflt=${1+"$@"} X ;; Xesac Xrp="Directories to use for library searches?" X. ./myread Xcase "$ans" in Xnone) libpth=' ';; X*) libpth="$ans";; Xesac X X: compute shared library extension Xcase "$so" in X'') X if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then X dflt='sl' X else X dflt='so' X fi X ;; X*) dflt="$so";; Xesac X$cat <&4 Xcase "$libs" in X' '|'') dflt='';; X*) dflt="$libs";; Xesac Xcase "$libswanted" in X'') libswanted='c_s';; Xesac Xfor thislib in $libswanted; do X X if xxx=`./loc lib$thislib.$so.[0-9]'*' X $libpth`; $test -f "$xxx"; then X echo "Found -l$thislib (shared)." X case " $dflt " in X *"-l$thislib "*);; X *) dflt="$dflt -l$thislib";; X esac X elif xxx=`./loc lib$thislib.$so X $libpth` ; $test -f "$xxx"; then X echo "Found -l$thislib (shared)." X case " $dflt " in X *"-l$thislib "*);; X *) dflt="$dflt -l$thislib";; X esac X elif xxx=`./loc lib$thislib$_a X $libpth`; $test -f "$xxx"; then X echo "Found -l$thislib." X case " $dflt " in X *"-l$thislib "*);; X *) dflt="$dflt -l$thislib";; X esac X elif xxx=`./loc $thislib$_a X $libpth`; $test -f "$xxx"; then X echo "Found -l$thislib." X case " $dflt " in X *"-l$thislib "*);; X *) dflt="$dflt -l$thislib";; X esac X elif xxx=`./loc lib${thislib}_s$_a X $libpth`; $test -f "$xxx"; then X echo "Found -l${thislib}_s." X case " $dflt " in X *"-l$thislib "*);; X *) dflt="$dflt -l${thislib}_s";; X esac X elif xxx=`./loc Slib$thislib$_a X $xlibpth`; $test -f "$xxx"; then X echo "Found -l$thislib." X case " $dflt " in X *"-l$thislib "*);; X *) dflt="$dflt -l$thislib";; X esac X else X echo "No -l$thislib." X fi Xdone Xset X $dflt Xshift Xdflt="$*" Xcase "$libs" in X'') dflt="$dflt";; X*) dflt="$libs";; Xesac Xcase "$dflt" in X' '|'') dflt='none';; Xesac X X$cat <&4 Xcat <<'EOT' >testcpp.c X#define ABC abc X#define XYZ xyz XABC.XYZ XEOT Xcd .. Xecho 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin Xchmod 755 cppstdin Xwrapper=`pwd`/cppstdin Xok='false' Xcd UU X Xif $test "X$cppstdin" != "X" && \ X $cppstdin $cppminus testcpp.out 2>&1 && \ X $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 Xthen X echo "You used to use $cppstdin $cppminus so we'll use that again." X case "$cpprun" in X '') echo "But let's see if we can live without a wrapper..." ;; X *) X if $cpprun $cpplast testcpp.out 2>&1 && \ X $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 X then X echo "(And we'll use $cpprun $cpplast to preprocess directly.)" X ok='true' X else X echo "(However, $cpprun $cpplast does not work, let's see...)" X fi X ;; X esac Xelse X case "$cppstdin" in X '') ;; X *) X echo "Good old $cppstdin $cppminus does not seem to be of any help..." X ;; X esac Xfi X Xif $ok; then X : nothing Xelif echo 'Maybe "'"$cc"' -E" will work...'; \ X $cc -E testcpp.out 2>&1; \ X $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then X echo "Yup, it does." X x_cpp="$cc -E" X x_minus=''; Xelif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \ X $cc -E - testcpp.out 2>&1; \ X $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then X echo "Yup, it does." X x_cpp="$cc -E" X x_minus='-'; Xelif echo 'Nope...maybe "'"$cc"' -P" will work...'; \ X $cc -P testcpp.out 2>&1; \ X $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then X echo "Yipee, that works!" X x_cpp="$cc -P" X x_minus=''; Xelif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \ X $cc -P - testcpp.out 2>&1; \ X $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then X echo "At long last!" X x_cpp="$cc -P" X x_minus='-'; Xelif echo 'No such luck, maybe "'$cpp'" will work...'; \ X $cpp testcpp.out 2>&1; \ X $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then X echo "It works!" X x_cpp="$cpp" X x_minus=''; Xelif echo 'Nixed again...maybe "'$cpp' -" will work...'; \ X $cpp - testcpp.out 2>&1; \ X $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then X echo "Hooray, it works! I was beginning to wonder." X x_cpp="$cpp" X x_minus='-'; Xelif echo 'Uh-uh. Time to get fancy. Trying a wrapper...'; \ X $wrapper testcpp.out 2>&1; \ X $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then X x_cpp="$wrapper" X x_minus='' X echo "Eureka!" Xelse X dflt='' X rp="No dice. I can't find a C preprocessor. Name one:" X . ./myread X x_cpp="$ans" X x_minus='' X $x_cpp testcpp.out 2>&1 X if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then X echo "OK, that will do." >&4 X else Xecho "Sorry, I can't get that to work. Go find one and rerun Configure." >&4 X exit 1 X fi Xfi X Xcase "$ok" in Xfalse) X cppstdin="$x_cpp" X cppminus="$x_minus" X cpprun="$x_cpp" X cpplast="$x_minus" X set X $x_cpp X shift X case "$1" in X "$cpp") X echo "Perhaps can we force $cc -E using a wrapper..." X if $wrapper testcpp.out 2>&1; \ X $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 X then X echo "Yup, we can." X cppstdin="$wrapper" X cppminus=''; X else X echo "Nope, we'll have to live without it..." X fi X ;; X esac X case "$cpprun" in X "$wrapper") X cpprun='' X cpplast='' X ;; X esac X ;; Xesac X Xcase "$cppstdin" in X"$wrapper") ;; X*) $rm -f $wrapper;; Xesac X$rm -f testcpp.c testcpp.out X X: determine optimize, if desired, or use for debug flag also Xcase "$optimize" in X' '|$undef) dflt='none';; X'') dflt='-O';; X*) dflt="$optimize";; Xesac X$cat </dev/null 2>&1 X then X dflt="$dflt -posix" X fi X ;; X esac X ;; Xesac X Xcase "$mips_type" in X*BSD*|'') inclwanted="$locincpth $usrinc";; X*) inclwanted="$locincpth $inclwanted $usrinc/bsd";; Xesac Xfor thisincl in $inclwanted; do X if $test -d $thisincl; then X if $test x$thisincl != x$usrinc; then X case "$dflt" in X *$thisincl*);; X *) dflt="$dflt -I$thisincl";; X esac X fi X fi Xdone X Xinctest='if $contains $2 $usrinc/$1 >/dev/null 2>&1; then X xxx=true; Xelif $contains $2 $usrinc/sys/$1 >/dev/null 2>&1; then X xxx=true; Xelse X xxx=false; Xfi; Xif $xxx; then X case "$dflt" in X *$2*);; X *) dflt="$dflt -D$2";; X esac; Xfi' X Xif ./osf1; then X set signal.h __LANGUAGE_C__; eval $inctest Xelse X set signal.h LANGUAGE_C; eval $inctest Xfi X Xcase "$hint" in Xnone|recommended) dflt="$ccflags $dflt" ;; X*) dflt="$ccflags";; Xesac X Xcase "$dflt" in X''|' ') dflt=none;; Xesac X$cat <&4 X set X $cppflags X shift X cppflags='' X $cat >cpp.c <<'EOM' X#define BLURFL foo X XBLURFL xx LFRULB XEOM X previous='' X for flag in $* X do X case "$flag" in X -*) ftry="$flag";; X *) ftry="$previous $flag";; X esac X if $cppstdin -DLFRULB=bar $cppflags $ftry $cppminus cpp1.out 2>/dev/null && \ X $cpprun -DLFRULB=bar $cppflags $ftry $cpplast cpp2.out 2>/dev/null && \ X $contains 'foo.*xx.*bar' cpp1.out >/dev/null 2>&1 && \ X $contains 'foo.*xx.*bar' cpp2.out >/dev/null 2>&1 X then X cppflags="$cppflags $ftry" X previous='' X else X previous="$flag" X fi X done X set X $cppflags X shift X cppflags=${1+"$@"} X case "$cppflags" in X *-*) echo "They appear to be: $cppflags";; X esac X $rm -f cpp.c cpp?.out X ;; Xesac X X: flags used in final linking phase Xcase "$ldflags" in X'') if ./venix; then X dflt='-i -z' X else X dflt='' X fi X case "$ccflags" in X *-posix*) dflt="$dflt -posix" ;; X esac X ;; X*) dflt="$ldflags";; Xesac X X: Try to guess additional flags to pick up local libraries. Xfor thislibdir in $libpth; do X case " $loclibpth " in X *" $thislibdir "*) X case "$dflt " in X *"-L$thislibdir "*) ;; X *) dflt="$dflt -L$thislibdir" ;; X esac X ;; X esac Xdone X Xcase "$dflt" in X'') dflt='none' ;; Xesac X X$cat <&4 Xset X $cc $optimize $ccflags $ldflags -o try try.c $libs Xshift X$cat >try.msg < try.c <<'EOF' X#include Xmain() { printf("Ok\n"); exit(0); } XEOF Xdflt=y Xif sh -c "$cc $optimize $ccflags $ldflags -o try try.c $libs" >>try.msg 2>&1; then X if sh -c './try' >>try.msg 2>&1; then X xxx=`./try` X case "$xxx" in X "Ok") dflt=n ;; X *) echo 'The program compiled OK, but produced no output.' >> try.msg X case " $libs " in X *" -lsfio "*) X cat >> try.msg <<'EOQS' XIf $libs contains -lsfio, and sfio is mis-configured, then it Xsometimes (apparently) runs and exits with a 0 status, but with no Xoutput! It may have to do with sfio's use of _exit vs. exit. X XEOQS X rp="You have a big problem. Shall I abort Configure" X dflt=y X ;; X esac X ;; X esac X else X echo "The program compiled OK, but exited with status $?." >>try.msg X rp="You have a problem. Shall I abort Configure" X dflt=y X fi Xelse X echo "I can't compile the test program." >>try.msg X rp="You have a BIG problem. Shall I abort Configure" X dflt=y Xfi Xcase "$dflt" in Xy) X $cat try.msg >&4 X case "$knowitall" in X '') X echo "(The supplied flags might be incorrect with this C compiler.)" X ;; X *) dflt=n;; X esac X echo " " X . ./myread X case "$ans" in X n*|N*) ;; X *) echo "Ok. Stopping Configure." >&4 X exit 1 X ;; X esac X ;; Xn) echo "OK, that should do.";; Xesac X$rm -f try try.* core X X: define a shorthand compile call Xcompile=' Xmc_file=$1; Xshift; X$cc $optimize $ccflags $ldflags -o ${mc_file} $* ${mc_file}.c $libs > /dev/null 2>&1;' X: define a shorthand compile call for compilations that should be ok. Xcompile_ok=' Xmc_file=$1; Xshift; X$cc $optimize $ccflags $ldflags -o ${mc_file} $* ${mc_file}.c $libs;' X Xecho " " Xecho "Checking for GNU C Library..." >&4 Xcat >gnulibc.c < Xint Xmain() X{ X#ifdef __GLIBC__ X exit(0); X#else X exit(1); X#endif X} XEOM Xset gnulibc Xif eval $compile_ok && ./gnulibc; then X val="$define" X echo "You are using the GNU C Library" Xelse X val="$undef" X echo "You are not using the GNU C Library" Xfi X$rm -f gnulibc* Xset d_gnulibc Xeval $setvar X X: see if nm is to be used to determine whether a symbol is defined or not Xcase "$usenm" in X'') X dflt='' X case "$d_gnulibc" in X "$define") X echo " " X echo "nm probably won't work on the GNU C Library." >&4 X dflt=n X ;; X esac X case "$dflt" in X '') X if $test "$osname" = aix -a ! -f /lib/syscalls.exp; then X echo " " X echo "Whoops! This is an AIX system without /lib/syscalls.exp!" >&4 X echo "'nm' won't be sufficient on this sytem." >&4 X dflt=n X fi X ;; X esac X case "$dflt" in X '') dflt=`$egrep 'inlibc|csym' $rsrc/Configure | wc -l 2>/dev/null` X if $test $dflt -gt 20; then X dflt=y X else X dflt=n X fi X ;; X esac X ;; X*) X case "$usenm" in X true|$define) dflt=y;; X *) dflt=n;; X esac X ;; Xesac X$cat < /dev/null 2>&1; then X nm_so_opt='--dynamic' X fi X ;; X esac X ;; Xesac X Xcase "$runnm" in Xtrue) X: get list of predefined functions in a handy place Xecho " " Xcase "$libc" in X'') libc=unknown X case "$libs" in X *-lc_s*) libc=`./loc libc_s$_a $libc $libpth` X esac X ;; Xesac Xlibnames=''; Xcase "$libs" in X'') ;; X*) for thislib in $libs; do X case "$thislib" in X -lc|-lc_s) X : Handle C library specially below. X ;; X -l*) X thislib=`echo $thislib | $sed -e 's/^-l//'` X if try=`./loc lib$thislib.$so.'*' X $libpth`; $test -f "$try"; then X : X elif try=`./loc lib$thislib.$so X $libpth`; $test -f "$try"; then X : X elif try=`./loc lib$thislib$_a X $libpth`; $test -f "$try"; then X : X elif try=`./loc $thislib$_a X $libpth`; $test -f "$try"; then X : X elif try=`./loc lib$thislib X $libpth`; $test -f "$try"; then X : X elif try=`./loc $thislib X $libpth`; $test -f "$try"; then X : X elif try=`./loc Slib$thislib$_a X $xlibpth`; $test -f "$try"; then X : X else X try='' X fi X libnames="$libnames $try" X ;; X *) libnames="$libnames $thislib" ;; X esac X done X ;; Xesac Xxxx=normal Xcase "$libc" in Xunknown) X set /lib/libc.$so X for xxx in $libpth; do X $test -r $1 || set $xxx/libc.$so X : The messy sed command sorts on library version numbers. X $test -r $1 || \ X set `echo blurfl; echo $xxx/libc.$so.[0-9]* | \ X tr ' ' '\012' | egrep -v '\.[A-Za-z]*$' | $sed -e ' X h X s/[0-9][0-9]*/0000&/g X s/0*\([0-9][0-9][0-9][0-9][0-9]\)/\1/g X G X s/\n/ /' | \ X sort | $sed -e 's/^.* //'` X eval set \$$# X done X $test -r $1 || set /usr/ccs/lib/libc.$so X $test -r $1 || set /lib/libsys_s$_a X ;; X*) X set blurfl X ;; Xesac Xif $test -r "$1"; then X echo "Your (shared) C library seems to be in $1." X libc="$1" Xelif $test -r /lib/libc && $test -r /lib/clib; then X echo "Your C library seems to be in both /lib/clib and /lib/libc." X xxx=apollo X libc='/lib/clib /lib/libc' X if $test -r /lib/syslib; then X echo "(Your math library is in /lib/syslib.)" X libc="$libc /lib/syslib" X fi Xelif $test -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then X echo "Your C library seems to be in $libc, as you said before." Xelif $test -r $incpath/usr/lib/libc$_a; then X libc=$incpath/usr/lib/libc$_a; X echo "Your C library seems to be in $libc. That's fine." Xelif $test -r /lib/libc$_a; then X libc=/lib/libc$_a; X echo "Your C library seems to be in $libc. You're normal." Xelse X if tans=`./loc libc$_a blurfl/dyick $libpth`; $test -r "$tans"; then X : X elif tans=`./loc libc blurfl/dyick $libpth`; $test -r "$tans"; then X libnames="$libnames "`./loc clib blurfl/dyick $libpth` X elif tans=`./loc clib blurfl/dyick $libpth`; $test -r "$tans"; then X : X elif tans=`./loc Slibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then X : X elif tans=`./loc Mlibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then X : X else X tans=`./loc Llibc$_a blurfl/dyick $xlibpth` X fi X if $test -r "$tans"; then X echo "Your C library seems to be in $tans, of all places." X libc=$tans X else X libc='blurfl' X fi Xfi Xif $test $xxx = apollo -o -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then X dflt="$libc" X cat < libpath X cat >&4 < libnames Xset X `cat libnames` Xshift Xxxx=files Xcase $# in 1) xxx=file; esac Xecho "Extracting names from the following $xxx for later perusal:" >&4 Xecho " " X$sed 's/^/ /' libnames >&4 Xecho " " X$echo $n "This may take a while...$c" >&4 X Xfor file in $*; do X case $file in X *$so*) $nm $nm_so_opt $nm_opt $file 2>/dev/null;; X *) $nm $nm_opt $file 2>/dev/null;; X esac Xdone >libc.tmp X X$echo $n ".$c" X$grep fprintf libc.tmp > libc.ptf Xxscan='eval "libc.list"; $echo $n ".$c" >&4' Xxrun='eval "libc.list"; echo "done" >&4' Xxxx='[ADTSIW]' Xif com="$sed -n -e 's/__IO//' -e 's/^.* $xxx *_[_.]*//p' -e 's/^.* $xxx *//p'";\ X eval $xscan;\ X $contains '^fprintf$' libc.list >/dev/null 2>&1; then X eval $xrun Xelif com="$sed -n -e 's/^__*//' -e 's/^\([a-zA-Z_0-9$]*\).*xtern.*/\1/p'";\ X eval $xscan;\ X $contains '^fprintf$' libc.list >/dev/null 2>&1; then X eval $xrun Xelif com="$sed -n -e '/|UNDEF/d' -e '/FUNC..GL/s/^.*|__*//p'";\ X eval $xscan;\ X $contains '^fprintf$' libc.list >/dev/null 2>&1; then X eval $xrun Xelif com="$sed -n -e 's/^.* D __*//p' -e 's/^.* D //p'";\ X eval $xscan;\ X $contains '^fprintf$' libc.list >/dev/null 2>&1; then X eval $xrun Xelif com="$sed -n -e 's/^_//' -e 's/^\([a-zA-Z_0-9]*\).*xtern.*text.*/\1/p'";\ X eval $xscan;\ X $contains '^fprintf$' libc.list >/dev/null 2>&1; then X eval $xrun Xelif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p'";\ X eval $xscan;\ X $contains '^fprintf$' libc.list >/dev/null 2>&1; then X eval $xrun Xelif com="$grep '|' | $sed -n -e '/|COMMON/d' -e '/|DATA/d' \ X -e '/ file/d' -e 's/^\([^ ]*\).*/\1/p'";\ X eval $xscan;\ X $contains '^fprintf$' libc.list >/dev/null 2>&1; then X eval $xrun Xelif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p' -e 's/^.*|FUNC |WEAK .*|//p'";\ X eval $xscan;\ X $contains '^fprintf$' libc.list >/dev/null 2>&1; then X eval $xrun Xelif com="$sed -n -e 's/^__//' -e '/|Undef/d' -e '/|Proc/s/ .*//p'";\ X eval $xscan;\ X $contains '^fprintf$' libc.list >/dev/null 2>&1; then X eval $xrun Xelif com="$sed -n -e 's/^.*|Proc .*|Text *| *//p'";\ X eval $xscan;\ X $contains '^fprintf$' libc.list >/dev/null 2>&1; then X eval $xrun Xelif com="$sed -n -e '/Def. Text/s/.* \([^ ]*\)\$/\1/p'";\ X eval $xscan;\ X $contains '^fprintf$' libc.list >/dev/null 2>&1; then X eval $xrun Xelif com="$sed -n -e 's/^[-0-9a-f ]*_\(.*\)=.*/\1/p'";\ X eval $xscan;\ X $contains '^fprintf$' libc.list >/dev/null 2>&1; then X eval $xrun Xelif com="$sed -n -e 's/.*\.text n\ \ \ \.//p'";\ X eval $xscan;\ X $contains '^fprintf$' libc.list >/dev/null 2>&1; then X eval $xrun Xelse X $nm -p $* 2>/dev/null >libc.tmp X $grep fprintf libc.tmp > libc.ptf X if com="$sed -n -e 's/^.* [ADTSIW] *_[_.]*//p' -e 's/^.* [ADTSIW] //p'";\ X eval $xscan; $contains '^fprintf$' libc.list >/dev/null 2>&1 X then X nm_opt='-p' X eval $xrun X else X echo " " X echo "$nm didn't seem to work right. Trying $ar instead..." >&4 X com='' X if $ar t $libc > libc.tmp && $contains '^fprintf$' libc.tmp >/dev/null 2>&1; then X for thisname in $libnames $libc; do X $ar t $thisname >>libc.tmp X done X $sed -e "s/\\$_o\$//" < libc.tmp > libc.list X echo "Ok." >&4 X elif test "X$osname" = "Xos2" && $ar tv $libc > libc.tmp; then X # Repeat libc to extract forwarders to DLL entries too X for thisname in $libnames $libc; do X $ar tv $thisname >>libc.tmp X # Revision 50 of EMX has bug in $ar. X # it will not extract forwarders to DLL entries X # Use emximp which will extract exactly them. X emximp -o tmp.imp $thisname \ X 2>/dev/null && \ X $sed -e 's/^\([_a-zA-Z0-9]*\) .*$/\1/p' \ X < tmp.imp >>libc.tmp X $rm tmp.imp X done X $sed -e "s/\\$_o\$//" -e 's/^ \+//' < libc.tmp > libc.list X echo "Ok." >&4 X else X echo "$ar didn't seem to work right." >&4 X echo "Maybe this is a Cray...trying bld instead..." >&4 X if bld t $libc | $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" > libc.list X then X for thisname in $libnames; do X bld t $libnames | \ X $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" >>libc.list X $ar t $thisname >>libc.tmp X done X echo "Ok." >&4 X else X echo "That didn't work either. Giving up." >&4 X exit 1 X fi X fi X fi Xfi Xnm_extract="$com" Xif $test -f /lib/syscalls.exp; then X echo " " X echo "Also extracting names from /lib/syscalls.exp for good ole AIX..." >&4 X $sed -n 's/^\([^ ]*\)[ ]*syscall$/\1/p' /lib/syscalls.exp >>libc.list Xfi X;; Xesac X$rm -f libnames libpath X X: is a C symbol defined? Xcsym='tlook=$1; Xcase "$3" in X-v) tf=libc.tmp; tc=""; tdc="";; X-a) tf=libc.tmp; tc="[0]"; tdc="[]";; X*) tlook="^$1\$"; tf=libc.list; tc="()"; tdc="()";; Xesac; Xtx=yes; Xcase "$reuseval-$4" in Xtrue-) ;; Xtrue-*) tx=no; eval "tval=\$$4"; case "$tval" in "") tx=yes;; esac;; Xesac; Xcase "$tx" in Xyes) X case "$runnm" in X true) X if $contains $tlook $tf >/dev/null 2>&1; X then tval=true; X else tval=false; X fi;; X *) X echo "main() { extern short $1$tdc; printf(\"%hd\", $1$tc); }" > t.c; X if $cc $optimize $ccflags $ldflags -o t t.c $libs >/dev/null 2>&1; X then tval=true; X else tval=false; X fi; X $rm -f t t.c;; X esac;; X*) X case "$tval" in X $define) tval=true;; X *) tval=false;; X esac;; Xesac; Xeval "$2=$tval"' X X: define an is-in-libc? function Xinlibc='echo " "; td=$define; tu=$undef; Xsym=$1; var=$2; eval "was=\$$2"; Xtx=yes; Xcase "$reuseval$was" in Xtrue) ;; Xtrue*) tx=no;; Xesac; Xcase "$tx" in Xyes) X set $sym tres -f; X eval $csym; X case "$tres" in X true) X echo "$sym() found." >&4; X case "$was" in $undef) . ./whoa; esac; eval "$var=\$td";; X *) X echo "$sym() NOT found." >&4; X case "$was" in $define) . ./whoa; esac; eval "$var=\$tu";; X esac;; X*) X case "$was" in X $define) echo "$sym() found." >&4;; X *) echo "$sym() NOT found." >&4;; X esac;; Xesac' X X: see if bcopy exists Xset bcopy d_bcopy Xeval $inlibc X X: see if bzero exists Xset bzero d_bzero Xeval $inlibc X X: see if endmntent exists Xset endmntent d_endmntent Xeval $inlibc X X: see if fs_info exists Xset fs_info d_fs_info Xeval $inlibc X X: see if getmnt exists Xset getmnt d_getmnt Xeval $inlibc X X: see if getmntent exists Xset getmntent d_getmntent Xeval $inlibc X X: see if getmntinfo exists Xset getmntinfo d_getmntinfo Xeval $inlibc X: determine filename position in cpp output Xecho " " Xecho "Computing filename position in cpp output for #include directives..." >&4 Xecho '#include ' > foo.c X$cat >fieldn </dev/null | \ X$grep '^[ ]*#.*stdio\.h' | \ Xwhile read cline; do X pos=1 X set \$cline X while $test \$# -gt 0; do X if $test -r \`echo \$1 | $tr -d '"'\`; then X echo "\$pos" X exit 0 X fi X shift X pos=\`expr \$pos + 1\` X done Xdone XEOF Xchmod +x fieldn Xfieldn=`./fieldn` X$rm -f foo.c fieldn Xcase $fieldn in X'') pos='???';; X1) pos=first;; X2) pos=second;; X3) pos=third;; X*) pos="${fieldn}th";; Xesac Xecho "Your cpp writes the filename in the $pos field of the line." X X: locate header file X$cat >findhdr <" > foo\$\$.c X$cppstdin $cppminus $cppflags < foo\$\$.c 2>/dev/null | \ X$grep "^[ ]*#.*\$wanted" | \ Xwhile read cline; do X name=\`echo \$cline | $awk "\$awkprg" | $tr -d '"'\` X case "\$name" in X */\$wanted) echo "\$name"; exit 0;; X *) name='';; X esac; Xdone; X$rm -f foo\$\$.c; Xcase "\$name" in X'') exit 1;; Xesac XEOF Xchmod +x findhdr X X: define an alternate in-header-list? function Xinhdr='echo " "; td=$define; tu=$undef; yyy=$@; Xcont=true; xxf="echo \"<\$1> found.\" >&4"; Xcase $# in 2) xxnf="echo \"<\$1> NOT found.\" >&4";; X*) xxnf="echo \"<\$1> NOT found, ...\" >&4";; Xesac; Xcase $# in 4) instead=instead;; *) instead="at last";; esac; Xwhile $test "$cont"; do X xxx=`./findhdr $1` X var=$2; eval "was=\$$2"; X if $test "$xxx" && $test -r "$xxx"; X then eval $xxf; X eval "case \"\$$var\" in $undef) . ./whoa; esac"; eval "$var=\$td"; X cont=""; X else eval $xxnf; X eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; fi; X set $yyy; shift; shift; yyy=$@; X case $# in 0) cont="";; X 2) xxf="echo \"but I found <\$1> $instead.\" >&4"; X xxnf="echo \"and I did not find <\$1> either.\" >&4";; X *) xxf="echo \"but I found <\$1\> instead.\" >&4"; X xxnf="echo \"there is no <\$1>, ...\" >&4";; X esac; Xdone; Xwhile $test "$yyy"; Xdo set $yyy; var=$2; eval "was=\$$2"; X eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; X set $yyy; shift; shift; yyy=$@; Xdone' X X: see if this is a sys/mount.h system Xset sys/mount.h i_sysmount Xeval $inhdr X Xset xxx valfstype valbsize valfsize Xvalfstype="$d_getmntinfofstype" Xvalbsize="$d_getmntinfobsize" Xvalfsize="$d_getmntinfofsize" X Xcase $valfstype in X '') valfstype="$undef" ;; Xesac Xcase $valbsize in X '') valbsize="$undef" ;; Xesac Xcase $valfsize in X '') valfsize="$undef" ;; Xesac X Xxxx=`./findhdr sys/mount.h` Xif $test -f "$xxx";then X $cppstdin $cppflags $cppminus < $xxx >$$.h X : f_fsize is always more preferable. changed from bsize 17 dec 99 X if $contains "[^a-zA-Z_]f_fsize[^a-zA-Z_]*;" $$.h > /dev/null 2>&1 X then X valfsize="$define" X else X if $contains "[^a-zA-Z_]f_bsize[^a-zA-Z_]*;" $$.h > /dev/null 2>&1 X then X valbsize="$define" X fi X fi X if $contains "[^a-zA-Z_]f_fstypename[^a-zA-Z_]*;" $$.h > /dev/null 2>&1 X then X valfstype="$define" X fi Xfi X Xval=$valfstype Xset d_getmntinfofstype Xeval $setvar Xval=$valbsize Xset d_getmntinfobsize Xeval $setvar Xval=$valfsize Xset d_getmntinfofsize Xeval $setvar X X$rm -f $$.h > /dev/null 2>&1 Xunset xxx valfstype valbsize valfsize X: see if memcpy exists Xset memcpy d_memcpy Xeval $inlibc X X: see if memset exists Xset memset d_memset Xeval $inlibc X X: see if mntctl exists Xset mntctl d_mntctl Xeval $inlibc X X Xset x xxx valmtime Xvalmtime="$d_mnttime" X Xcase $valmtime in X '') valmtime="$undef" ;; Xesac X Xxxx=`./findhdr sys/mnttab.h` Xxxx="$xxx `./findhdr sys/mntctl.h`" Xfor x in $xxx Xdo X if $test -f "$x";then X $cppstdin $cppflags $cppminus < $x >$$.h X if $contains "[^a-zA-Z_]mnt_time[^a-zA-Z_]*;" $$.h > /dev/null 2>&1 X then X valmtime="$define" X fi X if $contains "[^a-zA-Z_]vmt_time[^a-zA-Z_]*;" $$.h > /dev/null 2>&1 X then X valmtime="$define" X fi X fi Xdone X Xval=$valmtime Xset d_mnttime Xeval $setvar X X$rm -f $$.h > /dev/null 2>&1 Xunset x xxx valmtime X X: see if stdlib is available Xset stdlib.h i_stdlib Xeval $inhdr X X: see if this is a unistd.h system Xset unistd.h i_unistd Xeval $inhdr X X: see if getopt exists Xset getopt d_getopt Xeval $inlibc X Xif $test $i_stdlib = "$define" ; then X x1="#include " Xfi Xif $test $i_unistd = "$define" ; then X x2="#include " Xfi X X$echo "#include " > gotest.c X$echo "$x1" >> gotest.c X$echo "$x2" >> gotest.c X$cat >>gotest.c <<'EOF' X Xmain() { optind; optarg; } X XEOF X Xif $cc $ccflags $ldflags gotest.c -o gotest $libs >/dev/null 2>&1; then X val="$define" X $echo "optind is defined in stdio.h, stdlib.h or unistd.h." Xelse X val="$undef" X $echo "optind is not defined in stdio.h, stdlib.h or unistd.h." Xfi X Xset d_optind Xeval $setvar X X$rm -f gotest gotest.c > /dev/null 2>&1 X: see if setmntent exists Xset setmntent d_setmntent Xeval $inlibc X Xset x xxx valtemp Xvaltemp="$d_setmntent_one_arg" Xcase $valtemp in X '') valtemp="$undef" ;; Xesac X Xcase "$d_setmntent" in X "$define") X : We will try the easy way first... X : This only works if there are prototypes. X : And hope the dual universe machines dont define both! X xxx="`./findhdr mntent.h`" X xxx="$xxx `./findhdr sys/mount.h`" X for x in $xxx X do X if $test -f "$x"; then X $cppstdin $cppflags $cppminus < $x >smtest.h X if $contains '[^a-zA-Z_]setmntent.*([^),]+)' smtest.h > /dev/null 2>&1 X then X valtemp="$define" X $echo 'You appear to have a single argument setmntent().' X fi X fi X done X X $rm -f smtest.h > /dev/null 2>&1 X ;; Xesac X Xval=$valtemp Xset d_setmntent_one_arg Xeval $setvar Xunset x xxx valtemp X X: see if this is a sys/statfs.h system Xset sys/statfs.h i_sysstatfs Xeval $inhdr X Xset xxx valfrsize Xvalfrsize="$d_statfs_frsize" Xcase $valfrsize in X '') valfrsize="$undef" ;; Xesac X Xxxx=`./findhdr sys/statfs.h` Xif $test -f "$xxx";then X $cppstdin $cppflags $cppminus < $xxx >sftemp.h X if $contains "[^a-zA-Z_]f_frsize[^a-zA-Z_]*;" sftemp.h > /dev/null 2>&1 X then X valfrsize="$define" X fi Xfi X Xval=$valfrsize Xset d_statfs_frsize Xeval $setvar X X$rm -f sftemp.h > /dev/null 2>&1 Xunset xxx valfrsize X: see if statvfs exists Xset statvfs d_statvfs Xeval $inlibc X X Xif $test "$d_getmnt" = "$define" || \ X $test "$d_getmntinfo" = "$define" || \ X $test "$d_statvfs" = "$define" Xthen X d_statfs="$undef" # we don't care if it's there or not. X d_statfsbsd="$undef" X d_statfssysv3="$undef" X ubsize="" Xelse X : see if statfs exists X set statfs d_statfs X eval $inlibc X X set valbsd xxx valsysv3 X valbsd="$d_statfsbsd" X valsysv3="$d_statfssysv3" X X case $valbsd in X '') valbsd="$undef" ;; X esac X case $valsysv3 in X '') valsysv3="$undef" ;; X esac X X case "$d_statfs" in X "$define") X : We will try the easy way first... X : This only works if there are prototypes. X : And hope the dual universe machines dont define both! X xxx="`./findhdr sys/statfs.h`" X xxx="$xxx `./findhdr sys/mount.h`" X xxx="$xxx `./findhdr sys/vfs.h`" X for x in $xxx X do X if $test -f "$x"; then X $cppstdin $cppflags $cppminus < $x >sftest.h X if $contains '[^a-zA-Z_]statfs.*([^,]*,[^,]*,[^,]*,[^,]*)' sftest.h > /dev/null 2>&1 X then X valsysv3="$define" X valbsd="$undef" X $echo 'You appear to have the System V.3 style statfs()' X fi X if $contains '[^a-zA-Z_]statfs.*([^,]*,[^,]*)' sftest.h > /dev/null 2>&1 X then X valsysv3="$undef" X valbsd="$define" X $echo 'You appear to have the BSD style statfs()' X fi X X if $contains '[^a-zA-Z_]statfs.*([^,]*,[^,]*,[^,]*)' sftest.h > /dev/null 2>&1 X then X valsysv3="$undef" X valbsd="$define" X $echo 'You appear to have the BSD style of statfs()' X fi X fi X done X X case "$valbsd" in X "$undef") X case "$valsysv3" in X "$undef") X X unset dflt X rp='How many arguments does your statfs system call accept (2/3/4)?' X . ./myread X case "$ans" in X 2) valbsd="$define" X valsysv3="$undef" X ;; X 3) valbsd="$define" X valsysv3="$undef" X ;; X 4) valbsd="$undef" X valsysv3="$define" X ;; X esac X ;; X esac X ;; X esac X X $rm -f sftest.h > /dev/null 2>&1 X ;; X esac X X val=$valbsd X set d_statfsbsd X eval $setvar X val=$valsysv3 X set d_statfssysv3 X eval $setvar X unset x xxx valbsd valsysv3 X X case ${d_statfssysv3} in X "$define") ;; X *) ubsize="" ;; X esac Xfi X: see if this is a sys/statvfs.h system Xset sys/statvfs.h i_sysstatvfs Xeval $inhdr X Xset xxx valbasetype Xvalbasetype="$d_statvfsbasetype" Xcase $valbasetype in X '') valbasetype="$undef" ;; Xesac Xxxx=`./findhdr sys/statvfs.h` Xif $test -f "$xxx";then X $cppstdin $cppflags $cppminus < $xxx >$$.h X if $contains "[^a-zA-Z_]f_basetype[^a-zA-Z_]*;" $$.h > /dev/null 2>&1 X then X valbasetype="$define" X fi Xfi X Xval=$valbasetype Xset d_statvfsbasetype Xeval $setvar X X$rm -f $$.h > /dev/null 2>&1 Xunset xxx valbasetype X: see which of string.h or strings.h is needed Xecho " " Xstrings=`./findhdr string.h` Xif $test "$strings" && $test -r "$strings"; then X echo "Using instead of ." >&4 X val="$define" Xelse X val="$undef" X strings=`./findhdr strings.h` X if $test "$strings" && $test -r "$strings"; then X echo "Using instead of ." >&4 X else X echo "No string header found -- You'll surely have problems." >&4 X fi Xfi Xset i_string Xeval $setvar Xcase "$i_string" in X"$undef") strings=`./findhdr strings.h`;; X*) strings=`./findhdr string.h`;; Xesac X X: index or strchr Xecho " " Xif set index val -f; eval $csym; $val; then X if set strchr val -f d_strchr; eval $csym; $val; then X if $contains strchr "$strings" >/dev/null 2>&1 ; then X val="$define" X vali="$undef" X echo "strchr() found." >&4 X else X val="$undef" X vali="$define" X echo "index() found." >&4 X fi X else X val="$undef" X vali="$define" X echo "index() found." >&4 X fi Xelse X if set strchr val -f d_strchr; eval $csym; $val; then X val="$define" X vali="$undef" X echo "strchr() found." >&4 X else X echo "No index() or strchr() found!" >&4 X val="$undef" X vali="$undef" X fi Xfi Xset d_strchr; eval $setvar Xval="$vali" Xset d_index; eval $setvar X X: see if sysfs exists Xset sysfs d_sysfs Xeval $inlibc X X: preserve RCS keywords in files with variable substitution, grrr XId='$Id' XSource='$Source' X X Xif $test "$di_prog" = ""; then X set di_prog X val="di" X eval $setvar Xfi Xif $test "$d_getopt" = "$define";then X val="" Xelse X val="getopt$_o" Xfi Xset di_otherobj Xeval $setvar Xecho " " Xecho "Checking if your $make program sets \$(MAKE)..." >&4 Xcase "$make_set_make" in X'') X $sed 's/^X //' > testmake.mak << 'EOF' XXall: XX @echo 'maketemp="$(MAKE)"' XEOF X case "`$make -f testmake.mak 2>/dev/null`" in X *maketemp=*) make_set_make='#' ;; X *) make_set_make="MAKE=$make" ;; X esac X $rm -f testmake.mak X ;; Xesac Xcase "$make_set_make" in X'#') echo "Yup, it does.";; X*) echo "Nope, it doesn't.";; Xesac X X: Cruising for prototypes Xecho " " Xecho "Checking out function prototypes..." >&4 X$cat >prototype.c <<'EOCP' Xmain(int argc, char *argv[]) { X exit(0);} XEOCP Xif $cc $ccflags -c prototype.c >prototype.out 2>&1 ; then X echo "Your C compiler appears to support function prototypes." X val="$define" Xelse X echo "Your C compiler doesn't seem to understand function prototypes." X val="$undef" Xfi Xset prototype Xeval $setvar X$rm -f prototype* X X: check for void type Xecho " " Xecho "Checking to see how well your C compiler groks the void type..." >&4 Xcase "$voidflags" in X'') X $cat >try.c <<'EOCP' X#if TRY & 1 Xvoid sub() { X#else Xsub() { X#endif X extern void moo(); /* function returning void */ X void (*goo)(); /* ptr to func returning void */ X#if TRY & 8 X void *hue; /* generic ptr */ X#endif X#if TRY & 2 X void (*foo[10])(); X#endif X X#if TRY & 4 X if(goo == moo) { X exit(0); X } X#endif X exit(0); X} Xmain() { sub(); } XEOCP X if $cc $ccflags -c -DTRY=$defvoidused try.c >.out 2>&1 ; then X voidflags=$defvoidused X echo "Good. It appears to support void to the level $package wants.">&4 X if $contains warning .out >/dev/null 2>&1; then X echo "However, you might get some warnings that look like this:" X $cat .out X fi X else Xecho "Hmm, your compiler has some difficulty with void. Checking further..." >&4 X if $cc $ccflags -c -DTRY=1 try.c >/dev/null 2>&1; then X echo "It supports 1..." X if $cc $ccflags -c -DTRY=3 try.c >/dev/null 2>&1; then X echo "It also supports 2..." X if $cc $ccflags -c -DTRY=7 try.c >/dev/null 2>&1; then X voidflags=7 X echo "And it supports 4 but not 8 definitely." X else X echo "It doesn't support 4..." X if $cc $ccflags -c -DTRY=11 try.c >/dev/null 2>&1; then X voidflags=11 X echo "But it supports 8." X else X voidflags=3 X echo "Neither does it support 8." X fi X fi X else X echo "It does not support 2..." X if $cc $ccflags -c -DTRY=13 try.c >/dev/null 2>&1; then X voidflags=13 X echo "But it supports 4 and 8." X else X if $cc $ccflags -c -DTRY=5 try.c >/dev/null 2>&1; then X voidflags=5 X echo "And it supports 4 but has not heard about 8." X else X echo "However it supports 8 but not 4." X fi X fi X fi X else X echo "There is no support at all for void." X voidflags=0 X fi X fi Xesac Xcase "$voidflags" in X"$defvoidused") ;; X*) $cat >&4 <<'EOM' X Support flag bits are: X 1: basic void declarations. X 2: arrays of pointers to functions returning void. X 4: operations between pointers to and addresses of void functions. X 8: generic void pointers. XEOM X dflt="$voidflags"; X rp="Your void support flags add up to what?" X . ./myread X voidflags="$ans" X ;; Xesac X$rm -f try.* .out X X: see if this is an fshelp.h system Xset fshelp.h i_fshelp Xeval $inhdr X X: see if this is an kernel/fs_info.h system Xset kernel/fs_info.h i_kernfsinfo Xeval $inhdr X X: see if this is a limits.h system Xset limits.h i_limits Xeval $inhdr X X: see if this is a malloc.h system Xset malloc.h i_malloc Xeval $inhdr X X: see if memory.h is available. Xval='' Xset memory.h val Xeval $inhdr X X: See if it conflicts with string.h Xcase "$val" in X$define) X case "$strings" in X '') ;; X *) X $cppstdin $cppflags $cppminus < $strings > mem.h X if $contains 'memcpy' mem.h >/dev/null 2>&1; then X echo " " X echo "We won't be including ." X val="$undef" X fi X $rm -f mem.h X ;; X esac Xesac Xset i_memory Xeval $setvar X X: see if this is an mntent.h system Xset mntent.h i_mntent Xeval $inhdr X X: see if this is an mnttab.h system Xset mnttab.h i_mnttab Xeval $inhdr X: see if this is an storage/Directory.h system Xset storage/Directory.h i_stor_directory Xeval $inhdr X X: see if this is an storage/Entry.h system Xset storage/Entry.h i_stor_entry Xeval $inhdr X X: see if this is an storage/Path.h system Xset storage/Path.h i_stor_path Xeval $inhdr X X: see if this is a sys/fstypes.h system Xset sys/fstypes.h i_sysfstypes Xeval $inhdr Xset sys/fs_types.h i_sysfs_types Xeval $inhdr X X: see if this is a sys/fstyp.h system Xset sys/fstyp.h i_sysfstyp Xeval $inhdr X X: see if this is a sys/mntctl.h system Xset sys/mntctl.h i_sysmntctl Xeval $inhdr X X: see if this is a sys/mntent.h system Xset sys/mntent.h i_sysmntent Xeval $inhdr X X: see if this is a sys/mnttab.h system Xset sys/mnttab.h i_sysmnttab Xeval $inhdr X X: see if this is a sys/param system Xset sys/param.h i_sysparam Xeval $inhdr X X: see if sys/stat.h is available Xset sys/stat.h i_sysstat Xeval $inhdr X X: see if we should include time.h, sys/time.h, or both Xecho " " Xecho "Testing to see if we should include , or both." >&4 X$echo $n "I'm now running the test program...$c" X$cat >try.c <<'EOCP' X#include X#ifdef I_TIME X#include X#endif X#ifdef I_SYSTIME X#ifdef SYSTIMEKERNEL X#define KERNEL X#endif X#include X#endif X#ifdef I_SYSSELECT X#include X#endif Xmain() X{ X struct tm foo; X#ifdef S_TIMEVAL X struct timeval bar; X#endif X#ifdef S_TIMEZONE X struct timezone tzp; X#endif X if (foo.tm_sec == foo.tm_sec) X exit(0); X#ifdef S_TIMEVAL X if (bar.tv_sec == bar.tv_sec) X exit(0); X#endif X exit(1); X} XEOCP Xflags='' Xs_timezone='' Xsysselect='' Xfor s_timeval in '-DS_TIMEVAL' ''; do Xfor i_systimek in '' '-DSYSTIMEKERNEL'; do Xfor i_time in '' '-DI_TIME'; do Xfor i_systime in '-DI_SYSTIME' ''; do X case "$flags" in X '') $echo $n ".$c" X set try $i_time $i_systime $i_systimek $sysselect $s_timeval $s_timezone X if eval $compile; then X set X $i_time $i_systime $i_systimek $sysselect $s_timeval X shift X flags="$*" X echo " " X $echo $n "Succeeded with $flags$c" X fi X ;; X esac Xdone Xdone Xdone Xdone Xtimeincl='' Xecho " " Xcase "$flags" in X*SYSTIMEKERNEL*) i_systimek="$define" X timeincl=`./findhdr sys/time.h` X echo "We'll include with KERNEL defined." >&4;; X*) i_systimek="$undef";; Xesac Xcase "$flags" in X*I_TIME*) i_time="$define" X timeincl=`./findhdr time.h`" $timeincl" X echo "We'll include ." >&4;; X*) i_time="$undef";; Xesac Xcase "$flags" in X*I_SYSTIME*) i_systime="$define" X timeincl=`./findhdr sys/time.h`" $timeincl" X echo "We'll include ." >&4;; X*) i_systime="$undef";; Xesac X$rm -f try.c try X X: see if sys/types.h has to be included Xset sys/types.h i_systypes Xeval $inhdr X X: see if this is a sys/vfs.h system Xset sys/vfs.h i_sysvfs Xeval $inhdr X X: see if this is a sys/vfstab.h system Xset sys/vfstab.h i_sysvfstab Xeval $inhdr X X: see if this is a sys/vmount.h system Xset sys/vmount.h i_sysvmount Xeval $inhdr X X: end of configuration questions Xecho " " Xecho "End of configuration questions." Xecho " " X X: back to where it started Xif test -d ../UU; then X cd .. Xfi X X: configuration may be patched via a 'config.over' file Xif $test -f config.over; then X echo " " X dflt=y X rp='I see a config.over file. Do you wish to load it?' X . UU/myread X case "$ans" in X n*) echo "OK, I'll ignore it.";; X *) . ./config.over X echo "Configuration override changes have been loaded." X ;; X esac Xfi X X: in case they want portability, strip down executable paths Xcase "$d_portable" in X"$define") X echo " " X echo "Stripping down executable paths..." >&4 X for file in $loclist $trylist; do X if test X$file != Xln -a X$file != Xar -o X$osname != Xos2; then X eval $file="\$file" X fi X done X ;; Xesac X X: create config.sh file Xecho " " Xecho "Creating config.sh..." >&4 X$spitshell <config.sh X$startsh X# X# This file was produced by running the Configure script. It holds all the X# definitions figured out by Configure. Should you modify one of these values, X# do not forget to propagate your changes by running "Configure -der". You may X# instead choose to run each of the .SH files by yourself, or "Configure -S". X# X X# Package name : $package X# Source directory : $src X# Configuration time: $cf_time X# Configured by : $cf_by X# Target system : $myuname X XAuthor='$Author' XDate='$Date' XHeader='$Header' XId='$Id' XLocker='$Locker' XLog='$Log' XMcc='$Mcc' XRCSfile='$RCSfile' XRevision='$Revision' XSource='$Source' XState='$State' X_a='$_a' X_exe='$_exe' X_o='$_o' Xafs='$afs' Xar='$ar' Xarchobjs='$archobjs' Xawk='$awk' Xbash='$bash' Xbison='$bison' Xbyacc='$byacc' Xc='$c' Xcat='$cat' Xcc='$cc' Xccflags='$ccflags' Xcf_by='$cf_by' Xcf_time='$cf_time' Xchgrp='$chgrp' Xchmod='$chmod' Xchown='$chown' Xcomm='$comm' Xcompress='$compress' Xcontains='$contains' Xcp='$cp' Xcpio='$cpio' Xcpp='$cpp' Xcppflags='$cppflags' Xcpplast='$cpplast' Xcppminus='$cppminus' Xcpprun='$cpprun' Xcppstdin='$cppstdin' Xcsh='$csh' Xd_64bit_statfs_flds='$d_64bit_statfs_flds' Xd_bcopy='$d_bcopy' Xd_bsd='$d_bsd' Xd_bzero='$d_bzero' Xd_endmntent='$d_endmntent' Xd_eunice='$d_eunice' Xd_fs_info='$d_fs_info' Xd_getmnt='$d_getmnt' Xd_getmntent='$d_getmntent' Xd_getmntinfo='$d_getmntinfo' Xd_getmntinfobsize='$d_getmntinfobsize' Xd_getmntinfofsize='$d_getmntinfofsize' Xd_getmntinfofstype='$d_getmntinfofstype' Xd_getopt='$d_getopt' Xd_gnulibc='$d_gnulibc' Xd_index='$d_index' Xd_memcpy='$d_memcpy' Xd_memset='$d_memset' Xd_mntctl='$d_mntctl' Xd_mnttime='$d_mnttime' Xd_optind='$d_optind' Xd_portable='$d_portable' Xd_setmntent='$d_setmntent' Xd_setmntent_one_arg='$d_setmntent_one_arg' Xd_statfs='$d_statfs' Xd_statfs_frsize='$d_statfs_frsize' Xd_statfsbsd='$d_statfsbsd' Xd_statfssysv3='$d_statfssysv3' Xd_statvfs='$d_statvfs' Xd_statvfsbasetype='$d_statvfsbasetype' Xd_strchr='$d_strchr' Xd_sysfs='$d_sysfs' Xd_xenix='$d_xenix' Xdate='$date' Xdefvoidused='$defvoidused' Xdi_otherobj='$di_otherobj' Xdi_prog='$di_prog' Xecho='$echo' Xegrep='$egrep' Xemacs='$emacs' Xeunicefix='$eunicefix' Xexe_ext='$exe_ext' Xexpr='$expr' Xfind='$find' Xfirstmakefile='$firstmakefile' Xflex='$flex' Xgccversion='$gccversion' Xglibpth='$glibpth' Xgrep='$grep' Xgzip='$gzip' Xhint='$hint' Xi_fshelp='$i_fshelp' Xi_kernfsinfo='$i_kernfsinfo' Xi_limits='$i_limits' Xi_malloc='$i_malloc' Xi_memory='$i_memory' Xi_mntent='$i_mntent' Xi_mnttab='$i_mnttab' Xi_stdlib='$i_stdlib' Xi_stor_directory='$i_stor_directory' Xi_stor_entry='$i_stor_entry' Xi_stor_path='$i_stor_path' Xi_string='$i_string' Xi_sysfs_types='$i_sysfs_types' Xi_sysfstyp='$i_sysfstyp' Xi_sysfstypes='$i_sysfstypes' Xi_sysmntctl='$i_sysmntctl' Xi_sysmntent='$i_sysmntent' Xi_sysmnttab='$i_sysmnttab' Xi_sysmount='$i_sysmount' Xi_sysparam='$i_sysparam' Xi_sysstat='$i_sysstat' Xi_sysstatfs='$i_sysstatfs' Xi_sysstatvfs='$i_sysstatvfs' Xi_systime='$i_systime' Xi_systimek='$i_systimek' Xi_systypes='$i_systypes' Xi_sysvfs='$i_sysvfs' Xi_sysvfstab='$i_sysvfstab' Xi_sysvmount='$i_sysvmount' Xi_time='$i_time' Xi_unistd='$i_unistd' Xincpath='$incpath' Xinews='$inews' Xinstallmansrc='$installmansrc' Xksh='$ksh' Xldflags='$ldflags' Xless='$less' Xlib_ext='$lib_ext' Xlibc='$libc' Xlibpth='$libpth' Xlibs='$libs' Xlibswanted='$libswanted' Xline='$line' Xlint='$lint' Xlkflags='$lkflags' Xln='$ln' Xlns='$lns' Xlocincpth='$locincpth' Xloclibpth='$loclibpth' Xlp='$lp' Xlpr='$lpr' Xls='$ls' Xmail='$mail' Xmailx='$mailx' Xmake='$make' Xmake_set_make='$make_set_make' Xmanext='$manext' Xmansrc='$mansrc' Xmansrcexp='$mansrcexp' Xmips='$mips' Xmips_type='$mips_type' Xmkdir='$mkdir' Xmore='$more' Xmv='$mv' Xmyuname='$myuname' Xn='$n' Xnm='$nm' Xnm_opt='$nm_opt' Xnm_so_opt='$nm_so_opt' Xnroff='$nroff' Xobj_ext='$obj_ext' Xoptimize='$optimize' Xosname='$osname' Xosvers='$osvers' Xpackage='$package' Xpath_sep='$path_sep' Xperl='$perl' Xpg='$pg' Xplibpth='$plibpth' Xpmake='$pmake' Xpr='$pr' Xprefix='$prefix' Xprefixexp='$prefixexp' Xprototype='$prototype' Xrm='$rm' Xrmail='$rmail' Xrunnm='$runnm' Xsed='$sed' Xsendmail='$sendmail' Xsh='$sh' Xshar='$shar' Xsharpbang='$sharpbang' Xshsharp='$shsharp' Xsleep='$sleep' Xsmail='$smail' Xso='$so' Xsort='$sort' Xspackage='$spackage' Xspitshell='$spitshell' Xsrc='$src' Xstartsh='$startsh' Xstrings='$strings' Xsubmit='$submit' Xsysman='$sysman' Xtail='$tail' Xtar='$tar' Xtbl='$tbl' Xtee='$tee' Xtest='$test' Xtimeincl='$timeincl' Xtouch='$touch' Xtr='$tr' Xtroff='$troff' Xubsize='$ubsize' Xuname='$uname' Xuniq='$uniq' Xusenm='$usenm' Xusrinc='$usrinc' Xuuname='$uuname' Xvi='$vi' Xvoidflags='$voidflags' Xxlibpth='$xlibpth' Xzcat='$zcat' Xzip='$zip' XEOT X X: Add in command line options if available X$test -f UU/cmdline.opt && $cat UU/cmdline.opt >> config.sh X X: add special variables X$test -f $src/patchlevel.h && \ Xawk '/^#define/ {printf "%s=%s\n",$2,$3}' $src/patchlevel.h >>config.sh Xecho "CONFIG=true" >>config.sh X X: propagate old symbols Xif $test -f UU/config.sh; then X UU/oldconfig.sh X sed -n 's/^\([a-zA-Z_0-9]*\)=.*/\1/p' config.sh config.sh UU/oldconfig.sh |\ X sort | uniq -u >UU/oldsyms X set X `cat UU/oldsyms` X shift X case $# in X 0) ;; X *) X cat <>config.sh X for sym in `cat UU/oldsyms`; do X echo " Propagating $hint variable "'$'"$sym..." X eval 'tmp="$'"${sym}"'"' X echo "$tmp" | \ X sed -e "s/'/'\"'\"'/g" -e "s/^/$sym='/" -e "s/$/'/" >>config.sh X done X ;; X esac Xfi X X: Finish up by extracting the .SH files Xcase "$alldone" in Xexit) X $rm -rf UU X echo "Done." X exit 0 X ;; Xcont) X ;; X'') X dflt='' X nostick=true X $cat <&4 -c "$ans";; X esac X ;; Xesac X X: if this fails, just run all the .SH files by hand X. ./config.sh X Xecho " " Xexec 1>&4 X. ./UU/extract X Xif $contains '^depend:' [Mm]akefile >/dev/null 2>&1; then X dflt=y X case "$silent" in X true) ;; X *) X $cat < makedepend.out &" XIt can take a while, so you might not want to run it right now. X XEOM X ;; X esac X rp="Run make depend now?" X . UU/myread X case "$ans" in X y*) X make depend && echo "Now you must run a make." X ;; X *) X echo "You must run 'make depend' then 'make'." X ;; X esac Xelif test -f [Mm]akefile; then X echo " " X echo "Now you must run a make." Xelse X echo "Done." Xfi X Xif $test -f Policy.sh; then X $cat <&4 X $rm -f config.msg Xfi X$rm -f kit*isdone ark*isdone X$rm -rf UU X X: End of Configure X END_OF_FILE if test 106597 -ne `wc -c <'Configure'`; then echo shar: \"'Configure'\" unpacked with wrong size! fi chmod +x 'Configure' # end of 'Configure' fi echo shar: End of archive 3 \(of 3\). cp /dev/null ark3isdone MISSING="" for I in 1 2 3 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 3 archives. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0