home *** CD-ROM | disk | FTP | other *** search
/ Australian Personal Computer 1999 March / apc432.iso / features / linux / mailstud / mailstat.tz / mailstat / mailstudio-1.5 / GuessOS next >
Encoding:
Text File  |  1998-12-22  |  5.6 KB  |  276 lines

  1. #!/bin/sh
  2. #
  3. # Simple OS/Platform guesser. Similar to config.guess but
  4. # much, much smaller. Since it was developed for use with
  5. # Apache, it follows under Apache's regular licensing
  6. # with one specific addition: Any changes or additions
  7. # to this script should be Emailed to the Apache
  8. # group (apache@apache.org) in general and to
  9. # Jim Jagielski (jim@jaguNET.com) in specific.
  10. #
  11. # Be as similar to the output of config.guess/config.sub
  12. # as possible.
  13.  
  14. # First get uname entries that we use below
  15.  
  16. MACHINE=`(uname -m) 2>/dev/null` || MACHINE="unknown"
  17. RELEASE=`(uname -r) 2>/dev/null` || RELEASE="unknown"
  18. SYSTEM=`(uname -s) 2>/dev/null`  || SYSTEM="unknown"
  19. VERSION=`(uname -v) 2>/dev/null` || VERSION="unknown"
  20.  
  21.  
  22. # Now test for ISC and SCO, since it is has a braindamaged uname.
  23. #
  24. # We need to work around FreeBSD 1.1.5.1 
  25. XREL=`uname -X 2>/dev/null | grep "^Release" | awk '{print $3}'`
  26. if [ "x$XREL" != "x" ]; then
  27.     if [ -f /etc/kconfig ]; then
  28.     case "$XREL" in
  29.         4.0|4.1)
  30.             echo "${MACHINE}-whatever-isc4"; exit 0
  31.         ;;
  32.     esac
  33.     else
  34.     case "$XREL" in
  35.         3.2v4.2)
  36.         echo "whatever-whatever-sco3"; exit 0
  37.         ;;
  38.         3.2v5.0*)
  39.         echo "whatever-whatever-sco5"; exit 0
  40.         ;;
  41.         4.2MP)
  42.         if [ "x$VERSION" = "x2.1.1" ]; then
  43.             echo "${MACHINE}-whatever-unixware211"; exit 0
  44.         elif [ "x$VERSION" = "x2.1.2" ]; then
  45.             echo "${MACHINE}-whatever-unixware212"; exit 0
  46.         else
  47.             echo "${MACHINE}-whatever-unixware2"; exit 0
  48.         fi
  49.         ;;
  50.         4.2)
  51.         echo "whatever-whatever-unixware1"; exit 0
  52.         ;;
  53.         5)
  54.         if [ "x$VERSION" = "x7" ]; then
  55.             echo "${MACHINE}-whatever-unixware7"; exit 0
  56.         fi
  57.         ;;
  58.     esac
  59.     fi
  60. fi
  61. # Now we simply scan though... In most cases, the SYSTEM info is enough
  62. #
  63. case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
  64.     MiNT:*)
  65.         echo "m68k-atari-mint"; exit 0
  66.     ;;
  67.     A/UX:*)
  68.     echo "m68k-apple-aux3"; exit 0
  69.     ;;
  70.  
  71.     AIX:*)
  72.     echo "${MACHINE}-ibm-aix${VERSION}.${RELEASE}"; exit 0
  73.     ;;
  74.  
  75.     dgux:*)
  76.     echo "${MACHINE}-dg-dgux"; exit 0
  77.     ;;
  78.  
  79.     HI-UX:*)
  80.     echo "${MACHINE}-hi-hiux"; exit 0
  81.     ;;
  82.  
  83.     HP-UX:*)
  84.     HPUXVER=`echo ${RELEASE}|sed -e 's/[^.]*.[0B]*//'`
  85.     echo "${MACHINE}-hp-hpux${HPUXVER}"; exit 0
  86.     ;;
  87.  
  88.     IRIX:*)
  89.     if [ -f /usr/lib32/mips4/libm.so ]; then
  90.         echo "${MACHINE}-sgi-irix32"; exit 0
  91.     else
  92.         echo "${MACHINE}-sgi-irix"; exit 0
  93.     fi
  94.     ;;
  95.  
  96.     IRIX64:*)
  97.     echo "${MACHINE}-sgi-irix64"; exit 0
  98.     ;;
  99.  
  100.     Linux:[2-9].*)
  101.     echo "${MACHINE}-whatever-linux2"; exit 0
  102.     ;;
  103.  
  104.     Linux:1.*)
  105.     echo "${MACHINE}-whatever-linux1"; exit 0
  106.     ;;
  107.  
  108.     LynxOS:*)
  109.     echo "${MACHINE}-lynx-lynxos"; exit 0
  110.     ;;
  111.  
  112.     BSD/386:*:*:*486*|BSD/OS:*:*:*:*486*)
  113.     echo "i486-whatever-bsdi"; exit 0
  114.     ;;
  115.  
  116.     BSD/386:*|BSD/OS:*)
  117.     echo "${MACHINE}-whatever-bsdi"; exit 0
  118.     ;;
  119.  
  120.     FreeBSD:*:*:*486*)
  121.     FREEBSDVERS=`echo ${RELEASE}|sed -e 's/[-(].*//'`
  122.     echo "i486-whatever-freebsd${FREEBSDVERS}"; exit 0
  123.     ;;
  124.  
  125.     FreeBSD:*)
  126.     FREEBSDVERS=`echo ${RELEASE}|sed -e 's/[-(].*//'`
  127.     echo "${MACHINE}-whatever-freebsd${FREEBSDVERS}"; exit 0
  128.     ;;
  129.  
  130.     NetBSD:*:*:*486*)
  131.     echo "i486-whatever-netbsd"; exit 0
  132.     ;;
  133.  
  134.     NetBSD:*)
  135.     echo "${MACHINE}-whatever-netbsd"; exit 0
  136.     ;;
  137.  
  138.     OpenBSD:*)
  139.     echo "${MACHINE}-whatever-openbsd"; exit 0
  140.     ;;
  141.  
  142.     OSF1:*:*:*alpha*)
  143.     echo "${MACHINE}-dec-osf"; exit 0
  144.     ;;
  145.  
  146.     QNX:*)
  147.     if [ "$VERSION" -gt 422 ]; then
  148.         echo "${MACHINE}-qssl-qnx32"
  149.     else
  150.         echo "${MACHINE}-qssl-qnx"
  151.     fi
  152.     exit 0
  153.     ;;
  154.  
  155.     Paragon*:*:*:*)
  156.     echo "i860-intel-osf1"; exit 0
  157.     ;;
  158.  
  159.     SunOS:5.*)
  160.     SOLVER=`echo ${RELEASE}|awk -F. '{
  161.         if (NF < 3)
  162.         printf "2%s0\n",$2
  163.         else
  164.             printf "2%s%s\n",$2,$3
  165.     }'`
  166.     echo "${MACHINE}-sun-solaris2.${SOLVER}"; exit 0
  167.     ;;
  168.  
  169.     SunOS:*)
  170.     echo "${MACHINE}-sun-sunos4"; exit 0
  171.     ;;
  172.  
  173.     UNIX_System_V:4.*:*)
  174.     echo "${MACHINE}-whatever-sysv4"; exit 0
  175.     ;;
  176.  
  177.     unix:3.0.9*:*:88k)
  178.     echo "${MACHINE}-encore-sysv4"; exit 0
  179.     ;;
  180.  
  181.     *:4*:R4*:m88k)
  182.     echo "${MACHINE}-whatever-sysv4"; exit 0
  183.     ;;
  184.  
  185.     UnixWare:5:99*:*)
  186.     # Gemini, beta release of next rev of unixware
  187.     echo "${MACHINE}-whatever-unixware212"; exit 0
  188.     ;;
  189.  
  190.     DYNIX/ptx:4*:*)
  191.     echo "${MACHINE}-whatever-sysv4"; exit 0
  192.     ;;
  193.  
  194.     *:4.0:3.0:[345][0-9]?? | *:4.0:3.0:3[34]??[/,]* | library:*)
  195.     echo "x86-ncr-sysv4"; exit 0
  196.     ;;
  197.  
  198.     ULTRIX:*)
  199.     echo "${MACHINE}-unknown-ultrix"; exit 0
  200.     ;;
  201.  
  202.     SINIX-?:* | ReliantUNIX-?:*)
  203.     echo "${MACHINE}-sni-sysv4"; exit 0
  204.     ;;
  205.  
  206.     POSIX*BS2000)
  207.     echo "${MACHINE}-sni-sysv4"; exit 0
  208.     ;;
  209.  
  210.     machten:*)
  211.        echo "${MACHINE}-tenon-${SYSTEM}"; exit 0;
  212.        ;;
  213.  
  214.     ConvexOS:*:11.*:*)
  215.     echo "${MACHINE}-v11-${SYSTEM}"; exit 0;
  216.     ;;
  217.     
  218.     UNIX_SV:*:*:maxion)
  219.     echo "${MACHINE}-ccur-sysv4"; exit 0;
  220.     ;;
  221.     
  222.     NonStop-UX:4.[02]*:[BC]*:*)
  223.     echo "${MACHINE}-tandem-sysv4"; exit 0;
  224.     ;;
  225.  
  226.     "RISC iX":*)
  227.     echo "arm-whatever-riscix"; exit 0;
  228.     ;;
  229.  
  230.     *:4.0:2:*)
  231.     echo "whatever-unisys-sysv4"; exit 0;
  232.     ;;
  233.  
  234. esac
  235.  
  236. #
  237. # Ugg. These are all we can determine by what we know about
  238. # the output of uname. Be more creative:
  239. #
  240.  
  241. # Do the Apollo stuff first. Here, we just simply assume
  242. # that the existance of the /usr/apollo directory is proof
  243. # enough
  244. if [ -d /usr/apollo ]; then
  245.     echo "whatever-apollo-whatever"
  246.     exit 0
  247. fi
  248.  
  249. # Now NeXT
  250. ISNEXT=`hostinfo 2>/dev/null`
  251. case "$ISNEXT" in
  252.     *NeXT*)
  253. #    echo "whatever-next-nextstep"; exit 0
  254.  
  255. #    Swiped from a friendly uname clone for NEXT/OPEN Step.
  256.          NEXTOSVER="`hostinfo | sed -n 's/.*NeXT Mach \([0-9\.]*\).*/\1/p'`"
  257.     if [ "$NEXTOSVER" -gt 3.3 ]
  258.          then
  259.           NEXTOS="openstep"
  260.          else
  261.           NEXTOS="nextstep"
  262.          fi
  263.  
  264.     NEXTREL="`hostinfo | sed -n 's/.*NeXT Mach \([0-9\.]*\).*/\1/p'`" 
  265.     NEXTARCH=`arch`
  266.     echo "${NEXTARCH}-next-${NEXTOS}${NEXTREL}" ; exit 0
  267.  
  268.     ;;
  269. esac
  270.  
  271. # At this point we gone through all the one's
  272. # we know of: Punt
  273.  
  274. echo "${MACHINE}-whatever-${SYSTEM}|${RELEASE}|${VERSION}" 
  275. exit 0
  276.