#!/bin/sh
#
# Simple OS/Platform guesser. Similar to config.guess but
# much, much smaller. Since it was developed for use with
# Apache, it follows under Apache's regular licensing
# with one specific addition: Any changes or additions
# to this script should be Emailed to the Apache
# group (apache@apache.org) in general and to
# Jim Jagielski (jim@jaguNET.com) in specific.
#
# Be as similar to the output of config.guess/config.sub
# as possible.

# First get uname entries that we use below

MACHINE=`(uname -m) 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"


# Now test for ISC and SCO, since it is has a braindamaged uname.
#
# We need to work around FreeBSD 1.1.5.1 
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
		;;
	esac
    fi
fi
# Now we simply scan though... In most cases, the SYSTEM info is enough
#
case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
    A/UX:*)
	echo "m68k-apple-aux3"; exit 0
	;;

    AIX:*)
	echo "${MACHINE}-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]*//'`
	case "$HPUXVER" in
	    10.*)
		echo "${MACHINE}-hp-hpux10."; exit 0
		;;
	    *)
		echo "${MACHINE}-hp-hpux"; exit 0
		;;
	esac
	;;

    IRIX:*)
	echo "${MACHINE}-sgi-irix"; exit 0
	;;

    IRIX64:*)
	echo "${MACHINE}-sgi-irix64"; exit 0
	;;

    Linux:[2-9].*)
	if [ -f /etc/debian_version ]; then
	    echo "${MACHINE}-debian-linux2"; exit 0
	elif [ -d /var/lib/rpm ]; then
	    echo "${MACHINE}-redhat-linux2"; exit 0
	else
	    echo "${MACHINE}-whatever-linux2"; exit 0
	fi
	;;

    Linux:1.*)
	echo "${MACHINE}-whatever-linux1"; exit 0
	;;

    LynxOS:*)
	echo "${MACHINE}-lynx-lynxos"; 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:*:*:*486*)
	echo "i486-whatever-freebsd"; exit 0
	;;

    FreeBSD:*)
	echo "${MACHINE}-whatever-freebsd"; exit 0
	;;

    NetBSD:*:*:*486*)
	echo "i486-whatever-netbsd"; exit 0
	;;

    NetBSD:*)
	echo "${MACHINE}-whatever-netbsd"; exit 0
	;;

    OpenBSD:*)
	echo "${MACHINE}-whatever-openbsd"; exit 0
	;;

    OSF1:*:*:*alpha*)
	echo "${MACHINE}-dec-osf"; exit 0
	;;

    QNX:*)
	case "$VERSION" in
	    423)
		echo "${MACHINE}-qssl-qnx32"
		;;
	    *)
		echo "${MACHINE}-qssl-qnx"
		;;
	esac
	exit 0
	;;

    Paragon*:*:*:*)
	echo "i860-intel-osf1"; exit 0
	;;

    SunOS:5.*)
	echo "${MACHINE}-sun-solaris2"; exit 0
	;;

    SunOS:*)
	echo "${MACHINE}-sun-sunos4"; exit 0
	;;

    UNIX_System_V:4.*:*)
	echo "${MACHINE}-whatever-sysv4"; exit 0
	;;

    *:4*:R4*:m88k)
	echo "${MACHINE}-whatever-sysv4"; exit 0
	;;

    DYNIX/ptx:4*:*)
	echo "${MACHINE}-whatever-sysv4"; exit 0
	;;

    *:4.0:3.0:3[34]?? | *:4.0:3.0:3[34]??,*)
	echo "i486-ncr-sysv4"; exit 0
	;;

    ULTRIX:*)
	echo "${MACHINE}-unknown-ultrix"; exit 0
	;;

    SINIX-?:* | ReliantUNIX-?:*)
	echo "${MACHINE}-sni-sysv4"; exit 0
	;;

    machten:*)
       echo "${MACHINE}-tenon-${SYSTEM}"; exit 0;
       ;;

    library:*)
	echo "${MACHINE}-ncr-sysv4"; exit 0
	;;

    ConvexOS:*:11.*:*)
	echo "${MACHINE}-v11-${SYSTEM}"; exit 0;
	;;
    
    UNIX_SV:*:*:maxion)
	echo "${MACHINE}-ccur-sysv4"; exit 0;
	;;
    
    NonStop-UX:4.[02]*:[BC]*:*)
	echo "${MACHINE}-tandem-sysv4"; exit 0;
	;;

esac

#
# Ugg. These are all we can determine by what we know about
# the output of uname. Be more creative:
#

# Do the Apollo stuff first. Here, we just simply assume
# that the existance of the /usr/apollo directory is proof
# enough
if [ -d /usr/apollo ]; then
    echo "whatever-apollo-whatever"
    exit 0
fi

# Now NeXT
ISNEXT=`hostinfo 2>/dev/null`
case "$ISNEXT" in
    *NeXT*)
	echo "whatever-next-nextstep"; exit 0
	;;
esac

# At this point we gone through all the one's
# we know of: Punt

echo "${MACHINE}-whatever-${SYSTEM}|${RELEASE}|${VERSION}" 
exit 0
