#!/bin/sh # This script attempts to guess a canonical system name. # Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit system type (host/target name). # # Only a few systems have been added to this list; please add others # (but try to keep the structure clean). # UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in alpha:OSF1:1.*:*) # 1.2 uses "1.2" for uname -r. echo alpha-dec-osf${UNAME_RELEASE} exit 0 ;; # lemacs change from Dirk Grunwald alpha:OSF1:V[123].*:*) # 1.3 uses "V1.3" for uname -r. echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^V//'` exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; sun4*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; i86pc*:SunOS:5.*:*) echo x86-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:*:*) echo sparc-sun-sunos${UNAME_RELEASE} exit 0 ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit 0 ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit 0 ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit 0 ;; mips:*:5*:RISCos) echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit 0 ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit 0 ;; AViiON:dgux:*:*) echo m88k-dg-dgux${UNAME_RELEASE} exit 0 ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit 0 ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit 0 ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit 0 ;; *:IRIX*:*:*) echo mips-sgi-irix${UNAME_RELEASE} exit 0 ;; i[3456]86:AIX:*:*) echo i386-ibm-aix exit 0 ;; *:AIX:2:3) test -x /usr/bin/oslevel && test `/usr/bin/oslevel` = '=3240' \ && echo rs6000-ibm-aix3.2.4 && exit 0 test -x /usr/bin/oslevel && test `/usr/bin/oslevel` = '=3250' \ && echo rs6000-ibm-aix3.2.5 && exit 0 test -x /usr/bin/oslevel && test `/usr/bin/oslevel` = '<>3250' \ && echo rs6000-ibm-aix3.2.5 && exit 0 echo rs6000-ibm-aix3.2 exit 0 ;; *:AIX:*:4) echo rs6000-ibm-aix4 exit 0 ;; *:AIX:*:*) echo rs6000-ibm-aix exit 0 ;; *:BOSX:*:*) echo rs6000-bull-bosx exit 0 ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit 0 ;; 9000/31?:HP-UX:*:*) echo m68000-hp-hpux exit 0 ;; 9000/[34]??:HP-UX:*:*) echo m68k-hp-hpux exit 0 ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit 0 ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit 0 ;; 9000/7??:HP-UX:*:* | 9000/8?7:HP-UX:*:* ) echo hppa1.1-hp-hpux exit 0 ;; 9000/8??:HP-UX:*:*) echo hppa1.0-hp-hpux exit 0 ;; 3050*:HI-UX:*:*) sed 's/^ //' << EOF >dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 rm -f dummy.c dummy echo unknown-hitachi-hiuxwe2 exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?7:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit 0 ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit 0 ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1:*) echo c1-convex-bsd exit 0 ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2:*) echo c2-convex-bsd exit 0 ;; CRAY*X-MP:UNICOS:*:*) echo xmp-cray-unicos exit 0 ;; CRAY*Y-MP:UNICOS:*:*) echo ymp-cray-unicos exit 0 ;; CRAY-2:UNICOS:*:*) echo cray2-cray-unicos exit 0 ;; hp3[0-9][05]:NetBSD:*:*) echo m68k-hp-netbsd${UNAME_RELEASE} exit 0 ;; i[3456]86:FreeBSD:*:*) echo ${UNAME_MACHINE}-unknown-freebsd exit 0 ;; i[3456]86:NetBSD:*:*) echo ${UNAME_MACHINE}-unknown-netbsd${UNAME_RELEASE} exit 0 ;; *:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux exit 0 ;; i[3456]86:UnixWare:*:*) echo ${UNAME_MACHINE}-sco-unixware${UNAME_VERSION} exit 0 ;; i[3456]86:UNIX_SV:4.*:* | i[3456]86:SYSTEM_V:4.*:*) if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then UNAME_REL=`(/bin/uname -v)` echo ${UNAME_MACHINE}-sco-unixware${UNAME_REL} else echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE} fi exit 0 ;; i[3456]86:*:3.2:*) if /bin/uname -X 2>/dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= .*v//')` (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 echo ${UNAME_MACHINE}-sco-opensv${UNAME_REL} else echo ${UNAME_MACHINE}-unknown-sysv32 fi exit 0 ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit 0 ;; M680[234]0:*:R3V[567]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; 3[3456]??*:*:4.0:*) uname -p 2>/dev/null | egrep 'Pentium|86' >/dev/null && echo x86-ncr-sysv4 && exit 0 ;; m680[234]0:LynxOS:2.2*:*) echo m68k-lynx-lynxos${UNAME_RELEASE} exit 0 ;; i[3456]86:LynxOS:2.2*:*) echo x86-lynx-lynxos${UNAME_RELEASE} exit 0 ;; TSUNAMI:LynxOS:2.2*:*) echo sparc-lynx-lynxos${UNAME_RELEASE} exit 0 ;; RM*:SINIX*:5.4[23]:* | RM*:Reliant*:5.4[23]:*) echo mips-sni-reliantunix exit 0 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 cat >dummy.c </dev/null`; if (version==2) { printf("%s-next-ns2\n", __ARCHITECTURE__); exit(0); } else { printf("%s-next-ns3\n", __ARCHITECTURE__); exit(0); } #endif #if defined (MACH) #if defined (vax) printf("vax-dec-mach\n"); exit(0); #else #if defined (sun3) printf("mc68000-sun-mach\n"); exit(0); #else #if defined (sparc) printf("sparc-sun-mach\n"); exit(0); #else #if defined (mips) printf("mips-dec-mach\n"); exit(0); #else #if defined (ibmrt) printf("romp-ibm-mach\n"); exit(0); #else #if defined (i386) printf("i386-unknown-mach\n"); exit(0); #endif #endif #endif #endif #endif #endif #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf("ns32k-encore-sysv\n"); exit(0); #else #if defined (CMU) printf("ns32k-encore-mach\n"); exit(0); #else printf("ns32k-encore-bsd\n"); exit(0); #endif #endif #endif #if defined(__386BSD__) || (defined(__bsdi__) && defined(__i386__)) printf("i386-bsdi-bsd\n"); exit(0); #endif #if defined(sequent) #if defined(i386) printf("i386-sequent-dynix\n"); exit(0); #endif #if defined (ns32000) printf("ns32k-sequent-dynix\n"); exit(0); #endif #endif #if defined(_SEQUENT_) printf("i386-sequent-ptx\n"); exit(0); #endif #if defined(vax) #if !defined(ultrix) printf("vax-dec-bsd\n"); exit(0); #else printf("vax-dec-ultrix\n"); exit(0); #endif #endif exit (1); } EOF ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0 rm -f dummy.c dummy # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } #echo '(Unable to guess system type)' 1>&2 exit 1