X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Configure;h=a34a5db6f4c4925dfa8017db9f708645d3ffdf06;hb=1d603a678689f1e74cf73914a432b2a8d38be470;hp=09daa56cffa845c2d3d72df4e6828275ea7b612a;hpb=7792a3d729e8aee4b1cc995dd6dddc0daaf04fcf;p=p5sagit%2Fp5-mst-13.2.git diff --git a/Configure b/Configure index 09daa56..a34a5db 100755 --- a/Configure +++ b/Configure @@ -14,13 +14,13 @@ # (Note: this Configure script was generated automatically. Rather than # working with this copy of Configure, you may wish to get metaconfig. # The dist-3.0 package (which contains metaconfig) was posted in -# comp.sources.misc so you may fetch it yourself from your nearest -# archive site. Check with Archie if you don't know where that can be.) +# comp.sources.misc and is available on CPAN under authors/id/RAM so +# you may fetch it yourself from your nearest archive site.) # -# $Id: Head.U,v 3.0.1.8 1995/07/25 13:40:02 ram Exp $ +# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $ # -# Generated on Sat Feb 1 00:26:40 EST 1997 [metaconfig 3.0 PL60] +# Generated on Wed Feb 25 16:44:06 EST 1998 [metaconfig 3.0 PL70] cat >/tmp/c1$$ </dev/null 2>&1; then - : running under ksh. Is this a good thing? - if test -d /usr/lpp -a -f /usr/bin/bsh -a -f /usr/bin/uname ; then - if test X`/usr/bin/uname -v` = X4 ; then - : on AIX 4, /bin/sh is really ksh, and it causes us problems. - : Avoid it - cat <<'EOM' -(Feeding myself to /usr/bin/bsh to avoid AIX 4's /bin/sh.) -EOM - unset ENV - exec /usr/bin/bsh $0 "$@" + inksh=true +fi +if test -f /hp-ux -a -f /bin/ksh; then + needksh='to avoid sh bug in "here document" expansion' +fi +if test -d /usr/lpp -a -f /usr/bin/bsh -a -f /usr/bin/uname; then + if test X`/usr/bin/uname -v` = X4; then + avoidksh="to avoid AIX 4's /bin/sh" + newsh=/usr/bin/bsh fi - else - if test ! -f /hp-ux ; then - : Warn them if they use ksh on other systems +fi +case "$inksh/$needksh" in +/[a-z]*) + unset ENV + changesh=true + reason="$needksh" + ;; +esac +case "$inksh/$avoidksh" in +true/[a-z]*) + changesh=true + reason="$avoidksh" + ;; +esac +case "$inksh/$needksh-$avoidksh-" in +true/--) cat <&2 $me: Fatal Error: I can't find a Bourne Shell anywhere. + Usually it's in /bin/sh. How did you even get this far? -Please contact me (Chip Salzenberg) at chip@perl.com and -we'll try to straigten this all out. +Please contact me (Andy Dougherty) at doughera@lafcol.lafayette.edu and +we'll try to straighten this all out. EOM exit 1 ;; @@ -812,7 +831,6 @@ esac if `$sh -c '#' >/dev/null 2>&1`; then shsharp=true spitshell=cat - echo " " xcat=/bin/cat test -f $xcat || xcat=/usr/bin/cat echo "#!$xcat" >try @@ -829,12 +847,11 @@ if `$sh -c '#' >/dev/null 2>&1`; then if test -s today; then sharpbang='#! ' else - echo "Okay, let's see if #! works on this system..." - echo "It's just a comment." sharpbang=': use ' fi fi else + echo " " echo "Your $sh doesn't grok # comments--I will strip them later on." shsharp=false cd .. @@ -864,60 +881,11 @@ $eunicefix try if ./try; then : echo "Yup, it does." else - echo "Hmm. '$startsh' didn't work." - echo "You may have to fix up the shell scripts to make sure sh runs them." + echo "Hmm... '$startsh' does not guarantee sh startup..." + echo "You may have to fix up the shell scripts to make sure $sh runs them." fi rm -f try -: script used to extract .SH files with variable substitutions -cat >extract <>extract <<'EOS' -CONFIG=true -echo "Doing variable substitutions on .SH files..." -if test -f MANIFEST; then - shlist=`awk '{print $1}' options.awk <<'EOF' BEGIN { @@ -981,12 +949,12 @@ silent='' extractsh='' override='' knowitall='' - rm -f optdef.sh cat >optdef.sh <&2 + -V) echo "$me generated by metaconfig 3.0 PL70." >&2 exit 0;; --) break;; -*) echo "$me: unknown option $1" >&2; shift; error=true;; @@ -1070,6 +1038,17 @@ EOM ;; esac +: Sanity checks +case "$fastread$alldone" in +yescont|yesexit) ;; +*) + if test ! -t 0; then + echo "Say 'sh Configure', not 'sh &1 case "$silent" in true) exec 1>/dev/null;; @@ -1079,26 +1058,6 @@ esac touch optdef.sh . ./optdef.sh -case "$extractsh" in -true) - case "$config_sh" in - '') config_sh='config.sh'; config='./config.sh';; - /*) config="$config_sh";; - *) config="./$config_sh";; - esac - echo " " - echo "Fetching answers from $config_sh..." - cd .. - . $config - test "$override" && . ./optdef.sh - echo " " - . ./UU/extract - rm -rf UU - echo "Done." - exit 0 - ;; -esac - : set package name package=perl5 first=`echo $package | sed -e 's/^\(.\).*/\1/'` @@ -1108,13 +1067,6 @@ ABYZ) spackage=`echo $first | tr '[:lower:]' '[:upper:]'`$last;; *) spackage=`echo $first | tr '[a-z]' '[A-Z]'`$last;; esac -: Eunice requires " " instead of "", can you believe it -echo " " -: Here we go... -echo "Beginning of configuration questions for $package." - -trap 'echo " "; test -d ../UU && rm -rf X $rmlist; exit 1' 1 2 3 15 - : Some greps do not return status, grrr. echo "grimblepritz" >grimble if grep blurfldyick grimble >/dev/null 2>&1 ; then @@ -1136,6 +1088,152 @@ EOSS chmod +x contains esac +: Find the path to the source tree +case "$src" in +'') case "$0" in + */*) src=`echo $0 | sed -e 's%/[^/][^/]*$%%'`;; + *) src='.';; + esac;; +esac +case "$src" in +'') src=/ + rsrc=/ + ;; +/*) rsrc="$src";; +*) rsrc="../$src";; +esac +if test -f $rsrc/Configure && \ + $contains "^package=$package$" $rsrc/Configure >/dev/null 2>&1 +then + : found it, so we are ok. +else + rsrc='' + for src in . .. ../.. ../../.. ../../../..; do + if test -f ../$src/Configure && \ + $contains "^package=$package$" ../$src/Configure >/dev/null 2>&1 + then + rsrc=../$src + break + fi + done +fi +case "$rsrc" in +'') + cat <&4 + +Sorry, I can't seem to locate the source dir for $package. Please start +Configure with an explicit path -- i.e. /some/path/Configure. + +EOM + exit 1 + ;; +../.) rsrc='..';; +*) + echo " " + echo "Sources for $package found in \"$src\"." >&4 + ;; +esac + +: script used to extract .SH files with variable substitutions +cat >extract <<'EOS' +CONFIG=true +echo "Doing variable substitutions on .SH files..." +if test -f $src/MANIFEST; then + set x `awk '{print $1}' <$src/MANIFEST | grep '\.SH'` +else + echo "(Looking for .SH files under the source directory.)" + set x `(cd $src; find . -name "*.SH" -print)` +fi +shift +case $# in +0) set x `(cd $src; echo *.SH)`; shift;; +esac +if test ! -f $src/$1; then + shift +fi +mkdir_p=' +name=$1; +create=""; +while test $name; do + if test ! -d "$name"; then + create="$name $create"; + name=`echo $name | sed -e "s|^[^/]*$||"`; + name=`echo $name | sed -e "s|\(.*\)/.*|\1|"`; + else + name=""; + fi; +done; +for file in $create; do + mkdir $file; +done +' +for file in $*; do + case "$src" in + ".") + case "$file" in + */*) + dir=`expr X$file : 'X\(.*\)/'` + file=`expr X$file : 'X.*/\(.*\)'` + (cd $dir && . ./$file) + ;; + *) + . ./$file + ;; + esac + ;; + *) + case "$file" in + */*) + dir=`expr X$file : 'X\(.*\)/'` + file=`expr X$file : 'X.*/\(.*\)'` + (set x $dir; shift; eval $mkdir_p) + sh <$src/$dir/$file + ;; + *) + sh <$src/$file + ;; + esac + ;; + esac +done +if test -f $src/config_h.SH; then + if test ! -f config.h; then + : oops, they left it out of MANIFEST, probably, so do it anyway. + . $src/config_h.SH + fi +fi +EOS + +: extract files and exit if asked to do so +case "$extractsh" in +true) + case "$realsilent" in + true) ;; + *) exec 1>&4;; + esac + case "$config_sh" in + '') config_sh='config.sh';; + esac + echo " " + echo "Fetching answers from $config_sh..." + cd .. + . $config_sh + test "$override" && . ./optdef.sh + echo " " + . UU/extract + rm -rf UU + echo "Done." + exit 0 + ;; +esac + +: Eunice requires " " instead of "", can you believe it +echo " " +: Here we go... +echo "Beginning of configuration questions for $package." + +trap 'echo " "; test -d ../UU && rm -rf X $rmlist; exit 1' 1 2 3 15 + : first determine how to suppress newline on echo command echo " " echo "Checking echo to see how to suppress newlines..." @@ -1157,12 +1255,13 @@ rm -f .echotmp : Now test for existence of everything in MANIFEST echo " " -if test -f ../MANIFEST; then +if test -f $rsrc/MANIFEST; then echo "First let's make sure your kit is complete. Checking..." >&4 - awk '$1 !~ /PACK[A-Z]+/ {print $1}' ../MANIFEST | split -50 + awk '$1 !~ /PACK[A-Z]+/ {print $1}' $rsrc/MANIFEST | split -50 rm -f missing + tmppwd=`pwd` for filelist in x??; do - (cd ..; ls `cat UU/$filelist` >/dev/null 2>>UU/missing) + (cd $rsrc; ls `cat $tmppwd/$filelist` >/dev/null 2>>$tmppwd/missing) done if test -s missing; then cat missing >&4 @@ -1173,7 +1272,7 @@ THIS PACKAGE SEEMS TO BE INCOMPLETE. You have the option of continuing the configuration process, despite the distinct possibility that your kit is damaged, by typing 'y'es. If you do, don't blame me if something goes wrong. I advise you to type 'n'o -and contact the author (chip@perl.com). +and contact the author (doughera@lafcol.lafayette.edu). EOM echo $n "Continue? [n] $c" >&4 @@ -1189,7 +1288,7 @@ EOM ;; esac else - echo "Looks good..." >&4 + echo "Looks good..." fi else echo "There is no MANIFEST file. I hope your kit is complete !" @@ -1242,8 +1341,20 @@ while expr "X\$ans" : "X!" >/dev/null; do read answ set x \$xxxm shift - aok=''; eval ans="\\"\$answ\\"" && aok=y + aok=''; eval "ans=\\"\$answ\\"" && aok=y case "\$answ" in + "!") + sh 1>&4 + echo " " + $myecho + ;; + !*) + set x \`expr "X\$ans" : "X!\(.*\)\$"\` + shift + sh 1>&4 -c "\$*" + echo " " + $myecho + ;; "\$ans") case "\$ans" in \\&*) @@ -1261,18 +1372,6 @@ while expr "X\$ans" : "X!" >/dev/null; do $myecho ans=! ;; - "!") - sh 1>&4 - echo " " - $myecho - ;; - !*) - set x \`expr "X\$ans" : "X!\(.*\)\$"\` - shift - sh 1>&4 -c "\$*" - echo " " - $myecho - ;; esac;; *) case "\$aok" in @@ -1307,7 +1406,7 @@ EOSC test -d ../.config || mkdir ../.config cat >../.config/README </dev/null` -case "$user" in "") - user=`whoami 2>&1` ;; +case "$user" in +'') user=`whoami 2>&1`;; esac if $contains "^$user\$" ../.config/instruct >/dev/null 2>&1; then firsttime=false @@ -1332,7 +1431,7 @@ if $contains "^$user\$" ../.config/instruct >/dev/null 2>&1; then fi if $needman; then cat <&4 + xxx=`./loc $file $file $pth` + fi + ;; + '') xxx=`./loc $file $file $pth`;; + *) xxx=`./loc $xxx $xxx $pth`;; + esac eval $file=$xxx eval _$file=$xxx case "$xxx" in @@ -1497,7 +1610,19 @@ echo " " echo "Don't worry if any of the following aren't found..." say=offhand for file in $trylist; do - xxx=`./loc $file $file $pth` + eval xxx=\$$file + case "$xxx" in + /*|?:[\\/]*) + if test -f "$xxx"; then + : ok + else + echo "WARNING: no $xxx -- ignoring your setting for $file." >&4 + xxx=`./loc $file $file $pth` + fi + ;; + '') xxx=`./loc $file $file $pth`;; + *) xxx=`./loc $xxx $xxx $pth`;; + esac eval $file=$xxx eval _$file=$xxx case "$xxx" in @@ -1658,13 +1783,14 @@ fi if test ! -f config.sh; then $cat <&4 + (cd $src/hints; ls -C *.sh) | $sed 's/\.sh/ /g' >&4 dflt='' : Half the following guesses are probably wrong... If you have better - : tests or hints, please send them to chip@perl.com + : tests or hints, please send them to doughera@lafcol.lafayette.edu : The metaconfig authors would also appreciate a copy... $test -f /irix && osname=irix $test -f /xenix && osname=sco_xenix @@ -1680,12 +1806,12 @@ EOM $test -f /etc/saf/_sactab && osname=svr4 $test -d /usr/include/minix && osname=minix if $test -d /MachTen; then - osname=machten + osname=machten if $test -x /sbin/version; then - osvers=`/sbin/version | $awk '{print $2}' | + osvers=`/sbin/version | $awk '{print $2}' | $sed -e 's/[A-Za-z]$//'` elif $test -x /usr/etc/version; then - osvers=`/usr/etc/version | $awk '{print $2}' | + osvers=`/usr/etc/version | $awk '{print $2}' | $sed -e 's/[A-Za-z]$//'` else osvers="$2.$3" @@ -1764,7 +1890,6 @@ EOM ;; linux) osname=linux case "$3" in - 1*) osvers=1 ;; *) osvers="$3" ;; esac ;; @@ -1780,6 +1905,10 @@ EOM bsd386) osname=bsd386 osvers=`$uname -r` ;; + powerux | power_ux | powermax_os | powermaxos | \ + powerunix | power_unix) osname=powerux + osvers="$3" + ;; next*) osname=next ;; solaris) osname=solaris case "$3" in @@ -1809,7 +1938,7 @@ EOM osf1|mls+) case "$5" in alpha) osname=dec_osf - osvers=`echo "$3" | sed 's/^[vt]//'` + osvers=`echo "$3" | sed 's/^[xvt]//'` ;; hp*) osname=hp_osf1 ;; mips) osname=mips_osf1 ;; @@ -1877,16 +2006,20 @@ EOM ;; esac else - if test -f /vmunix -a -f newsos4.sh; then - (what /vmunix | ../UU/tr '[A-Z]' '[a-z]') > ../UU/kernel.what 2>&1 - if $contains news-os ../UU/kernel.what >/dev/null 2>&1; then - osname=newsos4 + if test -f /vmunix -a -f $src/hints/news_os.sh; then + (what /vmunix | UU/tr '[A-Z]' '[a-z]') > UU/kernel.what 2>&1 + if $contains news-os UU/kernel.what >/dev/null 2>&1; then + osname=news_os fi - $rm -f ../UU/kernel.what + $rm -f UU/kernel.what elif test -d c:/.; then set X $myuname osname=os2 osvers="$5" + if test -n "$DJDIR"; then + osname=dos + osvers=djgpp + fi fi fi @@ -1905,17 +2038,17 @@ EOM *) case "$osvers" in '') dflt=$file ;; - *) if $test -f $file.sh ; then + *) if $test -f $src/hints/$file.sh ; then dflt=$file - elif $test -f $xfile.sh ; then + elif $test -f $src/hints/$xfile.sh ; then dflt=$xfile - elif $test -f $xxfile.sh ; then + elif $test -f $src/hints/$xxfile.sh ; then dflt=$xxfile - elif $test -f $xxxfile.sh ; then + elif $test -f $src/hints/$xxxfile.sh ; then dflt=$xxxfile - elif $test -f $xxxxfile.sh ; then + elif $test -f $src/hints/$xxxxfile.sh ; then dflt=$xxxxfile - elif $test -f "${osname}.sh" ; then + elif $test -f "$src/hints/${osname}.sh" ; then dflt="${osname}" else dflt=none @@ -1924,25 +2057,46 @@ EOM esac ;; esac + if $test -f Policy.sh ; then + case "$dflt" in + *Policy*) ;; + none) dflt="Policy" ;; + *) dflt="Policy $dflt" ;; + esac + fi ;; *) dflt=`echo $hintfile | $sed 's/\.sh$//'` ;; esac + if $test -f Policy.sh ; then + $cat <> ../UU/config.sh + if $test X$file = XPolicy -a -f Policy.sh; then + . Policy.sh + $cat Policy.sh >> UU/config.sh + elif $test -f $src/hints/$file.sh; then + . $src/hints/$file.sh + $cat $src/hints/$file.sh >> UU/config.sh elif $test X$tans = X -o X$tans = Xnone ; then : nothing else @@ -1950,11 +2104,11 @@ EOM echo "$file.sh does not exist" dflt=$file rp="hint to use instead?" - . ../UU/myread + . UU/myread for file in $ans; do - if $test -f "$file.sh"; then - . ./$file.sh - $cat $file.sh >> ../UU/config.sh + if $test -f "$src/hints/$file.sh"; then + . $src/hints/$file.sh + $cat $src/hints/$file.sh >> UU/config.sh elif $test X$ans = X -o X$ans = Xnone ; then : nothing else @@ -1966,13 +2120,11 @@ EOM hint=recommended : Remember our hint file for later. - if $test -f "$file.sh" ; then + if $test -f "$src/hints/$file.sh" ; then hintfile="$file" else hintfile='' fi - - cd .. fi cd UU ;; @@ -2045,18 +2197,60 @@ none) osvers='' ;; *) osvers="$ans" ;; esac - - : who configured the system cf_time=`LC_ALL=C; export LC_ALL; $date 2>&1` cf_by=`(logname) 2>/dev/null` -case "$cf_by" in "") +case "$cf_by" in +"") cf_by=`(whoami) 2>/dev/null` - case "$cf_by" in "") - cf_by=unknown ;; + case "$cf_by" in + "") cf_by=unknown ;; esac ;; esac +: set up the script used to warn in case of inconsistency +cat <whoa +$startsh +EOS +cat <<'EOSC' >>whoa +dflt=y +echo " " +echo "*** WHOA THERE!!! ***" >&4 +echo " The $hint value for \$$var on this machine was \"$was\"!" >&4 +rp=" Keep the $hint value?" +. ./myread +case "$ans" in +y) td=$was; tu=$was;; +esac +EOSC + +: function used to set $1 to $val +setvar='var=$1; eval "was=\$$1"; td=$define; tu=$undef; +case "$val$was" in +$define$undef) . ./whoa; eval "$var=\$td";; +$undef$define) . ./whoa; eval "$var=\$tu";; +*) eval "$var=$val";; +esac' + +cat <&4 + case "$ans" in + *-thread) echo "...and architecture name already ends in -thread." >&4 + archname="$ans" + ;; + *) archname="$ans-thread" + echo "...setting architecture name to $archname." >&4 + ;; + esac + ;; +*) archname="$ans" ;; +esac myarchname="$tarch" - : is AFS running? echo " " case "$afs" in @@ -2470,9 +2675,9 @@ baserev=5.0 : get the patchlevel echo " " echo "Getting the current patchlevel..." >&4 -if $test -r ../patchlevel.h;then - patchlevel=`awk '/PATCHLEVEL/ {print $3}' ../patchlevel.h` - subversion=`awk '/SUBVERSION/ {print $3}' ../patchlevel.h` +if $test -r $rsrc/patchlevel.h;then + patchlevel=`awk '/PATCHLEVEL/ {print $3}' $rsrc/patchlevel.h` + subversion=`awk '/SUBVERSION/ {print $3}' $rsrc/patchlevel.h` else patchlevel=0 subversion=0 @@ -2559,57 +2764,6 @@ else d_archlib="$define" fi -: set up the script used to warn in case of inconsistency -cat <whoa -$startsh -EOS -cat <<'EOSC' >>whoa -dflt=y -echo " " -echo "*** WHOA THERE!!! ***" >&4 -echo " The $hint value for \$$var on this machine was \"$was\"!" >&4 -rp=" Keep the $hint value?" -. ./myread -case "$ans" in -y) td=$was; tu=$was;; -esac -EOSC - -: function used to set $1 to $val -setvar='var=$1; eval "was=\$$1"; td=$define; tu=$undef; -case "$val$was" in -$define$undef) . ./whoa; eval "$var=\$td";; -$undef$define) . ./whoa; eval "$var=\$tu";; -*) eval "$var=$val";; -esac' - -$cat <&4 fi -: see what memory models we can support -case "$models" in -'') - $cat >pdp11.c <<'EOP' -main() { -#ifdef pdp11 - exit(0); -#else - exit(1); -#endif -} -EOP - (cc -o pdp11 pdp11.c) >/dev/null 2>&1 - if $test -f pdp11 && ./pdp11 2>/dev/null; then - dflt='unsplit split' - else - tans=`./loc . X /lib/small /lib/large /usr/lib/small /usr/lib/large /lib/medium /usr/lib/medium /lib/huge` - case "$tans" 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 +: determine where manual pages go +set man1dir man1dir none +eval $prefixit $cat </dev/null 2>&1 || \ - $contains '\-i' $sysman/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?" - . ./myread - tans="$ans" - case "$tans" in - none) tans='';; - esac - split="$tans" - unsplit='';; -*large*|*small*|*medium*|*huge*) - case "$models" in - *large*) - case "$large" in - '') dflt='-Ml';; - *) dflt="$large";; - esac - rp="What flag indicates large model?" - . ./myread - tans="$ans" - case "$tans" in - none) tans=''; - esac - large="$tans";; - *) large='';; - esac - case "$models" in - *huge*) case "$huge" in - '') dflt='-Mh';; - *) dflt="$huge";; - esac - rp="What flag indicates huge model?" - . ./myread - tans="$ans" - case "$tans" in - none) tans=''; - esac - huge="$tans";; - *) huge="$large";; - esac - case "$models" in - *medium*) case "$medium" in - '') dflt='-Mm';; - *) dflt="$medium";; - esac - rp="What flag indicates medium model?" - . ./myread - tans="$ans" - case "$tans" in - none) tans=''; - esac - medium="$tans";; - *) medium="$large";; - esac - case "$models" in - *small*) case "$small" in - '') dflt='none';; - *) dflt="$small";; - esac - rp="What flag indicates small model?" - . ./myread - tans="$ans" - case "$tans" in - none) tans=''; - esac - small="$tans";; - *) small='';; +'') + lookpath="$prefixexp/man/man1 $prefixexp/man/l_man/man1" + lookpath="$lookpath $prefixexp/man/p_man/man1" + lookpath="$lookpath $prefixexp/man/u_man/man1" + lookpath="$lookpath $prefixexp/man/man.1" + case "$sysman" in + */?_man*) dflt=`./loc . $prefixexp/l_man/man1 $lookpath` ;; + *) dflt=`./loc . $prefixexp/man/man1 $lookpath` ;; esac + set dflt + eval $prefixup ;; -*) - echo "Unrecognized memory models--you may have to edit Makefile.SH" >&4 +*) dflt="$man1dir" ;; esac - -: 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' $sysman/cc.1 >/dev/null 2>&1 ; then - if $contains '\-M' $sysman/cpp.1 >/dev/null 2>&1; then - dflt='cc' - else - dflt='cc -M' - fi - 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 - rp="What command will force resolution on this system?" - . ./myread - cc="$ans" -else - case "$cc" in - '') dflt=cc;; - *) dflt="$cc";; - esac - rp="Use which C compiler?" - . ./myread - cc="$ans" +fn=dn+~ +rp="Where do the main $spackage manual pages (source) go?" +. ./getfile +if $test "X$man1direxp" != "X$ansexp"; then + installman1dir='' fi -echo " " -echo "Checking for GNU cc in disguise and/or its version number..." >&4 -$cat >gccvers.c < -int main() { -#ifdef __GNUC__ -#ifdef __VERSION__ - printf("%s\n", __VERSION__); -#else - printf("%s\n", "1"); -#endif -#endif - exit(0); -} +man1dir="$ans" +man1direxp="$ansexp" +case "$man1dir" in +'') man1dir=' ' + installman1dir='';; +esac +if $afs; then + $cat </dev/null 2>&1; then - gccversion=`./gccvers` - case "$gccversion" in - '') echo "You are not using GNU cc." ;; - *) echo "You are using GNU cc $gccversion." ;; + case "$installman1dir" in + '') dflt=`echo $man1direxp | sed 's#^/afs/#/afs/.#'`;; + *) dflt="$installman1dir";; esac + fn=de~ + rp='Where will man pages be installed?' + . ./getfile + installman1dir="$ans" else - echo " " - echo "*** WHOA THERE!!! ***" >&4 - echo " Your C compiler \"$cc\" doesn't seem to be working!" >&4 - case "$knowitall" in - '') - echo " You'd better start hunting for one and let me know about it." >&4 - exit 1 + installman1dir="$man1direxp" +fi + +: What suffix to use on installed man pages + +case "$man1dir" in +' ') + man1ext='0' + ;; +*) + rp="What suffix should be used for the main $spackage man pages?" + case "$man1ext" in + '') case "$man1dir" in + *1) dflt=1 ;; + *1p) dflt=1p ;; + *1pm) dflt=1pm ;; + *l) dflt=l;; + *n) dflt=n;; + *o) dflt=o;; + *p) dflt=p;; + *C) dflt=C;; + *L) dflt=L;; + *L1) dflt=L1;; + *) dflt=1;; + esac ;; + *) dflt="$man1ext";; esac -fi -$rm -f gccvers* -case "$gccversion" in -1*) cpp=`./loc gcc-cpp $cpp $pth` ;; + . ./myread + man1ext="$ans" + ;; esac -: What should the include directory be ? +: see if we can have long filenames echo " " -$echo $n "Hmm... $c" -dflt='/usr/include' -incpath='' -mips_type='' -if $test -f /bin/mips && /bin/mips; then - echo "Looks like a MIPS system..." - $cat >usr.c <<'EOCP' -#ifdef SYSTYPE_BSD43 -/bsd43 -#endif -EOCP - if $cc -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then - dflt='/bsd43/usr/include' - incpath='/bsd43' - mips_type='BSD 4.3' +rmlist="$rmlist /tmp/cf$$" +$test -d /tmp/cf$$ || mkdir /tmp/cf$$ +first=123456789abcdef +second=/tmp/cf$$/$first +$rm -f $first $second +if (echo hi >$first) 2>/dev/null; then + if $test -f 123456789abcde; then + echo 'You cannot have filenames longer than 14 characters. Sigh.' >&4 + val="$undef" else - mips_type='System V' + if (echo hi >$second) 2>/dev/null; then + if $test -f /tmp/cf$$/123456789abcde; then + $cat <<'EOM' +That's peculiar... You can have filenames longer than 14 characters, but only +on some of the filesystems. Maybe you are using NFS. Anyway, to avoid problems +I shall consider your system cannot support long filenames at all. +EOM + val="$undef" + else + echo 'You can have filenames longer than 14 characters.' >&4 + val="$define" + fi + else + $cat <<'EOM' +How confusing! Some of your filesystems are sane enough to allow filenames +longer than 14 characters but some others like /tmp can't even think about them. +So, for now on, I shall assume your kernel does not allow them at all. +EOM + val="$undef" + fi fi - $rm -f usr.c usr.out - echo "and you're compiling with the $mips_type compiler and libraries." - xxx_prompt=y - echo "exit 0" >mips else - echo "Doesn't look like a MIPS system." - xxx_prompt=n - echo "exit 1" >mips -fi -chmod +x mips -$eunicefix mips -echo " " -case "$usrinc" in -'') ;; -*) dflt="$usrinc";; -esac -case "$xxx_prompt" in -y) fn=d/ - rp='Where are the include files you want to use?' - . ./getfile - usrinc="$ans" - ;; -*) usrinc="$dflt" - ;; + $cat <<'EOM' +You can't have filenames longer than 14 chars. You can't even think about them! +EOM + val="$undef" +fi +set d_flexfnam +eval $setvar +$rm -rf /tmp/cf$$ 123456789abcde* + +: determine where library module manual pages go +set man3dir man3dir none +eval $prefixit +$cat <pdp11.c <<'EOP' +main() { +#ifdef pdp11 + exit(0); +#else + exit(1); +#endif +} +EOP + ( cc -o pdp11 pdp11.c ) >/dev/null 2>&1 + if $test -f pdp11 && ./pdp11 2>/dev/null; then + dflt='unsplit split' + else + tans=`./loc . X /lib/small /lib/large /usr/lib/small /usr/lib/large /lib/medium /usr/lib/medium /lib/huge` + case "$tans" 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 +$cat </dev/null 2>&1 || \ + $contains '\-i' $sysman/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?" + . ./myread + tans="$ans" + case "$tans" in + none) tans='';; + esac + split="$tans" + unsplit='';; +*large*|*small*|*medium*|*huge*) + case "$models" in + *large*) + case "$large" in + '') dflt='-Ml';; + *) dflt="$large";; + esac + rp="What flag indicates large model?" + . ./myread + tans="$ans" + case "$tans" in + none) tans=''; + esac + large="$tans";; + *) large='';; + esac + case "$models" in + *huge*) case "$huge" in + '') dflt='-Mh';; + *) dflt="$huge";; + esac + rp="What flag indicates huge model?" + . ./myread + tans="$ans" + case "$tans" in + none) tans=''; + esac + huge="$tans";; + *) huge="$large";; + esac + case "$models" in + *medium*) case "$medium" in + '') dflt='-Mm';; + *) dflt="$medium";; + esac + rp="What flag indicates medium model?" + . ./myread + tans="$ans" + case "$tans" in + none) tans=''; + esac + medium="$tans";; + *) medium="$large";; + esac + case "$models" in + *small*) case "$small" in + '') dflt='none';; + *) dflt="$small";; + esac + rp="What flag indicates small model?" + . ./myread + tans="$ans" + case "$tans" in + none) tans=''; + esac + small="$tans";; + *) small='';; + esac + ;; +*) + echo "Unrecognized memory models--you may have to edit Makefile.SH" >&4 + ;; +esac +$rm -f pdp11.* pdp11 + +: 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' $sysman/cc.1 >/dev/null 2>&1 ; then + if $contains '\-M' $sysman/cpp.1 >/dev/null 2>&1; then + dflt='cc' + else + dflt='cc -M' + fi + 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 + rp="What command will force resolution on this system?" + . ./myread + cc="$ans" +else + case "$cc" in + '') dflt=cc;; + *) dflt="$cc";; + esac + rp="Use which C compiler?" + . ./myread + cc="$ans" +fi +echo " " +echo "Checking for GNU cc in disguise and/or its version number..." >&4 +$cat >gccvers.c < +int main() { +#ifdef __GNUC__ +#ifdef __VERSION__ + printf("%s\n", __VERSION__); +#else + printf("%s\n", "1"); +#endif +#endif + exit(0); +} +EOM +if $cc -o gccvers gccvers.c >/dev/null 2>&1; then + gccversion=`./gccvers` + case "$gccversion" in + '') echo "You are not using GNU cc." ;; + *) echo "You are using GNU cc $gccversion." ;; + esac +else + echo " " + echo "*** WHOA THERE!!! ***" >&4 + echo " Your C compiler \"$cc\" doesn't seem to be working!" >&4 + case "$knowitall" in + '') + echo " You'd better start hunting for one and let me know about it." >&4 + exit 1 + ;; + esac +fi +$rm -f gccvers* +case "$gccversion" in +1*) cpp=`./loc gcc-cpp $cpp $pth` ;; +esac + +: What should the include directory be ? +echo " " +$echo $n "Hmm... $c" +dflt='/usr/include' +incpath='' +mips_type='' +if $test -f /bin/mips && /bin/mips; then + echo "Looks like a MIPS system..." + $cat >usr.c <<'EOCP' +#ifdef SYSTYPE_BSD43 +/bsd43 +#endif +EOCP + if $cc -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then + dflt='/bsd43/usr/include' + incpath='/bsd43' + mips_type='BSD 4.3' + else + mips_type='System V' + fi + $rm -f usr.c usr.out + echo "and you're compiling with the $mips_type compiler and libraries." + xxx_prompt=y + echo "exit 0" >mips +else + echo "Doesn't look like a MIPS system." + xxx_prompt=n + echo "exit 1" >mips +fi +chmod +x mips +$eunicefix mips +case "$usrinc" in +'') ;; +*) dflt="$usrinc";; +esac +case "$xxx_prompt" in +y) fn=d/ + echo " " + rp='Where are the include files you want to use?' + . ./getfile + usrinc="$ans" + ;; +*) usrinc="$dflt" + ;; +esac + +: Set private lib path +case "$plibpth" in +'') if ./mips; then + plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib" + fi;; +esac +case "$libpth" in +' ') dlist='';; +'') dlist="$loclibpth $plibpth $glibpth";; +*) dlist="$libpth";; +esac + +: Now check and see which directories actually exist, avoiding duplicates +libpth='' +for xxx in $dlist +do + if $test -d $xxx; then + case " $libpth " in + *" $xxx "*) ;; + *) libpth="$libpth $xxx";; + esac + fi +done +$cat <<'EOM' + +Some systems have incompatible or broken versions of libraries. Among +the directories listed in the question below, please remove any you +know not to be holding relevant libraries, and add any that are needed. +Say "none" for none. + +EOM +case "$libpth" in +'') dflt='none';; +*) + set X $libpth + shift + dflt=${1+"$@"} + ;; +esac +rp="Directories to use for library searches?" +. ./myread +case "$ans" in +none) libpth=' ';; +*) libpth="$ans";; +esac + +: compute shared library extension +case "$so" in +'') + if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then + dflt='sl' + else + dflt='so' + fi + ;; +*) dflt="$so";; +esac +$cat <cpp1.out 2>/dev/null && \ - $cpprun -DLFRULB=bar $ftry $cpplast cpp2.out 2>/dev/null && \ $contains 'foo.*xx.*bar' cpp1.out >/dev/null 2>&1 && \ $contains 'foo.*xx.*bar' cpp2.out >/dev/null 2>&1 @@ -3733,7 +4198,6 @@ EOM esac : flags used in final linking phase - case "$ldflags" in '') if ./venix; then dflt='-i -z' @@ -3787,7 +4251,7 @@ rmlist="$rmlist pdp11" : coherency check echo " " -echo "Checking your choice of C compiler, libs, and flags for coherency..." >&4 +echo "Checking your choice of C compiler and flags for coherency..." >&4 set X $cc $optimize $ccflags $ldflags -o try try.c $libs shift $cat >try.msg < try.c <<'EOF' #include -main() { exit(0); } +main() { printf("Ok\n"); exit(0); } EOF dflt=y -if sh -c "$cc $optimize $ccflags -o try try.c $ldflags $libs" >>try.msg 2>&1; then +if sh -c "$cc $optimize $ccflags $ldflags -o try try.c $libs" >>try.msg 2>&1; then if sh -c './try' >>try.msg 2>&1; then - dflt=n + xxx=`./try` + case "$xxx" in + "Ok") dflt=n ;; + *) echo 'The program compiled OK, but produced no output.' >> try.msg + case " $libs " in + *" -lsfio "*) + cat >> try.msg <<'EOQS' +If $libs contains -lsfio, and sfio is mis-configured, then it +sometimes (apparently) runs and exits with a 0 status, but with no +output! It may have to do with sfio's use of _exit vs. exit. + +EOQS + rp="You have a big problem. Shall I abort Configure" + dflt=y + ;; + esac + ;; + esac else echo "The program compiled OK, but exited with status $?." >>try.msg rp="You have a problem. Shall I abort Configure" @@ -3819,7 +4300,7 @@ else fi case "$dflt" in y) - $cat try.msg + $cat try.msg >&4 case "$knowitall" in '') echo "(The supplied flags might be incorrect with this C compiler.)" @@ -3839,17 +4320,24 @@ n) echo "OK, that should do.";; esac $rm -f try try.* core +: define a shorthand compile call +compile=' +mc_file=$1; +shift; +$cc $optimize $ccflags $ldflags -o ${mc_file}$_exe $* ${mc_file}.c $libs > /dev/null 2>&1;' + echo " " echo "Checking for GNU C Library..." >&4 cat >gnulibc.c </dev/null 2>&1 && \ - ./gnulibc | $contains '^GNU C Library' >/dev/null 2>&1; then +set gnulibc +if eval $compile && \ + ./gnulibc | $contains '^GNU C Library' >/dev/null 2>&1; then val="$define" echo "You are using the GNU C Library" else @@ -3942,7 +4430,7 @@ echo " " case "$libc" in '') libc=unknown case "$libs" in - *-lc_s*) libc=`./loc libc_s$lib_ext $libc $libpth` + *-lc_s*) libc=`./loc libc_s$_a $libc $libpth` esac ;; esac @@ -3960,15 +4448,15 @@ case "$libs" in : elif try=`./loc lib$thislib.$so X $libpth`; $test -f "$try"; then : - elif try=`./loc lib$thislib$lib_ext X $libpth`; $test -f "$try"; then + elif try=`./loc lib$thislib$_a X $libpth`; $test -f "$try"; then : - elif try=`./loc $thislib$lib_ext X $libpth`; $test -f "$try"; then + elif try=`./loc $thislib$_a X $libpth`; $test -f "$try"; then : elif try=`./loc lib$thislib X $libpth`; $test -f "$try"; then : elif try=`./loc $thislib X $libpth`; $test -f "$try"; then : - elif try=`./loc Slib$thislib$lib_ext X $xlibpth`; $test -f "$try"; then + elif try=`./loc Slib$thislib$_a X $xlibpth`; $test -f "$try"; then : else try='' @@ -3989,18 +4477,18 @@ unknown) : The messy sed command sorts on library version numbers. $test -r $1 || \ set `echo blurfl; echo $xxx/libc.$so.[0-9]* | \ - tr ' ' '\012' | egrep -v '\.[A-Za-z]*$' | $sed -e ' + tr ' ' '\012' | egrep -v '\.[A-Za-z]*$' | $sed -e ' h s/[0-9][0-9]*/0000&/g s/0*\([0-9][0-9][0-9][0-9][0-9]\)/\1/g G s/\n/ /' | \ - sort | $sed -e 's/^.* //'` + sort | $sed -e 's/^.* //'` eval set \$$# done $test -r $1 || set /usr/ccs/lib/libc.$so - $test -r $1 || set /lib/libsys_s$lib_ext - ;; + $test -r $1 || set /lib/libsys_s$_a + ;; *) set blurfl ;; @@ -4018,25 +4506,25 @@ elif $test -r /lib/libc && $test -r /lib/clib; then fi elif $test -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then echo "Your C library seems to be in $libc, as you said before." -elif $test -r $incpath/usr/lib/libc$lib_ext; then - libc=$incpath/usr/lib/libc$lib_ext; +elif $test -r $incpath/usr/lib/libc$_a; then + libc=$incpath/usr/lib/libc$_a; echo "Your C library seems to be in $libc. That's fine." -elif $test -r /lib/libc$lib_ext; then - libc=/lib/libc$lib_ext; +elif $test -r /lib/libc$_a; then + libc=/lib/libc$_a; echo "Your C library seems to be in $libc. You're normal." else - if tans=`./loc libc$lib_ext blurfl/dyick $libpth`; $test -r "$tans"; then + if tans=`./loc libc$_a blurfl/dyick $libpth`; $test -r "$tans"; then : elif tans=`./loc libc blurfl/dyick $libpth`; $test -r "$tans"; then libnames="$libnames "`./loc clib blurfl/dyick $libpth` elif tans=`./loc clib blurfl/dyick $libpth`; $test -r "$tans"; then : - elif tans=`./loc Slibc$lib_ext blurfl/dyick $xlibpth`; $test -r "$tans"; then + elif tans=`./loc Slibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then : - elif tans=`./loc Mlibc$lib_ext blurfl/dyick $xlibpth`; $test -r "$tans"; then + elif tans=`./loc Mlibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then : else - tans=`./loc Llibc$lib_ext blurfl/dyick $xlibpth` + tans=`./loc Llibc$_a blurfl/dyick $xlibpth` fi if $test -r "$tans"; then echo "Your C library seems to be in $tans, of all places." @@ -4084,15 +4572,12 @@ $sed 's/^/ /' libnames >&4 echo " " $echo $n "This may take a while...$c" >&4 -: Linux may need the special Dynamic option to nm for shared libraries. -: In general, this is stored in the nm_so_opt variable. -: Unfortunately, that option may be fatal on non-shared libraries. -for nm_libs_ext in $*; do - case $nm_libs_ext in - *$so*) nm $nm_so_opt $nm_opt $nm_libs_ext 2>/dev/null ;; - *) nm $nm_opt $nm_libs_ext 2>/dev/null ;; +for file in $*; do + case $file in + *$so*) nm $nm_so_opt $nm_opt $file 2>/dev/null;; + *) nm $nm_opt $file 2>/dev/null;; esac -done > libc.tmp +done >libc.tmp $echo $n ".$c" $grep fprintf libc.tmp > libc.ptf @@ -4168,16 +4653,16 @@ else for thisname in $libnames; do ar t $thisname >>libc.tmp done - $sed -e 's/\.o$//' < libc.tmp > libc.list + $sed -e "s/\\$_o\$//" < libc.tmp > libc.list echo "Ok." >&4 else echo "ar didn't seem to work right." >&4 echo "Maybe this is a Cray...trying bld instead..." >&4 - if bld t $libc | $sed -e 's/.*\///' -e 's/\.o:.*$//' > libc.list + if 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 + $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" >>libc.list ar t $thisname >>libc.tmp done echo "Ok." >&4 @@ -4276,770 +4761,519 @@ while $test "$cont"; do eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; fi; set $yyy; shift; shift; yyy=$@; case $# in 0) cont="";; - 2) xxf="echo \"but I found <\$1> $instead.\" >&4"; - xxnf="echo \"and I did not find <\$1> either.\" >&4";; - *) xxf="echo \"but I found <\$1\> instead.\" >&4"; - xxnf="echo \"there is no <\$1>, ...\" >&4";; - esac; -done; -while $test "$yyy"; -do set $yyy; var=$2; eval "was=\$$2"; - eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; - set $yyy; shift; shift; yyy=$@; -done' - -: see if dld is available -set dld.h i_dld -eval $inhdr - -: is a C symbol defined? -csym='tlook=$1; -case "$3" in --v) tf=libc.tmp; tc=""; tdc="";; --a) tf=libc.tmp; tc="[0]"; tdc="[]";; -*) tlook="^$1\$"; tf=libc.list; tc="()"; tdc="()";; -esac; -tx=yes; -case "$reuseval-$4" in -true-) ;; -true-*) tx=no; eval "tval=\$$4"; case "$tval" in "") tx=yes;; esac;; -esac; -case "$tx" in -yes) - case "$runnm" in - true) - if $contains $tlook $tf >/dev/null 2>&1; - then tval=true; - else tval=false; - fi;; - *) - echo "main() { extern short $1$tdc; printf(\"%hd\", $1$tc); }" > t.c; - if $cc $ccflags $ldflags -o t t.c $libs >/dev/null 2>&1; - then tval=true; - else tval=false; - fi; - $rm -f t t.c;; - esac;; -*) - case "$tval" in - $define) tval=true;; - *) tval=false;; - esac;; -esac; -eval "$2=$tval"' - -: define an is-in-libc? function -inlibc='echo " "; td=$define; tu=$undef; -sym=$1; var=$2; eval "was=\$$2"; -tx=yes; -case "$reuseval$was" in -true) ;; -true*) tx=no;; -esac; -case "$tx" in -yes) - set $sym tres -f; - eval $csym; - case "$tres" in - true) - echo "$sym() found." >&4; - case "$was" in $undef) . ./whoa; esac; eval "$var=\$td";; - *) - echo "$sym() NOT found." >&4; - case "$was" in $define) . ./whoa; esac; eval "$var=\$tu";; - esac;; -*) - case "$was" in - $define) echo "$sym() found." >&4;; - *) echo "$sym() NOT found." >&4;; - esac;; -esac' - -: see if dlopen exists -xxx_runnm="$runnm" -runnm=false -set dlopen d_dlopen -eval $inlibc -runnm="$xxx_runnm" - -: determine which dynamic loading, if any, to compile in -echo " " -dldir="ext/DynaLoader" -case "$usedl" in -$define|y|true) - dflt='y' - usedl="$define" - ;; -$undef|n|false) - dflt='n' - usedl="$undef" - ;; -*) - dflt='n' - case "$d_dlopen" in - $define) dflt='y' ;; - esac - case "$i_dld" in - $define) dflt='y' ;; - esac - : Does a dl_xxx.xs file exist for this operating system - $test -f ../$dldir/dl_${osname}.xs && dflt='y' - ;; -esac -rp="Do you wish to use dynamic loading?" -. ./myread -usedl="$ans" -case "$ans" in -y*) usedl="$define" - case "$dlsrc" in - '') - if $test -f ../$dldir/dl_${osname}.xs ; then - dflt="$dldir/dl_${osname}.xs" - elif $test "$d_dlopen" = "$define" ; then - dflt="$dldir/dl_dlopen.xs" - elif $test "$i_dld" = "$define" ; then - dflt="$dldir/dl_dld.xs" - else - dflt='' - fi - ;; - *) dflt="$dldir/$dlsrc" - ;; - esac - echo "The following dynamic loading files are available:" - : Can not go over to $dldir because getfile has path hard-coded in. - cd ..; ls -C $dldir/dl*.xs; cd UU - rp="Source file to use for dynamic loading" - fn="fne" - . ./getfile - usedl="$define" - : emulate basename - dlsrc=`echo $ans | $sed -e 's@.*/\([^/]*\)$@\1@'` - - $cat << EOM - -Some systems may require passing special flags to $cc -c to -compile modules that will be used to create a shared library. -To use no flags, say "none". - -EOM - case "$cccdlflags" in - '') case "$gccversion" in - '') case "$osname" in - hpux) dflt='+z' ;; - next) dflt='none' ;; - svr4*|esix*) dflt='-Kpic' ;; - irix*) dflt='-KPIC' ;; - solaris) case "$ccflags" in - *-DDEBUGGING*) dflt='-KPIC' ;; - *) dflt='-Kpic' ;; - esac ;; - sunos) dflt='-pic' ;; - *) dflt='none' ;; - esac ;; - *) case "$osname/$ccflags" in - solaris/*-DDEBUGGING*) dflt='-fPIC' ;; - *) dflt='-fpic' ;; - esac ;; - esac ;; - *) dflt="$cccdlflags" ;; - esac - rp="Any special flags to pass to $cc -c to compile shared library modules?" - . ./myread - case "$ans" in - none) cccdlflags=' ' ;; - *) cccdlflags="$ans" ;; - esac - - cat << EOM - -Some systems use ld to create libraries that can be dynamically loaded, -while other systems (such as those using ELF) use $cc. - -EOM - case "$ld" in - '') $cat >try.c <<'EOM' -/* Test for whether ELF binaries are produced */ -#include -#include -main() { - char b[4]; - int i = open("a.out",O_RDONLY); - if(i == -1) - exit(1); /* fail */ - if(read(i,b,4)==4 && b[0]==127 && b[1]=='E' && b[2]=='L' && b[3]=='F') - exit(0); /* succeed (yes, it's ELF) */ - else - exit(1); /* fail */ -} -EOM - if $cc $ccflags try.c >/dev/null 2>&1 && ./a.out; then - cat < $instead.\" >&4"; + xxnf="echo \"and I did not find <\$1> either.\" >&4";; + *) xxf="echo \"but I found <\$1\> instead.\" >&4"; + xxnf="echo \"there is no <\$1>, ...\" >&4";; + esac; +done; +while $test "$yyy"; +do set $yyy; var=$2; eval "was=\$$2"; + eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; + set $yyy; shift; shift; yyy=$@; +done' - rp="Any special flags to pass to $ld to create a dynamically loaded library?" - . ./myread - case "$ans" in - none) lddlflags=' ' ;; - *) lddlflags="$ans" ;; - esac +: see if dld is available +set dld.h i_dld +eval $inhdr - cat <&4 - -To build perl, you must add the current working directory to your -$xxx environtment variable before running make. You can do -this with - $xxx=\`pwd\`; export $xxx -for Bourne-style shells, or - setenv $xxx \`pwd\` -for Csh-style shells. You *MUST* do this before running make. - -EOM - ;; - *) useshrplib='false' ;; + case "$i_dld" in + $define) dflt='y' ;; esac + : Does a dl_xxx.xs file exist for this operating system + $test -f ../$dldir/dl_${osname}.xs && dflt='y' ;; esac - -case "$useshrplib" in -true) - case "$libperl" in +rp="Do you wish to use dynamic loading?" +. ./myread +usedl="$ans" +case "$ans" in +y*) usedl="$define" + case "$dlsrc" in '') - # Figure out a good name for libperl.so. Since it gets stored in - # a version-specific architecture-dependent library, the version - # number isn't really that important, except for making cc/ld happy. - # - # A name such as libperl.so.3.1 - majmin="libperl.$so.$patchlevel.$subversion" - # A name such as libperl.so.301 - majonly=`echo $patchlevel $subversion | - $awk '{printf "%d%02d", $1, $2}'` - majonly=libperl.$so.$majonly - # I'd prefer to keep the os-specific stuff here to a minimum, and - # rely on figuring it out from the naming of libc. - case "${osname}${osvers}" in - next4*) - dflt=libperl.5.$so - # XXX How handle the --version stuff for MAB? - ;; - linux*) # ld won't link with a bare -lperl otherwise. - dflt=libperl.$so - ;; - *) # Try to guess based on whether libc has major.minor. - case "$libc" in - *libc.$so.[0-9]*.[0-9]*) dflt=$majmin ;; - *libc.$so.[0-9]*) dflt=$majonly ;; - *) dflt=libperl.$so ;; - esac - ;; - esac + if $test -f ../$dldir/dl_${osname}.xs ; then + dflt="$dldir/dl_${osname}.xs" + elif $test "$d_dlopen" = "$define" ; then + dflt="$dldir/dl_dlopen.xs" + elif $test "$i_dld" = "$define" ; then + dflt="$dldir/dl_dld.xs" + else + dflt='' + fi ;; - *) dflt=$libperl + *) dflt="$dldir/$dlsrc" ;; esac - cat << EOM + echo "The following dynamic loading files are available:" + : Can not go over to $dldir because getfile has path hard-coded in. + cd ..; ls -C $dldir/dl*.xs; cd UU + rp="Source file to use for dynamic loading" + fn="fne" + . ./getfile + usedl="$define" + : emulate basename + dlsrc=`echo $ans | $sed -e 's@.*/\([^/]*\)$@\1@'` -I need to select a good name for the shared libperl. If your system uses -library names with major and minor numbers, then you might want something -like $majmin. Alternatively, if your system uses a single version -number for shared libraries, then you might want to use $majonly. -Or, your system might be quite happy with a simple libperl.$so. + $cat << EOM -Since the shared libperl will get installed into a version-specific -architecture-dependent directory, the version number of the shared perl -library probably isn't important, so the default should be o.k. +Some systems may require passing special flags to $cc -c to +compile modules that will be used to create a shared library. +To use no flags, say "none". EOM - rp='What name do you want to give to the shared libperl?' - . ./myread - libperl=$ans - echo "Ok, I'll use $libperl" - ;; -*) - libperl="libperl${lib_ext}" - ;; -esac + case "$cccdlflags" in + '') case "$gccversion" in + '') case "$osname" in + hpux) dflt='+z' ;; + next) dflt='none' ;; + irix*) dflt='-KPIC' ;; + svr4*|esix*|solaris) + case "$ccflags" in + *-DDEBUGGING*) dflt='-KPIC' ;; + *) dflt='-Kpic' ;; + esac + ;; + sunos) dflt='-pic' ;; + *) dflt='none' ;; + esac + ;; + *) case "$osname" in + svr4*|esix*|solaris) + case "$ccflags" in + *-DDEBUGGING*) dflt='-fPIC' ;; + *) dflt='-fpic' ;; + esac + ;; + *) dflt='-fpic' ;; + esac ;; + esac ;; + *) dflt="$cccdlflags" ;; + esac + rp="Any special flags to pass to $cc -c to compile shared library modules?" + . ./myread + case "$ans" in + none) cccdlflags=' ' ;; + *) cccdlflags="$ans" ;; + esac -# Detect old use of shrpdir via undocumented Configure -Dshrpdir -case "$shrpdir" in -'') ;; -*) $cat >&4 <&4 <try.c <<'EOM' +/* Test for whether ELF binaries are produced */ +#include +#include +main() { + char b[4]; + int i = open("a.out",O_RDONLY); + if(i == -1) + exit(1); /* fail */ + if(read(i,b,4)==4 && b[0]==127 && b[1]=='E' && b[2]=='L' && b[3]=='F') + exit(0); /* succeed (yes, it's ELF) */ + else + exit(1); /* fail */ +} EOM - ;; - *) - $cat >&4 </dev/null 2>&1 && ./a.out; then + cat <&4 -Adding $xxx to the flags -passed to $ld so that the perl executable will find the -installed shared $libperl. + rp="What command should be used to create dynamic libraries?" + . ./myread + ld="$ans" + + cat << EOM + +Some systems may require passing special flags to $ld to create a +library that can be dynamically loaded. If your ld flags include +-L/other/path options to locate libraries outside your loader's normal +search path, you may need to specify those -L options here as well. To +use no flags, say "none". EOM + case "$lddlflags" in + '') case "$osname" in + hpux) dflt='-b' ;; + linux|irix*) dflt='-shared' ;; + next) dflt='none' ;; + solaris) dflt='-G' ;; + sunos) dflt='-assert nodefinitions' ;; + svr4*|esix*) dflt="-G $ldflags" ;; + *) dflt='none' ;; + esac ;; + *) dflt="$lddlflags" ;; + esac + +: Try to guess additional flags to pick up local libraries. +for thisflag in $ldflags; do + case "$thisflag" in + -L*) + case " $dflt " in + *" $thisflag "*) ;; + *) dflt="$dflt $thisflag" ;; esac ;; esac -fi -# Respect a hint or command-line value. -case "$shrpenv" in -'') shrpenv="$tmp_shrpenv" ;; +done + +case "$dflt" in +'') dflt='none' ;; esac -: determine where manual pages go -set man1dir man1dir none -eval $prefixit -$cat <$first) 2>/dev/null; then - if $test -f 123456789abcde; then - echo 'You cannot have filenames longer than 14 characters. Sigh.' >&4 - val="$undef" - else - if (echo hi >$second) 2>/dev/null; then - if $test -f /tmp/cf$$/123456789abcde; then - $cat <<'EOM' -That's peculiar... You can have filenames longer than 14 characters, but only -on some of the filesystems. Maybe you are using NFS. Anyway, to avoid problems -I shall consider your system cannot support long filenames at all. -EOM - val="$undef" - else - echo 'You can have filenames longer than 14 characters.' >&4 - val="$define" - fi - else - $cat <<'EOM' -How confusing! Some of your filesystems are sane enough to allow filenames -longer than 14 characters but some others like /tmp can't even think about them. -So, for now on, I shall assume your kernel does not allow them at all. -EOM - val="$undef" - fi - fi -else - $cat <<'EOM' -You can't have filenames longer than 14 chars. You can't even think about them! -EOM - val="$undef" -fi -set d_flexfnam -eval $setvar -$rm -rf /tmp/cf$$ 123456789abcde* + $cat << EOM -: determine where library module manual pages go -set man3dir man3dir none -eval $prefixit -$cat <&4 -case "$nroff" in -nroff) - $cat <<'EOM' -However, you don't have nroff, so they're probably useless to you. -You can use the supplied perldoc script instead. -EOM - case "$man3dir" in - '') man3dir="none";; - esac;; -esac +To build perl, you must add the current working directory to your +$xxx environtment variable before running make. You can do +this with + $xxx=\`pwd\`; export $xxx +for Bourne-style shells, or + setenv $xxx \`pwd\` +for Csh-style shells. You *MUST* do this before running make. -case "$d_flexfnam" in -undef) - $cat <<'EOM' -However, your system can't handle the long file names like File::Basename.3. -You can use the supplied perldoc script instead. EOM - case "$man3dir" in - '') man3dir="none";; - esac;; -esac - -echo "If you don't want the manual sources installed, answer 'none'." -: We dont use /usr/local/man/man3 because some man programs will -: only show the /usr/local/man/man3 contents, and not the system ones, -: thus man less will show the perl module less.pm, but not the system -: less command. We might also conflict with TCL man pages. -: However, something like /opt/perl/man/man3 is fine. -case "$man3dir" in -'') case "$prefix" in - *perl*) dflt=`echo $man1dir | - $sed -e 's/man1/man3/g' -e 's/man\.1/man\.3/g'` ;; - *) dflt="$privlib/man/man3" ;; + ;; + *) useshrplib='false' ;; esac ;; -' ') dflt=none;; -*) dflt="$man3dir" ;; esac -echo " " -fn=dn+~ -rp="Where do the $spackage library man pages (source) go?" -. ./getfile -if test "X$man3direxp" != "X$ansexp"; then - installman3dir='' -fi +case "$useshrplib" in +true) + case "$libperl" in + '') + # Figure out a good name for libperl.so. Since it gets stored in + # a version-specific architecture-dependent library, the version + # number isn't really that important, except for making cc/ld happy. + # + # A name such as libperl.so.3.1 + majmin="libperl.$so.$patchlevel.$subversion" + # A name such as libperl.so.301 + majonly=`echo $patchlevel $subversion | + $awk '{printf "%d%02d", $1, $2}'` + majonly=libperl.$so.$majonly + # I'd prefer to keep the os-specific stuff here to a minimum, and + # rely on figuring it out from the naming of libc. + case "${osname}${osvers}" in + next4*) + dflt=libperl.5.$so + # XXX How handle the --version stuff for MAB? + ;; + linux*) # ld won't link with a bare -lperl otherwise. + dflt=libperl.$so + ;; + *) # Try to guess based on whether libc has major.minor. + case "$libc" in + *libc.$so.[0-9]*.[0-9]*) dflt=$majmin ;; + *libc.$so.[0-9]*) dflt=$majonly ;; + *) dflt=libperl.$so ;; + esac + ;; + esac + ;; + *) dflt=$libperl + ;; + esac + cat << EOM -man3dir="$ans" -man3direxp="$ansexp" -case "$man3dir" in -'') man3dir=' ' - installman3dir='';; +I need to select a good name for the shared libperl. If your system uses +library names with major and minor numbers, then you might want something +like $majmin. Alternatively, if your system uses a single version +number for shared libraries, then you might want to use $majonly. +Or, your system might be quite happy with a simple libperl.$so. + +Since the shared libperl will get installed into a version-specific +architecture-dependent directory, the version number of the shared perl +library probably isn't important, so the default should be o.k. + +EOM + rp='What name do you want to give to the shared libperl?' + . ./myread + libperl=$ans + echo "Ok, I'll use $libperl" + ;; +*) + libperl="libperl${_a}" + ;; esac -if $afs; then - $cat <&4 <&4 <&4 <&4 -case "$man3dir" in -' ') - man3ext='0' - ;; -*) - rp="What suffix should be used for the $spackage library man pages?" - case "$man3ext" in - '') case "$man3dir" in - *3) dflt=3 ;; - *3p) dflt=3p ;; - *3pm) dflt=3pm ;; - *l) dflt=l;; - *n) dflt=n;; - *o) dflt=o;; - *p) dflt=p;; - *C) dflt=C;; - *L) dflt=L;; - *L3) dflt=L3;; - *) dflt=3;; +Adding $xxx to the flags +passed to $ld so that the perl executable will find the +installed shared $libperl. + +EOM + ;; esac ;; - *) dflt="$man3ext";; esac - . ./myread - man3ext="$ans" - ;; +fi +# Respect a hint or command-line value. +case "$shrpenv" in +'') shrpenv="$tmp_shrpenv" ;; esac : see if we have to deal with yellow pages, now NIS. @@ -5086,6 +5320,15 @@ if $test -d /usr/etc/yp || $test -d /etc/yp; then ;; esac fi +case "$hostcat" in +'') hostcat='cat /etc/hosts';; +esac +case "$groupcat" in +'') groupcat='cat /etc/group';; +esac +case "$passcat" in +'') passcat='cat /etc/passwd';; +esac : now get the host name echo " " @@ -5181,15 +5424,11 @@ case "$myhostname" in *) case "$mydomain" in '') { - : If we use NIS, try ypmatch. - : Is there some reason why this was not done before? test "X$hostcat" = "Xypcat hosts" && ypmatch "$myhostname" hosts 2>/dev/null |\ $sed -e 's/[ ]*#.*//; s/$/ /' > hosts && \ $test -s hosts } || { - : Extract only the relevant hosts, reducing file size, - : remove comments, insert trailing space for later use. $hostcat | $sed -n -e "s/[ ]*#.*//; s/\$/ / /[ ]$myhostname[ . ]/p" > hosts } @@ -5211,8 +5450,6 @@ case "$myhostname" in tans=`./loc resolv.conf X /etc /usr/etc` if $test -f "$tans"; then echo "(Attempting domain name extraction from $tans)" - : Why was there an Egrep here, when Sed works? - : Look for either a search or a domain directive. dflt=.`$sed -n -e 's/ / /g' \ -e 's/^search *\([^ ]*\).*/\1/p' $tans \ | ./tr '[A-Z]' '[a-z]' 2>/dev/null` @@ -5401,68 +5638,15 @@ case "$startperl" in *) echo "I'll use $perlpath in \"eval 'exec'\"" ;; esac -: determine where public executable scripts go -set scriptdir scriptdir -eval $prefixit -case "$scriptdir" in -'') - dflt="$bin" - : guess some guesses - $test -d /usr/share/scripts && dflt=/usr/share/scripts - $test -d /usr/share/bin && dflt=/usr/share/bin - $test -d /usr/local/script && dflt=/usr/local/script - $test -d $prefixexp/script && dflt=$prefixexp/script - set dflt - eval $prefixup - ;; -*) dflt="$scriptdir" - ;; -esac -$cat <. Versions 5.003_02 and later of perl allow alternate IO +Previous version of $package used the standard IO mechanisms as defined +in . Versions 5.003_02 and later of perl allow alternate IO mechanisms via a "PerlIO" abstraction, but the stdio mechanism is still -the default and is the only supported mechanism. This abstraction -layer can use AT&T's sfio (if you already have sfio installed) or -fall back on standard IO. This PerlIO abstraction layer is -experimental and may cause problems with some extension modules. +the default. This abstraction layer can use AT&T's sfio (if you already +have sfio installed) or regular stdio. Using PerlIO with sfio may cause +problems with some extension modules. Using PerlIO with stdio is safe, +but it is slower than plain stdio and therefore is not the default. If this doesn't make any sense to you, just accept the default 'n'. EOM @@ -5555,9 +5739,9 @@ esac for xxx_convert in $xxx_list; do echo "Trying $xxx_convert" - $rm -f try try.o - if $cc $ccflags -DTRY_$xxx_convert $ldflags -o try \ - try.c $libs > /dev/null 2>&1 ; then + $rm -f try try$_o + set try -DTRY_$xxx_convert + if eval $compile; then echo "$xxx_convert" found. >&4 if ./try; then echo "I'll use $xxx_convert to convert floats into a string." >&4 @@ -5607,15 +5791,15 @@ main() { EOCP : check sys/file.h first, no particular reason here if $test `./findhdr sys/file.h` && \ - $cc $cppflags -DI_SYS_FILE access.c -o access >/dev/null 2>&1 ; then + $cc $cppflags -DI_SYS_FILE -o access access.c >/dev/null 2>&1 ; then h_sysfile=true; echo " defines the *_OK access constants." >&4 elif $test `./findhdr fcntl.h` && \ - $cc $cppflags -DI_FCNTL access.c -o access >/dev/null 2>&1 ; then + $cc $cppflags -DI_FCNTL -o access access.c >/dev/null 2>&1 ; then h_fcntl=true; echo " defines the *_OK access constants." >&4 elif $test `./findhdr unistd.h` && \ - $cc $cppflags -DI_UNISTD access.c -o access >/dev/null 2>&1 ; then + $cc $cppflags -DI_UNISTD -o access access.c >/dev/null 2>&1 ; then echo " defines the *_OK access constants." >&4 else echo "I can't find the four *_OK access constants--I'll use mine." >&4 @@ -5667,10 +5851,10 @@ eval $inhdr set getpgrp d_getpgrp eval $inlibc -echo "Checking to see which flavor of getpgrp is in use . . . " case "$d_getpgrp" in "$define") echo " " + echo "Checking to see which flavor of getpgrp is in use..." $cat >set.c < @@ -5729,10 +5913,10 @@ $rm -f set set.c set setpgrp d_setpgrp eval $inlibc -echo "Checking to see which flavor of setpgrp is in use . . . " case "$d_setpgrp" in "$define") echo " " + echo "Checking to see which flavor of setpgrp is in use..." $cat >set.c < @@ -5762,7 +5946,7 @@ EOP echo 'You have to use setpgrp() instead of setpgrp(pid,pgrp).' >&4 val="$undef" else - echo "I can't seem to compile and run the test program." + echo "(I can't seem to compile and run the test program.)" if ./usg; then xxx="a USG one, i.e. you use setpgrp()." else @@ -5785,7 +5969,6 @@ EOP esac set d_bsdsetpgrp eval $setvar -d_bsdpgrp=$d_bsdsetpgrp $rm -f set set.c : see if bzero exists set bzero d_bzero @@ -5803,28 +5986,22 @@ main() printf("intsize=%d;\n", sizeof(int)); printf("longsize=%d;\n", sizeof(long)); printf("shortsize=%d;\n", sizeof(short)); - fflush(stdout); exit(0); } EOCP -# If $libs contains -lsfio, and sfio is mis-configured, then it -# sometimes (apparently) runs and exits with a 0 status, but with no -# output!. Thus we check with test -s whether we actually got any -# output. I think it has to do with sfio's use of _exit vs. exit, -# but I don't know for sure. --Andy Dougherty 1/27/97. - if $cc $optimize $ccflags $ldflags -o intsize intsize.c $libs >/dev/null 2>&1 && - ./intsize > intsize.out 2>/dev/null && test -s intsize.out ; then - eval `$cat intsize.out` + set intsize + if eval $compile && ./intsize > /dev/null; then + eval `./intsize` echo "Your integers are $intsize bytes long." echo "Your long integers are $longsize bytes long." echo "Your short integers are $shortsize bytes long." else $cat >&4 </dev/null 2>&1 ; then echo "You have int (*signal())() instead of void." >&4 val="$undef" elif $contains 'void.*\*[ ]*signal' $$.tmp >/dev/null 2>&1 ; then - echo "You have void (*signal())() instead of int." >&4 + echo "You have void (*signal())()." >&4 val="$define" elif $contains 'extern[ ]*[(\*]*signal' $$.tmp >/dev/null 2>&1 ; then echo "You have int (*signal())() instead of void." >&4 val="$undef" +elif $contains 'void.*\*.*sig' $$.tmp >/dev/null 2>&1 ; then + echo "You have void (*signal())()." >&4 + val="$define" else case "$d_voidsig" in '') @@ -5868,9 +6048,12 @@ else *) val="$undef";; esac;; "$define") - echo "As you already told me, signal handler returns void." >&4;; - *) - echo "As you already told me, signal handler returns int." >&4;; + echo "As you already told me, signal handler returns void." >&4 + val="$define" + ;; + *) echo "As you already told me, signal handler returns int." >&4 + val="$undef" + ;; esac fi set d_voidsig @@ -5909,7 +6092,8 @@ main() exit(result); } EOCP -if $cc -o try $ccflags try.c >/dev/null 2>&1; then +set try +if eval $compile; then ./try yyy=$? else @@ -5990,7 +6174,8 @@ main() } EOCP -if $cc -o try $ccflags try.c >/dev/null 2>&1; then +set try +if eval $compile; then ./try castflags=$? else @@ -6029,7 +6214,8 @@ va_dcl exit((unsigned long)vsprintf(buf,"%s",args) > 10L); } EOF - if $cc $ccflags vprintf.c -o vprintf >/dev/null 2>&1 && ./vprintf; then + set vprintf + if eval $compile && ./vprintf; then echo "Your vsprintf() returns (int)." >&4 val2="$undef" else @@ -6087,19 +6273,19 @@ if set crypt val -f d_crypt; eval $csym; $val; then val="$define" cryptlib='' else - cryptlib=`./loc Slibcrypt$lib_ext "" $xlibpth` + cryptlib=`./loc Slibcrypt$_a "" $xlibpth` if $test -z "$cryptlib"; then - cryptlib=`./loc Mlibcrypt$lib_ext "" $xlibpth` + cryptlib=`./loc Mlibcrypt$_a "" $xlibpth` else cryptlib=-lcrypt fi if $test -z "$cryptlib"; then - cryptlib=`./loc Llibcrypt$lib_ext "" $xlibpth` + cryptlib=`./loc Llibcrypt$_a "" $xlibpth` else cryptlib=-lcrypt fi if $test -z "$cryptlib"; then - cryptlib=`./loc libcrypt$lib_ext "" $libpth` + cryptlib=`./loc libcrypt$_a "" $libpth` else cryptlib=-lcrypt fi @@ -6115,8 +6301,8 @@ eval $setvar : get csh whereabouts case "$csh" in -'csh') val="$undef" ;; -*) val="$define" ;; +'csh') val="$undef" ;; +*) val="$define" ;; esac set d_csh eval $setvar @@ -6328,8 +6514,8 @@ main() EOM : Call the object file tmp-dyna.o in case dlext=o. if $cc $ccflags $cccdlflags -c dyna.c > /dev/null 2>&1 && - mv dyna${obj_ext} tmp-dyna${obj_ext} > /dev/null 2>&1 && - $ld $lddlflags -o dyna.$dlext tmp-dyna${obj_ext} > /dev/null 2>&1 && + mv dyna${_o} tmp-dyna${_o} > /dev/null 2>&1 && + $ld $lddlflags -o dyna.$dlext tmp-dyna${_o} > /dev/null 2>&1 && $cc $ccflags $ldflags $cccdlflags $ccdlflags fred.c -o fred $libs > /dev/null 2>&1; then xxx=`./fred` case $xxx in @@ -6377,7 +6563,7 @@ main() { EOCP : check sys/file.h first to get FREAD on Sun if $test `./findhdr sys/file.h` && \ - $cc $cppflags "-DI_SYS_FILE" open3.c -o open3 >/dev/null 2>&1 ; then + set open3 -DI_SYS_FILE && eval $compile; then h_sysfile=true; echo " defines the O_* constants..." >&4 if ./open3; then @@ -6388,7 +6574,7 @@ if $test `./findhdr sys/file.h` && \ val="$undef" fi elif $test `./findhdr fcntl.h` && \ - $cc "-DI_FCNTL" open3.c -o open3 >/dev/null 2>&1 ; then + set open3 -DI_FCNTL && eval $compile; then h_fcntl=true; echo " defines the O_* constants..." >&4 if ./open3; then @@ -6438,7 +6624,8 @@ main() { exit(0); } EOCP - if $cc $ccflags $ldflags try.c -o try >/dev/null 2>&1; then + set try + if eval $compile; then o_nonblock=`./try` case "$o_nonblock" in '') echo "I can't figure it out, assuming O_NONBLOCK will do.";; @@ -6516,7 +6703,8 @@ main() exit(0); /* Bye bye, thank you for playing! */ } EOCP - if $cc $ccflags $ldflags try.c -o try >/dev/null 2>&1; then + set try + if eval $compile; then echo "$startsh" >mtry echo "./try >try.out 2>try.ret 3>try.err || exit 4" >>mtry chmod +x mtry @@ -6768,7 +6956,8 @@ main() { exit(1); } EOCP -if $cc $ccflags $ldflags -o isascii isascii.c $libs >/dev/null 2>&1 ; then +set isascii +if eval $compile; then echo "isascii() found." >&4 val="$define" else @@ -6894,7 +7083,7 @@ case "$ans" in y*|true) usemymalloc='y' mallocsrc='malloc.c' - mallocobj='malloc.o' + mallocobj="malloc$_o" d_mymalloc="$define" case "$libs" in *-lmalloc*) @@ -6973,6 +7162,81 @@ eval $inlibc set poll d_poll eval $inlibc + +: see whether the various POSIXish _yields exist within given cccmd +$cat >try.c < +main() { + YIELD(); + exit(0); +} +EOP +: see if pthread_yield exists within given cccmd, +: if we do not usethreads this may well end up undef. +set try -DYIELD=pthread_yield +if eval $compile; then + val="$define" + echo 'pthread_yield() found.' >&4 +else + val="$undef" + echo 'pthread_yield() NOT found.' >&4 +fi +set d_pthread_yield +eval $setvar + +: see if sched_yield exists within given cccmd, +: if we do not usethreads this may well end up undef. +set try -DYIELD=sched_yield +if eval $compile; then + val="$define" + echo 'sched_yield() found.' >&4 +else + val="$undef" + echo 'sched_yield() NOT found.' >&4 +fi +set d_sched_yield +eval $setvar +$rm -f try try.* + +: test whether pthreads are created in joinable -- aka undetached -- state +if test "X$usethreads" != X; then + echo >&4 "Checking whether pthreads are created joinable." + $cat >try.c <<'EOCP' +#include +#include +int main() { + pthread_attr_t attr; + int detachstate; + printf("%s\n", + pthread_attr_init(&attr) == 0 && + pthread_attr_getdetachstate(&attr, &detachstate) == 0 && + detachstate == PTHREAD_CREATE_DETACHED ? + "detached" : "joinable"); + exit(0); +} +EOCP + set try + if eval $compile; then + yyy=`./try` + case "$yyy" in + detached) echo "Nope, they aren't." ;; + *) echo "Yup, they are." ;; + esac + else + echo "(I can't execute the test program--assuming they are.)" + yyy=joinable + fi + $rm -f try try.* + case "$yyy" in + detached) val="$undef" ;; + *) val="$define" ;; + esac + set d_pthreads_created_joinable + eval $setvar +else + d_pthreads_created_joinable="$undef" +fi + : see if this is a pwd.h system set pwd.h i_pwd eval $inhdr @@ -7095,15 +7359,14 @@ case "$d_bcopy" in "$define") echo " " echo "Checking to see if your bcopy() can do overlapping copies..." >&4 - $cat >foo.c <try.c <>foo.c <<'EOCP' + $cat >>try.c <<'EOCP' #include - #ifdef I_MEMORY # include #endif @@ -7126,8 +7389,6 @@ int len; int off; int align; -/* Copy "abcde..." string to char abc[] so that gcc doesn't - try to store the string in read-only memory. */ bcopy("abcdefghijklmnopqrstuvwxyz0123456789", abc, 36); for (align = 7; align >= 0; align--) { @@ -7145,9 +7406,9 @@ for (align = 7; align >= 0; align--) { exit(0); } EOCP - if $cc $optimize $ccflags $ldflags foo.c \ - -o safebcpy $libs >/dev/null 2>&1; then - if ./safebcpy 2>/dev/null; then + set try + if eval $compile; then + if ./try 2>/dev/null; then echo "Yes, it can." val="$define" else @@ -7164,7 +7425,7 @@ EOCP fi ;; esac -$rm -f foo.* safebcpy core +$rm -f try.* try core set d_safebcpy eval $setvar @@ -7174,15 +7435,14 @@ case "$d_memcpy" in "$define") echo " " echo "Checking to see if your memcpy() can do overlapping copies..." >&4 - $cat >foo.c <try.c <>foo.c <<'EOCP' + $cat >>try.c <<'EOCP' #include - #ifdef I_MEMORY # include #endif @@ -7224,9 +7484,9 @@ for (align = 7; align >= 0; align--) { exit(0); } EOCP - if $cc $optimize $ccflags $ldflags foo.c \ - -o safemcpy $libs >/dev/null 2>&1; then - if ./safemcpy 2>/dev/null; then + set try + if eval $compile; then + if ./try 2>/dev/null; then echo "Yes, it can." val="$define" else @@ -7243,7 +7503,7 @@ EOCP fi ;; esac -$rm -f foo.* safemcpy core +$rm -f try.* try core set d_safemcpy eval $setvar @@ -7252,16 +7512,15 @@ val="$undef" case "$d_memcmp" in "$define") echo " " - echo "Checking to see if your memcmp() can compare relative magnitude..." >&4 - $cat >foo.c <&4 + $cat >try.c <>foo.c <<'EOCP' + $cat >>try.c <<'EOCP' #include - #ifdef I_MEMORY # include #endif @@ -7285,9 +7544,9 @@ if ((a < b) && memcmp(&a, &b, 1) < 0) exit(0); } EOCP - if $cc $optimize $ccflags $ldflags foo.c \ - -o sanemcmp $libs >/dev/null 2>&1; then - if ./sanemcmp 2>/dev/null; then + set try + if eval $compile; then + if ./try 2>/dev/null; then echo "Yes, it can." val="$define" else @@ -7298,7 +7557,7 @@ EOCP fi ;; esac -$rm -f foo.* sanemcmp core +$rm -f try.* try core set d_sanemcmp eval $setvar @@ -7511,12 +7770,7 @@ else echo 'sigaction NOT found.' >&4 val="$undef" fi - -$cat > set.c <<'EOP' -/* Solaris 2.5_x86 with SunWorks Pro C 3.0.1 doesn't have a complete - sigaction structure if compiled with cc -Xc. This compile test - will fail then. -*/ +$cat > try.c <<'EOP' #include #include #include @@ -7525,21 +7779,21 @@ main() struct sigaction act, oact; } EOP - -if $cc $ccflags $ldflags -o set set.c $libs >/dev/null 2>&1; then +set try +if eval $compile; then : else echo "But you don't seem to have a useable struct sigaction." >&4 val="$undef" fi set d_sigaction; eval $setvar -$rm -f set set.o set.c +$rm -f try try$_o try.c : see if sigsetjmp exists echo " " case "$d_sigsetjmp" in '') - $cat >set.c <<'EOP' + $cat >try.c <<'EOP' #include sigjmp_buf env; int set = 1; @@ -7552,8 +7806,9 @@ main() exit(1); } EOP - if $cc $ccflags $ldflags -o set set.c $libs > /dev/null 2>&1 ; then - if ./set >/dev/null 2>&1; then + set try + if eval $compile; then + if ./try >/dev/null 2>&1; then echo "POSIX sigsetjmp found." >&4 val="$define" else @@ -7577,7 +7832,7 @@ EOM esac set d_sigsetjmp eval $setvar -$rm -f set.c set +$rm -f try.c try socketlib='' sockethdr='' @@ -7600,10 +7855,10 @@ else : we will have to assume that it supports the 4.2 BSD interface d_oldsock="$undef" else - echo "You don't have Berkeley networking in libc$lib_ext..." >&4 - if test -f /usr/lib/libnet$lib_ext; then - ( (nm $nm_opt /usr/lib/libnet$lib_ext | eval $nm_extract) || \ - ar t /usr/lib/libnet$lib_ext) 2>/dev/null >> libc.list + echo "You don't have Berkeley networking in libc$_a..." >&4 + if test -f /usr/lib/libnet$_a; then + ( (nm $nm_opt /usr/lib/libnet$_a | eval $nm_extract) || \ + ar t /usr/lib/libnet$_a) 2>/dev/null >> libc.list if $contains socket libc.list >/dev/null 2>&1; then echo "...but the Wollongong group seems to have hacked it in." >&4 socketlib="-lnet" @@ -7616,7 +7871,7 @@ else d_oldsock="$define" fi else - echo "or even in libnet$lib_ext, which is peculiar." >&4 + echo "or even in libnet$_a, which is peculiar." >&4 d_socket="$undef" d_oldsock="$undef" fi @@ -7710,7 +7965,8 @@ main() { } EOP val="$undef" -if $cc $ccflags $ldflags -o try try.c $libs >/dev/null 2>&1; then +set try +if eval $compile; then if ./try; then echo "Your stdio acts pretty std." val="$define" @@ -7740,7 +7996,6 @@ esac set d_stdio_cnt_lval eval $setvar - : see if _base is also standard val="$undef" case "$d_stdstdio" in @@ -7760,7 +8015,8 @@ main() { exit(1); } EOP - if $cc $ccflags $ldflags -o try try.c $libs > /dev/null 2>&1; then + set try + if eval $compile; then if ./try; then echo "And its _base field acts std." val="$define" @@ -8064,7 +8320,8 @@ case "$d_closedir" in #endif int main() { return closedir(opendir(".")); } EOM - if $cc $ccflags $ldflags -o closedir closedir.c $libs > /dev/null 2>&1; then + set closedir + if eval $compile; then if ./closedir > /dev/null 2>&1 ; then echo "Yes, it does." val="$undef" @@ -8152,7 +8409,8 @@ main() printf("%d\n", (char *)&try.bar - (char *)&try.foo); } EOCP - if $cc $ccflags try.c -o try >/dev/null 2>&1; then + set try + if eval $compile; then dflt=`./try` else dflt='8' @@ -8200,7 +8458,8 @@ main() } EOCP xxx_prompt=y - if $cc $ccflags try.c -o try >/dev/null 2>&1 && ./try > /dev/null; then + set try + if eval $compile && ./try > /dev/null; then dflt=`./try` case "$dflt" in [1-4][1-4][1-4][1-4]|12345678|87654321) @@ -8237,79 +8496,30 @@ $cat >cpp_stuff.c <<'EOCP' #define RCAT(a,b)a/**/b #define ACAT(a,b)a ## b RCAT(Rei,ser) -ACAT(Cir,cus) -EOCP -$cppstdin $cppflags $cppminus cpp_stuff.out 2>&1 -if $contains 'Circus' cpp_stuff.out >/dev/null 2>&1; then - echo "Oh! Smells like ANSI's been here." - echo "We can catify or stringify, separately or together!" - cpp_stuff=42 -elif $contains 'Reiser' cpp_stuff.out >/dev/null 2>&1; then - echo "Ah, yes! The good old days!" - echo "However, in the good old days we don't know how to stringify and" - echo "catify at the same time." - cpp_stuff=1 -else - $cat >&4 <&4 - $cat >try.c < -#include -#include -main() -{ -#ifdef DB_VERSION_MAJOR /* DB version >= 2: not yet. */ - printf("You have Berkeley DB Version %d.%d\n", - DB_VERSION_MAJOR, DB_VERSION_MINOR); - printf("Perl currently only supports up to version 1.86.\n"); - exit(2); -#else -#if defined(_DB_H_) && defined(BTREEMAGIC) && defined(HASHMAGIC) - exit(0); /* DB version < 2: the coast is clear. */ -#else - exit(1); /* not Berkeley DB? */ -#endif -#endif -} -EOCP - if $cc $optimize $ccflags $ldflags -o try try.c $libs && ./try; then - echo 'Looks OK. (Perl supports up to version 1.86).' >&4 - else - echo "I can't use Berkeley DB with your . I'll disable Berkeley DB." >&4 - i_db=$undef - case " $libs " in - *"-ldb "*) - : Remove db from list of libraries to use - echo "Removing unusable -ldb from library list" >&4 - set `echo X $libs | $sed -e 's/-ldb / /' -e 's/-ldb$//'` - shift - libs="$*" - echo "libs = $libs" >&4 - ;; - esac - fi - $rm -f try.* - ;; -esac +ACAT(Cir,cus) +EOCP +$cppstdin $cppflags $cppminus cpp_stuff.out 2>&1 +if $contains 'Circus' cpp_stuff.out >/dev/null 2>&1; then + echo "Oh! Smells like ANSI's been here." >&4 + echo "We can catify or stringify, separately or together!" + cpp_stuff=42 +elif $contains 'Reiser' cpp_stuff.out >/dev/null 2>&1; then + echo "Ah, yes! The good old days!" >&4 + echo "However, in the good old days we don't know how to stringify and" + echo "catify at the same time." + cpp_stuff=1 +else + $cat >&4 < #include + +#ifndef DB_VERSION_MAJOR u_int32_t hash_cb (ptr, size) const void *ptr; size_t size; @@ -8333,6 +8545,7 @@ main() { info.hash = hash_cb; } +#endif EOCP if $cc $ccflags -c try.c >try.out 2>&1 ; then if $contains warning try.out >>/dev/null 2>&1 ; then @@ -8354,6 +8567,83 @@ EOCP esac case "$i_db" in +$define) + : Check db version. + echo " " + echo "Checking Berkeley DB version ..." >&4 + $cat >try.c < +#include +#include +main() +{ +#ifdef DB_VERSION_MAJOR /* DB version >= 2 */ + int Major, Minor, Patch ; + unsigned long Version ; + (void)db_version(&Major, &Minor, &Patch) ; + printf("You have Berkeley DB Version 2 or greater\n"); + + printf("db.h is from Berkeley DB Version %d.%d.%d\n", + DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH); + printf("libdb is from Berkeley DB Version %d.%d.%d\n", + Major, Minor, Patch) ; + + /* check that db.h & libdb are compatible */ + if (DB_VERSION_MAJOR != Major || DB_VERSION_MINOR != Minor || DB_VERSION_PATCH != Patch) { + printf("db.h and libdb are incompatible\n") ; + exit(3); + } + + printf("db.h and libdb are compatible\n") ; + + Version = DB_VERSION_MAJOR * 1000000 + DB_VERSION_MINOR * 1000 + + DB_VERSION_PATCH ; + + /* needs to be >= 2.3.4 */ + if (Version < 2003004) { + /* if (DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR == 0 && DB_VERSION_PATCH +< 5) { */ + printf("but Perl needs Berkeley DB 2.3.4 or greater\n") ; + exit(2); + } + + exit(0); +#else +#if defined(_DB_H_) && defined(BTREEMAGIC) && defined(HASHMAGIC) + printf("You have Berkeley DB Version 1\n"); + exit(0); /* DB version < 2: the coast is clear. */ +#else + exit(1); /* not Berkeley DB? */ +#endif +#endif +} +EOCP + set try + if eval $compile && ./try; then + echo 'Looks OK.' >&4 + else + echo "I can't use Berkeley DB with your . I'll disable Berkeley DB." >&4 + i_db=$undef + case " $libs " in + *"-ldb "*) + : Remove db from list of libraries to use + echo "Removing unusable -ldb from library list" >&4 + set `echo X $libs | $sed -e 's/-ldb / /' -e 's/-ldb$//'` + shift + libs="$*" + echo "libs = $libs" >&4 + ;; + esac + fi + $rm -f try.* + ;; +esac + +case "$i_db" in define) : Check the return type needed for prefix echo " " @@ -8365,6 +8655,8 @@ define) #endif #include #include + +#ifndef DB_VERSION_MAJOR size_t prefix_cb (key1, key2) const DBT *key1; const DBT *key2; @@ -8375,6 +8667,7 @@ main() { info.prefix = prefix_cb; } +#endif EOCP if $cc $ccflags -c try.c >try.out 2>&1 ; then if $contains warning try.out >>/dev/null 2>&1 ; then @@ -8479,7 +8772,6 @@ echo "Hmm, your compiler has some difficulty with void. Checking further..." >&4 fi fi esac -: Only prompt user if support does not match the level we want case "$voidflags" in "$defvoidused") ;; *) @@ -8530,6 +8822,7 @@ eval $inlibc set setgroups d_setgrps eval $inlibc + : Find type of 2nd arg to 'getgroups()' and 'setgroups()' echo " " case "$d_getgrps$d_setgrps" in @@ -8560,39 +8853,23 @@ rp="What type is lseek's offset on this system declared as?" lseektype="$ans" echo " " -case "$make" in -'') - make=`./loc make make $pth` - case "$make" in - /*) echo make is in $make. ;; - ?:[\\/]*) echo make is in $make. ;; - *) echo "I don't know where 'make' is, and my life depends on it." >&4 - echo "Go find a make program or fix your PATH setting!" >&4 - exit 1 - ;; - esac - ;; -*) echo make is in $make. ;; -esac - -$echo $n "Checking if your $make program sets \$(MAKE)... $c" >&4 +echo "Checking if your $make program sets \$(MAKE)..." >&4 case "$make_set_make" in '') $sed 's/^X //' > testmake.mak << 'EOF' Xall: -X @echo 'ac_maketemp="$(MAKE)"' +X @echo 'maketemp="$(MAKE)"' EOF - : GNU make sometimes prints "make[1]: Entering...", which would confuse us. case "`$make -f testmake.mak 2>/dev/null`" in - *ac_maketemp=*) make_set_make='#' ;; + *maketemp=*) make_set_make='#' ;; *) make_set_make="MAKE=$make" ;; esac $rm -f testmake.mak ;; esac case "$make_set_make" in -'#') echo "Yup, it does." >&4 ;; -*) echo "Nope, it doesn't." >&4 ;; +'#') echo "Yup, it does.";; +*) echo "Nope, it doesn't.";; esac : see what type is used for mode_t @@ -8604,6 +8881,217 @@ rp="What type is used for file modes?" . ./myread modetype="$ans" +: Cruising for prototypes +echo " " +echo "Checking out function prototypes..." >&4 +$cat >prototype.c <<'EOCP' +main(int argc, char *argv[]) { + exit(0);} +EOCP +if $cc $ccflags -c prototype.c >prototype.out 2>&1 ; then + echo "Your C compiler appears to support function prototypes." + val="$define" +else + echo "Your C compiler doesn't seem to understand function prototypes." + val="$undef" +fi +set prototype +eval $setvar +$rm -f prototype* + +: define a fucntion to check prototypes +$cat > protochk <> protochk <<'EOSH' + +$rm -f try.c +foo="$1" +shift +while test $# -ge 2; do + case "$1" in + $define) echo "#include <$2>" >> try.c ;; + literal) echo "$2" >> try.c ;; + esac + shift 2 +done +test "$prototype" = "$define" && echo '#define CAN_PROTOTYPE' >> try.c +cat >> try.c <<'EOCP' +#ifdef CAN_PROTOTYPE +#define _(args) args +#else +#define _(args) () +#endif +EOCP +echo "$foo" >> try.c +echo 'int no_real_function_has_this_name _((void)) { return 0; }' >> try.c +$cc $optimize $ccflags -c try.c > /dev/null 2>&1 +status=$? +$rm -f try.[co] +exit $status +EOSH +chmod +x protochk +$eunicefix protochk + +: see if gethostbyaddr exists +set gethostbyaddr d_gethbyaddr +eval $inlibc + +: see if gethostbyname exists +set gethostbyname d_gethbyname +eval $inlibc + +: see if getnetbyaddr exists +set getnetbyaddr d_getnbyaddr +eval $inlibc + +: see if this is a netdb.h system +set netdb.h i_netdb +eval $inhdr + +: see what type is used for size_t +set size_t sizetype 'unsigned int' stdio.h sys/types.h +eval $typedef +dflt="$sizetype" +echo " " +rp="What type is used for the length parameter for string functions?" +. ./myread +sizetype="$ans" + +: check for type of arguments to gethostbyaddr. +if test "X$netdb_host_type" = X -o "X$netdb_hlen_type" = X; then + case "$d_gethbyaddr" in + $define) + $cat <&4 -$cat >prototype.c <<'EOCP' -main(int argc, char *argv[]) { - exit(0);} -EOCP -if $cc $ccflags -c prototype.c >prototype.out 2>&1 ; then - echo "Your C compiler appears to support function prototypes." - val="$define" -else - echo "Your C compiler doesn't seem to understand function prototypes." - val="$undef" -fi -set prototype -eval $setvar -$rm -f prototype* +rp="What type are process ids on this system declared as?" +. ./myread +pidtype="$ans" : check for size of random number generator echo " " @@ -8677,11 +9156,11 @@ main() for (i = 0; max; i++) max /= 2; printf("%d\n",i); - fflush(stdout); } EOCP - if $cc $ccflags $ldflags -o try try.c $libs >/dev/null 2>&1 ; then - dflt=`try` + set try + if eval $compile; then + dflt=`./try$_exe` else dflt='?' echo "(I can't seem to compile the test program...)" @@ -8694,7 +9173,7 @@ esac rp='How many bits does your rand() function produce?' . ./myread randbits="$ans" -$rm -f try.c try.o try +$rm -f try.* try : see if ar generates random libraries by itself echo " " @@ -8707,18 +9186,18 @@ EOP $cc $ccflags -c bar1.c >/dev/null 2>&1 $cc $ccflags -c bar2.c >/dev/null 2>&1 $cc $ccflags -c foo.c >/dev/null 2>&1 -ar rc bar$lib_ext bar2.o bar1.o >/dev/null 2>&1 -if $cc $ccflags $ldflags -o foobar foo.o bar$lib_ext $libs > /dev/null 2>&1 && +$ar rc bar$_a bar2$_o bar1$_o >/dev/null 2>&1 +if $cc $ccflags $ldflags -o foobar foo$_o bar$_a $libs > /dev/null 2>&1 && ./foobar >/dev/null 2>&1; then - echo "ar appears to generate random libraries itself." + echo "$ar appears to generate random libraries itself." orderlib=false ranlib=":" -elif ar ts bar$lib_ext >/dev/null 2>&1 && - $cc $ccflags $ldflags -o foobar foo.o bar$lib_ext $libs > /dev/null 2>&1 && +elif $ar ts bar$_a >/dev/null 2>&1 && + $cc $ccflags $ldflags -o foobar foo$_o bar$_a $libs > /dev/null 2>&1 && ./foobar >/dev/null 2>&1; then - echo "a table of contents needs to be added with 'ar ts'." + echo "a table of contents needs to be added with '$ar ts'." orderlib=false - ranlib="ar ts" + ranlib="$ar ts" else case "$ranlib" in :) ranlib='';; @@ -8788,10 +9267,9 @@ for i_time in '' '-DI_TIME'; do for i_systime in '-DI_SYSTIME' ''; do case "$flags" in '') $echo $n ".$c" - if $cc $ccflags \ - $i_time $i_systime $i_systimek $sysselect $s_timeval $s_timezone \ - try.c -o try >/dev/null 2>&1 ; then - set X $i_time $i_systime $i_systimek $sysselect $s_timeval + set try $i_time $i_systime $i_systimek $sysselect $s_timeval $s_timezone + if eval $compile; then + set X $i_time $i_systime $i_systimek $sysselect $s_timeval shift flags="$*" echo " " @@ -8859,7 +9337,8 @@ main() { #endif } EOCP -if $cc $ccflags -DTRYBITS fd_set.c -o fd_set >fd_set.out 2>&1 ; then +set fd_set -DTRYBITS +if eval $compile; then d_fds_bits="$define" d_fd_set="$define" echo "Well, your system knows about the normal fd_set typedef..." >&4 @@ -8876,7 +9355,8 @@ else $cat <<'EOM' Hmm, your compiler has some difficulty with fd_set. Checking further... EOM - if $cc $ccflags fd_set.c -o fd_set >fd_set.out 2>&1 ; then + set fd_set + if eval $compile; then d_fds_bits="$undef" d_fd_set="$define" echo "Well, your system has some sort of fd_set available..." >&4 @@ -8898,73 +9378,50 @@ EOM fi $rm -f fd_set* - -: check for type of arguments to select. This will only really -: work if the system supports prototypes and provides one for -: select. -case "$d_select" in -$define) - : Make initial guess - case "$selecttype" in - ''|' ') - case "$d_fd_set" in - $define) xxx='fd_set *' ;; - *) xxx='int *' ;; +: check for type of arguments to select. +case "$selecttype" in +'') case "$d_select" in + $define) + $cat <try.c < -#ifdef HAS_SOCKET -#include /* Might include */ -#endif -#ifdef I_SYS_TIME -#include -#endif -#ifdef I_SYS_SELECT -#include -#endif -main() -{ - int width; - Select_fd_set_t readfds; - Select_fd_set_t writefds; - Select_fd_set_t exceptfds; - struct timeval timeout; - select(width, readfds, writefds, exceptfds, &timeout); - exit(0); -} -EOCP - if $cc $ccflags -c -DSelect_fd_set_t="$xxx" try.c >/dev/null 2>&1 ; then - selecttype="$xxx" - echo "Your system uses $xxx for the arguments to select." >&4 - elif $cc $ccflags -c -DSelect_fd_set_t="$yyy" try.c >/dev/null 2>&1 ; then - selecttype="$yyy" - echo "Your system uses $yyy for the arguments to select." >&4 - else - rp='What is the type for the 2nd, 3rd, and 4th arguments to select?' - dflt="$xxx" - . ./myread - selecttype="$ans" - fi - $rm -f try.[co] - ;; -*) selecttype='int *' ;; esac @@ -9102,8 +9559,8 @@ EOP $cat >signal_cmd </dev/null 2>&1; then - ./signal | $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst +if $cc $optimize $ccflags $ldflags -o signal signal.c $libs >/dev/null 2>&1; then + ./signal$_exe | $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst else echo "(I can't seem be able to compile the test program -- Guessing)" echo 'kill -l' >signal @@ -9116,27 +9573,25 @@ else echo \$@ | $tr ' ' '\012' | \ $awk '{ printf \$1; printf " %d\n", ++s; }' >signal.lst fi -$rm -f signal.c signal signal.o +$rm -f signal.c signal signal$_o EOS chmod a+x signal_cmd $eunicefix signal_cmd : generate list of signal names echo " " -case "$sig_name" in -'') sig_num='' ;; -esac -case "$sig_num" in -'') sig_name='' ;; -esac -case "$sig_name" in +case "$sig_name_init" in '') echo "Generating a list of signal names and numbers..." >&4 ./signal_cmd sig_name=`$awk '{printf "%s ", $1}' signal.lst` sig_name="ZERO $sig_name" - sig_num=`$awk '{printf "%d ", $2}' signal.lst` - sig_num="0 $sig_num" + sig_name_init=`$awk 'BEGIN { printf "\"ZERO\", " } + { printf "\"%s\", ", $1 } + END { printf "0\n" }' signal.lst` + sig_num=`$awk 'BEGIN { printf "0, " } + { printf "%d, ", $2} + END { printf "0\n"}' signal.lst` ;; esac echo "The following signals are available:" @@ -9157,15 +9612,6 @@ echo $sig_name | $awk \ }' $rm -f signal signal.c signal.awk signal.lst signal_cmd -: see what type is used for size_t -set size_t sizetype 'unsigned int' stdio.h sys/types.h -eval $typedef -dflt="$sizetype" -echo " " -rp="What type is used for the length parameter for string functions?" -. ./myread -sizetype="$ans" - : see what type is used for signed size_t set ssize_t ssizetype int stdio.h sys/types.h eval $typedef @@ -9183,23 +9629,16 @@ main() printf("int\n"); else printf("long\n"); - fflush(stdout); exit(0); } EOM echo " " -# If $libs contains -lsfio, and sfio is mis-configured, then it -# sometimes (apparently) runs and exits with a 0 status, but with no -# output!. Thus we check with test -s whether we actually got any -# output. I think it has to do with sfio's use of _exit vs. exit, -# but I don't know for sure. --Andy Dougherty 1/27/97. -if $cc $optimize $ccflags $ldflags -o ssize ssize.c $libs > /dev/null 2>&1 && - ./ssize > ssize.out 2>/dev/null && test -s ssize.out ; then - ssizetype=`$cat ssize.out` +set ssize +if eval $compile && ./ssize > /dev/null; then + ssizetype=`./ssize` echo "I'll be using $ssizetype for functions returning a byte count." >&4 else $cat >&4 </dev/null 2>&1; then else echo "false" fi -$rm -f varargs.o +$rm -f varargs$_o EOP chmod +x varargs @@ -9792,32 +10231,36 @@ cd ../UU avail_ext='' for xxx in $known_extensions ; do case "$xxx" in - DB_File) case "$i_db" in + DB_File|db_file) case "$i_db" in $define) avail_ext="$avail_ext $xxx" ;; esac ;; - GDBM_File) case "$i_gdbm" in + GDBM_File|gdbm_fil) case "$i_gdbm" in $define) avail_ext="$avail_ext $xxx" ;; esac ;; - NDBM_File) case "$i_ndbm" in + NDBM_File|ndbm_fil) case "$i_ndbm" in $define) avail_ext="$avail_ext $xxx" ;; esac ;; - ODBM_File) case "${i_dbm}${i_rpcsvcdbm}" in + ODBM_File|odbm_fil) case "${i_dbm}${i_rpcsvcdbm}" in *"${define}"*) avail_ext="$avail_ext $xxx" ;; esac ;; - POSIX) case "$useposix" in + POSIX|posix) case "$useposix" in true|define|y) avail_ext="$avail_ext $xxx" ;; esac ;; - Opcode) case "$useopcode" in + Opcode|opcode) case "$useopcode" in true|define|y) avail_ext="$avail_ext $xxx" ;; esac ;; - Socket) case "$d_socket" in - $define) avail_ext="$avail_ext $xxx" ;; + Socket|socket) case "$d_socket" in + true|$define|y) avail_ext="$avail_ext $xxx" ;; + esac + ;; + Thread|thread) case "$usethreads" in + true|$define|y) avail_ext="$avail_ext $xxx" ;; esac ;; *) avail_ext="$avail_ext $xxx" @@ -9961,15 +10404,17 @@ echo "Creating config.sh..." >&4 $spitshell <config.sh $startsh # -# This file was produced by running the Configure script. It holds all -# the definitions figured out by Configure. Should you modify any of -# these values, do not forget to propagate your changes by running -# "Configure -S"; or, equivalently, you may run each .SH file yourself. +# This file was produced by running the Configure script. It holds all the +# definitions figured out by Configure. Should you modify one of these values, +# do not forget to propagate your changes by running "Configure -der". You may +# instead choose to run each of the .SH files by yourself, or "Configure -S". # +# Package name : $package +# Source directory : $src # Configuration time: $cf_time -# Configured by: $cf_by -# Target system: $myuname +# Configured by : $cf_by +# Target system : $myuname Author='$Author' Date='$Date' @@ -9982,6 +10427,9 @@ RCSfile='$RCSfile' Revision='$Revision' Source='$Source' State='$State' +_a='$_a' +_exe='$_exe' +_o='$_o' afs='$afs' alignbytes='$alignbytes' aphostname='$aphostname' @@ -10037,7 +10485,6 @@ d_bcopy='$d_bcopy' d_bincompat3='$d_bincompat3' d_bsd='$d_bsd' d_bsdgetpgrp='$d_bsdgetpgrp' -d_bsdpgrp='$d_bsdpgrp' d_bsdsetpgrp='$d_bsdsetpgrp' d_bzero='$d_bzero' d_casti32='$d_casti32' @@ -10075,10 +10522,12 @@ d_fpathconf='$d_fpathconf' d_fsetpos='$d_fsetpos' d_ftime='$d_ftime' d_getgrps='$d_getgrps' -d_setgrps='$d_setgrps' +d_gethbyaddr='$d_gethbyaddr' +d_gethbyname='$d_gethbyname' d_gethent='$d_gethent' d_gethname='$d_gethname' d_getlogin='$d_getlogin' +d_getnbyaddr='$d_getnbyaddr' d_getpgid='$d_getpgid' d_getpgrp2='$d_getpgrp2' d_getpgrp='$d_getpgrp' @@ -10112,7 +10561,6 @@ d_msgrcv='$d_msgrcv' d_msgsnd='$d_msgsnd' d_mymalloc='$d_mymalloc' d_nice='$d_nice' -d_oldarchlib='$d_oldarchlib' d_oldsock='$d_oldsock' d_open3='$d_open3' d_pathconf='$d_pathconf' @@ -10121,6 +10569,8 @@ d_phostname='$d_phostname' d_pipe='$d_pipe' d_poll='$d_poll' d_portable='$d_portable' +d_pthread_yield='$d_pthread_yield' +d_pthreads_created_joinable='$d_pthreads_created_joinable' d_pwage='$d_pwage' d_pwchange='$d_pwchange' d_pwclass='$d_pwclass' @@ -10135,6 +10585,7 @@ d_rmdir='$d_rmdir' d_safebcpy='$d_safebcpy' d_safemcpy='$d_safemcpy' d_sanemcmp='$d_sanemcmp' +d_sched_yield='$d_sched_yield' d_seekdir='$d_seekdir' d_select='$d_select' d_sem='$d_sem' @@ -10143,6 +10594,7 @@ d_semget='$d_semget' d_semop='$d_semop' d_setegid='$d_setegid' d_seteuid='$d_seteuid' +d_setgrps='$d_setgrps' d_setlinebuf='$d_setlinebuf' d_setlocale='$d_setlocale' d_setpgid='$d_setpgid' @@ -10260,6 +10712,7 @@ i_malloc='$i_malloc' i_math='$i_math' i_memory='$i_memory' i_ndbm='$i_ndbm' +i_netdb='$i_netdb' i_neterrno='$i_neterrno' i_niin='$i_niin' i_pwd='$i_pwd' @@ -10358,13 +10811,15 @@ mydomain='$mydomain' myhostname='$myhostname' myuname='$myuname' n='$n' +netdb_hlen_type='$netdb_hlen_type' +netdb_host_type='$netdb_host_type' +netdb_name_type='$netdb_name_type' +netdb_net_type='$netdb_net_type' nm_opt='$nm_opt' nm_so_opt='$nm_so_opt' nroff='$nroff' o_nonblock='$o_nonblock' obj_ext='$obj_ext' -oldarchlib='$oldarchlib' -oldarchlibexp='$oldarchlibexp' optimize='$optimize' orderlib='$orderlib' osname='$osname' @@ -10379,6 +10834,7 @@ perladmin='$perladmin' perlpath='$perlpath' pg='$pg' phostname='$phostname' +pidtype='$pidtype' plibpth='$plibpth' pmake='$pmake' pr='$pr' @@ -10406,6 +10862,7 @@ shortsize='$shortsize' shrpenv='$shrpenv' shsharp='$shsharp' sig_name='$sig_name' +sig_name_init='$sig_name_init' sig_num='$sig_num' signal_t='$signal_t' sitearch='$sitearch' @@ -10423,6 +10880,7 @@ sort='$sort' spackage='$spackage' spitshell='$spitshell' split='$split' +src='$src' ssizetype='$ssizetype' startperl='$startperl' startsh='$startsh' @@ -10431,6 +10889,7 @@ stdchar='$stdchar' stdio_base='$stdio_base' stdio_bufsiz='$stdio_bufsiz' stdio_cnt='$stdio_cnt' +stdio_filbuf='$stdio_filbuf' stdio_ptr='$stdio_ptr' strings='$strings' submit='$submit' @@ -10456,6 +10915,7 @@ useperlio='$useperlio' useposix='$useposix' usesfio='$usesfio' useshrplib='$useshrplib' +usethreads='$usethreads' usevfork='$usevfork' usrinc='$usrinc' uuname='$uuname' @@ -10467,8 +10927,8 @@ zip='$zip' EOT : add special variables -$test -f patchlevel.h && \ -awk '/^#define/ {printf "%s=%s\n",$2,$3}' patchlevel.h >>config.sh +$test -f $src/patchlevel.h && \ +awk '/^#define/ {printf "%s=%s\n",$2,$3}' $src/patchlevel.h >>config.sh echo "CONFIG=true" >>config.sh : propagate old symbols @@ -10562,6 +11022,17 @@ else echo "Done." fi +if $test -f Policy.sh; then + $cat <