config.guess revision 72445
155682Smarkm#! /bin/sh 255682Smarkm# Attempt to guess a canonical system name. 372445Sassar# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 472445Sassar# Free Software Foundation, Inc. 572445Sassar 672445Sassarversion='2000-09-05' 772445Sassar 855682Smarkm# This file is free software; you can redistribute it and/or modify it 955682Smarkm# under the terms of the GNU General Public License as published by 1055682Smarkm# the Free Software Foundation; either version 2 of the License, or 1155682Smarkm# (at your option) any later version. 1255682Smarkm# 1355682Smarkm# This program is distributed in the hope that it will be useful, but 1455682Smarkm# WITHOUT ANY WARRANTY; without even the implied warranty of 1555682Smarkm# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1655682Smarkm# General Public License for more details. 1755682Smarkm# 1855682Smarkm# You should have received a copy of the GNU General Public License 1955682Smarkm# along with this program; if not, write to the Free Software 2055682Smarkm# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 2155682Smarkm# 2255682Smarkm# As a special exception to the GNU General Public License, if you 2355682Smarkm# distribute this file as part of a program that contains a 2455682Smarkm# configuration script generated by Autoconf, you may include it under 2555682Smarkm# the same distribution terms that you use for the rest of that program. 2655682Smarkm 2755682Smarkm# Written by Per Bothner <bothner@cygnus.com>. 2872445Sassar# Please send patches to <config-patches@gnu.org>. 2955682Smarkm# 3055682Smarkm# This script attempts to guess a canonical system name similar to 3155682Smarkm# config.sub. If it succeeds, it prints the system name on stdout, and 3255682Smarkm# exits with 0. Otherwise, it exits with 1. 3355682Smarkm# 3455682Smarkm# The plan is that this can be called by configure scripts if you 3555682Smarkm# don't specify an explicit system type (host/target name). 3655682Smarkm# 3755682Smarkm# Only a few systems have been added to this list; please add others 3855682Smarkm# (but try to keep the structure clean). 3955682Smarkm# 4055682Smarkm 4172445Sassarme=`echo "$0" | sed -e 's,.*/,,'` 4272445Sassar 4372445Sassarusage="\ 4472445SassarUsage: $0 [OPTION] 4572445Sassar 4672445SassarOutput the configuration name of this system. 4772445Sassar 4872445SassarOperation modes: 4972445Sassar -h, --help print this help, then exit 5072445Sassar -V, --version print version number, then exit" 5172445Sassar 5272445Sassarhelp=" 5372445SassarTry \`$me --help' for more information." 5472445Sassar 5572445Sassar# Parse command line 5672445Sassarwhile test $# -gt 0 ; do 5772445Sassar case "$1" in 5872445Sassar --version | --vers* | -V ) 5972445Sassar echo "$version" ; exit 0 ;; 6072445Sassar --help | --h* | -h ) 6172445Sassar echo "$usage"; exit 0 ;; 6272445Sassar -- ) # Stop option processing 6372445Sassar shift; break ;; 6472445Sassar - ) # Use stdin as input. 6572445Sassar break ;; 6672445Sassar -* ) 6772445Sassar exec >&2 6872445Sassar echo "$me: invalid option $1" 6972445Sassar echo "$help" 7072445Sassar exit 1 ;; 7172445Sassar * ) 7272445Sassar break ;; 7372445Sassar esac 7472445Sassardone 7572445Sassar 7672445Sassarif test $# != 0; then 7772445Sassar echo "$me: too many arguments$help" >&2 7872445Sassar exit 1 7972445Sassarfi 8072445Sassar 8172445Sassar# Use $HOST_CC if defined. $CC may point to a cross-compiler 8272445Sassarif test x"$CC_FOR_BUILD" = x; then 8372445Sassar if test x"$HOST_CC" != x; then 8472445Sassar CC_FOR_BUILD="$HOST_CC" 8572445Sassar else 8672445Sassar if test x"$CC" != x; then 8772445Sassar CC_FOR_BUILD="$CC" 8872445Sassar else 8972445Sassar CC_FOR_BUILD=cc 9072445Sassar fi 9172445Sassar fi 9272445Sassarfi 9372445Sassar 9472445Sassar 9555682Smarkm# This is needed to find uname on a Pyramid OSx when run in the BSD universe. 9655682Smarkm# (ghazi@noc.rutgers.edu 8/24/94.) 9755682Smarkmif (test -f /.attbin/uname) >/dev/null 2>&1 ; then 9855682Smarkm PATH=$PATH:/.attbin ; export PATH 9955682Smarkmfi 10055682Smarkm 10155682SmarkmUNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown 10255682SmarkmUNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown 10355682SmarkmUNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown 10455682SmarkmUNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown 10555682Smarkm 10655682Smarkmdummy=dummy-$$ 10755682Smarkmtrap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15 10855682Smarkm 10955682Smarkm# Note: order is significant - the case branches are not exclusive. 11055682Smarkm 11155682Smarkmcase "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in 11272445Sassar *:NetBSD:*:*) 11372445Sassar # Netbsd (nbsd) targets should (where applicable) match one or 11472445Sassar # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, 11572445Sassar # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently 11672445Sassar # switched to ELF, *-*-netbsd* would select the old 11772445Sassar # object file format. This provides both forward 11872445Sassar # compatibility and a consistent mechanism for selecting the 11972445Sassar # object file format. 12072445Sassar # Determine the machine/vendor (is the vendor relevant). 12172445Sassar case "${UNAME_MACHINE}" in 12272445Sassar amiga) machine=m68k-unknown ;; 12372445Sassar arm32) machine=arm-unknown ;; 12472445Sassar atari*) machine=m68k-atari ;; 12572445Sassar sun3*) machine=m68k-sun ;; 12672445Sassar mac68k) machine=m68k-apple ;; 12772445Sassar macppc) machine=powerpc-apple ;; 12872445Sassar hp3[0-9][05]) machine=m68k-hp ;; 12972445Sassar ibmrt|romp-ibm) machine=romp-ibm ;; 13072445Sassar *) machine=${UNAME_MACHINE}-unknown ;; 13172445Sassar esac 13272445Sassar # The Operating System including object format. 13372445Sassar if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ 13472445Sassar | grep __ELF__ >/dev/null 13572445Sassar then 13672445Sassar # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). 13772445Sassar # Return netbsd for either. FIX? 13872445Sassar os=netbsd 13972445Sassar else 14072445Sassar os=netbsdelf 14172445Sassar fi 14272445Sassar # The OS release 14372445Sassar release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` 14472445Sassar # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: 14572445Sassar # contains redundant information, the shorter form: 14672445Sassar # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. 14772445Sassar echo "${machine}-${os}${release}" 14872445Sassar exit 0 ;; 14955682Smarkm alpha:OSF1:*:*) 15055682Smarkm if test $UNAME_RELEASE = "V4.0"; then 15155682Smarkm UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` 15255682Smarkm fi 15355682Smarkm # A Vn.n version is a released version. 15455682Smarkm # A Tn.n version is a released field test version. 15555682Smarkm # A Xn.n version is an unreleased experimental baselevel. 15655682Smarkm # 1.2 uses "1.2" for uname -r. 15755682Smarkm cat <<EOF >$dummy.s 15872445Sassar .data 15972445Sassar\$Lformat: 16072445Sassar .byte 37,100,45,37,120,10,0 # "%d-%x\n" 16172445Sassar 16272445Sassar .text 16355682Smarkm .globl main 16472445Sassar .align 4 16555682Smarkm .ent main 16655682Smarkmmain: 16772445Sassar .frame \$30,16,\$26,0 16872445Sassar ldgp \$29,0(\$27) 16972445Sassar .prologue 1 17072445Sassar .long 0x47e03d80 # implver \$0 17172445Sassar lda \$2,-1 17272445Sassar .long 0x47e20c21 # amask \$2,\$1 17372445Sassar lda \$16,\$Lformat 17472445Sassar mov \$0,\$17 17572445Sassar not \$1,\$18 17672445Sassar jsr \$26,printf 17772445Sassar ldgp \$29,0(\$26) 17872445Sassar mov 0,\$16 17972445Sassar jsr \$26,exit 18055682Smarkm .end main 18155682SmarkmEOF 18272445Sassar $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null 18355682Smarkm if test "$?" = 0 ; then 18472445Sassar case `./$dummy` in 18572445Sassar 0-0) 18655682Smarkm UNAME_MACHINE="alpha" 18755682Smarkm ;; 18872445Sassar 1-0) 18955682Smarkm UNAME_MACHINE="alphaev5" 19055682Smarkm ;; 19172445Sassar 1-1) 19255682Smarkm UNAME_MACHINE="alphaev56" 19355682Smarkm ;; 19472445Sassar 1-101) 19555682Smarkm UNAME_MACHINE="alphapca56" 19655682Smarkm ;; 19772445Sassar 2-303) 19855682Smarkm UNAME_MACHINE="alphaev6" 19955682Smarkm ;; 20072445Sassar 2-307) 20172445Sassar UNAME_MACHINE="alphaev67" 20272445Sassar ;; 20355682Smarkm esac 20455682Smarkm fi 20555682Smarkm rm -f $dummy.s $dummy 20672445Sassar echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 20755682Smarkm exit 0 ;; 20872445Sassar Alpha\ *:Windows_NT*:*) 20972445Sassar # How do we know it's Interix rather than the generic POSIX subsystem? 21072445Sassar # Should we change UNAME_MACHINE based on the output of uname instead 21172445Sassar # of the specific Alpha model? 21272445Sassar echo alpha-pc-interix 21372445Sassar exit 0 ;; 21455682Smarkm 21064:Windows_NT:50:3) 21555682Smarkm echo alpha-dec-winnt3.5 21655682Smarkm exit 0 ;; 21755682Smarkm Amiga*:UNIX_System_V:4.0:*) 21872445Sassar echo m68k-unknown-sysv4 21955682Smarkm exit 0;; 22055682Smarkm amiga:OpenBSD:*:*) 22155682Smarkm echo m68k-unknown-openbsd${UNAME_RELEASE} 22255682Smarkm exit 0 ;; 22355682Smarkm *:[Aa]miga[Oo][Ss]:*:*) 22455682Smarkm echo ${UNAME_MACHINE}-unknown-amigaos 22555682Smarkm exit 0 ;; 22655682Smarkm arc64:OpenBSD:*:*) 22755682Smarkm echo mips64el-unknown-openbsd${UNAME_RELEASE} 22855682Smarkm exit 0 ;; 22955682Smarkm arc:OpenBSD:*:*) 23055682Smarkm echo mipsel-unknown-openbsd${UNAME_RELEASE} 23155682Smarkm exit 0 ;; 23255682Smarkm hkmips:OpenBSD:*:*) 23355682Smarkm echo mips-unknown-openbsd${UNAME_RELEASE} 23455682Smarkm exit 0 ;; 23555682Smarkm pmax:OpenBSD:*:*) 23655682Smarkm echo mipsel-unknown-openbsd${UNAME_RELEASE} 23755682Smarkm exit 0 ;; 23855682Smarkm sgi:OpenBSD:*:*) 23955682Smarkm echo mips-unknown-openbsd${UNAME_RELEASE} 24055682Smarkm exit 0 ;; 24155682Smarkm wgrisc:OpenBSD:*:*) 24255682Smarkm echo mipsel-unknown-openbsd${UNAME_RELEASE} 24355682Smarkm exit 0 ;; 24472445Sassar *:OS/390:*:*) 24572445Sassar echo i370-ibm-openedition 24672445Sassar exit 0 ;; 24755682Smarkm arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) 24855682Smarkm echo arm-acorn-riscix${UNAME_RELEASE} 24955682Smarkm exit 0;; 25055682Smarkm SR2?01:HI-UX/MPP:*:*) 25155682Smarkm echo hppa1.1-hitachi-hiuxmpp 25255682Smarkm exit 0;; 25372445Sassar Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) 25455682Smarkm # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. 25555682Smarkm if test "`(/bin/universe) 2>/dev/null`" = att ; then 25655682Smarkm echo pyramid-pyramid-sysv3 25755682Smarkm else 25855682Smarkm echo pyramid-pyramid-bsd 25955682Smarkm fi 26055682Smarkm exit 0 ;; 26172445Sassar NILE*:*:*:dcosx) 26255682Smarkm echo pyramid-pyramid-svr4 26355682Smarkm exit 0 ;; 26455682Smarkm sun4H:SunOS:5.*:*) 26555682Smarkm echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 26655682Smarkm exit 0 ;; 26755682Smarkm sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) 26855682Smarkm echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 26955682Smarkm exit 0 ;; 27055682Smarkm i86pc:SunOS:5.*:*) 27155682Smarkm echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 27255682Smarkm exit 0 ;; 27355682Smarkm sun4*:SunOS:6*:*) 27455682Smarkm # According to config.sub, this is the proper way to canonicalize 27555682Smarkm # SunOS6. Hard to guess exactly what SunOS6 will be like, but 27655682Smarkm # it's likely to be more like Solaris than SunOS4. 27755682Smarkm echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 27855682Smarkm exit 0 ;; 27955682Smarkm sun4*:SunOS:*:*) 28055682Smarkm case "`/usr/bin/arch -k`" in 28155682Smarkm Series*|S4*) 28255682Smarkm UNAME_RELEASE=`uname -v` 28355682Smarkm ;; 28455682Smarkm esac 28555682Smarkm # Japanese Language versions have a version number like `4.1.3-JL'. 28655682Smarkm echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` 28755682Smarkm exit 0 ;; 28855682Smarkm sun3*:SunOS:*:*) 28955682Smarkm echo m68k-sun-sunos${UNAME_RELEASE} 29055682Smarkm exit 0 ;; 29155682Smarkm sun*:*:4.2BSD:*) 29255682Smarkm UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` 29355682Smarkm test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 29455682Smarkm case "`/bin/arch`" in 29555682Smarkm sun3) 29655682Smarkm echo m68k-sun-sunos${UNAME_RELEASE} 29755682Smarkm ;; 29855682Smarkm sun4) 29955682Smarkm echo sparc-sun-sunos${UNAME_RELEASE} 30055682Smarkm ;; 30155682Smarkm esac 30255682Smarkm exit 0 ;; 30355682Smarkm aushp:SunOS:*:*) 30455682Smarkm echo sparc-auspex-sunos${UNAME_RELEASE} 30555682Smarkm exit 0 ;; 30655682Smarkm atari*:OpenBSD:*:*) 30755682Smarkm echo m68k-unknown-openbsd${UNAME_RELEASE} 30855682Smarkm exit 0 ;; 30972445Sassar # The situation for MiNT is a little confusing. The machine name 31072445Sassar # can be virtually everything (everything which is not 31172445Sassar # "atarist" or "atariste" at least should have a processor 31272445Sassar # > m68000). The system name ranges from "MiNT" over "FreeMiNT" 31372445Sassar # to the lowercase version "mint" (or "freemint"). Finally 31472445Sassar # the system name "TOS" denotes a system which is actually not 31572445Sassar # MiNT. But MiNT is downward compatible to TOS, so this should 31672445Sassar # be no problem. 31772445Sassar atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) 31872445Sassar echo m68k-atari-mint${UNAME_RELEASE} 31955682Smarkm exit 0 ;; 32072445Sassar atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) 32172445Sassar echo m68k-atari-mint${UNAME_RELEASE} 32272445Sassar exit 0 ;; 32372445Sassar *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) 32472445Sassar echo m68k-atari-mint${UNAME_RELEASE} 32572445Sassar exit 0 ;; 32672445Sassar milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) 32772445Sassar echo m68k-milan-mint${UNAME_RELEASE} 32872445Sassar exit 0 ;; 32972445Sassar hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) 33072445Sassar echo m68k-hades-mint${UNAME_RELEASE} 33172445Sassar exit 0 ;; 33272445Sassar *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) 33372445Sassar echo m68k-unknown-mint${UNAME_RELEASE} 33472445Sassar exit 0 ;; 33555682Smarkm sun3*:OpenBSD:*:*) 33655682Smarkm echo m68k-unknown-openbsd${UNAME_RELEASE} 33755682Smarkm exit 0 ;; 33855682Smarkm mac68k:OpenBSD:*:*) 33955682Smarkm echo m68k-unknown-openbsd${UNAME_RELEASE} 34055682Smarkm exit 0 ;; 34155682Smarkm mvme68k:OpenBSD:*:*) 34255682Smarkm echo m68k-unknown-openbsd${UNAME_RELEASE} 34355682Smarkm exit 0 ;; 34455682Smarkm mvme88k:OpenBSD:*:*) 34555682Smarkm echo m88k-unknown-openbsd${UNAME_RELEASE} 34655682Smarkm exit 0 ;; 34755682Smarkm powerpc:machten:*:*) 34855682Smarkm echo powerpc-apple-machten${UNAME_RELEASE} 34955682Smarkm exit 0 ;; 35055682Smarkm RISC*:Mach:*:*) 35155682Smarkm echo mips-dec-mach_bsd4.3 35255682Smarkm exit 0 ;; 35355682Smarkm RISC*:ULTRIX:*:*) 35455682Smarkm echo mips-dec-ultrix${UNAME_RELEASE} 35555682Smarkm exit 0 ;; 35655682Smarkm VAX*:ULTRIX*:*:*) 35755682Smarkm echo vax-dec-ultrix${UNAME_RELEASE} 35855682Smarkm exit 0 ;; 35972445Sassar 2020:CLIX:*:* | 2430:CLIX:*:*) 36055682Smarkm echo clipper-intergraph-clix${UNAME_RELEASE} 36155682Smarkm exit 0 ;; 36255682Smarkm mips:*:*:UMIPS | mips:*:*:RISCos) 36355682Smarkm sed 's/^ //' << EOF >$dummy.c 36472445Sassar#ifdef __cplusplus 36572445Sassar#include <stdio.h> /* for printf() prototype */ 36672445Sassar int main (int argc, char *argv[]) { 36772445Sassar#else 36872445Sassar int main (argc, argv) int argc; char *argv[]; { 36972445Sassar#endif 37055682Smarkm #if defined (host_mips) && defined (MIPSEB) 37155682Smarkm #if defined (SYSTYPE_SYSV) 37255682Smarkm printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); 37355682Smarkm #endif 37455682Smarkm #if defined (SYSTYPE_SVR4) 37555682Smarkm printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); 37655682Smarkm #endif 37755682Smarkm #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) 37855682Smarkm printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); 37955682Smarkm #endif 38055682Smarkm #endif 38155682Smarkm exit (-1); 38255682Smarkm } 38355682SmarkmEOF 38472445Sassar $CC_FOR_BUILD $dummy.c -o $dummy \ 38555682Smarkm && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ 38655682Smarkm && rm $dummy.c $dummy && exit 0 38755682Smarkm rm -f $dummy.c $dummy 38855682Smarkm echo mips-mips-riscos${UNAME_RELEASE} 38955682Smarkm exit 0 ;; 39055682Smarkm Night_Hawk:Power_UNIX:*:*) 39155682Smarkm echo powerpc-harris-powerunix 39255682Smarkm exit 0 ;; 39355682Smarkm m88k:CX/UX:7*:*) 39455682Smarkm echo m88k-harris-cxux7 39555682Smarkm exit 0 ;; 39655682Smarkm m88k:*:4*:R4*) 39755682Smarkm echo m88k-motorola-sysv4 39855682Smarkm exit 0 ;; 39955682Smarkm m88k:*:3*:R3*) 40055682Smarkm echo m88k-motorola-sysv3 40155682Smarkm exit 0 ;; 40255682Smarkm AViiON:dgux:*:*) 40355682Smarkm # DG/UX returns AViiON for all architectures 40455682Smarkm UNAME_PROCESSOR=`/usr/bin/uname -p` 40572445Sassar if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110] 40672445Sassar then 40772445Sassar if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ 40872445Sassar [ ${TARGET_BINARY_INTERFACE}x = x ] 40972445Sassar then 41055682Smarkm echo m88k-dg-dgux${UNAME_RELEASE} 41172445Sassar else 41272445Sassar echo m88k-dg-dguxbcs${UNAME_RELEASE} 41372445Sassar fi 41455682Smarkm else 41572445Sassar echo i586-dg-dgux${UNAME_RELEASE} 41655682Smarkm fi 41755682Smarkm exit 0 ;; 41855682Smarkm M88*:DolphinOS:*:*) # DolphinOS (SVR3) 41955682Smarkm echo m88k-dolphin-sysv3 42055682Smarkm exit 0 ;; 42155682Smarkm M88*:*:R3*:*) 42255682Smarkm # Delta 88k system running SVR3 42355682Smarkm echo m88k-motorola-sysv3 42455682Smarkm exit 0 ;; 42555682Smarkm XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) 42655682Smarkm echo m88k-tektronix-sysv3 42755682Smarkm exit 0 ;; 42855682Smarkm Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) 42955682Smarkm echo m68k-tektronix-bsd 43055682Smarkm exit 0 ;; 43155682Smarkm *:IRIX*:*:*) 43255682Smarkm echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` 43355682Smarkm exit 0 ;; 43455682Smarkm ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. 43555682Smarkm echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id 43655682Smarkm exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' 43755682Smarkm i?86:AIX:*:*) 43855682Smarkm echo i386-ibm-aix 43955682Smarkm exit 0 ;; 44055682Smarkm *:AIX:2:3) 44155682Smarkm if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then 44255682Smarkm sed 's/^ //' << EOF >$dummy.c 44355682Smarkm #include <sys/systemcfg.h> 44455682Smarkm 44555682Smarkm main() 44655682Smarkm { 44755682Smarkm if (!__power_pc()) 44855682Smarkm exit(1); 44955682Smarkm puts("powerpc-ibm-aix3.2.5"); 45055682Smarkm exit(0); 45155682Smarkm } 45255682SmarkmEOF 45372445Sassar $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0 45455682Smarkm rm -f $dummy.c $dummy 45555682Smarkm echo rs6000-ibm-aix3.2.5 45655682Smarkm elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then 45755682Smarkm echo rs6000-ibm-aix3.2.4 45855682Smarkm else 45955682Smarkm echo rs6000-ibm-aix3.2 46055682Smarkm fi 46155682Smarkm exit 0 ;; 46255682Smarkm *:AIX:*:4) 46355682Smarkm IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` 46455682Smarkm if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then 46555682Smarkm IBM_ARCH=rs6000 46655682Smarkm else 46755682Smarkm IBM_ARCH=powerpc 46855682Smarkm fi 46955682Smarkm if [ -x /usr/bin/oslevel ] ; then 47055682Smarkm IBM_REV=`/usr/bin/oslevel` 47155682Smarkm else 47255682Smarkm IBM_REV=4.${UNAME_RELEASE} 47355682Smarkm fi 47455682Smarkm echo ${IBM_ARCH}-ibm-aix${IBM_REV} 47555682Smarkm exit 0 ;; 47655682Smarkm *:AIX:*:*) 47755682Smarkm echo rs6000-ibm-aix 47855682Smarkm exit 0 ;; 47955682Smarkm ibmrt:4.4BSD:*|romp-ibm:BSD:*) 48055682Smarkm echo romp-ibm-bsd4.4 48155682Smarkm exit 0 ;; 48272445Sassar ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and 48355682Smarkm echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to 48455682Smarkm exit 0 ;; # report: romp-ibm BSD 4.3 48555682Smarkm *:BOSX:*:*) 48655682Smarkm echo rs6000-bull-bosx 48755682Smarkm exit 0 ;; 48855682Smarkm DPX/2?00:B.O.S.:*:*) 48955682Smarkm echo m68k-bull-sysv3 49055682Smarkm exit 0 ;; 49155682Smarkm 9000/[34]??:4.3bsd:1.*:*) 49255682Smarkm echo m68k-hp-bsd 49355682Smarkm exit 0 ;; 49455682Smarkm hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) 49555682Smarkm echo m68k-hp-bsd4.4 49655682Smarkm exit 0 ;; 49755682Smarkm 9000/[34678]??:HP-UX:*:*) 49855682Smarkm case "${UNAME_MACHINE}" in 49955682Smarkm 9000/31? ) HP_ARCH=m68000 ;; 50055682Smarkm 9000/[34]?? ) HP_ARCH=m68k ;; 50172445Sassar 9000/[678][0-9][0-9]) 50255682Smarkm sed 's/^ //' << EOF >$dummy.c 50372445Sassar 50472445Sassar #define _HPUX_SOURCE 50555682Smarkm #include <stdlib.h> 50655682Smarkm #include <unistd.h> 50772445Sassar 50855682Smarkm int main () 50955682Smarkm { 51055682Smarkm #if defined(_SC_KERNEL_BITS) 51155682Smarkm long bits = sysconf(_SC_KERNEL_BITS); 51272445Sassar #endif 51355682Smarkm long cpu = sysconf (_SC_CPU_VERSION); 51472445Sassar 51572445Sassar switch (cpu) 51655682Smarkm { 51755682Smarkm case CPU_PA_RISC1_0: puts ("hppa1.0"); break; 51855682Smarkm case CPU_PA_RISC1_1: puts ("hppa1.1"); break; 51972445Sassar case CPU_PA_RISC2_0: 52055682Smarkm #if defined(_SC_KERNEL_BITS) 52172445Sassar switch (bits) 52255682Smarkm { 52355682Smarkm case 64: puts ("hppa2.0w"); break; 52455682Smarkm case 32: puts ("hppa2.0n"); break; 52555682Smarkm default: puts ("hppa2.0"); break; 52655682Smarkm } break; 52755682Smarkm #else /* !defined(_SC_KERNEL_BITS) */ 52855682Smarkm puts ("hppa2.0"); break; 52972445Sassar #endif 53055682Smarkm default: puts ("hppa1.0"); break; 53155682Smarkm } 53255682Smarkm exit (0); 53355682Smarkm } 53455682SmarkmEOF 53572445Sassar (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy` 53655682Smarkm rm -f $dummy.c $dummy 53755682Smarkm esac 53855682Smarkm HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` 53955682Smarkm echo ${HP_ARCH}-hp-hpux${HPUX_REV} 54055682Smarkm exit 0 ;; 54155682Smarkm 3050*:HI-UX:*:*) 54255682Smarkm sed 's/^ //' << EOF >$dummy.c 54355682Smarkm #include <unistd.h> 54455682Smarkm int 54555682Smarkm main () 54655682Smarkm { 54755682Smarkm long cpu = sysconf (_SC_CPU_VERSION); 54855682Smarkm /* The order matters, because CPU_IS_HP_MC68K erroneously returns 54955682Smarkm true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct 55055682Smarkm results, however. */ 55155682Smarkm if (CPU_IS_PA_RISC (cpu)) 55255682Smarkm { 55355682Smarkm switch (cpu) 55455682Smarkm { 55555682Smarkm case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; 55655682Smarkm case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; 55755682Smarkm case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; 55855682Smarkm default: puts ("hppa-hitachi-hiuxwe2"); break; 55955682Smarkm } 56055682Smarkm } 56155682Smarkm else if (CPU_IS_HP_MC68K (cpu)) 56255682Smarkm puts ("m68k-hitachi-hiuxwe2"); 56355682Smarkm else puts ("unknown-hitachi-hiuxwe2"); 56455682Smarkm exit (0); 56555682Smarkm } 56655682SmarkmEOF 56772445Sassar $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0 56855682Smarkm rm -f $dummy.c $dummy 56955682Smarkm echo unknown-hitachi-hiuxwe2 57055682Smarkm exit 0 ;; 57155682Smarkm 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) 57255682Smarkm echo hppa1.1-hp-bsd 57355682Smarkm exit 0 ;; 57455682Smarkm 9000/8??:4.3bsd:*:*) 57555682Smarkm echo hppa1.0-hp-bsd 57655682Smarkm exit 0 ;; 57772445Sassar *9??*:MPE/iX:*:*) 57872445Sassar echo hppa1.0-hp-mpeix 57972445Sassar exit 0 ;; 58055682Smarkm hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) 58155682Smarkm echo hppa1.1-hp-osf 58255682Smarkm exit 0 ;; 58355682Smarkm hp8??:OSF1:*:*) 58455682Smarkm echo hppa1.0-hp-osf 58555682Smarkm exit 0 ;; 58655682Smarkm i?86:OSF1:*:*) 58755682Smarkm if [ -x /usr/sbin/sysversion ] ; then 58855682Smarkm echo ${UNAME_MACHINE}-unknown-osf1mk 58955682Smarkm else 59055682Smarkm echo ${UNAME_MACHINE}-unknown-osf1 59155682Smarkm fi 59255682Smarkm exit 0 ;; 59355682Smarkm parisc*:Lites*:*:*) 59455682Smarkm echo hppa1.1-hp-lites 59555682Smarkm exit 0 ;; 59672445Sassar hppa*:OpenBSD:*:*) 59772445Sassar echo hppa-unknown-openbsd 59872445Sassar exit 0 ;; 59955682Smarkm C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) 60055682Smarkm echo c1-convex-bsd 60155682Smarkm exit 0 ;; 60255682Smarkm C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) 60355682Smarkm if getsysinfo -f scalar_acc 60455682Smarkm then echo c32-convex-bsd 60555682Smarkm else echo c2-convex-bsd 60655682Smarkm fi 60755682Smarkm exit 0 ;; 60855682Smarkm C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) 60955682Smarkm echo c34-convex-bsd 61055682Smarkm exit 0 ;; 61155682Smarkm C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) 61255682Smarkm echo c38-convex-bsd 61355682Smarkm exit 0 ;; 61455682Smarkm C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) 61555682Smarkm echo c4-convex-bsd 61655682Smarkm exit 0 ;; 61755682Smarkm CRAY*X-MP:*:*:*) 61855682Smarkm echo xmp-cray-unicos 61955682Smarkm exit 0 ;; 62055682Smarkm CRAY*Y-MP:*:*:*) 62155682Smarkm echo ymp-cray-unicos${UNAME_RELEASE} 62255682Smarkm exit 0 ;; 62355682Smarkm CRAY*[A-Z]90:*:*:*) 62455682Smarkm echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ 62555682Smarkm | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ 62655682Smarkm -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ 62755682Smarkm exit 0 ;; 62855682Smarkm CRAY*TS:*:*:*) 62972445Sassar echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 63055682Smarkm exit 0 ;; 63155682Smarkm CRAY*T3E:*:*:*) 63272445Sassar echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 63355682Smarkm exit 0 ;; 63472445Sassar CRAY*SV1:*:*:*) 63572445Sassar echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 63672445Sassar exit 0 ;; 63755682Smarkm CRAY-2:*:*:*) 63855682Smarkm echo cray2-cray-unicos 63955682Smarkm exit 0 ;; 64055682Smarkm F300:UNIX_System_V:*:*) 64172445Sassar FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` 64255682Smarkm FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` 64355682Smarkm echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" 64455682Smarkm exit 0 ;; 64555682Smarkm F301:UNIX_System_V:*:*) 64655682Smarkm echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'` 64755682Smarkm exit 0 ;; 64855682Smarkm hp300:OpenBSD:*:*) 64955682Smarkm echo m68k-unknown-openbsd${UNAME_RELEASE} 65055682Smarkm exit 0 ;; 65172445Sassar i?86:BSD/386:*:* | i?86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) 65272445Sassar echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} 65372445Sassar exit 0 ;; 65455682Smarkm sparc*:BSD/OS:*:*) 65555682Smarkm echo sparc-unknown-bsdi${UNAME_RELEASE} 65655682Smarkm exit 0 ;; 65755682Smarkm *:BSD/OS:*:*) 65855682Smarkm echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} 65955682Smarkm exit 0 ;; 66055682Smarkm *:FreeBSD:*:*) 66155682Smarkm echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` 66255682Smarkm exit 0 ;; 66355682Smarkm *:OpenBSD:*:*) 66455682Smarkm echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` 66555682Smarkm exit 0 ;; 66655682Smarkm i*:CYGWIN*:*) 66755682Smarkm echo ${UNAME_MACHINE}-pc-cygwin 66855682Smarkm exit 0 ;; 66955682Smarkm i*:MINGW*:*) 67055682Smarkm echo ${UNAME_MACHINE}-pc-mingw32 67155682Smarkm exit 0 ;; 67272445Sassar i*:PW*:*) 67372445Sassar echo ${UNAME_MACHINE}-pc-pw32 67472445Sassar exit 0 ;; 67572445Sassar i*:Windows_NT*:* | Pentium*:Windows_NT*:*) 67672445Sassar # How do we know it's Interix rather than the generic POSIX subsystem? 67772445Sassar # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we 67872445Sassar # UNAME_MACHINE based on the output of uname instead of i386? 67972445Sassar echo i386-pc-interix 68072445Sassar exit 0 ;; 68172445Sassar i*:UWIN*:*) 68272445Sassar echo ${UNAME_MACHINE}-pc-uwin 68372445Sassar exit 0 ;; 68455682Smarkm p*:CYGWIN*:*) 68555682Smarkm echo powerpcle-unknown-cygwin 68655682Smarkm exit 0 ;; 68755682Smarkm prep*:SunOS:5.*:*) 68855682Smarkm echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 68955682Smarkm exit 0 ;; 69055682Smarkm *:GNU:*:*) 69155682Smarkm echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` 69255682Smarkm exit 0 ;; 69372445Sassar i*86:Minix:*:*) 69472445Sassar echo ${UNAME_MACHINE}-pc-minix 69572445Sassar exit 0 ;; 69655682Smarkm *:Linux:*:*) 69755682Smarkm 69855682Smarkm # The BFD linker knows what the default object file format is, so 69972445Sassar # first see if it will tell us. cd to the root directory to prevent 70072445Sassar # problems with other programs or directories called `ld' in the path. 70172445Sassar ld_help_string=`cd /; ld --help 2>&1` 70255682Smarkm ld_supported_emulations=`echo $ld_help_string \ 70355682Smarkm | sed -ne '/supported emulations:/!d 70455682Smarkm s/[ ][ ]*/ /g 70555682Smarkm s/.*supported emulations: *// 70655682Smarkm s/ .*// 70755682Smarkm p'` 70855682Smarkm case "$ld_supported_emulations" in 70972445Sassar *ia64) 71072445Sassar echo "${UNAME_MACHINE}-unknown-linux" 71172445Sassar exit 0 71272445Sassar ;; 71372445Sassar i?86linux) 71472445Sassar echo "${UNAME_MACHINE}-pc-linux-gnuaout" 71572445Sassar exit 0 71672445Sassar ;; 71772445Sassar elf_i?86) 71872445Sassar TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" 71972445Sassar ;; 72072445Sassar i?86coff) 72172445Sassar echo "${UNAME_MACHINE}-pc-linux-gnucoff" 72272445Sassar exit 0 72372445Sassar ;; 72472445Sassar sparclinux) 72572445Sassar echo "${UNAME_MACHINE}-unknown-linux-gnuaout" 72672445Sassar exit 0 72772445Sassar ;; 72872445Sassar armlinux) 72972445Sassar echo "${UNAME_MACHINE}-unknown-linux-gnuaout" 73072445Sassar exit 0 73172445Sassar ;; 73272445Sassar elf32arm*) 73372445Sassar echo "${UNAME_MACHINE}-unknown-linux-gnuoldld" 73472445Sassar exit 0 73572445Sassar ;; 73672445Sassar armelf_linux*) 73772445Sassar echo "${UNAME_MACHINE}-unknown-linux-gnu" 73872445Sassar exit 0 73972445Sassar ;; 74072445Sassar m68klinux) 74172445Sassar echo "${UNAME_MACHINE}-unknown-linux-gnuaout" 74272445Sassar exit 0 74372445Sassar ;; 74472445Sassar elf32ppc | elf32ppclinux) 74572445Sassar # Determine Lib Version 74672445Sassar cat >$dummy.c <<EOF 74772445Sassar#include <features.h> 74872445Sassar#if defined(__GLIBC__) 74972445Sassarextern char __libc_version[]; 75072445Sassarextern char __libc_release[]; 75172445Sassar#endif 75272445Sassarmain(argc, argv) 75372445Sassar int argc; 75472445Sassar char *argv[]; 75572445Sassar{ 75672445Sassar#if defined(__GLIBC__) 75772445Sassar printf("%s %s\n", __libc_version, __libc_release); 75872445Sassar#else 75972445Sassar printf("unkown\n"); 76072445Sassar#endif 76172445Sassar return 0; 76272445Sassar} 76372445SassarEOF 76472445Sassar LIBC="" 76572445Sassar $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null 76672445Sassar if test "$?" = 0 ; then 76772445Sassar ./$dummy | grep 1\.99 > /dev/null 76872445Sassar if test "$?" = 0 ; then 76972445Sassar LIBC="libc1" 77072445Sassar fi 77172445Sassar fi 77272445Sassar rm -f $dummy.c $dummy 77372445Sassar echo powerpc-unknown-linux-gnu${LIBC} 77472445Sassar exit 0 77572445Sassar ;; 77672445Sassar shelf_linux) 77772445Sassar echo "${UNAME_MACHINE}-unknown-linux-gnu" 77872445Sassar exit 0 77972445Sassar ;; 78055682Smarkm esac 78155682Smarkm 78255682Smarkm if test "${UNAME_MACHINE}" = "alpha" ; then 78372445Sassar cat <<EOF >$dummy.s 78472445Sassar .data 78572445Sassar \$Lformat: 78672445Sassar .byte 37,100,45,37,120,10,0 # "%d-%x\n" 78772445Sassar 78872445Sassar .text 78972445Sassar .globl main 79072445Sassar .align 4 79172445Sassar .ent main 79272445Sassar main: 79372445Sassar .frame \$30,16,\$26,0 79472445Sassar ldgp \$29,0(\$27) 79572445Sassar .prologue 1 79672445Sassar .long 0x47e03d80 # implver \$0 79772445Sassar lda \$2,-1 79872445Sassar .long 0x47e20c21 # amask \$2,\$1 79972445Sassar lda \$16,\$Lformat 80072445Sassar mov \$0,\$17 80172445Sassar not \$1,\$18 80272445Sassar jsr \$26,printf 80372445Sassar ldgp \$29,0(\$26) 80472445Sassar mov 0,\$16 80572445Sassar jsr \$26,exit 80672445Sassar .end main 80755682SmarkmEOF 80855682Smarkm LIBC="" 80972445Sassar $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null 81055682Smarkm if test "$?" = 0 ; then 81172445Sassar case `./$dummy` in 81272445Sassar 0-0) 81355682Smarkm UNAME_MACHINE="alpha" 81455682Smarkm ;; 81572445Sassar 1-0) 81655682Smarkm UNAME_MACHINE="alphaev5" 81755682Smarkm ;; 81872445Sassar 1-1) 81955682Smarkm UNAME_MACHINE="alphaev56" 82055682Smarkm ;; 82172445Sassar 1-101) 82255682Smarkm UNAME_MACHINE="alphapca56" 82355682Smarkm ;; 82472445Sassar 2-303) 82555682Smarkm UNAME_MACHINE="alphaev6" 82655682Smarkm ;; 82772445Sassar 2-307) 82872445Sassar UNAME_MACHINE="alphaev67" 82972445Sassar ;; 83072445Sassar esac 83155682Smarkm 83255682Smarkm objdump --private-headers $dummy | \ 83355682Smarkm grep ld.so.1 > /dev/null 83455682Smarkm if test "$?" = 0 ; then 83555682Smarkm LIBC="libc1" 83655682Smarkm fi 83772445Sassar fi 83855682Smarkm rm -f $dummy.s $dummy 83955682Smarkm echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0 84055682Smarkm elif test "${UNAME_MACHINE}" = "mips" ; then 84155682Smarkm cat >$dummy.c <<EOF 84272445Sassar#ifdef __cplusplus 84372445Sassar#include <stdio.h> /* for printf() prototype */ 84472445Sassar int main (int argc, char *argv[]) { 84572445Sassar#else 84672445Sassar int main (argc, argv) int argc; char *argv[]; { 84772445Sassar#endif 84855682Smarkm#ifdef __MIPSEB__ 84955682Smarkm printf ("%s-unknown-linux-gnu\n", argv[1]); 85055682Smarkm#endif 85155682Smarkm#ifdef __MIPSEL__ 85255682Smarkm printf ("%sel-unknown-linux-gnu\n", argv[1]); 85355682Smarkm#endif 85455682Smarkm return 0; 85555682Smarkm} 85655682SmarkmEOF 85772445Sassar $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0 85855682Smarkm rm -f $dummy.c $dummy 85972445Sassar elif test "${UNAME_MACHINE}" = "s390"; then 86072445Sassar echo s390-ibm-linux && exit 0 86172445Sassar elif test "${UNAME_MACHINE}" = "x86_64"; then 86272445Sassar echo x86_64-unknown-linux-gnu && exit 0 86355682Smarkm else 86455682Smarkm # Either a pre-BFD a.out linker (linux-gnuoldld) 86555682Smarkm # or one that does not give us useful --help. 86655682Smarkm # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. 86755682Smarkm # If ld does not provide *any* "supported emulations:" 86855682Smarkm # that means it is gnuoldld. 86955682Smarkm echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:" 87055682Smarkm test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 87155682Smarkm 87255682Smarkm case "${UNAME_MACHINE}" in 87355682Smarkm i?86) 87455682Smarkm VENDOR=pc; 87555682Smarkm ;; 87655682Smarkm *) 87755682Smarkm VENDOR=unknown; 87855682Smarkm ;; 87955682Smarkm esac 88055682Smarkm # Determine whether the default compiler is a.out or elf 88155682Smarkm cat >$dummy.c <<EOF 88255682Smarkm#include <features.h> 88372445Sassar#ifdef __cplusplus 88472445Sassar#include <stdio.h> /* for printf() prototype */ 88572445Sassar int main (int argc, char *argv[]) { 88672445Sassar#else 88772445Sassar int main (argc, argv) int argc; char *argv[]; { 88872445Sassar#endif 88955682Smarkm#ifdef __ELF__ 89055682Smarkm# ifdef __GLIBC__ 89155682Smarkm# if __GLIBC__ >= 2 89255682Smarkm printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); 89355682Smarkm# else 89455682Smarkm printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); 89555682Smarkm# endif 89655682Smarkm# else 89755682Smarkm printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); 89855682Smarkm# endif 89955682Smarkm#else 90055682Smarkm printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); 90155682Smarkm#endif 90255682Smarkm return 0; 90355682Smarkm} 90455682SmarkmEOF 90572445Sassar $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0 90655682Smarkm rm -f $dummy.c $dummy 90772445Sassar test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 90855682Smarkm fi ;; 90955682Smarkm# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions 91055682Smarkm# are messed up and put the nodename in both sysname and nodename. 91155682Smarkm i?86:DYNIX/ptx:4*:*) 91255682Smarkm echo i386-sequent-sysv4 91355682Smarkm exit 0 ;; 91455682Smarkm i?86:UNIX_SV:4.2MP:2.*) 91555682Smarkm # Unixware is an offshoot of SVR4, but it has its own version 91655682Smarkm # number series starting with 2... 91755682Smarkm # I am not positive that other SVR4 systems won't match this, 91855682Smarkm # I just have to hope. -- rms. 91955682Smarkm # Use sysv4.2uw... so that sysv4* matches it. 92055682Smarkm echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} 92155682Smarkm exit 0 ;; 92255682Smarkm i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) 92372445Sassar UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` 92455682Smarkm if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then 92572445Sassar echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} 92655682Smarkm else 92772445Sassar echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} 92855682Smarkm fi 92955682Smarkm exit 0 ;; 93072445Sassar i?86:*:5:7*) 93172445Sassar # Fixed at (any) Pentium or better 93272445Sassar UNAME_MACHINE=i586 93372445Sassar if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then 93472445Sassar echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION} 93572445Sassar else 93672445Sassar echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} 93772445Sassar fi 93872445Sassar exit 0 ;; 93955682Smarkm i?86:*:3.2:*) 94055682Smarkm if test -f /usr/options/cb.name; then 94155682Smarkm UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` 94255682Smarkm echo ${UNAME_MACHINE}-pc-isc$UNAME_REL 94355682Smarkm elif /bin/uname -X 2>/dev/null >/dev/null ; then 94455682Smarkm UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` 94555682Smarkm (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 94655682Smarkm (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ 94755682Smarkm && UNAME_MACHINE=i586 94872445Sassar (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ 94972445Sassar && UNAME_MACHINE=i686 95072445Sassar (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ 95172445Sassar && UNAME_MACHINE=i686 95255682Smarkm echo ${UNAME_MACHINE}-pc-sco$UNAME_REL 95355682Smarkm else 95455682Smarkm echo ${UNAME_MACHINE}-pc-sysv32 95555682Smarkm fi 95655682Smarkm exit 0 ;; 95772445Sassar i?86:*DOS:*:*) 95872445Sassar echo ${UNAME_MACHINE}-pc-msdosdjgpp 95955682Smarkm exit 0 ;; 96055682Smarkm pc:*:*:*) 96172445Sassar # Left here for compatibility: 96255682Smarkm # uname -m prints for DJGPP always 'pc', but it prints nothing about 96355682Smarkm # the processor, so we play safe by assuming i386. 96455682Smarkm echo i386-pc-msdosdjgpp 96555682Smarkm exit 0 ;; 96655682Smarkm Intel:Mach:3*:*) 96755682Smarkm echo i386-pc-mach3 96855682Smarkm exit 0 ;; 96955682Smarkm paragon:*:*:*) 97055682Smarkm echo i860-intel-osf1 97155682Smarkm exit 0 ;; 97255682Smarkm i860:*:4.*:*) # i860-SVR4 97355682Smarkm if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then 97455682Smarkm echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 97555682Smarkm else # Add other i860-SVR4 vendors below as they are discovered. 97655682Smarkm echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 97755682Smarkm fi 97855682Smarkm exit 0 ;; 97955682Smarkm mini*:CTIX:SYS*5:*) 98055682Smarkm # "miniframe" 98155682Smarkm echo m68010-convergent-sysv 98255682Smarkm exit 0 ;; 98355682Smarkm M68*:*:R3V[567]*:*) 98455682Smarkm test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; 98555682Smarkm 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) 98655682Smarkm OS_REL='' 98755682Smarkm test -r /etc/.relid \ 98855682Smarkm && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` 98955682Smarkm /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ 99055682Smarkm && echo i486-ncr-sysv4.3${OS_REL} && exit 0 99155682Smarkm /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ 99255682Smarkm && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; 99355682Smarkm 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) 99455682Smarkm /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ 99555682Smarkm && echo i486-ncr-sysv4 && exit 0 ;; 99655682Smarkm m68*:LynxOS:2.*:*) 99755682Smarkm echo m68k-unknown-lynxos${UNAME_RELEASE} 99855682Smarkm exit 0 ;; 99955682Smarkm mc68030:UNIX_System_V:4.*:*) 100055682Smarkm echo m68k-atari-sysv4 100155682Smarkm exit 0 ;; 100272445Sassar i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*) 100355682Smarkm echo i386-unknown-lynxos${UNAME_RELEASE} 100455682Smarkm exit 0 ;; 100555682Smarkm TSUNAMI:LynxOS:2.*:*) 100655682Smarkm echo sparc-unknown-lynxos${UNAME_RELEASE} 100755682Smarkm exit 0 ;; 100855682Smarkm rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*) 100955682Smarkm echo rs6000-unknown-lynxos${UNAME_RELEASE} 101055682Smarkm exit 0 ;; 101155682Smarkm SM[BE]S:UNIX_SV:*:*) 101255682Smarkm echo mips-dde-sysv${UNAME_RELEASE} 101355682Smarkm exit 0 ;; 101472445Sassar RM*:ReliantUNIX-*:*:*) 101572445Sassar echo mips-sni-sysv4 101672445Sassar exit 0 ;; 101755682Smarkm RM*:SINIX-*:*:*) 101855682Smarkm echo mips-sni-sysv4 101955682Smarkm exit 0 ;; 102055682Smarkm *:SINIX-*:*:*) 102155682Smarkm if uname -p 2>/dev/null >/dev/null ; then 102255682Smarkm UNAME_MACHINE=`(uname -p) 2>/dev/null` 102355682Smarkm echo ${UNAME_MACHINE}-sni-sysv4 102455682Smarkm else 102555682Smarkm echo ns32k-sni-sysv 102655682Smarkm fi 102755682Smarkm exit 0 ;; 102855682Smarkm PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort 102955682Smarkm # says <Richard.M.Bartel@ccMail.Census.GOV> 103055682Smarkm echo i586-unisys-sysv4 103155682Smarkm exit 0 ;; 103255682Smarkm *:UNIX_System_V:4*:FTX*) 103355682Smarkm # From Gerald Hewes <hewes@openmarket.com>. 103455682Smarkm # How about differentiating between stratus architectures? -djm 103555682Smarkm echo hppa1.1-stratus-sysv4 103655682Smarkm exit 0 ;; 103755682Smarkm *:*:*:FTX*) 103855682Smarkm # From seanf@swdc.stratus.com. 103955682Smarkm echo i860-stratus-sysv4 104055682Smarkm exit 0 ;; 104155682Smarkm mc68*:A/UX:*:*) 104255682Smarkm echo m68k-apple-aux${UNAME_RELEASE} 104355682Smarkm exit 0 ;; 104472445Sassar news*:NEWS-OS:6*:*) 104555682Smarkm echo mips-sony-newsos6 104655682Smarkm exit 0 ;; 104772445Sassar R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) 104855682Smarkm if [ -d /usr/nec ]; then 104955682Smarkm echo mips-nec-sysv${UNAME_RELEASE} 105055682Smarkm else 105155682Smarkm echo mips-unknown-sysv${UNAME_RELEASE} 105255682Smarkm fi 105355682Smarkm exit 0 ;; 105455682Smarkm BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. 105555682Smarkm echo powerpc-be-beos 105655682Smarkm exit 0 ;; 105755682Smarkm BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. 105855682Smarkm echo powerpc-apple-beos 105955682Smarkm exit 0 ;; 106055682Smarkm BePC:BeOS:*:*) # BeOS running on Intel PC compatible. 106155682Smarkm echo i586-pc-beos 106255682Smarkm exit 0 ;; 106355682Smarkm SX-4:SUPER-UX:*:*) 106455682Smarkm echo sx4-nec-superux${UNAME_RELEASE} 106555682Smarkm exit 0 ;; 106655682Smarkm SX-5:SUPER-UX:*:*) 106755682Smarkm echo sx5-nec-superux${UNAME_RELEASE} 106855682Smarkm exit 0 ;; 106955682Smarkm Power*:Rhapsody:*:*) 107055682Smarkm echo powerpc-apple-rhapsody${UNAME_RELEASE} 107155682Smarkm exit 0 ;; 107255682Smarkm *:Rhapsody:*:*) 107355682Smarkm echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} 107455682Smarkm exit 0 ;; 107572445Sassar *:Darwin:*:*) 107672445Sassar echo `uname -p`-apple-darwin${UNAME_RELEASE} 107772445Sassar exit 0 ;; 107872445Sassar *:procnto*:*:* | *:QNX:[0123456789]*:*) 107972445Sassar if test "${UNAME_MACHINE}" = "x86pc"; then 108072445Sassar UNAME_MACHINE=pc 108172445Sassar fi 108272445Sassar echo `uname -p`-${UNAME_MACHINE}-nto-qnx 108372445Sassar exit 0 ;; 108472445Sassar *:QNX:*:4*) 108572445Sassar echo i386-pc-qnx 108672445Sassar exit 0 ;; 108772445Sassar NSR-[KW]:NONSTOP_KERNEL:*:*) 108872445Sassar echo nsr-tandem-nsk${UNAME_RELEASE} 108972445Sassar exit 0 ;; 109072445Sassar BS2000:POSIX*:*:*) 109172445Sassar echo bs2000-siemens-sysv 109272445Sassar exit 0 ;; 109372445Sassar DS/*:UNIX_System_V:*:*) 109472445Sassar echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} 109572445Sassar exit 0 ;; 109672445Sassar *:Plan9:*:*) 109772445Sassar # "uname -m" is not consistent, so use $cputype instead. 386 109872445Sassar # is converted to i386 for consistency with other x86 109972445Sassar # operating systems. 110072445Sassar if test "$cputype" = "386"; then 110172445Sassar UNAME_MACHINE=i386 110272445Sassar else 110372445Sassar UNAME_MACHINE="$cputype" 110472445Sassar fi 110572445Sassar echo ${UNAME_MACHINE}-unknown-plan9 110672445Sassar exit 0 ;; 110772445Sassar *:OS/2:*:*) 110872445Sassar echo ${UNAME_MACHINE}-pc-os2_emx 110955682Smarkmesac 111055682Smarkm 111155682Smarkm#echo '(No uname command or uname output not recognized.)' 1>&2 111255682Smarkm#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 111355682Smarkm 111455682Smarkmcat >$dummy.c <<EOF 111555682Smarkm#ifdef _SEQUENT_ 111655682Smarkm# include <sys/types.h> 111755682Smarkm# include <sys/utsname.h> 111855682Smarkm#endif 111955682Smarkmmain () 112055682Smarkm{ 112155682Smarkm#if defined (sony) 112255682Smarkm#if defined (MIPSEB) 112355682Smarkm /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, 112455682Smarkm I don't know.... */ 112555682Smarkm printf ("mips-sony-bsd\n"); exit (0); 112655682Smarkm#else 112755682Smarkm#include <sys/param.h> 112855682Smarkm printf ("m68k-sony-newsos%s\n", 112955682Smarkm#ifdef NEWSOS4 113055682Smarkm "4" 113155682Smarkm#else 113255682Smarkm "" 113355682Smarkm#endif 113455682Smarkm ); exit (0); 113555682Smarkm#endif 113655682Smarkm#endif 113755682Smarkm 113855682Smarkm#if defined (__arm) && defined (__acorn) && defined (__unix) 113955682Smarkm printf ("arm-acorn-riscix"); exit (0); 114055682Smarkm#endif 114155682Smarkm 114255682Smarkm#if defined (hp300) && !defined (hpux) 114355682Smarkm printf ("m68k-hp-bsd\n"); exit (0); 114455682Smarkm#endif 114555682Smarkm 114655682Smarkm#if defined (NeXT) 114755682Smarkm#if !defined (__ARCHITECTURE__) 114855682Smarkm#define __ARCHITECTURE__ "m68k" 114955682Smarkm#endif 115055682Smarkm int version; 115155682Smarkm version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; 115255682Smarkm if (version < 4) 115355682Smarkm printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); 115455682Smarkm else 115555682Smarkm printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); 115655682Smarkm exit (0); 115755682Smarkm#endif 115855682Smarkm 115955682Smarkm#if defined (MULTIMAX) || defined (n16) 116055682Smarkm#if defined (UMAXV) 116155682Smarkm printf ("ns32k-encore-sysv\n"); exit (0); 116255682Smarkm#else 116355682Smarkm#if defined (CMU) 116455682Smarkm printf ("ns32k-encore-mach\n"); exit (0); 116555682Smarkm#else 116655682Smarkm printf ("ns32k-encore-bsd\n"); exit (0); 116755682Smarkm#endif 116855682Smarkm#endif 116955682Smarkm#endif 117055682Smarkm 117155682Smarkm#if defined (__386BSD__) 117255682Smarkm printf ("i386-pc-bsd\n"); exit (0); 117355682Smarkm#endif 117455682Smarkm 117555682Smarkm#if defined (sequent) 117655682Smarkm#if defined (i386) 117755682Smarkm printf ("i386-sequent-dynix\n"); exit (0); 117855682Smarkm#endif 117955682Smarkm#if defined (ns32000) 118055682Smarkm printf ("ns32k-sequent-dynix\n"); exit (0); 118155682Smarkm#endif 118255682Smarkm#endif 118355682Smarkm 118455682Smarkm#if defined (_SEQUENT_) 118555682Smarkm struct utsname un; 118655682Smarkm 118755682Smarkm uname(&un); 118855682Smarkm 118955682Smarkm if (strncmp(un.version, "V2", 2) == 0) { 119055682Smarkm printf ("i386-sequent-ptx2\n"); exit (0); 119155682Smarkm } 119255682Smarkm if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ 119355682Smarkm printf ("i386-sequent-ptx1\n"); exit (0); 119455682Smarkm } 119555682Smarkm printf ("i386-sequent-ptx\n"); exit (0); 119655682Smarkm 119755682Smarkm#endif 119855682Smarkm 119955682Smarkm#if defined (vax) 120055682Smarkm#if !defined (ultrix) 120155682Smarkm printf ("vax-dec-bsd\n"); exit (0); 120255682Smarkm#else 120355682Smarkm printf ("vax-dec-ultrix\n"); exit (0); 120455682Smarkm#endif 120555682Smarkm#endif 120655682Smarkm 120755682Smarkm#if defined (alliant) && defined (i860) 120855682Smarkm printf ("i860-alliant-bsd\n"); exit (0); 120955682Smarkm#endif 121055682Smarkm 121155682Smarkm exit (1); 121255682Smarkm} 121355682SmarkmEOF 121455682Smarkm 121572445Sassar$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0 121655682Smarkmrm -f $dummy.c $dummy 121755682Smarkm 121855682Smarkm# Apollos put the system type in the environment. 121955682Smarkm 122055682Smarkmtest -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } 122155682Smarkm 122255682Smarkm# Convex versions that predate uname can use getsysinfo(1) 122355682Smarkm 122455682Smarkmif [ -x /usr/convex/getsysinfo ] 122555682Smarkmthen 122655682Smarkm case `getsysinfo -f cpu_type` in 122755682Smarkm c1*) 122855682Smarkm echo c1-convex-bsd 122955682Smarkm exit 0 ;; 123055682Smarkm c2*) 123155682Smarkm if getsysinfo -f scalar_acc 123255682Smarkm then echo c32-convex-bsd 123355682Smarkm else echo c2-convex-bsd 123455682Smarkm fi 123555682Smarkm exit 0 ;; 123655682Smarkm c34*) 123755682Smarkm echo c34-convex-bsd 123855682Smarkm exit 0 ;; 123955682Smarkm c38*) 124055682Smarkm echo c38-convex-bsd 124155682Smarkm exit 0 ;; 124255682Smarkm c4*) 124355682Smarkm echo c4-convex-bsd 124455682Smarkm exit 0 ;; 124555682Smarkm esac 124655682Smarkmfi 124755682Smarkm 124872445Sassarcat >&2 <<EOF 124972445Sassar$0: unable to guess system type 125055682Smarkm 125172445SassarThe $version version of this script cannot recognize your system type. 125272445SassarPlease download the most up to date version of the config scripts: 125372445Sassar 125472445Sassar ftp://ftp.gnu.org/pub/gnu/config/ 125572445Sassar 125672445SassarIf the version you run ($0) is already up to date, please 125772445Sassarsend the following data and any information you think might be 125872445Sassarpertinent to <config-patches@gnu.org> in order to provide the needed 125972445Sassarinformation to handle your system. 126072445Sassar 126172445Sassarconfig.guess version = $version 126272445Sassar 126372445Sassaruname -m = `(uname -m) 2>/dev/null || echo unknown` 126472445Sassaruname -r = `(uname -r) 2>/dev/null || echo unknown` 126572445Sassaruname -s = `(uname -s) 2>/dev/null || echo unknown` 126672445Sassaruname -v = `(uname -v) 2>/dev/null || echo unknown` 126772445Sassar 126872445Sassar/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` 126972445Sassar/bin/uname -X = `(/bin/uname -X) 2>/dev/null` 127072445Sassar 127172445Sassarhostinfo = `(hostinfo) 2>/dev/null` 127272445Sassar/bin/universe = `(/bin/universe) 2>/dev/null` 127372445Sassar/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` 127472445Sassar/bin/arch = `(/bin/arch) 2>/dev/null` 127572445Sassar/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` 127672445Sassar/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` 127772445Sassar 127872445SassarUNAME_MACHINE = ${UNAME_MACHINE} 127972445SassarUNAME_RELEASE = ${UNAME_RELEASE} 128072445SassarUNAME_SYSTEM = ${UNAME_SYSTEM} 128172445SassarUNAME_VERSION = ${UNAME_VERSION} 128272445SassarEOF 128372445Sassar 128455682Smarkmexit 1 128572445Sassar 128672445Sassar# Local variables: 128772445Sassar# eval: (add-hook 'write-file-hooks 'time-stamp) 128872445Sassar# time-stamp-start: "version='" 128972445Sassar# time-stamp-format: "%:y-%02m-%02d" 129072445Sassar# time-stamp-end: "'" 129172445Sassar# End: 1292