xref: /freebsd/contrib/libpcap/config.guess (revision 8cf6c252e716c4bba3d2e36b37e8df1762a07fc8)
18cf6c252SPaul Traina#! /bin/sh
28cf6c252SPaul Traina# Attempt to guess a canonical system name.
38cf6c252SPaul Traina#   Copyright (C) 1992, 93, 94, 95, 1996 Free Software Foundation, Inc.
48cf6c252SPaul Traina#
58cf6c252SPaul Traina# This file is free software; you can redistribute it and/or modify it
68cf6c252SPaul Traina# under the terms of the GNU General Public License as published by
78cf6c252SPaul Traina# the Free Software Foundation; either version 2 of the License, or
88cf6c252SPaul Traina# (at your option) any later version.
98cf6c252SPaul Traina#
108cf6c252SPaul Traina# This program is distributed in the hope that it will be useful, but
118cf6c252SPaul Traina# WITHOUT ANY WARRANTY; without even the implied warranty of
128cf6c252SPaul Traina# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
138cf6c252SPaul Traina# General Public License for more details.
148cf6c252SPaul Traina#
158cf6c252SPaul Traina# You should have received a copy of the GNU General Public License
168cf6c252SPaul Traina# along with this program; if not, write to the Free Software
178cf6c252SPaul Traina# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
188cf6c252SPaul Traina#
198cf6c252SPaul Traina# As a special exception to the GNU General Public License, if you
208cf6c252SPaul Traina# distribute this file as part of a program that contains a
218cf6c252SPaul Traina# configuration script generated by Autoconf, you may include it under
228cf6c252SPaul Traina# the same distribution terms that you use for the rest of that program.
238cf6c252SPaul Traina
248cf6c252SPaul Traina# Written by Per Bothner <bothner@cygnus.com>.
258cf6c252SPaul Traina# The master version of this file is at the FSF in /home/gd/gnu/lib.
268cf6c252SPaul Traina#
278cf6c252SPaul Traina# This script attempts to guess a canonical system name similar to
288cf6c252SPaul Traina# config.sub.  If it succeeds, it prints the system name on stdout, and
298cf6c252SPaul Traina# exits with 0.  Otherwise, it exits with 1.
308cf6c252SPaul Traina#
318cf6c252SPaul Traina# The plan is that this can be called by configure scripts if you
328cf6c252SPaul Traina# don't specify an explicit system type (host/target name).
338cf6c252SPaul Traina#
348cf6c252SPaul Traina# Only a few systems have been added to this list; please add others
358cf6c252SPaul Traina# (but try to keep the structure clean).
368cf6c252SPaul Traina#
378cf6c252SPaul Traina
388cf6c252SPaul Traina# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
398cf6c252SPaul Traina# (ghazi@noc.rutgers.edu 8/24/94.)
408cf6c252SPaul Trainaif (test -f /.attbin/uname) >/dev/null 2>&1 ; then
418cf6c252SPaul Traina	PATH=$PATH:/.attbin ; export PATH
428cf6c252SPaul Trainafi
438cf6c252SPaul Traina
448cf6c252SPaul TrainaUNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
458cf6c252SPaul TrainaUNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
468cf6c252SPaul TrainaUNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
478cf6c252SPaul TrainaUNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
488cf6c252SPaul Traina
498cf6c252SPaul Trainatrap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15
508cf6c252SPaul Traina
518cf6c252SPaul Traina# Note: order is significant - the case branches are not exclusive.
528cf6c252SPaul Traina
538cf6c252SPaul Trainacase "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
548cf6c252SPaul Traina    alpha:OSF1:*:*)
558cf6c252SPaul Traina	# A Vn.n version is a released version.
568cf6c252SPaul Traina	# A Tn.n version is a released field test version.
578cf6c252SPaul Traina	# A Xn.n version is an unreleased experimental baselevel.
588cf6c252SPaul Traina	# 1.2 uses "1.2" for uname -r.
598cf6c252SPaul Traina	echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//'`
608cf6c252SPaul Traina	exit 0 ;;
618cf6c252SPaul Traina    21064:Windows_NT:50:3)
628cf6c252SPaul Traina	echo alpha-dec-winnt3.5
638cf6c252SPaul Traina	exit 0 ;;
648cf6c252SPaul Traina    Amiga*:UNIX_System_V:4.0:*)
658cf6c252SPaul Traina	echo m68k-cbm-sysv4
668cf6c252SPaul Traina	exit 0;;
678cf6c252SPaul Traina    amiga:NetBSD:*:*)
688cf6c252SPaul Traina      echo m68k-cbm-netbsd${UNAME_RELEASE}
698cf6c252SPaul Traina      exit 0 ;;
708cf6c252SPaul Traina    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
718cf6c252SPaul Traina	echo arm-acorn-riscix${UNAME_RELEASE}
728cf6c252SPaul Traina	exit 0;;
738cf6c252SPaul Traina    Pyramid*:OSx*:*:*)
748cf6c252SPaul Traina	if test "`(/bin/universe) 2>/dev/null`" = att ; then
758cf6c252SPaul Traina		echo pyramid-pyramid-sysv3
768cf6c252SPaul Traina	else
778cf6c252SPaul Traina		echo pyramid-pyramid-bsd
788cf6c252SPaul Traina	fi
798cf6c252SPaul Traina	exit 0 ;;
808cf6c252SPaul Traina    sun4*:SunOS:5.*:*)
818cf6c252SPaul Traina	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
828cf6c252SPaul Traina	exit 0 ;;
838cf6c252SPaul Traina    i86pc:SunOS:5.*:*)
848cf6c252SPaul Traina	echo i386-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
858cf6c252SPaul Traina	exit 0 ;;
868cf6c252SPaul Traina    sun4*:SunOS:6*:*)
878cf6c252SPaul Traina	# According to config.sub, this is the proper way to canonicalize
888cf6c252SPaul Traina	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
898cf6c252SPaul Traina	# it's likely to be more like Solaris than SunOS4.
908cf6c252SPaul Traina	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
918cf6c252SPaul Traina	exit 0 ;;
928cf6c252SPaul Traina    sun4*:SunOS:*:*)
938cf6c252SPaul Traina	case "`/usr/bin/arch -k`" in
948cf6c252SPaul Traina	    Series*|S4*)
958cf6c252SPaul Traina		UNAME_RELEASE=`uname -v`
968cf6c252SPaul Traina		;;
978cf6c252SPaul Traina	esac
988cf6c252SPaul Traina	# Japanese Language versions have a version number like `4.1.3-JL'.
998cf6c252SPaul Traina	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
1008cf6c252SPaul Traina	exit 0 ;;
1018cf6c252SPaul Traina    sun3*:SunOS:*:*)
1028cf6c252SPaul Traina	echo m68k-sun-sunos${UNAME_RELEASE}
1038cf6c252SPaul Traina	exit 0 ;;
1048cf6c252SPaul Traina    atari*:NetBSD:*:*)
1058cf6c252SPaul Traina	echo m68k-atari-netbsd${UNAME_RELEASE}
1068cf6c252SPaul Traina	exit 0 ;;
1078cf6c252SPaul Traina    sun3*:NetBSD:*:*)
1088cf6c252SPaul Traina	echo m68k-sun-netbsd${UNAME_RELEASE}
1098cf6c252SPaul Traina	exit 0 ;;
1108cf6c252SPaul Traina    mac68k:NetBSD:*:*)
1118cf6c252SPaul Traina	echo m68k-apple-netbsd${UNAME_RELEASE}
1128cf6c252SPaul Traina	exit 0 ;;
1138cf6c252SPaul Traina    RISC*:ULTRIX:*:*)
1148cf6c252SPaul Traina	echo mips-dec-ultrix${UNAME_RELEASE}
1158cf6c252SPaul Traina	exit 0 ;;
1168cf6c252SPaul Traina    VAX*:ULTRIX*:*:*)
1178cf6c252SPaul Traina	echo vax-dec-ultrix${UNAME_RELEASE}
1188cf6c252SPaul Traina	exit 0 ;;
1198cf6c252SPaul Traina    mips:*:4*:UMIPS)
1208cf6c252SPaul Traina	echo mips-mips-riscos4sysv
1218cf6c252SPaul Traina	exit 0 ;;
1228cf6c252SPaul Traina    mips:*:5*:RISCos)
1238cf6c252SPaul Traina	echo mips-mips-riscos${UNAME_RELEASE}
1248cf6c252SPaul Traina	exit 0 ;;
1258cf6c252SPaul Traina    Night_Hawk:Power_UNIX:*:*)
1268cf6c252SPaul Traina	echo powerpc-harris-powerunix
1278cf6c252SPaul Traina	exit 0 ;;
1288cf6c252SPaul Traina    m88k:CX/UX:7*:*)
1298cf6c252SPaul Traina	echo m88k-harris-cxux7
1308cf6c252SPaul Traina	exit 0 ;;
1318cf6c252SPaul Traina    m88k:*:4*:R4*)
1328cf6c252SPaul Traina	echo m88k-motorola-sysv4
1338cf6c252SPaul Traina	exit 0 ;;
1348cf6c252SPaul Traina    m88k:*:3*:R3*)
1358cf6c252SPaul Traina	echo m88k-motorola-sysv3
1368cf6c252SPaul Traina	exit 0 ;;
1378cf6c252SPaul Traina    AViiON:dgux:*:*)
1388cf6c252SPaul Traina        # DG/UX returns AViiON for all architectures
1398cf6c252SPaul Traina        UNAME_PROCESSOR=`/usr/bin/uname -p`
1408cf6c252SPaul Traina        if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88100 ] ; then
1418cf6c252SPaul Traina	if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
1428cf6c252SPaul Traina	     -o ${TARGET_BINARY_INTERFACE}x = x ] ; then
1438cf6c252SPaul Traina		echo m88k-dg-dgux${UNAME_RELEASE}
1448cf6c252SPaul Traina	else
1458cf6c252SPaul Traina		echo m88k-dg-dguxbcs${UNAME_RELEASE}
1468cf6c252SPaul Traina	fi
1478cf6c252SPaul Traina        else echo i586-dg-dgux${UNAME_RELEASE}
1488cf6c252SPaul Traina        fi
1498cf6c252SPaul Traina 	exit 0 ;;
1508cf6c252SPaul Traina    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
1518cf6c252SPaul Traina	echo m88k-dolphin-sysv3
1528cf6c252SPaul Traina	exit 0 ;;
1538cf6c252SPaul Traina    M88*:*:R3*:*)
1548cf6c252SPaul Traina	# Delta 88k system running SVR3
1558cf6c252SPaul Traina	echo m88k-motorola-sysv3
1568cf6c252SPaul Traina	exit 0 ;;
1578cf6c252SPaul Traina    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
1588cf6c252SPaul Traina	echo m88k-tektronix-sysv3
1598cf6c252SPaul Traina	exit 0 ;;
1608cf6c252SPaul Traina    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
1618cf6c252SPaul Traina	echo m68k-tektronix-bsd
1628cf6c252SPaul Traina	exit 0 ;;
1638cf6c252SPaul Traina    *:IRIX*:*:*)
1648cf6c252SPaul Traina	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
1658cf6c252SPaul Traina	exit 0 ;;
1668cf6c252SPaul Traina   ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
1678cf6c252SPaul Traina	echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
1688cf6c252SPaul Traina	exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
1698cf6c252SPaul Traina    i[34]86:AIX:*:*)
1708cf6c252SPaul Traina	echo i386-ibm-aix
1718cf6c252SPaul Traina	exit 0 ;;
1728cf6c252SPaul Traina    *:AIX:2:3)
1738cf6c252SPaul Traina	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
1748cf6c252SPaul Traina		sed 's/^		//' << EOF >dummy.c
1758cf6c252SPaul Traina		#include <sys/systemcfg.h>
1768cf6c252SPaul Traina
1778cf6c252SPaul Traina		main()
1788cf6c252SPaul Traina			{
1798cf6c252SPaul Traina			if (!__power_pc())
1808cf6c252SPaul Traina				exit(1);
1818cf6c252SPaul Traina			puts("powerpc-ibm-aix3.2.5");
1828cf6c252SPaul Traina			exit(0);
1838cf6c252SPaul Traina			}
1848cf6c252SPaul TrainaEOF
1858cf6c252SPaul Traina		${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
1868cf6c252SPaul Traina		rm -f dummy.c dummy
1878cf6c252SPaul Traina		echo rs6000-ibm-aix3.2.5
1888cf6c252SPaul Traina	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
1898cf6c252SPaul Traina		echo rs6000-ibm-aix3.2.4
1908cf6c252SPaul Traina	else
1918cf6c252SPaul Traina		echo rs6000-ibm-aix3.2
1928cf6c252SPaul Traina	fi
1938cf6c252SPaul Traina	exit 0 ;;
1948cf6c252SPaul Traina    *:AIX:*:4)
1958cf6c252SPaul Traina	if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then
1968cf6c252SPaul Traina		IBM_ARCH=rs6000
1978cf6c252SPaul Traina	else
1988cf6c252SPaul Traina		IBM_ARCH=powerpc
1998cf6c252SPaul Traina	fi
2008cf6c252SPaul Traina	if [ -x /usr/bin/oslevel ] ; then
2018cf6c252SPaul Traina		IBM_REV=`/usr/bin/oslevel`
2028cf6c252SPaul Traina	else
2038cf6c252SPaul Traina		IBM_REV=4.${UNAME_RELEASE}
2048cf6c252SPaul Traina	fi
2058cf6c252SPaul Traina	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
2068cf6c252SPaul Traina	exit 0 ;;
2078cf6c252SPaul Traina    *:AIX:*:*)
2088cf6c252SPaul Traina	echo rs6000-ibm-aix
2098cf6c252SPaul Traina	exit 0 ;;
2108cf6c252SPaul Traina    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
2118cf6c252SPaul Traina	echo romp-ibm-bsd4.4
2128cf6c252SPaul Traina	exit 0 ;;
2138cf6c252SPaul Traina    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC NetBSD and
2148cf6c252SPaul Traina	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
2158cf6c252SPaul Traina	exit 0 ;;                           # report: romp-ibm BSD 4.3
2168cf6c252SPaul Traina    *:BOSX:*:*)
2178cf6c252SPaul Traina	echo rs6000-bull-bosx
2188cf6c252SPaul Traina	exit 0 ;;
2198cf6c252SPaul Traina    DPX/2?00:B.O.S.:*:*)
2208cf6c252SPaul Traina	echo m68k-bull-sysv3
2218cf6c252SPaul Traina	exit 0 ;;
2228cf6c252SPaul Traina    9000/[34]??:4.3bsd:1.*:*)
2238cf6c252SPaul Traina	echo m68k-hp-bsd
2248cf6c252SPaul Traina	exit 0 ;;
2258cf6c252SPaul Traina    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
2268cf6c252SPaul Traina	echo m68k-hp-bsd4.4
2278cf6c252SPaul Traina	exit 0 ;;
2288cf6c252SPaul Traina    9000/[3478]??:HP-UX:*:*)
2298cf6c252SPaul Traina	case "${UNAME_MACHINE}" in
2308cf6c252SPaul Traina	    9000/31? )            HP_ARCH=m68000 ;;
2318cf6c252SPaul Traina	    9000/[34]?? )         HP_ARCH=m68k ;;
2328cf6c252SPaul Traina	    9000/7?? | 9000/8?[679] ) HP_ARCH=hppa1.1 ;;
2338cf6c252SPaul Traina	    9000/8?? )            HP_ARCH=hppa1.0 ;;
2348cf6c252SPaul Traina	esac
2358cf6c252SPaul Traina	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
2368cf6c252SPaul Traina	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
2378cf6c252SPaul Traina	exit 0 ;;
2388cf6c252SPaul Traina    3050*:HI-UX:*:*)
2398cf6c252SPaul Traina	sed 's/^	//' << EOF >dummy.c
2408cf6c252SPaul Traina	#include <unistd.h>
2418cf6c252SPaul Traina	int
2428cf6c252SPaul Traina	main ()
2438cf6c252SPaul Traina	{
2448cf6c252SPaul Traina	  long cpu = sysconf (_SC_CPU_VERSION);
2458cf6c252SPaul Traina	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
2468cf6c252SPaul Traina	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
2478cf6c252SPaul Traina	     results, however.  */
2488cf6c252SPaul Traina	  if (CPU_IS_PA_RISC (cpu))
2498cf6c252SPaul Traina	    {
2508cf6c252SPaul Traina	      switch (cpu)
2518cf6c252SPaul Traina		{
2528cf6c252SPaul Traina		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
2538cf6c252SPaul Traina		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
2548cf6c252SPaul Traina		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
2558cf6c252SPaul Traina		  default: puts ("hppa-hitachi-hiuxwe2"); break;
2568cf6c252SPaul Traina		}
2578cf6c252SPaul Traina	    }
2588cf6c252SPaul Traina	  else if (CPU_IS_HP_MC68K (cpu))
2598cf6c252SPaul Traina	    puts ("m68k-hitachi-hiuxwe2");
2608cf6c252SPaul Traina	  else puts ("unknown-hitachi-hiuxwe2");
2618cf6c252SPaul Traina	  exit (0);
2628cf6c252SPaul Traina	}
2638cf6c252SPaul TrainaEOF
2648cf6c252SPaul Traina	${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
2658cf6c252SPaul Traina	rm -f dummy.c dummy
2668cf6c252SPaul Traina	echo unknown-hitachi-hiuxwe2
2678cf6c252SPaul Traina	exit 0 ;;
2688cf6c252SPaul Traina    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
2698cf6c252SPaul Traina	echo hppa1.1-hp-bsd
2708cf6c252SPaul Traina	exit 0 ;;
2718cf6c252SPaul Traina    9000/8??:4.3bsd:*:*)
2728cf6c252SPaul Traina	echo hppa1.0-hp-bsd
2738cf6c252SPaul Traina	exit 0 ;;
2748cf6c252SPaul Traina    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
2758cf6c252SPaul Traina	echo hppa1.1-hp-osf
2768cf6c252SPaul Traina	exit 0 ;;
2778cf6c252SPaul Traina    hp8??:OSF1:*:*)
2788cf6c252SPaul Traina	echo hppa1.0-hp-osf
2798cf6c252SPaul Traina	exit 0 ;;
2808cf6c252SPaul Traina    parisc*:Lites*:*:*)
2818cf6c252SPaul Traina	echo hppa1.1-hp-lites
2828cf6c252SPaul Traina	exit 0 ;;
2838cf6c252SPaul Traina    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
2848cf6c252SPaul Traina	echo c1-convex-bsd
2858cf6c252SPaul Traina        exit 0 ;;
2868cf6c252SPaul Traina    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
2878cf6c252SPaul Traina	if getsysinfo -f scalar_acc
2888cf6c252SPaul Traina	then echo c32-convex-bsd
2898cf6c252SPaul Traina	else echo c2-convex-bsd
2908cf6c252SPaul Traina	fi
2918cf6c252SPaul Traina        exit 0 ;;
2928cf6c252SPaul Traina    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
2938cf6c252SPaul Traina	echo c34-convex-bsd
2948cf6c252SPaul Traina        exit 0 ;;
2958cf6c252SPaul Traina    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
2968cf6c252SPaul Traina	echo c38-convex-bsd
2978cf6c252SPaul Traina        exit 0 ;;
2988cf6c252SPaul Traina    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
2998cf6c252SPaul Traina	echo c4-convex-bsd
3008cf6c252SPaul Traina        exit 0 ;;
3018cf6c252SPaul Traina    CRAY*X-MP:*:*:*)
3028cf6c252SPaul Traina	echo xmp-cray-unicos
3038cf6c252SPaul Traina        exit 0 ;;
3048cf6c252SPaul Traina    CRAY*Y-MP:*:*:*)
3058cf6c252SPaul Traina	echo ymp-cray-unicos${UNAME_RELEASE}
3068cf6c252SPaul Traina	exit 0 ;;
3078cf6c252SPaul Traina    CRAY*C90:*:*:*)
3088cf6c252SPaul Traina	echo c90-cray-unicos${UNAME_RELEASE}
3098cf6c252SPaul Traina	exit 0 ;;
3108cf6c252SPaul Traina    CRAY-2:*:*:*)
3118cf6c252SPaul Traina	echo cray2-cray-unicos
3128cf6c252SPaul Traina        exit 0 ;;
3138cf6c252SPaul Traina    hp3[0-9][05]:NetBSD:*:*)
3148cf6c252SPaul Traina	echo m68k-hp-netbsd${UNAME_RELEASE}
3158cf6c252SPaul Traina	exit 0 ;;
3168cf6c252SPaul Traina    i[34]86:BSD/386:*:* | *:BSD/OS:*:*)
3178cf6c252SPaul Traina	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
3188cf6c252SPaul Traina	exit 0 ;;
3198cf6c252SPaul Traina    *:FreeBSD:*:*)
3208cf6c252SPaul Traina	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
3218cf6c252SPaul Traina	exit 0 ;;
3228cf6c252SPaul Traina    *:NetBSD:*:*)
3238cf6c252SPaul Traina	echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
3248cf6c252SPaul Traina	exit 0 ;;
3258cf6c252SPaul Traina    i*:CYGWIN*:*)
3268cf6c252SPaul Traina	echo i386-unknown-cygwin32
3278cf6c252SPaul Traina	exit 0 ;;
3288cf6c252SPaul Traina    p*:CYGWIN*:*)
3298cf6c252SPaul Traina	echo powerpcle-unknown-cygwin32
3308cf6c252SPaul Traina	exit 0 ;;
3318cf6c252SPaul Traina    prep*:SunOS:5.*:*)
3328cf6c252SPaul Traina	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
3338cf6c252SPaul Traina	exit 0 ;;
3348cf6c252SPaul Traina    *:GNU:*:*)
3358cf6c252SPaul Traina	echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
3368cf6c252SPaul Traina	exit 0 ;;
3378cf6c252SPaul Traina    *:Linux:*:*)
3388cf6c252SPaul Traina	# The BFD linker knows what the default object file format is, so
3398cf6c252SPaul Traina	# first see if it will tell us.
3408cf6c252SPaul Traina	ld_help_string=`ld --help 2>&1`
3418cf6c252SPaul Traina	if echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf_i[345]86"; then
3428cf6c252SPaul Traina	  echo "${UNAME_MACHINE}-unknown-linux" ; exit 0
3438cf6c252SPaul Traina	elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i[345]86linux"; then
3448cf6c252SPaul Traina	  echo "${UNAME_MACHINE}-unknown-linuxaout" ; exit 0
3458cf6c252SPaul Traina	elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i[345]86coff"; then
3468cf6c252SPaul Traina	  echo "${UNAME_MACHINE}-unknown-linuxcoff" ; exit 0
3478cf6c252SPaul Traina	elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68kelf"; then
3488cf6c252SPaul Traina	  echo "${UNAME_MACHINE}-unknown-linux" ; exit 0
3498cf6c252SPaul Traina	elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68klinux"; then
3508cf6c252SPaul Traina	  echo "${UNAME_MACHINE}-unknown-linuxaout" ; exit 0
3518cf6c252SPaul Traina	elif test "${UNAME_MACHINE}" = "alpha" ; then
3528cf6c252SPaul Traina	  echo alpha-unknown-linux ; exit 0
3538cf6c252SPaul Traina	else
3548cf6c252SPaul Traina	  # Either a pre-BFD a.out linker (linuxoldld) or one that does not give us
3558cf6c252SPaul Traina	  # useful --help.  Gcc wants to distinguish between linuxoldld and linuxaout.
3568cf6c252SPaul Traina	  test ! -d /usr/lib/ldscripts/. \
3578cf6c252SPaul Traina	    && echo "${UNAME_MACHINE}-unknown-linuxoldld" && exit 0
3588cf6c252SPaul Traina	  # Determine whether the default compiler is a.out or elf
3598cf6c252SPaul Traina	  cat >dummy.c <<EOF
3608cf6c252SPaul Trainamain(argc, argv)
3618cf6c252SPaul Trainaint argc;
3628cf6c252SPaul Trainachar *argv[];
3638cf6c252SPaul Traina{
3648cf6c252SPaul Traina#ifdef __ELF__
3658cf6c252SPaul Traina  printf ("%s-unknown-linux\n", argv[1]);
3668cf6c252SPaul Traina#else
3678cf6c252SPaul Traina  printf ("%s-unknown-linuxaout\n", argv[1]);
3688cf6c252SPaul Traina#endif
3698cf6c252SPaul Traina  return 0;
3708cf6c252SPaul Traina}
3718cf6c252SPaul TrainaEOF
3728cf6c252SPaul Traina	  ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
3738cf6c252SPaul Traina	  rm -f dummy.c dummy
3748cf6c252SPaul Traina	fi ;;
3758cf6c252SPaul Traina# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.  earlier versions
3768cf6c252SPaul Traina# are messed up and put the nodename in both sysname and nodename.
3778cf6c252SPaul Traina    i[34]86:DYNIX/ptx:4*:*)
3788cf6c252SPaul Traina	echo i386-sequent-sysv4
3798cf6c252SPaul Traina	exit 0 ;;
3808cf6c252SPaul Traina    i[34]86:*:4.*:* | i[34]86:SYSTEM_V:4.*:*)
3818cf6c252SPaul Traina	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
3828cf6c252SPaul Traina		echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
3838cf6c252SPaul Traina	else
3848cf6c252SPaul Traina		echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}
3858cf6c252SPaul Traina	fi
3868cf6c252SPaul Traina	exit 0 ;;
3878cf6c252SPaul Traina    i[34]86:*:3.2:*)
3888cf6c252SPaul Traina	if test -f /usr/options/cb.name; then
3898cf6c252SPaul Traina		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
3908cf6c252SPaul Traina		echo ${UNAME_MACHINE}-unknown-isc$UNAME_REL
3918cf6c252SPaul Traina	elif /bin/uname -X 2>/dev/null >/dev/null ; then
3928cf6c252SPaul Traina		UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
3938cf6c252SPaul Traina		(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
3948cf6c252SPaul Traina		(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
3958cf6c252SPaul Traina			&& UNAME_MACHINE=i586
3968cf6c252SPaul Traina		echo ${UNAME_MACHINE}-unknown-sco$UNAME_REL
3978cf6c252SPaul Traina	else
3988cf6c252SPaul Traina		echo ${UNAME_MACHINE}-unknown-sysv32
3998cf6c252SPaul Traina	fi
4008cf6c252SPaul Traina	exit 0 ;;
4018cf6c252SPaul Traina    Intel:Mach:3*:*)
4028cf6c252SPaul Traina	echo i386-unknown-mach3
4038cf6c252SPaul Traina	exit 0 ;;
4048cf6c252SPaul Traina    paragon:*:*:*)
4058cf6c252SPaul Traina	echo i860-intel-osf1
4068cf6c252SPaul Traina	exit 0 ;;
4078cf6c252SPaul Traina    i860:*:4.*:*) # i860-SVR4
4088cf6c252SPaul Traina	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
4098cf6c252SPaul Traina	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
4108cf6c252SPaul Traina	else # Add other i860-SVR4 vendors below as they are discovered.
4118cf6c252SPaul Traina	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
4128cf6c252SPaul Traina	fi
4138cf6c252SPaul Traina	exit 0 ;;
4148cf6c252SPaul Traina    mini*:CTIX:SYS*5:*)
4158cf6c252SPaul Traina	# "miniframe"
4168cf6c252SPaul Traina	echo m68010-convergent-sysv
4178cf6c252SPaul Traina	exit 0 ;;
4188cf6c252SPaul Traina    M680[234]0:*:R3V[567]*:*)
4198cf6c252SPaul Traina	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
4208cf6c252SPaul Traina    3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0)
4218cf6c252SPaul Traina        uname -p 2>/dev/null | grep 86 >/dev/null \
4228cf6c252SPaul Traina          && echo i486-ncr-sysv4.3 && exit 0 ;;
4238cf6c252SPaul Traina    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
4248cf6c252SPaul Traina        uname -p 2>/dev/null | grep 86 >/dev/null \
4258cf6c252SPaul Traina          && echo i486-ncr-sysv4 && exit 0 ;;
4268cf6c252SPaul Traina    m680[234]0:LynxOS:2.[23]*:*)
4278cf6c252SPaul Traina	echo m68k-lynx-lynxos${UNAME_RELEASE}
4288cf6c252SPaul Traina	exit 0 ;;
4298cf6c252SPaul Traina    mc68030:UNIX_System_V:4.*:*)
4308cf6c252SPaul Traina	echo m68k-atari-sysv4
4318cf6c252SPaul Traina	exit 0 ;;
4328cf6c252SPaul Traina    i[34]86:LynxOS:2.[23]*:*)
4338cf6c252SPaul Traina	echo i386-lynx-lynxos${UNAME_RELEASE}
4348cf6c252SPaul Traina	exit 0 ;;
4358cf6c252SPaul Traina    TSUNAMI:LynxOS:2.[23]*:*)
4368cf6c252SPaul Traina	echo sparc-lynx-lynxos${UNAME_RELEASE}
4378cf6c252SPaul Traina	exit 0 ;;
4388cf6c252SPaul Traina    rs6000:LynxOS:2.[23]*:*)
4398cf6c252SPaul Traina	echo rs6000-lynx-lynxos${UNAME_RELEASE}
4408cf6c252SPaul Traina	exit 0 ;;
4418cf6c252SPaul Traina    RM*:SINIX-*:*:*)
4428cf6c252SPaul Traina	echo mips-sni-sysv4
4438cf6c252SPaul Traina	exit 0 ;;
4448cf6c252SPaul Traina    *:SINIX-*:*:*)
4458cf6c252SPaul Traina	if uname -p 2>/dev/null >/dev/null ; then
4468cf6c252SPaul Traina		UNAME_MACHINE=`(uname -p) 2>/dev/null`
4478cf6c252SPaul Traina		echo ${UNAME_MACHINE}-sni-sysv4
4488cf6c252SPaul Traina	else
4498cf6c252SPaul Traina		echo ns32k-sni-sysv
4508cf6c252SPaul Traina	fi
4518cf6c252SPaul Traina	exit 0 ;;
4528cf6c252SPaul Traina    mc68*:A/UX:*:*)
4538cf6c252SPaul Traina	echo m68k-apple-aux${UNAME_RELEASE}
4548cf6c252SPaul Traina	exit 0 ;;
4558cf6c252SPaul Traina    R3000:*System_V*:*:*)
4568cf6c252SPaul Traina	if [ -d /usr/nec ]; then
4578cf6c252SPaul Traina	        echo mips-nec-sysv${UNAME_RELEASE}
4588cf6c252SPaul Traina	else
4598cf6c252SPaul Traina	        echo mips-unknown-sysv${UNAME_RELEASE}
4608cf6c252SPaul Traina	fi
4618cf6c252SPaul Traina        exit 0 ;;
4628cf6c252SPaul Trainaesac
4638cf6c252SPaul Traina
4648cf6c252SPaul Traina#echo '(No uname command or uname output not recognized.)' 1>&2
4658cf6c252SPaul Traina#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
4668cf6c252SPaul Traina
4678cf6c252SPaul Trainacat >dummy.c <<EOF
4688cf6c252SPaul Traina#ifdef _SEQUENT_
4698cf6c252SPaul Traina# include <sys/types.h>
4708cf6c252SPaul Traina# include <sys/utsname.h>
4718cf6c252SPaul Traina#endif
4728cf6c252SPaul Trainamain ()
4738cf6c252SPaul Traina{
4748cf6c252SPaul Traina#if defined (sony)
4758cf6c252SPaul Traina#if defined (MIPSEB)
4768cf6c252SPaul Traina  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
4778cf6c252SPaul Traina     I don't know....  */
4788cf6c252SPaul Traina  printf ("mips-sony-bsd\n"); exit (0);
4798cf6c252SPaul Traina#else
4808cf6c252SPaul Traina#include <sys/param.h>
4818cf6c252SPaul Traina  printf ("m68k-sony-newsos%s\n",
4828cf6c252SPaul Traina#ifdef NEWSOS4
4838cf6c252SPaul Traina          "4"
4848cf6c252SPaul Traina#else
4858cf6c252SPaul Traina	  ""
4868cf6c252SPaul Traina#endif
4878cf6c252SPaul Traina         ); exit (0);
4888cf6c252SPaul Traina#endif
4898cf6c252SPaul Traina#endif
4908cf6c252SPaul Traina
4918cf6c252SPaul Traina#if defined (__arm) && defined (__acorn) && defined (__unix)
4928cf6c252SPaul Traina  printf ("arm-acorn-riscix"); exit (0);
4938cf6c252SPaul Traina#endif
4948cf6c252SPaul Traina
4958cf6c252SPaul Traina#if defined (hp300) && !defined (hpux)
4968cf6c252SPaul Traina  printf ("m68k-hp-bsd\n"); exit (0);
4978cf6c252SPaul Traina#endif
4988cf6c252SPaul Traina
4998cf6c252SPaul Traina#if defined (NeXT)
5008cf6c252SPaul Traina#if !defined (__ARCHITECTURE__)
5018cf6c252SPaul Traina#define __ARCHITECTURE__ "m68k"
5028cf6c252SPaul Traina#endif
5038cf6c252SPaul Traina  int version;
5048cf6c252SPaul Traina  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
5058cf6c252SPaul Traina  printf ("%s-next-nextstep%s\n", __ARCHITECTURE__,  version==2 ? "2" : "3");
5068cf6c252SPaul Traina  exit (0);
5078cf6c252SPaul Traina#endif
5088cf6c252SPaul Traina
5098cf6c252SPaul Traina#if defined (MULTIMAX) || defined (n16)
5108cf6c252SPaul Traina#if defined (UMAXV)
5118cf6c252SPaul Traina  printf ("ns32k-encore-sysv\n"); exit (0);
5128cf6c252SPaul Traina#else
5138cf6c252SPaul Traina#if defined (CMU)
5148cf6c252SPaul Traina  printf ("ns32k-encore-mach\n"); exit (0);
5158cf6c252SPaul Traina#else
5168cf6c252SPaul Traina  printf ("ns32k-encore-bsd\n"); exit (0);
5178cf6c252SPaul Traina#endif
5188cf6c252SPaul Traina#endif
5198cf6c252SPaul Traina#endif
5208cf6c252SPaul Traina
5218cf6c252SPaul Traina#if defined (__386BSD__)
5228cf6c252SPaul Traina  printf ("i386-unknown-bsd\n"); exit (0);
5238cf6c252SPaul Traina#endif
5248cf6c252SPaul Traina
5258cf6c252SPaul Traina#if defined (sequent)
5268cf6c252SPaul Traina#if defined (i386)
5278cf6c252SPaul Traina  printf ("i386-sequent-dynix\n"); exit (0);
5288cf6c252SPaul Traina#endif
5298cf6c252SPaul Traina#if defined (ns32000)
5308cf6c252SPaul Traina  printf ("ns32k-sequent-dynix\n"); exit (0);
5318cf6c252SPaul Traina#endif
5328cf6c252SPaul Traina#endif
5338cf6c252SPaul Traina
5348cf6c252SPaul Traina#if defined (_SEQUENT_)
5358cf6c252SPaul Traina    struct utsname un;
5368cf6c252SPaul Traina
5378cf6c252SPaul Traina    uname(&un);
5388cf6c252SPaul Traina
5398cf6c252SPaul Traina    if (strncmp(un.version, "V2", 2) == 0) {
5408cf6c252SPaul Traina	printf ("i386-sequent-ptx2\n"); exit (0);
5418cf6c252SPaul Traina    }
5428cf6c252SPaul Traina    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
5438cf6c252SPaul Traina	printf ("i386-sequent-ptx1\n"); exit (0);
5448cf6c252SPaul Traina    }
5458cf6c252SPaul Traina    printf ("i386-sequent-ptx\n"); exit (0);
5468cf6c252SPaul Traina
5478cf6c252SPaul Traina#endif
5488cf6c252SPaul Traina
5498cf6c252SPaul Traina#if defined (vax)
5508cf6c252SPaul Traina#if !defined (ultrix)
5518cf6c252SPaul Traina  printf ("vax-dec-bsd\n"); exit (0);
5528cf6c252SPaul Traina#else
5538cf6c252SPaul Traina  printf ("vax-dec-ultrix\n"); exit (0);
5548cf6c252SPaul Traina#endif
5558cf6c252SPaul Traina#endif
5568cf6c252SPaul Traina
5578cf6c252SPaul Traina#if defined (alliant) && defined (i860)
5588cf6c252SPaul Traina  printf ("i860-alliant-bsd\n"); exit (0);
5598cf6c252SPaul Traina#endif
5608cf6c252SPaul Traina
5618cf6c252SPaul Traina  exit (1);
5628cf6c252SPaul Traina}
5638cf6c252SPaul TrainaEOF
5648cf6c252SPaul Traina
5658cf6c252SPaul Traina${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0
5668cf6c252SPaul Trainarm -f dummy.c dummy
5678cf6c252SPaul Traina
5688cf6c252SPaul Traina# Apollos put the system type in the environment.
5698cf6c252SPaul Traina
5708cf6c252SPaul Trainatest -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
5718cf6c252SPaul Traina
5728cf6c252SPaul Traina# Convex versions that predate uname can use getsysinfo(1)
5738cf6c252SPaul Traina
5748cf6c252SPaul Trainaif [ -x /usr/convex/getsysinfo ]
5758cf6c252SPaul Trainathen
5768cf6c252SPaul Traina    case `getsysinfo -f cpu_type` in
5778cf6c252SPaul Traina    c1*)
5788cf6c252SPaul Traina	echo c1-convex-bsd
5798cf6c252SPaul Traina	exit 0 ;;
5808cf6c252SPaul Traina    c2*)
5818cf6c252SPaul Traina	if getsysinfo -f scalar_acc
5828cf6c252SPaul Traina	then echo c32-convex-bsd
5838cf6c252SPaul Traina	else echo c2-convex-bsd
5848cf6c252SPaul Traina	fi
5858cf6c252SPaul Traina	exit 0 ;;
5868cf6c252SPaul Traina    c34*)
5878cf6c252SPaul Traina	echo c34-convex-bsd
5888cf6c252SPaul Traina	exit 0 ;;
5898cf6c252SPaul Traina    c38*)
5908cf6c252SPaul Traina	echo c38-convex-bsd
5918cf6c252SPaul Traina	exit 0 ;;
5928cf6c252SPaul Traina    c4*)
5938cf6c252SPaul Traina	echo c4-convex-bsd
5948cf6c252SPaul Traina	exit 0 ;;
5958cf6c252SPaul Traina    esac
5968cf6c252SPaul Trainafi
5978cf6c252SPaul Traina
5988cf6c252SPaul Traina#echo '(Unable to guess system type)' 1>&2
5998cf6c252SPaul Traina
6008cf6c252SPaul Trainaexit 1
601