#!/bin/sh
#
# Copyright (c) 1989 Jan-Simon Pendry
# Copyright (c) 1989 Imperial College of Science, Technology & Medicine
# Copyright (c) 1989 The Regents of the University of California.
# All rights reserved.
#
# This code is derived from software contributed to Berkeley by
# Jan-Simon Pendry at Imperial College, London.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. All advertising materials mentioning features or use of this software
# must display the following acknowledgement:
# This product includes software developed by the University of
# California, Berkeley and its contributors.
# 4. Neither the name of the University nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
# %W% (Berkeley) %G%
#
# $Id: os-type,v 1.1 1996/01/31 23:30:07 dkarlton Exp $
#
#
# Take a pot-shot at your os type
#
OS=""
#
# These OS's have a uname that doesn't say anything reasonable.
#
if [ -f /version ]; then
OS=ftx
elif [ -d /ncrm ]; then
OS=ncr
elif [ -d /usr/admin.ptx ]; then
OS=dynixptx
elif [ -f /unix ] && \
(strings /unix | grep 'INTERACTIVE UNIX' > /dev/null 2>&1) ; then
OS=isc
fi
#
# Try uname
#
if [ -f /usr/bin/uname ]; then
uname=/usr/bin/uname
elif [ -f /bin/uname ]; then
uname=/bin/uname
fi
#
# These O/S's need uname string conversions
#
if [ -z "${OS}" -a ! -z "${uname}" ]; then
case "`$uname -a | tr '[A-Z]' '[a-z]'`" in
*"4.0"*) OS=svr4;; # There has to be a better way
*" dcosx "*) OS=dcosx;;
*"cx/ux"*) OS=cxux;;
*"hp-ux"*) OS=hpux;; # HP-UX 9.x
*hp-ux*) OS=hpux;; # HP-UX 8.x
*"riscos"*) OS=mipsos"`$uname -r | sed -e 's;\..*;;'`";;
esac
fi
if [ -z "${OS}" -a ! -z "${uname}" ]; then
osname="`exec 2>/dev/null; ${uname} -s | tr '[A-Z]' '[a-z]'`"
osver="`exec 2>/dev/null; ${uname} -r`"
osmajver="`exec 2>/dev/null; echo $osver | sed -e 's;\..*;;'`"
case "${osname}${osver}" in
"irix"*) OS="${osname}${osmajver}";;
"ultrix"*) OS="${osname}${osmajver}";;
"sunos"*) OS="${osname}${osmajver}";;
"osf1"*) OS="${osname}";;
"bsd/386"*) OS=bsdi;;
"aix"*)
osmajver="`${uname} -v`"
OS="${osname}${osmajver}"
;;
"linux"*) OS=linux;;
"dgux"*) OS=dgux;;
*) OS="${osname}${osver}";;
esac
fi
#
# NeXTStep specific.
#
if [ -z "${OS}" -a -d /NextApps ]; then
if [ -f /usr/bin/hostinfo ]; then
mver="`/usr/bin/hostinfo | grep -i 'next mach' | awk '{print $3}' | sed -e 's/\..*//'`"
else
mver=2
fi
OS="nextstep${mver}"
fi
if [ -z "${OS}" ]; then
#
# Try poking around in /etc/motd
#
case "`exec 2>/dev/null; head -2 /etc/motd`" in
*"Sun UNIX 4.2 Release 3."*) OS=sunos3;;
*"SunOS Release 4."*) OS=sunos4;;
*"SunOS 5."*) OS=sunos5;;
*"HP-UX on the HP"*) OS=hpux;;
*"DYNIX(R)"*) OS=dynix;;
*"DYNIX/ptx"*) OS=dynixptx;;
*" dcosx "*) OS=dcosx;;
*"Ultrix V2."*) OS=ultrix2_2;;
*"Ultrix V3."*) OS=ultrix3_0;;
*"Ultrix-32 V3."*) OS=ultrix3_0;;
*"Ultrix Worksystem V2."*) OS=ultrix3_0;;
*"ULTRIX V4.2"*) OS=ultrix4;;
*"ULTRIX V4."*) OS=ultrix4;;
*"HLH OTS Version 1."*) OS=hlh42;;
*"RISC iX release 1."*) OS=riscix;;
*"FPX 4."*) OS=fpx4;;
*"HCX/UX"*) OS=hcx;;
*"CX/UX"*) OS=cxux;;
*"4.4 BSD UNIX"*) OS=bsd44;;
*"4.3 BSD Reno UNIX"*) OS=bsd44;;
*"4.3 BSD UNIX"*) if [ -f /etc/minidisk ]; then
OS=acis43
elif [ -f /sbin/nfsiod ]; then
OS=bsd44 # prototype
else
OS=xinu43
fi;;
*"Alliant Concentrix"*) OS=concen;;
*"Umax 4.3"*) OS=umax43;;
*"RISCos 4"*) OS=mipsos4;;
*"DEC OSF/1"*) OS=osf1;;
*"Multiflow 4.3 BSD"*) OS=tracebsd;;
*)
#
# Well, that didn't work so apply some heuristics
# to the filesystem name space...
#
# echo "# ... inspecting File system ..." >&2
if [ -f /etc/comply ]; then
OS=utek
elif [ -d /usr/lib/methods -o -d /etc/methods ]; then
OS=aix3
elif [ -f /etc/nd ]; then
OS=sunos3
elif [ -f /etc/elcsd ]; then
echo "# ... Ultrix - assuming U4.0 ..." >&2
OS=ultrix4
elif [ -f /hp-ux ]; then
OS=hpux
elif [ -f /etc/ttylocal ]; then
OS=xinu43
elif [ -f /etc/minidisk ]; then
OS=acis43
elif [ -f /etc/toolboxdaemon ]; then
OS=aux
elif [ -f /sbin/nfsiod ]; then
OS=bsd44
elif [ -d /vrm ]; then
OS=aix2
elif [ -f /dynix ]; then
OS=dynix
elif [ -f /bin/pyr ] && /bin/pyr; then
OS=pyrosx
elif [ -d /NextApps ]; then
OS=next
elif [ -f /etc/gl/ucode ]; then
OS=irix3
elif [ -f /usr/gfx/ucode -o -d /usr/gfx/ucode ]; then
OS=irix4
elif [ -f /stellix ]; then
OS=stellix
elif [ -f /unicos ]; then
OS=unicos
else
case "`(sh ../config/arch)2>/dev/null`" in
ibm032) OS=acis43;;
aviion) OS=dgux;;
*) OS=unknown;;
esac
fi;;
esac
fi # ${OS}
echo "${OS}"
exit 0