diff options
Diffstat (limited to 'Configure')
-rwxr-xr-x | Configure | 565 |
1 files changed, 0 insertions, 565 deletions
diff --git a/Configure b/Configure deleted file mode 100755 index e760044043dd..000000000000 --- a/Configure +++ /dev/null @@ -1,565 +0,0 @@ -#!/bin/csh -f -# -# Configuration script for top. -# -# Use with version 3.0 and higher. -# -set PRIME = "/usr/games/primes" -set vars = (module LoadMax topn NominalTopn delay owner group mode random \ - TableSize bindir mandir manext mansty \ - Cmdshell Cmdcc Cmdawk Cmdinstall cdefs) -set fastrack = 0 -set yesno = (no yes) - -onintr byebye - -# make sure that getans is there and ready -if (! -e getans) then - echo 'This package is not complete. The shell file "getans" is missing.' - exit 10 -endif -chmod +x getans - -if ($#argv > 0) then -# fast track configuration - set fastrack = 1 -else -cat <<'EOF' -Configuration for top, version 3.5 - -One moment.... -'EOF' -endif - -# collect file names and module names -ls machine/m_*.c >$$.f -ls machine/m_*.man >$$.m -sed -e 's@^machine/m_@@' -e 's/.c$//' $$.f >$$.n - -# build Make.desc -sed -e 's@\.c@.desc\\@' $$.f | sed -e '$s/\\//' >$$.a -sed -e "/^DESCS/r $$.a" Make.desc.X >Make.desc - -# build desc files and SYNOPSIS as needed -make -f Make.desc >/dev/null -if ($status != 0) then - echo "Unable to build the synopsis." - echo 'Make sure the command "make" is on your path and try' - echo 'running Configure again.' - exit 1 -endif - -if (-e .defaults) then - echo "" - echo "Reading configuration from last time..." - source .defaults - set nodefaults = 0 - if ($fastrack == 1) then - set module = $1 - endif -else - if ($fastrack == 1) then - echo "No previous configuration was found." - set fastrack = 0 - set module = $1 - else - set module = "" - endif - set LoadMax = 5.0 - set topn = 15 - set NominalTopn = 18 - set delay = 5 - set TableSize = 0 - set bindir = /usr/local/bin - set mandir = /usr/man/manl - set manext = l - set mansty = man - set nodefaults = 1 - set Cmdshell = /bin/sh - set Cmdawk = awk - set Cmdinstall = ./install - set Cmdcc = cc - set cdefs = -O -endif -echo "" - -if ($fastrack == 1) then - grep -s $module $$.n >/dev/null - if ($status != 0) then - echo "$module is not recognized. To see a list of available modules" - echo 'run "Configure" with no arguments.' - rm -f $$.[fmna] - exit 1 - endif - set random1 = `expr $random + 1` - cat <<EOF -Using these settings: - Bourne Shell $Cmdshell - C compiler $Cmdcc - Compiler options $cdefs - Awk command $Cmdawk - Install command $Cmdinstall - - Module $module - LoadMax $LoadMax - Default TOPN $topn - Nominal TOPN $NominalTopn - Default Delay $delay -Random passwd access $yesno[$random1] - Table Size $TableSize - Owner $owner - Group Owner $group - Mode $mode - bin directory $bindir - man directory $mandir - man extension $manext - man style $mansty - -EOF - goto fast -endif - -cat <<'EOF' -You will be asked a series of questions. Each question will have a -default answer enclosed in brackets, such as "[5.0]". In most cases, -the default answer will work well. To use that value, merely press -return. - -'EOF' - -# display synopses - -getmod: -cat <<'EOF' - -The following machine-dependent modules are available: -'EOF' -awk -F: ' { printf "%-10s %s\n", $1, $2 }' SYNOPSIS -echo '' -./getans "What module is appropriate for this machine? " string "$module" .$$ -set module = `cat .$$` - -if ("$module" == "") then - echo "Please specify a valid module name." - goto getmod -endif - -# is it a valid one? -grep -s "$module" $$.n >/dev/null -if ($status != 0) then - echo "That is not a recognized module name." - goto getmod -endif - -# display a full description -sed -e '1,/DESCRIPTION:/d' -e '/^$/,$d' machine/m_${module}.desc - -# verify it -echo "" -./getans "Is this what you want to use?" yesno 1 .$$ -if (`cat .$$` == 0) then - goto getmod -endif -endif - -cat <<'EOF' - -First we need to find out a little bit about the executables needed to -compile top. - -'EOF' -./getans "What is the full path name for the Bourne shell" file "$Cmdshell" .$$ -set Cmdshell = `cat .$$` - -cat <<'EOF' - -Please supply the name of the appropriate command. It need not be a -full path name, but the named command does need to exist somewhere on -the current path. - -'EOF' -./getans "AWK Interpreter" path "$Cmdawk" .$$ -set Cmdawk = `cat .$$` -./getans "C Compiler" path "$Cmdcc" .$$ -set Cmdcc = `cat .$$` - -cat <<'EOF' - -The installer command needs to understand Berkeley-esque arguments: -"-o" for owner, "-g" for group, and "-m" for mode. A shell script -called "install" is distributed with top and is suitable for use by -top. You can specify a different program here if you like, or use -the shell script (the default). - -'EOF' -./getans "Installer" path "$Cmdinstall" .$$ -set Cmdinstall = `cat .$$` - -cat <<EOF - -What other options should be used with the $Cmdcc command (use "none" to -specify no options)? -EOF -./getans "Compiler options" string "$cdefs" .$$ -set cdefs = `cat .$$` -if ("$cdefs" == "none") then - set cdefs = "" -endif - -cat <<'EOF' - -Now you need to answer some questions concerning the configuration of -top itself. - -The space command forces an immediate update. Sometimes, on loaded -systems, this update will take a significant period of time (because all -the output is buffered). So, if the short-term load average is above -"LoadMax", then top will put the cursor home immediately after the space -is pressed before the next update is attempted. This serves as a visual -acknowledgement of the command. "LoadMax" should always be specified as a -floating point number. - -'EOF' -./getans "LoadMax" number "$LoadMax" .$$ -set LoadMax = `cat .$$` - -cat <<'EOF' - -"Default TOPN" is the default number of processes to show. This is the -number that will be used when the user does not specify the number of -processes to show. If you want "all" (or infinity) as the default, use -the value "-1". - -'EOF' - -./getans "Default TOPN" neginteger "$topn" .$$ -set topn = `cat .$$` - -cat <<'EOF' - -"Nominal_TOPN" is used as the default TOPN when Default_TOPN is Infinity -and the output is a dumb terminal. If we didn't do this, then -installations who use a default TOPN of Infinity will get every process in -the system when running top on a dumb terminal (or redirected to a file). -Note that Nominal_TOPN is a default: it can still be overridden on the -command line, even with the value "infinity". - -'EOF' - -./getans "Nominal TOPN" integer "$NominalTopn" .$$ -set NominalTopn = `cat .$$` - -cat <<'EOF' - -Default Delay is the default number of seconds to wait between screen -updates. - -'EOF' - -./getans "Default Delay" integer "$delay" .$$ -set delay = `cat .$$` - -echo "" - -set rand = 0 -if (-e /etc/nsswitch.conf) then - set rand = `grep '^passwd:.*nis' /etc/nsswitch.conf | wc -l` - if ($rand > 1) then - set rand = 1 - endif -else - ypwhich >&/dev/null - if ($status == 0 || -e /etc/passwd.dir || -e /etc/pwd.db) then - set rand = 1 - endif -endif - -if ($rand == 1) then - echo "It looks like you have a passwd file that can be accessed at random." - set pr = 'Do you want top to take advantage of this' -else - echo "It looks like you have conventional passwd file access. Top can take" - echo "advantage of a random access passwd mechanism if such exists. Do" - echo "you want top to assume that accesses to the file /etc/passwd are done" - set pr = 'with random access rather than sequential' -endif - -if ($nodefaults == 1) then - set random = $rand -endif - -./getans "${pr}?" yesno $random .$$ -set random = `cat .$$` - -echo "" -echo "Compiling prime.c" -$Cmdcc $cdefs -o prime prime.c -lm -if ($status != 0) then - echo "Oh well." - rm -f prime -endif - -echo "" - -ypcat passwd.byname >&/tmp/$$.a -if ($status == 0) then - set cnt = `wc -l </tmp/$$.a` - set mapfile = "NIS map" -else - rm /tmp/$$.a - niscat passwd.org_dir >&/tmp/$$.a - if ($status == 0) then - set cnt = `wc -l </tmp/$$.a` - set mapfile = "NISPLUS map" - else - set cnt = `wc -l </etc/passwd` - set mapfile = "file" - endif -endif -rm /tmp/$$.a -set double = `expr $cnt \* 2` -echo "I found $cnt entries in your passwd $mapfile. Top hashes the username to" -echo "uid mappings as it goes along and it needs a good guess on the size of" -echo "that hash table. This number should be the next highest prime number" -echo "after $double." -echo "" -if (-e prime) then - set pr = `./prime $double` - echo "I have calculated that to be $pr." -else if (-e $PRIME) then - set pr = `$PRIME $double | head -1` - echo "I have calculated that to be $pr." -else - set pr = $double - echo "I cannot calculate that prime number, so you will need to provide it for me." -endif - -if ($TableSize == 0) then - set TableSize = $pr -endif - -./getans "Enter the hash table size" integer "$TableSize" .$$ -set TableSize = `cat .$$` - -echo "" - -# !!! I need to fix this: /dev/kmem might not exist on some machines !!! - -# determine the right way to invoke ls to get full output -set ls = "ls -l" -if (`$ls getans | wc -w` < 9) then - set ls = "ls -lg" -endif - -set t_owner = root -set t_group = `$ls -d /usr/bin | awk ' { print $4 }'` -if (-e /proc) then - cat <<EOF -I see /proc out there. Many Unix variants provide the /proc file -system as a mechanism to get to a process's address space. This -directory is typically only accessible by root. However, there are a -few systems (such as DG/UX) on which this directory exists, but isn't -used. - -EOF - if (-r /proc/0/psinfo) then - set t_mode = 2711 - set mode = 2711 - set t_group = sys - set group = sys - cat <<EOF -It looks like this system is running Solaris 2.6 or greater. If this -is the case, then top can function just fine installed set group id to -sys. It does not need to be installed set-uid to root. - -EOF - else - set t_mode = 4711 - set mode = 4711 - cat <<EOF -I'm going to assume that top needs to run setuid to root, but you -should double check and use mode 2755 (set group id) if top doesn't -really need root access. If you are running SunOS 5.0 through SunOS -5.5.1 (that's Solaris 2.0 through Solaris 2.5.1) then you will need to -install top setuid root (owner root and mode 4711). In SunOS 5.6 -and higher top only requires set group id sys permissions. - -EOF - endif -else if (-e /dev/kmem) then - $ls /dev/kmem >/tmp/$$.b - grep '^....r..r..' /tmp/$$.b >&/dev/null - if ($status == 1) then - grep '^....r..-..' /tmp/$$.b >&/dev/null - if ($status == 0) then - set t_group = `awk ' { print $4 }' /tmp/$$.b` - set t_mode = 2755 - echo "It looks like only group $t_group can read the memory devices." - else - set t_mode = 4755 - echo "It looks like only root can read the memory devices." - endif - else - set t_mode = 755 - echo "It looks like anybody can read the memory devices." - endif -else - echo "It looks like there are no memory device special files." - set t_mode = 755 -endif -if ($nodefaults) then - set owner = $t_owner - set group = $t_group - set mode = $t_mode -endif -echo "Tell me how to set the following when top is installed:" -./getans "Owner" user "$owner" .$$ -set owner = `cat .$$` -./getans "Group owner" group "$group" .$$ -set group = `cat .$$` -./getans "Mode" integer "$mode" .$$ -set mode = `cat .$$` -rm -f /tmp/$$.b - -echo "" -./getans "Install the executable in this directory" file "$bindir" .$$ -set bindir = `cat .$$` - -echo "" -./getans "Install the manual page in this directory" file "$mandir" .$$ -set mandir = `cat .$$` - -echo "" -./getans "Install the manual page with this extension" string "$manext" .$$ -set manext = `cat .$$` - -echo "" -./getans "Install the manual page as 'man' or 'catman'" string "$mansty" .$$ -set mansty = `cat .$$` - -echo "" -echo "We are done with the questions." - -# Some Unix environments are so poor that their csh doesn't even support -# the "eval" builtin. Check for this before relying on its use to save -# the current configuration. -/bin/csh -fc "eval echo foo" >&/dev/null -if ($status == 1) then - echo "Can't save configuration (nonfatal)" -else - echo "Saving configuration..." -# save settings to use as defaults the next time - rm -f .defaults - touch .defaults - foreach v ($vars) - set tmp = `eval echo \$$v` - echo set $v = "'$tmp'" >>.defaults - end -endif - -fast: - -# clean up -rm -f $$.[fmna] - -# set the link for machine.c -rm -f machine.c machine.o -ln -s machine/m_${module}.c machine.c - -# get definitions out of the module file -set libs = `grep LIBS: machine/m_${module}.desc | sed -e 's/^.[^:]*: *//'` -set cflgs = `grep CFLAGS: machine/m_${module}.desc | sed -e 's/^.[^:]*: *//'` -set tcap = `grep TERMCAP: machine/m_${module}.desc | sed -e 's/^.[^:]*: *//'` -set math = `grep MATH: machine/m_${module}.desc | sed -e 's/^.[^:]*: *//'` - -# get osrev defition, if we can -set uname="" -if (-e /usr/bin/uname) then - set uname=/usr/bin/uname -else if (-e /bin/uname) then - set uname=/bin/uname -endif - -if ("$uname" != "") then -# different versions of tr can't agree on the way to specify ranges, so -# we will have to give the range explicitly.....sigh. - set osrev="-DOSREV=`$uname -r | tr -cd ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`" -else - set osrev="" -endif - -# default for tcap (termcap) -if ("$tcap" == "") then - set tcap="-ltermcap" -else if ("$tcap" == "none") then - set tcap="" -endif - -# allow for the module to override or remove -lm -if ("$math" == "") then - set math="-lm" -else if ("$math" == "none") then - set math="" -endif - -if ( { grep -s SIGKILL /usr/include/signal.h } ) then - set signal="/usr/include/signal.h" -else - set signal="/usr/include/sys/signal.h" -endif - - -echo "Building Makefile..." -sed -e "s|%topn%|$topn|" \ - -e "s|%delay%|$delay|" \ - -e "s|%owner%|$owner|" \ - -e "s|%group%|$group|" \ - -e "s|%mode%|$mode|" \ - -e "s|%bindir%|$bindir|" \ - -e "s|%mandir%|$mandir|" \ - -e "s|%manext%|$manext|" \ - -e "s|%mansty%|$mansty|" \ - -e "s|%tablesize%|$TableSize|" \ - -e "s|%libs%|$libs|" \ - -e "s|%cflgs%|$cflgs|" \ - -e "s|%termcap%|$tcap|" \ - -e "s|%math%|$math|" \ - -e "s|%cdefs%|$cdefs|" \ - -e "s|%signal%|$signal|" \ - -e "s|%cc%|$Cmdcc|" \ - -e "s|%awk%|$Cmdawk|" \ - -e "s|%install%|$Cmdinstall|" \ - -e "s|%shell%|$Cmdshell|" \ - -e "s|%osrev%|$osrev|" \ - Makefile.X >Makefile - -echo "Building top.local.h..." -sed -e "s|%LoadMax%|$LoadMax|" \ - -e "s|%TableSize%|$TableSize|" \ - -e "s|%NominalTopn%|$NominalTopn|" \ - -e "s|%topn%|$topn|" \ - -e "s|%delay%|$delay|" \ - -e "s|%random%|$random|" \ - top.local.H >top.local.h - -echo "Building top.1..." -sed -e "s|%topn%|$topn|" \ - -e "s|%delay%|$delay|" \ - top.X >top.1 -if (-e machine/m_${module}.man ) then - cat machine/m_${module}.man >>top.1 -endif - -# clean up -rm -f .$$ - -echo 'Doing a "make clean".' -make clean - -echo 'To create the executable, type "make".' -echo 'To install the executable, type "make install".' -exit 0 - -byebye: -rm -f .$$ $$.[fmna] /tmp/$$.[ab] -exit 1 |