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