1236769Sobrien: 2236769Sobrien# derrived from /etc/rc_d/os.sh 3236769Sobrien 4236769Sobrien# RCSid: 5331246Ssjg# $Id: machine.sh,v 1.18 2017/08/13 19:11:28 sjg Exp $ 6236769Sobrien# 7236769Sobrien# @(#) Copyright (c) 1994-2002 Simon J. Gerraty 8236769Sobrien# 9236769Sobrien# This file is provided in the hope that it will 10236769Sobrien# be of use. There is absolutely NO WARRANTY. 11236769Sobrien# Permission to copy, redistribute or otherwise 12236769Sobrien# use this file is hereby granted provided that 13236769Sobrien# the above copyright notice and this notice are 14236769Sobrien# left intact. 15236769Sobrien# 16236769Sobrien# Please send copies of changes and bug-fixes to: 17236769Sobrien# sjg@crufty.net 18236769Sobrien# 19236769Sobrien 20236769SobrienOS=`uname` 21236769SobrienOSREL=`uname -r` 22236769SobrienOSMAJOR=`IFS=.; set $OSREL; echo $1` 23236769Sobrienmachine=`uname -p 2>/dev/null || uname -m` 24236769SobrienMACHINE= 25236769Sobrien 26236769Sobrien# there is at least one case of `uname -p` outputting 27236769Sobrien# a bunch of usless drivel 28236769Sobriencase "$machine" in 29236769Sobrienunknown|*[!A-Za-z0-9_-]*) 30236769Sobrien machine=`uname -m` 31236769Sobrien ;; 32236769Sobrienesac 33236769Sobrien 34236769Sobrien# Great! Solaris keeps moving arch(1) 35236769Sobrien# we need this here, and it is not always available... 36236769SobrienWhich() { 37236769Sobrien # some shells cannot correctly handle `IFS` 38236769Sobrien # in conjunction with the for loop. 39236769Sobrien _dirs=`IFS=:; echo ${2:-$PATH}` 40236769Sobrien for d in $_dirs 41236769Sobrien do 42236769Sobrien test -x $d/$1 && { echo $d/$1; break; } 43236769Sobrien done 44236769Sobrien} 45236769Sobrien 46236769Sobriencase $OS in 47331246SsjgAIX) # from http://gnats.netbsd.org/29386 48331246Ssjg OSMAJOR=`uname -v` 49331246Ssjg OSMINOR=`uname -r` 50331246Ssjg MACHINE=$OS$OSMAJOR.$OSMINOR 51331246Ssjg MACHINE_ARCH=`bootinfo -T` 52331246Ssjg ;; 53236769SobrienOpenBSD) 54236769Sobrien MACHINE=$OS$OSMAJOR.$machine 55236769Sobrien arch=`Which arch /usr/bin:/usr/ucb:$PATH` 56236769Sobrien MACHINE_ARCH=`$arch -s`; 57236769Sobrien ;; 58282740SsjgBitrig) 59282740Ssjg MACHINE=$OS$OSMAJOR.$machine 60282740Ssjg MACHINE_ARCH=`uname -m`; 61282740Ssjg ;; 62236769Sobrien*BSD) 63236769Sobrien MACHINE=$OS$OSMAJOR.$machine 64236769Sobrien ;; 65236769SobrienSunOS) 66236769Sobrien arch=`Which arch /usr/bin:/usr/ucb:$PATH` 67236769Sobrien test "$arch" && machine_arch=`$arch` 68236769Sobrien 69236769Sobrien case "$OSREL" in 70236769Sobrien 4.0*) MACHINE_ARCH=$machine_arch MACHINE=$machine_arch;; 71236769Sobrien 4*) MACHINE_ARCH=$machine_arch;; 72236769Sobrien esac 73236769Sobrien ;; 74236769SobrienHP-UX) 75236769Sobrien MACHINE_ARCH=`IFS="/-."; set $machine; echo $1` 76236769Sobrien ;; 77236769SobrienInterix) 78236769Sobrien MACHINE=i386 79236769Sobrien MACHINE_ARCH=i386 80236769Sobrien ;; 81236769SobrienUnixWare) 82236769Sobrien OSREL=`uname -v` 83236769Sobrien OSMAJOR=`IFS=.; set $OSREL; echo $1` 84236769Sobrien MACHINE_ARCH=`uname -m` 85236769Sobrien ;; 86236769SobrienLinux) 87236769Sobrien case "$machine" in 88236769Sobrien i?86) MACHINE_ARCH=i386;;# does anyone really care about 686 vs 586? 89236769Sobrien esac 90236769Sobrien ;; 91236769Sobrienesac 92236769Sobrien 93236769SobrienMACHINE=${MACHINE:-$OS$OSMAJOR} 94236769SobrienMACHINE_ARCH=${MACHINE_ARCH:-$machine} 95236769Sobrien 96236769Sobrien( 97236769Sobriencase "$0" in 98236769Sobrienarch*) echo $MACHINE_ARCH;; 99236769Sobrien*) 100236769Sobrien case "$1" in 101236769Sobrien "") echo $MACHINE;; 102236769Sobrien *) echo $MACHINE_ARCH;; 103236769Sobrien esac 104236769Sobrien ;; 105236769Sobrienesac 106236769Sobrien) | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 107