3 # This shell script handles all host based configuration for libffi.
6 # THIS TABLE IS SORTED. KEEP IT THAT WAY.
7 # Most of the time we can define all the variables all at once...
10 TARGET=AARCH64; TARGETDIR=aarch64
11 SOURCES="ffi.c sysv.S"
15 TARGET=ALPHA; TARGETDIR=alpha;
16 # Support 128-bit long double, changeable via command-line switch.
17 HAVE_LONG_DOUBLE='defined(__LONG_DOUBLE_128__)'
22 TARGET=ARC; TARGETDIR=arc
23 SOURCES="ffi.c arcompact.S"
27 TARGET=ARM; TARGETDIR=arm
28 SOURCES="ffi.c sysv.S"
32 TARGET=AVR32; TARGETDIR=avr32
33 SOURCES="ffi.c sysv.S"
37 TARGET=BFIN; TARGETDIR=bfin
38 SOURCES="ffi.c sysv.S"
42 TARGET=LIBFFI_CRIS; TARGETDIR=cris
43 SOURCES="ffi.c sysv.S"
47 TARGET=FRV; TARGETDIR=frv
48 SOURCES="ffi.c eabi.S"
51 hppa*-*-linux* | parisc*-*-linux* | hppa*-*-openbsd*)
52 TARGET=PA_LINUX; TARGETDIR=pa
53 SOURCES="ffi.c linux.S"
56 TARGET=PA64_HPUX; TARGETDIR=pa
59 TARGET=PA_HPUX; TARGETDIR=pa
60 SOURCES="ffi.c hpux32.S"
63 i?86-*-freebsd* | i?86-*-openbsd*)
64 TARGET=X86_FREEBSD; TARGETDIR=x86
67 i?86-win32* | i?86-*-cygwin* | i?86-*-mingw* | i?86-*-os2* | i?86-*-interix* \
68 | x86_64-*-cygwin* | x86_64-*-mingw*)
70 if test $ac_cv_sizeof_size_t = 4; then
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)"';
82 AM_LTLDFLAGS='-no-undefined -bindir "$(bindir)"';
86 i?86-*-darwin* | x86_64-*-darwin*)
88 if test $ac_cv_sizeof_size_t = 4; then
95 i?86-*-* | x86_64-*-* | amd64-*)
97 if test $ac_cv_sizeof_size_t = 4; then
98 echo 'int foo (void) { return __x86_64__; }' > conftest.c
99 if $CC $CFLAGS -Werror -S conftest.c -o conftest.s > /dev/null 2>&1; then
111 TARGET=IA64; TARGETDIR=ia64
112 SOURCES="ffi.c unix.S"
116 TARGET=M32R; TARGETDIR=m32r
117 SOURCES="ffi.c sysv.S"
121 TARGET=M68K; TARGETDIR=m68k
122 SOURCES="ffi.c sysv.S"
126 TARGET=M88K; TARGETDIR=m88k
127 SOURCES="ffi.c obsd.S"
131 TARGET=MICROBLAZE; TARGETDIR=microblaze
132 SOURCES="ffi.c sysv.S"
136 TARGET=MOXIE; TARGETDIR=moxie
137 SOURCES="ffi.c eabi.S"
141 TARGET=METAG; TARGETDIR=metag
142 SOURCES="ffi.c sysv.S"
145 mips-sgi-irix5.* | mips-sgi-irix6.* | mips*-*-rtems*)
146 TARGET=MIPS; TARGETDIR=mips
148 mips*-*linux* | mips*-*-openbsd*)
149 # Support 128-bit long double for NewABI.
150 HAVE_LONG_DOUBLE='defined(__mips64)'
151 TARGET=MIPS; TARGETDIR=mips
155 TARGET=NIOS2; TARGETDIR=nios2
156 SOURCES="ffi.c sysv.S"
160 TARGET=OR1K; TARGETDIR=or1k
161 SOURCES="ffi.c sysv.S"
164 powerpc*-*-linux* | powerpc-*-sysv*)
165 TARGET=POWERPC; TARGETDIR=powerpc
166 HAVE_LONG_DOUBLE_VARIANT=1
169 TARGET=POWERPC; TARGETDIR=powerpc
172 TARGET=POWERPC; TARGETDIR=powerpc
174 powerpc-*-darwin* | powerpc64-*-darwin*)
175 TARGET=POWERPC_DARWIN; TARGETDIR=powerpc
177 powerpc-*-aix* | rs6000-*-aix*)
178 TARGET=POWERPC_AIX; TARGETDIR=powerpc
180 powerpc-*-freebsd* | powerpc-*-openbsd*)
181 TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc
182 HAVE_LONG_DOUBLE_VARIANT=1
184 powerpc64-*-freebsd*)
185 TARGET=POWERPC; TARGETDIR=powerpc
188 TARGET=POWERPC; TARGETDIR=powerpc
192 TARGET=RISCV; TARGETDIR=riscv
193 SOURCES="ffi.c sysv.S"
196 s390-*-* | s390x-*-*)
197 TARGET=S390; TARGETDIR=s390
198 SOURCES="ffi.c sysv.S"
201 sh-*-* | sh[34]*-*-*)
202 TARGET=SH; TARGETDIR=sh
203 SOURCES="ffi.c sysv.S"
206 TARGET=SH64; TARGETDIR=sh64
207 SOURCES="ffi.c sysv.S"
211 TARGET=SPARC; TARGETDIR=sparc
212 SOURCES="ffi.c ffi64.c v8.S v9.S"
216 TARGET=TILE; TARGETDIR=tile
217 SOURCES="ffi.c tile.S"
221 TARGET=VAX; TARGETDIR=vax
222 SOURCES="ffi.c elfbsd.S"
226 TARGET=XTENSA; TARGETDIR=xtensa
227 SOURCES="ffi.c sysv.S"
231 # ... but some of the cases above share configury.
234 SOURCES="ffi.c o32.S n32.S"
237 SOURCES="ffi.c ffi_sysv.c ffi_linux64.c sysv.S ppc_closure.S"
238 SOURCES="${SOURCES} linux64.S linux64_closure.S"
241 SOURCES="ffi_darwin.c aix.S aix_closure.S"
244 SOURCES="ffi_darwin.c darwin.S darwin_closure.S"
247 SOURCES="ffi.c ffi_sysv.c sysv.S ppc_closure.S"
249 X86 | X86_FREEBSD | X86_WIN32)
250 SOURCES="ffi.c sysv.S"
253 SOURCES="ffi64.c unix64.S"
256 SOURCES="ffiw64.c win64.S"
259 SOURCES="darwin_c.c darwin.S"
262 SOURCES="darwin64_c.c darwin64.S"
266 # If we failed to configure SOURCES, we can't do anything.
267 if test -z "${SOURCES}"; then