#!/bin/sh
#
# $Id: pvmgetarch,v 1.27 2004/02/03 20:12:05 pvmsrc Exp $
#
# pvmgetarch.sh
#
# Generate PVM architecture string.
#
# This is a heuristic thing that may need to be tuned from time
# to time. I don't know of a real solution to determining the
# machine type.
#
# Notes:
# 1. Local people mess with things.
# 2. It's good to try a few things for robustness.
# 3. Don't use test -x
#
# 08 Apr 1993 Robert Manchek manchek@CS.UTK.EDU.
# 24 Aug 1994 last revision
# 28 Jul 1995 release 3.3.8
#
#
# begin section that may need to be tuned.
#
ARCH=UNKNOWN
#
# determine the machine type from scratch
#
if [ -f /bin/uname -o -f /usr/bin/uname \
-o -f /bin/uname.exe -o -f /usr/bin/uname.exe ]; then
if [ -f /bin/uname ]; then
os="`/bin/uname -s`"
ht="`/bin/uname -m`"
ov="`/bin/uname -v`"
elif [ -f /usr/bin/uname ]; then
os="`/usr/bin/uname -s`"
ht="`/usr/bin/uname -m`"
ov="`/usr/bin/uname -v`"
elif [ -f /bin/uname.exe ]; then
os="`/bin/uname.exe -s`"
ht="`/bin/uname.exe -m`"
ov="`/bin/uname.exe -v`"
else
os="`/usr/bin/uname.exe -s`"
ht="`/usr/bin/uname.exe -m`"
ov="`/usr/bin/uname.exe -v`"
fi
case "$os,$ht" in
SunOS,sun3* ) ARCH=SUN3 ;;
SunOS,sun4* ) ARCH=SUN4 ;;
SunOS,i86pc ) ARCH=X86SOL2 ;;
ULTRIX,RISC ) ARCH=PMAX ;;
ULTRIX,VAX ) ARCH=UVAX ;;
AIX*,* ) ARCH=RS6K ;;
*HP*,9000/[2345]* ) ARCH=HP300 ;;
*HP*,9000/[78]* ) ARCH=HPPA ;;
*HP*,ia64 ) ARCH=HPPA ;;
IRIX,* ) ARCH=SGI ;;
IRIX64,* ) ARCH=SGI64 ;;
*OSF*,alpha ) ARCH=ALPHA ;;
CRSOS,smp ) ARCH=CRAYSMP ;;
*,paragon ) ARCH=PGON ;;
dgux,AViiON ) ARCH=DGAV ;;
*,88k ) ARCH=E88K ;;
*,mips ) ARCH=MIPS ;;
*,CRAY-2 ) ARCH=CRAY2 ;;
Linux,i[3456]86 ) ARCH=LINUX ;;
Linux,ia64 ) ARCH=LINUX64 ;;
Linux,x86_64 ) ARCH=LINUX64 ;;
Linux,alpha ) ARCH=LINUXALPHA ;;
Linux,arm* ) ARCH=LINUXARM ;;
Linux,sparc* ) ARCH=LINUXSPARC ;;
Linux,hp_pa ) ARCH=LINUXHPPA ;;
Linux,ppc ) ARCH=LINUXPPC ;;
Linux,m68k ) ARCH=LINUXATARI ;;
BSD/OS,i[3456]86 ) ARCH=BSD386 ;;
FreeBSD,i[3456]86 ) ARCH=FREEBSD ;;
FreeBSD,alpha ) ARCH=FREEBSD ;;
FreeBSD,amd64 ) ARCH=FREEBSD ;;
FreeBSD,ia64 ) ARCH=FREEBSD ;;
FreeBSD,sparc64 ) ARCH=FREEBSD ;;
SUPER-UX,SX-3 ) ARCH=SX3 ;;
uts,* ) ARCH=UTS2 ;;
realix,M88* ) ARCH=M88K ;;
DomainOS,DN* ) ARCH=APOLLO ;;
OS/2,i[3456]86 ) ARCH=OS2 ;;
CYGWIN*,i[3456]86 ) ARCH=CYGWIN ;;
Darwin,* ) ARCH=DARWIN ;;
Rhapsody,"Power Macintosh" ) ARCH=MACOSX ;;
esac
fi
# there is no other way to detect DG/intel than to run 'uname -a'
if [ "$ARCH" = DGAV ]; then
if uname -a | grep 'PentiumPro$' > /dev/null ; then
ARCH=DGIX
fi
fi
if [ "$ARCH" = UNKNOWN ]; then
if [ -f /bin/arch ]; then
case "`/bin/arch`" in
ksr1 ) ARCH=KSR1 ;;
sun2 ) ARCH=SUN2 ;;
sun3 ) ARCH=SUN3 ;;
sun4 ) ARCH=SUN4 ;;
esac
fi
fi
if [ "$ARCH" = UNKNOWN ]; then
if [ -f /usr/etc/RELDEF ]; then ARCH=ATT; fi
if [ -f /ultrixboot ]; then
if [ -f /pcs750.bin ]; then
ARCH=UVAX
else
ARCH=PMAX
fi
else
if [ -f /pcs750.bin ]; then ARCH=VAX; fi
fi
if [ -d /usr/alliant ]; then ARCH=AFX8; fi
if [ -f /usr/bin/cluster ]; then ARCH=BFLY; fi
if [ -d /usr/convex ]; then ARCH=CNVX; fi
if [ -f /unicos ]; then ARCH=CRAY; fi
if [ -f /hp-ux ]; then ARCH=HP300; fi
if [ -f /usr/bin/getcube ]; then ARCH=I860; fi
if [ -f /usr/bin/asm56000 ]; then ARCH=NEXT; fi
if [ -f /etc/vg ]; then ARCH=RS6K; fi
if [ -d /usr/include/caif ]; then ARCH=RT; fi
if [ -f /bin/4d ]; then ARCH=SGI; fi
if [ -f /dynix ]; then ARCH=SYMM; fi
if [ -f /bin/titan ]; then ARCH=TITN; fi
if [ -f /netbsd ]; then
# amiga) ARCH=NETBSDAMIGA ;; --> NETBSDM68K
# hp300) ARCH=NETBSDHP300 ;; --> NETBSDM68K
# mac68k) ARCH=NETBSDMAC68K ;; --> NETBSDM68K
# pmax) ARCH=NETBSDPMAX ;; --> NETBSDMIPSEL
# sun3) ARCH=NETBSDSUN3 ;; --> NETBSDM68K
case "`/usr/bin/uname -p`" in
alpha) ARCH=NETBSDALPHA ;;
arm32) ARCH=NETBSDARM32 ;;
i386) ARCH=NETBSDI386 ;;
m68k) ARCH=NETBSDM68K ;;
mipseb) ARCH=NETBSDMIPSEB ;;
mipsel) ARCH=NETBSDMIPSEL ;;
ns32k) ARCH=NETBSDNS32K ;;
powerpc) ARCH=NETBSDPOWERPC ;;
sh3) ARCH=NETBSDSH3 ;;
sparc) ARCH=NETBSDSPARC ;;
sparc64) ARCH=NETBSDSPARC64 ;;
vax) ARCH=NETBSDVAX ;;
esac
elif [ -f /usr/bin/machine ]; then
case "`/usr/bin/machine`" in
i386 ) ARCH=BSD386 ;;
esac
fi
if [ -f /usr/bin/uxpm ] && /usr/bin/uxpm ; then
ARCH=UXPM
fi
if [ -f /usr/bin/uxpv ] && /usr/bin/uxpv ; then
ARCH=UXPV
fi
fi
if [ "$ARCH" = UNKNOWN ]; then
if [ -f /bin/uname -o -f /usr/bin/uname ]; then
if [ -f /bin/uname ]; then
os="`/bin/uname -s`"
ht="`/bin/uname -m`"
rv="`/bin/uname -r`"
else
os="`/usr/bin/uname -s`"
ht="`/usr/bin/uname -m`"
rv="`/usr/bin/uname -r`"
fi
case "$os,$ht" in
*,i[3456]86 ) case "$rv" in
4.*) ARCH=UWARE ;;
*) ARCH=SCO ;;
esac
esac
fi
fi
#
# update the machine type to derive subclasses
#
if [ "$ARCH" = SUN4 ]; then
rel="`/bin/uname -r`"
case "$rel" in
5.* ) ARCH=SUN4SOL2 ;;
esac
fi
if [ "$ARCH" = SUN4SOL2 ]; then
nproc="`/bin/mpstat | wc -l`"
if [ $nproc -gt 2 -a "$PVM_SHMEM" = ON ];
then ARCH=SUNMP;
fi
fi
if [ "$ARCH" = ALPHA ]; then
rel="`/usr/bin/uname -r`"
case "$rel" in
*[34].*)
nproc="`/usr/sbin/sizer -p`"
if [ $nproc -gt 1 -a "$PVM_SHMEM" = ON ];
then ARCH=ALPHAMP;
fi ;;
esac
fi
if [ "$ARCH" = SGI ]; then
rel="`/bin/uname -r`"
case "$rel" in
5.* ) ARCH=SGI5 ;;
6.* ) ARCH=SGI6 ;;
esac
fi
if [ "$ARCH" = SGI64 ]; then
nproc="`/usr/sbin/mpadmin -n | wc -w`"
if [ $nproc -gt 1 -a "$PVM_SHMEM" = ON ];
then ARCH=SGIMP64;
fi
fi
if [ "$ARCH" = SGI5 ]; then
nproc="`/usr/sbin/mpadmin -n | wc -w`"
if [ $nproc -gt 1 -a "$PVM_SHMEM" = ON ];
then ARCH=SGIMP;
fi
fi
if [ "$ARCH" = SGI6 ]; then
nproc="`/usr/sbin/mpadmin -n | wc -w`"
if [ $nproc -gt 1 -a "$PVM_SHMEM" = ON ];
then ARCH=SGIMP6;
fi
fi
if [ "$ARCH" = SUN4 -a -f /dev/cm ]; then ARCH=CM2; fi
if [ "$ARCH" = SUN4 -a -f /dev/cmni ]; then ARCH=CM5; fi
if [ "$ARCH" = CNVX ]; then
if /usr/convex/getsysinfo -f native_default; then
ARCH=CNVXN
fi
fi
if [ "$ARCH" = PMAX -a -d /usr/maspar ]; then ARCH=MASPAR; fi
if [ "$ARCH" = RS6K ]; then
case "$os,$ov" in
AIX*,4 ) nproc="`/usr/sbin/lsdev -C -c processor | wc -l`"
if [ $nproc -gt 1 -a "$PVM_SHMEM" = ON ]; then
ARCH=AIX4MP;
else
ARCH=AIX46K;
fi ;;
AIX*,5 ) nproc="`/usr/sbin/lsdev -C -c processor | wc -l`"
if [ $nproc -gt 1 -a "$PVM_SHMEM" = ON ]; then
ARCH=AIX5MP;
else
ARCH=AIX56K;
fi ;;
esac
fi
if [ "$ARCH" = HPPA -a -f /bin/sysinfo ]; then ARCH=CSPP; fi
if [ "$ARCH" = HPPA ]; then
nproc="`/usr/bin/vmstat -n | wc -l`"
if [ $nproc -gt 8 -a "$PVM_SHMEM" = ON ];
then ARCH=HPPAMP;
fi
fi
if [ "$ARCH" = LINUX ]; then
rel="`/bin/uname -r`"
case "$rel" in
*.beo* ) ARCH=BEOSCYLD ;;
esac
fi
#
# ugh, done.
#
echo $ARCH
exit
syntax highlighted by Code2HTML, v. 0.9.1