Update configgmp.{guess,sub} from GMP v6.2.0
[sxemacs] / configgmp.sub
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* | zen* | 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 armcortex[arm][0-9] | armcortex[arm][0-9][0-9] |                        \
133 arm*neon | armxgene1 | armexynosm1 | armthunderx)
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: