annotate libffi/configure.host @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 84e7813d76e9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 # configure.host
kono
parents:
diff changeset
2 #
kono
parents:
diff changeset
3 # This shell script handles all host based configuration for libffi.
kono
parents:
diff changeset
4 #
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 # THIS TABLE IS SORTED. KEEP IT THAT WAY.
kono
parents:
diff changeset
7 # Most of the time we can define all the variables all at once...
kono
parents:
diff changeset
8 case "${host}" in
kono
parents:
diff changeset
9 aarch64*-*-*)
kono
parents:
diff changeset
10 TARGET=AARCH64; TARGETDIR=aarch64
kono
parents:
diff changeset
11 SOURCES="ffi.c sysv.S"
kono
parents:
diff changeset
12 ;;
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 alpha*-*-*)
kono
parents:
diff changeset
15 TARGET=ALPHA; TARGETDIR=alpha;
kono
parents:
diff changeset
16 # Support 128-bit long double, changeable via command-line switch.
kono
parents:
diff changeset
17 HAVE_LONG_DOUBLE='defined(__LONG_DOUBLE_128__)'
kono
parents:
diff changeset
18 SOURCES="ffi.c osf.S"
kono
parents:
diff changeset
19 ;;
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 arc*-*-*)
kono
parents:
diff changeset
22 TARGET=ARC; TARGETDIR=arc
kono
parents:
diff changeset
23 SOURCES="ffi.c arcompact.S"
kono
parents:
diff changeset
24 ;;
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26 arm*-*-*)
kono
parents:
diff changeset
27 TARGET=ARM; TARGETDIR=arm
kono
parents:
diff changeset
28 SOURCES="ffi.c sysv.S"
kono
parents:
diff changeset
29 ;;
kono
parents:
diff changeset
30
kono
parents:
diff changeset
31 avr32*-*-*)
kono
parents:
diff changeset
32 TARGET=AVR32; TARGETDIR=avr32
kono
parents:
diff changeset
33 SOURCES="ffi.c sysv.S"
kono
parents:
diff changeset
34 ;;
kono
parents:
diff changeset
35
kono
parents:
diff changeset
36 bfin*)
kono
parents:
diff changeset
37 TARGET=BFIN; TARGETDIR=bfin
kono
parents:
diff changeset
38 SOURCES="ffi.c sysv.S"
kono
parents:
diff changeset
39 ;;
kono
parents:
diff changeset
40
kono
parents:
diff changeset
41 cris-*-*)
kono
parents:
diff changeset
42 TARGET=LIBFFI_CRIS; TARGETDIR=cris
kono
parents:
diff changeset
43 SOURCES="ffi.c sysv.S"
kono
parents:
diff changeset
44 ;;
kono
parents:
diff changeset
45
kono
parents:
diff changeset
46 frv-*-*)
kono
parents:
diff changeset
47 TARGET=FRV; TARGETDIR=frv
kono
parents:
diff changeset
48 SOURCES="ffi.c eabi.S"
kono
parents:
diff changeset
49 ;;
kono
parents:
diff changeset
50
kono
parents:
diff changeset
51 hppa*-*-linux* | parisc*-*-linux* | hppa*-*-openbsd*)
kono
parents:
diff changeset
52 TARGET=PA_LINUX; TARGETDIR=pa
kono
parents:
diff changeset
53 SOURCES="ffi.c linux.S"
kono
parents:
diff changeset
54 ;;
kono
parents:
diff changeset
55 hppa*64-*-hpux*)
kono
parents:
diff changeset
56 TARGET=PA64_HPUX; TARGETDIR=pa
kono
parents:
diff changeset
57 ;;
kono
parents:
diff changeset
58 hppa*-*-hpux*)
kono
parents:
diff changeset
59 TARGET=PA_HPUX; TARGETDIR=pa
kono
parents:
diff changeset
60 SOURCES="ffi.c hpux32.S"
kono
parents:
diff changeset
61 ;;
kono
parents:
diff changeset
62
kono
parents:
diff changeset
63 i?86-*-freebsd* | i?86-*-openbsd*)
kono
parents:
diff changeset
64 TARGET=X86_FREEBSD; TARGETDIR=x86
kono
parents:
diff changeset
65 ;;
kono
parents:
diff changeset
66
kono
parents:
diff changeset
67 i?86-win32* | i?86-*-cygwin* | i?86-*-mingw* | i?86-*-os2* | i?86-*-interix* \
kono
parents:
diff changeset
68 | x86_64-*-cygwin* | x86_64-*-mingw*)
kono
parents:
diff changeset
69 TARGETDIR=x86
kono
parents:
diff changeset
70 if test $ac_cv_sizeof_size_t = 4; then
kono
parents:
diff changeset
71 TARGET=X86_WIN32
kono
parents:
diff changeset
72 else
kono
parents:
diff changeset
73 TARGET=X86_WIN64
kono
parents:
diff changeset
74 fi
kono
parents:
diff changeset
75 # All mingw/cygwin/win32 builds require -no-undefined for sharedlib.
kono
parents:
diff changeset
76 # We must also check with_cross_host to decide if this is a native
kono
parents:
diff changeset
77 # or cross-build and select where to install dlls appropriately.
kono
parents:
diff changeset
78 if test -n "$with_cross_host" &&
kono
parents:
diff changeset
79 test x"$with_cross_host" != x"no"; then
kono
parents:
diff changeset
80 AM_LTLDFLAGS='-no-undefined -bindir "$(toolexeclibdir)"';
kono
parents:
diff changeset
81 else
kono
parents:
diff changeset
82 AM_LTLDFLAGS='-no-undefined -bindir "$(bindir)"';
kono
parents:
diff changeset
83 fi
kono
parents:
diff changeset
84 ;;
kono
parents:
diff changeset
85
kono
parents:
diff changeset
86 i?86-*-darwin* | x86_64-*-darwin*)
kono
parents:
diff changeset
87 TARGETDIR=x86
kono
parents:
diff changeset
88 if test $ac_cv_sizeof_size_t = 4; then
kono
parents:
diff changeset
89 TARGET=X86_DARWIN
kono
parents:
diff changeset
90 else
kono
parents:
diff changeset
91 TARGET=X86_64_DARWIN
kono
parents:
diff changeset
92 fi
kono
parents:
diff changeset
93 ;;
kono
parents:
diff changeset
94
kono
parents:
diff changeset
95 i?86-*-* | x86_64-*-* | amd64-*)
kono
parents:
diff changeset
96 TARGETDIR=x86
kono
parents:
diff changeset
97 if test $ac_cv_sizeof_size_t = 4; then
kono
parents:
diff changeset
98 case "$host" in
kono
parents:
diff changeset
99 *-gnux32)
kono
parents:
diff changeset
100 TARGET=X86_64
kono
parents:
diff changeset
101 ;;
kono
parents:
diff changeset
102 *)
kono
parents:
diff changeset
103 echo 'int foo (void) { return __x86_64__; }' > conftest.c
kono
parents:
diff changeset
104 if $CC $CFLAGS -Werror -S conftest.c -o conftest.s > /dev/null 2>&1; then
kono
parents:
diff changeset
105 TARGET=X86_64;
kono
parents:
diff changeset
106 else
kono
parents:
diff changeset
107 TARGET=X86;
kono
parents:
diff changeset
108 fi
kono
parents:
diff changeset
109 rm -f conftest.*
kono
parents:
diff changeset
110 ;;
kono
parents:
diff changeset
111 esac
kono
parents:
diff changeset
112 else
kono
parents:
diff changeset
113 TARGET=X86_64;
kono
parents:
diff changeset
114 fi
kono
parents:
diff changeset
115 ;;
kono
parents:
diff changeset
116
kono
parents:
diff changeset
117 ia64*-*-*)
kono
parents:
diff changeset
118 TARGET=IA64; TARGETDIR=ia64
kono
parents:
diff changeset
119 SOURCES="ffi.c unix.S"
kono
parents:
diff changeset
120 ;;
kono
parents:
diff changeset
121
kono
parents:
diff changeset
122 m32r*-*-*)
kono
parents:
diff changeset
123 TARGET=M32R; TARGETDIR=m32r
kono
parents:
diff changeset
124 SOURCES="ffi.c sysv.S"
kono
parents:
diff changeset
125 ;;
kono
parents:
diff changeset
126
kono
parents:
diff changeset
127 m68k-*-*)
kono
parents:
diff changeset
128 TARGET=M68K; TARGETDIR=m68k
kono
parents:
diff changeset
129 SOURCES="ffi.c sysv.S"
kono
parents:
diff changeset
130 ;;
kono
parents:
diff changeset
131
kono
parents:
diff changeset
132 m88k-*-*)
kono
parents:
diff changeset
133 TARGET=M88K; TARGETDIR=m88k
kono
parents:
diff changeset
134 SOURCES="ffi.c obsd.S"
kono
parents:
diff changeset
135 ;;
kono
parents:
diff changeset
136
kono
parents:
diff changeset
137 microblaze*-*-*)
kono
parents:
diff changeset
138 TARGET=MICROBLAZE; TARGETDIR=microblaze
kono
parents:
diff changeset
139 SOURCES="ffi.c sysv.S"
kono
parents:
diff changeset
140 ;;
kono
parents:
diff changeset
141
kono
parents:
diff changeset
142 moxie-*-*)
kono
parents:
diff changeset
143 TARGET=MOXIE; TARGETDIR=moxie
kono
parents:
diff changeset
144 SOURCES="ffi.c eabi.S"
kono
parents:
diff changeset
145 ;;
kono
parents:
diff changeset
146
kono
parents:
diff changeset
147 metag-*-*)
kono
parents:
diff changeset
148 TARGET=METAG; TARGETDIR=metag
kono
parents:
diff changeset
149 SOURCES="ffi.c sysv.S"
kono
parents:
diff changeset
150 ;;
kono
parents:
diff changeset
151
kono
parents:
diff changeset
152 mips-sgi-irix5.* | mips-sgi-irix6.* | mips*-*-rtems*)
kono
parents:
diff changeset
153 TARGET=MIPS; TARGETDIR=mips
kono
parents:
diff changeset
154 ;;
kono
parents:
diff changeset
155 mips*-*linux* | mips*-*-openbsd*)
kono
parents:
diff changeset
156 # Support 128-bit long double for NewABI.
kono
parents:
diff changeset
157 HAVE_LONG_DOUBLE='defined(__mips64)'
kono
parents:
diff changeset
158 TARGET=MIPS; TARGETDIR=mips
kono
parents:
diff changeset
159 ;;
kono
parents:
diff changeset
160
kono
parents:
diff changeset
161 nios2*-linux*)
kono
parents:
diff changeset
162 TARGET=NIOS2; TARGETDIR=nios2
kono
parents:
diff changeset
163 SOURCES="ffi.c sysv.S"
kono
parents:
diff changeset
164 ;;
kono
parents:
diff changeset
165
kono
parents:
diff changeset
166 or1k*-linux*)
kono
parents:
diff changeset
167 TARGET=OR1K; TARGETDIR=or1k
kono
parents:
diff changeset
168 SOURCES="ffi.c sysv.S"
kono
parents:
diff changeset
169 ;;
kono
parents:
diff changeset
170
kono
parents:
diff changeset
171 powerpc*-*-linux* | powerpc-*-sysv*)
kono
parents:
diff changeset
172 TARGET=POWERPC; TARGETDIR=powerpc
kono
parents:
diff changeset
173 HAVE_LONG_DOUBLE_VARIANT=1
kono
parents:
diff changeset
174 ;;
kono
parents:
diff changeset
175 powerpc-*-amigaos*)
kono
parents:
diff changeset
176 TARGET=POWERPC; TARGETDIR=powerpc
kono
parents:
diff changeset
177 ;;
kono
parents:
diff changeset
178 powerpc-*-beos*)
kono
parents:
diff changeset
179 TARGET=POWERPC; TARGETDIR=powerpc
kono
parents:
diff changeset
180 ;;
kono
parents:
diff changeset
181 powerpc-*-darwin* | powerpc64-*-darwin*)
kono
parents:
diff changeset
182 TARGET=POWERPC_DARWIN; TARGETDIR=powerpc
kono
parents:
diff changeset
183 ;;
kono
parents:
diff changeset
184 powerpc-*-aix* | rs6000-*-aix*)
kono
parents:
diff changeset
185 TARGET=POWERPC_AIX; TARGETDIR=powerpc
kono
parents:
diff changeset
186 ;;
kono
parents:
diff changeset
187 powerpc-*-freebsd* | powerpc-*-openbsd*)
kono
parents:
diff changeset
188 TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc
kono
parents:
diff changeset
189 HAVE_LONG_DOUBLE_VARIANT=1
kono
parents:
diff changeset
190 ;;
kono
parents:
diff changeset
191 powerpc64-*-freebsd*)
kono
parents:
diff changeset
192 TARGET=POWERPC; TARGETDIR=powerpc
kono
parents:
diff changeset
193 ;;
kono
parents:
diff changeset
194 powerpc*-*-rtems*)
kono
parents:
diff changeset
195 TARGET=POWERPC; TARGETDIR=powerpc
kono
parents:
diff changeset
196 ;;
kono
parents:
diff changeset
197
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
198 riscv*-*)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
199 TARGET=RISCV; TARGETDIR=riscv
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
200 SOURCES="ffi.c sysv.S"
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
201 ;;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
202
111
kono
parents:
diff changeset
203 s390-*-* | s390x-*-*)
kono
parents:
diff changeset
204 TARGET=S390; TARGETDIR=s390
kono
parents:
diff changeset
205 SOURCES="ffi.c sysv.S"
kono
parents:
diff changeset
206 ;;
kono
parents:
diff changeset
207
kono
parents:
diff changeset
208 sh-*-* | sh[34]*-*-*)
kono
parents:
diff changeset
209 TARGET=SH; TARGETDIR=sh
kono
parents:
diff changeset
210 SOURCES="ffi.c sysv.S"
kono
parents:
diff changeset
211 ;;
kono
parents:
diff changeset
212 sh64-*-* | sh5*-*-*)
kono
parents:
diff changeset
213 TARGET=SH64; TARGETDIR=sh64
kono
parents:
diff changeset
214 SOURCES="ffi.c sysv.S"
kono
parents:
diff changeset
215 ;;
kono
parents:
diff changeset
216
kono
parents:
diff changeset
217 sparc*-*-*)
kono
parents:
diff changeset
218 TARGET=SPARC; TARGETDIR=sparc
kono
parents:
diff changeset
219 SOURCES="ffi.c ffi64.c v8.S v9.S"
kono
parents:
diff changeset
220 ;;
kono
parents:
diff changeset
221
kono
parents:
diff changeset
222 tile*-*)
kono
parents:
diff changeset
223 TARGET=TILE; TARGETDIR=tile
kono
parents:
diff changeset
224 SOURCES="ffi.c tile.S"
kono
parents:
diff changeset
225 ;;
kono
parents:
diff changeset
226
kono
parents:
diff changeset
227 vax-*-*)
kono
parents:
diff changeset
228 TARGET=VAX; TARGETDIR=vax
kono
parents:
diff changeset
229 SOURCES="ffi.c elfbsd.S"
kono
parents:
diff changeset
230 ;;
kono
parents:
diff changeset
231
kono
parents:
diff changeset
232 xtensa*-*)
kono
parents:
diff changeset
233 TARGET=XTENSA; TARGETDIR=xtensa
kono
parents:
diff changeset
234 SOURCES="ffi.c sysv.S"
kono
parents:
diff changeset
235 ;;
kono
parents:
diff changeset
236 esac
kono
parents:
diff changeset
237
kono
parents:
diff changeset
238 # ... but some of the cases above share configury.
kono
parents:
diff changeset
239 case "${TARGET}" in
kono
parents:
diff changeset
240 MIPS)
kono
parents:
diff changeset
241 SOURCES="ffi.c o32.S n32.S"
kono
parents:
diff changeset
242 ;;
kono
parents:
diff changeset
243 POWERPC)
kono
parents:
diff changeset
244 SOURCES="ffi.c ffi_sysv.c ffi_linux64.c sysv.S ppc_closure.S"
kono
parents:
diff changeset
245 SOURCES="${SOURCES} linux64.S linux64_closure.S"
kono
parents:
diff changeset
246 ;;
kono
parents:
diff changeset
247 POWERPC_AIX)
kono
parents:
diff changeset
248 SOURCES="ffi_darwin.c aix.S aix_closure.S"
kono
parents:
diff changeset
249 ;;
kono
parents:
diff changeset
250 POWERPC_DARWIN)
kono
parents:
diff changeset
251 SOURCES="ffi_darwin.c darwin.S darwin_closure.S"
kono
parents:
diff changeset
252 ;;
kono
parents:
diff changeset
253 POWERPC_FREEBSD)
kono
parents:
diff changeset
254 SOURCES="ffi.c ffi_sysv.c sysv.S ppc_closure.S"
kono
parents:
diff changeset
255 ;;
kono
parents:
diff changeset
256 X86 | X86_FREEBSD | X86_WIN32)
kono
parents:
diff changeset
257 SOURCES="ffi.c sysv.S"
kono
parents:
diff changeset
258 ;;
kono
parents:
diff changeset
259 X86_64)
kono
parents:
diff changeset
260 SOURCES="ffi64.c unix64.S"
kono
parents:
diff changeset
261 ;;
kono
parents:
diff changeset
262 X86_WIN64)
kono
parents:
diff changeset
263 SOURCES="ffiw64.c win64.S"
kono
parents:
diff changeset
264 ;;
kono
parents:
diff changeset
265 X86_DARWIN)
kono
parents:
diff changeset
266 SOURCES="darwin_c.c darwin.S"
kono
parents:
diff changeset
267 ;;
kono
parents:
diff changeset
268 X86_64_DARWIN)
kono
parents:
diff changeset
269 SOURCES="darwin64_c.c darwin64.S"
kono
parents:
diff changeset
270 ;;
kono
parents:
diff changeset
271 esac
kono
parents:
diff changeset
272
kono
parents:
diff changeset
273 # If we failed to configure SOURCES, we can't do anything.
kono
parents:
diff changeset
274 if test -z "${SOURCES}"; then
kono
parents:
diff changeset
275 UNSUPPORTED=1
kono
parents:
diff changeset
276 fi