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