diff options
Diffstat (limited to 'U/Oldconfig.U')
-rw-r--r-- | U/Oldconfig.U | 223 |
1 files changed, 154 insertions, 69 deletions
diff --git a/U/Oldconfig.U b/U/Oldconfig.U index 18c2a811b0..2b6d3a0157 100644 --- a/U/Oldconfig.U +++ b/U/Oldconfig.U @@ -1,12 +1,3 @@ -?X: These units are based on the ones supplied with dist-3.0 -?X: patchlevel 22. They have been changed or enhanced to work with -?X: perl5alpha. I would appreciate hearing about any changes, -?X: corrections, or enhancements. -?X: Andy Dougherty doughera@lafcol.lafayette.edu -?X: Dept. of Physics -?X: Lafayette College -?X: Easton, PA 18042-1782 -?X: Sat Apr 2 15:45:17 EST 1994 ?RCS: $Id: Oldconfig.U,v 3.0.1.2 1994/01/24 14:05:02 ram Exp $ ?RCS: ?RCS: Copyright (c) 1991-1993, Raphael Manfredi @@ -34,8 +25,8 @@ ?X: This unit tries to remember what we did last time we ran Configure, mostly ?X: for the sake of setting defaults. ?X: -?MAKE:Oldconfig hint myuname: Instruct Myread uname sed test cat rm n c \ - contains Loc Options +?MAKE:Oldconfig hint myuname osname osvers: Instruct Myread uname \ + sed test cat rm n c contains Loc Options ?MAKE: -pick wipe $@ %< ?S:myuname: ?S: The output of 'uname -a' if available, otherwise the hostname. On Xenix, @@ -46,7 +37,18 @@ ?S: Gives the type of hints used for previous answers. May be one of ?S: "default", "recommended" or "previous". ?S:. -?T:tmp file oldmyuname tans _ +?S:osname: +?S: This variable contains the operating system name (e.g. sunos, +?S: solaris, hpux, etc.). It can be useful later on for setting +?S: defaults. It is set to '' if we can't figure it out. +?S:. +?S:osvers: +?S: This variable contains the operating system version (e.g. +?S: 4.1.3, 5.2, etc.). It is primarily used for helping select +?S: an appropriate hints file, but might be useful elsewhere for +?S: setting defaults. It is set to '' if we can't figure it out. +?S:. +?T:tmp file oldmyuname hintfile tans _ ?LINT:change n c : Try to determine whether config.sh was made on this system case "$config_sh" in @@ -112,13 +114,13 @@ EOM : Half the following guesses are probably wrong... If you have better : tests or hints, please send them to <MAINTLOC> : The metaconfig authors would also appreciate a copy... - $test -f /irix && dflt="$dflt sgi" - $test -f /xenix && dflt="$dflt sco_xenix" - $test -f /dynix && dflt="$dflt dynix" - $test -f /dnix && dflt="$dflt dnix" - $test -f /bin/mips && /bin/mips && dflt="$dflt mips" - $test -d /NextApps && test -f /usr/adm/software_version && dflt="$dflt next" - $test -d /usr/include/minix && dflt="$dflt minix" + $test -f /irix && osname=sgi + $test -f /xenix && osname=sco_xenix + $test -f /dynix && osname=dynix + $test -f /dnix && osname=dnix + $test -f /bin/mips && /bin/mips && osname=mips + $test -d /NextApps && test -f /usr/adm/software_version && osname=next + $test -d /usr/include/minix && osname=minix ?X: If we have uname, we already computed a suitable uname -a output, correctly ?X: formatted for Xenix, and it lies in $myuname. if $test -f $uname; then @@ -128,63 +130,80 @@ EOM $test -f $5.sh && dflt="$dflt $5" case "$5" in - fps*) dflt="$dflt fps";; + fps*) osname=fps ;; mips*) case "$4" in - umips) dflt="$dflt umips";; - *) dflt="$dflt mips";; + umips) osname=umips ;; + *) osname=mips ;; esac;; - [23]100) dflt="$dflt mips";; - next*) dflt="$dflt next" ;; - news*) dflt="$dflt news" ;; + [23]100) osname=mips ;; + next*) osname=next ;; + news*) osname=news ;; i386*) if $test -f /etc/kconfig; then + osname=isc if $contains _SYSV3 /usr/include/stdio.h > /dev/null 2>&1 ; then - dflt="$dflt isc_3_2_3" + osvers=3.2.3 elif $contains _POSIX_SOURCE /usr/include/stdio.h > /dev/null 2>&1 ; then - dflt="$dflt isc_3_2_2" + osvers=3.2.2 fi - : i386.sh hint is wrong for Interactive. - dflt=`echo $dflt | $sed 's/i386//'` fi ;; esac case "$1" in - aix) dflt="$dflt aix_rs" ;; - sun[Oo][Ss]) case "$3" in - [34]*) vers=`echo $3 | $sed 's/\./_/g'` - dflt="$dflt sunos_$vers" ;; - 5*) vers=`echo $3 | $sed 's/^5/2/g'` - dflt="$dflt solaris_$vers" ;; + aix) osname=aix_rs ;; + sunos) osname=sunos + case "$3" in + [34]*) osvers=$3 ;; + 5*) osname=solaris + osvers=`echo $3 | $sed 's/^5/2/g'` ;; + esac + ;; + solaris) osname=solaris + case "$3" in + 5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;; esac ;; - [sS]olaris) case "$3" in - 5*) vers=`echo $3 | $sed 's/^5/2/g'` - dflt="$dflt solaris_$vers" ;; + dnix) osname=dnix ;; + dgux) osname=dgux ;; + genix) osname=genix ;; + hp*ux) osname=hpux ;; + next) osname=next ;; + irix) osname=sgi ;; + ultrix) osname=ultrix + case "$3" in + 1*) osvers=1 ;; + 2*) osvers=2 ;; + 3*) osvers=3 ;; + 4*) osvers=4 ;; esac ;; - dnix) dflt="$dflt dnix" ;; - dgux) dflt="$dflt dgux" ;; - genix) dflt="$dflt genix" ;; - hp*ux) dflt="$dflt hpux" ;; - next) dflt="$dflt next" ;; - irix) dflt="$dflt sgi" ;; - ultrix) case "$3" in - 3*) dflt="$dflt ultrix_3" ;; - 4*) dflt="$dflt ultrix_4" ;; + osf1) case "$5" in + alpha) osname=dec_osf + case "$3" in + [vt]1\.*) osvers=1 ;; + [vt]2\.*) osvers=2 ;; + [vt]3\.*) osvers=3 ;; + esac + ;; + hp*) osname=hp_osf1 ;; # TR + mips) osname=mips_osf1 ;; # TR + # TR = Technology Releases: (un^N)supported esac ;; - uts) dflt="$dflt uts" ;; - $2) case "$dflt" in + uts) osname=uts ;; + $2) case "$osname" in *isc*) ;; *) if test -f /etc/systemid; then + osname=sco + : Does anyone know if these next gyrations are needed set `echo $3 | $sed 's/\./ /g'` $4 if $test -f sco_$1_$2_$3.sh; then - dflt="$dflt sco_$1_$2_$3" + osvers=$1.$2.$3 elif $test -f sco_$1_$2.sh; then - dflt="$dflt sco_$1_$2" + osvers=$1.$2 elif $test -f sco_$1.sh; then - dflt="$dflt sco_$1" + osvers=$1 fi fi ;; @@ -196,25 +215,31 @@ EOM if test -f /vmunix -a -f news_os.sh; then (what /vmunix | tr '[A-Z]' '[a-z]') > ../UU/kernel.what 2>&1 if $contains news-os ../UU/kernel.what >/dev/null 2>&1; then - dflt="$dflt news_os" + osname=news_os fi $rm -f ../UU/kernel.what fi fi - set X `echo $dflt | tr ' ' '\012' | sort | uniq` - shift - dflt='' - for file in $*; do - if $test -f "$file.sh"; then - dflt="$dflt $file" - fi - done - set X $dflt - shift - dflt=${1+"$@"} - case "$dflt" in - '') dflt=none;; + + : Now look for a hint file osname_osvers + file=`echo "${osname}_${osvers}" | sed -e 's@\.@_@g' -e 's@_$@@'` + case "$file" in + '') dflt=none ;; + *) case "$osvers" in + '') dflt=$file + ;; + *) if $test -f $file.sh ; then + dflt=$file + elif $test -f "${osname}.sh" ; then + dflt="${osname}" + else + dflt=none + fi + ;; + esac + ;; esac + $cat <<EOM You may give one or more space-separated answers, or "none" if appropriate. @@ -223,17 +248,40 @@ If your OS version has no hints, DO NOT give a wrong version -- say "none". EOM rp="Which of these apply, if any?" . ../UU/myread - for file in $ans; do + tans=$ans + for file in $tans; do if $test -f $file.sh; then . ./$file.sh $cat $file.sh >> ../UU/config.sh - elif $test X$ans = X -o X$ans = Xnone ; then + elif $test X$tans = X -o X$tans = Xnone ; then : nothing else - echo "$file.sh does not exist -- ignored" + : Give one chance to correct a possible typo. + echo "$file.sh does not exist" + dflt=$file + rp="hint to use instead?" + . ../UU/myread + for file in $ans; do + if $test -f "$file.sh"; then + . ./$file.sh + $cat $file.sh >> ../UU/config.sh + elif $test X$ans = X -o X$ans = Xnone ; then + : nothing + else + echo "$file.sh does not exist -- ignored." + fi + done fi done + hint=recommended + : Remember our hint file for later. + if $test -f "$file.sh" ; then + hintfile="$file.sh" + else + hintfile=none + fi + cd .. fi cd UU @@ -282,3 +330,40 @@ for file in $loclist $trylist; do eval $file="\$_$file" done +cat << EOM +Configure uses the operating system name and version to set some defaults. +Say "none" to leave it blank. +EOM + +case "$osname" in + ''|' ') + case "$hintfile" in + none) dflt=none ;; + *) dflt=`echo $hintfile | sed -e 's/\.sh$//' -e 's/_.*$//'` ;; + esac + ;; + *) dflt="$osname" ;; +esac +rp="Operating system name?" +. ./myread +case "$ans" in + none) osname='' ;; + *) osname="$ans" ;; +esac + +case "$osvers" in + ''|' ') + case "$hintfile" in + none) dflt=none ;; + *) dflt=`echo $hintfile | sed -e 's/\.sh$//' -e 's/^[^_]*//'` + dflt=`echo $dflt | sed -e 's/^_//' -e 's/_/./g'` ;; + esac + ;; + *) dflt="$osvers" ;; +esac +rp="Operating system version?" +. ./myread +case "$ans" in + none) osvers='' ;; + *) osvers="$ans" ;; +esac |