Files
oldlinux-files/ftp-archives/tsx-11.mit.edu/1996-10-07/packages/modula-2/ipdm2s-install
2024-02-19 00:24:15 -05:00

254 lines
5.8 KiB
Tcsh

#!/bin/csh -f
#
# Installs Modula-2* tree
#
# Syntax: ipdm2s-install <VERSION> [<DIRECTORY> [<ARCH>]]
#
# Parameters: 1) Version number
# 2) Target directory for Modula-2* (default: './')
# 3) required architecture (default: determined)
#
# Stefan Haenssgen & Thomas Gauweiler 7-Apr-94
#
# Changes:
#
# 15-jan-93 Created [SH&TG]
# 28-jan-93 .mspath file added [TG]
# 16-jun-93 /tmp_mnt eliminated [TG]
# 15-nov-93 architecture and others [TG]
# 11-jan-94 version stamp [TG]
# 01-apr-94 changed to ipd-version [TG]
# 02-may-94 uses ipdm2s.$VERSION.$ARCH.gz file, too [TG]
#
set MM_SED='sed -e s|/amd/|/|g -e s|/export/|/|g -e s|/tmp_mnt/|/|g'
#
# determine machine architecture (what type of machine we're on!)
# by examining return values of "uname", "arch", or "machine"
#
if (-x /bin/uname || -x /usr/bin/uname) then
set SRC_ARCH=`uname -m`
else if (-x /bin/arch || -x /usr/bin/arch) then
set SRC_ARCH=`arch`
else if (-x /bin/machine || -x /usr/bin/machine) then
set SRC_ARCH=`machine`
endif
if (! $?SRC_ARCH) then # could architecture not be determined ?
echo 'Error: could not determine source architecture'
# exit 2
else if ("$SRC_ARCH" =~ sun4*) then # SparcStation
set SRC_ARCH="SUN4"
else if ("$SRC_ARCH" =~ sun3*) then # Sun-3 with 680x0 CPU
set SRC_ARCH="SUN3"
else if ("$SRC_ARCH" =~ i?86*) then # 386/486/Pentium PC
set SRC_ARCH="I386"
if (-x /bin/uname || -x /usr/bin/uname) then
if ("`uname -s`" =~ *Linux*) then
set SRC_ARCH="LINX" # Linux
endif
endif
else if ("$SRC_ARCH" =~ ksr?*) then # KSR-1 or KSR-2
set SRC_ARCH="KSRP"
else if ("$SRC_ARCH" =~ RISC* || "$SRC_ARCH" =~ mips*) then
if ("`uname -v`" =~ *MP*) then # MasPar frontend if ..
set SRC_ARCH="MASP" # DECStation and version *MP*
else
set SRC_ARCH="MIPS" # else plain DECStation
endif
else
echo 'Error: unknown source architecture "'$SRC_ARCH'"'
exit 9
endif
#
# check for parameters
#
if ($1 == "") then
echo 'usage: ipdm2s-install <VERSION> [<DIRECTORY> [<ARCH>]]'
echo ''
echo ' default <DIRECTORY> is ./'
echo ' default <ARCH> is automagically determined'
echo ''
echo 'example: ipdm2s-install 9401 ./ SUN4'
exit 1
else
set VERSION=$1
endif
if ($2 == "") then
set MSDIR="./"
set ARCH=$SRC_ARCH
else
set MSDIR=$2
endif
if ($3 == "") then
set ARCH=$SRC_ARCH
else
set ARCH=$3
endif
#
# check if source & target exist and are accessible
#
if ( ! -r ipdm2s.$VERSION.$ARCH.tgz ) then
if ( -r ipdm2s.$VERSION.$ARCH.gz ) then
mv ipdm2s.$VERSION.$ARCH.gz ipdm2s.$VERSION.$ARCH.tgz
else if ( -r ipdm2s.$VERSION.$ARCH.tar.gz ) then
mv ipdm2s.$VERSION.$ARCH.tar.gz ipdm2s.$VERSION.$ARCH.tgz
else
echo 'Error: cannot access file "ipdm2s.'$VERSION.$ARCH'.tgz"'
exit 2
endif
endif
if ( ! -d $MSDIR) then
echo 'Error: target directory must already exist.'
exit 3
endif
if ( ! -w $MSDIR) then
echo 'Error: cannot write to target directory.'
exit 4
endif
#
# determine the paths
#
set PWD_DIR=`pwd`
cd $MSDIR
set MSDIR=`pwd | $MM_SED`
#
# extract it
#
echo ''
echo '*****'
echo '***** IPD Modula-2* Installation Script'
echo '*****'
echo ''
echo 'Extracting from "'ipdm2s.$VERSION.$ARCH.tgz'" to "'$MSDIR'"'
echo ''
gunzip < $PWD_DIR/ipdm2s.$VERSION.$ARCH.tgz | tar xvf -
echo ''
echo 'Installation directory = "'$MSDIR'"'
echo $MSDIR/lib >.mspath
echo ''
echo "Configuring the Modula-2* driver scripts ..."
sed -e "s|_MSC_HOME_|$MSDIR|" \
<gen/driver.gen >bin/mm
#
# make scripts and binaries executable
#
chmod ugo+x bin/$ARCH/*.$ARCH
chmod ugo+x bin/mm
chmod ugo+x bin/liball
chmod ugo+x bin/msproj
chmod ugo+x bin/newarch
echo "Creating several symbolic links ..."
cd bin
if (-e mmclean) then
rm -f mmclean
rm -f msdel
rm -f msmake
rm -f msrun
rm -f msrm
rm -f xmsp
endif
ln -s mm mmclean
ln -s mm msdel
ln -s mm msmake
ln -s mm msrun
ln -s mm msrm
ln -s mm xmsp
cd ..
#
# create example project directory
#
echo 'Creating example project directory ...'
cd examples
../bin/msproj $ARCH
cd ..
echo ''
#
# create the documentation
#
if ( ! -r $PWD_DIR/ipdm2s.doc.tar ) then
echo 'Information: no documentation archive found ...'
else
echo 'Extracting compressed documents from documentation archive ...'
echo ''
tar xvf $PWD_DIR/ipdm2s.doc.tar
cd doc
echo ''
echo 'Uncompressing the IPD Modula-2* manual ...'
gunzip ipdm2s.manual.gz
cd ..
endif
#
# change write permissions of extracted & generated files
#
echo 'Changing write permissions of extracted files and directories ...'
chmod go-w .mspath Xmsp architectures
chmod -R go-w bin/ doc/ emacs/ examples/ gen/ lib/
echo ''
#
# registration
#
echo 'Do you want to register your installation now (y/n) ?'
set answer=$<
if ( "$answer" =~ y* || "$answer" =~ Y* ) then
if ( ! -d doc) then
mkdir doc
endif
echo 'Please enter your complete email address: '
set email=$<
set date=`date`
sed -e "s|_USER_|$USER|" -e "s|_EMAIL_|$email|" \
-e "s|_VER_|$VERSION|" -e "s|_ARCH_|$ARCH|" \
-e "s|_DATE_|$date|" -e "s|_ARCH_|$ARCH|" \
<gen/registration.gen >doc/registration
chmod go-w doc/registration
echo ''
cat doc/registration
echo 'Do you really want to send this message (y/n) ?'
set sendanswer=$<
if ( "$sendanswer" =~ y* || "$sendanswer" =~ Y* ) then
echo ''
if (-x /usr/lib/sendmail) then
/usr/lib/sendmail -t <doc/registration
echo 'Okay, registration mail sent.'
else if (-x `which mail`) then
mail ipdm2s@ira.uka.de <doc/registration
echo 'Okay, registration mail sent.'
else
echo 'Sorry, could not find "sendmail" or "mail" programs.'
endif
endif
endif
echo ''
#
# return
#
echo 'Please add "'$MSDIR/bin'" to your PATH variable.'
cd $PWD_DIR
echo ''