101e196c8SJohn Marino: 201e196c8SJohn Marino# derrived from /etc/rc_d/os.sh 301e196c8SJohn Marino 401e196c8SJohn Marino# RCSid: 5*ca58f742SDaniel Fojt# $Id: machine.sh,v 1.18 2017/08/13 19:11:28 sjg Exp $ 601e196c8SJohn Marino# 701e196c8SJohn Marino# @(#) Copyright (c) 1994-2002 Simon J. Gerraty 801e196c8SJohn Marino# 901e196c8SJohn Marino# This file is provided in the hope that it will 1001e196c8SJohn Marino# be of use. There is absolutely NO WARRANTY. 1101e196c8SJohn Marino# Permission to copy, redistribute or otherwise 1201e196c8SJohn Marino# use this file is hereby granted provided that 1301e196c8SJohn Marino# the above copyright notice and this notice are 1401e196c8SJohn Marino# left intact. 1501e196c8SJohn Marino# 1601e196c8SJohn Marino# Please send copies of changes and bug-fixes to: 1701e196c8SJohn Marino# sjg@crufty.net 1801e196c8SJohn Marino# 1901e196c8SJohn Marino 2001e196c8SJohn MarinoOS=`uname` 2101e196c8SJohn MarinoOSREL=`uname -r` 2201e196c8SJohn MarinoOSMAJOR=`IFS=.; set $OSREL; echo $1` 2301e196c8SJohn Marinomachine=`uname -p 2>/dev/null || uname -m` 2401e196c8SJohn MarinoMACHINE= 2501e196c8SJohn Marino 2601e196c8SJohn Marino# there is at least one case of `uname -p` outputting 2701e196c8SJohn Marino# a bunch of usless drivel 2801e196c8SJohn Marinocase "$machine" in 2901e196c8SJohn Marinounknown|*[!A-Za-z0-9_-]*) 3001e196c8SJohn Marino machine=`uname -m` 3101e196c8SJohn Marino ;; 3201e196c8SJohn Marinoesac 3301e196c8SJohn Marino 3401e196c8SJohn Marino# Great! Solaris keeps moving arch(1) 3501e196c8SJohn Marino# we need this here, and it is not always available... 3601e196c8SJohn MarinoWhich() { 3701e196c8SJohn Marino # some shells cannot correctly handle `IFS` 3801e196c8SJohn Marino # in conjunction with the for loop. 3901e196c8SJohn Marino _dirs=`IFS=:; echo ${2:-$PATH}` 4001e196c8SJohn Marino for d in $_dirs 4101e196c8SJohn Marino do 4201e196c8SJohn Marino test -x $d/$1 && { echo $d/$1; break; } 4301e196c8SJohn Marino done 4401e196c8SJohn Marino} 4501e196c8SJohn Marino 4601e196c8SJohn Marinocase $OS in 47*ca58f742SDaniel FojtAIX) # from http://gnats.netbsd.org/29386 48*ca58f742SDaniel Fojt OSMAJOR=`uname -v` 49*ca58f742SDaniel Fojt OSMINOR=`uname -r` 50*ca58f742SDaniel Fojt MACHINE=$OS$OSMAJOR.$OSMINOR 51*ca58f742SDaniel Fojt MACHINE_ARCH=`bootinfo -T` 52*ca58f742SDaniel Fojt ;; 5301e196c8SJohn MarinoOpenBSD) 5401e196c8SJohn Marino MACHINE=$OS$OSMAJOR.$machine 5501e196c8SJohn Marino arch=`Which arch /usr/bin:/usr/ucb:$PATH` 5601e196c8SJohn Marino MACHINE_ARCH=`$arch -s`; 5701e196c8SJohn Marino ;; 58f445c897SJohn MarinoBitrig) 59f445c897SJohn Marino MACHINE=$OS$OSMAJOR.$machine 60f445c897SJohn Marino MACHINE_ARCH=`uname -m`; 61f445c897SJohn Marino ;; 6201e196c8SJohn Marino*BSD) 6301e196c8SJohn Marino MACHINE=$OS$OSMAJOR.$machine 6401e196c8SJohn Marino ;; 6501e196c8SJohn MarinoSunOS) 6601e196c8SJohn Marino arch=`Which arch /usr/bin:/usr/ucb:$PATH` 6701e196c8SJohn Marino test "$arch" && machine_arch=`$arch` 6801e196c8SJohn Marino 6901e196c8SJohn Marino case "$OSREL" in 7001e196c8SJohn Marino 4.0*) MACHINE_ARCH=$machine_arch MACHINE=$machine_arch;; 7101e196c8SJohn Marino 4*) MACHINE_ARCH=$machine_arch;; 7201e196c8SJohn Marino esac 7301e196c8SJohn Marino ;; 7401e196c8SJohn MarinoHP-UX) 7501e196c8SJohn Marino MACHINE_ARCH=`IFS="/-."; set $machine; echo $1` 7601e196c8SJohn Marino ;; 7701e196c8SJohn MarinoInterix) 7801e196c8SJohn Marino MACHINE=i386 7901e196c8SJohn Marino MACHINE_ARCH=i386 8001e196c8SJohn Marino ;; 8101e196c8SJohn MarinoUnixWare) 8201e196c8SJohn Marino OSREL=`uname -v` 8301e196c8SJohn Marino OSMAJOR=`IFS=.; set $OSREL; echo $1` 8401e196c8SJohn Marino MACHINE_ARCH=`uname -m` 8501e196c8SJohn Marino ;; 8601e196c8SJohn MarinoLinux) 8701e196c8SJohn Marino case "$machine" in 8801e196c8SJohn Marino i?86) MACHINE_ARCH=i386;;# does anyone really care about 686 vs 586? 8901e196c8SJohn Marino esac 9001e196c8SJohn Marino ;; 9101e196c8SJohn Marinoesac 9201e196c8SJohn Marino 9301e196c8SJohn MarinoMACHINE=${MACHINE:-$OS$OSMAJOR} 9401e196c8SJohn MarinoMACHINE_ARCH=${MACHINE_ARCH:-$machine} 9501e196c8SJohn Marino 9601e196c8SJohn Marino( 9701e196c8SJohn Marinocase "$0" in 9801e196c8SJohn Marinoarch*) echo $MACHINE_ARCH;; 9901e196c8SJohn Marino*) 10001e196c8SJohn Marino case "$1" in 10101e196c8SJohn Marino "") echo $MACHINE;; 10201e196c8SJohn Marino *) echo $MACHINE_ARCH;; 10301e196c8SJohn Marino esac 10401e196c8SJohn Marino ;; 10501e196c8SJohn Marinoesac 10601e196c8SJohn Marino) | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 107