Changeset 926341c


Ignore:
Timestamp:
Jul 28, 2017, 4:43:25 PM (4 years ago)
Author:
Andrew Beach <ajbeach@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, deferred_resn, demangler, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, resolv-new, with_gc
Children:
61e2761
Parents:
03eedd5 (diff), 79dbb79 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

Files:
8 edited

Legend:

Unmodified
Added
Removed
  • Makefile.in

    r03eedd5 r926341c  
    198198        $(top_srcdir)/automake/install-sh \
    199199        $(top_srcdir)/automake/missing INSTALL README automake/compile \
    200         automake/config.guess automake/config.sub automake/depcomp \
    201         automake/install-sh automake/missing automake/ylwrap
     200        automake/config.guess automake/config.sub automake/install-sh \
     201        automake/missing
    202202DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
    203203distdir = $(PACKAGE)-$(VERSION)
  • automake/compile

    r03eedd5 r926341c  
    22# Wrapper for compilers which do not understand '-c -o'.
    33
    4 scriptversion=2012-01-04.17; # UTC
    5 
    6 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
    7 # Software Foundation, Inc.
     4scriptversion=2012-10-14.11; # UTC
     5
     6# Copyright (C) 1999-2014 Free Software Foundation, Inc.
    87# Written by Tom Tromey <tromey@cygnus.com>.
    98#
     
    7877      ;;
    7978  esac
     79}
     80
     81# func_cl_dashL linkdir
     82# Make cl look for libraries in LINKDIR
     83func_cl_dashL ()
     84{
     85  func_file_conv "$1"
     86  if test -z "$lib_path"; then
     87    lib_path=$file
     88  else
     89    lib_path="$lib_path;$file"
     90  fi
     91  linker_opts="$linker_opts -LIBPATH:$file"
     92}
     93
     94# func_cl_dashl library
     95# Do a library search-path lookup for cl
     96func_cl_dashl ()
     97{
     98  lib=$1
     99  found=no
     100  save_IFS=$IFS
     101  IFS=';'
     102  for dir in $lib_path $LIB
     103  do
     104    IFS=$save_IFS
     105    if $shared && test -f "$dir/$lib.dll.lib"; then
     106      found=yes
     107      lib=$dir/$lib.dll.lib
     108      break
     109    fi
     110    if test -f "$dir/$lib.lib"; then
     111      found=yes
     112      lib=$dir/$lib.lib
     113      break
     114    fi
     115    if test -f "$dir/lib$lib.a"; then
     116      found=yes
     117      lib=$dir/lib$lib.a
     118      break
     119    fi
     120  done
     121  IFS=$save_IFS
     122
     123  if test "$found" != yes; then
     124    lib=$lib.lib
     125  fi
    80126}
    81127
     
    110156          esac
    111157          ;;
     158        -I)
     159          eat=1
     160          func_file_conv "$2" mingw
     161          set x "$@" -I"$file"
     162          shift
     163          ;;
    112164        -I*)
    113165          func_file_conv "${1#-I}" mingw
     
    115167          shift
    116168          ;;
     169        -l)
     170          eat=1
     171          func_cl_dashl "$2"
     172          set x "$@" "$lib"
     173          shift
     174          ;;
    117175        -l*)
    118           lib=${1#-l}
    119           found=no
    120           save_IFS=$IFS
    121           IFS=';'
    122           for dir in $lib_path $LIB
    123           do
    124             IFS=$save_IFS
    125             if $shared && test -f "$dir/$lib.dll.lib"; then
    126               found=yes
    127               set x "$@" "$dir/$lib.dll.lib"
    128               break
    129             fi
    130             if test -f "$dir/$lib.lib"; then
    131               found=yes
    132               set x "$@" "$dir/$lib.lib"
    133               break
    134             fi
    135           done
    136           IFS=$save_IFS
    137 
    138           test "$found" != yes && set x "$@" "$lib.lib"
    139           shift
     176          func_cl_dashl "${1#-l}"
     177          set x "$@" "$lib"
     178          shift
     179          ;;
     180        -L)
     181          eat=1
     182          func_cl_dashL "$2"
    140183          ;;
    141184        -L*)
    142           func_file_conv "${1#-L}"
    143           if test -z "$lib_path"; then
    144             lib_path=$file
    145           else
    146             lib_path="$lib_path;$file"
    147           fi
    148           linker_opts="$linker_opts -LIBPATH:$file"
     185          func_cl_dashL "${1#-L}"
    149186          ;;
    150187        -static)
  • automake/config.guess

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

    • Property mode changed from 120000 to 100755
    r03eedd5 r926341c  
    1 /usr/share/automake-1.15/config.sub
     1#! /bin/sh
     2# Configuration validation subroutine script.
     3#   Copyright 1992-2015 Free Software Foundation, Inc.
     4
     5timestamp='2015-08-20'
     6
     7# This file is free software; you can redistribute it and/or modify it
     8# under the terms of the GNU General Public License as published by
     9# the Free Software Foundation; either version 3 of the License, or
     10# (at your option) any later version.
     11#
     12# This program is distributed in the hope that it will be useful, but
     13# WITHOUT ANY WARRANTY; without even the implied warranty of
     14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     15# General Public License for more details.
     16#
     17# You should have received a copy of the GNU General Public License
     18# along with this program; if not, see <http://www.gnu.org/licenses/>.
     19#
     20# As a special exception to the GNU General Public License, if you
     21# distribute this file as part of a program that contains a
     22# configuration script generated by Autoconf, you may include it under
     23# the same distribution terms that you use for the rest of that
     24# program.  This Exception is an additional permission under section 7
     25# of the GNU General Public License, version 3 ("GPLv3").
     26
     27
     28# Please send patches to <config-patches@gnu.org>.
     29#
     30# Configuration subroutine to validate and canonicalize a configuration type.
     31# Supply the specified configuration type as an argument.
     32# If it is invalid, we print an error message on stderr and exit with code 1.
     33# Otherwise, we print the canonical config type on stdout and succeed.
     34
     35# You can get the latest version of this script from:
     36# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
     37
     38# This file is supposed to be the same for all GNU packages
     39# and recognize all the CPU types, system types and aliases
     40# that are meaningful with *any* GNU software.
     41# Each package is responsible for reporting which valid configurations
     42# it does not support.  The user should be able to distinguish
     43# a failure to support a valid configuration from a meaningless
     44# configuration.
     45
     46# The goal of this file is to map all the various variations of a given
     47# machine specification into a single specification in the form:
     48#       CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
     49# or in some cases, the newer four-part form:
     50#       CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
     51# It is wrong to echo any other type of specification.
     52
     53me=`echo "$0" | sed -e 's,.*/,,'`
     54
     55usage="\
     56Usage: $0 [OPTION] CPU-MFR-OPSYS
     57       $0 [OPTION] ALIAS
     58
     59Canonicalize a configuration name.
     60
     61Operation modes:
     62  -h, --help         print this help, then exit
     63  -t, --time-stamp   print date of last modification, then exit
     64  -v, --version      print version number, then exit
     65
     66Report bugs and patches to <config-patches@gnu.org>."
     67
     68version="\
     69GNU config.sub ($timestamp)
     70
     71Copyright 1992-2015 Free Software Foundation, Inc.
     72
     73This is free software; see the source for copying conditions.  There is NO
     74warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
     75
     76help="
     77Try \`$me --help' for more information."
     78
     79# Parse command line
     80while test $# -gt 0 ; do
     81  case $1 in
     82    --time-stamp | --time* | -t )
     83       echo "$timestamp" ; exit ;;
     84    --version | -v )
     85       echo "$version" ; exit ;;
     86    --help | --h* | -h )
     87       echo "$usage"; exit ;;
     88    -- )     # Stop option processing
     89       shift; break ;;
     90    - ) # Use stdin as input.
     91       break ;;
     92    -* )
     93       echo "$me: invalid option $1$help"
     94       exit 1 ;;
     95
     96    *local*)
     97       # First pass through any local machine types.
     98       echo $1
     99       exit ;;
     100
     101    * )
     102       break ;;
     103  esac
     104done
     105
     106case $# in
     107 0) echo "$me: missing argument$help" >&2
     108    exit 1;;
     109 1) ;;
     110 *) echo "$me: too many arguments$help" >&2
     111    exit 1;;
     112esac
     113
     114# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
     115# Here we must recognize all the valid KERNEL-OS combinations.
     116maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
     117case $maybe_os in
     118  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
     119  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
     120  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
     121  kopensolaris*-gnu* | \
     122  storm-chaos* | os2-emx* | rtmk-nova*)
     123    os=-$maybe_os
     124    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     125    ;;
     126  android-linux)
     127    os=-linux-android
     128    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
     129    ;;
     130  *)
     131    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
     132    if [ $basic_machine != $1 ]
     133    then os=`echo $1 | sed 's/.*-/-/'`
     134    else os=; fi
     135    ;;
     136esac
     137
     138### Let's recognize common machines as not being operating systems so
     139### that things like config.sub decstation-3100 work.  We also
     140### recognize some manufacturers as not being operating systems, so we
     141### can provide default operating systems below.
     142case $os in
     143        -sun*os*)
     144                # Prevent following clause from handling this invalid input.
     145                ;;
     146        -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
     147        -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
     148        -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
     149        -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
     150        -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
     151        -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
     152        -apple | -axis | -knuth | -cray | -microblaze*)
     153                os=
     154                basic_machine=$1
     155                ;;
     156        -bluegene*)
     157                os=-cnk
     158                ;;
     159        -sim | -cisco | -oki | -wec | -winbond)
     160                os=
     161                basic_machine=$1
     162                ;;
     163        -scout)
     164                ;;
     165        -wrs)
     166                os=-vxworks
     167                basic_machine=$1
     168                ;;
     169        -chorusos*)
     170                os=-chorusos
     171                basic_machine=$1
     172                ;;
     173        -chorusrdb)
     174                os=-chorusrdb
     175                basic_machine=$1
     176                ;;
     177        -hiux*)
     178                os=-hiuxwe2
     179                ;;
     180        -sco6)
     181                os=-sco5v6
     182                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
     183                ;;
     184        -sco5)
     185                os=-sco3.2v5
     186                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
     187                ;;
     188        -sco4)
     189                os=-sco3.2v4
     190                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
     191                ;;
     192        -sco3.2.[4-9]*)
     193                os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
     194                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
     195                ;;
     196        -sco3.2v[4-9]*)
     197                # Don't forget version if it is 3.2v4 or newer.
     198                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
     199                ;;
     200        -sco5v6*)
     201                # Don't forget version if it is 3.2v4 or newer.
     202                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
     203                ;;
     204        -sco*)
     205                os=-sco3.2v2
     206                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
     207                ;;
     208        -udk*)
     209                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
     210                ;;
     211        -isc)
     212                os=-isc2.2
     213                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
     214                ;;
     215        -clix*)
     216                basic_machine=clipper-intergraph
     217                ;;
     218        -isc*)
     219                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
     220                ;;
     221        -lynx*178)
     222                os=-lynxos178
     223                ;;
     224        -lynx*5)
     225                os=-lynxos5
     226                ;;
     227        -lynx*)
     228                os=-lynxos
     229                ;;
     230        -ptx*)
     231                basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
     232                ;;
     233        -windowsnt*)
     234                os=`echo $os | sed -e 's/windowsnt/winnt/'`
     235                ;;
     236        -psos*)
     237                os=-psos
     238                ;;
     239        -mint | -mint[0-9]*)
     240                basic_machine=m68k-atari
     241                os=-mint
     242                ;;
     243esac
     244
     245# Decode aliases for certain CPU-COMPANY combinations.
     246case $basic_machine in
     247        # Recognize the basic CPU types without company name.
     248        # Some are omitted here because they have special meanings below.
     249        1750a | 580 \
     250        | a29k \
     251        | aarch64 | aarch64_be \
     252        | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
     253        | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
     254        | am33_2.0 \
     255        | arc | arceb \
     256        | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
     257        | avr | avr32 \
     258        | ba \
     259        | be32 | be64 \
     260        | bfin \
     261        | c4x | c8051 | clipper \
     262        | d10v | d30v | dlx | dsp16xx \
     263        | e2k | epiphany \
     264        | fido | fr30 | frv | ft32 \
     265        | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
     266        | hexagon \
     267        | i370 | i860 | i960 | ia64 \
     268        | ip2k | iq2000 \
     269        | k1om \
     270        | le32 | le64 \
     271        | lm32 \
     272        | m32c | m32r | m32rle | m68000 | m68k | m88k \
     273        | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
     274        | mips | mipsbe | mipseb | mipsel | mipsle \
     275        | mips16 \
     276        | mips64 | mips64el \
     277        | mips64octeon | mips64octeonel \
     278        | mips64orion | mips64orionel \
     279        | mips64r5900 | mips64r5900el \
     280        | mips64vr | mips64vrel \
     281        | mips64vr4100 | mips64vr4100el \
     282        | mips64vr4300 | mips64vr4300el \
     283        | mips64vr5000 | mips64vr5000el \
     284        | mips64vr5900 | mips64vr5900el \
     285        | mipsisa32 | mipsisa32el \
     286        | mipsisa32r2 | mipsisa32r2el \
     287        | mipsisa32r6 | mipsisa32r6el \
     288        | mipsisa64 | mipsisa64el \
     289        | mipsisa64r2 | mipsisa64r2el \
     290        | mipsisa64r6 | mipsisa64r6el \
     291        | mipsisa64sb1 | mipsisa64sb1el \
     292        | mipsisa64sr71k | mipsisa64sr71kel \
     293        | mipsr5900 | mipsr5900el \
     294        | mipstx39 | mipstx39el \
     295        | mn10200 | mn10300 \
     296        | moxie \
     297        | mt \
     298        | msp430 \
     299        | nds32 | nds32le | nds32be \
     300        | nios | nios2 | nios2eb | nios2el \
     301        | ns16k | ns32k \
     302        | open8 | or1k | or1knd | or32 \
     303        | pdp10 | pdp11 | pj | pjl \
     304        | powerpc | powerpc64 | powerpc64le | powerpcle \
     305        | pyramid \
     306        | riscv32 | riscv64 \
     307        | rl78 | rx \
     308        | score \
     309        | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
     310        | sh64 | sh64le \
     311        | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
     312        | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
     313        | spu \
     314        | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
     315        | ubicom32 \
     316        | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
     317        | visium \
     318        | we32k \
     319        | x86 | xc16x | xstormy16 | xtensa \
     320        | z8k | z80)
     321                basic_machine=$basic_machine-unknown
     322                ;;
     323        c54x)
     324                basic_machine=tic54x-unknown
     325                ;;
     326        c55x)
     327                basic_machine=tic55x-unknown
     328                ;;
     329        c6x)
     330                basic_machine=tic6x-unknown
     331                ;;
     332        leon|leon[3-9])
     333                basic_machine=sparc-$basic_machine
     334                ;;
     335        m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
     336                basic_machine=$basic_machine-unknown
     337                os=-none
     338                ;;
     339        m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
     340                ;;
     341        ms1)
     342                basic_machine=mt-unknown
     343                ;;
     344
     345        strongarm | thumb | xscale)
     346                basic_machine=arm-unknown
     347                ;;
     348        xgate)
     349                basic_machine=$basic_machine-unknown
     350                os=-none
     351                ;;
     352        xscaleeb)
     353                basic_machine=armeb-unknown
     354                ;;
     355
     356        xscaleel)
     357                basic_machine=armel-unknown
     358                ;;
     359
     360        # We use `pc' rather than `unknown'
     361        # because (1) that's what they normally are, and
     362        # (2) the word "unknown" tends to confuse beginning users.
     363        i*86 | x86_64)
     364          basic_machine=$basic_machine-pc
     365          ;;
     366        # Object if more than one company name word.
     367        *-*-*)
     368                echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
     369                exit 1
     370                ;;
     371        # Recognize the basic CPU types with company name.
     372        580-* \
     373        | a29k-* \
     374        | aarch64-* | aarch64_be-* \
     375        | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
     376        | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
     377        | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
     378        | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
     379        | avr-* | avr32-* \
     380        | ba-* \
     381        | be32-* | be64-* \
     382        | bfin-* | bs2000-* \
     383        | c[123]* | c30-* | [cjt]90-* | c4x-* \
     384        | c8051-* | clipper-* | craynv-* | cydra-* \
     385        | d10v-* | d30v-* | dlx-* \
     386        | e2k-* | elxsi-* \
     387        | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
     388        | h8300-* | h8500-* \
     389        | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
     390        | hexagon-* \
     391        | i*86-* | i860-* | i960-* | ia64-* \
     392        | ip2k-* | iq2000-* \
     393        | k1om-* \
     394        | le32-* | le64-* \
     395        | lm32-* \
     396        | m32c-* | m32r-* | m32rle-* \
     397        | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
     398        | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
     399        | microblaze-* | microblazeel-* \
     400        | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
     401        | mips16-* \
     402        | mips64-* | mips64el-* \
     403        | mips64octeon-* | mips64octeonel-* \
     404        | mips64orion-* | mips64orionel-* \
     405        | mips64r5900-* | mips64r5900el-* \
     406        | mips64vr-* | mips64vrel-* \
     407        | mips64vr4100-* | mips64vr4100el-* \
     408        | mips64vr4300-* | mips64vr4300el-* \
     409        | mips64vr5000-* | mips64vr5000el-* \
     410        | mips64vr5900-* | mips64vr5900el-* \
     411        | mipsisa32-* | mipsisa32el-* \
     412        | mipsisa32r2-* | mipsisa32r2el-* \
     413        | mipsisa32r6-* | mipsisa32r6el-* \
     414        | mipsisa64-* | mipsisa64el-* \
     415        | mipsisa64r2-* | mipsisa64r2el-* \
     416        | mipsisa64r6-* | mipsisa64r6el-* \
     417        | mipsisa64sb1-* | mipsisa64sb1el-* \
     418        | mipsisa64sr71k-* | mipsisa64sr71kel-* \
     419        | mipsr5900-* | mipsr5900el-* \
     420        | mipstx39-* | mipstx39el-* \
     421        | mmix-* \
     422        | mt-* \
     423        | msp430-* \
     424        | nds32-* | nds32le-* | nds32be-* \
     425        | nios-* | nios2-* | nios2eb-* | nios2el-* \
     426        | none-* | np1-* | ns16k-* | ns32k-* \
     427        | open8-* \
     428        | or1k*-* \
     429        | orion-* \
     430        | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
     431        | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
     432        | pyramid-* \
     433        | riscv32-* | riscv64-* \
     434        | rl78-* | romp-* | rs6000-* | rx-* \
     435        | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
     436        | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
     437        | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
     438        | sparclite-* \
     439        | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
     440        | tahoe-* \
     441        | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
     442        | tile*-* \
     443        | tron-* \
     444        | ubicom32-* \
     445        | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
     446        | vax-* \
     447        | visium-* \
     448        | we32k-* \
     449        | x86-* | x86_64-* | xc16x-* | xps100-* \
     450        | xstormy16-* | xtensa*-* \
     451        | ymp-* \
     452        | z8k-* | z80-*)
     453                ;;
     454        # Recognize the basic CPU types without company name, with glob match.
     455        xtensa*)
     456                basic_machine=$basic_machine-unknown
     457                ;;
     458        # Recognize the various machine names and aliases which stand
     459        # for a CPU type and a company and sometimes even an OS.
     460        386bsd)
     461                basic_machine=i386-unknown
     462                os=-bsd
     463                ;;
     464        3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
     465                basic_machine=m68000-att
     466                ;;
     467        3b*)
     468                basic_machine=we32k-att
     469                ;;
     470        a29khif)
     471                basic_machine=a29k-amd
     472                os=-udi
     473                ;;
     474        abacus)
     475                basic_machine=abacus-unknown
     476                ;;
     477        adobe68k)
     478                basic_machine=m68010-adobe
     479                os=-scout
     480                ;;
     481        alliant | fx80)
     482                basic_machine=fx80-alliant
     483                ;;
     484        altos | altos3068)
     485                basic_machine=m68k-altos
     486                ;;
     487        am29k)
     488                basic_machine=a29k-none
     489                os=-bsd
     490                ;;
     491        amd64)
     492                basic_machine=x86_64-pc
     493                ;;
     494        amd64-*)
     495                basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
     496                ;;
     497        amdahl)
     498                basic_machine=580-amdahl
     499                os=-sysv
     500                ;;
     501        amiga | amiga-*)
     502                basic_machine=m68k-unknown
     503                ;;
     504        amigaos | amigados)
     505                basic_machine=m68k-unknown
     506                os=-amigaos
     507                ;;
     508        amigaunix | amix)
     509                basic_machine=m68k-unknown
     510                os=-sysv4
     511                ;;
     512        apollo68)
     513                basic_machine=m68k-apollo
     514                os=-sysv
     515                ;;
     516        apollo68bsd)
     517                basic_machine=m68k-apollo
     518                os=-bsd
     519                ;;
     520        aros)
     521                basic_machine=i386-pc
     522                os=-aros
     523                ;;
     524        asmjs)
     525                basic_machine=asmjs-unknown
     526                ;;
     527        aux)
     528                basic_machine=m68k-apple
     529                os=-aux
     530                ;;
     531        balance)
     532                basic_machine=ns32k-sequent
     533                os=-dynix
     534                ;;
     535        blackfin)
     536                basic_machine=bfin-unknown
     537                os=-linux
     538                ;;
     539        blackfin-*)
     540                basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
     541                os=-linux
     542                ;;
     543        bluegene*)
     544                basic_machine=powerpc-ibm
     545                os=-cnk
     546                ;;
     547        c54x-*)
     548                basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
     549                ;;
     550        c55x-*)
     551                basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
     552                ;;
     553        c6x-*)
     554                basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
     555                ;;
     556        c90)
     557                basic_machine=c90-cray
     558                os=-unicos
     559                ;;
     560        cegcc)
     561                basic_machine=arm-unknown
     562                os=-cegcc
     563                ;;
     564        convex-c1)
     565                basic_machine=c1-convex
     566                os=-bsd
     567                ;;
     568        convex-c2)
     569                basic_machine=c2-convex
     570                os=-bsd
     571                ;;
     572        convex-c32)
     573                basic_machine=c32-convex
     574                os=-bsd
     575                ;;
     576        convex-c34)
     577                basic_machine=c34-convex
     578                os=-bsd
     579                ;;
     580        convex-c38)
     581                basic_machine=c38-convex
     582                os=-bsd
     583                ;;
     584        cray | j90)
     585                basic_machine=j90-cray
     586                os=-unicos
     587                ;;
     588        craynv)
     589                basic_machine=craynv-cray
     590                os=-unicosmp
     591                ;;
     592        cr16 | cr16-*)
     593                basic_machine=cr16-unknown
     594                os=-elf
     595                ;;
     596        crds | unos)
     597                basic_machine=m68k-crds
     598                ;;
     599        crisv32 | crisv32-* | etraxfs*)
     600                basic_machine=crisv32-axis
     601                ;;
     602        cris | cris-* | etrax*)
     603                basic_machine=cris-axis
     604                ;;
     605        crx)
     606                basic_machine=crx-unknown
     607                os=-elf
     608                ;;
     609        da30 | da30-*)
     610                basic_machine=m68k-da30
     611                ;;
     612        decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
     613                basic_machine=mips-dec
     614                ;;
     615        decsystem10* | dec10*)
     616                basic_machine=pdp10-dec
     617                os=-tops10
     618                ;;
     619        decsystem20* | dec20*)
     620                basic_machine=pdp10-dec
     621                os=-tops20
     622                ;;
     623        delta | 3300 | motorola-3300 | motorola-delta \
     624              | 3300-motorola | delta-motorola)
     625                basic_machine=m68k-motorola
     626                ;;
     627        delta88)
     628                basic_machine=m88k-motorola
     629                os=-sysv3
     630                ;;
     631        dicos)
     632                basic_machine=i686-pc
     633                os=-dicos
     634                ;;
     635        djgpp)
     636                basic_machine=i586-pc
     637                os=-msdosdjgpp
     638                ;;
     639        dpx20 | dpx20-*)
     640                basic_machine=rs6000-bull
     641                os=-bosx
     642                ;;
     643        dpx2* | dpx2*-bull)
     644                basic_machine=m68k-bull
     645                os=-sysv3
     646                ;;
     647        ebmon29k)
     648                basic_machine=a29k-amd
     649                os=-ebmon
     650                ;;
     651        elxsi)
     652                basic_machine=elxsi-elxsi
     653                os=-bsd
     654                ;;
     655        encore | umax | mmax)
     656                basic_machine=ns32k-encore
     657                ;;
     658        es1800 | OSE68k | ose68k | ose | OSE)
     659                basic_machine=m68k-ericsson
     660                os=-ose
     661                ;;
     662        fx2800)
     663                basic_machine=i860-alliant
     664                ;;
     665        genix)
     666                basic_machine=ns32k-ns
     667                ;;
     668        gmicro)
     669                basic_machine=tron-gmicro
     670                os=-sysv
     671                ;;
     672        go32)
     673                basic_machine=i386-pc
     674                os=-go32
     675                ;;
     676        h3050r* | hiux*)
     677                basic_machine=hppa1.1-hitachi
     678                os=-hiuxwe2
     679                ;;
     680        h8300hms)
     681                basic_machine=h8300-hitachi
     682                os=-hms
     683                ;;
     684        h8300xray)
     685                basic_machine=h8300-hitachi
     686                os=-xray
     687                ;;
     688        h8500hms)
     689                basic_machine=h8500-hitachi
     690                os=-hms
     691                ;;
     692        harris)
     693                basic_machine=m88k-harris
     694                os=-sysv3
     695                ;;
     696        hp300-*)
     697                basic_machine=m68k-hp
     698                ;;
     699        hp300bsd)
     700                basic_machine=m68k-hp
     701                os=-bsd
     702                ;;
     703        hp300hpux)
     704                basic_machine=m68k-hp
     705                os=-hpux
     706                ;;
     707        hp3k9[0-9][0-9] | hp9[0-9][0-9])
     708                basic_machine=hppa1.0-hp
     709                ;;
     710        hp9k2[0-9][0-9] | hp9k31[0-9])
     711                basic_machine=m68000-hp
     712                ;;
     713        hp9k3[2-9][0-9])
     714                basic_machine=m68k-hp
     715                ;;
     716        hp9k6[0-9][0-9] | hp6[0-9][0-9])
     717                basic_machine=hppa1.0-hp
     718                ;;
     719        hp9k7[0-79][0-9] | hp7[0-79][0-9])
     720                basic_machine=hppa1.1-hp
     721                ;;
     722        hp9k78[0-9] | hp78[0-9])
     723                # FIXME: really hppa2.0-hp
     724                basic_machine=hppa1.1-hp
     725                ;;
     726        hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
     727                # FIXME: really hppa2.0-hp
     728                basic_machine=hppa1.1-hp
     729                ;;
     730        hp9k8[0-9][13679] | hp8[0-9][13679])
     731                basic_machine=hppa1.1-hp
     732                ;;
     733        hp9k8[0-9][0-9] | hp8[0-9][0-9])
     734                basic_machine=hppa1.0-hp
     735                ;;
     736        hppa-next)
     737                os=-nextstep3
     738                ;;
     739        hppaosf)
     740                basic_machine=hppa1.1-hp
     741                os=-osf
     742                ;;
     743        hppro)
     744                basic_machine=hppa1.1-hp
     745                os=-proelf
     746                ;;
     747        i370-ibm* | ibm*)
     748                basic_machine=i370-ibm
     749                ;;
     750        i*86v32)
     751                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
     752                os=-sysv32
     753                ;;
     754        i*86v4*)
     755                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
     756                os=-sysv4
     757                ;;
     758        i*86v)
     759                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
     760                os=-sysv
     761                ;;
     762        i*86sol2)
     763                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
     764                os=-solaris2
     765                ;;
     766        i386mach)
     767                basic_machine=i386-mach
     768                os=-mach
     769                ;;
     770        i386-vsta | vsta)
     771                basic_machine=i386-unknown
     772                os=-vsta
     773                ;;
     774        iris | iris4d)
     775                basic_machine=mips-sgi
     776                case $os in
     777                    -irix*)
     778                        ;;
     779                    *)
     780                        os=-irix4
     781                        ;;
     782                esac
     783                ;;
     784        isi68 | isi)
     785                basic_machine=m68k-isi
     786                os=-sysv
     787                ;;
     788        leon-*|leon[3-9]-*)
     789                basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
     790                ;;
     791        m68knommu)
     792                basic_machine=m68k-unknown
     793                os=-linux
     794                ;;
     795        m68knommu-*)
     796                basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
     797                os=-linux
     798                ;;
     799        m88k-omron*)
     800                basic_machine=m88k-omron
     801                ;;
     802        magnum | m3230)
     803                basic_machine=mips-mips
     804                os=-sysv
     805                ;;
     806        merlin)
     807                basic_machine=ns32k-utek
     808                os=-sysv
     809                ;;
     810        microblaze*)
     811                basic_machine=microblaze-xilinx
     812                ;;
     813        mingw64)
     814                basic_machine=x86_64-pc
     815                os=-mingw64
     816                ;;
     817        mingw32)
     818                basic_machine=i686-pc
     819                os=-mingw32
     820                ;;
     821        mingw32ce)
     822                basic_machine=arm-unknown
     823                os=-mingw32ce
     824                ;;
     825        miniframe)
     826                basic_machine=m68000-convergent
     827                ;;
     828        *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
     829                basic_machine=m68k-atari
     830                os=-mint
     831                ;;
     832        mips3*-*)
     833                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
     834                ;;
     835        mips3*)
     836                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
     837                ;;
     838        monitor)
     839                basic_machine=m68k-rom68k
     840                os=-coff
     841                ;;
     842        morphos)
     843                basic_machine=powerpc-unknown
     844                os=-morphos
     845                ;;
     846        moxiebox)
     847                basic_machine=moxie-unknown
     848                os=-moxiebox
     849                ;;
     850        msdos)
     851                basic_machine=i386-pc
     852                os=-msdos
     853                ;;
     854        ms1-*)
     855                basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
     856                ;;
     857        msys)
     858                basic_machine=i686-pc
     859                os=-msys
     860                ;;
     861        mvs)
     862                basic_machine=i370-ibm
     863                os=-mvs
     864                ;;
     865        nacl)
     866                basic_machine=le32-unknown
     867                os=-nacl
     868                ;;
     869        ncr3000)
     870                basic_machine=i486-ncr
     871                os=-sysv4
     872                ;;
     873        netbsd386)
     874                basic_machine=i386-unknown
     875                os=-netbsd
     876                ;;
     877        netwinder)
     878                basic_machine=armv4l-rebel
     879                os=-linux
     880                ;;
     881        news | news700 | news800 | news900)
     882                basic_machine=m68k-sony
     883                os=-newsos
     884                ;;
     885        news1000)
     886                basic_machine=m68030-sony
     887                os=-newsos
     888                ;;
     889        news-3600 | risc-news)
     890                basic_machine=mips-sony
     891                os=-newsos
     892                ;;
     893        necv70)
     894                basic_machine=v70-nec
     895                os=-sysv
     896                ;;
     897        next | m*-next )
     898                basic_machine=m68k-next
     899                case $os in
     900                    -nextstep* )
     901                        ;;
     902                    -ns2*)
     903                      os=-nextstep2
     904                        ;;
     905                    *)
     906                      os=-nextstep3
     907                        ;;
     908                esac
     909                ;;
     910        nh3000)
     911                basic_machine=m68k-harris
     912                os=-cxux
     913                ;;
     914        nh[45]000)
     915                basic_machine=m88k-harris
     916                os=-cxux
     917                ;;
     918        nindy960)
     919                basic_machine=i960-intel
     920                os=-nindy
     921                ;;
     922        mon960)
     923                basic_machine=i960-intel
     924                os=-mon960
     925                ;;
     926        nonstopux)
     927                basic_machine=mips-compaq
     928                os=-nonstopux
     929                ;;
     930        np1)
     931                basic_machine=np1-gould
     932                ;;
     933        neo-tandem)
     934                basic_machine=neo-tandem
     935                ;;
     936        nse-tandem)
     937                basic_machine=nse-tandem
     938                ;;
     939        nsr-tandem)
     940                basic_machine=nsr-tandem
     941                ;;
     942        op50n-* | op60c-*)
     943                basic_machine=hppa1.1-oki
     944                os=-proelf
     945                ;;
     946        openrisc | openrisc-*)
     947                basic_machine=or32-unknown
     948                ;;
     949        os400)
     950                basic_machine=powerpc-ibm
     951                os=-os400
     952                ;;
     953        OSE68000 | ose68000)
     954                basic_machine=m68000-ericsson
     955                os=-ose
     956                ;;
     957        os68k)
     958                basic_machine=m68k-none
     959                os=-os68k
     960                ;;
     961        pa-hitachi)
     962                basic_machine=hppa1.1-hitachi
     963                os=-hiuxwe2
     964                ;;
     965        paragon)
     966                basic_machine=i860-intel
     967                os=-osf
     968                ;;
     969        parisc)
     970                basic_machine=hppa-unknown
     971                os=-linux
     972                ;;
     973        parisc-*)
     974                basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
     975                os=-linux
     976                ;;
     977        pbd)
     978                basic_machine=sparc-tti
     979                ;;
     980        pbb)
     981                basic_machine=m68k-tti
     982                ;;
     983        pc532 | pc532-*)
     984                basic_machine=ns32k-pc532
     985                ;;
     986        pc98)
     987                basic_machine=i386-pc
     988                ;;
     989        pc98-*)
     990                basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
     991                ;;
     992        pentium | p5 | k5 | k6 | nexgen | viac3)
     993                basic_machine=i586-pc
     994                ;;
     995        pentiumpro | p6 | 6x86 | athlon | athlon_*)
     996                basic_machine=i686-pc
     997                ;;
     998        pentiumii | pentium2 | pentiumiii | pentium3)
     999                basic_machine=i686-pc
     1000                ;;
     1001        pentium4)
     1002                basic_machine=i786-pc
     1003                ;;
     1004        pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
     1005                basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
     1006                ;;
     1007        pentiumpro-* | p6-* | 6x86-* | athlon-*)
     1008                basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
     1009                ;;
     1010        pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
     1011                basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
     1012                ;;
     1013        pentium4-*)
     1014                basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
     1015                ;;
     1016        pn)
     1017                basic_machine=pn-gould
     1018                ;;
     1019        power)  basic_machine=power-ibm
     1020                ;;
     1021        ppc | ppcbe)    basic_machine=powerpc-unknown
     1022                ;;
     1023        ppc-* | ppcbe-*)
     1024                basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
     1025                ;;
     1026        ppcle | powerpclittle | ppc-le | powerpc-little)
     1027                basic_machine=powerpcle-unknown
     1028                ;;
     1029        ppcle-* | powerpclittle-*)
     1030                basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
     1031                ;;
     1032        ppc64)  basic_machine=powerpc64-unknown
     1033                ;;
     1034        ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
     1035                ;;
     1036        ppc64le | powerpc64little | ppc64-le | powerpc64-little)
     1037                basic_machine=powerpc64le-unknown
     1038                ;;
     1039        ppc64le-* | powerpc64little-*)
     1040                basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
     1041                ;;
     1042        ps2)
     1043                basic_machine=i386-ibm
     1044                ;;
     1045        pw32)
     1046                basic_machine=i586-unknown
     1047                os=-pw32
     1048                ;;
     1049        rdos | rdos64)
     1050                basic_machine=x86_64-pc
     1051                os=-rdos
     1052                ;;
     1053        rdos32)
     1054                basic_machine=i386-pc
     1055                os=-rdos
     1056                ;;
     1057        rom68k)
     1058                basic_machine=m68k-rom68k
     1059                os=-coff
     1060                ;;
     1061        rm[46]00)
     1062                basic_machine=mips-siemens
     1063                ;;
     1064        rtpc | rtpc-*)
     1065                basic_machine=romp-ibm
     1066                ;;
     1067        s390 | s390-*)
     1068                basic_machine=s390-ibm
     1069                ;;
     1070        s390x | s390x-*)
     1071                basic_machine=s390x-ibm
     1072                ;;
     1073        sa29200)
     1074                basic_machine=a29k-amd
     1075                os=-udi
     1076                ;;
     1077        sb1)
     1078                basic_machine=mipsisa64sb1-unknown
     1079                ;;
     1080        sb1el)
     1081                basic_machine=mipsisa64sb1el-unknown
     1082                ;;
     1083        sde)
     1084                basic_machine=mipsisa32-sde
     1085                os=-elf
     1086                ;;
     1087        sei)
     1088                basic_machine=mips-sei
     1089                os=-seiux
     1090                ;;
     1091        sequent)
     1092                basic_machine=i386-sequent
     1093                ;;
     1094        sh)
     1095                basic_machine=sh-hitachi
     1096                os=-hms
     1097                ;;
     1098        sh5el)
     1099                basic_machine=sh5le-unknown
     1100                ;;
     1101        sh64)
     1102                basic_machine=sh64-unknown
     1103                ;;
     1104        sparclite-wrs | simso-wrs)
     1105                basic_machine=sparclite-wrs
     1106                os=-vxworks
     1107                ;;
     1108        sps7)
     1109                basic_machine=m68k-bull
     1110                os=-sysv2
     1111                ;;
     1112        spur)
     1113                basic_machine=spur-unknown
     1114                ;;
     1115        st2000)
     1116                basic_machine=m68k-tandem
     1117                ;;
     1118        stratus)
     1119                basic_machine=i860-stratus
     1120                os=-sysv4
     1121                ;;
     1122        strongarm-* | thumb-*)
     1123                basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
     1124                ;;
     1125        sun2)
     1126                basic_machine=m68000-sun
     1127                ;;
     1128        sun2os3)
     1129                basic_machine=m68000-sun
     1130                os=-sunos3
     1131                ;;
     1132        sun2os4)
     1133                basic_machine=m68000-sun
     1134                os=-sunos4
     1135                ;;
     1136        sun3os3)
     1137                basic_machine=m68k-sun
     1138                os=-sunos3
     1139                ;;
     1140        sun3os4)
     1141                basic_machine=m68k-sun
     1142                os=-sunos4
     1143                ;;
     1144        sun4os3)
     1145                basic_machine=sparc-sun
     1146                os=-sunos3
     1147                ;;
     1148        sun4os4)
     1149                basic_machine=sparc-sun
     1150                os=-sunos4
     1151                ;;
     1152        sun4sol2)
     1153                basic_machine=sparc-sun
     1154                os=-solaris2
     1155                ;;
     1156        sun3 | sun3-*)
     1157                basic_machine=m68k-sun
     1158                ;;
     1159        sun4)
     1160                basic_machine=sparc-sun
     1161                ;;
     1162        sun386 | sun386i | roadrunner)
     1163                basic_machine=i386-sun
     1164                ;;
     1165        sv1)
     1166                basic_machine=sv1-cray
     1167                os=-unicos
     1168                ;;
     1169        symmetry)
     1170                basic_machine=i386-sequent
     1171                os=-dynix
     1172                ;;
     1173        t3e)
     1174                basic_machine=alphaev5-cray
     1175                os=-unicos
     1176                ;;
     1177        t90)
     1178                basic_machine=t90-cray
     1179                os=-unicos
     1180                ;;
     1181        tile*)
     1182                basic_machine=$basic_machine-unknown
     1183                os=-linux-gnu
     1184                ;;
     1185        tx39)
     1186                basic_machine=mipstx39-unknown
     1187                ;;
     1188        tx39el)
     1189                basic_machine=mipstx39el-unknown
     1190                ;;
     1191        toad1)
     1192                basic_machine=pdp10-xkl
     1193                os=-tops20
     1194                ;;
     1195        tower | tower-32)
     1196                basic_machine=m68k-ncr
     1197                ;;
     1198        tpf)
     1199                basic_machine=s390x-ibm
     1200                os=-tpf
     1201                ;;
     1202        udi29k)
     1203                basic_machine=a29k-amd
     1204                os=-udi
     1205                ;;
     1206        ultra3)
     1207                basic_machine=a29k-nyu
     1208                os=-sym1
     1209                ;;
     1210        v810 | necv810)
     1211                basic_machine=v810-nec
     1212                os=-none
     1213                ;;
     1214        vaxv)
     1215                basic_machine=vax-dec
     1216                os=-sysv
     1217                ;;
     1218        vms)
     1219                basic_machine=vax-dec
     1220                os=-vms
     1221                ;;
     1222        vpp*|vx|vx-*)
     1223                basic_machine=f301-fujitsu
     1224                ;;
     1225        vxworks960)
     1226                basic_machine=i960-wrs
     1227                os=-vxworks
     1228                ;;
     1229        vxworks68)
     1230                basic_machine=m68k-wrs
     1231                os=-vxworks
     1232                ;;
     1233        vxworks29k)
     1234                basic_machine=a29k-wrs
     1235                os=-vxworks
     1236                ;;
     1237        w65*)
     1238                basic_machine=w65-wdc
     1239                os=-none
     1240                ;;
     1241        w89k-*)
     1242                basic_machine=hppa1.1-winbond
     1243                os=-proelf
     1244                ;;
     1245        xbox)
     1246                basic_machine=i686-pc
     1247                os=-mingw32
     1248                ;;
     1249        xps | xps100)
     1250                basic_machine=xps100-honeywell
     1251                ;;
     1252        xscale-* | xscalee[bl]-*)
     1253                basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
     1254                ;;
     1255        ymp)
     1256                basic_machine=ymp-cray
     1257                os=-unicos
     1258                ;;
     1259        z8k-*-coff)
     1260                basic_machine=z8k-unknown
     1261                os=-sim
     1262                ;;
     1263        z80-*-coff)
     1264                basic_machine=z80-unknown
     1265                os=-sim
     1266                ;;
     1267        none)
     1268                basic_machine=none-none
     1269                os=-none
     1270                ;;
     1271
     1272# Here we handle the default manufacturer of certain CPU types.  It is in
     1273# some cases the only manufacturer, in others, it is the most popular.
     1274        w89k)
     1275                basic_machine=hppa1.1-winbond
     1276                ;;
     1277        op50n)
     1278                basic_machine=hppa1.1-oki
     1279                ;;
     1280        op60c)
     1281                basic_machine=hppa1.1-oki
     1282                ;;
     1283        romp)
     1284                basic_machine=romp-ibm
     1285                ;;
     1286        mmix)
     1287                basic_machine=mmix-knuth
     1288                ;;
     1289        rs6000)
     1290                basic_machine=rs6000-ibm
     1291                ;;
     1292        vax)
     1293                basic_machine=vax-dec
     1294                ;;
     1295        pdp10)
     1296                # there are many clones, so DEC is not a safe bet
     1297                basic_machine=pdp10-unknown
     1298                ;;
     1299        pdp11)
     1300                basic_machine=pdp11-dec
     1301                ;;
     1302        we32k)
     1303                basic_machine=we32k-att
     1304                ;;
     1305        sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
     1306                basic_machine=sh-unknown
     1307                ;;
     1308        sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
     1309                basic_machine=sparc-sun
     1310                ;;
     1311        cydra)
     1312                basic_machine=cydra-cydrome
     1313                ;;
     1314        orion)
     1315                basic_machine=orion-highlevel
     1316                ;;
     1317        orion105)
     1318                basic_machine=clipper-highlevel
     1319                ;;
     1320        mac | mpw | mac-mpw)
     1321                basic_machine=m68k-apple
     1322                ;;
     1323        pmac | pmac-mpw)
     1324                basic_machine=powerpc-apple
     1325                ;;
     1326        *-unknown)
     1327                # Make sure to match an already-canonicalized machine name.
     1328                ;;
     1329        *)
     1330                echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
     1331                exit 1
     1332                ;;
     1333esac
     1334
     1335# Here we canonicalize certain aliases for manufacturers.
     1336case $basic_machine in
     1337        *-digital*)
     1338                basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
     1339                ;;
     1340        *-commodore*)
     1341                basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
     1342                ;;
     1343        *)
     1344                ;;
     1345esac
     1346
     1347# Decode manufacturer-specific aliases for certain operating systems.
     1348
     1349if [ x"$os" != x"" ]
     1350then
     1351case $os in
     1352        # First match some system type aliases
     1353        # that might get confused with valid system types.
     1354        # -solaris* is a basic system type, with this one exception.
     1355        -auroraux)
     1356                os=-auroraux
     1357                ;;
     1358        -solaris1 | -solaris1.*)
     1359                os=`echo $os | sed -e 's|solaris1|sunos4|'`
     1360                ;;
     1361        -solaris)
     1362                os=-solaris2
     1363                ;;
     1364        -svr4*)
     1365                os=-sysv4
     1366                ;;
     1367        -unixware*)
     1368                os=-sysv4.2uw
     1369                ;;
     1370        -gnu/linux*)
     1371                os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
     1372                ;;
     1373        # First accept the basic system types.
     1374        # The portable systems comes first.
     1375        # Each alternative MUST END IN A *, to match a version number.
     1376        # -sysv* is not here because it comes later, after sysvr4.
     1377        -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
     1378              | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
     1379              | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
     1380              | -sym* | -kopensolaris* | -plan9* \
     1381              | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
     1382              | -aos* | -aros* | -cloudabi* | -sortix* \
     1383              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
     1384              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
     1385              | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
     1386              | -bitrig* | -openbsd* | -solidbsd* \
     1387              | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
     1388              | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
     1389              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
     1390              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
     1391              | -chorusos* | -chorusrdb* | -cegcc* \
     1392              | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
     1393              | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
     1394              | -linux-newlib* | -linux-musl* | -linux-uclibc* \
     1395              | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
     1396              | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
     1397              | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
     1398              | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
     1399              | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
     1400              | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
     1401              | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
     1402              | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
     1403        # Remember, each alternative MUST END IN *, to match a version number.
     1404                ;;
     1405        -qnx*)
     1406                case $basic_machine in
     1407                    x86-* | i*86-*)
     1408                        ;;
     1409                    *)
     1410                        os=-nto$os
     1411                        ;;
     1412                esac
     1413                ;;
     1414        -nto-qnx*)
     1415                ;;
     1416        -nto*)
     1417                os=`echo $os | sed -e 's|nto|nto-qnx|'`
     1418                ;;
     1419        -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
     1420              | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
     1421              | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
     1422                ;;
     1423        -mac*)
     1424                os=`echo $os | sed -e 's|mac|macos|'`
     1425                ;;
     1426        -linux-dietlibc)
     1427                os=-linux-dietlibc
     1428                ;;
     1429        -linux*)
     1430                os=`echo $os | sed -e 's|linux|linux-gnu|'`
     1431                ;;
     1432        -sunos5*)
     1433                os=`echo $os | sed -e 's|sunos5|solaris2|'`
     1434                ;;
     1435        -sunos6*)
     1436                os=`echo $os | sed -e 's|sunos6|solaris3|'`
     1437                ;;
     1438        -opened*)
     1439                os=-openedition
     1440                ;;
     1441        -os400*)
     1442                os=-os400
     1443                ;;
     1444        -wince*)
     1445                os=-wince
     1446                ;;
     1447        -osfrose*)
     1448                os=-osfrose
     1449                ;;
     1450        -osf*)
     1451                os=-osf
     1452                ;;
     1453        -utek*)
     1454                os=-bsd
     1455                ;;
     1456        -dynix*)
     1457                os=-bsd
     1458                ;;
     1459        -acis*)
     1460                os=-aos
     1461                ;;
     1462        -atheos*)
     1463                os=-atheos
     1464                ;;
     1465        -syllable*)
     1466                os=-syllable
     1467                ;;
     1468        -386bsd)
     1469                os=-bsd
     1470                ;;
     1471        -ctix* | -uts*)
     1472                os=-sysv
     1473                ;;
     1474        -nova*)
     1475                os=-rtmk-nova
     1476                ;;
     1477        -ns2 )
     1478                os=-nextstep2
     1479                ;;
     1480        -nsk*)
     1481                os=-nsk
     1482                ;;
     1483        # Preserve the version number of sinix5.
     1484        -sinix5.*)
     1485                os=`echo $os | sed -e 's|sinix|sysv|'`
     1486                ;;
     1487        -sinix*)
     1488                os=-sysv4
     1489                ;;
     1490        -tpf*)
     1491                os=-tpf
     1492                ;;
     1493        -triton*)
     1494                os=-sysv3
     1495                ;;
     1496        -oss*)
     1497                os=-sysv3
     1498                ;;
     1499        -svr4)
     1500                os=-sysv4
     1501                ;;
     1502        -svr3)
     1503                os=-sysv3
     1504                ;;
     1505        -sysvr4)
     1506                os=-sysv4
     1507                ;;
     1508        # This must come after -sysvr4.
     1509        -sysv*)
     1510                ;;
     1511        -ose*)
     1512                os=-ose
     1513                ;;
     1514        -es1800*)
     1515                os=-ose
     1516                ;;
     1517        -xenix)
     1518                os=-xenix
     1519                ;;
     1520        -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
     1521                os=-mint
     1522                ;;
     1523        -aros*)
     1524                os=-aros
     1525                ;;
     1526        -zvmoe)
     1527                os=-zvmoe
     1528                ;;
     1529        -dicos*)
     1530                os=-dicos
     1531                ;;
     1532        -nacl*)
     1533                ;;
     1534        -none)
     1535                ;;
     1536        *)
     1537                # Get rid of the `-' at the beginning of $os.
     1538                os=`echo $os | sed 's/[^-]*-//'`
     1539                echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
     1540                exit 1
     1541                ;;
     1542esac
     1543else
     1544
     1545# Here we handle the default operating systems that come with various machines.
     1546# The value should be what the vendor currently ships out the door with their
     1547# machine or put another way, the most popular os provided with the machine.
     1548
     1549# Note that if you're going to try to match "-MANUFACTURER" here (say,
     1550# "-sun"), then you have to tell the case statement up towards the top
     1551# that MANUFACTURER isn't an operating system.  Otherwise, code above
     1552# will signal an error saying that MANUFACTURER isn't an operating
     1553# system, and we'll never get to this point.
     1554
     1555case $basic_machine in
     1556        score-*)
     1557                os=-elf
     1558                ;;
     1559        spu-*)
     1560                os=-elf
     1561                ;;
     1562        *-acorn)
     1563                os=-riscix1.2
     1564                ;;
     1565        arm*-rebel)
     1566                os=-linux
     1567                ;;
     1568        arm*-semi)
     1569                os=-aout
     1570                ;;
     1571        c4x-* | tic4x-*)
     1572                os=-coff
     1573                ;;
     1574        c8051-*)
     1575                os=-elf
     1576                ;;
     1577        hexagon-*)
     1578                os=-elf
     1579                ;;
     1580        tic54x-*)
     1581                os=-coff
     1582                ;;
     1583        tic55x-*)
     1584                os=-coff
     1585                ;;
     1586        tic6x-*)
     1587                os=-coff
     1588                ;;
     1589        # This must come before the *-dec entry.
     1590        pdp10-*)
     1591                os=-tops20
     1592                ;;
     1593        pdp11-*)
     1594                os=-none
     1595                ;;
     1596        *-dec | vax-*)
     1597                os=-ultrix4.2
     1598                ;;
     1599        m68*-apollo)
     1600                os=-domain
     1601                ;;
     1602        i386-sun)
     1603                os=-sunos4.0.2
     1604                ;;
     1605        m68000-sun)
     1606                os=-sunos3
     1607                ;;
     1608        m68*-cisco)
     1609                os=-aout
     1610                ;;
     1611        mep-*)
     1612                os=-elf
     1613                ;;
     1614        mips*-cisco)
     1615                os=-elf
     1616                ;;
     1617        mips*-*)
     1618                os=-elf
     1619                ;;
     1620        or32-*)
     1621                os=-coff
     1622                ;;
     1623        *-tti)  # must be before sparc entry or we get the wrong os.
     1624                os=-sysv3
     1625                ;;
     1626        sparc-* | *-sun)
     1627                os=-sunos4.1.1
     1628                ;;
     1629        *-be)
     1630                os=-beos
     1631                ;;
     1632        *-haiku)
     1633                os=-haiku
     1634                ;;
     1635        *-ibm)
     1636                os=-aix
     1637                ;;
     1638        *-knuth)
     1639                os=-mmixware
     1640                ;;
     1641        *-wec)
     1642                os=-proelf
     1643                ;;
     1644        *-winbond)
     1645                os=-proelf
     1646                ;;
     1647        *-oki)
     1648                os=-proelf
     1649                ;;
     1650        *-hp)
     1651                os=-hpux
     1652                ;;
     1653        *-hitachi)
     1654                os=-hiux
     1655                ;;
     1656        i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
     1657                os=-sysv
     1658                ;;
     1659        *-cbm)
     1660                os=-amigaos
     1661                ;;
     1662        *-dg)
     1663                os=-dgux
     1664                ;;
     1665        *-dolphin)
     1666                os=-sysv3
     1667                ;;
     1668        m68k-ccur)
     1669                os=-rtu
     1670                ;;
     1671        m88k-omron*)
     1672                os=-luna
     1673                ;;
     1674        *-next )
     1675                os=-nextstep
     1676                ;;
     1677        *-sequent)
     1678                os=-ptx
     1679                ;;
     1680        *-crds)
     1681                os=-unos
     1682                ;;
     1683        *-ns)
     1684                os=-genix
     1685                ;;
     1686        i370-*)
     1687                os=-mvs
     1688                ;;
     1689        *-next)
     1690                os=-nextstep3
     1691                ;;
     1692        *-gould)
     1693                os=-sysv
     1694                ;;
     1695        *-highlevel)
     1696                os=-bsd
     1697                ;;
     1698        *-encore)
     1699                os=-bsd
     1700                ;;
     1701        *-sgi)
     1702                os=-irix
     1703                ;;
     1704        *-siemens)
     1705                os=-sysv4
     1706                ;;
     1707        *-masscomp)
     1708                os=-rtu
     1709                ;;
     1710        f30[01]-fujitsu | f700-fujitsu)
     1711                os=-uxpv
     1712                ;;
     1713        *-rom68k)
     1714                os=-coff
     1715                ;;
     1716        *-*bug)
     1717                os=-coff
     1718                ;;
     1719        *-apple)
     1720                os=-macos
     1721                ;;
     1722        *-atari*)
     1723                os=-mint
     1724                ;;
     1725        *)
     1726                os=-none
     1727                ;;
     1728esac
     1729fi
     1730
     1731# Here we handle the case where we know the os, and the CPU type, but not the
     1732# manufacturer.  We pick the logical manufacturer.
     1733vendor=unknown
     1734case $basic_machine in
     1735        *-unknown)
     1736                case $os in
     1737                        -riscix*)
     1738                                vendor=acorn
     1739                                ;;
     1740                        -sunos*)
     1741                                vendor=sun
     1742                                ;;
     1743                        -cnk*|-aix*)
     1744                                vendor=ibm
     1745                                ;;
     1746                        -beos*)
     1747                                vendor=be
     1748                                ;;
     1749                        -hpux*)
     1750                                vendor=hp
     1751                                ;;
     1752                        -mpeix*)
     1753                                vendor=hp
     1754                                ;;
     1755                        -hiux*)
     1756                                vendor=hitachi
     1757                                ;;
     1758                        -unos*)
     1759                                vendor=crds
     1760                                ;;
     1761                        -dgux*)
     1762                                vendor=dg
     1763                                ;;
     1764                        -luna*)
     1765                                vendor=omron
     1766                                ;;
     1767                        -genix*)
     1768                                vendor=ns
     1769                                ;;
     1770                        -mvs* | -opened*)
     1771                                vendor=ibm
     1772                                ;;
     1773                        -os400*)
     1774                                vendor=ibm
     1775                                ;;
     1776                        -ptx*)
     1777                                vendor=sequent
     1778                                ;;
     1779                        -tpf*)
     1780                                vendor=ibm
     1781                                ;;
     1782                        -vxsim* | -vxworks* | -windiss*)
     1783                                vendor=wrs
     1784                                ;;
     1785                        -aux*)
     1786                                vendor=apple
     1787                                ;;
     1788                        -hms*)
     1789                                vendor=hitachi
     1790                                ;;
     1791                        -mpw* | -macos*)
     1792                                vendor=apple
     1793                                ;;
     1794                        -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
     1795                                vendor=atari
     1796                                ;;
     1797                        -vos*)
     1798                                vendor=stratus
     1799                                ;;
     1800                esac
     1801                basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
     1802                ;;
     1803esac
     1804
     1805echo $basic_machine$os
     1806exit
     1807
     1808# Local variables:
     1809# eval: (add-hook 'write-file-hooks 'time-stamp)
     1810# time-stamp-start: "timestamp='"
     1811# time-stamp-format: "%:y-%02m-%02d"
     1812# time-stamp-end: "'"
     1813# End:
  • automake/depcomp

    r03eedd5 r926341c  
    22# depcomp - compile a program generating dependencies as side-effects
    33
    4 scriptversion=2011-12-04.11; # UTC
    5 
    6 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
    7 # 2011 Free Software Foundation, Inc.
     4scriptversion=2013-05-30.07; # UTC
     5
     6# Copyright (C) 1999-2014 Free Software Foundation, Inc.
    87
    98# This program is free software; you can redistribute it and/or modify
     
    2928case $1 in
    3029  '')
    31      echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
    32      exit 1;
    33      ;;
     30    echo "$0: No command.  Try '$0 --help' for more information." 1>&2
     31    exit 1;
     32    ;;
    3433  -h | --h*)
    3534    cat <<\EOF
     
    4140Environment variables:
    4241  depmode     Dependency tracking mode.
    43   source      Source file read by `PROGRAMS ARGS'.
    44   object      Object file output by `PROGRAMS ARGS'.
     42  source      Source file read by 'PROGRAMS ARGS'.
     43  object      Object file output by 'PROGRAMS ARGS'.
    4544  DEPDIR      directory where to store dependencies.
    4645  depfile     Dependency file to output.
     
    5857esac
    5958
     59# Get the directory component of the given path, and save it in the
     60# global variables '$dir'.  Note that this directory component will
     61# be either empty or ending with a '/' character.  This is deliberate.
     62set_dir_from ()
     63{
     64  case $1 in
     65    */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
     66      *) dir=;;
     67  esac
     68}
     69
     70# Get the suffix-stripped basename of the given path, and save it the
     71# global variable '$base'.
     72set_base_from ()
     73{
     74  base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
     75}
     76
     77# If no dependency file was actually created by the compiler invocation,
     78# we still have to create a dummy depfile, to avoid errors with the
     79# Makefile "include basename.Plo" scheme.
     80make_dummy_depfile ()
     81{
     82  echo "#dummy" > "$depfile"
     83}
     84
     85# Factor out some common post-processing of the generated depfile.
     86# Requires the auxiliary global variable '$tmpdepfile' to be set.
     87aix_post_process_depfile ()
     88{
     89  # If the compiler actually managed to produce a dependency file,
     90  # post-process it.
     91  if test -f "$tmpdepfile"; then
     92    # Each line is of the form 'foo.o: dependency.h'.
     93    # Do two passes, one to just change these to
     94    #   $object: dependency.h
     95    # and one to simply output
     96    #   dependency.h:
     97    # which is needed to avoid the deleted-header problem.
     98    { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
     99      sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
     100    } > "$depfile"
     101    rm -f "$tmpdepfile"
     102  else
     103    make_dummy_depfile
     104  fi
     105}
     106
     107# A tabulation character.
     108tab='   '
     109# A newline character.
     110nl='
     111'
     112# Character ranges might be problematic outside the C locale.
     113# These definitions help.
     114upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
     115lower=abcdefghijklmnopqrstuvwxyz
     116digits=0123456789
     117alpha=${upper}${lower}
     118
    60119if test -z "$depmode" || test -z "$source" || test -z "$object"; then
    61120  echo "depcomp: Variables source, object and depmode must be set" 1>&2
     
    69128
    70129rm -f "$tmpdepfile"
     130
     131# Avoid interferences from the environment.
     132gccflag= dashmflag=
    71133
    72134# Some modes work just like other modes, but use different flags.  We
     
    81143
    82144if test "$depmode" = dashXmstdout; then
    83    # This is just like dashmstdout with a different argument.
    84    dashmflag=-xM
    85    depmode=dashmstdout
     145  # This is just like dashmstdout with a different argument.
     146  dashmflag=-xM
     147  depmode=dashmstdout
    86148fi
    87149
    88150cygpath_u="cygpath -u -f -"
    89151if test "$depmode" = msvcmsys; then
    90    # This is just like msvisualcpp but w/o cygpath translation.
    91    # Just convert the backslash-escaped backslashes to single forward
    92    # slashes to satisfy depend.m4
    93    cygpath_u='sed s,\\\\,/,g'
    94    depmode=msvisualcpp
     152  # This is just like msvisualcpp but w/o cygpath translation.
     153  # Just convert the backslash-escaped backslashes to single forward
     154  # slashes to satisfy depend.m4
     155  cygpath_u='sed s,\\\\,/,g'
     156  depmode=msvisualcpp
    95157fi
    96158
    97159if test "$depmode" = msvc7msys; then
    98    # This is just like msvc7 but w/o cygpath translation.
    99    # Just convert the backslash-escaped backslashes to single forward
    100    # slashes to satisfy depend.m4
    101    cygpath_u='sed s,\\\\,/,g'
    102    depmode=msvc7
     160  # This is just like msvc7 but w/o cygpath translation.
     161  # Just convert the backslash-escaped backslashes to single forward
     162  # slashes to satisfy depend.m4
     163  cygpath_u='sed s,\\\\,/,g'
     164  depmode=msvc7
     165fi
     166
     167if test "$depmode" = xlc; then
     168  # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
     169  gccflag=-qmakedep=gcc,-MF
     170  depmode=gcc
    103171fi
    104172
     
    123191  "$@"
    124192  stat=$?
    125   if test $stat -eq 0; then :
    126   else
     193  if test $stat -ne 0; then
    127194    rm -f "$tmpdepfile"
    128195    exit $stat
     
    132199
    133200gcc)
     201## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
     202## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
     203## (see the conditional assignment to $gccflag above).
    134204## There are various ways to get dependency output from gcc.  Here's
    135205## why we pick this rather obscure method:
     
    138208##   (We might end up doing this anyway to support other compilers.)
    139209## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
    140 ##   -MM, not -M (despite what the docs say).
     210##   -MM, not -M (despite what the docs say).  Also, it might not be
     211##   supported by the other compilers which use the 'gcc' depmode.
    141212## - Using -M directly means running the compiler twice (even worse
    142213##   than renaming).
     
    146217  "$@" -Wp,"$gccflag$tmpdepfile"
    147218  stat=$?
    148   if test $stat -eq 0; then :
    149   else
     219  if test $stat -ne 0; then
    150220    rm -f "$tmpdepfile"
    151221    exit $stat
     
    153223  rm -f "$depfile"
    154224  echo "$object : \\" > "$depfile"
    155   alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
    156 ## The second -e expression handles DOS-style file names with drive letters.
     225  # The second -e expression handles DOS-style file names with drive
     226  # letters.
    157227  sed -e 's/^[^:]*: / /' \
    158228      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
    159 ## This next piece of magic avoids the `deleted header file' problem.
     229## This next piece of magic avoids the "deleted header file" problem.
    160230## The problem is that when a header file which appears in a .P file
    161231## is deleted, the dependency causes make to die (because there is
     
    163233## dummy dependencies for each header file.  Too bad gcc doesn't do
    164234## this for us directly.
    165   tr ' ' '
    166 ' < "$tmpdepfile" |
    167 ## Some versions of gcc put a space before the `:'.  On the theory
     235## Some versions of gcc put a space before the ':'.  On the theory
    168236## that the space means something, we add a space to the output as
    169237## well.  hp depmode also adds that space, but also prefixes the VPATH
     
    171239## Some versions of the HPUX 10.20 sed can't process this invocation
    172240## correctly.  Breaking it into two sed invocations is a workaround.
    173     sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
    174       | sed -e 's/$/ :/' >> "$depfile"
     241  tr ' ' "$nl" < "$tmpdepfile" \
     242    | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
     243    | sed -e 's/$/ :/' >> "$depfile"
    175244  rm -f "$tmpdepfile"
    176245  ;;
     
    190259  fi
    191260  stat=$?
    192   if test $stat -eq 0; then :
    193   else
     261  if test $stat -ne 0; then
    194262    rm -f "$tmpdepfile"
    195263    exit $stat
     
    199267  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
    200268    echo "$object : \\" > "$depfile"
    201 
    202269    # Clip off the initial element (the dependent).  Don't try to be
    203270    # clever and replace this with sed code, as IRIX sed won't handle
    204271    # lines with more than a fixed number of characters (4096 in
    205272    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
    206     # the IRIX cc adds comments like `#:fec' to the end of the
     273    # the IRIX cc adds comments like '#:fec' to the end of the
    207274    # dependency line.
    208     tr ' ' '
    209 ' < "$tmpdepfile" \
    210     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
    211     tr '
    212 ' ' ' >> "$depfile"
     275    tr ' ' "$nl" < "$tmpdepfile" \
     276      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
     277      | tr "$nl" ' ' >> "$depfile"
    213278    echo >> "$depfile"
    214 
    215279    # The second pass generates a dummy entry for each header file.
    216     tr ' ' '
    217 ' < "$tmpdepfile" \
    218    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
    219    >> "$depfile"
     280    tr ' ' "$nl" < "$tmpdepfile" \
     281      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
     282      >> "$depfile"
    220283  else
    221     # The sourcefile does not contain any dependencies, so just
    222     # store a dummy comment line, to avoid errors with the Makefile
    223     # "include basename.Plo" scheme.
    224     echo "#dummy" > "$depfile"
     284    make_dummy_depfile
    225285  fi
    226286  rm -f "$tmpdepfile"
     287  ;;
     288
     289xlc)
     290  # This case exists only to let depend.m4 do its work.  It works by
     291  # looking at the text of this script.  This case will never be run,
     292  # since it is checked for above.
     293  exit 1
    227294  ;;
    228295
     
    230297  # The C for AIX Compiler uses -M and outputs the dependencies
    231298  # in a .u file.  In older versions, this file always lives in the
    232   # current directory.  Also, the AIX compiler puts `$object:' at the
     299  # current directory.  Also, the AIX compiler puts '$object:' at the
    233300  # start of each line; $object doesn't have directory information.
    234301  # Version 6 uses the directory in both cases.
    235   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
    236   test "x$dir" = "x$object" && dir=
    237   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
     302  set_dir_from "$object"
     303  set_base_from "$object"
    238304  if test "$libtool" = yes; then
    239305    tmpdepfile1=$dir$base.u
     
    248314  fi
    249315  stat=$?
    250 
    251   if test $stat -eq 0; then :
    252   else
     316  if test $stat -ne 0; then
    253317    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
    254318    exit $stat
     
    259323    test -f "$tmpdepfile" && break
    260324  done
    261   if test -f "$tmpdepfile"; then
    262     # Each line is of the form `foo.o: dependent.h'.
    263     # Do two passes, one to just change these to
    264     # `$object: dependent.h' and one to simply `dependent.h:'.
    265     sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
    266     # That's a tab and a space in the [].
    267     sed -e 's,^.*\.[a-z]*:[      ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
    268   else
    269     # The sourcefile does not contain any dependencies, so just
    270     # store a dummy comment line, to avoid errors with the Makefile
    271     # "include basename.Plo" scheme.
    272     echo "#dummy" > "$depfile"
    273   fi
     325  aix_post_process_depfile
     326  ;;
     327
     328tcc)
     329  # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
     330  # FIXME: That version still under development at the moment of writing.
     331  #        Make that this statement remains true also for stable, released
     332  #        versions.
     333  # It will wrap lines (doesn't matter whether long or short) with a
     334  # trailing '\', as in:
     335  #
     336  #   foo.o : \
     337  #    foo.c \
     338  #    foo.h \
     339  #
     340  # It will put a trailing '\' even on the last line, and will use leading
     341  # spaces rather than leading tabs (at least since its commit 0394caf7
     342  # "Emit spaces for -MD").
     343  "$@" -MD -MF "$tmpdepfile"
     344  stat=$?
     345  if test $stat -ne 0; then
     346    rm -f "$tmpdepfile"
     347    exit $stat
     348  fi
     349  rm -f "$depfile"
     350  # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
     351  # We have to change lines of the first kind to '$object: \'.
     352  sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
     353  # And for each line of the second kind, we have to emit a 'dep.h:'
     354  # dummy dependency, to avoid the deleted-header problem.
     355  sed -n -e 's|^  *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
    274356  rm -f "$tmpdepfile"
    275357  ;;
    276358
    277 icc)
    278   # Intel's C compiler understands `-MD -MF file'.  However on
    279   #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
    280   # ICC 7.0 will fill foo.d with something like
    281   #    foo.o: sub/foo.c
    282   #    foo.o: sub/foo.h
    283   # which is wrong.  We want:
    284   #    sub/foo.o: sub/foo.c
    285   #    sub/foo.o: sub/foo.h
    286   #    sub/foo.c:
    287   #    sub/foo.h:
    288   # ICC 7.1 will output
     359## The order of this option in the case statement is important, since the
     360## shell code in configure will try each of these formats in the order
     361## listed in this file.  A plain '-MD' option would be understood by many
     362## compilers, so we must ensure this comes after the gcc and icc options.
     363pgcc)
     364  # Portland's C compiler understands '-MD'.
     365  # Will always output deps to 'file.d' where file is the root name of the
     366  # source file under compilation, even if file resides in a subdirectory.
     367  # The object file name does not affect the name of the '.d' file.
     368  # pgcc 10.2 will output
    289369  #    foo.o: sub/foo.c sub/foo.h
    290   # and will wrap long lines using \ :
     370  # and will wrap long lines using '\' :
    291371  #    foo.o: sub/foo.c ... \
    292372  #     sub/foo.h ... \
    293373  #     ...
    294 
    295   "$@" -MD -MF "$tmpdepfile"
    296   stat=$?
    297   if test $stat -eq 0; then :
    298   else
     374  set_dir_from "$object"
     375  # Use the source, not the object, to determine the base name, since
     376  # that's sadly what pgcc will do too.
     377  set_base_from "$source"
     378  tmpdepfile=$base.d
     379
     380  # For projects that build the same source file twice into different object
     381  # files, the pgcc approach of using the *source* file root name can cause
     382  # problems in parallel builds.  Use a locking strategy to avoid stomping on
     383  # the same $tmpdepfile.
     384  lockdir=$base.d-lock
     385  trap "
     386    echo '$0: caught signal, cleaning up...' >&2
     387    rmdir '$lockdir'
     388    exit 1
     389  " 1 2 13 15
     390  numtries=100
     391  i=$numtries
     392  while test $i -gt 0; do
     393    # mkdir is a portable test-and-set.
     394    if mkdir "$lockdir" 2>/dev/null; then
     395      # This process acquired the lock.
     396      "$@" -MD
     397      stat=$?
     398      # Release the lock.
     399      rmdir "$lockdir"
     400      break
     401    else
     402      # If the lock is being held by a different process, wait
     403      # until the winning process is done or we timeout.
     404      while test -d "$lockdir" && test $i -gt 0; do
     405        sleep 1
     406        i=`expr $i - 1`
     407      done
     408    fi
     409    i=`expr $i - 1`
     410  done
     411  trap - 1 2 13 15
     412  if test $i -le 0; then
     413    echo "$0: failed to acquire lock after $numtries attempts" >&2
     414    echo "$0: check lockdir '$lockdir'" >&2
     415    exit 1
     416  fi
     417
     418  if test $stat -ne 0; then
    299419    rm -f "$tmpdepfile"
    300420    exit $stat
     
    308428  # Some versions of the HPUX 10.20 sed can't process this invocation
    309429  # correctly.  Breaking it into two sed invocations is a workaround.
    310   sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
    311     sed -e 's/$/ :/' >> "$depfile"
     430  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
     431    | sed -e 's/$/ :/' >> "$depfile"
    312432  rm -f "$tmpdepfile"
    313433  ;;
     
    320440  # happens to be.
    321441  # Much of this is similar to the tru64 case; see comments there.
    322   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
    323   test "x$dir" = "x$object" && dir=
    324   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
     442  set_dir_from  "$object"
     443  set_base_from "$object"
    325444  if test "$libtool" = yes; then
    326445    tmpdepfile1=$dir$base.d
     
    333452  fi
    334453  stat=$?
    335   if test $stat -eq 0; then :
    336   else
     454  if test $stat -ne 0; then
    337455     rm -f "$tmpdepfile1" "$tmpdepfile2"
    338456     exit $stat
     
    344462  done
    345463  if test -f "$tmpdepfile"; then
    346     sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
    347     # Add `dependent.h:' lines.
     464    sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
     465    # Add 'dependent.h:' lines.
    348466    sed -ne '2,${
    349                s/^ *//
    350                s/ \\*$//
    351                s/$/:/
    352                p
    353              }' "$tmpdepfile" >> "$depfile"
     467               s/^ *//
     468               s/ \\*$//
     469               s/$/:/
     470               p
     471             }' "$tmpdepfile" >> "$depfile"
    354472  else
    355     echo "#dummy" > "$depfile"
     473    make_dummy_depfile
    356474  fi
    357475  rm -f "$tmpdepfile" "$tmpdepfile2"
     
    359477
    360478tru64)
    361    # The Tru64 compiler uses -MD to generate dependencies as a side
    362    # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
    363    # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
    364    # dependencies in `foo.d' instead, so we check for that too.
    365    # Subdirectories are respected.
    366    dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
    367    test "x$dir" = "x$object" && dir=
    368    base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
    369 
    370    if test "$libtool" = yes; then
    371       # With Tru64 cc, shared objects can also be used to make a
    372       # static library.  This mechanism is used in libtool 1.4 series to
    373       # handle both shared and static libraries in a single compilation.
    374       # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
    375       #
    376       # With libtool 1.5 this exception was removed, and libtool now
    377       # generates 2 separate objects for the 2 libraries.  These two
    378       # compilations output dependencies in $dir.libs/$base.o.d and
    379       # in $dir$base.o.d.  We have to check for both files, because
    380       # one of the two compilations can be disabled.  We should prefer
    381       # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
    382       # automatically cleaned when .libs/ is deleted, while ignoring
    383       # the former would cause a distcleancheck panic.
    384       tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
    385       tmpdepfile2=$dir$base.o.d          # libtool 1.5
    386       tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
    387       tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
    388       "$@" -Wc,-MD
    389    else
    390       tmpdepfile1=$dir$base.o.d
    391       tmpdepfile2=$dir$base.d
    392       tmpdepfile3=$dir$base.d
    393       tmpdepfile4=$dir$base.d
    394       "$@" -MD
    395    fi
    396 
    397    stat=$?
    398    if test $stat -eq 0; then :
    399    else
    400       rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
    401       exit $stat
    402    fi
    403 
    404    for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
    405    do
    406      test -f "$tmpdepfile" && break
    407    done
    408    if test -f "$tmpdepfile"; then
    409       sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
    410       # That's a tab and a space in the [].
    411       sed -e 's,^.*\.[a-z]*:[    ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
    412    else
    413       echo "#dummy" > "$depfile"
    414    fi
    415    rm -f "$tmpdepfile"
    416    ;;
     479  # The Tru64 compiler uses -MD to generate dependencies as a side
     480  # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
     481  # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
     482  # dependencies in 'foo.d' instead, so we check for that too.
     483  # Subdirectories are respected.
     484  set_dir_from  "$object"
     485  set_base_from "$object"
     486
     487  if test "$libtool" = yes; then
     488    # Libtool generates 2 separate objects for the 2 libraries.  These
     489    # two compilations output dependencies in $dir.libs/$base.o.d and
     490    # in $dir$base.o.d.  We have to check for both files, because
     491    # one of the two compilations can be disabled.  We should prefer
     492    # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
     493    # automatically cleaned when .libs/ is deleted, while ignoring
     494    # the former would cause a distcleancheck panic.
     495    tmpdepfile1=$dir$base.o.d          # libtool 1.5
     496    tmpdepfile2=$dir.libs/$base.o.d    # Likewise.
     497    tmpdepfile3=$dir.libs/$base.d      # Compaq CCC V6.2-504
     498    "$@" -Wc,-MD
     499  else
     500    tmpdepfile1=$dir$base.d
     501    tmpdepfile2=$dir$base.d
     502    tmpdepfile3=$dir$base.d
     503    "$@" -MD
     504  fi
     505
     506  stat=$?
     507  if test $stat -ne 0; then
     508    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
     509    exit $stat
     510  fi
     511
     512  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
     513  do
     514    test -f "$tmpdepfile" && break
     515  done
     516  # Same post-processing that is required for AIX mode.
     517  aix_post_process_depfile
     518  ;;
    417519
    418520msvc7)
     
    425527  stat=$?
    426528  grep -v '^Note: including file: ' "$tmpdepfile"
    427   if test "$stat" = 0; then :
    428   else
     529  if test $stat -ne 0; then
    429530    rm -f "$tmpdepfile"
    430531    exit $stat
     
    444545}' | $cygpath_u | sort -u | sed -n '
    445546s/ /\\ /g
    446 s/\(.*\)/       \1 \\/p
     547s/\(.*\)/'"$tab"'\1 \\/p
    447548s/.\(.*\) \\/\1:/
    448549H
    449550$ {
    450   s/.*/ /
     551  s/.*/'"$tab"'/
    451552  G
    452553  p
    453554}' >> "$depfile"
     555  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
    454556  rm -f "$tmpdepfile"
    455557  ;;
     
    479581  fi
    480582
    481   # Remove `-o $object'.
     583  # Remove '-o $object'.
    482584  IFS=" "
    483585  for arg
     
    499601
    500602  test -z "$dashmflag" && dashmflag=-M
    501   # Require at least two characters before searching for `:'
     603  # Require at least two characters before searching for ':'
    502604  # in the target name.  This is to cope with DOS-style filenames:
    503   # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
     605  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
    504606  "$@" $dashmflag |
    505     sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
     607    sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
    506608  rm -f "$depfile"
    507609  cat < "$tmpdepfile" > "$depfile"
    508   tr ' ' '
    509 ' < "$tmpdepfile" | \
    510 ## Some versions of the HPUX 10.20 sed can't process this invocation
    511 ## correctly.  Breaking it into two sed invocations is a workaround.
    512     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
     610  # Some versions of the HPUX 10.20 sed can't process this sed invocation
     611  # correctly.  Breaking it into two sed invocations is a workaround.
     612  tr ' ' "$nl" < "$tmpdepfile" \
     613    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
     614    | sed -e 's/$/ :/' >> "$depfile"
    513615  rm -f "$tmpdepfile"
    514616  ;;
     
    563665  # No need to regex-escape $object, excess matching of '.' is harmless.
    564666  sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
    565   sed '1,2d' "$tmpdepfile" | tr ' ' '
    566 ' | \
    567 ## Some versions of the HPUX 10.20 sed can't process this invocation
    568 ## correctly.  Breaking it into two sed invocations is a workaround.
    569     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
     667  # Some versions of the HPUX 10.20 sed can't process the last invocation
     668  # correctly.  Breaking it into two sed invocations is a workaround.
     669  sed '1,2d' "$tmpdepfile" \
     670    | tr ' ' "$nl" \
     671    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
     672    | sed -e 's/$/ :/' >> "$depfile"
    570673  rm -f "$tmpdepfile" "$tmpdepfile".bak
    571674  ;;
     
    584687  fi
    585688
    586   # Remove `-o $object'.
     689  # Remove '-o $object'.
    587690  IFS=" "
    588691  for arg
     
    603706  done
    604707
    605   "$@" -E |
    606     sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
    607        -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
    608     sed '$ s: \\$::' > "$tmpdepfile"
     708  "$@" -E \
     709    | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
     710             -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
     711    | sed '$ s: \\$::' > "$tmpdepfile"
    609712  rm -f "$depfile"
    610713  echo "$object : \\" > "$depfile"
     
    638741      ;;
    639742    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
    640         set fnord "$@"
    641         shift
    642         shift
    643         ;;
     743        set fnord "$@"
     744        shift
     745        shift
     746        ;;
    644747    *)
    645         set fnord "$@" "$arg"
    646         shift
    647         shift
    648         ;;
     748        set fnord "$@" "$arg"
     749        shift
     750        shift
     751        ;;
    649752    esac
    650753  done
     
    653756  rm -f "$depfile"
    654757  echo "$object : \\" > "$depfile"
    655   sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::      \1 \\:p' >> "$depfile"
    656   echo "        " >> "$depfile"
     758  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
     759  echo "$tab" >> "$depfile"
    657760  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
    658761  rm -f "$tmpdepfile"
  • automake/install-sh

    r03eedd5 r926341c  
    22# install - install a program, script, or datafile
    33
    4 scriptversion=2011-01-19.21; # UTC
     4scriptversion=2014-09-12.12; # UTC
    55
    66# This originates from X11R5 (mit/util/scripts/install.sh), which was
     
    3636#
    3737# Calling this script install-sh is preferred over install.sh, to prevent
    38 # `make' implicit rules from creating a file called install from it
     38# 'make' implicit rules from creating a file called install from it
    3939# when there is no Makefile.
    4040#
     
    4242# from scratch.
    4343
     44tab='   '
    4445nl='
    4546'
    46 IFS=" ""        $nl"
    47 
    48 # set DOITPROG to echo to test this script
    49 
    50 # Don't use :- since 4.3BSD and earlier shells don't like it.
     47IFS=" $tab$nl"
     48
     49# Set DOITPROG to "echo" to test this script.
     50
    5151doit=${DOITPROG-}
    52 if test -z "$doit"; then
    53   doit_exec=exec
    54 else
    55   doit_exec=$doit
    56 fi
     52doit_exec=${doit:-exec}
    5753
    5854# Put in absolute file names if you don't have them in your path;
     
    6965stripprog=${STRIPPROG-strip}
    7066
    71 posix_glob='?'
    72 initialize_posix_glob='
    73   test "$posix_glob" != "?" || {
    74     if (set -f) 2>/dev/null; then
    75       posix_glob=
    76     else
    77       posix_glob=:
    78     fi
    79   }
    80 '
    81 
    8267posix_mkdir=
    8368
     
    9883
    9984copy_on_change=false
    100 no_target_directory=
     85is_target_a_directory=possibly
    10186
    10287usage="\
     
    138123
    139124    -g) chgrpcmd="$chgrpprog $2"
    140         shift;;
     125        shift;;
    141126
    142127    --help) echo "$usage"; exit $?;;
    143128
    144129    -m) mode=$2
    145         case $mode in
    146           *' '* | *'    '* | *'
    147 '*        | *'*'* | *'?'* | *'['*)
    148             echo "$0: invalid mode: $mode" >&2
    149             exit 1;;
    150         esac
    151         shift;;
     130        case $mode in
     131          *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
     132            echo "$0: invalid mode: $mode" >&2
     133            exit 1;;
     134        esac
     135        shift;;
    152136
    153137    -o) chowncmd="$chownprog $2"
    154         shift;;
     138        shift;;
    155139
    156140    -s) stripcmd=$stripprog;;
    157141
    158     -t) dst_arg=$2
    159         # Protect names problematic for `test' and other utilities.
    160         case $dst_arg in
    161           -* | [=\(\)!]) dst_arg=./$dst_arg;;
    162         esac
    163         shift;;
    164 
    165     -T) no_target_directory=true;;
     142    -t)
     143        is_target_a_directory=always
     144        dst_arg=$2
     145        # Protect names problematic for 'test' and other utilities.
     146        case $dst_arg in
     147          -* | [=\(\)!]) dst_arg=./$dst_arg;;
     148        esac
     149        shift;;
     150
     151    -T) is_target_a_directory=never;;
    166152
    167153    --version) echo "$0 $scriptversion"; exit $?;;
    168154
    169     --) shift
    170         break;;
    171 
    172     -*) echo "$0: invalid option: $1" >&2
    173         exit 1;;
     155    --) shift
     156        break;;
     157
     158    -*) echo "$0: invalid option: $1" >&2
     159        exit 1;;
    174160
    175161    *)  break;;
     
    177163  shift
    178164done
     165
     166# We allow the use of options -d and -T together, by making -d
     167# take the precedence; this is for compatibility with GNU install.
     168
     169if test -n "$dir_arg"; then
     170  if test -n "$dst_arg"; then
     171    echo "$0: target directory not allowed when installing a directory." >&2
     172    exit 1
     173  fi
     174fi
    179175
    180176if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
     
    191187    shift # arg
    192188    dst_arg=$arg
    193     # Protect names problematic for `test' and other utilities.
     189    # Protect names problematic for 'test' and other utilities.
    194190    case $dst_arg in
    195191      -* | [=\(\)!]) dst_arg=./$dst_arg;;
     
    203199    exit 1
    204200  fi
    205   # It's OK to call `install-sh -d' without argument.
     201  # It's OK to call 'install-sh -d' without argument.
    206202  # This can happen when creating conditional directories.
    207203  exit 0
     204fi
     205
     206if test -z "$dir_arg"; then
     207  if test $# -gt 1 || test "$is_target_a_directory" = always; then
     208    if test ! -d "$dst_arg"; then
     209      echo "$0: $dst_arg: Is not a directory." >&2
     210      exit 1
     211    fi
     212  fi
    208213fi
    209214
     
    224229    *[0-7])
    225230      if test -z "$stripcmd"; then
    226         u_plus_rw=
     231        u_plus_rw=
    227232      else
    228         u_plus_rw='% 200'
     233        u_plus_rw='% 200'
    229234      fi
    230235      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
    231236    *)
    232237      if test -z "$stripcmd"; then
    233         u_plus_rw=
     238        u_plus_rw=
    234239      else
    235         u_plus_rw=,u+rw
     240        u_plus_rw=,u+rw
    236241      fi
    237242      cp_umask=$mode$u_plus_rw;;
     
    241246for src
    242247do
    243   # Protect names problematic for `test' and other utilities.
     248  # Protect names problematic for 'test' and other utilities.
    244249  case $src in
    245250    -* | [=\(\)!]) src=./$src;;
     
    270275    # if double slashes aren't ignored.
    271276    if test -d "$dst"; then
    272       if test -n "$no_target_directory"; then
    273         echo "$0: $dst_arg: Is a directory" >&2
    274         exit 1
     277      if test "$is_target_a_directory" = never; then
     278        echo "$0: $dst_arg: Is a directory" >&2
     279        exit 1
    275280      fi
    276281      dstdir=$dst
     
    278283      dstdir_status=0
    279284    else
    280       # Prefer dirname, but fall back on a substitute if dirname fails.
    281       dstdir=`
    282         (dirname "$dst") 2>/dev/null ||
    283         expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
    284              X"$dst" : 'X\(//\)[^/]' \| \
    285              X"$dst" : 'X\(//\)$' \| \
    286              X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
    287         echo X"$dst" |
    288             sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
    289                    s//\1/
    290                    q
    291                  }
    292                  /^X\(\/\/\)[^/].*/{
    293                    s//\1/
    294                    q
    295                  }
    296                  /^X\(\/\/\)$/{
    297                    s//\1/
    298                    q
    299                  }
    300                  /^X\(\/\).*/{
    301                    s//\1/
    302                    q
    303                  }
    304                  s/.*/./; q'
    305       `
    306 
     285      dstdir=`dirname "$dst"`
    307286      test -d "$dstdir"
    308287      dstdir_status=$?
     
    315294    case $posix_mkdir in
    316295      '')
    317         # Create intermediate dirs using mode 755 as modified by the umask.
    318         # This is like FreeBSD 'install' as of 1997-10-28.
    319         umask=`umask`
    320         case $stripcmd.$umask in
    321           # Optimize common cases.
    322           *[2367][2367]) mkdir_umask=$umask;;
    323           .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
    324 
    325           *[0-7])
    326             mkdir_umask=`expr $umask + 22 \
    327               - $umask % 100 % 40 + $umask % 20 \
    328               - $umask % 10 % 4 + $umask % 2
    329             `;;
    330           *) mkdir_umask=$umask,go-w;;
    331         esac
    332 
    333         # With -d, create the new directory with the user-specified mode.
    334         # Otherwise, rely on $mkdir_umask.
    335         if test -n "$dir_arg"; then
    336           mkdir_mode=-m$mode
    337         else
    338           mkdir_mode=
    339         fi
    340 
    341         posix_mkdir=false
    342         case $umask in
    343           *[123567][0-7][0-7])
    344             # POSIX mkdir -p sets u+wx bits regardless of umask, which
    345             # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
    346             ;;
    347           *)
    348             tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
    349             trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
    350 
    351             if (umask $mkdir_umask &&
    352                 exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
    353             then
    354               if test -z "$dir_arg" || {
    355                    # Check for POSIX incompatibilities with -m.
    356                    # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
    357                    # other-writeable bit of parent directory when it shouldn't.
    358                    # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
    359                    ls_ld_tmpdir=`ls -ld "$tmpdir"`
    360                    case $ls_ld_tmpdir in
    361                      d????-?r-*) different_mode=700;;
    362                      d????-?--*) different_mode=755;;
    363                      *) false;;
    364                    esac &&
    365                    $mkdirprog -m$different_mode -p -- "$tmpdir" && {
    366                      ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
    367                      test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
    368                    }
    369                  }
    370               then posix_mkdir=:
    371               fi
    372               rmdir "$tmpdir/d" "$tmpdir"
    373             else
    374               # Remove any dirs left behind by ancient mkdir implementations.
    375               rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
    376             fi
    377             trap '' 0;;
    378         esac;;
     296        # Create intermediate dirs using mode 755 as modified by the umask.
     297        # This is like FreeBSD 'install' as of 1997-10-28.
     298        umask=`umask`
     299        case $stripcmd.$umask in
     300          # Optimize common cases.
     301          *[2367][2367]) mkdir_umask=$umask;;
     302          .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
     303
     304          *[0-7])
     305            mkdir_umask=`expr $umask + 22 \
     306              - $umask % 100 % 40 + $umask % 20 \
     307              - $umask % 10 % 4 + $umask % 2
     308            `;;
     309          *) mkdir_umask=$umask,go-w;;
     310        esac
     311
     312        # With -d, create the new directory with the user-specified mode.
     313        # Otherwise, rely on $mkdir_umask.
     314        if test -n "$dir_arg"; then
     315          mkdir_mode=-m$mode
     316        else
     317          mkdir_mode=
     318        fi
     319
     320        posix_mkdir=false
     321        case $umask in
     322          *[123567][0-7][0-7])
     323            # POSIX mkdir -p sets u+wx bits regardless of umask, which
     324            # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
     325            ;;
     326          *)
     327            # $RANDOM is not portable (e.g. dash);  use it when possible to
     328            # lower collision chance
     329            tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
     330            trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
     331
     332            # As "mkdir -p" follows symlinks and we work in /tmp possibly;  so
     333            # create the $tmpdir first (and fail if unsuccessful) to make sure
     334            # that nobody tries to guess the $tmpdir name.
     335            if (umask $mkdir_umask &&
     336                $mkdirprog $mkdir_mode "$tmpdir" &&
     337                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
     338            then
     339              if test -z "$dir_arg" || {
     340                   # Check for POSIX incompatibilities with -m.
     341                   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
     342                   # other-writable bit of parent directory when it shouldn't.
     343                   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
     344                   test_tmpdir="$tmpdir/a"
     345                   ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
     346                   case $ls_ld_tmpdir in
     347                     d????-?r-*) different_mode=700;;
     348                     d????-?--*) different_mode=755;;
     349                     *) false;;
     350                   esac &&
     351                   $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
     352                     ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
     353                     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
     354                   }
     355                 }
     356              then posix_mkdir=:
     357              fi
     358              rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
     359            else
     360              # Remove any dirs left behind by ancient mkdir implementations.
     361              rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
     362            fi
     363            trap '' 0;;
     364        esac;;
    379365    esac
    380366
    381367    if
    382368      $posix_mkdir && (
    383         umask $mkdir_umask &&
    384         $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
     369        umask $mkdir_umask &&
     370        $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
    385371      )
    386372    then :
     
    392378
    393379      case $dstdir in
    394         /*) prefix='/';;
    395         [-=\(\)!]*) prefix='./';;
    396         *)  prefix='';;
     380        /*) prefix='/';;
     381        [-=\(\)!]*) prefix='./';;
     382        *)  prefix='';;
    397383      esac
    398 
    399       eval "$initialize_posix_glob"
    400384
    401385      oIFS=$IFS
    402386      IFS=/
    403       $posix_glob set -f
     387      set -f
    404388      set fnord $dstdir
    405389      shift
    406       $posix_glob set +f
     390      set +f
    407391      IFS=$oIFS
    408392
     
    411395      for d
    412396      do
    413         test X"$d" = X && continue
    414 
    415         prefix=$prefix$d
    416         if test -d "$prefix"; then
    417           prefixes=
    418         else
    419           if $posix_mkdir; then
    420             (umask=$mkdir_umask &&
    421              $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
    422             # Don't fail if two instances are running concurrently.
    423             test -d "$prefix" || exit 1
    424           else
    425             case $prefix in
    426               *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
    427               *) qprefix=$prefix;;
    428             esac
    429             prefixes="$prefixes '$qprefix'"
    430           fi
    431         fi
    432         prefix=$prefix/
     397        test X"$d" = X && continue
     398
     399        prefix=$prefix$d
     400        if test -d "$prefix"; then
     401          prefixes=
     402        else
     403          if $posix_mkdir; then
     404            (umask=$mkdir_umask &&
     405             $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
     406            # Don't fail if two instances are running concurrently.
     407            test -d "$prefix" || exit 1
     408          else
     409            case $prefix in
     410              *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
     411              *) qprefix=$prefix;;
     412            esac
     413            prefixes="$prefixes '$qprefix'"
     414          fi
     415        fi
     416        prefix=$prefix/
    433417      done
    434418
    435419      if test -n "$prefixes"; then
    436         # Don't fail if two instances are running concurrently.
    437         (umask $mkdir_umask &&
    438         eval "\$doit_exec \$mkdirprog $prefixes") ||
    439           test -d "$dstdir" || exit 1
    440         obsolete_mkdir_used=true
     420        # Don't fail if two instances are running concurrently.
     421        (umask $mkdir_umask &&
     422        eval "\$doit_exec \$mkdirprog $prefixes") ||
     423          test -d "$dstdir" || exit 1
     424        obsolete_mkdir_used=true
    441425      fi
    442426    fi
     
    473457    # If -C, don't bother to copy if it wouldn't change the file.
    474458    if $copy_on_change &&
    475        old=`LC_ALL=C ls -dlL "$dst"     2>/dev/null` &&
    476        new=`LC_ALL=C ls -dlL "$dsttmp"  2>/dev/null` &&
    477 
    478        eval "$initialize_posix_glob" &&
    479        $posix_glob set -f &&
     459       old=`LC_ALL=C ls -dlL "$dst"     2>/dev/null` &&
     460       new=`LC_ALL=C ls -dlL "$dsttmp"  2>/dev/null` &&
     461       set -f &&
    480462       set X $old && old=:$2:$4:$5:$6 &&
    481463       set X $new && new=:$2:$4:$5:$6 &&
    482        $posix_glob set +f &&
    483 
     464       set +f &&
    484465       test "$old" = "$new" &&
    485466       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
     
    494475      # support -f.
    495476      {
    496         # Now remove or move aside any old file at destination location.
    497         # We try this two ways since rm can't unlink itself on some
    498         # systems and the destination file might be busy for other
    499         # reasons.  In this case, the final cleanup might fail but the new
    500         # file should still install successfully.
    501         {
    502           test ! -f "$dst" ||
    503           $doit $rmcmd -f "$dst" 2>/dev/null ||
    504           { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
    505             { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
    506           } ||
    507           { echo "$0: cannot unlink or rename $dst" >&2
    508             (exit 1); exit 1
    509           }
    510         } &&
    511 
    512         # Now rename the file to the real destination.
    513         $doit $mvcmd "$dsttmp" "$dst"
     477        # Now remove or move aside any old file at destination location.
     478        # We try this two ways since rm can't unlink itself on some
     479        # systems and the destination file might be busy for other
     480        # reasons.  In this case, the final cleanup might fail but the new
     481        # file should still install successfully.
     482        {
     483          test ! -f "$dst" ||
     484          $doit $rmcmd -f "$dst" 2>/dev/null ||
     485          { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
     486            { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
     487          } ||
     488          { echo "$0: cannot unlink or rename $dst" >&2
     489            (exit 1); exit 1
     490          }
     491        } &&
     492
     493        # Now rename the file to the real destination.
     494        $doit $mvcmd "$dsttmp" "$dst"
    514495      }
    515496    fi || exit 1
  • automake/test-driver

    • Property mode changed from 120000 to 100755
    r03eedd5 r926341c  
    1 /usr/share/automake-1.15/test-driver
     1#! /bin/sh
     2# test-driver - basic testsuite driver script.
     3
     4scriptversion=2013-07-13.22; # UTC
     5
     6# Copyright (C) 2011-2014 Free Software Foundation, Inc.
     7#
     8# This program is free software; you can redistribute it and/or modify
     9# it under the terms of the GNU General Public License as published by
     10# the Free Software Foundation; either version 2, or (at your option)
     11# any later version.
     12#
     13# This program is distributed in the hope that it will be useful,
     14# but WITHOUT ANY WARRANTY; without even the implied warranty of
     15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     16# GNU 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, see <http://www.gnu.org/licenses/>.
     20
     21# As a special exception to the GNU General Public License, if you
     22# distribute this file as part of a program that contains a
     23# configuration script generated by Autoconf, you may include it under
     24# the same distribution terms that you use for the rest of that program.
     25
     26# This file is maintained in Automake, please report
     27# bugs to <bug-automake@gnu.org> or send patches to
     28# <automake-patches@gnu.org>.
     29
     30# Make unconditional expansion of undefined variables an error.  This
     31# helps a lot in preventing typo-related bugs.
     32set -u
     33
     34usage_error ()
     35{
     36  echo "$0: $*" >&2
     37  print_usage >&2
     38  exit 2
     39}
     40
     41print_usage ()
     42{
     43  cat <<END
     44Usage:
     45  test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
     46              [--expect-failure={yes|no}] [--color-tests={yes|no}]
     47              [--enable-hard-errors={yes|no}] [--]
     48              TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
     49The '--test-name', '--log-file' and '--trs-file' options are mandatory.
     50END
     51}
     52
     53test_name= # Used for reporting.
     54log_file=  # Where to save the output of the test script.
     55trs_file=  # Where to save the metadata of the test run.
     56expect_failure=no
     57color_tests=no
     58enable_hard_errors=yes
     59while test $# -gt 0; do
     60  case $1 in
     61  --help) print_usage; exit $?;;
     62  --version) echo "test-driver $scriptversion"; exit $?;;
     63  --test-name) test_name=$2; shift;;
     64  --log-file) log_file=$2; shift;;
     65  --trs-file) trs_file=$2; shift;;
     66  --color-tests) color_tests=$2; shift;;
     67  --expect-failure) expect_failure=$2; shift;;
     68  --enable-hard-errors) enable_hard_errors=$2; shift;;
     69  --) shift; break;;
     70  -*) usage_error "invalid option: '$1'";;
     71   *) break;;
     72  esac
     73  shift
     74done
     75
     76missing_opts=
     77test x"$test_name" = x && missing_opts="$missing_opts --test-name"
     78test x"$log_file"  = x && missing_opts="$missing_opts --log-file"
     79test x"$trs_file"  = x && missing_opts="$missing_opts --trs-file"
     80if test x"$missing_opts" != x; then
     81  usage_error "the following mandatory options are missing:$missing_opts"
     82fi
     83
     84if test $# -eq 0; then
     85  usage_error "missing argument"
     86fi
     87
     88if test $color_tests = yes; then
     89  # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
     90  red='[0;31m' # Red.
     91  grn='[0;32m' # Green.
     92  lgn='[1;32m' # Light green.
     93  blu='[1;34m' # Blue.
     94  mgn='[0;35m' # Magenta.
     95  std='[m'     # No color.
     96else
     97  red= grn= lgn= blu= mgn= std=
     98fi
     99
     100do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
     101trap "st=129; $do_exit" 1
     102trap "st=130; $do_exit" 2
     103trap "st=141; $do_exit" 13
     104trap "st=143; $do_exit" 15
     105
     106# Test script is run here.
     107"$@" >$log_file 2>&1
     108estatus=$?
     109
     110if test $enable_hard_errors = no && test $estatus -eq 99; then
     111  tweaked_estatus=1
     112else
     113  tweaked_estatus=$estatus
     114fi
     115
     116case $tweaked_estatus:$expect_failure in
     117  0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
     118  0:*)   col=$grn res=PASS  recheck=no  gcopy=no;;
     119  77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;;
     120  99:*)  col=$mgn res=ERROR recheck=yes gcopy=yes;;
     121  *:yes) col=$lgn res=XFAIL recheck=no  gcopy=yes;;
     122  *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;;
     123esac
     124
     125# Report the test outcome and exit status in the logs, so that one can
     126# know whether the test passed or failed simply by looking at the '.log'
     127# file, without the need of also peaking into the corresponding '.trs'
     128# file (automake bug#11814).
     129echo "$res $test_name (exit status: $estatus)" >>$log_file
     130
     131# Report outcome to console.
     132echo "${col}${res}${std}: $test_name"
     133
     134# Register the test result, and other relevant metadata.
     135echo ":test-result: $res" > $trs_file
     136echo ":global-test-result: $res" >> $trs_file
     137echo ":recheck: $recheck" >> $trs_file
     138echo ":copy-in-global-log: $gcopy" >> $trs_file
     139
     140# Local Variables:
     141# mode: shell-script
     142# sh-indentation: 2
     143# eval: (add-hook 'write-file-hooks 'time-stamp)
     144# time-stamp-start: "scriptversion="
     145# time-stamp-format: "%:y-%02m-%02d.%02H"
     146# time-stamp-time-zone: "UTC"
     147# time-stamp-end: "; # UTC"
     148# End:
  • automake/ylwrap

    r03eedd5 r926341c  
    22# ylwrap - wrapper for lex/yacc invocations.
    33
    4 scriptversion=2011-08-25.18; # UTC
    5 
    6 # Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005,
    7 # 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
     4scriptversion=2013-01-12.17; # UTC
     5
     6# Copyright (C) 1996-2014 Free Software Foundation, Inc.
    87#
    98# Written by Tom Tromey <tromey@cygnus.com>.
     
    3130# <automake-patches@gnu.org>.
    3231
     32get_dirname ()
     33{
     34  case $1 in
     35    */*|*\\*) printf '%s\n' "$1" | sed -e 's|\([\\/]\)[^\\/]*$|\1|';;
     36    # Otherwise,  we want the empty string (not ".").
     37  esac
     38}
     39
     40# guard FILE
     41# ----------
     42# The CPP macro used to guard inclusion of FILE.
     43guard ()
     44{
     45  printf '%s\n' "$1"                                                    \
     46    | sed                                                               \
     47        -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'   \
     48        -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'                        \
     49        -e 's/__*/_/g'
     50}
     51
     52# quote_for_sed [STRING]
     53# ----------------------
     54# Return STRING (or stdin) quoted to be used as a sed pattern.
     55quote_for_sed ()
     56{
     57  case $# in
     58    0) cat;;
     59    1) printf '%s\n' "$1";;
     60  esac \
     61    | sed -e 's|[][\\.*]|\\&|g'
     62}
     63
    3364case "$1" in
    3465  '')
    35     echo "$0: No files given.  Try \`$0 --help' for more information." 1>&2
     66    echo "$0: No files given.  Try '$0 --help' for more information." 1>&2
    3667    exit 1
    3768    ;;
     
    6697
    6798# The input.
    68 input="$1"
     99input=$1
    69100shift
    70 case "$input" in
     101# We'll later need for a correct munging of "#line" directives.
     102input_sub_rx=`get_dirname "$input" | quote_for_sed`
     103case $input in
    71104  [\\/]* | ?:[\\/]*)
    72105    # Absolute path; do nothing.
     
    74107  *)
    75108    # Relative path.  Make it absolute.
    76     input="`pwd`/$input"
    77     ;;
    78 esac
    79 
    80 pairlist=
    81 while test "$#" -ne 0; do
    82   if test "$1" = "--"; then
     109    input=`pwd`/$input
     110    ;;
     111esac
     112input_rx=`get_dirname "$input" | quote_for_sed`
     113
     114# Since DOS filename conventions don't allow two dots,
     115# the DOS version of Bison writes out y_tab.c instead of y.tab.c
     116# and y_tab.h instead of y.tab.h. Test to see if this is the case.
     117y_tab_nodot=false
     118if test -f y_tab.c || test -f y_tab.h; then
     119  y_tab_nodot=true
     120fi
     121
     122# The parser itself, the first file, is the destination of the .y.c
     123# rule in the Makefile.
     124parser=$1
     125
     126# A sed program to s/FROM/TO/g for all the FROM/TO so that, for
     127# instance, we rename #include "y.tab.h" into #include "parse.h"
     128# during the conversion from y.tab.c to parse.c.
     129sed_fix_filenames=
     130
     131# Also rename header guards, as Bison 2.7 for instance uses its header
     132# guard in its implementation file.
     133sed_fix_header_guards=
     134
     135while test $# -ne 0; do
     136  if test x"$1" = x"--"; then
    83137    shift
    84138    break
    85139  fi
    86   pairlist="$pairlist $1"
     140  from=$1
     141  # Handle y_tab.c and y_tab.h output by DOS
     142  if $y_tab_nodot; then
     143    case $from in
     144      "y.tab.c") from=y_tab.c;;
     145      "y.tab.h") from=y_tab.h;;
     146    esac
     147  fi
    87148  shift
     149  to=$1
     150  shift
     151  sed_fix_filenames="${sed_fix_filenames}s|"`quote_for_sed "$from"`"|$to|g;"
     152  sed_fix_header_guards="${sed_fix_header_guards}s|"`guard "$from"`"|"`guard "$to"`"|g;"
    88153done
    89154
    90155# The program to run.
    91 prog="$1"
     156prog=$1
    92157shift
    93158# Make any relative path in $prog absolute.
    94 case "$prog" in
     159case $prog in
    95160  [\\/]* | ?:[\\/]*) ;;
    96   *[\\/]*) prog="`pwd`/$prog" ;;
    97 esac
    98 
    99 # FIXME: add hostname here for parallel makes that run commands on
    100 # other machines.  But that might take us over the 14-char limit.
     161  *[\\/]*) prog=`pwd`/$prog ;;
     162esac
     163
    101164dirname=ylwrap$$
    102165do_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (exit $ret); exit $ret'
     
    116179
    117180if test $ret -eq 0; then
    118   set X $pairlist
    119   shift
    120   first=yes
    121   # Since DOS filename conventions don't allow two dots,
    122   # the DOS version of Bison writes out y_tab.c instead of y.tab.c
    123   # and y_tab.h instead of y.tab.h. Test to see if this is the case.
    124   y_tab_nodot="no"
    125   if test -f y_tab.c || test -f y_tab.h; then
    126     y_tab_nodot="yes"
    127   fi
    128 
    129   # The directory holding the input.
    130   input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
    131   # Quote $INPUT_DIR so we can use it in a regexp.
    132   # FIXME: really we should care about more than `.' and `\'.
    133   input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`
    134 
    135   while test "$#" -ne 0; do
    136     from="$1"
    137     # Handle y_tab.c and y_tab.h output by DOS
    138     if test $y_tab_nodot = "yes"; then
    139       if test $from = "y.tab.c"; then
    140         from="y_tab.c"
    141       else
    142         if test $from = "y.tab.h"; then
    143           from="y_tab.h"
    144         fi
    145       fi
    146     fi
     181  for from in *
     182  do
     183    to=`printf '%s\n' "$from" | sed "$sed_fix_filenames"`
    147184    if test -f "$from"; then
    148185      # If $2 is an absolute path name, then just use that,
    149       # otherwise prepend `../'.
    150       case "$2" in
    151         [\\/]* | ?:[\\/]*) target="$2";;
    152         *) target="../$2";;
     186      # otherwise prepend '../'.
     187      case $to in
     188        [\\/]* | ?:[\\/]*) target=$to;;
     189        *) target=../$to;;
    153190      esac
    154191
    155       # We do not want to overwrite a header file if it hasn't
    156       # changed.  This avoid useless recompilations.  However the
    157       # parser itself (the first file) should always be updated,
    158       # because it is the destination of the .y.c rule in the
    159       # Makefile.  Divert the output of all other files to a temporary
    160       # file so we can compare them to existing versions.
    161       if test $first = no; then
    162         realtarget="$target"
    163         target="tmp-`echo $target | sed s/.*[\\/]//g`"
     192      # Do not overwrite unchanged header files to avoid useless
     193      # recompilations.  Always update the parser itself: it is the
     194      # destination of the .y.c rule in the Makefile.  Divert the
     195      # output of all other files to a temporary file so we can
     196      # compare them to existing versions.
     197      if test $from != $parser; then
     198        realtarget=$target
     199        target=tmp-`printf '%s\n' "$target" | sed 's|.*[\\/]||g'`
    164200      fi
    165       # Edit out `#line' or `#' directives.
    166       #
    167       # We don't want the resulting debug information to point at
    168       # an absolute srcdir; it is better for it to just mention the
    169       # .y file with no path.
    170       #
    171       # We want to use the real output file name, not yy.lex.c for
    172       # instance.
    173       #
    174       # We want the include guards to be adjusted too.
    175       FROM=`echo "$from" | sed \
    176             -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
    177             -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
    178       TARGET=`echo "$2" | sed \
    179             -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
    180             -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
    181 
    182       sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \
    183           -e "s,$FROM,$TARGET," "$from" >"$target" || ret=$?
    184 
    185       # Check whether header files must be updated.
    186       if test $first = no; then
     201
     202      # Munge "#line" or "#" directives.  Don't let the resulting
     203      # debug information point at an absolute srcdir.  Use the real
     204      # output file name, not yy.lex.c for instance.  Adjust the
     205      # include guards too.
     206      sed -e "/^#/!b"                           \
     207          -e "s|$input_rx|$input_sub_rx|"       \
     208          -e "$sed_fix_filenames"               \
     209          -e "$sed_fix_header_guards"           \
     210        "$from" >"$target" || ret=$?
     211
     212      # Check whether files must be updated.
     213      if test "$from" != "$parser"; then
    187214        if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then
    188           echo "$2" is unchanged
     215          echo "$to is unchanged"
    189216          rm -f "$target"
    190217        else
    191           echo updating "$2"
     218          echo "updating $to"
    192219          mv -f "$target" "$realtarget"
    193220        fi
    194221      fi
    195222    else
    196       # A missing file is only an error for the first file.  This
    197       # is a blatant hack to let us support using "yacc -d".  If -d
    198       # is not specified, we don't want an error when the header
    199       # file is "missing".
    200       if test $first = yes; then
     223      # A missing file is only an error for the parser.  This is a
     224      # blatant hack to let us support using "yacc -d".  If -d is not
     225      # specified, don't fail when the header file is "missing".
     226      if test "$from" = "$parser"; then
    201227        ret=1
    202228      fi
    203229    fi
    204     shift
    205     shift
    206     first=no
    207230  done
    208 else
    209   ret=$?
    210231fi
    211232
Note: See TracChangeset for help on using the changeset viewer.