#! /bin/sh
-# $Cambridge: exim/src/scripts/os-type,v 1.2 2005/02/17 10:04:41 ph10 Exp $
+# $Cambridge: exim/src/scripts/os-type,v 1.5 2006/03/16 14:00:50 ph10 Exp $
# Shell script to determine the operating system type. Some of the heuristics
# herein have accumulated over the years and may not strictly be needed now,
# Identify Glibc systems under different names.
-case "$os" in GNU|GNU/*|Linux) os=Linux;; esac
+case "$os" in GNU) os=GNU;; esac
+case "$os" in GNU/*|Linux) os=Linux;; esac
# It is believed that all systems respond to uname -s, but just in case
# there is one that doesn't, use the shell's $OSTYPE variable. It is known
linux-*) os=Linux;;
Linux-*) os=Linux;;
netbsd*) os=NetBSD;;
+NetBSD*) version=`uname -r`
+ case "$version" in
+ 3.*) os=NetBSD3;;
+ *) os=NetBSD;;
+ esac;;
openbsd*) os=OpenBSD;;
osf1) os=OSF1;;
qnx*) os=QNX;;
esac
;;
-# In the case of Linux we need to distinguish which libc is used.
-# This is more cautious than it needs to be. In practice libc5 will always
-# be a symlink, and libc6 will always be a linker control file, but it's
-# easy enough to do a better check, and check the symlink destination or the
-# control file contents and make sure.
-
-Linux) if [ -L /usr/lib/libc.so ]; then
- if [ x"$(file /usr/lib/libc.so | grep "libc.so.5")"x != xx ]; then
- os=Linux-libc5
- fi
- else
- if grep -q libc.so.5 /usr/lib/libc.so; then
- os=Linux-libc5
- fi
- fi
- ;;
+# In the case of Linux we used to distinguish which libc was used so that
+# the old libc5 was supported as well as the current glibc. This support
+# was giving some people problems, so it was removed in June 2005, under
+# the assumption that nobody would be using libc5 any more (it is over seven
+# years old).
# In the case of NetBSD we need to distinguish between a.out, ELF
# and COFF binary formats. However, a.out and COFF are the same
# ELF soon.
NetBSD) if echo __ELF__ | ${CC-cc} -E - | grep -q __ELF__ ; then
- # Non-ELF system
- os="NetBSD-a.out"
- fi
+ # Non-ELF system
+ os="NetBSD-a.out"
+ fi
;;
esac