home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 20 / AACD20.BIN / AACD / Programming / Jikes / Source / config.guess < prev    next >
Encoding:
Text File  |  2001-02-24  |  39.0 KB  |  1,418 lines

  1. #! /bin/sh
  2. # Attempt to guess a canonical system name.
  3. #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
  4. #   Free Software Foundation, Inc.
  5.  
  6. timestamp='2001-01-17'
  7.  
  8. # This file is free software; you can redistribute it and/or modify it
  9. # under the terms of the GNU General Public License as published by
  10. # the Free Software Foundation; either version 2 of the License, or
  11. # (at your option) any later version.
  12. #
  13. # This program is distributed in the hope that it will be useful, but
  14. # WITHOUT ANY WARRANTY; without even the implied warranty of
  15. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16. # General Public License for more details.
  17. #
  18. # You should have received a copy of the GNU General Public License
  19. # along with this program; if not, write to the Free Software
  20. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  21. #
  22. # As a special exception to the GNU General Public License, if you
  23. # distribute this file as part of a program that contains a
  24. # configuration script generated by Autoconf, you may include it under
  25. # the same distribution terms that you use for the rest of that program.
  26.  
  27. # Written by Per Bothner <bothner@cygnus.com>.
  28. # Please send patches to <config-patches@gnu.org>.
  29. #
  30. # This script attempts to guess a canonical system name similar to
  31. # config.sub.  If it succeeds, it prints the system name on stdout, and
  32. # exits with 0.  Otherwise, it exits with 1.
  33. #
  34. # The plan is that this can be called by configure scripts if you
  35. # don't specify an explicit build system type.
  36. #
  37. # Only a few systems have been added to this list; please add others
  38. # (but try to keep the structure clean).
  39. #
  40.  
  41. me=`echo "$0" | sed -e 's,.*/,,'`
  42.  
  43. usage="\
  44. Usage: $0 [OPTION]
  45.  
  46. Output the configuration name of the system \`$me' is run on.
  47.  
  48. Operation modes:
  49.   -h, --help         print this help, then exit
  50.   -t, --time-stamp   print date of last modification, then exit
  51.   -v, --version      print version number, then exit
  52.  
  53. Report bugs and patches to <config-patches@gnu.org>."
  54.  
  55. version="\
  56. GNU config.guess ($timestamp)
  57.  
  58. Originally written by Per Bothner.
  59. Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000
  60. Free Software Foundation, Inc.
  61.  
  62. This is free software; see the source for copying conditions.  There is NO
  63. warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
  64.  
  65. help="
  66. Try \`$me --help' for more information."
  67.  
  68. # Parse command line
  69. while test $# -gt 0 ; do
  70.   case $1 in
  71.     --time-stamp | --time* | -t )
  72.        echo "$timestamp" ; exit 0 ;;
  73.     --version | -v )
  74.        echo "$version" ; exit 0 ;;
  75.     --help | --h* | -h )
  76.        echo "$usage"; exit 0 ;;
  77.     -- )     # Stop option processing
  78.        shift; break ;;
  79.     - )    # Use stdin as input.
  80.        break ;;
  81.     -* )
  82.        echo "$me: invalid option $1$help" >&2
  83.        exit 1 ;;
  84.     * )
  85.        break ;;
  86.   esac
  87. done
  88.  
  89. if test $# != 0; then
  90.   echo "$me: too many arguments$help" >&2
  91.   exit 1
  92. fi
  93.  
  94.  
  95. dummy=dummy-$$
  96. trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
  97.  
  98. # CC_FOR_BUILD -- compiler used by this script.
  99. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
  100. # use `HOST_CC' if defined, but it is deprecated.
  101.  
  102. case $CC_FOR_BUILD,$HOST_CC,$CC in
  103.  ,,)    echo "int dummy(){}" > $dummy.c
  104.     for c in cc gcc c89 ; do
  105.       ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1
  106.       if test $? = 0 ; then
  107.          CC_FOR_BUILD="$c"; break
  108.       fi
  109.     done
  110.     rm -f $dummy.c $dummy.o $dummy.rel
  111.     if test x"$CC_FOR_BUILD" = x ; then
  112.       CC_FOR_BUILD=no_compiler_found
  113.     fi
  114.     ;;
  115.  ,,*)   CC_FOR_BUILD=$CC ;;
  116.  ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
  117. esac
  118.  
  119. # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
  120. # (ghazi@noc.rutgers.edu 8/24/94.)
  121. if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
  122.     PATH=$PATH:/.attbin ; export PATH
  123. fi
  124.  
  125. UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
  126. UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
  127. UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
  128. UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
  129.  
  130. # Note: order is significant - the case branches are not exclusive.
  131.  
  132. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
  133.     *:NetBSD:*:*)
  134.     # Netbsd (nbsd) targets should (where applicable) match one or
  135.     # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
  136.     # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
  137.     # switched to ELF, *-*-netbsd* would select the old
  138.     # object file format.  This provides both forward
  139.     # compatibility and a consistent mechanism for selecting the
  140.     # object file format.
  141.     # Determine the machine/vendor (is the vendor relevant).
  142.     case "${UNAME_MACHINE}" in
  143.         amiga) machine=m68k-unknown ;;
  144.         arm32) machine=arm-unknown ;;
  145.         atari*) machine=m68k-atari ;;
  146.         sun3*) machine=m68k-sun ;;
  147.         mac68k) machine=m68k-apple ;;
  148.         macppc) machine=powerpc-apple ;;
  149.         hp3[0-9][05]) machine=m68k-hp ;;
  150.         ibmrt|romp-ibm) machine=romp-ibm ;;
  151.         *) machine=${UNAME_MACHINE}-unknown ;;
  152.     esac
  153.     # The Operating System including object format, if it has switched
  154.     # to ELF recently, or will in the future.
  155.     case "${UNAME_MACHINE}" in
  156.         i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
  157.         if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
  158.             | grep __ELF__ >/dev/null
  159.         then
  160.             # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
  161.             # Return netbsd for either.  FIX?
  162.             os=netbsd
  163.         else
  164.             os=netbsdelf
  165.         fi
  166.         ;;
  167.         *)
  168.             os=netbsd
  169.         ;;
  170.     esac
  171.     # The OS release
  172.     release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
  173.     # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
  174.     # contains redundant information, the shorter form:
  175.     # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
  176.     echo "${machine}-${os}${release}"
  177.     exit 0 ;;
  178.     alpha:OSF1:*:*)
  179.     if test $UNAME_RELEASE = "V4.0"; then
  180.         UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
  181.     fi
  182.     # A Vn.n version is a released version.
  183.     # A Tn.n version is a released field test version.
  184.     # A Xn.n version is an unreleased experimental baselevel.
  185.     # 1.2 uses "1.2" for uname -r.
  186.     cat <<EOF >$dummy.s
  187.     .data
  188. \$Lformat:
  189.     .byte 37,100,45,37,120,10,0    # "%d-%x\n"
  190.  
  191.     .text
  192.     .globl main
  193.     .align 4
  194.     .ent main
  195. main:
  196.     .frame \$30,16,\$26,0
  197.     ldgp \$29,0(\$27)
  198.     .prologue 1
  199.     .long 0x47e03d80 # implver \$0
  200.     lda \$2,-1
  201.     .long 0x47e20c21 # amask \$2,\$1
  202.     lda \$16,\$Lformat
  203.     mov \$0,\$17
  204.     not \$1,\$18
  205.     jsr \$26,printf
  206.     ldgp \$29,0(\$26)
  207.     mov 0,\$16
  208.     jsr \$26,exit
  209.     .end main
  210. EOF
  211.     $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
  212.     if test "$?" = 0 ; then
  213.         case `./$dummy` in
  214.             0-0)
  215.                 UNAME_MACHINE="alpha"
  216.                 ;;
  217.             1-0)
  218.                 UNAME_MACHINE="alphaev5"
  219.                 ;;
  220.             1-1)
  221.                 UNAME_MACHINE="alphaev56"
  222.                 ;;
  223.             1-101)
  224.                 UNAME_MACHINE="alphapca56"
  225.                 ;;
  226.             2-303)
  227.                 UNAME_MACHINE="alphaev6"
  228.                 ;;
  229.             2-307)
  230.                 UNAME_MACHINE="alphaev67"
  231.                 ;;
  232.         esac
  233.     fi
  234.     rm -f $dummy.s $dummy
  235.     echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
  236.     exit 0 ;;
  237.     Alpha\ *:Windows_NT*:*)
  238.     # How do we know it's Interix rather than the generic POSIX subsystem?
  239.     # Should we change UNAME_MACHINE based on the output of uname instead
  240.     # of the specific Alpha model?
  241.     echo alpha-pc-interix
  242.     exit 0 ;;
  243.     21064:Windows_NT:50:3)
  244.     echo alpha-dec-winnt3.5
  245.     exit 0 ;;
  246.     Amiga*:UNIX_System_V:4.0:*)
  247.     echo m68k-unknown-sysv4
  248.     exit 0;;
  249.     amiga:OpenBSD:*:*)
  250.     echo m68k-unknown-openbsd${UNAME_RELEASE}
  251.     exit 0 ;;
  252.     *:[Aa]miga[Oo][Ss]:*:*)
  253.     echo ${UNAME_MACHINE}-unknown-amigaos
  254.     exit 0 ;;
  255.     arc64:OpenBSD:*:*)
  256.     echo mips64el-unknown-openbsd${UNAME_RELEASE}
  257.     exit 0 ;;
  258.     arc:OpenBSD:*:*)
  259.     echo mipsel-unknown-openbsd${UNAME_RELEASE}
  260.     exit 0 ;;
  261.     hkmips:OpenBSD:*:*)
  262.     echo mips-unknown-openbsd${UNAME_RELEASE}
  263.     exit 0 ;;
  264.     pmax:OpenBSD:*:*)
  265.     echo mipsel-unknown-openbsd${UNAME_RELEASE}
  266.     exit 0 ;;
  267.     sgi:OpenBSD:*:*)
  268.     echo mips-unknown-openbsd${UNAME_RELEASE}
  269.     exit 0 ;;
  270.     wgrisc:OpenBSD:*:*)
  271.     echo mipsel-unknown-openbsd${UNAME_RELEASE}
  272.     exit 0 ;;
  273.     *:OS/390:*:*)
  274.     echo i370-ibm-openedition
  275.     exit 0 ;;
  276.     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
  277.     echo arm-acorn-riscix${UNAME_RELEASE}
  278.     exit 0;;
  279.     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
  280.     echo hppa1.1-hitachi-hiuxmpp
  281.     exit 0;;
  282.     Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
  283.     # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
  284.     if test "`(/bin/universe) 2>/dev/null`" = att ; then
  285.         echo pyramid-pyramid-sysv3
  286.     else
  287.         echo pyramid-pyramid-bsd
  288.     fi
  289.     exit 0 ;;
  290.     NILE*:*:*:dcosx)
  291.     echo pyramid-pyramid-svr4
  292.     exit 0 ;;
  293.     sun4H:SunOS:5.*:*)
  294.     echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
  295.     exit 0 ;;
  296.     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
  297.     echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
  298.     exit 0 ;;
  299.     i86pc:SunOS:5.*:*)
  300.     echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
  301.     exit 0 ;;
  302.     sun4*:SunOS:6*:*)
  303.     # According to config.sub, this is the proper way to canonicalize
  304.     # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
  305.     # it's likely to be more like Solaris than SunOS4.
  306.     echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
  307.     exit 0 ;;
  308.     sun4*:SunOS:*:*)
  309.     case "`/usr/bin/arch -k`" in
  310.         Series*|S4*)
  311.         UNAME_RELEASE=`uname -v`
  312.         ;;
  313.     esac
  314.     # Japanese Language versions have a version number like `4.1.3-JL'.
  315.     echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
  316.     exit 0 ;;
  317.     sun3*:SunOS:*:*)
  318.     echo m68k-sun-sunos${UNAME_RELEASE}
  319.     exit 0 ;;
  320.     sun*:*:4.2BSD:*)
  321.     UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
  322.     test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
  323.     case "`/bin/arch`" in
  324.         sun3)
  325.         echo m68k-sun-sunos${UNAME_RELEASE}
  326.         ;;
  327.         sun4)
  328.         echo sparc-sun-sunos${UNAME_RELEASE}
  329.         ;;
  330.     esac
  331.     exit 0 ;;
  332.     aushp:SunOS:*:*)
  333.     echo sparc-auspex-sunos${UNAME_RELEASE}
  334.     exit 0 ;;
  335.     atari*:OpenBSD:*:*)
  336.     echo m68k-unknown-openbsd${UNAME_RELEASE}
  337.     exit 0 ;;
  338.     # The situation for MiNT is a little confusing.  The machine name
  339.     # can be virtually everything (everything which is not
  340.     # "atarist" or "atariste" at least should have a processor
  341.     # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
  342.     # to the lowercase version "mint" (or "freemint").  Finally
  343.     # the system name "TOS" denotes a system which is actually not
  344.     # MiNT.  But MiNT is downward compatible to TOS, so this should
  345.     # be no problem.
  346.     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
  347.         echo m68k-atari-mint${UNAME_RELEASE}
  348.     exit 0 ;;
  349.     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
  350.     echo m68k-atari-mint${UNAME_RELEASE}
  351.         exit 0 ;;
  352.     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
  353.         echo m68k-atari-mint${UNAME_RELEASE}
  354.     exit 0 ;;
  355.     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
  356.         echo m68k-milan-mint${UNAME_RELEASE}
  357.         exit 0 ;;
  358.     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
  359.         echo m68k-hades-mint${UNAME_RELEASE}
  360.         exit 0 ;;
  361.     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
  362.         echo m68k-unknown-mint${UNAME_RELEASE}
  363.         exit 0 ;;
  364.     sun3*:OpenBSD:*:*)
  365.     echo m68k-unknown-openbsd${UNAME_RELEASE}
  366.     exit 0 ;;
  367.     mac68k:OpenBSD:*:*)
  368.     echo m68k-unknown-openbsd${UNAME_RELEASE}
  369.     exit 0 ;;
  370.     mvme68k:OpenBSD:*:*)
  371.     echo m68k-unknown-openbsd${UNAME_RELEASE}
  372.     exit 0 ;;
  373.     mvme88k:OpenBSD:*:*)
  374.     echo m88k-unknown-openbsd${UNAME_RELEASE}
  375.     exit 0 ;;
  376.     powerpc:machten:*:*)
  377.     echo powerpc-apple-machten${UNAME_RELEASE}
  378.     exit 0 ;;
  379.     RISC*:Mach:*:*)
  380.     echo mips-dec-mach_bsd4.3
  381.     exit 0 ;;
  382.     RISC*:ULTRIX:*:*)
  383.     echo mips-dec-ultrix${UNAME_RELEASE}
  384.     exit 0 ;;
  385.     VAX*:ULTRIX*:*:*)
  386.     echo vax-dec-ultrix${UNAME_RELEASE}
  387.     exit 0 ;;
  388.     2020:CLIX:*:* | 2430:CLIX:*:*)
  389.     echo clipper-intergraph-clix${UNAME_RELEASE}
  390.     exit 0 ;;
  391.     mips:*:*:UMIPS | mips:*:*:RISCos)
  392.     sed 's/^    //' << EOF >$dummy.c
  393. #ifdef __cplusplus
  394. #include <stdio.h>  /* for printf() prototype */
  395.     int main (int argc, char *argv[]) {
  396. #else
  397.     int main (argc, argv) int argc; char *argv[]; {
  398. #endif
  399.     #if defined (host_mips) && defined (MIPSEB)
  400.     #if defined (SYSTYPE_SYSV)
  401.       printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
  402.     #endif
  403.     #if defined (SYSTYPE_SVR4)
  404.       printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
  405.     #endif
  406.     #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
  407.       printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
  408.     #endif
  409.     #endif
  410.       exit (-1);
  411.     }
  412. EOF
  413.     $CC_FOR_BUILD $dummy.c -o $dummy \
  414.       && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
  415.       && rm $dummy.c $dummy && exit 0
  416.     rm -f $dummy.c $dummy
  417.     echo mips-mips-riscos${UNAME_RELEASE}
  418.     exit 0 ;;
  419.     Night_Hawk:Power_UNIX:*:*)
  420.     echo powerpc-harris-powerunix
  421.     exit 0 ;;
  422.     m88k:CX/UX:7*:*)
  423.     echo m88k-harris-cxux7
  424.     exit 0 ;;
  425.     m88k:*:4*:R4*)
  426.     echo m88k-motorola-sysv4
  427.     exit 0 ;;
  428.     m88k:*:3*:R3*)
  429.     echo m88k-motorola-sysv3
  430.     exit 0 ;;
  431.     AViiON:dgux:*:*)
  432.         # DG/UX returns AViiON for all architectures
  433.         UNAME_PROCESSOR=`/usr/bin/uname -p`
  434.     if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
  435.     then
  436.         if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
  437.            [ ${TARGET_BINARY_INTERFACE}x = x ]
  438.         then
  439.         echo m88k-dg-dgux${UNAME_RELEASE}
  440.         else
  441.         echo m88k-dg-dguxbcs${UNAME_RELEASE}
  442.         fi
  443.     else
  444.         echo i586-dg-dgux${UNAME_RELEASE}
  445.     fi
  446.      exit 0 ;;
  447.     M88*:DolphinOS:*:*)    # DolphinOS (SVR3)
  448.     echo m88k-dolphin-sysv3
  449.     exit 0 ;;
  450.     M88*:*:R3*:*)
  451.     # Delta 88k system running SVR3
  452.     echo m88k-motorola-sysv3
  453.     exit 0 ;;
  454.     XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
  455.     echo m88k-tektronix-sysv3
  456.     exit 0 ;;
  457.     Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
  458.     echo m68k-tektronix-bsd
  459.     exit 0 ;;
  460.     *:IRIX*:*:*)
  461.     echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
  462.     exit 0 ;;
  463.     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
  464.     echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
  465.     exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
  466.     i?86:AIX:*:*)
  467.     echo i386-ibm-aix
  468.     exit 0 ;;
  469.     *:AIX:2:3)
  470.     if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
  471.         sed 's/^        //' << EOF >$dummy.c
  472.         #include <sys/systemcfg.h>
  473.  
  474.         main()
  475.             {
  476.             if (!__power_pc())
  477.                 exit(1);
  478.             puts("powerpc-ibm-aix3.2.5");
  479.             exit(0);
  480.             }
  481. EOF
  482.         $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
  483.         rm -f $dummy.c $dummy
  484.         echo rs6000-ibm-aix3.2.5
  485.     elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
  486.         echo rs6000-ibm-aix3.2.4
  487.     else
  488.         echo rs6000-ibm-aix3.2
  489.     fi
  490.     exit 0 ;;
  491.     *:AIX:*:4)
  492.     IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
  493.     if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then
  494.         IBM_ARCH=rs6000
  495.     else
  496.         IBM_ARCH=powerpc
  497.     fi
  498.     if [ -x /usr/bin/oslevel ] ; then
  499.         IBM_REV=`/usr/bin/oslevel`
  500.     else
  501.         IBM_REV=4.${UNAME_RELEASE}
  502.     fi
  503.     echo ${IBM_ARCH}-ibm-aix${IBM_REV}
  504.     exit 0 ;;
  505.     *:AIX:*:5)
  506.     case "`lsattr -El proc0 -a type -F value`" in
  507.         PowerPC*) IBM_ARCH=powerpc
  508.               IBM_MANUF=ibm ;;
  509.         Itanium)  IBM_ARCH=ia64
  510.               IBM_MANUF=unknown ;;
  511.         POWER*)   IBM_ARCH=power
  512.               IBM_MANUF=ibm ;;
  513.         *)        IBM_ARCH=powerpc
  514.               IBM_MANUF=ibm ;;
  515.     esac
  516.     echo ${IBM_ARCH}-${IBM_MANUF}-aix${UNAME_VERSION}.${UNAME_RELEASE}
  517.     exit 0 ;;
  518.     *:AIX:*:*)
  519.     echo rs6000-ibm-aix
  520.     exit 0 ;;
  521.     ibmrt:4.4BSD:*|romp-ibm:BSD:*)
  522.     echo romp-ibm-bsd4.4
  523.     exit 0 ;;
  524.     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
  525.     echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
  526.     exit 0 ;;                           # report: romp-ibm BSD 4.3
  527.     *:BOSX:*:*)
  528.     echo rs6000-bull-bosx
  529.     exit 0 ;;
  530.     DPX/2?00:B.O.S.:*:*)
  531.     echo m68k-bull-sysv3
  532.     exit 0 ;;
  533.     9000/[34]??:4.3bsd:1.*:*)
  534.     echo m68k-hp-bsd
  535.     exit 0 ;;
  536.     hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
  537.     echo m68k-hp-bsd4.4
  538.     exit 0 ;;
  539.     9000/[34678]??:HP-UX:*:*)
  540.     HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
  541.     case "${UNAME_MACHINE}" in
  542.         9000/31? )            HP_ARCH=m68000 ;;
  543.         9000/[34]?? )         HP_ARCH=m68k ;;
  544.         9000/[678][0-9][0-9])
  545.               case "${HPUX_REV}" in
  546.                 11.[0-9][0-9])
  547.                   if [ -x /usr/bin/getconf ]; then
  548.                     sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
  549.                     sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
  550.                     case "${sc_cpu_version}" in
  551.                       523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
  552.                       528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
  553.                       532)                      # CPU_PA_RISC2_0
  554.                         case "${sc_kernel_bits}" in
  555.                           32) HP_ARCH="hppa2.0n" ;;
  556.                           64) HP_ARCH="hppa2.0w" ;;
  557.                         esac ;;
  558.                     esac
  559.                   fi ;;
  560.               esac
  561.               if [ "${HP_ARCH}" = "" ]; then
  562.               sed 's/^              //' << EOF >$dummy.c
  563.  
  564.               #define _HPUX_SOURCE
  565.               #include <stdlib.h>
  566.               #include <unistd.h>
  567.  
  568.               int main ()
  569.               {
  570.               #if defined(_SC_KERNEL_BITS)
  571.                   long bits = sysconf(_SC_KERNEL_BITS);
  572.               #endif
  573.                   long cpu  = sysconf (_SC_CPU_VERSION);
  574.  
  575.                   switch (cpu)
  576.                   {
  577.                   case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
  578.                   case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
  579.                   case CPU_PA_RISC2_0:
  580.               #if defined(_SC_KERNEL_BITS)
  581.                       switch (bits)
  582.                       {
  583.                       case 64: puts ("hppa2.0w"); break;
  584.                       case 32: puts ("hppa2.0n"); break;
  585.                       default: puts ("hppa2.0"); break;
  586.                       } break;
  587.               #else  /* !defined(_SC_KERNEL_BITS) */
  588.                       puts ("hppa2.0"); break;
  589.               #endif
  590.                   default: puts ("hppa1.0"); break;
  591.                   }
  592.                   exit (0);
  593.               }
  594. EOF
  595.     (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
  596.     if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
  597.     rm -f $dummy.c $dummy
  598.     fi ;;
  599.     esac
  600.     echo ${HP_ARCH}-hp-hpux${HPUX_REV}
  601.     exit 0 ;;
  602.     ia64:HP-UX:*:*)
  603.     HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
  604.     echo ia64-hp-hpux${HPUX_REV}
  605.     exit 0 ;;
  606.     3050*:HI-UX:*:*)
  607.     sed 's/^    //' << EOF >$dummy.c
  608.     #include <unistd.h>
  609.     int
  610.     main ()
  611.     {
  612.       long cpu = sysconf (_SC_CPU_VERSION);
  613.       /* The order matters, because CPU_IS_HP_MC68K erroneously returns
  614.          true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
  615.          results, however.  */
  616.       if (CPU_IS_PA_RISC (cpu))
  617.         {
  618.           switch (cpu)
  619.         {
  620.           case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
  621.           case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
  622.           case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
  623.           default: puts ("hppa-hitachi-hiuxwe2"); break;
  624.         }
  625.         }
  626.       else if (CPU_IS_HP_MC68K (cpu))
  627.         puts ("m68k-hitachi-hiuxwe2");
  628.       else puts ("unknown-hitachi-hiuxwe2");
  629.       exit (0);
  630.     }
  631. EOF
  632.     $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
  633.     rm -f $dummy.c $dummy
  634.     echo unknown-hitachi-hiuxwe2
  635.     exit 0 ;;
  636.     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
  637.     echo hppa1.1-hp-bsd
  638.     exit 0 ;;
  639.     9000/8??:4.3bsd:*:*)
  640.     echo hppa1.0-hp-bsd
  641.     exit 0 ;;
  642.     *9??*:MPE/iX:*:*)
  643.     echo hppa1.0-hp-mpeix
  644.     exit 0 ;;
  645.     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
  646.     echo hppa1.1-hp-osf
  647.     exit 0 ;;
  648.     hp8??:OSF1:*:*)
  649.     echo hppa1.0-hp-osf
  650.     exit 0 ;;
  651.     i?86:OSF1:*:*)
  652.     if [ -x /usr/sbin/sysversion ] ; then
  653.         echo ${UNAME_MACHINE}-unknown-osf1mk
  654.     else
  655.         echo ${UNAME_MACHINE}-unknown-osf1
  656.     fi
  657.     exit 0 ;;
  658.     parisc*:Lites*:*:*)
  659.     echo hppa1.1-hp-lites
  660.     exit 0 ;;
  661.     hppa*:OpenBSD:*:*)
  662.     echo hppa-unknown-openbsd
  663.     exit 0 ;;
  664.     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
  665.     echo c1-convex-bsd
  666.         exit 0 ;;
  667.     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
  668.     if getsysinfo -f scalar_acc
  669.     then echo c32-convex-bsd
  670.     else echo c2-convex-bsd
  671.     fi
  672.         exit 0 ;;
  673.     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
  674.     echo c34-convex-bsd
  675.         exit 0 ;;
  676.     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
  677.     echo c38-convex-bsd
  678.         exit 0 ;;
  679.     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
  680.     echo c4-convex-bsd
  681.         exit 0 ;;
  682.     CRAY*X-MP:*:*:*)
  683.     echo xmp-cray-unicos
  684.         exit 0 ;;
  685.     CRAY*Y-MP:*:*:*)
  686.     echo ymp-cray-unicos${UNAME_RELEASE}
  687.     exit 0 ;;
  688.     CRAY*[A-Z]90:*:*:*)
  689.     echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
  690.     | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
  691.           -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
  692.     exit 0 ;;
  693.     CRAY*TS:*:*:*)
  694.     echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
  695.     exit 0 ;;
  696.     CRAY*T3D:*:*:*)
  697.     echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
  698.     exit 0 ;;
  699.     CRAY*T3E:*:*:*)
  700.     echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
  701.     exit 0 ;;
  702.     CRAY*SV1:*:*:*)
  703.     echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
  704.     exit 0 ;;
  705.     CRAY-2:*:*:*)
  706.     echo cray2-cray-unicos
  707.         exit 0 ;;
  708.     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
  709.     FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
  710.         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
  711.         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
  712.         echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
  713.         exit 0 ;;
  714.     hp300:OpenBSD:*:*)
  715.     echo m68k-unknown-openbsd${UNAME_RELEASE}
  716.     exit 0 ;;
  717.     i?86:BSD/386:*:* | i?86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
  718.     echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
  719.     exit 0 ;;
  720.     sparc*:BSD/OS:*:*)
  721.     echo sparc-unknown-bsdi${UNAME_RELEASE}
  722.     exit 0 ;;
  723.     *:BSD/OS:*:*)
  724.     echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
  725.     exit 0 ;;
  726.     *:FreeBSD:*:*)
  727.     echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
  728.     exit 0 ;;
  729.     *:OpenBSD:*:*)
  730.     echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
  731.     exit 0 ;;
  732.     i*:CYGWIN*:*)
  733.     echo ${UNAME_MACHINE}-pc-cygwin
  734.     exit 0 ;;
  735.     i*:MINGW*:*)
  736.     echo ${UNAME_MACHINE}-pc-mingw32
  737.     exit 0 ;;
  738.     i*:PW*:*)
  739.     echo ${UNAME_MACHINE}-pc-pw32
  740.     exit 0 ;;
  741.     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
  742.     # How do we know it's Interix rather than the generic POSIX subsystem?
  743.     # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
  744.     # UNAME_MACHINE based on the output of uname instead of i386?
  745.     echo i386-pc-interix
  746.     exit 0 ;;
  747.     i*:UWIN*:*)
  748.     echo ${UNAME_MACHINE}-pc-uwin
  749.     exit 0 ;;
  750.     p*:CYGWIN*:*)
  751.     echo powerpcle-unknown-cygwin
  752.     exit 0 ;;
  753.     prep*:SunOS:5.*:*)
  754.     echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
  755.     exit 0 ;;
  756.     *:GNU:*:*)
  757.     echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
  758.     exit 0 ;;
  759.     i*86:Minix:*:*)
  760.     echo ${UNAME_MACHINE}-pc-minix
  761.     exit 0 ;;
  762.     *:Linux:*:*)
  763.  
  764.     # The BFD linker knows what the default object file format is, so
  765.     # first see if it will tell us. cd to the root directory to prevent
  766.     # problems with other programs or directories called `ld' in the path.
  767.     ld_supported_emulations=`cd /; ld --help 2>&1 \
  768.              | sed -ne '/supported emulations:/!d
  769.                     s/[     ][     ]*/ /g
  770.                     s/.*supported emulations: *//
  771.                     s/ .*//
  772.                     p'`
  773.         case "$ld_supported_emulations" in
  774.       *ia64)
  775.         echo "${UNAME_MACHINE}-unknown-linux"
  776.         exit 0
  777.         ;;
  778.       i?86linux)
  779.         echo "${UNAME_MACHINE}-pc-linux-gnuaout"
  780.         exit 0
  781.         ;;
  782.       elf_i?86)
  783.         TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
  784.         ;;
  785.       i?86coff)
  786.         echo "${UNAME_MACHINE}-pc-linux-gnucoff"
  787.         exit 0
  788.         ;;
  789.       sparclinux)
  790.         echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
  791.         exit 0
  792.         ;;
  793.       elf32_sparc)
  794.         echo "${UNAME_MACHINE}-unknown-linux-gnu"
  795.         exit 0
  796.         ;;
  797.       armlinux)
  798.         echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
  799.         exit 0
  800.         ;;
  801.       elf32arm*)
  802.         echo "${UNAME_MACHINE}-unknown-linux-gnuoldld"
  803.         exit 0
  804.         ;;
  805.       armelf_linux*)
  806.         echo "${UNAME_MACHINE}-unknown-linux-gnu"
  807.         exit 0
  808.         ;;
  809.       m68klinux)
  810.         echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
  811.         exit 0
  812.         ;;
  813.       elf32ppc | elf32ppclinux)
  814.         # Determine Lib Version
  815.         cat >$dummy.c <<EOF
  816. #include <features.h>
  817. #if defined(__GLIBC__)
  818. extern char __libc_version[];
  819. extern char __libc_release[];
  820. #endif
  821. main(argc, argv)
  822.      int argc;
  823.      char *argv[];
  824. {
  825. #if defined(__GLIBC__)
  826.   printf("%s %s\n", __libc_version, __libc_release);
  827. #else
  828.   printf("unkown\n");
  829. #endif
  830.   return 0;
  831. }
  832. EOF
  833.         LIBC=""
  834.         $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
  835.         if test "$?" = 0 ; then
  836.             ./$dummy | grep 1\.99 > /dev/null
  837.             if test "$?" = 0 ; then
  838.                 LIBC="libc1"
  839.             fi
  840.         fi
  841.         rm -f $dummy.c $dummy
  842.         echo powerpc-unknown-linux-gnu${LIBC}
  843.         exit 0
  844.         ;;
  845.       shelf_linux)
  846.         echo "${UNAME_MACHINE}-unknown-linux-gnu"
  847.         exit 0
  848.         ;;
  849.     esac
  850.  
  851.     if test "${UNAME_MACHINE}" = "alpha" ; then
  852.         cat <<EOF >$dummy.s
  853.             .data
  854.         \$Lformat:
  855.             .byte 37,100,45,37,120,10,0    # "%d-%x\n"
  856.  
  857.             .text
  858.             .globl main
  859.             .align 4
  860.             .ent main
  861.         main:
  862.             .frame \$30,16,\$26,0
  863.             ldgp \$29,0(\$27)
  864.             .prologue 1
  865.             .long 0x47e03d80 # implver \$0
  866.             lda \$2,-1
  867.             .long 0x47e20c21 # amask \$2,\$1
  868.             lda \$16,\$Lformat
  869.             mov \$0,\$17
  870.             not \$1,\$18
  871.             jsr \$26,printf
  872.             ldgp \$29,0(\$26)
  873.             mov 0,\$16
  874.             jsr \$26,exit
  875.             .end main
  876. EOF
  877.         LIBC=""
  878.         $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
  879.         if test "$?" = 0 ; then
  880.             case `./$dummy` in
  881.             0-0)
  882.                 UNAME_MACHINE="alpha"
  883.                 ;;
  884.             1-0)
  885.                 UNAME_MACHINE="alphaev5"
  886.                 ;;
  887.             1-1)
  888.                 UNAME_MACHINE="alphaev56"
  889.                 ;;
  890.             1-101)
  891.                 UNAME_MACHINE="alphapca56"
  892.                 ;;
  893.             2-303)
  894.                 UNAME_MACHINE="alphaev6"
  895.                 ;;
  896.             2-307)
  897.                 UNAME_MACHINE="alphaev67"
  898.                 ;;
  899.             esac
  900.  
  901.             objdump --private-headers $dummy | \
  902.               grep ld.so.1 > /dev/null
  903.             if test "$?" = 0 ; then
  904.                 LIBC="libc1"
  905.             fi
  906.         fi
  907.         rm -f $dummy.s $dummy
  908.         echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
  909.     elif test "${UNAME_MACHINE}" = "mips" ; then
  910.       cat >$dummy.c <<EOF
  911. #ifdef __cplusplus
  912. #include <stdio.h>  /* for printf() prototype */
  913.     int main (int argc, char *argv[]) {
  914. #else
  915.     int main (argc, argv) int argc; char *argv[]; {
  916. #endif
  917. #ifdef __MIPSEB__
  918.   printf ("%s-unknown-linux-gnu\n", argv[1]);
  919. #endif
  920. #ifdef __MIPSEL__
  921.   printf ("%sel-unknown-linux-gnu\n", argv[1]);
  922. #endif
  923.   return 0;
  924. }
  925. EOF
  926.       $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
  927.       rm -f $dummy.c $dummy
  928.     elif test "${UNAME_MACHINE}" = "s390"; then
  929.       echo s390-ibm-linux && exit 0
  930.     elif test "${UNAME_MACHINE}" = "x86_64"; then
  931.       echo x86_64-unknown-linux-gnu && exit 0
  932.     elif test "${UNAME_MACHINE}" = "parisc64" -o "${UNAME_MACHINE}" = "hppa64"; then
  933.       echo hppa64-unknown-linux-gnu && exit 0
  934.     elif test "${UNAME_MACHINE}" = "parisc" -o "${UNAME_MACHINE}" = "hppa"; then
  935.       # Look for CPU level
  936.       case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
  937.         PA7*)
  938.         echo hppa1.1-unknown-linux-gnu
  939.         ;;
  940.         PA8*)
  941.         echo hppa2.0-unknown-linux-gnu
  942.         ;;
  943.         *)
  944.         echo hppa-unknown-linux-gnu
  945.         ;;
  946.       esac
  947.       exit 0
  948.     else
  949.       # Either a pre-BFD a.out linker (linux-gnuoldld)
  950.       # or one that does not give us useful --help.
  951.       # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
  952.       # If ld does not provide *any* "supported emulations:"
  953.       # that means it is gnuoldld.
  954.       test -z "$ld_supported_emulations" \
  955.         && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
  956.  
  957.       case "${UNAME_MACHINE}" in
  958.       i?86)
  959.         VENDOR=pc;
  960.         ;;
  961.       *)
  962.         VENDOR=unknown;
  963.         ;;
  964.       esac
  965.       # Determine whether the default compiler is a.out or elf
  966.       cat >$dummy.c <<EOF
  967. #include <features.h>
  968. #ifdef __cplusplus
  969. #include <stdio.h>  /* for printf() prototype */
  970.     int main (int argc, char *argv[]) {
  971. #else
  972.     int main (argc, argv) int argc; char *argv[]; {
  973. #endif
  974. #ifdef __ELF__
  975. # ifdef __GLIBC__
  976. #  if __GLIBC__ >= 2
  977.     printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
  978. #  else
  979.     printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
  980. #  endif
  981. # else
  982.    printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
  983. # endif
  984. #else
  985.   printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
  986. #endif
  987.   return 0;
  988. }
  989. EOF
  990.       $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
  991.       rm -f $dummy.c $dummy
  992.       test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
  993.     fi ;;
  994. # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.  earlier versions
  995. # are messed up and put the nodename in both sysname and nodename.
  996.     i?86:DYNIX/ptx:4*:*)
  997.     echo i386-sequent-sysv4
  998.     exit 0 ;;
  999.     i?86:UNIX_SV:4.2MP:2.*)
  1000.         # Unixware is an offshoot of SVR4, but it has its own version
  1001.         # number series starting with 2...
  1002.         # I am not positive that other SVR4 systems won't match this,
  1003.     # I just have to hope.  -- rms.
  1004.         # Use sysv4.2uw... so that sysv4* matches it.
  1005.     echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
  1006.     exit 0 ;;
  1007.     i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
  1008.     UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
  1009.     if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
  1010.         echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
  1011.     else
  1012.         echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
  1013.     fi
  1014.     exit 0 ;;
  1015.     i?86:*:5:7*)
  1016.         # Fixed at (any) Pentium or better
  1017.         UNAME_MACHINE=i586
  1018.         if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then
  1019.         echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION}
  1020.     else
  1021.         echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
  1022.     fi
  1023.     exit 0 ;;
  1024.     i?86:*:3.2:*)
  1025.     if test -f /usr/options/cb.name; then
  1026.         UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
  1027.         echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
  1028.     elif /bin/uname -X 2>/dev/null >/dev/null ; then
  1029.         UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
  1030.         (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
  1031.         (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
  1032.             && UNAME_MACHINE=i586
  1033.         (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
  1034.             && UNAME_MACHINE=i686
  1035.         (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
  1036.             && UNAME_MACHINE=i686
  1037.         echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
  1038.     else
  1039.         echo ${UNAME_MACHINE}-pc-sysv32
  1040.     fi
  1041.     exit 0 ;;
  1042.     i?86:*DOS:*:*)
  1043.     echo ${UNAME_MACHINE}-pc-msdosdjgpp
  1044.     exit 0 ;;
  1045.     pc:*:*:*)
  1046.     # Left here for compatibility:
  1047.         # uname -m prints for DJGPP always 'pc', but it prints nothing about
  1048.         # the processor, so we play safe by assuming i386.
  1049.     echo i386-pc-msdosdjgpp
  1050.         exit 0 ;;
  1051.     Intel:Mach:3*:*)
  1052.     echo i386-pc-mach3
  1053.     exit 0 ;;
  1054.     paragon:*:*:*)
  1055.     echo i860-intel-osf1
  1056.     exit 0 ;;
  1057.     i860:*:4.*:*) # i860-SVR4
  1058.     if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
  1059.       echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
  1060.     else # Add other i860-SVR4 vendors below as they are discovered.
  1061.       echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
  1062.     fi
  1063.     exit 0 ;;
  1064.     mini*:CTIX:SYS*5:*)
  1065.     # "miniframe"
  1066.     echo m68010-convergent-sysv
  1067.     exit 0 ;;
  1068.     M68*:*:R3V[567]*:*)
  1069.     test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
  1070.     3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
  1071.     OS_REL=''
  1072.     test -r /etc/.relid \
  1073.     && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
  1074.     /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
  1075.       && echo i486-ncr-sysv4.3${OS_REL} && exit 0
  1076.     /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
  1077.       && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
  1078.     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
  1079.         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
  1080.           && echo i486-ncr-sysv4 && exit 0 ;;
  1081.     m68*:LynxOS:2.*:*)
  1082.     echo m68k-unknown-lynxos${UNAME_RELEASE}
  1083.     exit 0 ;;
  1084.     mc68030:UNIX_System_V:4.*:*)
  1085.     echo m68k-atari-sysv4
  1086.     exit 0 ;;
  1087.     i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*)
  1088.     echo i386-unknown-lynxos${UNAME_RELEASE}
  1089.     exit 0 ;;
  1090.     TSUNAMI:LynxOS:2.*:*)
  1091.     echo sparc-unknown-lynxos${UNAME_RELEASE}
  1092.     exit 0 ;;
  1093.     rs6000:LynxOS:2.*:*)
  1094.     echo rs6000-unknown-lynxos${UNAME_RELEASE}
  1095.     exit 0 ;;
  1096.     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:*)
  1097.     echo powerpc-unknown-lynxos${UNAME_RELEASE}
  1098.     exit 0 ;;
  1099.     SM[BE]S:UNIX_SV:*:*)
  1100.     echo mips-dde-sysv${UNAME_RELEASE}
  1101.     exit 0 ;;
  1102.     RM*:ReliantUNIX-*:*:*)
  1103.     echo mips-sni-sysv4
  1104.     exit 0 ;;
  1105.     RM*:SINIX-*:*:*)
  1106.     echo mips-sni-sysv4
  1107.     exit 0 ;;
  1108.     *:SINIX-*:*:*)
  1109.     if uname -p 2>/dev/null >/dev/null ; then
  1110.         UNAME_MACHINE=`(uname -p) 2>/dev/null`
  1111.         echo ${UNAME_MACHINE}-sni-sysv4
  1112.     else
  1113.         echo ns32k-sni-sysv
  1114.     fi
  1115.     exit 0 ;;
  1116.     PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
  1117.                            # says <Richard.M.Bartel@ccMail.Census.GOV>
  1118.         echo i586-unisys-sysv4
  1119.         exit 0 ;;
  1120.     *:UNIX_System_V:4*:FTX*)
  1121.     # From Gerald Hewes <hewes@openmarket.com>.
  1122.     # How about differentiating between stratus architectures? -djm
  1123.     echo hppa1.1-stratus-sysv4
  1124.     exit 0 ;;
  1125.     *:*:*:FTX*)
  1126.     # From seanf@swdc.stratus.com.
  1127.     echo i860-stratus-sysv4
  1128.     exit 0 ;;
  1129.     mc68*:A/UX:*:*)
  1130.     echo m68k-apple-aux${UNAME_RELEASE}
  1131.     exit 0 ;;
  1132.     news*:NEWS-OS:6*:*)
  1133.     echo mips-sony-newsos6
  1134.     exit 0 ;;
  1135.     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
  1136.     if [ -d /usr/nec ]; then
  1137.             echo mips-nec-sysv${UNAME_RELEASE}
  1138.     else
  1139.             echo mips-unknown-sysv${UNAME_RELEASE}
  1140.     fi
  1141.         exit 0 ;;
  1142.     BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
  1143.     echo powerpc-be-beos
  1144.     exit 0 ;;
  1145.     BeMac:BeOS:*:*)    # BeOS running on Mac or Mac clone, PPC only.
  1146.     echo powerpc-apple-beos
  1147.     exit 0 ;;
  1148.     BePC:BeOS:*:*)    # BeOS running on Intel PC compatible.
  1149.     echo i586-pc-beos
  1150.     exit 0 ;;
  1151.     SX-4:SUPER-UX:*:*)
  1152.     echo sx4-nec-superux${UNAME_RELEASE}
  1153.     exit 0 ;;
  1154.     SX-5:SUPER-UX:*:*)
  1155.     echo sx5-nec-superux${UNAME_RELEASE}
  1156.     exit 0 ;;
  1157.     Power*:Rhapsody:*:*)
  1158.     echo powerpc-apple-rhapsody${UNAME_RELEASE}
  1159.     exit 0 ;;
  1160.     *:Rhapsody:*:*)
  1161.     echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
  1162.     exit 0 ;;
  1163.     *:Darwin:*:*)
  1164.     echo `uname -p`-apple-darwin${UNAME_RELEASE}
  1165.     exit 0 ;;
  1166.     *:procnto*:*:* | *:QNX:[0123456789]*:*)
  1167.     if test "${UNAME_MACHINE}" = "x86pc"; then
  1168.         UNAME_MACHINE=pc
  1169.     fi
  1170.     echo `uname -p`-${UNAME_MACHINE}-nto-qnx
  1171.     exit 0 ;;
  1172.     *:QNX:*:4*)
  1173.     echo i386-pc-qnx
  1174.     exit 0 ;;
  1175.     NSR-[KW]:NONSTOP_KERNEL:*:*)
  1176.     echo nsr-tandem-nsk${UNAME_RELEASE}
  1177.     exit 0 ;;
  1178.     *:NonStop-UX:*:*)
  1179.     echo mips-compaq-nonstopux
  1180.     exit 0 ;;
  1181.     BS2000:POSIX*:*:*)
  1182.     echo bs2000-siemens-sysv
  1183.     exit 0 ;;
  1184.     DS/*:UNIX_System_V:*:*)
  1185.     echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
  1186.     exit 0 ;;
  1187.     *:Plan9:*:*)
  1188.     # "uname -m" is not consistent, so use $cputype instead. 386
  1189.     # is converted to i386 for consistency with other x86
  1190.     # operating systems.
  1191.     if test "$cputype" = "386"; then
  1192.         UNAME_MACHINE=i386
  1193.     else
  1194.         UNAME_MACHINE="$cputype"
  1195.     fi
  1196.     echo ${UNAME_MACHINE}-unknown-plan9
  1197.     exit 0 ;;
  1198.     i?86:OS/2:*:*)
  1199.     # If we were able to find `uname', then EMX Unix compatibility
  1200.     # is probably installed.
  1201.     echo ${UNAME_MACHINE}-pc-os2-emx
  1202.     exit 0 ;;
  1203.     *:TOPS-10:*:*)
  1204.     echo pdp10-unknown-tops10
  1205.     exit 0 ;;
  1206.     *:TENEX:*:*)
  1207.     echo pdp10-unknown-tenex
  1208.     exit 0 ;;
  1209.     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
  1210.     echo pdp10-dec-tops20
  1211.     exit 0 ;;
  1212.     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
  1213.     echo pdp10-xkl-tops20
  1214.     exit 0 ;;
  1215.     *:TOPS-20:*:*)
  1216.     echo pdp10-unknown-tops20
  1217.     exit 0 ;;
  1218.     *:ITS:*:*)
  1219.     echo pdp10-unknown-its
  1220.     exit 0 ;;
  1221. esac
  1222.  
  1223. #echo '(No uname command or uname output not recognized.)' 1>&2
  1224. #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
  1225.  
  1226. cat >$dummy.c <<EOF
  1227. #ifdef _SEQUENT_
  1228. # include <sys/types.h>
  1229. # include <sys/utsname.h>
  1230. #endif
  1231. main ()
  1232. {
  1233. #if defined (sony)
  1234. #if defined (MIPSEB)
  1235.   /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
  1236.      I don't know....  */
  1237.   printf ("mips-sony-bsd\n"); exit (0);
  1238. #else
  1239. #include <sys/param.h>
  1240.   printf ("m68k-sony-newsos%s\n",
  1241. #ifdef NEWSOS4
  1242.           "4"
  1243. #else
  1244.       ""
  1245. #endif
  1246.          ); exit (0);
  1247. #endif
  1248. #endif
  1249.  
  1250. #if defined (__arm) && defined (__acorn) && defined (__unix)
  1251.   printf ("arm-acorn-riscix"); exit (0);
  1252. #endif
  1253.  
  1254. #if defined (hp300) && !defined (hpux)
  1255.   printf ("m68k-hp-bsd\n"); exit (0);
  1256. #endif
  1257.  
  1258. #if defined (NeXT)
  1259. #if !defined (__ARCHITECTURE__)
  1260. #define __ARCHITECTURE__ "m68k"
  1261. #endif
  1262.   int version;
  1263.   version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
  1264.   if (version < 4)
  1265.     printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
  1266.   else
  1267.     printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
  1268.   exit (0);
  1269. #endif
  1270.  
  1271. #if defined (MULTIMAX) || defined (n16)
  1272. #if defined (UMAXV)
  1273.   printf ("ns32k-encore-sysv\n"); exit (0);
  1274. #else
  1275. #if defined (CMU)
  1276.   printf ("ns32k-encore-mach\n"); exit (0);
  1277. #else
  1278.   printf ("ns32k-encore-bsd\n"); exit (0);
  1279. #endif
  1280. #endif
  1281. #endif
  1282.  
  1283. #if defined (__386BSD__)
  1284.   printf ("i386-pc-bsd\n"); exit (0);
  1285. #endif
  1286.  
  1287. #if defined (sequent)
  1288. #if defined (i386)
  1289.   printf ("i386-sequent-dynix\n"); exit (0);
  1290. #endif
  1291. #if defined (ns32000)
  1292.   printf ("ns32k-sequent-dynix\n"); exit (0);
  1293. #endif
  1294. #endif
  1295.  
  1296. #if defined (_SEQUENT_)
  1297.     struct utsname un;
  1298.  
  1299.     uname(&un);
  1300.  
  1301.     if (strncmp(un.version, "V2", 2) == 0) {
  1302.     printf ("i386-sequent-ptx2\n"); exit (0);
  1303.     }
  1304.     if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
  1305.     printf ("i386-sequent-ptx1\n"); exit (0);
  1306.     }
  1307.     printf ("i386-sequent-ptx\n"); exit (0);
  1308.  
  1309. #endif
  1310.  
  1311. #if defined (vax)
  1312. # if !defined (ultrix)
  1313. #  include <sys/param.h>
  1314. #  if defined (BSD)
  1315. #   if BSD == 43
  1316.       printf ("vax-dec-bsd4.3\n"); exit (0);
  1317. #   else
  1318. #    if BSD == 199006
  1319.       printf ("vax-dec-bsd4.3reno\n"); exit (0);
  1320. #    else
  1321.       printf ("vax-dec-bsd\n"); exit (0);
  1322. #    endif
  1323. #   endif
  1324. #  else
  1325.     printf ("vax-dec-bsd\n"); exit (0);
  1326. #  endif
  1327. # else
  1328.     printf ("vax-dec-ultrix\n"); exit (0);
  1329. # endif
  1330. #endif
  1331.  
  1332. #if defined (alliant) && defined (i860)
  1333.   printf ("i860-alliant-bsd\n"); exit (0);
  1334. #endif
  1335.  
  1336.   exit (1);
  1337. }
  1338. EOF
  1339.  
  1340. $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0
  1341. rm -f $dummy.c $dummy
  1342.  
  1343. # Apollos put the system type in the environment.
  1344.  
  1345. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
  1346.  
  1347. # Convex versions that predate uname can use getsysinfo(1)
  1348.  
  1349. if [ -x /usr/convex/getsysinfo ]
  1350. then
  1351.     case `getsysinfo -f cpu_type` in
  1352.     c1*)
  1353.     echo c1-convex-bsd
  1354.     exit 0 ;;
  1355.     c2*)
  1356.     if getsysinfo -f scalar_acc
  1357.     then echo c32-convex-bsd
  1358.     else echo c2-convex-bsd
  1359.     fi
  1360.     exit 0 ;;
  1361.     c34*)
  1362.     echo c34-convex-bsd
  1363.     exit 0 ;;
  1364.     c38*)
  1365.     echo c38-convex-bsd
  1366.     exit 0 ;;
  1367.     c4*)
  1368.     echo c4-convex-bsd
  1369.     exit 0 ;;
  1370.     esac
  1371. fi
  1372.  
  1373. cat >&2 <<EOF
  1374. $0: unable to guess system type
  1375.  
  1376. This script, last modified $timestamp, has failed to recognize
  1377. the operating system you are using. It is advised that you
  1378. download the most up to date version of the config scripts from
  1379.  
  1380.     ftp://ftp.gnu.org/pub/gnu/config/
  1381.  
  1382. If the version you run ($0) is already up to date, please
  1383. send the following data and any information you think might be
  1384. pertinent to <config-patches@gnu.org> in order to provide the needed
  1385. information to handle your system.
  1386.  
  1387. config.guess timestamp = $timestamp
  1388.  
  1389. uname -m = `(uname -m) 2>/dev/null || echo unknown`
  1390. uname -r = `(uname -r) 2>/dev/null || echo unknown`
  1391. uname -s = `(uname -s) 2>/dev/null || echo unknown`
  1392. uname -v = `(uname -v) 2>/dev/null || echo unknown`
  1393.  
  1394. /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
  1395. /bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
  1396.  
  1397. hostinfo               = `(hostinfo) 2>/dev/null`
  1398. /bin/universe          = `(/bin/universe) 2>/dev/null`
  1399. /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
  1400. /bin/arch              = `(/bin/arch) 2>/dev/null`
  1401. /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
  1402. /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
  1403.  
  1404. UNAME_MACHINE = ${UNAME_MACHINE}
  1405. UNAME_RELEASE = ${UNAME_RELEASE}
  1406. UNAME_SYSTEM  = ${UNAME_SYSTEM}
  1407. UNAME_VERSION = ${UNAME_VERSION}
  1408. EOF
  1409.  
  1410. exit 1
  1411.  
  1412. # Local variables:
  1413. # eval: (add-hook 'write-file-hooks 'time-stamp)
  1414. # time-stamp-start: "timestamp='"
  1415. # time-stamp-format: "%:y-%02m-%02d"
  1416. # time-stamp-end: "'"
  1417. # End:
  1418.