##
##  guessos -- Simple operating system guesser
##  Copyright (c) 1996-1999 The Apache Group, http://www.apache.org/
##  The Apache license applies (see http://www.apache.org/docs/LICENSE)
##  Originally written for Apache
##

str_tool="guessos"
str_usage=""
arg_spec="0="
opt_spec=""
opt_alias=""

. ./sh.common

MACHINE=`(uname -m) 2>/dev/null` || MACHINE=`(uname -p) 2>/dev/null` || MACHINE="unknown"
RELEASE=`(uname -r) 2>/dev/null` || RELEASE="unknown"
 SYSTEM=`(uname -s) 2>/dev/null` ||  SYSTEM="unknown"
VERSION=`(uname -v) 2>/dev/null` || VERSION="unknown"

XREL=`(uname -X) 2>/dev/null | grep "^Release" | awk '{print $3}'`
if [ "x$XREL" != "x" ]; then
    if [ -f /etc/kconfig ]; then
        case "$XREL" in
            4.0|4.1) echo "${MACHINE}-whatever-isc4"; exit 0 ;;
        esac
    else
    case "$XREL" in
        3.2v4.2)
            echo "whatever-whatever-sco3"; exit 0
            ;;
        3.2v5.0*)
            echo "whatever-whatever-sco5"; exit 0
            ;;
        4.2MP)
            if [ "x$VERSION" = "x2.1.1" ]; then
                echo "${MACHINE}-whatever-unixware211"; exit 0
            elif [ "x$VERSION" = "x2.1.2" ]; then
                echo "${MACHINE}-whatever-unixware212"; exit 0
            else
                echo "${MACHINE}-whatever-unixware2"; exit 0
            fi
            ;;
        4.2)
            echo "whatever-whatever-unixware1"; exit 0
            ;;
        5)
            case "$VERSION" in
                7*) echo "${MACHINE}-whatever-unixware7"; exit 0 ;;
            esac
            ;;
    esac
    fi
