ossp-pkg/shtool/sh.guessos
##
## 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"; shtool_exit 0 ;;
esac
else
case "$XREL" in
3.2v4.2)
echo "whatever-whatever-sco3"; shtool_exit 0
;;
3.2v5.0*)
echo "whatever-whatever-sco5"; shtool_exit 0
;;
4.2MP)
if [ "x$VERSION" = "x2.1.1" ]; then
echo "${MACHINE}-whatever-unixware211"; shtool_exit 0
elif [ "x$VERSION" = "x2.1.2" ]; then
echo "${MACHINE}-whatever-unixware212"; shtool_exit 0
else
echo "${MACHINE}-whatever-unixware2"; shtool_exit 0
fi
;;
4.2)
echo "whatever-whatever-unixware1"; shtool_exit 0
;;
5)
case "$VERSION" in
7*) echo "${MACHINE}-whatever-unixware7"; shtool_exit 0 ;;
esac
;;
esac
fi
fi
case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
MiNT:*)
echo "m68k-atari-mint"; shtool_exit 0
;;
A/UX:*)
echo "m68k-apple-aux3"; shtool_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}"; shtool_exit 0
;;
dgux:*)
echo "${MACHINE}-dg-dgux"; shtool_exit 0
;;
HI-UX:*)
echo "${MACHINE}-hi-hiux"; shtool_exit 0
;;
HP-UX:*)
HPUXVER=`echo ${RELEASE}|sed -e 's/[^.]*.[0B]*//'`
MACHINE=`echo ${MACHINE}|sed -e 's:/:_:'`
echo "${MACHINE}-hp-hpux${HPUXVER}"; shtool_exit 0
;;
IRIX:*)
if [ -f /usr/lib32/mips4/libm.so ]; then
echo "${MACHINE}/32-sgi-irix${RELEASE}"; shtool_exit 0
else
echo "${MACHINE}-sgi-irix${RELEASE}"; shtool_exit 0
fi
;;
IRIX64:*)
echo "${MACHINE}/64-sgi-irix${RELEASE}"; shtool_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}"; shtool_exit 0
;;
LynxOS:*)
echo "${MACHINE}-lynx-lynxos"; shtool_exit 0
;;
BSD/386|BSD/OS:3.*)
echo "${MACHINE}-whatever-bsdi3"; shtool_exit 0
;;
BSD/386:*:*:*486*|BSD/OS:*:*:*:*486*)
echo "i486-whatever-bsdi"; shtool_exit 0
;;
BSD/386:*|BSD/OS:*)
echo "${MACHINE}-whatever-bsdi"; shtool_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}"; shtool_exit 0
;;
NetBSD:*:*:*486*)
echo "i486-whatever-netbsd${RELEASE}"; shtool_exit 0
;;
NetBSD:*)
echo "${MACHINE}-whatever-netbsd${RELEASE}"; shtool_exit 0
;;
OpenBSD:*)
echo "${MACHINE}-whatever-openbsd"; shtool_exit 0
;;
OSF1:*:*:*alpha*)
VERS=`echo $RELEASE | sed -e 's;^V;;'`
echo "${MACHINE}-dec-osf${VERS}"; shtool_exit 0
;;
QNX:*)
if [ "$VERSION" -gt 422 ]; then
echo "${MACHINE}-qssl-qnx32"
else
echo "${MACHINE}-qssl-qnx"
fi
shtool_exit 0
;;
Paragon*:*:*:*)
echo "i860-intel-osf1"; shtool_exit 0
;;
SunOS:5.*)
VERSION=`echo $RELEASE | sed -e 's;^5\.;;'`
echo "${MACHINE}-sun-solaris2.${VERSION}"; shtool_exit 0
;;
SunOS:*)
echo "${MACHINE}-sun-sunos4"; shtool_exit 0
;;
UNIX_System_V:4.*:*)
echo "${MACHINE}-whatever-sysv4"; shtool_exit 0
;;
unix:3.0.9*:*:88k)
echo "${MACHINE}-encore-sysv4"; shtool_exit 0
;;
*:4*:R4*:m88k)
echo "${MACHINE}-whatever-sysv4"; shtool_exit 0
;;
UnixWare:5:99*:*)
# Gemini, beta release of next rev of unixware
echo "${MACHINE}-whatever-unixware212"; shtool_exit 0
;;
DYNIX/ptx:4*:*)
echo "${MACHINE}-whatever-sysv4"; shtool_exit 0
;;
*:4.0:3.0:[345][0-9]?? | *:4.0:3.0:3[34]??[/,]* | library:*)
echo "x86-ncr-sysv4"; shtool_exit 0
;;
ULTRIX:*)
echo "${MACHINE}-unknown-ultrix"; shtool_exit 0
;;
SINIX-?:* | ReliantUNIX-?:*)
echo "${MACHINE}-siemens-sysv4"; shtool_exit 0
;;
POSIX*BS2000)
echo "${MACHINE}-siemens-sysv4"; shtool_exit 0
;;
machten:*)
echo "${MACHINE}-tenon-${SYSTEM}"; shtool_exit 0;
;;
ConvexOS:*:11.*:*)
echo "${MACHINE}-v11-${SYSTEM}"; shtool_exit 0;
;;
UNIX_SV:*:*:maxion)
echo "${MACHINE}-ccur-sysv4"; shtool_exit 0;
;;
PowerMAX_OS:*:*:Night_Hawk)
MACHINE=`uname -p`
echo "${MACHINE}-concurrent-powermax"; shtool_exit 0;
;;
UNIX_SV:*)
if [ -d /usr/nec ];then
echo "mips-nec-sysv4"; shtool_exit 0;
fi
;;
NonStop-UX:4.[02]*:[BC]*:*)
echo "${MACHINE}-tandem-sysv4"; shtool_exit 0;
;;
Rhapsody:*:*:*)
case "${MACHINE}" in
"Power Macintosh") MACHINE=powerpc ;;
esac
echo "${MACHINE}-apple-rhapsody${RELEASE}"; shtool_exit 0
;;
Darwin:*:*:*)
MACHINE=`uname -p`
echo "${MACHINE}-apple-darwin${RELEASE}"; shtool_exit 0
;;
"Mac OS":*:*:*)
MACHINE=`uname -p`
echo "${MACHINE}-apple-macos${RELEASE}"; shtool_exit 0
;;
"RISC iX":*)
echo "arm-whatever-riscix"; shtool_exit 0;
;;
*:4.0:2:*)
echo "whatever-unisys-sysv4"; shtool_exit 0;
;;
*:*:dcosx:NILE*)
echo "pyramid-pyramid-svr4"; shtool_exit 0;
;;
*:*:*:"DRS 6000")
echo "drs6000-whatever-whatever"; shtool_exit 0;
;;
AmigaOS:*:*:* )
echo "${MACHINE}-whatever-${SYSTEM}${RELEASE}"; shtool_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}" ; shtool_exit 0
;;
esac
# Fallback
echo "${MACHINE}-unknown-${SYSTEM}/${RELEASE}/${VERSION}"