123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272 |
- # configure.host
- #
- # This shell script handles all host based configuration for libffi.
- #
- # THIS TABLE IS SORTED. KEEP IT THAT WAY.
- # Most of the time we can define all the variables all at once...
- case "${host}" in
- aarch64*-*-*)
- TARGET=AARCH64; TARGETDIR=aarch64
- SOURCES="ffi.c sysv.S"
- ;;
- alpha*-*-*)
- TARGET=ALPHA; TARGETDIR=alpha;
- # Support 128-bit long double, changeable via command-line switch.
- HAVE_LONG_DOUBLE='defined(__LONG_DOUBLE_128__)'
- SOURCES="ffi.c osf.S"
- ;;
- arc*-*-*)
- TARGET=ARC; TARGETDIR=arc
- SOURCES="ffi.c arcompact.S"
- ;;
- arm*-*-*)
- TARGET=ARM; TARGETDIR=arm
- SOURCES="ffi.c sysv.S"
- ;;
- avr32*-*-*)
- TARGET=AVR32; TARGETDIR=avr32
- SOURCES="ffi.c sysv.S"
- ;;
- bfin*)
- TARGET=BFIN; TARGETDIR=bfin
- SOURCES="ffi.c sysv.S"
- ;;
- cris-*-*)
- TARGET=LIBFFI_CRIS; TARGETDIR=cris
- SOURCES="ffi.c sysv.S"
- ;;
- frv-*-*)
- TARGET=FRV; TARGETDIR=frv
- SOURCES="ffi.c eabi.S"
- ;;
- hppa*-*-linux* | parisc*-*-linux* | hppa*-*-openbsd*)
- TARGET=PA_LINUX; TARGETDIR=pa
- SOURCES="ffi.c linux.S"
- ;;
- hppa*64-*-hpux*)
- TARGET=PA64_HPUX; TARGETDIR=pa
- ;;
- hppa*-*-hpux*)
- TARGET=PA_HPUX; TARGETDIR=pa
- SOURCES="ffi.c hpux32.S"
- ;;
- i?86-*-freebsd* | i?86-*-openbsd*)
- TARGET=X86_FREEBSD; TARGETDIR=x86
- ;;
- i?86-win32* | i?86-*-cygwin* | i?86-*-mingw* | i?86-*-os2* | i?86-*-interix* \
- | x86_64-*-cygwin* | x86_64-*-mingw*)
- TARGETDIR=x86
- if test $ac_cv_sizeof_size_t = 4; then
- TARGET=X86_WIN32
- else
- TARGET=X86_WIN64
- fi
- # All mingw/cygwin/win32 builds require -no-undefined for sharedlib.
- # We must also check with_cross_host to decide if this is a native
- # or cross-build and select where to install dlls appropriately.
- if test -n "$with_cross_host" &&
- test x"$with_cross_host" != x"no"; then
- AM_LTLDFLAGS='-no-undefined -bindir "$(toolexeclibdir)"';
- else
- AM_LTLDFLAGS='-no-undefined -bindir "$(bindir)"';
- fi
- ;;
- i?86-*-darwin* | x86_64-*-darwin*)
- TARGETDIR=x86
- if test $ac_cv_sizeof_size_t = 4; then
- TARGET=X86_DARWIN
- else
- TARGET=X86_64_DARWIN
- fi
- ;;
- i?86-*-* | x86_64-*-* | amd64-*)
- TARGETDIR=x86
- if test $ac_cv_sizeof_size_t = 4; then
- case "$host" in
- *-gnux32)
- TARGET=X86_64
- ;;
- *)
- echo 'int foo (void) { return __x86_64__; }' > conftest.c
- if $CC $CFLAGS -Werror -S conftest.c -o conftest.s > /dev/null 2>&1; then
- TARGET=X86_64;
- else
- TARGET=X86;
- fi
- rm -f conftest.*
- ;;
- esac
- else
- TARGET=X86_64;
- fi
- ;;
- ia64*-*-*)
- TARGET=IA64; TARGETDIR=ia64
- SOURCES="ffi.c unix.S"
- ;;
- m32r*-*-*)
- TARGET=M32R; TARGETDIR=m32r
- SOURCES="ffi.c sysv.S"
- ;;
- m68k-*-*)
- TARGET=M68K; TARGETDIR=m68k
- SOURCES="ffi.c sysv.S"
- ;;
- m88k-*-*)
- TARGET=M88K; TARGETDIR=m88k
- SOURCES="ffi.c obsd.S"
- ;;
- microblaze*-*-*)
- TARGET=MICROBLAZE; TARGETDIR=microblaze
- SOURCES="ffi.c sysv.S"
- ;;
- moxie-*-*)
- TARGET=MOXIE; TARGETDIR=moxie
- SOURCES="ffi.c eabi.S"
- ;;
- metag-*-*)
- TARGET=METAG; TARGETDIR=metag
- SOURCES="ffi.c sysv.S"
- ;;
- mips-sgi-irix5.* | mips-sgi-irix6.* | mips*-*-rtems*)
- TARGET=MIPS; TARGETDIR=mips
- ;;
- mips*-*linux* | mips*-*-openbsd*)
- # Support 128-bit long double for NewABI.
- HAVE_LONG_DOUBLE='defined(__mips64)'
- TARGET=MIPS; TARGETDIR=mips
- ;;
- nios2*-linux*)
- TARGET=NIOS2; TARGETDIR=nios2
- SOURCES="ffi.c sysv.S"
- ;;
- or1k*-linux*)
- TARGET=OR1K; TARGETDIR=or1k
- SOURCES="ffi.c sysv.S"
- ;;
- powerpc*-*-linux* | powerpc-*-sysv*)
- TARGET=POWERPC; TARGETDIR=powerpc
- HAVE_LONG_DOUBLE_VARIANT=1
- ;;
- powerpc-*-amigaos*)
- TARGET=POWERPC; TARGETDIR=powerpc
- ;;
- powerpc-*-beos*)
- TARGET=POWERPC; TARGETDIR=powerpc
- ;;
- powerpc-*-darwin* | powerpc64-*-darwin*)
- TARGET=POWERPC_DARWIN; TARGETDIR=powerpc
- ;;
- powerpc-*-aix* | rs6000-*-aix*)
- TARGET=POWERPC_AIX; TARGETDIR=powerpc
- ;;
- powerpc-*-freebsd* | powerpc-*-openbsd*)
- TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc
- HAVE_LONG_DOUBLE_VARIANT=1
- ;;
- powerpc64-*-freebsd*)
- TARGET=POWERPC; TARGETDIR=powerpc
- ;;
- powerpc*-*-rtems*)
- TARGET=POWERPC; TARGETDIR=powerpc
- ;;
- s390-*-* | s390x-*-*)
- TARGET=S390; TARGETDIR=s390
- SOURCES="ffi.c sysv.S"
- ;;
- sh-*-* | sh[34]*-*-*)
- TARGET=SH; TARGETDIR=sh
- SOURCES="ffi.c sysv.S"
- ;;
- sh64-*-* | sh5*-*-*)
- TARGET=SH64; TARGETDIR=sh64
- SOURCES="ffi.c sysv.S"
- ;;
- sparc*-*-*)
- TARGET=SPARC; TARGETDIR=sparc
- SOURCES="ffi.c ffi64.c v8.S v9.S"
- ;;
- tile*-*)
- TARGET=TILE; TARGETDIR=tile
- SOURCES="ffi.c tile.S"
- ;;
- vax-*-*)
- TARGET=VAX; TARGETDIR=vax
- SOURCES="ffi.c elfbsd.S"
- ;;
- xtensa*-*)
- TARGET=XTENSA; TARGETDIR=xtensa
- SOURCES="ffi.c sysv.S"
- ;;
- esac
- # ... but some of the cases above share configury.
- case "${TARGET}" in
- MIPS)
- SOURCES="ffi.c o32.S n32.S"
- ;;
- POWERPC)
- SOURCES="ffi.c ffi_sysv.c ffi_linux64.c sysv.S ppc_closure.S"
- SOURCES="${SOURCES} linux64.S linux64_closure.S"
- ;;
- POWERPC_AIX)
- SOURCES="ffi_darwin.c aix.S aix_closure.S"
- ;;
- POWERPC_DARWIN)
- SOURCES="ffi_darwin.c darwin.S darwin_closure.S"
- ;;
- POWERPC_FREEBSD)
- SOURCES="ffi.c ffi_sysv.c sysv.S ppc_closure.S"
- ;;
- X86 | X86_FREEBSD | X86_WIN32)
- SOURCES="ffi.c sysv.S"
- ;;
- X86_64)
- SOURCES="ffi64.c unix64.S"
- ;;
- X86_WIN64)
- SOURCES="ffiw64.c win64.S"
- ;;
- X86_DARWIN)
- SOURCES="darwin_c.c darwin.S"
- ;;
- X86_64_DARWIN)
- SOURCES="darwin64_c.c darwin64.S"
- ;;
- esac
- # If we failed to configure SOURCES, we can't do anything.
- if test -z "${SOURCES}"; then
- UNSUPPORTED=1
- fi
|