#!/bin/sh
#*************************************************************************
# Copyright (c) 2011 UChicago Argonne LLC, as Operator of Argonne
#     National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
#     Operator of Los Alamos National Laboratory.
# EPICS BASE is distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution. 
#*************************************************************************
#
# EpicsHostArch - returns the Epics host architecture suitable
#                 for assigning to the EPICS_HOST_ARCH variable

if [ "x${1}" != "x" ]
then
    suffix="-"${1}
else
    suffix=""
fi

sysname=`uname`

case $sysname in
    Linux )
        os=linux
        cpu=`uname -m`
        case $cpu in
            i386 | i486 | i586 | i686 )
                cpu=x86 ;;
            x86_64 )
                ;; # $cpu is correct
            armv6l | armv7l )
                cpu=arm ;;
        esac
        echo ${os}-${cpu}${suffix}
        ;;
    Darwin )
        os=darwin
        cpu=`uname -m`
        case $cpu in
            "Power Macintosh")
                cpu=ppc ;;
            i386 | x86_64 )
                cpu=x86 ;;
        esac
        echo ${os}-${cpu}${suffix}
        ;;
    SunOS )
        version=`uname -r | sed '1s/^\([0-9]*\).*$/\1/'`
        if [ ${version} -ge 5 ]; then
            os=solaris
        else
            os=sun4
        fi
        cpu=`uname -m`
        case $cpu in
        sun4*)
            cpu=sparc
            ;;
        i86pc)
            cpu=x86
            ;;
        esac
        echo ${os}-${cpu}${suffix}
        ;;
    * )
        sysname=`uname -o`
        case $sysname in
           Cygwin )
                os=cygwin
                cpu=`uname -m`
                case $cpu in i386 | i486 | i586 | i686 )
                        cpu=x86
                    ;;
                esac
                echo ${os}-${cpu}${suffix}
                ;;
           * )
                echo unsupported
                ;;
        esac
        ;;
esac

