Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

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