#!/bin/sh # # $Id: pvmgetarch,v 1.1 2004/09/07 15:20:25 rca 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 ;; IRIX,* ) ARCH=SGI ;; IRIX64,* ) ARCH=SGI64 ;; *OSF*,alpha ) ARCH=ALPHA ;; Linux,alpha ) ARCH=LINUXALPHA ;; 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,sparc) ARCH=LINUXSPARC ;; BSD/OS,i[3456]86 ) ARCH=BSD386 ;; FreeBSD,i386 ) 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 ;; esac 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 #++csz # if [ -f /unicos ]; then ARCH=CRAY; fi #--csz 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 #++csz # Move check for /unicos to after /bin/4d because Ouray=Unicos 10.0.0 has both if [ -f /bin/4d ]; then ARCH=SGI; fi if [ -f /unicos ]; then ARCH=CRAY; fi #--csz if [ -f /dynix ]; then ARCH=SYMM; fi if [ -f /bin/titan ]; then ARCH=TITN; fi if [ -f /netbsd ]; then case "`/usr/bin/machine`" in i386) ARCH=NETBSDI386 ;; amiga) ARCH=NETBSDAMIGA ;; hp300) ARCH=NETBSDHP300 ;; mac68k) ARCH=NETBSDMAC68K ;; pmax) ARCH=NETBSDPMAX ;; sparc) ARCH=NETBSDSPARC ;; sun3) ARCH=NETBSDSUN3 ;; 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 #++csz nproc="`/bin/mpstat | /bin/wc -l`" # nproc="`/bin/mpstat | wc -l`" # Omit requirement that PVM_SHMEM be set to return SUNMP # Keep requirement that /bin/mpstat return multiple lines # if [ $nproc -gt 2 -a "$PVM_SHMEM" = ON ]; if [ $nproc -gt 2 ]; #--csz 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 #++csz nproc="`/usr/sbin/mpadmin -n | wc -w`" # Omit requirement that PVM_SHMEM be set to return SGIMP64 # Do require that /bin/mpadmin return more procs than winterpark # if [ $nproc -gt 1 -a "$PVM_SHMEM" = ON ]; if [ $nproc -gt 9 ]; 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 # csz++ # Make ACD machines (e.g., gss1.acd.ucar.edu) return plain old AIX # ARCH=AIX46K; ARCH=AIX; # csz-- 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 # # ugh, done. # echo $ARCH exit