fi
case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
    MiNT:*)
        echo "m68k-atari-mint"; exit 0
        ;;
    A/UX:*)
        echo "m68k-apple-aux3"; exit 0
        ;;
    AIX:*)
        MACH=`echo $MACHINE | sed -e 's;[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F];;'`
        echo "${MACH}-ibm-aix${VERSION}.${RELEASE}"; exit 0
        ;;
    dgux:*)
        echo "${MACHINE}-dg-dgux"; exit 0
        ;;
    HI-UX:*)
        echo "${MACHINE}-hi-hiux"; exit 0
        ;;
    HP-UX:*)
        HPUXVER=`echo ${RELEASE}|sed -e 's/[^.]*.[0B]*//'`
        MACHINE=`echo ${MACHINE}|sed -e 's:/:_:'`
        echo "${MACHINE}-hp-hpux${HPUXVER}"; exit 0
        ;;
    IRIX:*)
        if [ -f /usr/lib32/mips4/libm.so ]; then
            echo "${MACHINE}/32-sgi-irix${RELEASE}"; exit 0
        else
            echo "${MACHINE}-sgi-irix${RELEASE}"; exit 0
        fi
        ;;
    IRIX64:*)
        echo "${MACHINE}/64-sgi-irix${RELEASE}"; exit 0
        ;;
    Linux:*)
        V='whatever'
        case "$MACHINE" in
            i?86) V='pc' ;;
        esac
        R=''
        case "$RELEASE" in
            [1-9].*) R=`echo $RELEASE | cut -c1` ;;
        esac
        echo "${MACHINE}-${V}-linux-gnu${R}"; exit 0
        ;;
    LynxOS:*)
        echo "${MACHINE}-lynx-lynxos"; exit 0
        ;;
    BSD/386|BSD/OS:3.*)
        echo "${MACHINE}-whatever-bsdi3"; exit 0
        ;;
    BSD/386:*:*:*486*|BSD/OS:*:*:*:*486*)
        echo "i486-whatever-bsdi"; exit 0
        ;;
    BSD/386:*|BSD/OS:*)
        echo "${MACHINE}-whatever-bsdi"; exit 0
        ;;
    FreeBSD:*)
        VERS=`echo ${RELEASE} | sed -e 's/[-(].*//'`
        MACH=`/sbin/sysctl -n hw.model`
        ARCH='whatever'
        case ${MACH} in
           *386*       ) MACH="i386"     ;;
           *486*       ) MACH="i486"     ;;
           Pentium\ II*) MACH="i686"     ;;
           Pentium*    ) MACH="i586"     ;;
           Alpha*      ) MACH="alpha"    ;;
           *           ) MACH="$MACHINE" ;;
        esac
        case ${MACH} in
           i[0-9]86 ) ARCH="pc" ;;
        esac
        echo "${MACH}-${ARCH}-freebsd${VERS}"; exit 0
        ;;
    NetBSD:*:*:*486*)
        echo "i486-whatever-netbsd${RELEASE}"; exit 0
        ;;
    NetBSD:*)
        echo "${MACHINE}-whatever-netbsd${RELEASE}"; exit 0
        ;;
    OpenBSD:*)
        echo "${MACHINE}-whatever-openbsd"; exit 0
        ;;
    OSF1:*:*:*alpha*)
        VERS=`echo $RELEASE | sed -e 's;^V;;'`
        echo "${MACHINE}-dec-osf${VERS}"; exit 0
        ;;
    QNX:*)
        if [ "$VERSION" -gt 422 ]; then
            echo "${MACHINE}-qssl-qnx32"
        else
            echo "${MACHINE}-qssl-qnx"
        fi
        exit 0
        ;;
    Paragon*:*:*:*)
        echo "i860-intel-osf1"; exit 0
        ;;
    SunOS:5.*)
        VERSION=`echo $RELEASE | sed -e 's;^5\.;;'`
        echo "${MACHINE}-sun-solaris2.${VERSION}"; exit 0
        ;;
    SunOS:*)
        echo "${MACHINE}-sun-sunos4"; exit 0
        ;;
    UNIX_System_V:4.*:*)
        echo "${MACHINE}-whatever-sysv4"; exit 0
        ;;
    unix:3.0.9*:*:88k)
        echo "${MACHINE}-encore-sysv4"; exit 0
        ;;
    *:4*:R4*:m88k)
        echo "${MACHINE}-whatever-sysv4"; exit 0
        ;;
    UnixWare:5:99*:*)
        # Gemini, beta release of next rev of unixware
        echo "${MACHINE}-whatever-unixware212"; exit 0
        ;;
    DYNIX/ptx:4*:*)
        echo "${MACHINE}-whatever-sysv4"; exit 0
        ;;
    *:4.0:3.0:[345][0-9]?? | *:4.0:3.0:3[34]??[/,]* | library:*)
        echo "x86-ncr-sysv4"; exit 0
        ;;
    ULTRIX:*)
        echo "${MACHINE}-unknown-ultrix"; exit 0
        ;;
    SINIX-?:* | ReliantUNIX-?:*)
        echo "${MACHINE}-siemens-sysv4"; exit 0
        ;;
    POSIX*BS2000)
        echo "${MACHINE}-siemens-sysv4"; exit 0
        ;;
    machten:*)
       echo "${MACHINE}-tenon-${SYSTEM}"; exit 0;
       ;;
    ConvexOS:*:11.*:*)
       echo "${MACHINE}-v11-${SYSTEM}"; exit 0;
       ;;
    UNIX_SV:*:*:maxion)
       echo "${MACHINE}-ccur-sysv4"; exit 0;
       ;;
    PowerMAX_OS:*:*:Night_Hawk)
       MACHINE=`uname -p`
       echo "${MACHINE}-concurrent-powermax"; exit 0;
       ;;
    UNIX_SV:*)
       if [ -d /usr/nec ];then
           echo "mips-nec-sysv4"; exit 0;
       fi
       ;;
    NonStop-UX:4.[02]*:[BC]*:*)
       echo "${MACHINE}-tandem-sysv4"; exit 0;
       ;;
    Rhapsody:*:*:*)
       case "${MACHINE}" in
           "Power Macintosh") MACHINE=powerpc ;;
       esac
       echo "${MACHINE}-apple-rhapsody${RELEASE}"; exit 0
       ;;
    "Mac OS":*:*:*)
       MACHINE=`uname -p`
       echo "${MACHINE}-apple-macos${RELEASE}"; exit 0
       ;;
    "RISC iX":*)
       echo "arm-whatever-riscix"; exit 0;
       ;;
    *:4.0:2:*)
       echo "whatever-unisys-sysv4"; exit 0;
       ;;
    *:*:dcosx:NILE*)
       echo "pyramid-pyramid-svr4"; exit 0;
       ;;
    *:*:*:"DRS 6000")
       echo "drs6000-whatever-whatever"; exit 0;
       ;;
    AmigaOS:*:*:* )
       echo "${MACHINE}-whatever-${SYSTEM}${RELEASE}"; exit 0
       ;;
esac

# Now NeXT
ISNEXT=`(hostinfo) 2>/dev/null`
case "$ISNEXT" in
    *NeXT*)
         # Swiped from a friendly uname clone for NEXT/OPEN Step.
         NEXTOSVER="`hostinfo | sed -n 's/.*NeXT Mach \([0-9\.]*\).*/\1/p'`"
         if [ "$NEXTOSVER" -gt 3.3 ]; then
             NEXTOS="openstep"
         else
             NEXTOS="nextstep"
         fi
         NEXTREL="`hostinfo | sed -n 's/.*NeXT Mach \([0-9\.]*\).*/\1/p'`"
         NEXTARCH=`arch`
         echo "${NEXTARCH}-next-${NEXTOS}${NEXTREL}" ; exit 0
         ;;
esac

# Fallback
echo "${MACHINE}-unknown-${SYSTEM}/${RELEASE}/${VERSION}"

