mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			277 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			277 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| # 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
 | |
| 	;;
 | |
| 
 | |
|   riscv*-*)
 | |
| 	TARGET=RISCV; TARGETDIR=riscv
 | |
| 	SOURCES="ffi.c sysv.S"
 | |
| 	;;
 | |
| 
 | |
|   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
 |