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