13955d011SMarcel Moolenaar: 23955d011SMarcel Moolenaar# derrived from /etc/rc_d/os.sh 33955d011SMarcel Moolenaar 43955d011SMarcel Moolenaar# RCSid: 5*28a6bc81SSimon J. Gerraty# $Id: machine.sh,v 1.17 2015/05/05 00:10:54 sjg Exp $ 63955d011SMarcel Moolenaar# 73955d011SMarcel Moolenaar# @(#) Copyright (c) 1994-2002 Simon J. Gerraty 83955d011SMarcel Moolenaar# 93955d011SMarcel Moolenaar# This file is provided in the hope that it will 103955d011SMarcel Moolenaar# be of use. There is absolutely NO WARRANTY. 113955d011SMarcel Moolenaar# Permission to copy, redistribute or otherwise 123955d011SMarcel Moolenaar# use this file is hereby granted provided that 133955d011SMarcel Moolenaar# the above copyright notice and this notice are 143955d011SMarcel Moolenaar# left intact. 153955d011SMarcel Moolenaar# 163955d011SMarcel Moolenaar# Please send copies of changes and bug-fixes to: 173955d011SMarcel Moolenaar# sjg@crufty.net 183955d011SMarcel Moolenaar# 193955d011SMarcel Moolenaar 203955d011SMarcel MoolenaarOS=`uname` 213955d011SMarcel MoolenaarOSREL=`uname -r` 223955d011SMarcel MoolenaarOSMAJOR=`IFS=.; set $OSREL; echo $1` 233955d011SMarcel Moolenaarmachine=`uname -p 2>/dev/null || uname -m` 243955d011SMarcel MoolenaarMACHINE= 253955d011SMarcel Moolenaar 263955d011SMarcel Moolenaar# there is at least one case of `uname -p` outputting 273955d011SMarcel Moolenaar# a bunch of usless drivel 283955d011SMarcel Moolenaarcase "$machine" in 293955d011SMarcel Moolenaarunknown|*[!A-Za-z0-9_-]*) 303955d011SMarcel Moolenaar machine=`uname -m` 313955d011SMarcel Moolenaar ;; 323955d011SMarcel Moolenaaresac 333955d011SMarcel Moolenaar 343955d011SMarcel Moolenaar# Great! Solaris keeps moving arch(1) 353955d011SMarcel Moolenaar# we need this here, and it is not always available... 363955d011SMarcel MoolenaarWhich() { 373955d011SMarcel Moolenaar # some shells cannot correctly handle `IFS` 383955d011SMarcel Moolenaar # in conjunction with the for loop. 393955d011SMarcel Moolenaar _dirs=`IFS=:; echo ${2:-$PATH}` 403955d011SMarcel Moolenaar for d in $_dirs 413955d011SMarcel Moolenaar do 423955d011SMarcel Moolenaar test -x $d/$1 && { echo $d/$1; break; } 433955d011SMarcel Moolenaar done 443955d011SMarcel Moolenaar} 453955d011SMarcel Moolenaar 463955d011SMarcel Moolenaarcase $OS in 473955d011SMarcel MoolenaarOpenBSD) 483955d011SMarcel Moolenaar MACHINE=$OS$OSMAJOR.$machine 493955d011SMarcel Moolenaar arch=`Which arch /usr/bin:/usr/ucb:$PATH` 503955d011SMarcel Moolenaar MACHINE_ARCH=`$arch -s`; 513955d011SMarcel Moolenaar ;; 52*28a6bc81SSimon J. GerratyBitrig) 53*28a6bc81SSimon J. Gerraty MACHINE=$OS$OSMAJOR.$machine 54*28a6bc81SSimon J. Gerraty MACHINE_ARCH=`uname -m`; 55*28a6bc81SSimon J. Gerraty ;; 563955d011SMarcel Moolenaar*BSD) 573955d011SMarcel Moolenaar MACHINE=$OS$OSMAJOR.$machine 583955d011SMarcel Moolenaar ;; 593955d011SMarcel MoolenaarSunOS) 603955d011SMarcel Moolenaar arch=`Which arch /usr/bin:/usr/ucb:$PATH` 613955d011SMarcel Moolenaar test "$arch" && machine_arch=`$arch` 623955d011SMarcel Moolenaar 633955d011SMarcel Moolenaar case "$OSREL" in 643955d011SMarcel Moolenaar 4.0*) MACHINE_ARCH=$machine_arch MACHINE=$machine_arch;; 653955d011SMarcel Moolenaar 4*) MACHINE_ARCH=$machine_arch;; 663955d011SMarcel Moolenaar esac 673955d011SMarcel Moolenaar ;; 683955d011SMarcel MoolenaarHP-UX) 693955d011SMarcel Moolenaar MACHINE_ARCH=`IFS="/-."; set $machine; echo $1` 703955d011SMarcel Moolenaar ;; 713955d011SMarcel MoolenaarInterix) 723955d011SMarcel Moolenaar MACHINE=i386 733955d011SMarcel Moolenaar MACHINE_ARCH=i386 743955d011SMarcel Moolenaar ;; 753955d011SMarcel MoolenaarUnixWare) 763955d011SMarcel Moolenaar OSREL=`uname -v` 773955d011SMarcel Moolenaar OSMAJOR=`IFS=.; set $OSREL; echo $1` 783955d011SMarcel Moolenaar MACHINE_ARCH=`uname -m` 793955d011SMarcel Moolenaar ;; 803955d011SMarcel MoolenaarLinux) 813955d011SMarcel Moolenaar case "$machine" in 823955d011SMarcel Moolenaar i?86) MACHINE_ARCH=i386;;# does anyone really care about 686 vs 586? 833955d011SMarcel Moolenaar esac 843955d011SMarcel Moolenaar ;; 853955d011SMarcel Moolenaaresac 863955d011SMarcel Moolenaar 873955d011SMarcel MoolenaarMACHINE=${MACHINE:-$OS$OSMAJOR} 883955d011SMarcel MoolenaarMACHINE_ARCH=${MACHINE_ARCH:-$machine} 893955d011SMarcel Moolenaar 903955d011SMarcel Moolenaar( 913955d011SMarcel Moolenaarcase "$0" in 923955d011SMarcel Moolenaararch*) echo $MACHINE_ARCH;; 933955d011SMarcel Moolenaar*) 943955d011SMarcel Moolenaar case "$1" in 953955d011SMarcel Moolenaar "") echo $MACHINE;; 963955d011SMarcel Moolenaar *) echo $MACHINE_ARCH;; 973955d011SMarcel Moolenaar esac 983955d011SMarcel Moolenaar ;; 993955d011SMarcel Moolenaaresac 1003955d011SMarcel Moolenaar) | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 101