github.com/aergoio/aergo@v1.3.1/libtool/src/gmp-6.1.2/config.sub (about)

     1  #! /bin/sh
     2  #
     3  # GMP config.sub wrapper.
     4  
     5  
     6  # Copyright 2000-2003, 2006, 2009-2016 Free Software Foundation, Inc.
     7  #
     8  #  This file is part of the GNU MP Library.
     9  #
    10  #  The GNU MP Library is free software; you can redistribute it and/or modify
    11  #  it under the terms of either:
    12  #
    13  #    * the GNU Lesser General Public License as published by the Free
    14  #      Software Foundation; either version 3 of the License, or (at your
    15  #      option) any later version.
    16  #
    17  #  or
    18  #
    19  #    * the GNU General Public License as published by the Free Software
    20  #      Foundation; either version 2 of the License, or (at your option) any
    21  #      later version.
    22  #
    23  #  or both in parallel, as here.
    24  #
    25  #  The GNU MP Library is distributed in the hope that it will be useful, but
    26  #  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
    27  #  or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    28  #  for more details.
    29  #
    30  #  You should have received copies of the GNU General Public License and the
    31  #  GNU Lesser General Public License along with the GNU MP Library.  If not,
    32  #  see https://www.gnu.org/licenses/.
    33  
    34  
    35  # Usage: config.sub CPU-VENDOR-OS
    36  #        config.sub ALIAS
    37  #
    38  # Validate and canonicalize the given configuration name, with special
    39  # handling for GMP extra CPU names.
    40  #
    41  # When the CPU isn't special the whole name is simply passed straight
    42  # through to configfsf.sub.
    43  #
    44  # When the CPU is a GMP extra, configfsf.sub is run on a similar CPU that it
    45  # will recognise.  For example "athlon-pc-freebsd3.5" is validated using
    46  # "i386-pc-freebsd3.5".
    47  #
    48  # Any canonicalizations made by configfsf.sub are preserved.  For example
    49  # given "athlon-linux", configfsf.sub is called with "i386-linux" and will
    50  # give back "i386-pc-linux-gnu".  "athlon" is then reinstated, so we print
    51  # "athlon-pc-linux-gnu".
    52  
    53  
    54  # Expect to find configfsf.sub in the same directory as this config.sub
    55  configfsf_sub="`echo \"$0\" | sed 's/config.sub$/configfsf.sub/'`"
    56  if test "$configfsf_sub" = "$0"; then
    57    echo "Cannot derive configfsf.sub from $0" 1>&2
    58    exit 1
    59  fi
    60  if test -f "$configfsf_sub"; then
    61    :
    62  else
    63    echo "$configfsf_sub not found" 1>&2
    64    exit 1
    65  fi
    66  
    67  # Always run configfsf.sub with $SHELL, like autoconf does for config.sub
    68  SHELL=${CONFIG_SHELL-/bin/sh}
    69  
    70  # Identify ourselves on --version, --help, etc
    71  case "$1" in
    72  "" | -*)
    73    echo "(GNU MP wrapped config.sub)" 1>&2
    74    $SHELL $configfsf_sub "$@"
    75    exit
    76    ;;
    77  esac
    78  
    79  given_full="$1"
    80  given_cpu=`echo "$given_full" | sed 's/-.*$//'`
    81  given_rest=`echo "$given_full" | sed 's/^[^-]*//'`
    82  
    83  
    84  # Aliases for GMP extras
    85  case "$given_cpu" in
    86    # configfsf.sub turns p5 into i586, instead use our exact cpu type
    87    p5 | p54)   given_cpu=pentium ;;
    88    p55)        given_cpu=pentiummmx ;;
    89  
    90    # configfsf.sub turns p6, pentiumii and pentiumiii into i686, instead use
    91    # our exact cpu types
    92    p6)         given_cpu=pentiumpro ;;
    93    pentiumii)  given_cpu=pentium2 ;;
    94    pentiumiii) given_cpu=pentium3 ;;
    95  esac
    96  given_full="$given_cpu$given_rest"
    97  
    98  
    99  # GMP extras and what to use for the config.sub test
   100  case "$given_cpu" in
   101  itanium | itanium2)
   102    test_cpu=ia64 ;;
   103  pentium | pentiummmx | pentiumpro | pentium[234m] | k[567] | k6[23] | geode | athlon | viac3*)
   104    test_cpu=i386 ;;
   105  athlon64 | atom | silvermont | goldmont | core2 | corei* | opteron | k[89] | k10 | bobcat | jaguar* | bulldozer* | piledriver* | steamroller* | excavator* | nano | nehalem* | westmere* | sandybridge* | ivybridge* | haswell* | broadwell* | skylake* | kabylake* | knightslanding)
   106    test_cpu=x86_64 ;;
   107  power[2-9] | power2sc)
   108    test_cpu=power ;;
   109  powerpc401 | powerpc403 | powerpc405 | \
   110  powerpc505 | \
   111  powerpc601 | powerpc602  | \
   112  powerpc603 | powerpc603e | \
   113  powerpc604 | powerpc604e | \
   114  powerpc620 | powerpc630  | powerpc970  | \
   115  powerpc740 | powerpc7400 | powerpc7450 | powerpc750  | \
   116  powerpc801 | powerpc821 | powerpc823  | powerpc860 | \
   117  powerpc64)
   118    test_cpu=powerpc ;;
   119  sparcv8 | supersparc | microsparc | \
   120  ultrasparc | ultrasparc2 | ultrasparc2i | ultrasparc3 | ultrasparct[12345])
   121    test_cpu=sparc ;;
   122  sh2)
   123    test_cpu=sh ;;
   124  
   125  z900 | z990 | z9 | z10 | z196)
   126    test_cpu=s390x;;
   127  z900esa | z990esa | z9esa | z10esa | z196esa)
   128    test_cpu=s390;;
   129  
   130  armsa1 | armxscale | arm9tdmi | arm9te |				\
   131  arm10* | arm11mpcore | armsa1 | arm1136 | arm1156 | arm1176 |		\
   132  armcortexa5 | armcortexa7 | armcortexa8 | armcortexa9 | armcortexa15 |	\
   133  armcortexr4 | armcortexr5 | armcortexm3 | arm*neon | xgene1 | exynosm1 | thunderx)
   134    test_cpu="arm";;
   135  
   136  *)
   137    # Don't need or want to change the given name, just run configfsf.sub
   138    $SHELL $configfsf_sub "$given_full"
   139    if test $? = 0; then
   140      exit 0
   141    else
   142      echo "(GNU MP wrapped config.sub, testing \"$given_full\")"
   143      exit 1
   144    fi
   145  esac
   146  
   147  
   148  test_full="$test_cpu$given_rest"
   149  canonical_full=`$SHELL $configfsf_sub "$test_full"`
   150  if test $? = 0; then
   151    :
   152  else
   153    echo "(GNU MP wrapped config.sub, testing \"$given_full\" as \"$test_full\")"
   154    exit 1
   155  fi
   156  
   157  canonical_rest=`echo "$canonical_full" | sed 's/^[^-]*//'`
   158  echo "$given_cpu$canonical_rest"
   159  exit 0
   160  
   161  
   162  
   163  # Local variables:
   164  # fill-column: 76
   165  # End: